diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustRegistrationPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustRegistrationPageReqVO.java index d90e51b..9b2e59d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustRegistrationPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessSampleEntrustRegistrationPageReqVO.java @@ -151,4 +151,7 @@ public class BusinessSampleEntrustRegistrationPageReqVO extends PageParam { @Schema(description = "备注") private String remark; + //====================扩展字段====================== + @Schema(description = "委托来源名称") + private String configEntrustSourceName; } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustRegistrationMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustRegistrationMapper.java index f2058c1..42a76b5 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustRegistrationMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessSampleEntrustRegistrationMapper.java @@ -72,6 +72,7 @@ public interface BusinessSampleEntrustRegistrationMapper extends BaseMapperX sampleAssayResultList = sampleEntrustContext.getSampleAssayResultList(); + //金银检测项目字典id列表 + List auAgDictionaryProjectIdList = new ArrayList<>() { + private static final long serialVersionUID = 1L; + + { + add(1000000000000000002L); + add(1000000000000000003L); + }}; + //硫的检测项目字典id + Long sDictionaryProjectId = 1000000000000000004L; + + //商检样品来源id + List sjEntrustSourceIdList = new ArrayList<>() { + private static final long serialVersionUID = 1L; + + { + add(1000000000000000002L);//中铜国贸 + }}; + //样品大类列表 List baseSampleList = baseSampleMapper.selectList(); @@ -209,6 +232,13 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { //分析报表数据 List businessAssayReportDataDOList = new ArrayList<>(); + //是否为商检委托 + Boolean isSjEntrust = sjEntrustSourceIdList.contains(sampleEntrustRegistration.getConfigEntrustSourceId()); + //是否分析金银 + Boolean isAssayAuAg = sampleEntrustProjectList.stream().anyMatch(f -> auAgDictionaryProjectIdList.contains(f.getDictionaryProjectId())); + //是否分析硫 + Boolean isAssayS = sampleEntrustProjectList.stream().anyMatch(f -> f.getDictionaryProjectId().equals(sDictionaryProjectId)); + //子样流转信息列表 List sampleFlowInfoList = new ArrayList<>(); @@ -245,6 +275,29 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { if (entrustConfigSubSampleList.size() != 1) { throw new ServiceException(1_032_100_000, "子样配置不正确"); } + + + //是否创建综合样S分析 + Boolean isCreateZhy = false; + //综合样分析方法 + ConfigAssayMethodDO configAssayMethodZhy = null; + + //是商检样品,分析金银,第一个样品 + if (isSjEntrust && isAssayAuAg && sort == 0) { + //是否分析硫 + isAssayS = dictionaryProjectIdList.contains(sDictionaryProjectId); + if (isAssayS) { + isCreateZhy = false; + } else { + isCreateZhy = true; + MaterialAssayStandardMethodDO materialAssayStandardMethodDO = materialAssayStandardMethodMapper.selectByBaseSampleIdAndDictionaryProjectId(businessSampleEntrustDetailDO.getBaseSampleId(), sDictionaryProjectId); + configAssayMethodZhy = configAssayMethodMapper.selectById(materialAssayStandardMethodDO.getConfigAssayMethodId()); + } + + } + + + //获取到子样配置 ConfigSubSampleDO configSubSample = entrustConfigSubSampleList.get(0); Long configSubSampleParentId = configSubSample.getConfigSubSampleParentId(); @@ -359,7 +412,7 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { //子样对应的分析班组 BusinessSubSampleAnalysisGroupDO businessSubSampleAnalysisGroupDO = null; - + for (Long configAssayMethodId : configAssayMethodIdList) { //查询分析方法 ConfigAssayMethodDO configAssayMethodDO = configAssayMethodList.stream().filter(f -> f.getId().equals(configAssayMethodId)).findFirst().orElse(null); @@ -427,6 +480,11 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { businessAssayProjectDataDO.setDictionaryProjectId(configAssayMethodProjectDO.getDictionaryProjectId()); businessAssayProjectDataDO.setDataType(configAssayMethodProjectDO.getDataType()); businessAssayProjectDataDO.setDecimalPosition(configAssayMethodProjectDO.getDecimalPosition()); + businessAssayProjectDataDO.setUsage(QmsCommonConstant.ASSAY_PROJECT_USAGE_REPORT); + if (isSjEntrust && isAssayAuAg && sort == 0 && !isCreateZhy && sDictionaryProjectId.equals(configAssayMethodProjectDO.getDictionaryProjectId())) {//是商检样品,分析金银,第一个样品,不创建综合样,并且是S值 + businessAssayProjectDataDO.setUsage(QmsCommonConstant.ASSAY_PROJECT_USAGE_INGREDIENT_REPORT); + } + businessAssayProjectDataDO.setIsEnabled(1); businessAssayProjectDataDO.setIsNotAssessment(0); @@ -446,8 +504,6 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { businessAssayParameterDataDOList.add(businessAssayParameterDataDO); } - - } assayProjectBuilder.delete(assayProjectBuilder.length() - 1 , assayProjectBuilder.length()); @@ -456,6 +512,90 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { } } + + if (isSjEntrust && isAssayAuAg && sort == 0 && isCreateZhy && configAssayMethodZhy != null) { + Long configAssayMethodIdZhy = configAssayMethodZhy.getId(); + Long assayDepartmentIdZhy = configAssayMethodZhy.getAssayDepartmentId(); + + //查询子样对应的分析方法 + ConfigSubSampleMethodDO configSubSampleMethodDO = configSubSampleMethodList.stream().filter(f -> f.getIsDefaultUse().equals(QmsCommonConstant.YES) && f.getConfigAssayMethodId().equals(configAssayMethodIdZhy) && f.getConfigSubSampleId().equals(configSubSample.getId())).findFirst().orElse(null); + + businessSubSampleAnalysisGroupDO = businessSubSampleAnalysisGroupDOList.stream().filter(f -> f.getBusinessSubSampleId().equals(businessSubSampleDO.getId()) && f.getAssayDepartmentId().equals(assayDepartmentIdZhy)).findFirst().orElse(null); + if (businessSubSampleAnalysisGroupDO == null) { + businessSubSampleAnalysisGroupDO = new BusinessSubSampleAnalysisGroupDO(); + businessSubSampleAnalysisGroupDO.setId(IdWorker.getId()); + businessSubSampleAnalysisGroupDO.setBusinessBaseSampleId(businessSubSampleDO.getBusinessBaseSampleId()); + businessSubSampleAnalysisGroupDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId()); + businessSubSampleAnalysisGroupDO.setBusinessSubSampleId(businessSubSampleDO.getId()); + businessSubSampleAnalysisGroupDO.setAssayDepartmentId(configAssayMethodZhy.getAssayDepartmentId()); + businessSubSampleAnalysisGroupDO.setAssayDepartmentName(configAssayMethodZhy.getAssayDepartmentName()); + businessSubSampleAnalysisGroupDO.setSampleStatus("待收样"); + + businessSubSampleAnalysisGroupDOList.add(businessSubSampleAnalysisGroupDO); + } + + //根据检测方法循环 + BusinessAssayTaskDataDO businessAssayTaskDataDO = null; + + //根据任务数判断是平行还是 + String assayType = configSubSampleMethodDO.getTaskCount() > 1 ? QmsCommonConstant.ASSAY_TYPE_SINGLE_PARALLEL : QmsCommonConstant.ASSAY_TYPE_SINGLE_CUP; + + //根据任务数循环 + for (int i = 0; i < configSubSampleMethodDO.getTaskCount(); i++) { + //子样检测任务 + businessAssayTaskDataDO = new BusinessAssayTaskDataDO(); + businessAssayTaskDataDO.setId(IdWorker.getId()); + businessAssayTaskDataDO.setBusinessBaseSampleId(businessSubSampleDO.getBusinessBaseSampleId()); + businessAssayTaskDataDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId()); + businessAssayTaskDataDO.setBusinessSubSampleId(businessSubSampleDO.getId()); + businessAssayTaskDataDO.setConfigAssayMethodId(configAssayMethodZhy.getId()); + businessAssayTaskDataDO.setAssayType(assayType); + businessAssayTaskDataDO.setTaskType("常规"); + businessAssayTaskDataDO.setConfigSampleFlowId(configSampleFlowSub.getId()); + businessAssayTaskDataDO.setSampleFlowNodeKey(sampleFlowNodeSub.getNodeKey()); + businessAssayTaskDataDO.setSampleFlowNodeTime(currentDateTime); + businessAssayTaskDataDO.setAssayDepartmentId(configAssayMethodZhy.getAssayDepartmentId()); + businessAssayTaskDataDO.setAssayDepartmentName(configAssayMethodZhy.getAssayDepartmentName()); + + + //查询S检测项目 + ConfigAssayMethodProjectDO configAssayMethodProjectDO = configAssayMethodProjectList.stream().filter(f -> f.getConfigAssayMethodId().equals(configAssayMethodIdZhy) && f.getDictionaryProjectId().equals(sDictionaryProjectId)).findFirst().orElse(null); + + + + //检测项目 + BusinessAssayProjectDataDO businessAssayProjectDataDO = new BusinessAssayProjectDataDO(); + businessAssayProjectDataDO.setId(IdWorker.getId()); + businessAssayProjectDataDO.setBusinessAssayTaskDataId(businessAssayTaskDataDO.getId()); + businessAssayProjectDataDO.setConfigAssayMethodProjectId(configAssayMethodProjectDO.getId()); + businessAssayProjectDataDO.setDictionaryProjectId(configAssayMethodProjectDO.getDictionaryProjectId()); + businessAssayProjectDataDO.setDataType(configAssayMethodProjectDO.getDataType()); + businessAssayProjectDataDO.setDecimalPosition(configAssayMethodProjectDO.getDecimalPosition()); + businessAssayProjectDataDO.setUsage(QmsCommonConstant.ASSAY_PROJECT_USAGE_INGREDIENT); + + businessAssayProjectDataDO.setIsEnabled(1); + businessAssayProjectDataDO.setIsNotAssessment(0); + + businessAssayProjectDataDOList.add(businessAssayProjectDataDO); + + List configAssayMethodProjectParameterDOList = configAssayMethodProjectParameterList.stream().filter(f -> f.getConfigAssayMethodProjectId().equals(configAssayMethodProjectDO.getId())).collect(Collectors.toList()); + for (ConfigAssayMethodProjectParameterDO configAssayMethodProjectParameterDO : configAssayMethodProjectParameterDOList) { + BusinessAssayParameterDataDO businessAssayParameterDataDO = new BusinessAssayParameterDataDO(); + businessAssayParameterDataDO.setId(IdWorker.getId()); + businessAssayParameterDataDO.setConfigAssayMethodProjectParameterId(configAssayMethodProjectParameterDO.getId()); + businessAssayParameterDataDO.setBusinessAssayProjectDataId(businessAssayProjectDataDO.getId()); + businessAssayParameterDataDO.setDictionaryParameterId(configAssayMethodProjectParameterDO.getDictionaryParameterId()); + businessAssayParameterDataDO.setDataType(configAssayMethodProjectParameterDO.getDataType()); + businessAssayParameterDataDO.setDecimalPosition(configAssayMethodProjectParameterDO.getDecimalPosition()); + + + businessAssayParameterDataDOList.add(businessAssayParameterDataDO); + } + + businessAssayTaskDataDO.setAssayProject("S"); + businessAssayTaskDataDOList.add(businessAssayTaskDataDO); + } + } sort++; } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/MaterialAssayStandardMethodMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/MaterialAssayStandardMethodMapper.java index be8405d..8444c1e 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/MaterialAssayStandardMethodMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/MaterialAssayStandardMethodMapper.java @@ -2,9 +2,14 @@ package com.zt.plat.module.qms.business.config.dal.mapper; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import com.zt.plat.module.qms.business.config.controller.vo.MaterialAssayStandardMethodPageReqVO; +import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardDO; +import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardDetailDO; import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardMethodDO; +import com.zt.plat.module.qms.enums.QmsCommonConstant; + import org.apache.ibatis.annotations.Mapper; /** @@ -29,5 +34,20 @@ public interface MaterialAssayStandardMethodMapper extends BaseMapperX() + .leftJoin(MaterialAssayStandardDetailDO.class, MaterialAssayStandardDetailDO::getId, MaterialAssayStandardMethodDO::getMaterialAssayStandardDetailId) + .leftJoin(MaterialAssayStandardDO.class, MaterialAssayStandardDO::getId, MaterialAssayStandardDetailDO::getMaterialAssayStandardId) + .eq(MaterialAssayStandardDO::getBaseSampleId, baseSampleId) + .eq(MaterialAssayStandardDetailDO::getDictionaryProjectId, dictionaryProjectId) + .eq(MaterialAssayStandardMethodDO::getIsDefault, QmsCommonConstant.YES)); + } } \ No newline at end of file