Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r24834 -r24911 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 24834) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 24911) @@ -898,8 +898,11 @@ + (recyclingApplication.getId() != null ? " and po.id !=" + recyclingApplication.getId() : "") + " order by po.applicationTime desc"; - return (RecyclingApplication) objectDao.getBySql_ForUpdate( + RecyclingApplication recyclingApplicationInDb = (RecyclingApplication) objectDao.getBySql_ForUpdate( RecyclingApplication.class.getName(), sql); + //然后比较原有待合并的单与新提交的单物品是否符合合并的条件(主要是消毒物品),后期再考虑具体的实例,目前已改为申请的物品如果含有消毒物品则都不合并 @since 2018-11-16 shuyongfu + + return recyclingApplicationInDb; } /** @@ -3944,6 +3947,7 @@ * 判断是否需要合并申请单. * 1.如果申请科室为二级供应室:科室供应室配置的手术室手工录入申请单是否合并为true则返回true,为false则返回false; * 2.如果申请科室不为二级供应室:则判断科室供应室配置的申请单是否自动合并申请单为true,则返回true,为false则返回false; + * 3.20181116经与罗乐沟通,如果新提交的申请单含有消毒物品时,则不再合并申请单(此为通用的处理) * @param recyclingApplication 申请单 * @param supplyRoomConfig 科室供应室配置 * @param autoMerge 是否自动合并申请单 @@ -3953,6 +3957,16 @@ RecyclingApplication recyclingApplication, SupplyRoomConfig supplyRoomConfig, boolean autoMerge) { + List items = recyclingApplication.getApplicationItems(); + if(CollectionUtils.isNotEmpty(items)){ + for (TousseItem tousseItem : items) { + if(tousseItem.isDisinfection()){ + //新申请单中含有消毒物品,所以此单都不合并 + return false; + } + } + } + //是否二级供应室 boolean isSupplyRoom2 = false; String applyDetpCode = recyclingApplication.getDepartCoding(); @@ -4001,8 +4015,8 @@ //只有待回收状态的器械包申请单、待发货状态的一次性物品申请单才会被合并;通用申请单目前不会被合并 boolean isNeedToBeMerged = false; - //1.先从单类型、状态等本身信息字段来判断该申请单是否满足合并的条件,决定是否需要合并(因为这个判断效率高所以放在第一步) - if (((InvoicePlan.TYPE_TOUSSE_APPLICATION_FORM.equals(appType) || InvoicePlan.TYPE_DISINFECT_GOODS_APPLICATION_FORM.equals(appType)) + //1.先从单类型、状态等本身信息字段来判断该申请单是否满足合并的条件,决定是否需要合并(因为这个判断效率高所以放在第一步):消毒物品申请单也都不再合并 + if (((InvoicePlan.TYPE_TOUSSE_APPLICATION_FORM.equals(appType)/* || InvoicePlan.TYPE_DISINFECT_GOODS_APPLICATION_FORM.equals(appType)*/) && (StringUtils.isBlank(recyclingStatus) || InvoicePlan.RECYCLINGSTATUS_AWAITRECYCLE.equals(recyclingStatus)) && (StringUtils.isBlank(deliverStatus) || InvoicePlan.DELIVERSTATUS_AWAITDELIVER.equals(deliverStatus))) || (InvoicePlan.TYPE_DIPOSABLE_GOODS_APPLICATION_FORM.equals(appType) && InvoicePlan.DELIVERSTATUS_AWAITDELIVER.equals(deliverStatus))