继续迁移剩余旧接口到 urbanops-module-garden.md 3.05 KB

迁移计划

范围与目标

  • 将旧工程 /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_managergarden_project_managertd_performance_indexgarden_performance_indextd_material_typegarden_material_type 等)。
  • 统一使用新模块审计字段(creator/updater、createTime/updateTime)与部门/公司维度(SecurityFrameworkUtils)。

验证与交付

  • 每批迁移完成后:
    • 运行 mvn -q -DskipTests -U -pl urbanops-module-garden -am compile 验证编译。
    • 提供可访问端点清单与关键入参示例。
    • 对导出接口进行本地验证(返回 XLS)。

风险与处理

  • 依赖缓存损坏(如 kotlin 相关):遇到后强制更新或清理缓存后重试编译。
  • 权限字符串不一致:若旧权限在新模块中无对应,按域统一到 garden:*:* 规范并在说明中列出调整。

需要确认

  • 绩效/项目/物料三组是否作为本次优先批次全部迁移?
  • 若有其他域需优先(例如 App 端补充查询或导入),请指出以便先行安排。