Files
wk d42e858fb0 feat(dispatch): 新增报修派单与维保派单模块全栈实现
- 后端: repair_request/repair_dispatch/maintenance_order/maintenance_detail 实体、DTO、Service(事务/单号/状态流转/行级权限)、Controller
- 安全: JWT+RBAC 接入(dispatch:repair/dispatch:maintenance)、全参数化防SQL注入、操作日志埋点
- 前端: 报修派单(双页签)、维保派单(主从表单)页面, API封装, /dispatch 路由
- 菜单: db_seed.sql 与远程库同步 id=36/37, ADMIN/SALESMAN 角色绑定
2026-10-02 04:23:01 +08:00

50 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Tasks
- [x] Task 1: 后端报修模块(repair_request + repair_dispatch)
- [x] 1.1 实体:RepairRequest.entity.ts、RepairDispatch.entity.ts(对齐 db_design D8,表已存在,timestamps:false,索引对齐)
- [x] 1.2 DTO:repair_request.dto.ts(QueryRepairRequestDto)、repair_dispatch.dto.ts(Query/Create/Update/Complete,class-validator 全量校验)
- [x] 1.3 Service:RepairDispatchService(列表/详情/创建派单事务(报修单状态流转)/更新/完成/删除,行级权限,单号 WH-REP-YYYY-NNNN,防 SQL 注入,LogService 埋点)
- [x] 1.4 Controller:repair.controller.ts(GET /api/repair-requests、GET /api/repair-requests/:id、GET/POST/PUT/DELETE /api/repair-dispatchs、PUT /api/repair-dispatchs/:id/complete)
- [x] Task 2: 后端维保模块(maintenance_order + maintenance_detail)
- [x] 2.1 实体:MaintenanceOrder.entity.ts、MaintenanceDetail.entity.ts(对齐 db_design D9,表已存在)
- [x] 2.2 DTO:maintenance_order.dto.ts(Query/Create/Update 含明细数组校验)
- [x] 2.3 Service:MaintenanceService(主从事务创建/更新、列表/详情含明细、完成、删除,行级权限,LogService 埋点)
- [x] 2.4 Controller:maintenance.controller.ts(/api/maintenance-orders 全端点 + /:id/complete)
- [x] Task 3: 鉴权接入与菜单同步
- [x] 3.1 rbac.middleware.ts PERMISSION_MAP 增加 '/api/repair-requests'/'/api/repair-dispatchs' → 'dispatch:repair'、'/api/maintenance-orders' → 'dispatch:maintenance'
- [x] 3.2 db_seed.sql:父菜单 id=3 下新增子菜单 id=36 报修派单 /dispatch/repair、id=37 维保派单 /dispatch/maintenance(component views/dispatch/repair/index、views/dispatch/maintenance/index),sys_role_menu 绑定 ADMIN(1)/SALESMAN(2)
- [x] 3.3 远程库同步:INSERT/UPDATE sys_menu(36/37)+ sys_role_menu + 序列收敛
- [x] Task 4: 前端 API 封装
- [x] 4.1 client/src/api/repair.ts:repairRequestApi(列表/详情)、repairDispatchApi(列表/详情/创建/更新/完成/删除)
- [x] 4.2 client/src/api/maintenance.ts:maintenanceApi(列表/详情/创建/更新/完成/删除)
- [x] 4.3 确认/复用 worker 下拉接口与 customer 下拉接口(workerApi.getOptions、customerApi.getCustomerOptions 已存在复用)
- [x] Task 5: 前端报修派单页面
- [x] 5.1 views/dispatch/repair/index.vue:双页签(报修单 + 报修派单);搜索区(客户/状态/日期/关键字)、表格、分页
- [x] 5.2 派单弹窗:选报修单+选电工,提交调 POST /api/repair-dispatchs
- [x] 5.3 编辑/完成/删除弹窗与确认,状态标签,无 v-html
- [x] Task 6: 前端维保派单页面
- [x] 6.1 views/dispatch/maintenance/index.vue:搜索区/表格/分页
- [x] 6.2 创建/编辑弹窗:单头字段 + 明细行动态增删(设备/巡检项),主从提交
- [x] 6.3 完成/删除确认、状态标签,无 v-html
- [x] Task 7: 路由与菜单注册
- [x] 7.1 client/src/router/index.ts:/dispatch/repair、/dispatch/maintenance 路由(meta.permission = dispatch:repair / dispatch:maintenance)
- [x] Task 8: 构建与安全验证
- [x] 8.1 server npx tsc --noEmit 通过;client npx vue-tsc --noEmit 通过
- [x] 8.2 SQL 注入审查(全参数化)、前端 XSS 审查(无 v-html)
- [x] 8.3 接口鉴权验证(401)、核心接口冒烟(列表/创建/详情/完成/删除/重复派单 400)
# Task Dependencies
- Task 3 依赖 Task 1/2 的 controller 路由确定
- Task 4 依赖 Task 1/2 的接口定义
- Task 5 依赖 Task 4
- Task 6 依赖 Task 4
- Task 7 依赖 Task 5/6 的页面文件
- Task 8 依赖全部