Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r29264 -r29618 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 29264) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 29618) @@ -23,8 +23,6 @@ import java.util.Set; import java.util.stream.Collectors; - - import javax.servlet.ServletOutputStream; import net.sf.json.JSONArray; @@ -3191,9 +3189,28 @@ } } + List useRecordConvertRecyclingApplicationNotMergeDeptCodeList = null; + //该科室的使用记录是否不需要合并转换(null表示与其无关、true表示不需要合并) + Boolean useRecordOfCurrentDepartNoNeedConvert = null; + //使用记录转换申请单时,不进行申请单合并的科室编码 + String useRecordConvertRecyclingApplicationNotMergeDeptCodes = CssdUtils.getSystemSetConfigByName("useRecordConvertRecyclingApplicationNotMergeDeptCodes"); + if(StringUtils.isNotBlank(useRecordConvertRecyclingApplicationNotMergeDeptCodes)){ + try{ + JSONArray useRecordConvertRecyclingApplicationNotMergeDeptCodeArray = JSONArray.fromObject(useRecordConvertRecyclingApplicationNotMergeDeptCodes); + if(CollectionUtils.isNotEmpty(useRecordConvertRecyclingApplicationNotMergeDeptCodeArray)){ + useRecordConvertRecyclingApplicationNotMergeDeptCodeList = new ArrayList<>(); + useRecordConvertRecyclingApplicationNotMergeDeptCodeList.addAll(useRecordConvertRecyclingApplicationNotMergeDeptCodeArray); + } + if(useRecordConvertRecyclingApplicationNotMergeDeptCodeList.contains(departCoding)){ + useRecordOfCurrentDepartNoNeedConvert = Boolean.TRUE; + } + }catch(Exception e){ + throw new SystemException("配置项:useRecordConvertRecyclingApplicationNotMergeDeptCodes配置的值的格式不正确"); + } + } + //手术间为空临床科室也合并单 boolean allowUseReordToApplicationMergeWhenOperationRoomIsBlank = CssdUtils.getSystemSetConfigByNameBool("allowUseReordToApplicationMergeWhenOperationRoomIsBlank",false); - //DGSDBZXYY-31 使用记录转单时,高低温物品自动分单({"mergeRegular":"depart","lowTempSterilizationModes":["低温等离子","环氧乙烷"]}) since:2020-07-14 String mergeRegularOfLowTemperatureToussesAfterExtracted = CssdUtils.getSystemSetConfigByName("mergeRegularOfLowTemperatureToussesAfterExtracted"); @@ -3204,7 +3221,8 @@ //将使用记录中要转换的器械包实例按上面配的灭菌方式进行分类 Map> sterilizationModeToTousseNameToAmountMap = new HashMap>(); Map> sterilizationModeToTousseBarcodeToTdIdMap = new HashMap>(); - if(StringUtils.isNotBlank(mergeRegularOfLowTemperatureToussesAfterExtracted)){ + //如果该科室未配置不需要合并,且又开启低温物品合并转换申请单配置项时 + if(!Boolean.TRUE.equals(useRecordOfCurrentDepartNoNeedConvert) && StringUtils.isNotBlank(mergeRegularOfLowTemperatureToussesAfterExtracted)){ try{ JSONObject mergeRegularOfLowTemperatureToussesAfterExtractedJSONObject = JSONObject.fromObject(mergeRegularOfLowTemperatureToussesAfterExtracted); @@ -3299,6 +3317,10 @@ //查询config.js的合并机制(规则):中大附一为按手术间进行合并 String useRecordConvertRecyclingApplicationMergeRegular = CssdUtils.getSystemSetConfigByName("useRecordConvertRecyclingApplicationMergeRegular"); + //如果该科室配置了不需要合并时,将合并规则的变量置为Null,相当于后续的实现逻辑当作不合并处理 + if(Boolean.TRUE.equals(useRecordOfCurrentDepartNoNeedConvert)){ + useRecordConvertRecyclingApplicationMergeRegular = null; + } //申请单类型(2表示分开的申请单,1为通用申请单) if(InvoicePlan.APPLICATION_FORM_TYPE_SPLIT.equals(applicationFormType)){ invoicePlanTypeAfterTousseConvert = InvoicePlan.TYPE_TOUSSE_APPLICATION_FORM; @@ -5782,11 +5804,12 @@ * @return */ private String getRemarkByRecyclingApplicationAndProjectConfig(RecyclingApplication recyclingApplication){ - String useRecordMergeConvertRecyclingApplicationRemark = CssdUtils.getSystemSetConfigByName("useRecordMergeConvertRecyclingApplicationRemark"); + @SuppressWarnings("unchecked") List useRecordList = objectDao.findBySql(UseRecord.class.getSimpleName(), " where id in (select useRecordId from UseRecordToRecycleApplication where invoicePlanId="+ recyclingApplication.getId() +")"); Set remarks = new HashSet(); if(CollectionUtils.isNotEmpty(useRecordList)){ + String useRecordMergeConvertRecyclingApplicationRemark = CssdUtils.getSystemSetConfigByName("useRecordMergeConvertRecyclingApplicationRemark"); //如果有配置使用记录转换申请单后的备注格式 if(StringUtils.isNotBlank(useRecordMergeConvertRecyclingApplicationRemark)){ //如果备注格式只需要@operationAmount或@tousseAmount并且又未配置@circuitNurseLabelName、@circuitNurseLabelName、@circuitNurse、@patientName、@useRecordRemark、@hospitalNumber其中任何一个时等时 @@ -5852,11 +5875,16 @@ if(StringUtils.isNotBlank(useRecord.getPatientName())){ useRecordMergeConvertRecyclingApplicationRemark += "病人:" + useRecord.getPatientName() + ";"; } - remarks.add(useRecordMergeConvertRecyclingApplicationRemark); + if(StringUtils.isNotBlank(useRecordMergeConvertRecyclingApplicationRemark)){ + remarks.add(useRecordMergeConvertRecyclingApplicationRemark); + } } } } - return StringUtils.join(remarks , "、"); + if(CollectionUtils.isNotEmpty(remarks)){ + return StringUtils.join(remarks , "、"); + } + return recyclingApplication.getRemark(); } /**