Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/qualitymonitoringmanager/qualitymonitoringconfig/QualityMonitoringDefinition.java =================================================================== diff -u -r39245 -r41365 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/qualitymonitoringmanager/qualitymonitoringconfig/QualityMonitoringDefinition.java (.../QualityMonitoringDefinition.java) (revision 39245) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/qualitymonitoringmanager/qualitymonitoringconfig/QualityMonitoringDefinition.java (.../QualityMonitoringDefinition.java) (revision 41365) @@ -233,6 +233,14 @@ */ private String resetWarnedNumberOfTimes; + /** + * “抽检器械必填” + * 用于控制登记质量监测记录时,是否要求器械材料为必填项 + * 选项为“是”、“否”,默认值为“否”。 + * QYSQXQRMYY-12 + */ + private String inspectMaterialRequired = Constants.STR_NO; + public String getResponsibilityPart() { return responsibilityPart; } @@ -491,5 +499,14 @@ public void setRecordQualifiedInformation(String recordQualifiedInformation) { this.recordQualifiedInformation = recordQualifiedInformation; } + + @Column(columnDefinition=" varchar(255) default '" + Constants.STR_NO + "' not null ") + public String getInspectMaterialRequired() { + return inspectMaterialRequired; + } + + public void setInspectMaterialRequired(String inspectMaterialRequired) { + this.inspectMaterialRequired = inspectMaterialRequired; + } } Index: ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java =================================================================== diff -u -r41297 -r41365 --- ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java (.../QualityMonitoringInstanceManagerImpl.java) (revision 41297) +++ ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java (.../QualityMonitoringInstanceManagerImpl.java) (revision 41365) @@ -436,6 +436,8 @@ //抽检器械关联抽检器械包 if(StringUtils.equals(qmInstance.getType(), FormDefinition.FOMRTYPE_QUALITYMONITORING)){ updateQualityMonitoringGoodsParentId(qmInstance, requestParams); + //抽检器械必填QYSQXQRMYY-12 + inspectMaterialRequired(qmInstance); }else if(StringUtils.equals(qmInstance.getType(), FormDefinition.FOMRTYPE_PERIODICMONITORING)){ updatePreiodicMonitoringGoodsParentId(qmInstance); } @@ -461,6 +463,37 @@ } /** + * 抽检器械必填QYSQXQRMYY-12 + * @param qmInstance 质量监测记录 + */ + private void inspectMaterialRequired(QualityMonitoringInstance qmInstance) { + QualityMonitoringDefinition qualityMonitoringDefinition = (QualityMonitoringDefinition) qmInstance.getFormDefinition(); + if(!StringUtils.equals(qualityMonitoringDefinition.getInspectMaterialRequired(), Constants.STR_YES)){ + return; + } + List qualityMonitoringGoodsList = qmInstance.getQualityMonitoringGoodsList(); + if(CollectionUtils.isEmpty(qualityMonitoringGoodsList)){ + //只检查有抽检器械的情况。抽检器械允许为空(录入合格的检查记录,不需要抽检器械),则不需要再检查抽检器械必填 + return; + } + for (QualityMonitoringGoods qualityMonitoringGoods : qualityMonitoringGoodsList) { + if(StringUtils.isNotBlank(qualityMonitoringGoods.getTousseName())){ + boolean haveMaterial = false; + for (QualityMonitoringGoods materialGoods : qualityMonitoringGoodsList) { + if(MathTools.equals(materialGoods.getParentId(), qualityMonitoringGoods.getId()) + && StringUtils.isNotBlank(materialGoods.getMaterial())){ + haveMaterial = true; + break; + } + } + if(!haveMaterial){ + throw new SystemException("抽检器械为必填项!"); + } + } + } + } + + /** * 设置选项后面的数量FSEYEQ-22 * @param qmInstance 质量监测记录 * @param paramsMap 入参