Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r38364 -r38622 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 38364) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 38622) @@ -4450,6 +4450,10 @@ //【病人使用记录】新增根据病人信息合并转换申请单FSFY-101 String patientInfoSql = buildPatientInfoSql(useRecordList); + //开启高低温物品合并配置项mergeRegularOfLowTemperatureToussesAfterExtracted后, + //灭菌方式不在lowTempSterilizationModes中的器械包不能合并到灭菌方式为lowTempSterilizationModes的申请单上DGSDBZXYY-31 + String lowTempSterilizationModeNotInSql = buildLowTempSterilizationModeNotInSql(lowTempSterilizationModesJSONArray); + //申请单类型(2表示分开的申请单,1为通用申请单) if(InvoicePlan.APPLICATION_FORM_TYPE_SPLIT.equals(applicationFormType)){ for(String urgentStatus : urgentStatusSettleAccountDeptCodeTousseMap.keySet()){ @@ -4517,7 +4521,7 @@ if(StringUtils.isBlank(useRecordList.get(0).getSpecialInfection())){ recyclingApplication = (RecyclingApplication)objectDao.getBySql_ForUpdate(RecyclingApplication.class.getSimpleName(), "where 1=1 and useRecord is not null and departCoding='"+ departCoding + "' " - + "and (sterilizationMode is null or "+ SqlUtils.getStringFieldNotInCollectionsPredicate("sterilizationMode", lowTempSterilizationModesJSONArray) +")" + + lowTempSterilizationModeNotInSql + operationRoomSql + "and type in ('"+ InvoicePlan.TYPE_TOUSSE_APPLICATION_FORM +"') " + "and (endStatus is null) " + deliverStatusCondition @@ -4676,7 +4680,7 @@ if(StringUtils.isBlank(useRecordList.get(0).getSpecialInfection())){ recyclingApplication = (RecyclingApplication)objectDao.getBySql(RecyclingApplication.class.getSimpleName(), "where 1=1 and useRecord is not null and departCoding='"+ departCoding + "'" - + "and (sterilizationMode is null or "+ SqlUtils.getStringFieldNotInCollectionsPredicate("sterilizationMode", lowTempSterilizationModesJSONArray) +")" + + lowTempSterilizationModeNotInSql + "and type in ('"+ InvoicePlan.TYPE_TOUSSE_APPLICATION_FORM +"') " + "and (endStatus is null) " + deliverStatusCondition + "and (recyclingStatus='" + InvoicePlan.RECYCLINGSTATUS_AWAITRECYCLE + "' or recyclingStatus is null) " @@ -4951,6 +4955,7 @@ + settleAcountDepartCodeSql + urgentTousseSql + patientInfoSql + + lowTempSterilizationModeNotInSql + "order by po.id desc"); } //会否合并转换申请单(如果找到符合条件的待合并申请,且合并后的备注与条码长度不超4000就会合并) @@ -5106,6 +5111,7 @@ + settleAcountDepartCodeSql + urgentTousseSql + patientInfoSql + + lowTempSterilizationModeNotInSql + "order by po.id desc"); } @@ -5366,6 +5372,7 @@ + settleAcountDepartCodeSql + urgentTousseSql + patientInfoSql + + lowTempSterilizationModeNotInSql + "order by po.id desc"; //DGSETYY-43(若使用记录中含有特殊感染类型,则该使用记录只允许单独转换为一张新的申请单) @@ -5527,6 +5534,7 @@ + settleAcountDepartCodeSql + urgentTousseSql + patientInfoSql + + lowTempSterilizationModeNotInSql + "order by po.id desc"); } //会否合并转换申请单(如果找到符合条件的待合并申请,且合并后的备注与条码长度不超4000就会合并) @@ -6189,6 +6197,19 @@ } /** + * 开启高低温物品合并配置项mergeRegularOfLowTemperatureToussesAfterExtracted后,灭菌方式不在lowTempSterilizationModes中的器械包不能合并到灭菌方式为lowTempSterilizationModes的申请单上 + * @param lowTempSterilizationModesJSONArray + * @return + */ + private String buildLowTempSterilizationModeNotInSql(JSONArray lowTempSterilizationModesJSONArray) { + if(lowTempSterilizationModesJSONArray == null || lowTempSterilizationModesJSONArray.size() == 0){ + return ""; + } + String lowTempSterilizationModeNotInSql = " and (po.sterilizationMode is null or "+ SqlUtils.getStringFieldNotInCollectionsPredicate("po.sterilizationMode", lowTempSterilizationModesJSONArray) +") "; + return lowTempSterilizationModeNotInSql; + } + + /** * 灭菌方式-包名称-包实例列表的map * @return */