Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java =================================================================== diff -u -r37330 -r37743 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java (.../InvoicePlanManagerImpl.java) (revision 37330) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java (.../InvoicePlanManagerImpl.java) (revision 37743) @@ -6997,10 +6997,15 @@ } //(2)终止状态检查:如果状态为“部分终止”或者“已终止”,则提示:申请单已经进行了终止,不能进行修改! + // “部分终止”(【外来器械申请单】部分终止时允许修改非终止状态的器械包信息)GDSZYY-237 if(StringUtils.equals(recyclingApplication.getEndStatus(), RecyclingApplication.STATUS_PART_END) - || StringUtils.equals(recyclingApplication.getEndStatus(), RecyclingApplication.STATUS_END)){ + && !recyclingApplication.isForeignTousseAppliaction()){ return "申请单已经进行了终止,不能进行修改!"; } + // “已终止” + if(StringUtils.equals(recyclingApplication.getEndStatus(), RecyclingApplication.STATUS_END)){ + return "申请单已经进行了终止,不能进行修改!"; + } //(3)发货状态检查:如果状态为“部分发货”或者“已发货”,则提示:申请单已经发货,不能进行修改! if(StringUtils.equals(recyclingApplication.getDeliverStatus(), RecyclingApplication.DELIVERSTATUS_PARTDELIVERED) || StringUtils.equals(recyclingApplication.getDeliverStatus(), RecyclingApplication.DELIVERSTATUS_DELIVERED)){ Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java =================================================================== diff -u -r37532 -r37743 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 37532) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 37743) @@ -931,17 +931,19 @@ if(CollectionUtils.isNotEmpty(originalItems)){ for (TousseItem item : originalItems) { if(!tousseItemIdSet.contains(item.getId())){ + /*//已终止的物品不能删除! + if(item.terminated() && ForeignTousseApplication.ACTION_TYPE_UPDATE.equals(actionType)){ + throw new RuntimeException("物品已经终止,不能删除!"); + }*/ deleteItems.add(item); } } foreignTousseApplication.getApplicationItems().removeAll(deleteItems); objectDao.deleteAll(deleteItems); } foreignTousseApplication.setApplicationItems(foreignTousseItems); - if(CollectionUtils.isNotEmpty(deleteItems)){ - // 部分接收的申请单,删除申请单物品后,需要重新统计包状态、回收状态、发货状态、加急状态 - this.computeAndSetStatus(foreignTousseApplication); - } + // 重新统计包状态、回收状态、发货状态、加急状态 + invoicePlanManager.computeAndSetStatus(foreignTousseApplication); } /** @@ -1007,12 +1009,14 @@ // 统计单上已经回收的外来器械包GDSZYY-106 List originalItems = foreignTousseApplication.getApplicationItems(); + Map originalTousseItemMap = new HashMap(); Map recycleTousseItemMap = new HashMap(); if(CollectionUtils.isNotEmpty(originalItems)){ for (TousseItem tousseItem : originalItems) { if(tousseItem.getRecyclingAmount() != null && tousseItem.getRecyclingAmount() > 0){ recycleTousseItemMap.put(tousseItem.getTousseDefinitionId(), tousseItem); } + originalTousseItemMap.put(tousseItem.getTousseDefinitionId(), tousseItem); } } @@ -1055,6 +1059,16 @@ tousseDefinitionIdSet.add(tousseDefinitionId); continue; } + //“修改”申请单时,终止状态的或者“包状态”不为“待接收”的外来器械包不允许修改包内材料GDSZYY-237 + if(ForeignTousseApplication.ACTION_TYPE_UPDATE.equals(actionType)){ + TousseItem tousseItem = originalTousseItemMap.get(tousseDefinitionId); + if(tousseItem != null + && (tousseItem.terminated() + || !StringUtils.equals(tousseItem.getPackageStatus(), ForeignTousseApplication.RECYCLINGSTATUS_AWAITRECEIVE))){ + tousseDefinitionIdSet.add(tousseDefinitionId); + continue; + } + } if(DatabaseUtil.isPoIdValid(tousseDefinitionId)){ // 旧单上已经有的包 tousseDefinition = tousseDefinitionManager.get(tousseDefinitionId);