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:勘察完成提交技术复核与复核按钮改名
This commit is contained in:
1 parent
dff366a823
commit
7c915f8946
18 files changed
+553
No files matched your search
@@ -0,0 +1,10 @@
|
||||
# Checklist
|
||||
|
||||
- [x] 后端存在 `PUT /api/survey-orders/:id/complete` 接口,仅「现场勘察中(1)」工单可流转为「待技术复核(2)」,含可见性校验与审计日志
|
||||
- [x] `client/src/api/surveyOrder.ts` 提供 `complete(id)` 方法
|
||||
- [x] 勘察明细页头部出现「勘察完成」按钮,且仅「现场勘察中」状态显示
|
||||
- [x] 点击「勘察完成」确认后:先保存勘察明细 → 成功后调 complete → 工单变「待技术复核」→ 跳回台账页
|
||||
- [x] 台账主操作按钮文字由「审核测绘成果」改为「技术复核」且点击逻辑正常
|
||||
- [x] 复核弹窗标题由「审核测绘成果」改为「技术复核」
|
||||
- [x] `server` 编译通过
|
||||
- [x] `client` 编译通过(`npm run check`)
|
||||
@@ -0,0 +1,42 @@
|
||||
# 勘察完成提交技术复核 + 复核按钮改名 Spec
|
||||
|
||||
## Why
|
||||
现场勘察员完成勘察后缺少「勘察完成」操作,工单无法从「现场勘察中」流转到「待技术复核」;同时台账「审核测绘成果」按钮文案与复核语义不符,需统一为「技术复核」。
|
||||
|
||||
## What Changes
|
||||
- **后端**:新增勘察完成状态流转接口 `PUT /api/survey-orders/:id/complete`,将「现场勘察中(1)」工单流转为「待技术复核(2)」(仅此状态可流转;权限校验沿用现有可见性校验;写审计日志)
|
||||
- **前端 API**:`client/src/api/surveyOrder.ts` 新增 `complete(id)` 客户端方法
|
||||
- **勘察明细页**(`client/src/views/dispatch/survey/detail.vue`):头部操作区新增「勘察完成」按钮,仅「现场勘察中」状态显示;点击弹确认 → 先调用保存勘察明细逻辑 → 成功后再调用 complete 接口 → 跳回台账页
|
||||
- **台账页**(`client/src/views/dispatch/survey/index.vue`):「审核测绘成果」改为「技术复核」——主操作按钮文字(`primaryAction`)与复核弹窗标题同时修改
|
||||
- 状态枚举/标签不变(「待技术复核」标签已存在)
|
||||
|
||||
## Impact
|
||||
- Affected specs: 无(独立增量)
|
||||
- Affected code:
|
||||
- `server/src/controller/survey_order.controller.ts`
|
||||
- `server/src/service/survey_order.service.ts`
|
||||
- `client/src/api/surveyOrder.ts`
|
||||
- `client/src/views/dispatch/survey/detail.vue`
|
||||
- `client/src/views/dispatch/survey/index.vue`
|
||||
|
||||
## ADDED Requirements
|
||||
### Requirement: 勘察完成提交技术复核
|
||||
系统 SHALL 提供勘察明细页「勘察完成」操作:先保存当前勘察明细,再将工单状态由「现场勘察中(1)」变更为「待技术复核(2)」。
|
||||
|
||||
#### Scenario: Success case
|
||||
- **WHEN** 勘察明细页工单处于「现场勘察中」状态,用户点击「勘察完成」并确认
|
||||
- **THEN** 系统先保存当前勘察明细,成功后调用状态流转接口,工单变更为「待技术复核」,页面跳回台账页,台账该行主按钮显示「技术复核」
|
||||
|
||||
#### Scenario: 非勘察中状态
|
||||
- **WHEN** 工单处于待指派/待技术复核/已归档/已取消等状态
|
||||
- **THEN** 勘察明细页不显示「勘察完成」按钮
|
||||
|
||||
### Requirement: 复核按钮改名
|
||||
系统 SHALL 将台账「审核测绘成果」主操作按钮文字与复核弹窗标题统一改为「技术复核」。
|
||||
|
||||
## MODIFIED Requirements
|
||||
### Requirement: 勘察完成状态流转接口
|
||||
新增后端接口 `PUT /api/survey-orders/:id/complete`:仅「现场勘察中」状态可流转至「待技术复核」;无权限返回 403;工单不存在返回 404;状态不符返回 400;成功后写审计日志。
|
||||
|
||||
## REMOVED Requirements
|
||||
无。
|
||||
@@ -0,0 +1,29 @@
|
||||
# Tasks
|
||||
|
||||
## 后端状态流转接口
|
||||
- [x] Task 1: 新增「勘察完成」接口
|
||||
- [x] 1.1 `server/src/service/survey_order.service.ts` 新增 `complete(id, ctx)`:查工单 → 可见性校验(沿用 `isOrderVisible`)→ 仅 `STATUS.SURVEYING(1)` 可流转,将 `status` 更新为 `STATUS.PENDING_REVIEW(2)` → 返回 VO(`toVO` + `decorate`)→ 写审计日志(`logAction`,操作名「勘察派单」、动作「勘察完成」)
|
||||
- [x] 1.2 `server/src/controller/survey_order.controller.ts` 新增 `@Put("/:id/complete")` 路由(须在 `@Get("/:id")` 等动态路由声明之后追加,放在 review 旁即可)
|
||||
- [x] 1.3 `client/src/api/surveyOrder.ts` 新增 `complete(id: number) => request.put('/survey-orders/' + id + '/complete')`
|
||||
|
||||
## 勘察明细页按钮
|
||||
- [x] Task 2: detail.vue 新增「勘察完成」按钮
|
||||
- [x] 2.1 头部操作区(「保存勘察明细」旁)新增「勘察完成」按钮,仅 `order.status === SURVEY_STATUS.SURVEYING` 时显示,样式与「保存勘察明细」区分(如 dashed/带图标)
|
||||
- [x] 2.2 点击弹 `Modal.confirm`(标题如「确认勘察完成?」、说明「将保存当前勘察明细并提交技术复核」)→ 确认后先执行现有保存明细逻辑(复用 `handleSaveAll`)→ 保存成功后调用 `surveyOrderApi.complete(order.id)` → 成功 `message.success` 并 `router.push('/dispatch/survey')` 跳回台账页
|
||||
- [x] 2.3 校验:非「现场勘察中」状态不渲染该按钮;按钮加载态防重复提交
|
||||
|
||||
## 台账复核按钮改名
|
||||
- [x] Task 3: 「审核测绘成果」→「技术复核」
|
||||
- [x] 3.1 `index.vue` `primaryAction` 中 `{ label: '审核测绘成果' }` 改为 `{ label: '技术复核' }`
|
||||
- [x] 3.2 复核弹窗标题 `title="审核测绘成果"` 改为 `title="技术复核"`;`handlePrimary` 中 `action.label === '审核测绘成果'` 判断同步改为 `'技术复核'`
|
||||
|
||||
## 验证
|
||||
- [x] Task 4: 编译 + 接口/浏览器验证
|
||||
- [x] 4.1 `server` TypeScript 编译通过(npm run build 或 tsc,视项目脚本而定)
|
||||
- [x] 4.2 `client` 编译通过(`npm run check`,vue-tsc)
|
||||
- [x] 4.3 浏览器实测(可选,用现有数据不写库):勘察明细页「勘察完成」按钮仅勘察中状态显示、点击出现确认框;台账页「技术复核」按钮文字与弹窗标题正确
|
||||
|
||||
# Task Dependencies
|
||||
- Task 2 依赖 Task 1(complete 接口)
|
||||
- Task 3 独立于 Task 1/2
|
||||
- Task 4 依赖 Task 1、2、3
|
||||
Reference in new issue
Block a user