Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r41441 -r41445 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 41441) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 41445) @@ -12546,6 +12546,7 @@ Map idDisposableGoodsMap = getThirdPartyChargeRecordDisposableGoodsMap(chargeRecordItems); Map nameUrgentLevelMap = getThirdPartyChargeRecordUrgentLevelMap(chargeRecordItems); Collection newTousseItemVoList = new ArrayList(); + Set disposableGoodsIdSet = new HashSet(); for (ThirdPartyChargeRecordItem chargeRecordItem : chargeRecordItems) { DisposableGoods disposableGoods = idDisposableGoodsMap.get(chargeRecordItem.getDisposableGoodsId()); if(disposableGoods == null){ @@ -12562,6 +12563,11 @@ tousseItemVo.setUnit(chargeRecordItem.getUnit()); tousseItemVo.setExpressInvoice(com.forgon.Constants.STR_NO); + if(disposableGoodsIdSet.contains(disposableGoods.getId())){ + throw new SystemException(String.format("申请单存在多个相同的一次性物品%s!", disposableGoods.getShowName())); + } + disposableGoodsIdSet.add(disposableGoods.getId()); + if(chargeRecordItem.getUrgentAmount() != null && chargeRecordItem.getUrgentAmount().intValue() > 0){ if(StringUtils.isBlank(chargeRecordItem.getUrgentLevel())){ throw new SystemException(String.format("一次性物品%s同步失败,加急等级名称不能为空!", disposableGoods.getShowName())); @@ -12672,6 +12678,8 @@ thirdPartyChargeRecord.setSyncDateTime(syncDateTime); List chargeRecordItems = new ArrayList(); + //物质编码不能为空,并且不能重复 + Set inventorySerialNumberSet = new HashSet(); for (ThirdPartyChargeRecordVoItem voItem : thirdPartyChargeRecordVo.getItems()) { ThirdPartyChargeRecordItem item = new ThirdPartyChargeRecordItem(); item.setAmount(voItem.getAmount()); @@ -12684,6 +12692,13 @@ item.setUnit(voItem.getUnit()); item.setUrgentAmount(voItem.getUrgentAmount()); item.setUrgentLevel(voItem.getUrgentLevel()); + if(StringUtils.isBlank(item.getInventorySerialNumber())){ + throw new SystemException(String.format("%s[%s]的物质编码为空!", voItem.getName(), voItem.getSpecification())); + } + if(inventorySerialNumberSet.contains(item.getInventorySerialNumber())){ + throw new SystemException(String.format("物品重复,存在多个%s[%s],物质编码为%s!", voItem.getName(), voItem.getSpecification(), item.getInventorySerialNumber())); + } + inventorySerialNumberSet.add(item.getInventorySerialNumber()); chargeRecordItems.add(item); } thirdPartyChargeRecord.setChargeRecordItems(chargeRecordItems);