Files
his/bug468_analysis.md

2.9 KiB
Raw Blame History

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 为空),无需额外代码改动。

已有提交记录:

验证通过:

  • 表格列存在line 92-96
  • 列位置正确(申请单号之后)
  • parseBillStatus 覆盖所有后端状态
  • 筛选表单支持状态过滤
  • 操作列按状态动态显示按钮
  • 后端 SQL computed_status 计算正确