6098d61b
戈灵虎
迁移
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# 迁移计划
## 范围与目标
- 将旧工程 `/old/servicemanager/src/main/java/com/servicemanager/project/` 下剩余接口完整迁移到 `urbanops-module-garden`,保持原「路径/行为」不变。
- 统一数据表前缀为 `garden_`,对齐新模块的分层规范(controller/admin|app、service、dal/mysql、dal/dataobject、vo)。
## 当前进度(已完成且编译通过)
- 树档案与古树:`/business/tree/*`、`/treerecord/oldtrees/*`
- 养护计划与提交:`/maintain/plan/*`、`/app/plan/commit/*`
- 物料库存/入出库:`/material/inventory/*`、`/material/in/*`、`/material/out/*`
- 热线案件/文件/照片:`/business/hotlinecase/*`(含聚合详情 `/getInfoMore/{id}`)、`/business/file/*`、`/business/sysphoto/*`
- PC 问题管理/任务:`/pc/problem/manager/*`、`/pc/problem/task/*`
- 部门桥接、基础字典、道路、养护频次、摄像机接口等
## 待迁移内容
- 绩效系列
- `/performance/index/listForPage`
- `/performance/write/listForPage`
- `/performance/experts/listForPage`
- 项目与子项目
- `/project/manager/listForPage`
- `/project/manager/selectProjectManagerForList`
- `/subProject/manager/listForPage`
- 物料管理剩余
- `/material/manager/*`(分页、列表、导出)
- `/materialType/*`(大类/中类/分页、导入导出)
## 技术方案
- 控制层
- 保持旧路径与 HTTP 方法不变;后台接口放 `controller/admin/*`,App 接口放 `controller/app/*`。
- 权限注解对齐(`@PreAuthorize`),沿用旧权限字符串或等价替换。
- 服务层
- 迁移旧的业务服务方法,保持参数/校验/业务流程;使用新模块工具集(分页 `PageParam/PageResult`、统一响应 `CommonResult`)。
- 数据访问层
- Mapper 改造为 `BaseMapperX + LambdaQueryWrapperX`,SQL 条件与排序对齐旧逻辑。
- DataObject 使用 `@TableName("garden_*")` 对齐重命名后的表。
- VO/DTO
- 保持旧的入参/出参结构;命名与包路径迁移至新模块相应 `vo` 目录。
## 数据表映射
- 旧表 `td_*/t_*` → 新表 `garden_*`(如 `td_project_manager` → `garden_project_manager`,`td_performance_index` → `garden_performance_index`,`td_material_type` → `garden_material_type` 等)。
- 统一使用新模块审计字段(creator/updater、createTime/updateTime)与部门/公司维度(`SecurityFrameworkUtils`)。
## 验证与交付
- 每批迁移完成后:
- 运行 `mvn -q -DskipTests -U -pl urbanops-module-garden -am compile` 验证编译。
- 提供可访问端点清单与关键入参示例。
- 对导出接口进行本地验证(返回 XLS)。
## 风险与处理
- 依赖缓存损坏(如 kotlin 相关):遇到后强制更新或清理缓存后重试编译。
- 权限字符串不一致:若旧权限在新模块中无对应,按域统一到 `garden:*:*` 规范并在说明中列出调整。
## 需要确认
- 绩效/项目/物料三组是否作为本次优先批次全部迁移?
- 若有其他域需优先(例如 App 端补充查询或导入),请指出以便先行安排。
|