Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r15067 -r15075 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 15067) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 15075) @@ -332,19 +332,27 @@ //添加对应供应室处理器械包配置 tousseDefinitionManager.addCssdHandleToussesConfig(tousseDefinition); }else{ - //如果优先处理科室发生修改且供应室处理器械包配置未配置该包的处理科室,则新增对应供应室处理器械包配置 - CssdHandleTousses cssdHandleTousses = - (CssdHandleTousses)objectDao.getBySql(CssdHandleTousses.class.getSimpleName(), - " where tousseDefinitionId = " + tousseDefinition.getAncestorID() + " and orgUnitCode = '" + tousseDefinition.getHandlerDepartCode() + "'"); - String tousseType = tousseDefinition.getTousseType(); - if(cssdHandleTousses == null && (TousseDefinition.PACKAGE_TYPE_INSIDE.equals(tousseType) - || TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(tousseType) - || TousseDefinition.PACKAGE_TYPE_DRESSING.equals(tousseType))){ - tousseDefinitionManager.addCssdHandleToussesConfig(tousseDefinition); + //如果包类型为器械包、消毒物品或敷料包时,应该新增或更新供应室处理器械包配置,否则应该删除供应室处理器械包配置数据(防止包定义修改之前包类型为器械包、消毒物品或敷料包然后修改成外部代理灭菌等情况) + if(tousseDefinition.isInsideTousse() + || tousseDefinition.isDisinfection() + || tousseDefinition.isDressing()){ + //如果优先处理科室发生修改且供应室处理器械包配置未配置该包的处理科室,则新增对应供应室处理器械包配置 + CssdHandleTousses cssdHandleTousses = + (CssdHandleTousses)objectDao.getBySql(CssdHandleTousses.class.getSimpleName(), + " where tousseDefinitionId = " + tousseDefinition.getAncestorID() + " and orgUnitCode = '" + tousseDefinition.getHandlerDepartCode() + "'"); + String tousseType = tousseDefinition.getTousseType(); + if(cssdHandleTousses == null && (TousseDefinition.PACKAGE_TYPE_INSIDE.equals(tousseType) + || TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(tousseType) + || TousseDefinition.PACKAGE_TYPE_DRESSING.equals(tousseType))){ + tousseDefinitionManager.addCssdHandleToussesConfig(tousseDefinition); + }else{ + //否则更新任务组 + cssdHandleTousses.setTaskGroup(tousseDefinition.getTaskGroup()); + objectDao.saveOrUpdate(cssdHandleTousses); + } }else{ - //否则更新任务组 - cssdHandleTousses.setTaskGroup(tousseDefinition.getTaskGroup()); - objectDao.saveOrUpdate(cssdHandleTousses); + //修改保存时,如果不为器械包、消毒物品或敷料包则删除该包的供应室处理器械包配置 + objectDao.excuteSQL("delele from CssdHandleTousses where tousseDefinitionId=" + tousseDefinition.getAncestorID()); } } } catch (Exception e) {