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 a3c7198c..ee0f18de 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 @@ -640,10 +640,10 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer return R.fail("标本已采集,无法撤回"); } - // 校验:只有已签发(status=2)的申请单可撤回 - boolean allActive = serviceRequests.stream() - .allMatch(sr -> RequestStatus.ACTIVE.getValue().equals(sr.getStatusEnum())); - if (!allActive) { + // 校验:有已签发(status=2)的医嘱可撤回(与SQL的EXISTS逻辑一致,允许多项申请单中部分为待签发) + boolean hasActive = serviceRequests.stream() + .anyMatch(sr -> RequestStatus.ACTIVE.getValue().equals(sr.getStatusEnum())); + if (!hasActive) { return R.fail("只有已签发且未采证的申请单可撤回"); }