Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r37859 -r37861 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 37859) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 37861) @@ -3910,6 +3910,7 @@ + SqlUtils.getInLongListSql("po.tousseDefinition.id", tdIds)); } } + Set noPassIDCardInstances = new HashSet();//不同回收的标识牌 for (RecyclingBasketItemVo json : itemJsonList) { String tousseName = json.getTousseName(); Long tousseDefinitionID = json.getTousseDefinitionID(); @@ -3976,11 +3977,13 @@ if(StringUtils.isNotBlank(recyclingStatusOfIdCardBarcode) && idCardTousseInstance != null){//有标识牌的,只回收状态为配置的状态 if(StringUtils.isBlank(idCardTousseInstance.getStatus()) || recyclingStatusOfIdCardBarcode.indexOf(idCardTousseInstance.getStatus()) == -1){ - throw new RecyclingRecordException("该器械包未录入病人使用记录,不能回收"); + noPassIDCardInstances.add(idCardInstance); } } } - + if(noPassIDCardInstances.size() > 0){//有不符合条件的标识牌 没有必要再走下去 但需要继续循环找出其它不符合条件的标识牌 + continue; + } //已装配 if (task == null && amount < 0) { JSONObject description = new JSONObject(); @@ -4146,6 +4149,21 @@ } } } + if(noPassIDCardInstances.size() > 0){ + if(noPassIDCardInstances.size() > 1){ + StringBuffer msg = new StringBuffer(); + msg.append("如下标识牌未录入使用记录,不能回收:"); + for (IDCardInstance idCardInstance : noPassIDCardInstances) { + msg.append(idCardInstance.getBarcode()); + msg.append("、"); + } + throw new RecyclingRecordException("标识牌"+ msg.substring(0, msg.length() - 1)); + }else{ + for (IDCardInstance idCardInstance : noPassIDCardInstances) {//只会循环一次 + throw new RecyclingRecordException("标识牌"+ idCardInstance.getBarcode() +"未录入使用记录,不能进行回收。"); + } + } + } appLogManager.batchSaveLog(AcegiHelper.getLoginUser(), Log.MODEL_RECYCLINGRECORD, Log.TYPE_UPDATE, logArr); //如果是回收数量确认,那把所有跟回收记录关联的装配任务都设置成已确认 if(recyclingContext.getRecyclingAmountConfirm() || recyclingRecord.recyclingApplicationRecord()){