Index: ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/definition/action/QualityMonitoringDefinitionAction.java =================================================================== diff -u -r30828 -r31129 --- ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/definition/action/QualityMonitoringDefinitionAction.java (.../QualityMonitoringDefinitionAction.java) (revision 30828) +++ ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/definition/action/QualityMonitoringDefinitionAction.java (.../QualityMonitoringDefinitionAction.java) (revision 31129) @@ -27,6 +27,7 @@ import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washanddisinfectrecord.WashAndDisinfectRecord; import com.forgon.disinfectsystem.qualitymonitoring.definition.service.QualityMonitoringDefinitionManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; +import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseInstanceManager; import com.forgon.tools.StrutsParamUtils; import com.forgon.tools.StrutsResponseUtils; import com.forgon.tools.db.DatabaseUtil; @@ -52,6 +53,12 @@ private TousseDefinitionManager tousseDefinitionManager; + private TousseInstanceManager tousseInstanceManager; + + public void setTousseInstanceManager(TousseInstanceManager tousseInstanceManager) { + this.tousseInstanceManager = tousseInstanceManager; + } + public void setTousseDefinitionManager( TousseDefinitionManager tousseDefinitionManager) { this.tousseDefinitionManager = tousseDefinitionManager; @@ -187,93 +194,102 @@ try{ if (StringUtils.isNotBlank(barcode) && StringUtils.isNotBlank(qmDefinitionId)) { - TousseInstance tousseInstance = null; - BarcodeDevice barcodeDevice = (BarcodeDevice) objectDao.getByProperty(BarcodeDevice.class.getSimpleName(), "barcode", barcode); - if(barcodeDevice instanceof IDCardInstance){ - IDCardInstance idCardInstance = (IDCardInstance) barcodeDevice; - List tousseInstances = idCardInstance.getTousseInstances(objectDao); - if(CollectionUtils.isNotEmpty(tousseInstances)){ - Collections.sort(tousseInstances, - new Comparator() { - @Override - public int compare(TousseInstance b1, - TousseInstance b2) { - return b2.getOperationTime().compareTo( - b1.getOperationTime()); - } - - }); - tousseInstance = tousseInstances.get(0); - } - }else if(barcodeDevice instanceof TousseInstance){ - tousseInstance = (TousseInstance) barcodeDevice; - } - if (tousseInstance != null) { - TousseDefinition td = tousseInstance.getTousseDefinition(); - - //1、验证当前科室是否有配置处理对应器械包 - //非一、二级供应室的用户(临床科室用户)的所属科室如果是质量监测项的所属科室,要允许录入质量监测记录,不进行【科室配置处理的器械包】的检查(DGSDBZXYY-84) - /*tousseDefinitionManager.validateCssdHandleTousses(AcegiHelper.getCurrentOrgUnitCode(), + // 当扫描包定义设置为不追溯的器械包条码时,弹出提示信息:“该物品是不追溯的包,请检查炉号炉次是否正确!” + if(StringUtils.isNotBlank(tousseInstanceManager.checkIsFixedBarcode(barcode))){ + obj = JSONUtil.buildJsonObject(false, "该物品是不追溯的包,请检查炉号炉次是否正确!"); + obj.put("isTraceble", "否"); + }else{ + TousseInstance tousseInstance = null; + BarcodeDevice barcodeDevice = (BarcodeDevice) objectDao.getByProperty(BarcodeDevice.class.getSimpleName(), "barcode", barcode); + if(barcodeDevice instanceof IDCardInstance){ + IDCardInstance idCardInstance = (IDCardInstance) barcodeDevice; + List tousseInstances = idCardInstance.getTousseInstances(objectDao); + if(CollectionUtils.isNotEmpty(tousseInstances)){ + Collections.sort(tousseInstances, + new Comparator() { + @Override + public int compare(TousseInstance b1, + TousseInstance b2) { + return b2.getOperationTime().compareTo( + b1.getOperationTime()); + } + + }); + tousseInstance = tousseInstances.get(0); + } + }else if(barcodeDevice instanceof TousseInstance){ + tousseInstance = (TousseInstance) barcodeDevice; + } + + if (tousseInstance != null) { + TousseDefinition td = tousseInstance.getTousseDefinition(); + + //1、验证当前科室是否有配置处理对应器械包 + //非一、二级供应室的用户(临床科室用户)的所属科室如果是质量监测项的所属科室,要允许录入质量监测记录,不进行【科室配置处理的器械包】的检查(DGSDBZXYY-84) + /*tousseDefinitionManager.validateCssdHandleTousses(AcegiHelper.getCurrentOrgUnitCode(), AcegiHelper.getCurrentOrgUnitName(), td.getTousseType(), tousseInstance.getTousseName());*/ - - QualityMonitoringDefinition qualityMonitoringConfig = qualityMonitoringDefinitionManager - .getQualityMonitoringDefinitionById(qmDefinitionId); - - //2、责任人取决于“责任环节”,如果是装配管理,则取装配员,如果是审核打包则取审核人,如果是灭菌管理则取灭菌员 - String responsiblePerson = ""; - if (qualityMonitoringConfig != null) { - String responsibilityPart = qualityMonitoringConfig.getResponsibilityPart(); - if (StringUtils.isNotBlank(responsibilityPart)) { - // 装配管理 - if (responsibilityPart - .indexOf(QualityMonitoringDefinition.QUALITYMONITORING_MODULE_NAME_PACKING) != -1) { - responsiblePerson = appendToSourceStrWithTargetStr( - responsiblePerson, - tousseInstance.getOperator()); - } - // 审核打包 - if (responsibilityPart - .indexOf(QualityMonitoringDefinition.QUALITYMONITORING_MODULE_NAME_REVIEW) != -1) { - // 去重 - if ((";" + responsiblePerson + ";").indexOf((";" - + tousseInstance.getReviewer() + ";")) == -1) { + + QualityMonitoringDefinition qualityMonitoringConfig = qualityMonitoringDefinitionManager + .getQualityMonitoringDefinitionById(qmDefinitionId); + + //2、责任人取决于“责任环节”,如果是装配管理,则取装配员,如果是审核打包则取审核人,如果是灭菌管理则取灭菌员 + String responsiblePerson = ""; + if (qualityMonitoringConfig != null) { + String responsibilityPart = qualityMonitoringConfig.getResponsibilityPart(); + if (StringUtils.isNotBlank(responsibilityPart)) { + // 装配管理 + if (responsibilityPart + .indexOf(QualityMonitoringDefinition.QUALITYMONITORING_MODULE_NAME_PACKING) != -1) { responsiblePerson = appendToSourceStrWithTargetStr( responsiblePerson, - tousseInstance.getReviewer()); + tousseInstance.getOperator()); } - } - // 灭菌管理 - if (responsibilityPart - .indexOf(QualityMonitoringDefinition.QUALITYMONITORING_MODULE_NAME_STERILIZATION) != -1) { - if (DatabaseUtil.isPoIdValid(tousseInstance.getSterilizationRecord_id())) { + // 审核打包 + if (responsibilityPart + .indexOf(QualityMonitoringDefinition.QUALITYMONITORING_MODULE_NAME_REVIEW) != -1) { // 去重 - String sterilizationUser = tousseInstance.getSterilizationUser(); - - if ((";" + responsiblePerson + ";") - .indexOf((";" + sterilizationUser + ";")) == -1) { + if ((";" + responsiblePerson + ";").indexOf((";" + + tousseInstance.getReviewer() + ";")) == -1) { responsiblePerson = appendToSourceStrWithTargetStr( responsiblePerson, - sterilizationUser); + tousseInstance.getReviewer()); } } + // 灭菌管理 + if (responsibilityPart + .indexOf(QualityMonitoringDefinition.QUALITYMONITORING_MODULE_NAME_STERILIZATION) != -1) { + if (DatabaseUtil.isPoIdValid(tousseInstance.getSterilizationRecord_id())) { + // 去重 + String sterilizationUser = tousseInstance.getSterilizationUser(); + + if ((";" + responsiblePerson + ";") + .indexOf((";" + sterilizationUser + ";")) == -1) { + responsiblePerson = appendToSourceStrWithTargetStr( + responsiblePerson, + sterilizationUser); + } + } + } } } + + TousseDefinition ancestorTD = tousseDefinitionManager.get(td.getAncestorID()); + obj.put("success", true); + obj.put("tousseInstanceId", tousseInstance.getId()); + obj.put("barcode", tousseInstance.getBarcode()); + obj.put("tousseName", tousseInstance.getTousseName()); + obj.put("tousseType", td.getTousseType()); + obj.put("isRecycle", td.getIsRecycling()); + obj.put("responsiblePerson", responsiblePerson); + obj.put("tousseDefinitionId", td.getId()); + obj.put("sterilizerName", tousseInstance.getSterilizerName()); + obj.put("sterileFrequency", tousseInstance.getSterileFrequency()); + obj.put("isTraceble", ancestorTD.getIsTraceable()); + }else{ + obj = JSONUtil.buildJsonObject(false, "找不到器械包信息,请输入正确的条码."); } - - obj.put("success", true); - obj.put("tousseInstanceId", tousseInstance.getId()); - obj.put("barcode", tousseInstance.getBarcode()); - obj.put("tousseName", tousseInstance.getTousseName()); - obj.put("tousseType", td.getTousseType()); - obj.put("isRecycle", td.getIsRecycling()); - obj.put("responsiblePerson", responsiblePerson); - obj.put("tousseDefinitionId", td.getId()); - obj.put("sterilizerName", tousseInstance.getSterilizerName()); - obj.put("sterileFrequency", tousseInstance.getSterileFrequency()); - }else{ - obj = JSONUtil.buildJsonObject(false, "找不到器械包信息,请输入正确的条码."); } }else{ obj = JSONUtil.buildJsonObject(false, "未选监测项或者未输入条码.");