Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/service/ProxyDisinfectionManager.java =================================================================== diff -u -r32988 -r33005 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/service/ProxyDisinfectionManager.java (.../ProxyDisinfectionManager.java) (revision 32988) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/service/ProxyDisinfectionManager.java (.../ProxyDisinfectionManager.java) (revision 33005) @@ -115,4 +115,12 @@ */ public JSONArray printProxyDisinfection(String proxyDisinfectionIds); + /** + * 判断代理灭菌单是否可以录入该器械包 + * @param tousseInstance + * @param handleDepartCoding + * @param proxyDisinfection + */ + public void canApplicantTousseInstance(TousseInstance tousseInstance, String handleDepartCoding, ProxyDisinfection proxyDisinfection); + } Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/service/ServiceManagerImpl.java =================================================================== diff -u -r32985 -r33005 --- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/service/ServiceManagerImpl.java (.../ServiceManagerImpl.java) (revision 32985) +++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/service/ServiceManagerImpl.java (.../ServiceManagerImpl.java) (revision 33005) @@ -3725,16 +3725,19 @@ } if(DatabaseUtil.isPoIdValid(proxyDisinfectionId)){ + String currentOrgUnitCode = AcegiHelper.getCurrentOrgUnitCode(); ProxyDisinfection proxyDisinfection = proxyDisinfectionManager.get(proxyDisinfectionId); if(proxyDisinfection != null && (StringUtils.equals(proxyDisinfection.getDeliverStatus(), InvoicePlan.RECYCLINGSTATUS_AWAITRECEIVE) - || StringUtils.equals(proxyDisinfection.getDeliverStatus(), InvoicePlan.RECYCLINGSTATUS_PARTAWAITRECEIVE))){ - if(!DatabaseUtil.isPoIdValid(proxyDisinfectionIdOfTi) || proxyDisinfectionIdOfTi.longValue() != proxyDisinfectionId){ + || StringUtils.equals(proxyDisinfection.getDeliverStatus(), InvoicePlan.RECYCLINGSTATUS_PARTAWAITRECEIVE)) + && StringUtils.equals(proxyDisinfection.getHandleDepartCoding(), currentOrgUnitCode)){ + proxyDisinfectionManager.canApplicantTousseInstance(tousseInstance, currentOrgUnitCode, proxyDisinfection); + /*if(!DatabaseUtil.isPoIdValid(proxyDisinfectionIdOfTi) || proxyDisinfectionIdOfTi.longValue() != proxyDisinfectionId){ throw new SystemException(String.format("%s %s未生成代理灭菌单,请联系%s(来源科室)!", tousseInstance.getBarcode(),tousseInstance.getTousseName(),tousseInstance.getDepart())); - } + }*/ } //如果该代理灭菌单的处理与当前登录用户所属科室不一致时,进行提示 - if(!StringUtils.equals(AcegiHelper.getCurrentOrgUnitCode(), proxyDisinfection.getHandleDepartCoding())){ + if(!StringUtils.equals(currentOrgUnitCode, proxyDisinfection.getHandleDepartCoding())){ throw new SystemException("该器械包已经申请代理灭菌,不能重复申请。"); } }