Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r29423 -r29517 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 29423) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 29517) @@ -818,13 +818,17 @@ String sql = "select po.id,po.name from TousseDefinition po "; sql += createQuerySQL(searchString); - sql += " and po.tousseType='" + TousseDefinition.PACKAGE_TYPE_CUSTOM + "' order by po.name asc"; + sql += " and po.tousseType='" + TousseDefinition.PACKAGE_TYPE_CUSTOM + + "' and (po.isDisable is null or po.isDisable = '" + TousseDefinition.STR_NO + "') order by po.name asc"; boolean customTDDisplayWayByForDisplay = CssdUtils.getSystemSetConfigByNameBool("customTDDisplayWayByForDisplay", false); if(customTDDisplayWayByForDisplay){ - sql = String.format("select po.id,po.name from %s po %s and forDisplay=1 and po.tousseType='%s' order by po.name asc", TousseDefinition.class.getSimpleName(), + sql = String.format("select po.id,po.name from %s po %s and forDisplay=1 and po.tousseType='%s'" + + " and (po.isDisable is null or po.isDisable = '%s') order by po.name asc", + TousseDefinition.class.getSimpleName(), createQuerySQL(searchString), - TousseDefinition.PACKAGE_TYPE_CUSTOM); + TousseDefinition.PACKAGE_TYPE_CUSTOM, + TousseDefinition.STR_NO); } ResultSet rs = objectDao.executeSql(sql); Map toussesMap = new HashMap(); @@ -3691,6 +3695,8 @@ String modifyStr = ""; //若源器械包定义不为空则表明为:修改操作 boolean isUpdate = false; + //是否启用\停用器械包(自定义器械包) + boolean disableOrEnable = false; if(origineTd != null){ isUpdate = true; // 包类型能否修改 @@ -3713,6 +3719,9 @@ judgeCanUpdateDisinfectionTousse(origineTd, tousseDefinition); // 记录:基础属性修改日志 modifyStr = compareTousseDefinition(origineTd, tousseDefinition); + if(!StringUtils.equals(origineTd.getIsDisable(), tousseDefinition.getIsDisable())){ + disableOrEnable = true; + } String basePropertyUpdateLog = String.format("包定义ID:%s,修改信息:%s",origineTd.getId(), modifyStr); updateLog.put("basePropertyUpdateLog", basePropertyUpdateLog); // appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_TOUSSEDEFINITION, Log.TYPE_UPDATE, log); @@ -3799,6 +3808,9 @@ tousseDefinition.setWorkLoadStatisticalMethod(TousseDefinition.WORKLOAD_STATISTICAL_METHOD_PACK); tousseDefinition.setStatisticsReviewWorkload(TousseDefinition.STR_YES); saveCustomTousseDefinition(tousseDefinition, materialDefinitionConfigResult); + if(disableOrEnable){ + updateCustomTdDisableStatus(tousseDefinition); + } } //记录器械包定义所属科室的修改信息 JSONObject belongOrgUintsLog = new JSONObject(); @@ -3918,6 +3930,20 @@ } /** + * 自定义器械包启用/停用后,联动启用/停用同名的器械包和自定义器械包 + * @param tousseDefinition + */ + private void updateCustomTdDisableStatus(TousseDefinition tousseDefinition) { + String sql1 = String.format("update %s set isDisable = '%s' where ancestorID = %s and tousseType = '%s'", + TousseDefinition.class.getSimpleName(), tousseDefinition.getIsDisable(), tousseDefinition.getId(), TousseDefinition.PACKAGE_TYPE_CUSTOM); + objectDao.executeUpdate(sql1); + String sql2 = String.format("update %s set isDisable = '%s' where name = '%s' and tousseType = '%s' and id <> %s and forDisplay=1", + TousseDefinition.class.getSimpleName(), tousseDefinition.getIsDisable(), + tousseDefinition.getName()+"(自定义)", TousseDefinition.PACKAGE_TYPE_INSIDE, tousseDefinition.getId()); + objectDao.executeUpdate(sql2); + } + + /** * 如果包的类型为消毒物品,要检查是否修改了它的【是否整包申请】属性,如果属性为“否”, * 并且该消毒物品被定义了物品绑定关系,则需要解除物品绑定关系后再修改(DGSFYBJY-31) * @param origineTd