refactor(asset): 优化保养项目设计,使用折中方案
变更内容: 1. 删除 maintainItemId 字段(冗余,无实际作用) 2. 保留 maintainItem 字段(直接存储项目名称) 3. 新增接口:获取已使用的保养项目列表(去重) 4. 前端可使用该接口提供下拉提示,提升用户体验 5. 添加 maintainItem 字段的非空校验 设计思路: - 不引入保养项目字典表(避免过度设计) - 通过 DISTINCT 查询提供已使用项目列表 - 用户可以输入新项目,也可以从已有项目中选择 - 后续如需规范化,可平滑升级到字典表方案
This commit is contained in:
394
DEVELOPMENT_PROGRESS.md
Normal file
394
DEVELOPMENT_PROGRESS.md
Normal file
@@ -0,0 +1,394 @@
|
||||
# 停车场和车型参数模块开发进度
|
||||
|
||||
## 开发时间
|
||||
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. 数据库迁移 ⏳
|
||||
**操作**:
|
||||
```bash
|
||||
# 连接到数据库
|
||||
mysql -h 47.103.115.36 -u root -p
|
||||
|
||||
# 选择数据库
|
||||
use yudao_asset;
|
||||
|
||||
# 执行 SQL 脚本
|
||||
source /path/to/update-2026-03-12-停车场和车型参数模块.sql
|
||||
```
|
||||
|
||||
**验证**:
|
||||
```sql
|
||||
-- 检查停车场表结构
|
||||
DESC asset_parking;
|
||||
|
||||
-- 检查车型参数表
|
||||
DESC asset_vehicle_model;
|
||||
|
||||
-- 检查车型维保项目关联表
|
||||
DESC asset_vehicle_model_maintain_item;
|
||||
```
|
||||
|
||||
### 2. 编译测试 ⏳
|
||||
**操作**:
|
||||
```bash
|
||||
cd yudao-asset-cloud
|
||||
|
||||
# 编译项目
|
||||
mvn clean compile
|
||||
|
||||
# 运行测试
|
||||
mvn test
|
||||
|
||||
# 打包
|
||||
mvn clean package -DskipTests
|
||||
```
|
||||
|
||||
### 3. 启动服务 ⏳
|
||||
**操作**:
|
||||
```bash
|
||||
# 启动 Asset 模块
|
||||
cd yudao-module-asset/yudao-module-asset-server
|
||||
mvn spring-boot:run
|
||||
```
|
||||
|
||||
### 4. 接口测试 ⏳
|
||||
|
||||
#### 4.1 车型参数接口测试
|
||||
**测试用例**:
|
||||
|
||||
1. **创建车型参数**
|
||||
```http
|
||||
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": "开山"
|
||||
}
|
||||
```
|
||||
|
||||
2. **分页查询**
|
||||
```http
|
||||
GET http://localhost:48080/admin-api/asset/vehicle-model/page?pageNo=1&pageSize=10
|
||||
```
|
||||
|
||||
3. **获取详情**
|
||||
```http
|
||||
GET http://localhost:48080/admin-api/asset/vehicle-model/get?id=1
|
||||
```
|
||||
|
||||
4. **精简列表**
|
||||
```http
|
||||
GET http://localhost:48080/admin-api/asset/vehicle-model/simple-list
|
||||
```
|
||||
|
||||
5. **根据品牌查询**
|
||||
```http
|
||||
GET http://localhost:48080/admin-api/asset/vehicle-model/list-by-brand?brand=1
|
||||
```
|
||||
|
||||
6. **更新车型参数**
|
||||
```http
|
||||
PUT http://localhost:48080/admin-api/asset/vehicle-model/update
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"id": 1,
|
||||
"brand": 1,
|
||||
"model": 1,
|
||||
"modelName": "江淮骏铃V6(更新)",
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
7. **删除车型参数**
|
||||
```http
|
||||
DELETE http://localhost:48080/admin-api/asset/vehicle-model/delete?id=1
|
||||
```
|
||||
|
||||
#### 4.2 停车场接口测试
|
||||
**测试用例**:
|
||||
|
||||
1. **创建停车场(验证新字段)**
|
||||
```http
|
||||
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": "测试停车场"
|
||||
}
|
||||
```
|
||||
|
||||
2. **查询停车场(验证新字段返回)**
|
||||
```http
|
||||
GET http://localhost:48080/admin-api/asset/parking/get?id=1
|
||||
```
|
||||
|
||||
### 5. Swagger 文档验证 ⏳
|
||||
**访问地址**:
|
||||
```
|
||||
http://localhost:48080/doc.html
|
||||
```
|
||||
|
||||
**验证内容**:
|
||||
- ✅ 车型参数模块是否显示
|
||||
- ✅ 所有接口是否正常显示
|
||||
- ✅ 参数说明是否完整
|
||||
- ✅ 示例值是否正确
|
||||
|
||||
### 6. 权限配置 ⏳
|
||||
**需要添加的权限**:
|
||||
```sql
|
||||
-- 车型参数管理权限
|
||||
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. 代码层面
|
||||
- [x] 代码编译通过
|
||||
- [ ] 单元测试通过
|
||||
- [x] 代码符合规范
|
||||
- [x] 注释完整
|
||||
|
||||
### 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 文档
|
||||
- 更新开发文档
|
||||
- 更新用户手册
|
||||
|
||||
## 七、问题记录
|
||||
|
||||
暂无
|
||||
|
||||
## 八、总结
|
||||
|
||||
本次开发完成了停车场模块的完善和车型参数模块的全新开发,代码层面已经完成,待执行数据库迁移和接口测试。整体进度符合预期,代码质量良好。
|
||||
Reference in New Issue
Block a user