Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r37862 -r37863 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 37862) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 37863) @@ -3920,6 +3920,12 @@ if(StringUtils.isBlank(basketBarcode)){ throw new RecyclingRecordException("参数错误,保存失败!"); } + TousseItem tousseItem = tousseItemManager.find(applicationItems, tousseDefinitionID); + if(mergeForeign && isUserecordApplication && tousseDefinition.isForeignOrSplitTousse() + && tousseItem != null && !tousseItem.needInvoice()){ + //不需要装配任务 + continue; + } thisTimeTds.add(tousseDefinitionID); String [] barcodeArray = basketBarcode.split(";"); //回收拆包清洗且包定义的器械材料的清洗分类类型种类只有一种时,如果放入的篮筐的材料刚好能组成整数个器械包(无剩余器械),那么就要每个清洗篮筐对应创建1条装配任务,数量为篮筐材料组合起来的整数个; @@ -3932,6 +3938,29 @@ barcodeAndAmount.put(basketBarcode, json.getAmount()); } StringBuffer basketName = new StringBuffer(); + String idCardBarcode = json.getIdCardBarcode(); + IDCardInstance idCardInstance = null; + TousseInstance idCardTousseInstance = null; + if (!tousseDefinition.isDressing()&& !tousseDefinition.isHomeMadeTousse() + && tousseDefinition.needPacking()) { + if(StringUtils.isNotBlank(idCardBarcode)){ + idCardInstance = idCardInstanceManager.getIDCardInstanceByBarcode(idCardBarcode); + if(idCardInstance == null){ + throw new RecyclingRecordException(String.format("条码为%s的标识牌实例已被删除!", idCardBarcode)); + } + idCardTousseInstance = IDCardInstanceUtils.getLastOperatedTousseInstance(objectDao, idCardInstance); + String recyclingStatusOfIdCardBarcode = CssdUtils.getSystemSetConfigByName("recyclingStatusOfIdCardBarcode"); + if(StringUtils.isNotBlank(recyclingStatusOfIdCardBarcode) + && idCardTousseInstance != null){//有标识牌的,只回收状态为配置的状态 + if(StringUtils.isBlank(idCardTousseInstance.getStatus()) || recyclingStatusOfIdCardBarcode.indexOf(idCardTousseInstance.getStatus()) == -1){ + noPassIDCardInstances.add(idCardInstance); + } + } + } + } + if(noPassIDCardInstances.size() > 0){//有不符合条件的标识牌 没有必要再走下去 但需要继续循环找出其它不符合条件的标识牌 + continue; + } for (Entry entry : barcodeAndAmount.entrySet()) { basketBarcode = entry.getKey(); Integer amount = entry.getValue(); @@ -3953,35 +3982,9 @@ basketName.append(container.getContainerName()); } } - String idCardBarcode = json.getIdCardBarcode(); - TousseItem tousseItem = tousseItemManager.find(applicationItems, tousseDefinitionID); - if(mergeForeign && isUserecordApplication && tousseDefinition.isForeignOrSplitTousse() - && tousseItem != null && !tousseItem.needInvoice()){ - //不需要装配任务 - continue; - } // 非敷料包的,回收都会产生装配任务(消毒物品不追溯时,也不生产装配任务) if (!tousseDefinition.isDressing()&& !tousseDefinition.isHomeMadeTousse() &&tousseDefinition.needPacking()) { - IDCardInstance idCardInstance = null; - TousseInstance idCardTousseInstance = null; - if(StringUtils.isNotBlank(idCardBarcode)){ - idCardInstance = idCardInstanceManager.getIDCardInstanceByBarcode(idCardBarcode); - if(idCardInstance == null){ - throw new RecyclingRecordException(String.format("条码为%s的标识牌实例已被删除!", idCardBarcode)); - } - idCardTousseInstance = IDCardInstanceUtils.getLastOperatedTousseInstance(objectDao, idCardInstance); - String recyclingStatusOfIdCardBarcode = CssdUtils.getSystemSetConfigByName("recyclingStatusOfIdCardBarcode"); - if(StringUtils.isNotBlank(recyclingStatusOfIdCardBarcode) - && idCardTousseInstance != null){//有标识牌的,只回收状态为配置的状态 - if(StringUtils.isBlank(idCardTousseInstance.getStatus()) || recyclingStatusOfIdCardBarcode.indexOf(idCardTousseInstance.getStatus()) == -1){ - noPassIDCardInstances.add(idCardInstance); - } - } - } - if(noPassIDCardInstances.size() > 0){//有不符合条件的标识牌 没有必要再走下去 但需要继续循环找出其它不符合条件的标识牌 - continue; - } PackingTask task = findPackingTask(packingTasks, basketBarcode, tousseDefinitionID, idCardBarcode); //已装配 if (task == null && amount < 0) {