From 91df898e09fb63549a5e191eea684d744ed8ef0f Mon Sep 17 00:00:00 2001 From: wxr Date: Tue, 25 Nov 2025 14:46:36 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=81=AB=E8=AF=95?= =?UTF-8?q?=E9=87=91=E9=85=8D=E6=96=99=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/qms/enums/QmsCommonConstant.java | 3 + ...usinessAssayParameterDataExtendRespVO.java | 12 ++ .../vo/BusinessAssayTaskDataExtendRespVO.java | 3 + .../BusinessAssayParameterDataMapper.java | 9 + .../mapper/BusinessAssayTaskDataMapper.java | 2 + .../vo/ConfigSubSampleMethodConfInfo.java | 18 ++ .../vo/ConfigSubSampleMethodConfItem.java | 16 ++ .../vo/ConfigSubSampleMethodConfPoint.java | 20 ++ .../mapper/ConfigSubSampleMethodMapper.java | 6 + .../service/AutoIngredientsServiceImpl.java | 179 +++++++++++++++++- 10 files changed, 258 insertions(+), 10 deletions(-) create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayParameterDataExtendRespVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigSubSampleMethodConfInfo.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigSubSampleMethodConfItem.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigSubSampleMethodConfPoint.java diff --git a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/QmsCommonConstant.java b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/QmsCommonConstant.java index 6934dec..12f108e 100644 --- a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/QmsCommonConstant.java +++ b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/QmsCommonConstant.java @@ -184,4 +184,7 @@ public interface QmsCommonConstant { /** 手动 **/ String MANUAL = "manual"; + + /** 允许提交 **/ + String ALLOW_SUBMIT = "allow_submit"; } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayParameterDataExtendRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayParameterDataExtendRespVO.java new file mode 100644 index 0000000..ee2ff02 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayParameterDataExtendRespVO.java @@ -0,0 +1,12 @@ +package com.zt.plat.module.qms.business.bus.controller.vo; + +import lombok.Data; + +@Data +public class BusinessAssayParameterDataExtendRespVO extends BusinessAssayParameterDataRespVO { + + private String parameterName; + + private String parameterKey; + +} diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataExtendRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataExtendRespVO.java index b7a252a..0958e76 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataExtendRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataExtendRespVO.java @@ -17,6 +17,9 @@ public class BusinessAssayTaskDataExtendRespVO extends BusinessAssayTaskDataResp /** 分析方法名称 **/ @Schema(description = "分析方法名称") private String configAssayMethodName; + + @Schema(description = "子样配置id") + private Long configSubSampleId; @Schema(description = "样品名称") private String sampleName; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayParameterDataMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayParameterDataMapper.java index d5b2ddc..c0f5797 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayParameterDataMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessAssayParameterDataMapper.java @@ -83,5 +83,14 @@ public interface BusinessAssayParameterDataMapper extends BaseMapperX() .in(BusinessAssayParameterDataDO::getBusinessAssayProjectDataId, businessAssayProjectDataIds)); } + + default List selectExtendByBusinessAssayProjectDataIds(List businessAssayProjectDataIds) { + return selectJoinList(BusinessAssayParameterDataExtendRespVO.class, new MPJLambdaWrapperX() + .leftJoin(DictionaryParameterDO.class, DictionaryParameterDO::getId, BusinessAssayParameterDataDO::getDictionaryParameterId) + .selectAll(BusinessAssayParameterDataDO.class) + .selectAs(DictionaryParameterDO::getName, BusinessAssayParameterDataExtendRespVO::getParameterName) + .selectAs(DictionaryParameterDO::getKey, BusinessAssayParameterDataExtendRespVO::getParameterKey) + .in(BusinessAssayParameterDataDO::getBusinessAssayProjectDataId, businessAssayProjectDataIds)); + } } \ 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/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 2456be4..aec5f55 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 @@ -47,6 +47,7 @@ public interface BusinessAssayTaskDataMapper extends BaseMapperX getParam; + + /** 分析方法下发配料配置 **/ + private List downIngredients; + + /** 分析方法配料上传配置 **/ + private List upIngredients; +} diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigSubSampleMethodConfItem.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigSubSampleMethodConfItem.java new file mode 100644 index 0000000..3ba9e78 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigSubSampleMethodConfItem.java @@ -0,0 +1,16 @@ +package com.zt.plat.module.qms.business.config.controller.vo; + +import lombok.Data; + +@Data +public class ConfigSubSampleMethodConfItem { + + /** 来源 **/ + private ConfigSubSampleMethodConfPoint source; + + /** 目标 **/ + private ConfigSubSampleMethodConfPoint target; + + /** 是否必须 **/ + private Boolean required; +} diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigSubSampleMethodConfPoint.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigSubSampleMethodConfPoint.java new file mode 100644 index 0000000..72a534d --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/controller/vo/ConfigSubSampleMethodConfPoint.java @@ -0,0 +1,20 @@ +package com.zt.plat.module.qms.business.config.controller.vo; + +import lombok.Data; + +@Data +public class ConfigSubSampleMethodConfPoint { + + /** 分析方法id **/ + private Long methodId; + + /** 检测项目 **/ + private String project; + + /** 参数 **/ + private String parameter; + + /** 字段 **/ + private String field; + +} diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigSubSampleMethodMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigSubSampleMethodMapper.java index 50cdda1..7abb095 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigSubSampleMethodMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/config/dal/mapper/ConfigSubSampleMethodMapper.java @@ -53,5 +53,11 @@ public interface ConfigSubSampleMethodMapper extends BaseMapperX selectByConfigSubSampleIdsAndConfigAssayMethodId(List configSubSampleIds, Long configAssayMethodId) { + return selectList(new LambdaQueryWrapper() + .in(ConfigSubSampleMethodDO::getConfigSubSampleId, configSubSampleIds) + .eq(ConfigSubSampleMethodDO::getConfigAssayMethodId, configAssayMethodId)); + } } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/AutoIngredientsServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/AutoIngredientsServiceImpl.java index 26ebc1b..3e5f8f3 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/AutoIngredientsServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/AutoIngredientsServiceImpl.java @@ -6,27 +6,51 @@ import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.alibaba.fastjson2.JSON; +import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayParameterDataExtendRespVO; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayProjectDataExtendRespVO; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskDataExtendRespVO; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskDataReqVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskExtendRespVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskPageReqVO; -import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO; +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.BusinessAssayTaskDO; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO; 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.BusinessAssayTaskDetailMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskMapper; +import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleMapper; +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.dal.dataobject.ConfigSubSampleMethodDO; +import com.zt.plat.module.qms.business.config.dal.mapper.ConfigSubSampleMethodMapper; import com.zt.plat.module.qms.enums.QmsCommonConstant; import com.zt.plat.module.qms.thirdpartyapi.controller.vo.AutoIngredientsTaskAssayResultReqVO; +import com.zt.plat.module.qms.thirdpartyapi.controller.vo.AutoIngredientsTaskDetailAssayResultReqVO; import com.zt.plat.module.qms.thirdpartyapi.controller.vo.AutoIngredientsTaskDetailRespVO; import com.zt.plat.module.qms.thirdpartyapi.controller.vo.AutoIngredientsTaskQueryReqVO; import com.zt.plat.module.qms.thirdpartyapi.controller.vo.AutoIngredientsTaskRespVO; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import jakarta.annotation.Resource; @Service public class AutoIngredientsServiceImpl implements AutoIngredientsService { + @Resource + private BusinessSubSampleMapper businessSubSampleMapper; + @Resource private BusinessAssayTaskMapper businessAssayTaskMapper; @@ -36,6 +60,9 @@ public class AutoIngredientsServiceImpl implements AutoIngredientsService { @Resource private BusinessAssayTaskDataMapper businessAssayTaskDataMapper; + @Resource + private ConfigSubSampleMethodMapper configSubSampleMethodMapper; + @Resource private BusinessAssayProjectDataMapper businessAssayProjectDataMapper; @@ -58,22 +85,154 @@ public class AutoIngredientsServiceImpl implements AutoIngredientsService { @Override public List taskDetailList(Long taskId) { -// List list = businessAssayTaskDetailMapper.selectByBusinessAssayTaskId(taskId); -// businessAssayTaskDataMapper.selectByBusinessAssayTaskId(taskId) - List resultList = new ArrayList<>(); -// for (BusinessAssayTaskDetailDO businessAssayTaskDetailDO : list) { -// AutoIngredientsTaskDetailRespVO autoIngredientsTaskDetailRespVO = new AutoIngredientsTaskDetailRespVO(); -// autoIngredientsTaskDetailRespVO.setAssayOperator(null) -// resultList.add(autoIngredientsTaskDetailRespVO); -// -// } + //查询任务分配信息 + BusinessAssayTaskDO businessAssayTaskDO = businessAssayTaskMapper.selectById(taskId); + //查询子样检测任务 + BusinessAssayTaskDataReqVO search = new BusinessAssayTaskDataReqVO(); + search.setBusinessAssayTaskId(taskId); + List list = businessAssayTaskDataMapper.selectList(search); + //子样配置id列表 + List configSubSampleIdList = list.stream().map(m -> m.getConfigSubSampleId()).distinct().collect(Collectors.toList()); + + //子样配置方法 + List configSubSampleMethodList = configSubSampleMethodMapper.selectByConfigSubSampleIdsAndConfigAssayMethodId(configSubSampleIdList, businessAssayTaskDO.getConfigAssayMethodId()); + + //分析任务id列表 + List businessAssayTaskDataIdList = list.stream().map(m -> m.getId()).collect(Collectors.toList()); + + //查询检测项目 + List businessAssayProjectDataList = businessAssayProjectDataMapper.selectByBusinessAssayTaskDataIds(businessAssayTaskDataIdList); + List businessAssayProjectDataIdList = businessAssayProjectDataList.stream().map(m -> m.getId()).collect(Collectors.toList()); + //查询检测项目参数 + List businessAssayParameterDataList = businessAssayParameterDataMapper.selectExtendByBusinessAssayProjectDataIds(businessAssayProjectDataIdList); + + List resultList = list.stream().map(m -> { + //子样配置信息 + ConfigSubSampleMethodDO configSubSampleMethodDO = configSubSampleMethodList.stream().filter(f -> f.getConfigSubSampleId().equals(m.getConfigSubSampleId())).findFirst().orElse(null); + String configInfomation = configSubSampleMethodDO.getConfigInfomation(); + //当前检测项目列表 + List currentBusinessAssayProjectDataList = businessAssayProjectDataList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(m.getId())).collect(Collectors.toList()); + + AutoIngredientsTaskDetailRespVO autoIngredientsTaskDetailRespVO = new AutoIngredientsTaskDetailRespVO(); + autoIngredientsTaskDetailRespVO.setId(m.getId()); + autoIngredientsTaskDetailRespVO.setTaskId(m.getBusinessAssayTaskId()); + autoIngredientsTaskDetailRespVO.setSampleCode(m.getSampleAssayCode()); + autoIngredientsTaskDetailRespVO.setSampleName(m.getSampleName()); + + if (StringUtils.isNotBlank(configInfomation)) { + ConfigSubSampleMethodConfInfo configSubSampleMethodConfInfo = JSON.parseObject(configInfomation, ConfigSubSampleMethodConfInfo.class); + //获取下发配置 + List downIngredients = configSubSampleMethodConfInfo.getDownIngredients(); + for (ConfigSubSampleMethodConfItem configSubSampleMethodConfItem : downIngredients) { + if (configSubSampleMethodConfItem.getRequired()) { + ConfigSubSampleMethodConfPoint source = configSubSampleMethodConfItem.getSource(); + String project = source.getProject(); + String parameter = source.getParameter(); + BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = currentBusinessAssayProjectDataList.stream().filter(f -> f.getSimpleName().equals(project)).findFirst().orElse(null); + BusinessAssayParameterDataExtendRespVO currentBusinessAssayParameterData = businessAssayParameterDataList.stream().filter(f -> f.getBusinessAssayProjectDataId().equals(currentBusinessAssayProjectData.getId()) && f.getParameterKey().equals(parameter)).findFirst().orElse(null); + ConfigSubSampleMethodConfPoint target = configSubSampleMethodConfItem.getTarget(); + String field = target.getField(); + BeanUtil.setFieldValue(autoIngredientsTaskDetailRespVO, field, currentBusinessAssayParameterData.getValue()); + } + } + } + autoIngredientsTaskDetailRespVO.setAssayProject(m.getAssayProject()); + autoIngredientsTaskDetailRespVO.setAssayOperator(m.getAssayOperator()); + autoIngredientsTaskDetailRespVO.setAssayOperatorName(m.getAssayOperator()); + autoIngredientsTaskDetailRespVO.setRemark(m.getRemark()); + + return autoIngredientsTaskDetailRespVO; + }).collect(Collectors.toList()); return resultList; } @Override + @Transactional(rollbackFor = Exception.class) public void submitAssayResult(AutoIngredientsTaskAssayResultReqVO body) { + List updateBusinessAssayTaskDataDOList = new ArrayList<>(); + List updateBusinessAssayProjectDataDOList = new ArrayList<>(); + List updateBusinessAssayParameterDataDOList = new ArrayList<>(); + + //任务id + Long taskId = body.getTaskId(); + //查询任务分配信息 + BusinessAssayTaskDO businessAssayTaskDO = businessAssayTaskMapper.selectById(taskId); + List sampleList = body.getSampleList(); + //获取检测任务id + List businessAssayTaskDataIdList = sampleList.stream().map(m -> m.getId()).collect(Collectors.toList()); + List businessAssayTaskDataDOList = businessAssayTaskDataMapper.selectByIds(businessAssayTaskDataIdList); + //获取子样id列表 + List businessSubSampleIdList = businessAssayTaskDataDOList.stream().map(m -> m.getBusinessSubSampleId()).distinct().collect(Collectors.toList()); + //获取子样 + List businessSubSampleDOList = businessSubSampleMapper.selectByIds(businessSubSampleIdList); + //子样配置id列表 + List configSubSampleIdList = businessSubSampleDOList.stream().map(m -> m.getConfigSubSampleId()).distinct().collect(Collectors.toList()); + //子样配置方法 + List configSubSampleMethodList = configSubSampleMethodMapper.selectByConfigSubSampleIdsAndConfigAssayMethodId(configSubSampleIdList, businessAssayTaskDO.getConfigAssayMethodId()); + + List businessAssayProjectDataList = businessAssayProjectDataMapper.selectByBusinessAssayTaskDataIds(businessAssayTaskDataIdList); + List businessAssayProjectDataIdList = businessAssayProjectDataList.stream().map(m -> m.getId()).collect(Collectors.toList()); + //查询检测项目参数 + List businessAssayParameterDataList = businessAssayParameterDataMapper.selectExtendByBusinessAssayProjectDataIds(businessAssayProjectDataIdList); + + for (AutoIngredientsTaskDetailAssayResultReqVO autoIngredientsTaskDetailAssayResultReqVO : sampleList) { + //获取子样检测任务 + BusinessAssayTaskDataDO businessAssayTaskDataDO = businessAssayTaskDataDOList.stream().filter(f -> f.getId().equals(autoIngredientsTaskDetailAssayResultReqVO.getId())).findFirst().orElse(null); + //获取子样 + BusinessSubSampleDO businessSubSampleDO = businessSubSampleDOList.stream().filter(f -> f.getId().equals(businessAssayTaskDataDO.getBusinessSubSampleId())).findFirst().orElse(null); + + //子样配置信息 + ConfigSubSampleMethodDO configSubSampleMethodDO = configSubSampleMethodList.stream().filter(f -> f.getConfigSubSampleId().equals(businessSubSampleDO.getConfigSubSampleId())).findFirst().orElse(null); + String configInfomation = configSubSampleMethodDO.getConfigInfomation(); + if (StringUtils.isNotBlank(configInfomation)) { + ConfigSubSampleMethodConfInfo configSubSampleMethodConfInfo = JSON.parseObject(configInfomation, ConfigSubSampleMethodConfInfo.class); + //获取上传配置 + List upIngredients = configSubSampleMethodConfInfo.getUpIngredients(); + for (ConfigSubSampleMethodConfItem configSubSampleMethodConfItem : upIngredients) { + if (configSubSampleMethodConfItem.getRequired()) { + ConfigSubSampleMethodConfPoint source = configSubSampleMethodConfItem.getSource(); + String field = source.getField(); + Object fieldValue = BeanUtil.getFieldValue(autoIngredientsTaskDetailAssayResultReqVO, field); + + ConfigSubSampleMethodConfPoint target = configSubSampleMethodConfItem.getTarget(); + String project = target.getProject(); + + BusinessAssayProjectDataExtendRespVO currentBusinessAssayProjectData = businessAssayProjectDataList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(autoIngredientsTaskDetailAssayResultReqVO.getId()) && f.getSimpleName().equals(project)).findFirst().orElse(null); + String parameter = target.getParameter(); + if (StringUtils.isBlank(parameter)) { + currentBusinessAssayProjectData.setValue(fieldValue.toString()); + updateBusinessAssayProjectDataDOList.add(BeanUtils.toBean(currentBusinessAssayProjectData, BusinessAssayProjectDataDO.class)); + } else { + BusinessAssayParameterDataExtendRespVO currentBusinessAssayParameterData = businessAssayParameterDataList.stream().filter(f -> f.getBusinessAssayProjectDataId().equals(currentBusinessAssayProjectData.getId()) && f.getParameterKey().equals(parameter)).findFirst().orElse(null); + currentBusinessAssayParameterData.setValue(fieldValue.toString()); + updateBusinessAssayParameterDataDOList.add(BeanUtils.toBean(currentBusinessAssayParameterData, BusinessAssayParameterDataDO.class)); + } + + } + } + } + String remark = CollUtil.join(Arrays.asList(autoIngredientsTaskDetailAssayResultReqVO.getRemark()), "、"); + + businessAssayTaskDataDO.setRemark(remark); + updateBusinessAssayTaskDataDOList.add(businessAssayTaskDataDO); + } + + businessAssayTaskDO.setIngredientsStatus(QmsCommonConstant.ALLOW_SUBMIT); + + businessAssayTaskMapper.updateById(businessAssayTaskDO); + + if (CollUtil.isNotEmpty(updateBusinessAssayTaskDataDOList)) { + businessAssayTaskDataMapper.updateBatch(updateBusinessAssayTaskDataDOList); + } + if (CollUtil.isNotEmpty(updateBusinessAssayProjectDataDOList)) { + businessAssayProjectDataMapper.updateBatch(updateBusinessAssayProjectDataDOList); + } + if (CollUtil.isNotEmpty(updateBusinessAssayParameterDataDOList)) { + businessAssayParameterDataMapper.updateBatch(updateBusinessAssayParameterDataDOList); + } + } } From daafd3ae37e46832c0cd7b874c19da8004ad1a2d Mon Sep 17 00:00:00 2001 From: wxr Date: Tue, 25 Nov 2025 17:37:10 +0800 Subject: [PATCH 2/2] fix --- .../controller/admin/AutoIngredientsController.java | 2 +- .../service/AutoIngredientsServiceImpl.java | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/controller/admin/AutoIngredientsController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/controller/admin/AutoIngredientsController.java index 2fe63c5..904b4c4 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/controller/admin/AutoIngredientsController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/controller/admin/AutoIngredientsController.java @@ -46,7 +46,7 @@ public class AutoIngredientsController { @PostMapping("/submit-assay-result") @Operation(summary = "检测结果同步") public CommonResult submitAssayResult(@RequestBody AutoIngredientsTaskAssayResultReqVO body) { - System.out.println(com.alibaba.fastjson2.JSON.toJSONString(body)); +// System.out.println(com.alibaba.fastjson2.JSON.toJSONString(body)); autoIngredientsService.submitAssayResult(body); return CommonResult.success("成功"); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/AutoIngredientsServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/AutoIngredientsServiceImpl.java index 3e5f8f3..48f2685 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/AutoIngredientsServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/thirdpartyapi/service/AutoIngredientsServiceImpl.java @@ -1,9 +1,11 @@ package com.zt.plat.module.qms.thirdpartyapi.service; +import java.lang.reflect.Field; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; @@ -43,6 +45,7 @@ import com.zt.plat.module.qms.thirdpartyapi.controller.vo.AutoIngredientsTaskRes import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ReflectUtil; import jakarta.annotation.Resource; @Service @@ -194,7 +197,15 @@ public class AutoIngredientsServiceImpl implements AutoIngredientsService { if (configSubSampleMethodConfItem.getRequired()) { ConfigSubSampleMethodConfPoint source = configSubSampleMethodConfItem.getSource(); String field = source.getField(); +// System.out.println("field:" + field); +// Field field2 = ReflectUtil.getField(autoIngredientsTaskDetailAssayResultReqVO.getClass(), field); +// Map fieldMap = ReflectUtil.getFieldMap(autoIngredientsTaskDetailAssayResultReqVO.getClass()); +// Object fieldValue2 = ReflectUtil.getFieldValue(autoIngredientsTaskDetailAssayResultReqVO, fieldMap.get(field)); Object fieldValue = BeanUtil.getFieldValue(autoIngredientsTaskDetailAssayResultReqVO, field); + if (fieldValue == null) { + fieldValue = ""; + } +// System.out.println("fieldValue:" + fieldValue); ConfigSubSampleMethodConfPoint target = configSubSampleMethodConfItem.getTarget(); String project = target.getProject();