Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefOptionCleanMethodManagerImpl.java =================================================================== diff -u -r39852 -r40602 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefOptionCleanMethodManagerImpl.java (.../TousseDefOptionCleanMethodManagerImpl.java) (revision 39852) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefOptionCleanMethodManagerImpl.java (.../TousseDefOptionCleanMethodManagerImpl.java) (revision 40602) @@ -158,8 +158,11 @@ } //器械包祖先包id及器械包名称的map Map tousseDefinitionIdNameMap = new HashMap(); + //器械包祖先包id及默认清洗程序的map + Map tousseDefinitionDefaultCleanMethodMap = new HashMap(); //器械包祖先包id及可用清洗程序的map - Map> tousseDefinitionCleanMethodMap = getClassifyBasketTousseDefinitionCleanMethodMap(classifyBasketId, tousseDefinitionIdNameMap); + Map> tousseDefinitionCleanMethodMap = new HashMap>(); + getClassifyBasketTousseDefinitionCleanMethodMap(classifyBasketId, tousseDefinitionIdNameMap, tousseDefinitionCleanMethodMap, tousseDefinitionDefaultCleanMethodMap); if(MapUtils.isEmpty(tousseDefinitionIdNameMap)){ return; } @@ -171,12 +174,19 @@ Long tousseDefinitionId = tousseEntry.getKey(); String tousseName = tousseEntry.getValue(); List optionCleanMethodList = tousseDefinitionCleanMethodMap.get(tousseDefinitionId); + String defaultCleanMethod = tousseDefinitionDefaultCleanMethodMap.get(tousseDefinitionId); if(CollectionUtils.isEmpty(optionCleanMethodList) && allowAnyCleanMethod){ + //【科室供应室设置】新增字段“无可选清洗程序处理方案”为:“允许使用任意清洗程序”时,可选清洗程序为空的器械包,可以添加到任意清洗程序的清洗记录中DGSETYY-119 continue; } - if(optionCleanMethodList.contains(disinfectProgram)){ + if(CollectionUtils.isNotEmpty(optionCleanMethodList) && optionCleanMethodList.contains(disinfectProgram)){ + //“可选清洗程序”中,包含了当前清洗机设置的清洗程序,则允许添加到清洗记录中 continue; } + if(StringUtils.equals(defaultCleanMethod, disinfectProgram)){ + //“默认清洗程序”和当前清洗机设置的清洗程序相同,则允许添加到清洗记录中 + continue; + } tousseNameList.add(tousseName); } if(CollectionUtils.isEmpty(tousseNameList)){ @@ -188,15 +198,15 @@ } /** - * 查询篮筐内物品的可用清洗程序(默认清洗程序+可选灭菌程序) - * @param classifyBasketIdList - * @param tousseDefinitionIdNameMap - * @return + * 查询篮筐内物品的可选清洗程序map、默认默认清洗程序map、器械包名称map + * @param classifyBasketIdList 清洗篮筐实例id + * @param tousseDefinitionIdNameMap 器械包名称map + * @param tousseDefinitionCleanMethodMap 可选清洗程序map + * @param tousseDefinitionDefaultCleanMethodMap 默认默认清洗程序map */ - private Map> getClassifyBasketTousseDefinitionCleanMethodMap(Collection classifyBasketIdList, Map tousseDefinitionIdNameMap) { - Map> tousseDefinitionCleanMethodMap = new HashMap>(); + private void getClassifyBasketTousseDefinitionCleanMethodMap(Collection classifyBasketIdList, Map tousseDefinitionIdNameMap, Map> tousseDefinitionCleanMethodMap, Map tousseDefinitionDefaultCleanMethodMap) { if(CollectionUtils.isEmpty(classifyBasketIdList)){ - return tousseDefinitionCleanMethodMap; + return; } //只检查器械包类型为:器械包、消毒物品、敷料包、外部代理灭菌 的器械包 List tousseTypeList = new ArrayList(); @@ -234,8 +244,8 @@ if(optionCleanMethodList == null){ optionCleanMethodList = new ArrayList(); } - if(StringUtils.isNotBlank(defaultCleanMethod) && !optionCleanMethodList.contains(defaultCleanMethod)){ - optionCleanMethodList.add(defaultCleanMethod); + if(StringUtils.isNotBlank(defaultCleanMethod)){ + tousseDefinitionDefaultCleanMethodMap.put(id, defaultCleanMethod); } if(StringUtils.isNotBlank(optionCleanMethod) && !optionCleanMethodList.contains(optionCleanMethod)){ optionCleanMethodList.add(optionCleanMethod); @@ -249,7 +259,6 @@ } finally { DatabaseUtil.closeResultSetAndStatement(rs); } - return tousseDefinitionCleanMethodMap; } }