From 607dc05409dbc093dcfd1ffd60424b41c63c09a5 Mon Sep 17 00:00:00 2001 From: wxr Date: Mon, 15 Dec 2025 10:32:27 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8D=A7=E5=85=89=E5=8F=96=E6=95=B0=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=B7=BB=E5=8A=A0=E7=AE=A1=E7=90=86=E6=A0=B7=E5=92=8C?= =?UTF-8?q?=E6=A0=87=E5=87=86=E6=A0=B7=E5=8C=B9=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessQCCoefficientDataMapper.java | 13 +++- .../BusinessQCManagementDataMapper.java | 12 ++++ .../service/SampleTaskAssignServiceImpl.java | 9 --- .../service/XRFDataServiceImpl.java | 70 +++++++++++++++++++ 4 files changed, 94 insertions(+), 10 deletions(-) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessQCCoefficientDataMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessQCCoefficientDataMapper.java index d919b14..a081272 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessQCCoefficientDataMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessQCCoefficientDataMapper.java @@ -1,11 +1,13 @@ package com.zt.plat.module.qms.business.bus.dal.mapper; import java.util.*; - 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.module.qms.business.bus.controller.vo.*; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCCoefficientDataDO; +import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO; +import com.zt.plat.module.qms.enums.QmsCommonConstant; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import org.apache.ibatis.annotations.Mapper; @@ -82,4 +84,13 @@ public interface BusinessQCCoefficientDataMapper extends BaseMapperX selectBySampleAssayCodesAndConfigAssayMethodDictionaryBusinessKey(List sampleCodeList, String configAssayMethodDictionaryBusinessKey) { + return selectJoinList(BusinessQCCoefficientDataDO.class, new MPJLambdaWrapperX() + .leftJoin(ConfigAssayMethodDO.class, ConfigAssayMethodDO::getId, BusinessQCCoefficientDataDO::getConfigAssayMethodId) + .selectAll(BusinessQCCoefficientDataDO.class) + .in(BusinessQCCoefficientDataDO::getSampleCode, sampleCodeList) + .eq(BusinessQCCoefficientDataDO::getIsReported, QmsCommonConstant.NO) + .eq(ConfigAssayMethodDO::getDictionaryBusinessKey, configAssayMethodDictionaryBusinessKey)); + } + } \ 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/BusinessQCManagementDataMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessQCManagementDataMapper.java index acd9443..c5c2727 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessQCManagementDataMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/mapper/BusinessQCManagementDataMapper.java @@ -4,8 +4,11 @@ import java.util.*; 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.module.qms.business.bus.controller.vo.*; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementDataDO; +import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO; +import com.zt.plat.module.qms.enums.QmsCommonConstant; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import org.apache.ibatis.annotations.Mapper; @@ -76,4 +79,13 @@ public interface BusinessQCManagementDataMapper extends BaseMapperX selectBySampleAssayCodesAndConfigAssayMethodDictionaryBusinessKey(List sampleCodeList, String configAssayMethodDictionaryBusinessKey){ + return selectJoinList(BusinessQCManagementDataDO.class, new MPJLambdaWrapperX() + .leftJoin(ConfigAssayMethodDO.class, ConfigAssayMethodDO::getId, BusinessQCManagementDataDO::getConfigAssayMethodId) + .selectAll(BusinessQCManagementDataDO.class) + .in(BusinessQCManagementDataDO::getSampleCode, sampleCodeList) + .eq(ConfigAssayMethodDO::getDictionaryBusinessKey, configAssayMethodDictionaryBusinessKey) + .eq(BusinessQCManagementDataDO::getIsReported, QmsCommonConstant.NO)); + } + } \ 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/SampleTaskAssignServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleTaskAssignServiceImpl.java index 790aab8..ef16ebd 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleTaskAssignServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleTaskAssignServiceImpl.java @@ -2,8 +2,6 @@ package com.zt.plat.module.qms.business.bus.service; import java.time.LocalDateTime; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Iterator; import java.util.List; import java.util.stream.Collectors; @@ -33,12 +31,9 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataD import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCCoefficientDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCCoefficientParameterDataDO; -import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementParameterDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementProjectDataDO; -import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCParameterDataDO; -import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCProjectDataDO; 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; @@ -48,12 +43,9 @@ import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDetailMap import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskMapper; 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.BusinessQCDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementParameterDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementProjectDataMapper; -import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCParameterDataMapper; -import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCProjectDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleMapper; import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignManualParam; import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignMethodParam; @@ -64,7 +56,6 @@ import com.zt.plat.module.qms.business.config.controller.vo.ConfigQCSampleMethod import com.zt.plat.module.qms.business.config.controller.vo.ConfigQCSampleMethodParameterExtendRespVO; import com.zt.plat.module.qms.business.config.controller.vo.ConfigSubSampleMethodExtendRespVO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO; -import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodProjectDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodProjectParameterDO; import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodMapper; import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodProjectMapper; 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 15a01b0..5dc4ee1 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 @@ -19,9 +19,17 @@ 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.BusinessAssayProjectDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCCoefficientDataDO; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCCoefficientParameterDataDO; +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.BusinessAssayProjectDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMapper; +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.dal.dataobject.ConfigXRFConversionRateDO; import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigXRFLineDO; @@ -60,6 +68,18 @@ public class XRFDataServiceImpl implements XRFDataService { @Resource private BusinessAssayProjectDataMapper businessAssayProjectDataMapper; + + @Resource + private BusinessQCManagementDataMapper businessQCManagementDataMapper; + + @Resource + private BusinessQCManagementProjectDataMapper businessQCManagementProjectDataMapper; + + @Resource + private BusinessQCCoefficientDataMapper businessQCCoefficientDataMapper; + + @Resource + private BusinessQCCoefficientParameterDataMapper businessQCCoefficientParameterDataMapper; @Override public List getXrfLineList(String deviceNo) { @@ -101,9 +121,17 @@ public class XRFDataServiceImpl implements XRFDataService { //根据样品编号及分析方法类型,获取检测任务数据 List businessAssayTaskDataList = businessAssayTaskDataMapper.selectBySampleAssayCodesAndConfigAssayMethodDictionaryBusinessKey(sampleCodeList, "xshxyggpf"); + + //管理样和标准样 + List businessQCManagementDataList = businessQCManagementDataMapper.selectBySampleAssayCodesAndConfigAssayMethodDictionaryBusinessKey(sampleCodeList, "xshxyggpf"); + + //空白样和标样 +// List businessQCCoefficientDataList = businessQCCoefficientDataMapper.selectBySampleAssayCodesAndConfigAssayMethodDictionaryBusinessKey(sampleCodeList, "xshxyggpf"); List businessAssayTaskDataDOList = new ArrayList<>(); List busElementValueList = new ArrayList<>(); + List busQcManageElementValueList = new ArrayList<>(); +// List busQccParameterValueList = new ArrayList<>(); List busYgDataList = new ArrayList<>(); BusinessXRFDataDO busYgData = null; for (XRFDeviceSampleReqVO ygDeviceSample : xrfDeviceSampleList) { @@ -133,6 +161,7 @@ public class XRFDataServiceImpl implements XRFDataService { //处理匹配 + //a. 分析样 List tempBusElementValueList = new ArrayList<>(); List currBusinessAssayTaskDataList = businessAssayTaskDataList.stream().filter(f -> ygDeviceSample.getSampleCode().equals(f.getSampleAssayCode())).collect(Collectors.toList()); if (currBusinessAssayTaskDataList != null && currBusinessAssayTaskDataList.size() > 0) { @@ -141,6 +170,24 @@ public class XRFDataServiceImpl implements XRFDataService { tempBusElementValueList.addAll(busElementValues); } } + //b. 管理样和标准样 + List tempBusinessQCManagementProjectDataList = new ArrayList<>(); + List currBusinessQCManagementDataList = businessQCManagementDataList.stream().filter(f -> ygDeviceSample.getSampleCode().equals(f.getSampleCode())).collect(Collectors.toList()); + if (currBusinessQCManagementDataList != null && currBusinessQCManagementDataList.size() > 0) { + for (BusinessQCManagementDataDO businessQCManagementData : currBusinessQCManagementDataList) { + List businessQCManagementProjectDataList = businessQCManagementProjectDataMapper.selectByBusinessQCManagementDataId(businessQCManagementData.getId()); + tempBusinessQCManagementProjectDataList.addAll(businessQCManagementProjectDataList); + } + } + //c. 空白样和标样 +// List tempBusinessQCCoefficientParameterDataList = new ArrayList<>(); +// List currBusinessQCCoefficientDataList = businessQCCoefficientDataList.stream().filter(f -> ygDeviceSample.getSampleCode().equals(f.getSampleCode())).collect(Collectors.toList()); +// if (currBusinessQCCoefficientDataList != null && currBusinessQCCoefficientDataList.size() > 0) { +// for (BusinessQCCoefficientDataDO businessQCCoefficientDataDO : currBusinessQCCoefficientDataList) { +// List businessQCCoefficientParameterDataList = businessQCCoefficientParameterDataMapper.selectByBusinessQCCoefficientDataId(businessQCCoefficientDataDO.getId()); +// tempBusinessQCCoefficientParameterDataList.addAll(businessQCCoefficientParameterDataList); +// } +// } //分析元素 for (XRFDeviceSampleProjectReqVO ygDeviceSampleElement : sampleElements) { @@ -192,6 +239,21 @@ public class XRFDataServiceImpl implements XRFDataService { } } + List currBusQcElementValueList = tempBusinessQCManagementProjectDataList.stream().filter(f -> f.getDictionaryProjectId().equals(elementId) && f.getIsEnabled().equals(1)).collect(Collectors.toList()); + if (currBusQcElementValueList != null && currBusQcElementValueList.size() > 0) { + for (BusinessQCManagementProjectDataDO busElementValue : currBusQcElementValueList) { + //化验数据小数精度四舍六入五单双 + if("decimal".equals(busElementValue.getDataType())) { + busElementValue.setValue(elementValue.setScale(busElementValue.getDecimalPosition(), RoundingMode.HALF_EVEN).toPlainString()); + } else { + busElementValue.setValue(elementValue.setScale(conYgElementDataType, RoundingMode.HALF_EVEN).toPlainString()); + } + busElementValue.setRemark(conYgElement.getShowName() + ": " + busElementValue.getValue()); + busQcManageElementValueList.add(busElementValue); + } + } + + ReportFieldValueData reportFieldValueData = new ReportFieldValueData(); reportFieldValueData.setFieldName(conYgElement.getSaveColumn()); reportFieldValueData.setFieldValue(elementValue.setScale(conYgElementDataType, RoundingMode.HALF_EVEN).toPlainString()); @@ -244,6 +306,14 @@ public class XRFDataServiceImpl implements XRFDataService { if (busElementValueList.size() > 0) { businessAssayProjectDataMapper.updateBatch(busElementValueList); } + //荧光管理样和标准样 + if (busQcManageElementValueList.size() > 0) { + businessQCManagementProjectDataMapper.updateBatch(busQcManageElementValueList); + } + //荧光空白样和标样 +// if (busQccParameterValueList.size() > 0) { +// businessQCCoefficientParameterDataMapper.updateBatch(busQccParameterValueList); +// } } }