diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/AdviceManageAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/AdviceManageAppServiceImpl.java index 888de2d1..1428e2ee 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/AdviceManageAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/AdviceManageAppServiceImpl.java @@ -511,6 +511,9 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService { // 签发操作 boolean is_sign = AdviceOpType.SIGN_ADVICE.getCode().equals(adviceOpType); + // 收集已处理的requestId,用于批量更新状态 + List processedRequestIds = new ArrayList<>(); + // 声明长期医嘱诊疗请求 ServiceRequest longServiceRequest; // 新增 + 修改 (长期医嘱) @@ -555,6 +558,9 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService { } } iServiceRequestService.saveOrUpdate(longServiceRequest); + if (longServiceRequest.getId() != null) { + processedRequestIds.add(longServiceRequest.getId()); + } } // 声明临时医嘱诊疗请求 @@ -603,6 +609,9 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService { } } iServiceRequestService.saveOrUpdate(tempServiceRequest); + if (tempServiceRequest.getId() != null) { + processedRequestIds.add(tempServiceRequest.getId()); + } // 保存时,保存诊疗费用项 if (is_save) { @@ -654,6 +663,14 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService { } } + // 批量更新诊疗医嘱状态(使用 update 确保状态字段必定更新) + if (!processedRequestIds.isEmpty()) { + iServiceRequestService.update(null, + new LambdaUpdateWrapper() + .set(ServiceRequest::getStatusEnum, + is_save ? RequestStatus.DRAFT.getValue() : RequestStatus.ACTIVE.getValue()) + .in(ServiceRequest::getId, processedRequestIds)); + } } /**