Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java =================================================================== diff -u -r23136 -r24112 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java (.../SterilizationRecordAction.java) (revision 23136) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java (.../SterilizationRecordAction.java) (revision 24112) @@ -300,6 +300,8 @@ StrutsResponseUtils.output(JSONObject.fromObject(result)); } + } catch (RuntimeException e) { + StrutsResponseUtils.output(false,e.getMessage()); } catch (Exception e) { StrutsResponseUtils.output(false,"保存失败"); } Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r24092 -r24112 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 24092) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 24112) @@ -1569,6 +1569,33 @@ tousseInstances); } } + + //验证该炉灭菌记录所有包(不追溯的包除外)的灭菌方式是否有不同,如果有则进行提示并抛出异常给前端 + List sterilingModeList = null; + if(CollectionUtils.isNotEmpty(allNewTousseInstances)){ + for (TousseInstance tousseInstance : allNewTousseInstances) { + if(!tousseInstance.getTousseDefinition().traceable()){ + continue; + } + if(sterilingModeList == null){ + sterilingModeList = new ArrayList(); + } + String sterilingMode = tousseInstance.getSterilingMode(); + if(StringUtils.isBlank(sterilingMode)){ + if(!sterilingModeList.contains("")){ + sterilingModeList.add(""); + } + }else{ + if(sterilingModeList.contains(sterilingMode)){ + sterilingModeList.add(sterilingMode); + } + } + } + } + + if(CollectionUtils.isNotEmpty(sterilingModeList) && sterilingModeList.size() > 1){ + throw new RuntimeException("该炉灭菌记录有多种不同灭菌方式的物品,请先移除其它灭菌方式物品!"); + } for (TousseInstance tousseInstance : allNewTousseInstances) { // 如果器械包状态为已灭菌,说明该器械包是重新灭菌