Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java =================================================================== diff -u -r37743 -r37744 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java (.../InvoicePlanManagerImpl.java) (revision 37743) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/InvoicePlanManagerImpl.java (.../InvoicePlanManagerImpl.java) (revision 37744) @@ -2213,6 +2213,7 @@ instrumentSetTypeIdList = Arrays.asList(instrumentSetTypeIds.split(";")); } if (StringUtils.isNotBlank(tousseTypes)) { + //pda发货任务,物品类型选择"一次性物品" if(TousseItem.DIPOSABLE_YES.equals(tousseTypes)){ tousseItemCondition = String.format("%s and "+ tableColumnAliasPre +"diposable='%s' and "+ tableColumnAliasPre +"tousseType = '%s'", tousseItemCondition , TousseItem.DIPOSABLE_YES , TousseItem.TYPE_DIPOSABLE_GOODS); @@ -2221,6 +2222,7 @@ SqlUtils.getStringFieldInLargeCollectionsPredicate(tableColumnAliasPre +"disposableGoodsType", disposableGoodsTypeList)); } }else if(TousseItem.DIPOSABLE_NO.equals(tousseTypes)){ + //pda发货任务,物品类型选择"非一次性物品" tousseItemCondition = String.format("%s and "+ tableColumnAliasPre +"diposable='%s'", tousseItemCondition , TousseItem.DIPOSABLE_NO); if(hideUnprintedTousseItems){ @@ -2291,6 +2293,7 @@ SqlUtils.getNonStringFieldInLargeCollectionsPredicate("instrumentSetTypeId", instrumentSetTypeIdList)); } }else{ + //pc发货计划,选择了一个或多个物品类型 Set tousseTypeSet = buildTousseTypeSet(tousseTypes); if(CollectionUtils.isNotEmpty(tousseTypeSet)){ tousseItemCondition = String.format("%s and %s",tousseItemCondition,SqlUtils.getStringFieldInLargeCollectionsPredicate(tableColumnAliasPre +"tousseType", tousseTypeSet)); @@ -2364,6 +2367,7 @@ if(CollectionUtils.isNotEmpty(disposableGoodsTypeList)){ disposableGoodsTypeCondition = SqlUtils.getStringFieldInLargeCollectionsPredicate(tableColumnAliasPre +"disposableGoodsType", disposableGoodsTypeList); } + //申请项子条件(器械包分组、灭菌方式、器械种类id)集合 List tousseItemConditionList = new ArrayList(); if(CollectionUtils.isNotEmpty(tousseGroupIdList)){ tousseItemConditionList.add(String.format(" ("+ tableColumnAliasPre +"tousseDefinitionId in (select id from %s where ancestorID in (select id from %s where %s )))", @@ -2385,7 +2389,8 @@ StringUtils.join(tousseItemConditionList,"and"), disposableGoodsTypeCondition); }else{ - tousseItemCondition = String.format("%s and %s", tousseItemCondition , disposableGoodsTypeCondition); + tousseItemCondition = String.format("%s and ("+ tableColumnAliasPre +"tousseType = '%s' and %s or "+ tableColumnAliasPre +"tousseType <> '%s')", + tousseItemCondition , TousseItem.TYPE_DIPOSABLE_GOODS, disposableGoodsTypeCondition,TousseItem.TYPE_DIPOSABLE_GOODS); } } }else{ @@ -2472,6 +2477,7 @@ } } }else{ + //物品类型未选择任何选项时(包括pc和pda) if(hideUnprintedTousseItems){ tousseItemCondition = String.format("%s and (%s and "+ tableColumnAliasPre +"isPrinted=%s or %s)", tousseItemCondition , SqlUtils.getStringFieldInLargeCollectionsPredicate(tableColumnAliasPre +"tousseType", hideUnprintedTousseItemTousseTypeList),1, @@ -2508,7 +2514,8 @@ StringUtils.join(tousseItemConditionList,"and"), disposableGoodsTypeCondition); }else{ - tousseItemCondition = String.format("%s and %s", tousseItemCondition , disposableGoodsTypeCondition); + tousseItemCondition = String.format("%s and ("+ tableColumnAliasPre +"tousseType = '%s' and %s or "+ tableColumnAliasPre +"tousseType <> '%s')", + tousseItemCondition , TousseItem.TYPE_DIPOSABLE_GOODS, disposableGoodsTypeCondition,TousseItem.TYPE_DIPOSABLE_GOODS); } } }