fix(#614): 请修复 Bug #614:【住院护士:医嘱执行 住院发退药】已发药医嘱取消执行后,未进入“取消执行”列表且未联动生成“住院退药单”
根因: - 全链路数据流检查:** - | 环节 | 状态 | 说明 | - |------|------|------| - | 📤 录入 | ✅ 正常 | "已执行"tab 勾选医嘱 → 点击"取消执行"按钮 | - | 📤 API 调用 | ✅ 正常 | `adviceCancel` 接口调用正确 | - | 📤 后端 Service | 🔧 已修改 | `adviceCancel` 方法有变量名拼写错误 | - | 📥 查询("取消执行"tab) | 🔧 已修改 | `requestStatus` 未重置导致查不到记录 | 修复: - | 📥 退药单生成 | 🔧 已修改 | 长期医嘱缺少 `updateCancelledStatusBatch` 调用 | - `medicalOrderExecution/index.vue:112-114` - 切换到"取消执行"tab 时,重置 `requestStatus` 为 `RequestStatus.CANCELLED`(5) - `requestStatus` 保持 `RequestStatus.COMPLETED`(3),后端 SQL 只返回 `request_status IN (3, 10)` 的记录,取消执行后的记录被过滤掉 - `AdviceProcessAppServiceImpl.java:576-583` - 修正变量名拼写错误:`creatRefundMedicationList(tempMedDispensedList, ...)` → `creatRefundMedicationList(longMedDispensedList, ...)` - 为长期已发药医嘱添加 `updateCancelledStatusBatch` 调用,确保药品请求状态变更为"待退药" - 长期医嘱取消执行时,退药单从空的 `tempMedDispensedList` 生成(实际无数据),且药品请求状态未更新 - ### 验证结果 - ✅ `vue-tsc --noEmit`:无新增类型错误 - ✅ `vite build`:构建成功(1分52秒) - ✅ `eslint`:无语法错误
This commit is contained in:
@@ -582,7 +582,10 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
||||
// 处理长期已发放的药品
|
||||
if (!longMedDispensedList.isEmpty()) {
|
||||
// 生成退药单
|
||||
this.creatRefundMedicationList(tempMedDispensedList, procedureIdMap);
|
||||
this.creatRefundMedicationList(longMedDispensedList, procedureIdMap);
|
||||
// 药品退药请求状态变更(待退药)
|
||||
medicationRequestService.updateCancelledStatusBatch(
|
||||
longMedDispensedList.stream().map(MedicationDispense::getMedReqId).toList(), null, null);
|
||||
}
|
||||
// 处理临时已发放药品
|
||||
if (!tempMedDispensedList.isEmpty()) {
|
||||
|
||||
@@ -111,6 +111,7 @@ function handleClick(tabName) {
|
||||
break;
|
||||
case 'cancel':
|
||||
exeStatus.value = 9;
|
||||
requestStatus.value = RequestStatus.CANCELLED;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user