变更内容: 1. 删除 maintainItemId 字段(冗余,无实际作用) 2. 保留 maintainItem 字段(直接存储项目名称) 3. 新增接口:获取已使用的保养项目列表(去重) 4. 前端可使用该接口提供下拉提示,提升用户体验 5. 添加 maintainItem 字段的非空校验 设计思路: - 不引入保养项目字典表(避免过度设计) - 通过 DISTINCT 查询提供已使用项目列表 - 用户可以输入新项目,也可以从已有项目中选择 - 后续如需规范化,可平滑升级到字典表方案
8.9 KiB
8.9 KiB
停车场和车型参数模块开发进度
开发时间
2026-03-12
一、已完成任务
1. 数据库设计 ✅
1.1 停车场表结构完善
文件: sql/update-2026-03-12-停车场和车型参数模块.sql
新增字段:
principal- 公司负责人contact_name- 联系人contact_phone- 联系电话parked_amount- 已停车辆数stock_area- 库存区域(字典)unusual_action_city- 异动城市(字典)longitude- 经度latitude- 纬度remark- 备注
1.2 车型参数表创建
表名: asset_vehicle_model
字段:
- 基础信息:品牌、车型、车型编号、车型名称、公告型号
- 氢气参数:氢气单位、氢瓶容量、氢气里程
- 电池参数:储电量、电池里程
- 车辆参数:燃料种类、轮胎尺寸、轮胎数量、车辆尺寸
- 厂家信息:电堆厂家、电池厂家、冷机厂家
1.3 车型维保项目关联表
表名: asset_vehicle_model_maintain_item
用途: 关联车型和维保项目
2. 停车场模块完善 ✅
2.1 DO 层
文件: ParkingDO.java
- ✅ 新增所有老系统字段
- ✅ 继承 BaseDO
- ✅ 使用正确的注解
2.2 VO 层
文件: ParkingBaseVO.java
- ✅ 新增所有字段
- ✅ 添加 Swagger 注解
- ✅ 字段说明完整
其他 VO:
ParkingSaveReqVO.java- 继承 BaseVOParkingRespVO.java- 继承 BaseVOParkingPageReqVO.java- 分页查询ParkingSimpleRespVO.java- 精简列表
3. 车型参数模块开发 ✅
3.1 DO 层
文件: VehicleModelDO.java
- ✅ 完整的字段定义
- ✅ 使用 BigDecimal 存储储电量
- ✅ 继承 BaseDO
3.2 Mapper 层
文件: VehicleModelMapper.java
- ✅ 分页查询
- ✅ 根据品牌查询
- ✅ 根据车型查询
3.3 VO 层
文件:
- ✅
VehicleModelBaseVO.java- 基础 VO - ✅
VehicleModelSaveReqVO.java- 新增/修改 - ✅
VehicleModelRespVO.java- 响应 - ✅
VehicleModelPageReqVO.java- 分页查询 - ✅
VehicleModelSimpleRespVO.java- 精简列表
3.4 Service 层
文件:
- ✅
VehicleModelService.java- 接口 - ✅
VehicleModelServiceImpl.java- 实现
功能:
- ✅ CRUD 基础操作
- ✅ 分页查询
- ✅ 精简列表
- ✅ 根据品牌查询
- ✅ 根据车型查询
3.5 Controller 层
文件: VehicleModelController.java
接口:
- ✅ POST /create - 创建车型参数
- ✅ PUT /update - 更新车型参数
- ✅ DELETE /delete - 删除车型参数
- ✅ GET /get - 获取车型参数详情
- ✅ GET /page - 分页查询
- ✅ GET /simple-list - 精简列表
- ✅ GET /list-by-brand - 根据品牌查询
- ✅ GET /list-by-model - 根据车型查询
3.6 错误码
文件: ErrorCodeConstants.java
- ✅ VEHICLE_MODEL_NOT_EXISTS (1_008_007_000)
二、代码统计
新增文件
- SQL 脚本: 1 个
- DO 类: 1 个
- Mapper 类: 1 个
- VO 类: 5 个
- Service 类: 2 个
- Controller 类: 1 个
总计: 11 个文件
修改文件
- ParkingDO.java
- ParkingBaseVO.java
- ErrorCodeConstants.java
总计: 3 个文件
三、待执行任务
1. 数据库迁移 ⏳
操作:
# 连接到数据库
mysql -h 47.103.115.36 -u root -p
# 选择数据库
use yudao_asset;
# 执行 SQL 脚本
source /path/to/update-2026-03-12-停车场和车型参数模块.sql
验证:
-- 检查停车场表结构
DESC asset_parking;
-- 检查车型参数表
DESC asset_vehicle_model;
-- 检查车型维保项目关联表
DESC asset_vehicle_model_maintain_item;
2. 编译测试 ⏳
操作:
cd yudao-asset-cloud
# 编译项目
mvn clean compile
# 运行测试
mvn test
# 打包
mvn clean package -DskipTests
3. 启动服务 ⏳
操作:
# 启动 Asset 模块
cd yudao-module-asset/yudao-module-asset-server
mvn spring-boot:run
4. 接口测试 ⏳
4.1 车型参数接口测试
测试用例:
- 创建车型参数
POST http://localhost:48080/admin-api/asset/vehicle-model/create
Content-Type: application/json
{
"brand": 1,
"model": 1,
"modelCode": "HFC1043K1",
"modelName": "江淮骏铃V6",
"noticeModel": "HFC1043K1R8T",
"hydrogenUnit": 1,
"hydrogenCapacity": 165,
"electricityMileage": 300,
"reserveElectricity": 80.00,
"hydrogenMileage": 400,
"fuelType": 1,
"tireSize": "225/70R19.5",
"tireNumber": 6,
"truckSize": "5995×2100×2850",
"onlineSpreadEnterprise": "上海重塑",
"batteryFactory": "宁德时代",
"refrigeratorFactory": "开山"
}
- 分页查询
GET http://localhost:48080/admin-api/asset/vehicle-model/page?pageNo=1&pageSize=10
- 获取详情
GET http://localhost:48080/admin-api/asset/vehicle-model/get?id=1
- 精简列表
GET http://localhost:48080/admin-api/asset/vehicle-model/simple-list
- 根据品牌查询
GET http://localhost:48080/admin-api/asset/vehicle-model/list-by-brand?brand=1
- 更新车型参数
PUT http://localhost:48080/admin-api/asset/vehicle-model/update
Content-Type: application/json
{
"id": 1,
"brand": 1,
"model": 1,
"modelName": "江淮骏铃V6(更新)",
...
}
- 删除车型参数
DELETE http://localhost:48080/admin-api/asset/vehicle-model/delete?id=1
4.2 停车场接口测试
测试用例:
- 创建停车场(验证新字段)
POST http://localhost:48080/admin-api/asset/parking/create
Content-Type: application/json
{
"name": "杭州停车场",
"principal": "张三",
"contactName": "李四",
"contactPhone": "13800138000",
"address": "浙江省杭州市西湖区",
"longitude": "120.123456",
"latitude": "30.123456",
"capacity": 100,
"parkedAmount": 0,
"stockArea": 1,
"unusualActionCity": 1,
"remark": "测试停车场"
}
- 查询停车场(验证新字段返回)
GET http://localhost:48080/admin-api/asset/parking/get?id=1
5. Swagger 文档验证 ⏳
访问地址:
http://localhost:48080/doc.html
验证内容:
- ✅ 车型参数模块是否显示
- ✅ 所有接口是否正常显示
- ✅ 参数说明是否完整
- ✅ 示例值是否正确
6. 权限配置 ⏳
需要添加的权限:
-- 车型参数管理权限
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
VALUES ('车型参数', '', 2, 1, 0, 'vehicle-model', 'car', 'asset/vehicleModel/index', 0);
-- 查询权限
INSERT INTO system_menu (name, permission, type, sort, parent_id)
VALUES ('车型参数查询', 'asset:vehicle-model:query', 3, 1, (SELECT id FROM system_menu WHERE permission = ''));
-- 创建权限
INSERT INTO system_menu (name, permission, type, sort, parent_id)
VALUES ('车型参数创建', 'asset:vehicle-model:create', 3, 2, (SELECT id FROM system_menu WHERE permission = ''));
-- 更新权限
INSERT INTO system_menu (name, permission, type, sort, parent_id)
VALUES ('车型参数更新', 'asset:vehicle-model:update', 3, 3, (SELECT id FROM system_menu WHERE permission = ''));
-- 删除权限
INSERT INTO system_menu (name, permission, type, sort, parent_id)
VALUES ('车型参数删除', 'asset:vehicle-model:delete', 3, 4, (SELECT id FROM system_menu WHERE permission = ''));
四、验收标准
1. 数据库层面
- 停车场表包含所有新字段
- 车型参数表创建成功
- 车型维保项目关联表创建成功
- 索引创建正确
2. 代码层面
- 代码编译通过
- 单元测试通过
- 代码符合规范
- 注释完整
3. 功能层面
- 车型参数 CRUD 功能正常
- 停车场新字段保存和查询正常
- 分页查询正常
- 精简列表正常
- 根据品牌/车型查询正常
4. 接口层面
- Swagger 文档正常显示
- 所有接口返回正确
- 参数校验正常
- 错误提示友好
5. 权限层面
- 权限配置正确
- 权限控制生效
- 无权限时提示正确
五、下一步计划
短期(本周)
- 执行数据库迁移
- 编译测试
- 接口测试
- 权限配置
中期(下周)
- 前端页面开发
- 前后端联调
- 功能测试
- Bug 修复
长期(本月)
- 性能优化
- 文档完善
- 上线部署
- 用户培训
六、注意事项
-
数据库迁移
- 在生产环境执行前,先在测试环境验证
- 备份数据库
- 记录执行时间和结果
-
代码提交
- 提交前检查代码规范
- 编写清晰的 commit message
- 关联相关的 issue
-
测试
- 覆盖所有接口
- 测试边界情况
- 测试异常情况
-
文档
- 更新 API 文档
- 更新开发文档
- 更新用户手册
七、问题记录
暂无
八、总结
本次开发完成了停车场模块的完善和车型参数模块的全新开发,代码层面已经完成,待执行数据库迁移和接口测试。整体进度符合预期,代码质量良好。