Index: forgon-tools/src/main/java/com/forgon/tools/util/ConfigUtils.java =================================================================== diff -u -r40382 -r40619 --- forgon-tools/src/main/java/com/forgon/tools/util/ConfigUtils.java (.../ConfigUtils.java) (revision 40382) +++ forgon-tools/src/main/java/com/forgon/tools/util/ConfigUtils.java (.../ConfigUtils.java) (revision 40619) @@ -611,5 +611,27 @@ } return laststr; } + + /** + * 根据key获取config.js的配置,获取数组格式的配置项,例如:prohibitLoggingMonitoringRecordsForDesignatedStatuses:[“灭菌中”;“已发货“;”已签收”] + * @param key 配置项的key + * @return 配置项的value数组 + */ + public static List getSystemSetConfigListByName(String key) { + + List configList = new ArrayList(); + + if(StringUtils.isBlank(key)){ + return configList; + } + String configValueArrStr = getSystemSetConfigByName(key); + if(StringUtils.isNotBlank(configValueArrStr)){ + JSONArray configValueArr = JSONArray.fromObject(configValueArrStr); + for (int i = 0; i < configValueArr.size(); i++) { + configList.add(configValueArr.getString(i)); + } + } + return configList; + } } Index: ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/definition/action/QualityMonitoringDefinitionAction.java =================================================================== diff -u -r40495 -r40619 --- ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/definition/action/QualityMonitoringDefinitionAction.java (.../QualityMonitoringDefinitionAction.java) (revision 40495) +++ ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/definition/action/QualityMonitoringDefinitionAction.java (.../QualityMonitoringDefinitionAction.java) (revision 40619) @@ -36,6 +36,7 @@ import com.forgon.tools.date.DateTools; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.json.JSONUtil; +import com.forgon.tools.util.ConfigUtils; import com.opensymphony.xwork2.ModelDriven; /** @@ -292,6 +293,12 @@ } responsiblePerson = tousseInstanceManager.getTousseInstanceResponsiblePersonByQualityMonitoringResponsibilityPart(tousseInstance, qualityMonitoringConfig); } + + //【质量监测管理】【定期监测管理】新增禁止指定状态的器械包录入质量监测或定期监测DGSETYY-112 + List packageStatusList = ConfigUtils.getSystemSetConfigListByName("prohibitLoggingMonitoringRecordsForDesignatedStatuses"); + if(CollectionUtils.isNotEmpty(packageStatusList) && packageStatusList.contains(tousseInstance.getStatus())){ + throw new SystemException(String.format("%s(%s)当前状态为“%s”,不能录入。", tousseInstance.getTousseName(), tousseInstance.getBarcode(), tousseInstance.getStatus())); + } TousseDefinition ancestorTD = tousseDefinitionManager.get(td.getAncestorID()); obj.put("success", true); Index: ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java =================================================================== diff -u -r40505 -r40619 --- ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java (.../QualityMonitoringInstanceManagerImpl.java) (revision 40505) +++ ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java (.../QualityMonitoringInstanceManagerImpl.java) (revision 40619) @@ -268,6 +268,8 @@ // if (FormDefinition.FOMRTYPE_QUALITYMONITORING.equals(formDefinition.getFormType())) { // 保存器械包信息 if(StringUtils.isNotBlank(tousseInstanceInfo)){ + //【质量监测管理】【定期监测管理】新增禁止指定状态的器械包录入质量监测或定期监测DGSETYY-112 + List packageStatusList = ConfigUtils.getSystemSetConfigListByName("prohibitLoggingMonitoringRecordsForDesignatedStatuses"); for (int i = 0; tousseInstanceInfos != null && i < tousseInstanceInfos.length; i++) { String[] qmgProperty = tousseInstanceInfos[i].split("@"); if(qmgProperty != null && qmgProperty.length == 10){ @@ -277,6 +279,9 @@ if(ti != null){ qmg.setBarcode(ti.getBarcode()); qmg.setTousseDefinitionId(ti.getTousseDefinition().getId()); + if(CollectionUtils.isNotEmpty(packageStatusList) && packageStatusList.contains(ti.getStatus())){ + throw new SystemException(String.format("%s(%s)当前状态为“%s”,不能录入。", ti.getTousseName(), ti.getBarcode(), ti.getStatus())); + } }else{ qmg.setBarcode(qmgProperty[0]); } @@ -1145,9 +1150,14 @@ String originalSterilizerName = qmInstance.getSterilizerName(); qmInstance.setSterilizerName(sterilizerName); qmInstance.setSterilizerFrequency(sterilizerFre); + //【质量监测管理】【定期监测管理】新增禁止指定状态的器械包录入质量监测或定期监测DGSETYY-112 + List packageStatusList = ConfigUtils.getSystemSetConfigListByName("prohibitLoggingMonitoringRecordsForDesignatedStatuses"); if (StringUtils.isNotBlank(tousseInstanceId)) { TousseInstance ti = tousseInstanceManager.get(tousseInstanceId); if(ti != null){ + if(CollectionUtils.isNotEmpty(packageStatusList) && packageStatusList.contains(ti.getStatus())){ + throw new SystemException(String.format("%s(%s)当前状态为“%s”,不能录入。", ti.getTousseName(), ti.getBarcode(), ti.getStatus())); + } qmInstance.setTousseInstance(ti); // 录入定期监测记录时,页面上显示的炉次、炉号输入框要改为文本框,即既支持扫描器械包条码填写,也能让用户手工输入炉次炉号信息(DGZYY-179) if(StringUtils.isBlank(qmInstance.getSterilizerName())){ @@ -1172,6 +1182,9 @@ if (StringUtils.isNotBlank(scanTousseInstanceId)) { TousseInstance ti = tousseInstanceManager.get(scanTousseInstanceId); if(ti != null){ + if(CollectionUtils.isNotEmpty(packageStatusList) && packageStatusList.contains(ti.getStatus())){ + throw new SystemException(String.format("%s(%s)当前状态为“%s”,不能录入。", ti.getTousseName(), ti.getBarcode(), ti.getStatus())); + } qmInstance.setScanTousseInstance(ti); } } @@ -1739,6 +1752,13 @@ } else { throw new RuntimeException("该条码不是标识牌/器械包条码,请扫描标识牌/器械包条码"); } + + //【质量监测管理】【定期监测管理】新增禁止指定状态的器械包录入质量监测或定期监测DGSETYY-112 + List packageStatusList = ConfigUtils.getSystemSetConfigListByName("prohibitLoggingMonitoringRecordsForDesignatedStatuses"); + if(CollectionUtils.isNotEmpty(packageStatusList) && packageStatusList.contains(ti.getStatus())){ + throw new SystemException(String.format("%s(%s)当前状态为“%s”,不能录入。", ti.getTousseName(), ti.getBarcode(), ti.getStatus())); + } + return buildTousseJSON(ti); }