Files
oneos-backend/DEVELOPMENT_PROGRESS.md
k kfluous a2e2d5c27e refactor(asset): 优化保养项目设计,使用折中方案
变更内容:
1. 删除 maintainItemId 字段(冗余,无实际作用)
2. 保留 maintainItem 字段(直接存储项目名称)
3. 新增接口:获取已使用的保养项目列表(去重)
4. 前端可使用该接口提供下拉提示,提升用户体验
5. 添加 maintainItem 字段的非空校验

设计思路:
- 不引入保养项目字典表(避免过度设计)
- 通过 DISTINCT 查询提供已使用项目列表
- 用户可以输入新项目,也可以从已有项目中选择
- 后续如需规范化,可平滑升级到字典表方案
2026-03-12 09:54:00 +08:00

8.9 KiB
Raw Permalink Blame History

停车场和车型参数模块开发进度

开发时间

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 - 继承 BaseVO
  • ParkingRespVO.java - 继承 BaseVO
  • ParkingPageReqVO.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)

二、代码统计

新增文件

  1. SQL 脚本: 1 个
  2. DO 类: 1 个
  3. Mapper 类: 1 个
  4. VO 类: 5 个
  5. Service 类: 2 个
  6. Controller 类: 1 个

总计: 11 个文件

修改文件

  1. ParkingDO.java
  2. ParkingBaseVO.java
  3. 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 车型参数接口测试

测试用例:

  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": "开山"
}
  1. 分页查询
GET http://localhost:48080/admin-api/asset/vehicle-model/page?pageNo=1&pageSize=10
  1. 获取详情
GET http://localhost:48080/admin-api/asset/vehicle-model/get?id=1
  1. 精简列表
GET http://localhost:48080/admin-api/asset/vehicle-model/simple-list
  1. 根据品牌查询
GET http://localhost:48080/admin-api/asset/vehicle-model/list-by-brand?brand=1
  1. 更新车型参数
PUT http://localhost:48080/admin-api/asset/vehicle-model/update
Content-Type: application/json

{
  "id": 1,
  "brand": 1,
  "model": 1,
  "modelName": "江淮骏铃V6更新",
  ...
}
  1. 删除车型参数
DELETE http://localhost:48080/admin-api/asset/vehicle-model/delete?id=1

4.2 停车场接口测试

测试用例:

  1. 创建停车场(验证新字段)
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": "测试停车场"
}
  1. 查询停车场(验证新字段返回)
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. 权限层面

  • 权限配置正确
  • 权限控制生效
  • 无权限时提示正确

五、下一步计划

短期(本周)

  1. 执行数据库迁移
  2. 编译测试
  3. 接口测试
  4. 权限配置

中期(下周)

  1. 前端页面开发
  2. 前后端联调
  3. 功能测试
  4. Bug 修复

长期(本月)

  1. 性能优化
  2. 文档完善
  3. 上线部署
  4. 用户培训

六、注意事项

  1. 数据库迁移

    • 在生产环境执行前,先在测试环境验证
    • 备份数据库
    • 记录执行时间和结果
  2. 代码提交

    • 提交前检查代码规范
    • 编写清晰的 commit message
    • 关联相关的 issue
  3. 测试

    • 覆盖所有接口
    • 测试边界情况
    • 测试异常情况
  4. 文档

    • 更新 API 文档
    • 更新开发文档
    • 更新用户手册

七、问题记录

暂无

八、总结

本次开发完成了停车场模块的完善和车型参数模块的全新开发,代码层面已经完成,待执行数据库迁移和接口测试。整体进度符合预期,代码质量良好。