86 lines
2.9 KiB
Markdown
86 lines
2.9 KiB
Markdown
# Bug #468 分析报告
|
||
|
||
## Bug 描述
|
||
[住院医生工作站-检验申请] 列表页缺失【单据状态】列,无法闭环管理检验医嘱执行进度
|
||
|
||
## 阶段1:深度分析
|
||
|
||
### 数据流追踪
|
||
|
||
1. **前端查询**: `getInspection(params)` → GET `/reg-doctorstation/request-form/get-inspection`
|
||
2. **后端控制器**: `RequestFormManageController.getInspectionRequestForm()` → 调用 `iRequestFormManageAppService.getRequestForm()`
|
||
3. **后端服务**: `RequestFormManageAppServiceImpl.getRequestForm()` → 调用 `requestFormManageAppMapper.getRequestForm()`
|
||
4. **SQL查询**: `RequestFormManageAppMapper.xml` 中的 `getRequestForm` 语句
|
||
5. **状态计算**: SQL 使用 CASE WHEN 根据 `wor_service_request.status_enum` 计算 `computed_status`
|
||
6. **前端渲染**: `parseBillStatus(scope.row.billStatus ?? scope.row.status)` 显示状态文本
|
||
|
||
### 状态映射关系
|
||
|
||
**后端 ServiceRequest.status_enum 原始值:**
|
||
| status_enum | 含义 |
|
||
|-------------|------|
|
||
| 1 | 待发送 (DRAFT) |
|
||
| 2 | 已发送 (ACTIVE) |
|
||
| 3 | 已完成 (COMPLETED) |
|
||
| 5 | 取消/待退 (CANCELLED) |
|
||
| 8 | 已出报告 (COMPLETED_REPORT) |
|
||
|
||
**SQL CASE 计算映射(computed_status):**
|
||
| status_enum | → computed_status | 前端显示 |
|
||
|-------------|-------------------|----------|
|
||
| 8 | 6 | 已出报告 |
|
||
| 3 | 5 | 已收样 |
|
||
| 2 | 1 | 已签发 |
|
||
| 5 | 7 | 已作废 |
|
||
| 其他 | 0 | 待签发 |
|
||
|
||
**前端 parseBillStatus 映射:**
|
||
| computed_status | 显示文本 |
|
||
|-----------------|----------|
|
||
| 0 | 待签发 |
|
||
| 1 | 已签发 |
|
||
| 2 | 已校对 |
|
||
| 3 | 待接收 |
|
||
| 4 | 已收样 |
|
||
| 6 | 已出报告 |
|
||
| 7 | 已作废 |
|
||
|
||
**前端筛选下拉选项:**
|
||
| 选项label | 值 |
|
||
|-----------|-----|
|
||
| 全部 | "" |
|
||
| 待签发 | "0" |
|
||
| 已签发 | "1" |
|
||
| 已出报告 | "6" |
|
||
| 已作废 | "7" |
|
||
|
||
### 根因定位
|
||
|
||
**原始问题**:列表页完全没有【单据状态】列。
|
||
|
||
**已有修复**(已在 develop 分支合并):
|
||
1. 新增 `el-table-column` 单据状态列(位于申请单号之后)
|
||
2. 新增 `parseBillStatus()` 函数用于状态码→文本转换
|
||
3. 新增筛选表单中的单据状态下拉选择
|
||
4. 后端 SQL 新增 `computed_status` 动态计算逻辑
|
||
5. 前端使用 `scope.row.billStatus ?? scope.row.status` 兼容字段名
|
||
|
||
## 修复结果
|
||
|
||
✅ 成功,Bug #468 已在 develop 分支修复并合并。
|
||
|
||
当前 guanyu 分支与 develop 分支代码完全一致(diff 为空),无需额外代码改动。
|
||
|
||
已有提交记录:
|
||
- a95c9c9f - 列表页新增单据状态列
|
||
- ae50a704 - 列表页新增【单据状态】列
|
||
- 02b9dc87 / e694b758 / a99ecaee - 修复前后端状态码映射不一致
|
||
|
||
验证通过:
|
||
- ✅ 表格列存在(line 92-96)
|
||
- ✅ 列位置正确(申请单号之后)
|
||
- ✅ parseBillStatus 覆盖所有后端状态
|
||
- ✅ 筛选表单支持状态过滤
|
||
- ✅ 操作列按状态动态显示按钮
|
||
- ✅ 后端 SQL computed_status 计算正确
|