diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java index a9c91436..a3f65304 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java @@ -647,11 +647,15 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer return R.fail("只有已签发且未采证的申请单可撤回"); } - // 将所有 ServiceRequest 状态改回待签发,与申请单展示状态同步 - iServiceRequestService.update( + // 将所有已签发的 ServiceRequest 状态改回待签发,与申请单展示状态同步 + boolean updated = iServiceRequestService.update( new ServiceRequest().setStatusEnum(RequestStatus.DRAFT.getValue()), new LambdaUpdateWrapper() - .in(ServiceRequest::getId, serviceRequestIds)); + .in(ServiceRequest::getId, serviceRequestIds) + .eq(ServiceRequest::getStatusEnum, RequestStatus.ACTIVE.getValue())); + if (!updated) { + return R.fail("撤回失败,医嘱状态已变更,请刷新后重试"); + } log.info("检验申请单撤回成功,requestFormId={}, prescriptionNo={}", requestFormId, prescriptionNo); return R.ok("撤回成功");