Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r23955 -r23973 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 23955) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 23973) @@ -3927,8 +3927,34 @@ TousseItem existTousseItem = tousseNameAndTypeToTousseItem.get(key); if (existTousseItem != null) { isMatched = true; - oldItem.setEditAmount(oldItem.getAmount() + newItem.getEditAmount()); - + //simon-add:如果为消毒物品,需要特殊处理 + if(oldItem.getTousseType().equals(TousseDefinition.PACKAGE_TYPE_DISINFECTION)){ + String isApplyEntireTousse=oldItem.getIsApplyEntireTousse(); + //如果是整包申请,包数量相加,材料数量不相加;如果非整包申请,包数量不相加,材料数量相加 + if(isApplyEntireTousse!=null&&isApplyEntireTousse=="是"){ + oldItem.setEditAmount(oldItem.getAmount() + newItem.getEditAmount()); + }else{ + TousseDefinition td_old = tousseDefinitionManager.getTousseDefinitionByTousseItem(oldItem); + List materialInstances_old = td_old.getMaterialInstances(); + + TousseDefinition td_new= tousseDefinitionManager.getTousseDefinitionByTousseItem(newItem); + List materialInstances_new = td_new.getMaterialInstances(); + + if(materialInstances_old != null||materialInstances_new != null){ + for (MaterialInstance ms_old : materialInstances_old) { + for (MaterialInstance ms_new : materialInstances_new) { + if(ms_old.getMaterialName().equals(ms_new.getMaterialName())){ + ms_old.setCount(ms_old.getCount()+ms_new.getCount()); + break; + } + } + } + } + } + //拆包申请 + }else{ + oldItem.setEditAmount(oldItem.getAmount() + newItem.getEditAmount()); + } if (tousseItemDetails == null) { tousseItemDetails = "【系统添加备注】新增[" + newItem.getTousseName() + " "