Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r32691 -r32812 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 32691) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 32812) @@ -370,7 +370,7 @@ * @param urgentTousseItems 加急项 * @param tousseDefIdTousseItemVoMap 包定义Id跟TousseItemVo的映射 */ - private void setRecylingItems(RecyclingRecord recyclingRecord, + private void setRecylingItems(RecyclingContext recyclingContext, RecyclingRecord recyclingRecord, List recyclingBasketItems, List tousseDefinitions, List urgentTousseItems,Map tousseDefIdTousseItemVoMap, Set taskGroupOfModifiedNumOfTousse, JSONArray cameraPhotoInfo) { List items = recyclingRecord.getItems(); @@ -381,6 +381,7 @@ Set useRecordIds = new HashSet(); if (recyclingBasketItems != null) { Map tousseMap = getRecycleTousseItemMap(recyclingBasketItems); + String errorMessage = ""; for (Long tousseDefinitionID : tousseMap.keySet()) { Integer amount = tousseMap.get(tousseDefinitionID); @@ -389,8 +390,14 @@ Long ti_tdId = ti.getTousseDefinitionId(); if(ti_tdId != null && ti_tdId.longValue() == tousseDefinitionID.longValue()){ recyclingItem = ti; + if(recyclingContext.isExpressRecycling()){ + errorMessage += "【" + ti.getTousseName() +"】"; + } } } + if(StringUtils.isNotBlank(errorMessage)){ + continue;//继续获取本次回收记录中下一种可能已经回收过的物品,获取完再一起提示 + } if (recyclingItem == null) { recyclingItem = new RecyclingItem(); objectDao.saveOrUpdate(recyclingItem); @@ -470,6 +477,9 @@ } } } + if(StringUtils.isNotBlank(errorMessage)){ + throw new SystemException(recyclingRecord.getDepart() + "的" + errorMessage + "已经被回收,不会被快速回收!"); + } } //更新使用记录的recyclingStatus属性 @@ -1904,7 +1914,7 @@ setClassifyBaskets(basketItemJson,tousseDefinitions,record,containerMap,isSecondRecycleForForeignTousse,toReSetWorkloadMap,recyclingContext.getTousseIntoBasketInfo()); Set taskGroupOfModifiedNumOfTousse = new HashSet();//被修改数量的器械包的任务组 //设置回收物品 - setRecylingItems(record, tousseItemJson,tousseDefinitions,urgentTousseItems,tousseDefIdTousseItemVoMap,taskGroupOfModifiedNumOfTousse, cameraPhotoInfo); + setRecylingItems(recyclingContext, record, tousseItemJson,tousseDefinitions,urgentTousseItems,tousseDefIdTousseItemVoMap,taskGroupOfModifiedNumOfTousse, cameraPhotoInfo); //设置回收误差、器械报损 setMaterialErrorDamageDetail(record, errorDamageDetail,confirmation); //设置回收记录状态 @@ -2473,7 +2483,7 @@ setClassifyBaskets(basketItemJson,tousseDefinitions,record,containerMap,isSecondRecycleForForeignTousse,toReSetWorkloadMap,recyclingContext.getTousseIntoBasketInfo()); Set taskGroupOfModifiedNumOfTousse = new HashSet();//被修改数量的器械包的任务组 //设置回收物品(如果回收项为空或(所有回收项的物品申请数量及回收数量都为0、null)、同时对应申请单的申请项为空或(所有申请项的物品申请数量及回收数量都为0、null)),则删除此回收记录及对象设置为空 - setRecylingItems(record, tousseItemJson,tousseDefinitions,urgentTousseItems,tousseDefIdTousseItemVoMap,taskGroupOfModifiedNumOfTousse, null); + setRecylingItems(recyclingContext,record, tousseItemJson,tousseDefinitions,urgentTousseItems,tousseDefIdTousseItemVoMap,taskGroupOfModifiedNumOfTousse, null); if(record != null){ //设置回收误差、器械报损 Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/vo/RecyclingContext.java =================================================================== diff -u -r31767 -r32812 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/vo/RecyclingContext.java (.../RecyclingContext.java) (revision 31767) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/vo/RecyclingContext.java (.../RecyclingContext.java) (revision 32812) @@ -484,5 +484,10 @@ public void setTousseNames(String tousseNames) { this.tousseNames = tousseNames; } - + public boolean isExpressRecycling(){ + if(expressRecycling != null && expressRecycling){ + return true; + } + return false; + } }