Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r19897 -r19925 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 19897) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 19925) @@ -3951,6 +3951,29 @@ } } + //如果启用允许外来器械拆分小包部分发货,判断其它拆分小包是否也已经发货,如果其它外来器械拆分小包未发货则不允许录使用记录 + if(ti.getTousseDefinition().isSplit() && CssdUtils.getSystemSetConfigByNameBool("allowPartlyInvoiceForeignTousse")){ + int count = objectDao.countBySql("select count(0) from " + TousseInstance.class.getSimpleName() + + " where tousseDefinition_id in (select id from "+ TousseDefinition.class.getSimpleName() + +" where parentId=" + ti.getTousseDefinition().getParentID() + ") and invoice_id is null"); + if(count > 0){ + obj.put(JSONUtil.JSON_KEY_MESSAGE, "该外来器械包还有其它拆分的部分器械包未发货!"); + return obj; + } + } + + //如果启用外来器械申请单是否允许申请多套外来器械包,判断该申请单的其它外来器械包是否也已经发货,如果其它外来器械包未发货则不允许录使用记录 + if(ti.getTousseDefinition().isForeignOrSplitTousse()){ + if(CssdUtils.getSystemSetConfigByNameBool("allowApplyMultipleForeignTousse") == true){ + int count = objectDao.countBySql("select count(0) from " + TousseInstance.class.getSimpleName() + + " where foreignTousseApp_id=" + ti.getForeignTousseApp_id() + " and invoice_id is null"); + if(count > 0){ + obj.put(JSONUtil.JSON_KEY_MESSAGE, "该外来器械包对应申请单还有其它的外来器械包未发货!"); + return obj; + } + } + } + // 3.检测该器械包有没有被召回 if (TousseInstance.STATUS_WAIT_FOR_RECALL.equals(ti.getStatus()) || TousseInstance.STATUS_RECALLED.equals(ti.getStatus())) { obj.put(JSONUtil.JSON_KEY_MESSAGE, "该器械包不能被使用,已被召回!");