Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java =================================================================== diff -u -r33859 -r33885 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 33859) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 33885) @@ -67,7 +67,6 @@ import com.forgon.disinfectsystem.entity.basedatamanager.position.Position; import com.forgon.disinfectsystem.entity.basedatamanager.reportoption.GoodsOption; import com.forgon.disinfectsystem.entity.basedatamanager.rinser.Rinser; -import com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.Sterilizer; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; @@ -99,6 +98,7 @@ import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseInstanceManager; +import com.forgon.exception.CleanMethodNotTheSameException; import com.forgon.exception.SystemException; import com.forgon.log.model.Log; import com.forgon.log.service.LogManager; @@ -768,6 +768,17 @@ String classifyBasketInfo = paramMap.get("classifyBasketInfo"); Map classifyBasketInfoMap = getClassifyBasketInfoMap(classifyBasketInfo); + //清洗程序的符合性检查:清洗程序和清洗物品的清洗程序是否符合(DGSETYY-32) + boolean enableValidationOfDisinfectProgram = + ConfigUtils.getSystemSetConfigByNameBool("enableValidationOfDisinfectProgram", false); + if(enableValidationOfDisinfectProgram){ + String validateDisinfectProgram = paramMap.get("validateDisinfectProgram"); + if(StringUtils.equals(validateDisinfectProgram, Constants.STR_YES) + && MapUtils.isNotEmpty(classifyBasketInfoMap)){ + validateDisinfectProgram(washRecord.getDisinfectProgram(), classifyBasketInfoMap.keySet()); + } + } + // 清洗的单件材料 String washMaterialJson = paramMap.get("materialData"); Map materialIdMap = new LinkedHashMap(); @@ -4362,27 +4373,13 @@ } } - @Override - public void validateDisinfectProgram(String disinfectProgram, String classifyBasketInfo) { + public void validateDisinfectProgram(String disinfectProgram, Collection classifyBasketId) { - boolean enableValidationOfDisinfectProgram = - ConfigUtils.getSystemSetConfigByNameBool("enableValidationOfDisinfectProgram", false); - if(!enableValidationOfDisinfectProgram){ + if(StringUtils.isBlank(disinfectProgram) || CollectionUtils.isEmpty(classifyBasketId)){ return; } - if(StringUtils.isBlank(disinfectProgram)){ - throw new RuntimeException("清洗程序不能为空!"); - } - if(StringUtils.isBlank(classifyBasketInfo)){ - return; - } - Map classifyBasketInfoMap = getClassifyBasketInfoMap(classifyBasketInfo); - if(MapUtils.isEmpty(classifyBasketInfoMap)){ - return; - } - Set errorDisinfectProgramToussNames = new HashSet(); String sql = String.format("select td.cleanMethod, td.name tousseName " + "from %s cb " @@ -4396,7 +4393,7 @@ ClassifiedItem.class.getSimpleName(), TousseDefinition.class.getSimpleName(), disinfectProgram, - SqlUtils.getNonStringFieldInLargeCollectionsPredicate("cb.id", classifyBasketInfoMap.keySet())); + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("cb.id", classifyBasketId)); ResultSet rs = null; try { rs = objectDao.executeSql(sql); @@ -4423,7 +4420,7 @@ message += String.format("%s】", StringTools.join(errorDisinfectProgramToussNames, "、")); } - throw new SystemException(message); + throw new CleanMethodNotTheSameException(message); } } Index: forgon-tools/src/main/java/com/forgon/exception/CleanMethodNotTheSameException.java =================================================================== diff -u --- forgon-tools/src/main/java/com/forgon/exception/CleanMethodNotTheSameException.java (revision 0) +++ forgon-tools/src/main/java/com/forgon/exception/CleanMethodNotTheSameException.java (revision 33885) @@ -0,0 +1,15 @@ +package com.forgon.exception; +/** + * 清洗程序不一致的异常 + * @author zhoupeimian + * @since 2022-06-01 + */ +public class CleanMethodNotTheSameException extends RuntimeException { + + private static final long serialVersionUID = 8252854912924831234L; + + public CleanMethodNotTheSameException(String message){ + super(message); + } + +} Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashAndDisinfectRecordAction.java =================================================================== diff -u -r33859 -r33885 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashAndDisinfectRecordAction.java (.../WashAndDisinfectRecordAction.java) (revision 33859) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashAndDisinfectRecordAction.java (.../WashAndDisinfectRecordAction.java) (revision 33885) @@ -48,6 +48,7 @@ import com.forgon.disinfectsystem.tousse.imagefilemanager.service.ImageFileManager; import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; import com.forgon.disinfectsystem.washanddisinfectmanager.washanddisinfectrecord.service.WashAndDisinfectRecordManager; +import com.forgon.exception.CleanMethodNotTheSameException; import com.forgon.exception.SystemException; import com.forgon.exception.service.ExceptionHandler; import com.forgon.log.service.LogManager; @@ -176,6 +177,10 @@ try { // 调用 washAndDisinfectRecordManager.saveOrUpdateWashAndDisinfectRecord(washAndDisinfectRecord, paramMap); + } catch (CleanMethodNotTheSameException e) { + JSONObject result = JSONUtil.buildJsonObject(false, e.getMessage()); + JSONUtil.addProperty(result, "cleanMethodNotTheSame", true); + message = result.toString(); } catch (Exception e) { message = JSONUtil.buildJsonObject(false, e.getMessage()).toString(); } @@ -805,20 +810,4 @@ return img; } - /** - * 清洗程序的符合性检查:清洗程序和清洗物品的清洗程序是否符合(DGSETYY-32) - */ - public void validateDisinfectProgram(){ - String disinfectProgram = StrutsParamUtils.getPraramValue("disinfectProgram", null); - String classifyBasketInfo = StrutsParamUtils.getPraramValue("classifyBasketInfo", null); - JSONObject result = JSONUtil.buildJsonObject(true); - try { - washAndDisinfectRecordManager.validateDisinfectProgram(disinfectProgram, classifyBasketInfo); - } catch (SystemException e) { - result = JSONUtil.buildJsonObject(false, e.getMessage()); - } catch (Exception e) { - result = JSONUtil.buildJsonObject(false, "清洗程序的符合性检查失败:" + e.getMessage()); - } - StrutsResponseUtils.output(result); - } } Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManager.java =================================================================== diff -u -r33859 -r33885 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManager.java (.../WashAndDisinfectRecordManager.java) (revision 33859) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManager.java (.../WashAndDisinfectRecordManager.java) (revision 33885) @@ -350,8 +350,8 @@ /** * 清洗程序的符合性检查:清洗程序和清洗物品的清洗程序是否符合(DGSETYY-32) * @param disinfectProgram 清洗程序 - * @param classifyBasketInfo 篮筐物品:[{"classifyBasketID":220273,"personInCharge":"","personInChargeCode":"","position":""}] + * @param classifyBasketId 篮筐ID */ - public void validateDisinfectProgram(String disinfectProgram, String classifyBasketInfo); + public void validateDisinfectProgram(String disinfectProgram, Collection classifyBasketId); }