diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskParameterDataExtendRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskParameterDataExtendRespVO.java new file mode 100644 index 0000000..3510cd8 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskParameterDataExtendRespVO.java @@ -0,0 +1,30 @@ +package com.zt.plat.module.qms.business.bus.controller.vo; + +import com.alibaba.excel.annotation.ExcelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class BusinessAssayTaskParameterDataExtendRespVO extends BusinessAssayTaskParameterDataRespVO { + + @Schema(description = "检测方法ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29823") + @ExcelProperty("检测方法ID") + private Long configAssayMethodId; + + @Schema(description = "参数名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @ExcelProperty("参数名称") + private String parameterName; + + @Schema(description = "参数简称", example = "张三") + @ExcelProperty("参数简称") + private String shortName; + + @Schema(description = "参数序号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("参数序号") + private Integer no; + + @Schema(description = "键值") + @ExcelProperty("键值") + private String key; +} diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataPageReqVO.java index eb5a58b..2734fac 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataPageReqVO.java @@ -32,6 +32,14 @@ public class BusinessXRFDataPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] sampleTime; + @Schema(description = "样品开始时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] sampleStartTime; + + @Schema(description = "样品结束时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] sampleEndTime; + @Schema(description = "分析人") private String assayOperator; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataReqVO.java index 3ed2865..a41473d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataReqVO.java @@ -35,6 +35,14 @@ public class BusinessXRFDataReqVO { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] sampleTime; + @Schema(description = "样品开始时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] sampleStartTime; + + @Schema(description = "样品结束时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] sampleEndTime; + @Schema(description = "分析人") private String assayOperator; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataRespVO.java index d0522fe..c33e92a 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataRespVO.java @@ -40,6 +40,14 @@ public class BusinessXRFDataRespVO { @ExcelProperty("样品时间") private LocalDateTime sampleTime; + @Schema(description = "样品开始时间") + @ExcelProperty("样品开始时间") + private LocalDateTime sampleStartTime; + + @Schema(description = "样品结束时间") + @ExcelProperty("样品结束时间") + private LocalDateTime sampleEndTime; + @Schema(description = "分析人") @ExcelProperty("分析人") private String assayOperator; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataSaveReqVO.java index 287906a..c584312 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessXRFDataSaveReqVO.java @@ -34,6 +34,12 @@ public class BusinessXRFDataSaveReqVO { @Schema(description = "样品时间") private LocalDateTime sampleTime; + @Schema(description = "样品开始时间") + private LocalDateTime sampleStartTime; + + @Schema(description = "样品结束时间") + private LocalDateTime sampleEndTime; + @Schema(description = "分析人") private String assayOperator; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessXRFDataDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessXRFDataDO.java index 9865524..1747ce1 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessXRFDataDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessXRFDataDO.java @@ -2,10 +2,7 @@ package com.zt.plat.module.qms.business.bus.dal.dataobject; import lombok.*; import java.util.*; - import java.time.LocalDateTime; - import java.time.LocalDateTime; - import java.time.LocalDateTime; - import java.time.LocalDateTime; +import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.*; import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; /** @@ -64,6 +61,16 @@ public class BusinessXRFDataDO extends BusinessBaseDO { @TableField("SMP_TM") private LocalDateTime sampleTime; /** + * 样品开始时间 + */ + @TableField("SMP_STRT_TM") + private LocalDateTime sampleStartTime; + /** + * 样品结束时间 + */ + @TableField("SMP_END_TM") + private LocalDateTime sampleEndTime; + /** * 分析人 */ @TableField("ASY_OPTR") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayTaskDataMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayTaskDataMapper.java index 5334e4c..7532ac0 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayTaskDataMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayTaskDataMapper.java @@ -290,6 +290,7 @@ public interface BusinessAssayTaskDataMapper extends BaseMapperX selectExtendByBusinessAssayTaskDataIds(List businessAssayTaskDataIdList) { + return selectJoinList(BusinessAssayTaskParameterDataExtendRespVO.class, new MPJLambdaWrapperX() + .leftJoin(ConfigAssayMethodParameterDO.class, ConfigAssayMethodParameterDO::getId, BusinessAssayTaskParameterDataDO::getConfigAssayMethodParameterId) + .selectAll(BusinessAssayTaskParameterDataDO.class) + .selectAs(ConfigAssayMethodParameterDO::getConfigAssayMethodId, BusinessAssayTaskParameterDataExtendRespVO::getConfigAssayMethodId) + .selectAs(ConfigAssayMethodParameterDO::getParameterName, BusinessAssayTaskParameterDataExtendRespVO::getParameterName) + .selectAs(ConfigAssayMethodParameterDO::getShortName, BusinessAssayTaskParameterDataExtendRespVO::getShortName) + .selectAs(ConfigAssayMethodParameterDO::getKey, BusinessAssayTaskParameterDataExtendRespVO::getKey) + .selectAs(ConfigAssayMethodParameterDO::getNo, BusinessAssayTaskParameterDataExtendRespVO::getNo) + .in(BusinessAssayTaskParameterDataDO::getBusinessAssayTaskDataId, businessAssayTaskDataIdList) + ); + } + + } \ 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/service/SampleAnalysisServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisServiceImpl.java index 251916b..ccf81e8 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisServiceImpl.java @@ -666,11 +666,11 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService { String targetParameter = target.getParameter(); BusinessAssayParameterDataDO businessAssayParameterDataDO = businessAssayParameterDataMapper.selectByBusinessAssayTaskDataIdAndProjectSimpleNameAndParameterKey(businessAssayTaskDataDO.getId(), targetProject, targetParameter); - if (businessAssayParameterDataDO == null) { - throw new ServiceException(1_032_100_000, "子样检测方法映射配置错误"); - } +// if (businessAssayParameterDataDO == null) { +// throw new ServiceException(1_032_100_000, "子样检测方法映射配置错误"); +// } - if (StringUtils.isBlank(businessAssayParameterDataDO.getValue())) { + if (businessAssayParameterDataDO != null && StringUtils.isBlank(businessAssayParameterDataDO.getValue())) { //1 查询委托明细 BusinessSampleEntrustDetailDO businessSampleEntrustDetailDO = businessSampleEntrustDetailMapper.selectByBusinessBaseSampleId(businessAssayTaskDataDO.getBusinessBaseSampleId()); //2 查询样品大类 @@ -1295,6 +1295,9 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService { if (StringUtils.isNotBlank(configInfomation)) { ConfigSubSampleMethodConfInfo configSubSampleMethodConfInfo = JSON.parseObject(configInfomation, ConfigSubSampleMethodConfInfo.class); List setParamList = configSubSampleMethodConfInfo.getSetParam(); + if (CollUtil.isEmpty(setParamList)) { + continue;//跳出循环 + } String methodKey = setParamList.stream().map(m -> m.getTarget().getMethodKey()).distinct().findFirst().orElse(null); List targetBusinessAssayTaskDataList = businessAssayTaskDataMapper.selectByBusinessSubSampleIdAndMethodKey(businessAssayTaskData.getBusinessSubSampleId(), methodKey); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/controller/vo/XRFDeviceSampleReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/controller/vo/XRFDeviceSampleReqVO.java index 2bafdc5..d485f4f 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/controller/vo/XRFDeviceSampleReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/controller/vo/XRFDeviceSampleReqVO.java @@ -54,6 +54,26 @@ public class XRFDeviceSampleReqVO implements Serializable { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Schema(description = "样品时间") private LocalDateTime sampleTime; + + /** + * 样品开始时间 + */ + @JsonSerialize(using = LocalDateTimeSerializer.class) // 序列化(响应) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) // 反序列化(请求) + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "样品开始时间") + private LocalDateTime sampleStartTime; + + /** + * 样品结束时间 + */ + @JsonSerialize(using = LocalDateTimeSerializer.class) // 序列化(响应) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) // 反序列化(请求) + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "样品结束时间") + private LocalDateTime sampleEndTime; /** * 分析人 diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/XRFDataServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/XRFDataServiceImpl.java index 72402b3..3f5cbf6 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/XRFDataServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/XRFDataServiceImpl.java @@ -4,6 +4,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.Map; @@ -17,29 +18,40 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.module.qms.business.bus.controller.vo.*; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayParameterDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayProjectDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskParameterDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementProjectDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessXRFDataDO; +import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayParameterDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayProjectDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMapper; +import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskParameterDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCCoefficientDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCCoefficientParameterDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementProjectDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessXRFDataMapper; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigSubSampleMethodConfInfo; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigSubSampleMethodConfItem; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigSubSampleMethodConfPoint; +import com.zt.plat.module.qms.business.config.controller.vo.ConfigSubSampleMethodExtendRespVO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodProjectDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigXRFConversionRateDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigXRFLineDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigXRFProjectDO; import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodProjectMapper; +import com.zt.plat.module.qms.business.config.dal.mapper.ConfigSubSampleMethodMapper; import com.zt.plat.module.qms.business.config.dal.mapper.ConfigXRFConversionRateMapper; import com.zt.plat.module.qms.business.config.dal.mapper.ConfigXRFLineMapper; import com.zt.plat.module.qms.business.config.dal.mapper.ConfigXRFProjectMapper; import com.zt.plat.module.qms.enums.QmsCommonConstant; import com.zt.plat.module.qms.thirdpartyapi.controller.vo.*; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; @@ -59,15 +71,24 @@ public class XRFDataServiceImpl implements XRFDataService { @Resource private ConfigAssayMethodProjectMapper configAssayMethodProjectMapper; + @Resource + private ConfigSubSampleMethodMapper configSubSampleMethodMapper; + @Resource private BusinessXRFDataMapper businessXRFDataMapper; @Resource private BusinessAssayTaskDataMapper businessAssayTaskDataMapper; + @Resource + private BusinessAssayTaskParameterDataMapper businessAssayTaskParameterDataMapper; + @Resource private BusinessAssayProjectDataMapper businessAssayProjectDataMapper; + @Resource + private BusinessAssayParameterDataMapper businessAssayParameterDataMapper; + @Resource private BusinessQCManagementDataMapper businessQCManagementDataMapper; @@ -120,6 +141,11 @@ public class XRFDataServiceImpl implements XRFDataService { //根据样品编号及分析方法类型,获取检测任务数据 List businessAssayTaskDataList = businessAssayTaskDataMapper.selectBySampleAssayCodesAndConfigAssayMethodDictionaryBusinessKey(sampleCodeList, "xshxyggpf"); + + List businessAssayTaskDataIdList = businessAssayTaskDataList.stream().map(m -> m.getId()).collect(Collectors.toList()); + //获取检测参数 + List businessAssayTaskParameterDataExtendList = businessAssayTaskParameterDataMapper.selectExtendByBusinessAssayTaskDataIds(businessAssayTaskDataIdList); + //管理样和标准样 List businessQCManagementDataList = businessQCManagementDataMapper.selectBySampleAssayCodesAndConfigAssayMethodDictionaryBusinessKey(sampleCodeList, "xshxyggpf"); @@ -128,7 +154,11 @@ public class XRFDataServiceImpl implements XRFDataService { // List businessQCCoefficientDataList = businessQCCoefficientDataMapper.selectBySampleAssayCodesAndConfigAssayMethodDictionaryBusinessKey(sampleCodeList, "xshxyggpf"); List businessAssayTaskDataDOList = new ArrayList<>(); + List businessAssayTaskParameterDataList = new ArrayList<>(); List busElementValueList = new ArrayList<>(); + + List updateBusinessAssayParameterDataList = new ArrayList<>(); + List busQcManageElementValueList = new ArrayList<>(); // List busQccParameterValueList = new ArrayList<>(); List busYgDataList = new ArrayList<>(); @@ -149,6 +179,8 @@ public class XRFDataServiceImpl implements XRFDataService { busYgData.setXRFSampleId(ygDeviceSample.getSampleId()); busYgData.setSampleCode(ygDeviceSample.getSampleCode()); busYgData.setSampleTime(ygDeviceSample.getSampleTime()); + busYgData.setSampleStartTime(ygDeviceSample.getSampleStartTime()); + busYgData.setSampleEndTime(ygDeviceSample.getSampleEndTime()); busYgData.setAssayOperator(ygDeviceSample.getAssayOper()); busYgData.setIsCheckCreate(ygDeviceSample.getIsCheck() ? 1 : 0); @@ -164,7 +196,26 @@ public class XRFDataServiceImpl implements XRFDataService { List tempBusElementValueList = new ArrayList<>(); List currBusinessAssayTaskDataList = businessAssayTaskDataList.stream().filter(f -> ygDeviceSample.getSampleCode().equals(f.getSampleAssayCode())).collect(Collectors.toList()); if (currBusinessAssayTaskDataList != null && currBusinessAssayTaskDataList.size() > 0) { - for (BusinessAssayTaskDataExtendRespVO businessAssayTaskData : currBusinessAssayTaskDataList) { + for (BusinessAssayTaskDataExtendRespVO businessAssayTaskData : currBusinessAssayTaskDataList) { + //处理任务参数 + List currBusinessAssayTaskParameterDataExtendList = businessAssayTaskParameterDataExtendList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId())).collect(Collectors.toList()); + for (BusinessAssayTaskParameterDataExtendRespVO currBusinessAssayTaskParameterDataExtend : currBusinessAssayTaskParameterDataExtendList) { + switch (currBusinessAssayTaskParameterDataExtend.getKey()) { + case "lineName": + currBusinessAssayTaskParameterDataExtend.setValue(busYgData.getLineName()); + businessAssayTaskParameterDataList.add(BeanUtils.toBean(currBusinessAssayTaskParameterDataExtend, BusinessAssayTaskParameterDataDO.class)); + break; + case "sampleStartTime": + currBusinessAssayTaskParameterDataExtend.setValue(DateUtil.formatLocalDateTime(busYgData.getSampleStartTime())); + businessAssayTaskParameterDataList.add(BeanUtils.toBean(currBusinessAssayTaskParameterDataExtend, BusinessAssayTaskParameterDataDO.class)); + break; + case "sampleEndTime": + currBusinessAssayTaskParameterDataExtend.setValue(DateUtil.formatLocalDateTime(busYgData.getSampleEndTime())); + businessAssayTaskParameterDataList.add(BeanUtils.toBean(currBusinessAssayTaskParameterDataExtend, BusinessAssayTaskParameterDataDO.class)); + break; + } + } + List busElementValues = businessAssayProjectDataMapper.selectByBusinessAssayTaskDataId(businessAssayTaskData.getId()); tempBusElementValueList.addAll(busElementValues); } @@ -295,6 +346,43 @@ public class XRFDataServiceImpl implements XRFDataService { if (currBusinessAssayTaskDataList != null && currBusinessAssayTaskDataList.size() > 0) { for (BusinessAssayTaskDataExtendRespVO businessAssayTaskData : currBusinessAssayTaskDataList) { + ConfigSubSampleMethodExtendRespVO configSubSampleMethod = configSubSampleMethodMapper.selectByConfigSubSampleIdAndConfigAssayMethodId(businessAssayTaskData.getConfigSubSampleId(), businessAssayTaskData.getConfigAssayMethodId()); + + String configInfomation = configSubSampleMethod.getConfigInfomation(); + if (StringUtils.isNotBlank(configInfomation)) { + ConfigSubSampleMethodConfInfo configSubSampleMethodConfInfo = JSON.parseObject(configInfomation, ConfigSubSampleMethodConfInfo.class); + List setParamList = configSubSampleMethodConfInfo.getSetParam(); + if (CollUtil.isEmpty(setParamList)) { + continue;//跳出循环 + } + + String methodKey = setParamList.stream().map(m -> m.getTarget().getMethodKey()).distinct().findFirst().orElse(null); + List targetBusinessAssayTaskDataList = businessAssayTaskDataMapper.selectByBusinessSubSampleIdAndMethodKey(businessAssayTaskData.getBusinessSubSampleId(), methodKey); + List targetBusinessAssayTaskDataIdList = targetBusinessAssayTaskDataList.stream().map(m -> m.getId()).collect(Collectors.toList()); + List targetBusinessAssayProjectDataExtendList = businessAssayProjectDataMapper.selectByBusinessAssayTaskDataIds(targetBusinessAssayTaskDataIdList); + + for (ConfigSubSampleMethodConfItem configSubSampleMethodConfItem : setParamList) { + ConfigSubSampleMethodConfPoint source = configSubSampleMethodConfItem.getSource(); + String project = source.getProject(); + BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = tempBusElementValueList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(businessAssayTaskData.getId()) && f.getSimpleName().equals(project)).findFirst().orElse(null); + ConfigSubSampleMethodConfPoint target = configSubSampleMethodConfItem.getTarget(); + for (BusinessAssayTaskDataDO targetBusinessAssayTaskData : targetBusinessAssayTaskDataList) { + List targetProjectList = Arrays.asList(target.getProject().split(",")); + String targetParameter = target.getParameter(); + for (String targetProject : targetProjectList) { + BusinessAssayProjectDataExtendRespVO targetBusinessAssayProjectData = targetBusinessAssayProjectDataExtendList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(targetBusinessAssayTaskData.getId()) && f.getSimpleName().equals(targetProject)).findFirst().orElse(null); + BusinessAssayParameterDataDO businessAssayParameterDataDO = businessAssayParameterDataMapper.selectByBusinessAssayTaskDataIdAndProjectSimpleNameAndParameterKey(targetBusinessAssayProjectData.getId(), targetProject, targetParameter); + if (businessAssayParameterDataDO != null) { + businessAssayParameterDataDO.setValue(currentBusinessAssayProjectData.getValue()); + updateBusinessAssayParameterDataList.add(businessAssayParameterDataDO); + } + + } + } + } + } + + busYgData.setIsMatched(QmsCommonConstant.YES); busYgData.setBusinessBaseSampleId(businessAssayTaskData.getBusinessBaseSampleId()); busYgData.setBusinessSubParentSampleId(businessAssayTaskData.getBusinessSubParentSampleId()); @@ -326,11 +414,22 @@ public class XRFDataServiceImpl implements XRFDataService { //保存荧光数据 businessXRFDataMapper.insertBatch(busYgDataList); - + + //更新任务参数 + if (businessAssayTaskParameterDataList.size() > 0) { + businessAssayTaskParameterDataMapper.updateBatch(businessAssayTaskParameterDataList); + } + //更新分析结果 if (busElementValueList.size() > 0) { businessAssayProjectDataMapper.updateBatch(busElementValueList); } + + //更新检测项目参数 + if (updateBusinessAssayParameterDataList.size() > 0) { + businessAssayParameterDataMapper.updateBatch(updateBusinessAssayParameterDataList); + } + //荧光管理样和标准样 if (busQcManageElementValueList.size() > 0) { businessQCManagementProjectDataMapper.updateBatch(busQcManageElementValueList);