Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r26252 -r26255 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 26252) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 26255) @@ -4120,10 +4120,9 @@ RecyclingApplication existApplication = null; SupplyRoomConfig supplyRoomConfig = supplyRoomConfigManager.getSystemParamsObj(); boolean autoMerge = supplyRoomConfig.getAutoMergeApplication(); - + boolean isNeedToBeMerged = false; if(autoMerge && !DatabaseUtil.isPoIdValid(recyclingApplication.getId())){ //只有待回收状态的器械包申请单、待发货状态的一次性物品申请单才会被合并;通用申请单目前不会被合并 - boolean isNeedToBeMerged = false; //1.先从单类型、状态等本身信息字段来判断该申请单是否满足合并的条件,决定是否需要合并(因为这个判断效率高所以放在第一步):消毒物品申请单也都不再合并 // TODO:已打印的单也不能被合并,需要增加这种检查 @@ -4138,16 +4137,14 @@ //2.再根据科室供应室的配置进行判断该项目、该申请科室是否启用或符合合并条件来决定该单是否需要合并(因为这个判断需要对比查询科室供应室的数据出来进行比较所以效率高、所以放在第二步) if(isNeedToBeMerged){ isNeedToBeMerged = isApplicationFormMerge(recyclingApplication,supplyRoomConfig, autoMerge); - } - existApplication = getSameStatusRecyclingApplicationForUpdate(recyclingApplication,isCommit); - //2.已打印或者已发货、部分发货的申请单不合并。 - if(existApplication !=null && (InvoicePlan.PRINT_STATUS_PRINTED == existApplication.getPrinted() || InvoicePlan.DELIVERSTATUS_DELIVERED.equals(existApplication.getDeliverStatus()) - || InvoicePlan.DELIVERSTATUS_PARTDELIVERED.equals(existApplication.getDeliverStatus()))){ - isNeedToBeMerged = false; - } + } //如果需要合并,则进行相应的处理 if (isNeedToBeMerged) { - if (existApplication != null) { + existApplication = getSameStatusRecyclingApplicationForUpdate(recyclingApplication,isCommit); + //3.已打印或者已发货、部分发货的申请单不合并。 + if (existApplication != null && InvoicePlan.PRINT_STATUS_PRINTED != existApplication.getPrinted() + && !InvoicePlan.DELIVERSTATUS_DELIVERED.equals(existApplication.getDeliverStatus()) + && !InvoicePlan.DELIVERSTATUS_PARTDELIVERED.equals(existApplication.getDeliverStatus())) { List needToBeAdded = new ArrayList(); Date modifyTime = recyclingApplication @@ -4338,10 +4335,12 @@ existApplication.setUrgency(mergedUrgency); sbf.append("您申请的物品已被合并到单号为【" + existApplication.getSerialNumber() + "】的申请单,提交成功!"); + }else{ + isNeedToBeMerged = false; } } } - if(existApplication == null){ + if(!isNeedToBeMerged){ existApplication = recyclingApplication; if (StringUtils.isBlank(recyclingApplication.getSerialNumber())) { recyclingApplication