tasks.md 3.7 KB

任务拆分 — 业务域删除孤立对象优化

拆分顺序:接口协议 → 底层实现 → 上层交互 → 验证收尾 每个任务聚焦一个可验证的原子结果

前置条件

  • 已确认应用删除会保留业务对象,当前报错来自真实孤立对象,不是逻辑删除过滤遗漏。
  • 已确认业务应用与业务对象必须属于同一业务域,应用存在关联时禁止直接迁移业务域。
  • 已读取自动化测试标准并建立本变更 test-spec.mdexecution-log.md
  • 保留用户已有 .DS_Store 工作树变更,不纳入本任务。

Task 1: 建立删除服务回归测试

  • 状态:已完成
  • 目标:用单元测试固定阻断顺序、显式清理与防误删行为,并先确认 Red。
  • 涉及文件
    • forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/test/java/com/mdframe/forge/plugin/generator/service/businessapp/BusinessSuiteServiceTest.java — 新增服务删除场景测试。
  • 关键签名java void deleteCleansOrphanObjectsAfterExplicitConfirmation() void deleteRejectsCleanupWhenApplicationStillExists() void deleteRejectsObjectsWithoutExplicitConfirmation() void deleteRejectsObjectsReferencedByActiveApplication()
  • 验收标准:实现前测试失败;实现后所有新增用例通过。

Task 2: 实现后端显式孤立对象清理

  • 状态:已完成
  • 目标:扩展删除协议,在事务内安全清理关系和孤立对象。
  • 涉及文件
    • BusinessSuiteController.java — 接收默认关闭的 cleanupOrphanObjects 参数。
    • BusinessSuiteService.java — 调整校验顺序并编排显式清理。
    • BusinessSuiteMapper.java — 新增有效应用引用统计、关系删除和对象逻辑删除方法。
    • BusinessSuiteMapper.xml — 实现显式租户/逻辑删除条件 SQL。
  • 关键签名java public void delete(Long id, boolean cleanupOrphanObjects) Long countActiveApplicationObjectReferencesBySuite(Long tenantId, String suiteCode) int deleteObjectRelationsBySuite(Long tenantId, String suiteCode) int logicDeleteObjectsBySuite(Long tenantId, String suiteCode)
  • 验收标准:应用、入口或有效引用存在时不发生任何清理;显式确认后按顺序清理并删除业务域。

Task 3: 更新前端删除确认与请求参数

  • 状态:已完成
  • 目标:让用户在删除前看见孤立对象清理影响,并明确传递清理意图。
  • 涉及文件
    • forge-admin-ui/src/api/business-app.js — 删除 API 支持 cleanupOrphanObjects
    • forge-admin-ui/src/views/app-center/index.vue — 根据 objectCount 生成确认文案并传参。
    • forge-admin-ui/src/views/app-center/suite.[suiteCode].vue — 同步旧详情页行为。
  • 关键签名javascript export function deleteBusinessSuite(id, cleanupOrphanObjects = false)
  • 验收标准:有对象时明确提示会清理对象配置但不删除业务数据表;无对象时保持简洁确认;两处入口行为一致。

Task 4: 增量验证与文档回填

  • 状态:已完成
  • 目标:完成后端单测、模块编译/测试、前端构建、XML 与差异检查并回填证据。
  • 涉及文件
    • test-spec.md
    • execution-log.md
    • spec.md
    • tasks.md
  • 验收标准:必跑项有实际命令和输出;跳过真实服务/数据库联调时说明原因;工作树仅包含本任务文件和用户既有变更。
  • 执行结果:定向测试 6/6、前端构建、目标 ESLint、Mapper XML 和差异检查通过;generator 全量测试的 6 个非本轮失败已记录。