Files
smart_grid_iot/.trae/specs/rework-survey-equipment-tree/tasks.md
T
wk 7c915f8946 docs(specs): 新增现场勘察业务相关 spec 文档
- rework-survey-equipment-tree:勘察设备树明细模式重构
- fix-equipment-topology-display:设备拓扑图完整显示修复
- survey-detail-building-select:勘察明细所属建筑下拉
- generate-floor-options-from-building:按建筑楼层生成楼层下拉
- survey-progress-track-detail:进度跟踪跳转勘察明细页
- survey-complete-to-tech-review:勘察完成提交技术复核与复核按钮改名
2026-10-25 02:34:18 +08:00

4.1 KiB
Raw Blame History

Tasks

数据层变更

  • Task 1: DB 表结构变更(树形化 + 配电柜 + 明细关联设备)
    • 1.1 新增 database/migrations/2026xxxx_survey_equipment_tree.sql:customer_equipment 增 parent_id BIGINT REFERENCES customer_equipment(id) + 索引;survey_detail 增 equip_id BIGINT REFERENCES customer_equipment(id) + 索引;更新 equip_type 注释含「配电柜」;幂等可重跑
    • 1.2 同步 database/db_init.sql 的建表语句与注释
    • 1.3 更新 server/src/entity/customer_equipment.entity.ts(加 parentId 列)与 server/src/entity/survey_detail.entity.ts(加 equipId 列)
    • 1.4 同步设计文档 系统设计/表结构新增及变更.md

后端能力

  • Task 2: customer_equipment 树接口与父级校验
    • 2.1 customer_equipment.service.ts:create/update 支持 parentId,校验父设备存在、同属客户、非自身/非子节点(防循环);新增 tree(customerId) 组装嵌套树,权限过滤与 list 一致
    • 2.2 customer_equipment.controller.ts:注册 GET /api/customer-equipments/tree(置于 /:id 之前)
  • Task 3: survey_detail 关联设备 + 详情返回设备树
    • 3.1 survey_order.service.ts 的 saveDetails 接收 equipId,校验设备属于该工单客户,全量替换明细
    • 3.2 详情接口返回时附带该工单的设备树数据(供拓扑图渲染)
    • 3.3 dto/survey_order.dto.ts 增加/调整明细校验(equipId 必填、photos/remark 约束)

前端:向导迁移与两步化

  • Task 4: 向导路由迁移 + 两步化 + 台账入口收敛(可并行,但依赖路由与表单同改)
    • 4.1 router/index.ts:新增 /customer/visit/survey/create(meta 父级=客户拜访),移除 /dispatch/survey/create;保留 /dispatch/survey/edit/:id
    • 4.2 views/dispatch/survey/form.vue:STEPS 改 2 步,删除第2步「勘察明细」区块与明细表单/buildDetails,提交不再携带 details
    • 4.3 views/customer/visit/index.vue:handleSurvey 直跳 /customer/visit/survey/create?customerId=xx
    • 4.4 views/dispatch/survey/index.vue:移除页头「发起勘察派单」按钮(handleAdd)与 onMounted 的 ?customerId 自动跳转;行操作「更多」新增「勘察明细」菜单项(跳 /dispatch/survey/:id/details)

前端:勘察明细页面(新)

  • Task 5: 新建勘察明细页 views/dispatch/survey/detail.vue(参考空间拓扑与用电架构模式)
    • 5.1 左侧设备树:调用 GET /customer-equipments/tree?customerId= 渲染树
    • 5.2 中间拓扑图 + 右侧节点属性:设备详情、照片/备注维护(保存走 saveDetails(id, [{equipId, photos, remark}]))
    • 5.3 新增/编辑/删除设备:支持选择父节点、设备类型含「配电柜」;新增接口带 parentId
    • 5.4 路由 /dispatch/survey/:id/details 注册;如缺 api/customerEquipment.ts 则补齐 tree/CRUD API
  • Task 6: 台账详情拓扑图
    • 6.1 views/dispatch/survey/index.vue 详情弹窗:新增拓扑图区块,按设备树渲染勘察明细(节点带照片/备注),无数据时给空态
  • Task 7: 设备管理台账类型扩展
    • 7.1 views/device/equipment/index.vue:equipTypeOptions 增加「配电柜」;设备新增/编辑表单支持选择父设备(parentId)

验证

  • Task 8: 编译 + 接口 + 浏览器端到端验证
    • 8.1 server 编译通过;client 构建通过
    • 8.2 接口实测:tree 接口、带 equipId 的 saveDetails、create 带 parentId
    • 8.3 浏览器验证:客户拜访发起派单直跳两步向导;台账无发起按钮、行内「勘察明细」进入新页并新增/维护设备;详情弹窗拓扑图正确显示
    • 8.4 生产库应用迁移(经确认后)

Task Dependencies

  • Task 2 依赖 Task 1(表结构/实体先行)
  • Task 3 依赖 Task 1(survey_detail 实体加列)
  • Task 4 依赖 Task 1(后端不动,可并行;路由与表单同批改动)
  • Task 5 依赖 Task 2、3(tree 接口、saveDetails equipId)
  • Task 6 依赖 Task 3(详情返回设备树)
  • Task 8 依赖全部 Task