From f2fe7455ed643ee58221a1607e5f7eeb168f5548 Mon Sep 17 00:00:00 2001 From: wxr Date: Mon, 10 Nov 2025 10:45:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A4=E5=8F=89=E5=AE=A1=E6=A0=B8=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/SampleAnalysisAuditController.java | 6 + .../service/SampleAnalysisAuditService.java | 3 + .../SampleAnalysisAuditServiceImpl.java | 136 ++++++++++++++++++ .../service/SampleAnalysisServiceImpl.java | 2 +- 4 files changed, 146 insertions(+), 1 deletion(-) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleAnalysisAuditController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleAnalysisAuditController.java index feb4918..5b0c23d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleAnalysisAuditController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleAnalysisAuditController.java @@ -29,6 +29,12 @@ public class SampleAnalysisAuditController { @Resource private SampleAnalysisAuditService sampleAnalysisAuditService; + + @GetMapping("/crossAuditByTaskId") + public CommonResult crossAuditByTaskId(Long businessAssayTaskId) { + JSONObject result = sampleAnalysisAuditService.crossAuditByTaskId(businessAssayTaskId); + return success(result); + } /** * 交叉审核 diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisAuditService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisAuditService.java index cfeffea..2b94cbe 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisAuditService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisAuditService.java @@ -18,6 +18,8 @@ import com.alibaba.fastjson2.JSONObject; */ public interface SampleAnalysisAuditService { + JSONObject crossAuditByTaskId(Long businessAssayTaskId); + void crossAuditByByTaskId(Long businessAssayTaskId, String auditStatus); JSONObject getSampleResultAssessmentList(Long configAssayMethodId, String assessmentStatus); @@ -32,4 +34,5 @@ public interface SampleAnalysisAuditService { JSONObject modifyParallelResultAssessment(Long businessSubSampleId, Long configAssayMethodId, Long businessSubSampleAssessmentId, List businessAssayProjectDataIds); + } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisAuditServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisAuditServiceImpl.java index d08b47d..a45bde2 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisAuditServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisAuditServiceImpl.java @@ -13,12 +13,14 @@ import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; +import org.apache.commons.collections4.map.HashedMap; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; +import com.alibaba.nacos.shaded.io.grpc.Attributes.Key; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.ql.util.express.DefaultContext; @@ -32,7 +34,10 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayProjectDa import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayReportDataDO; 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.BusinessAssayTaskDetailDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessBaseSampleDO; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCCoefficientDataDO; +import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementDataDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleAssessmentDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleDO; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleAssessmentDO; @@ -44,6 +49,11 @@ import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMappe 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.BusinessBaseSampleMapper; +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.BusinessQCManagementParameterDataMapper; +import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementProjectDataMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubParentSampleAssessmentMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubParentSampleMapper; import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleAssessmentMapper; @@ -104,6 +114,21 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic @Resource private BusinessAssayProjectDataMapper businessAssayProjectDataMapper; + @Resource + private BusinessQCCoefficientDataMapper businessQCCoefficientDataMapper; + + @Resource + private BusinessQCCoefficientParameterDataMapper businessQCCoefficientParameterDataMapper; + + @Resource + private BusinessQCManagementDataMapper businessQCManagementDataMapper; + + @Resource + private BusinessQCManagementProjectDataMapper businessQCManagementProjectDataMapper; + + @Resource + private BusinessQCManagementParameterDataMapper businessQCManagementParameterDataMapper; + @Resource private ConfigAssayMethodProjectAssessmentMapper configAssayMethodProjectAssessmentMapper; @@ -254,6 +279,115 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic return null; } + @Override + public JSONObject crossAuditByTaskId(Long businessAssayTaskId) { + JSONObject resultJsonObject = new JSONObject(); + + BusinessAssayTaskDO businessAssayTaskDO = businessAssayTaskMapper.selectById(businessAssayTaskId); + if (businessAssayTaskDO == null) { + throw new ServiceException(1_032_100_000, "未找到任务分配单"); + } + + List businessAssayTaskDetailList = businessAssayTaskDetailMapper.selectList(new LambdaQueryWrapperX().eq(BusinessAssayTaskDetailDO::getBusinessAssayTaskId, businessAssayTaskDO.getId())); + List businessAssayTaskDataList = businessAssayTaskDataMapper.selectList(new LambdaQueryWrapperX().eq(BusinessAssayTaskDataDO::getBusinessAssayTaskId, businessAssayTaskDO.getId()).eq(BusinessAssayTaskDataDO::getConfigAssayMethodId, businessAssayTaskDO.getConfigAssayMethodId())); + BusinessAssayTaskDataDO businessAssayTaskData = businessAssayTaskDataList.get(0); + //处理数据 + List> datas = new ArrayList<>(); + for (BusinessAssayTaskDataDO businessAssayTaskDataDO : businessAssayTaskDataList) { + BusinessAssayTaskDetailDO businessAssayTaskDetailDO = businessAssayTaskDetailList.stream().filter(f -> f.getSampleId().equals(businessAssayTaskDataDO.getBusinessSubSampleId())).findFirst().orElse(null); + + Map map = new HashedMap<>(); + map.put("businessAssayTaskDataId", businessAssayTaskDataDO.getId()); + map.put("businessAssayTaskId", businessAssayTaskDataDO.getBusinessAssayTaskId()); + map.put("businessSubSampleId", businessAssayTaskDataDO.getBusinessSubSampleId()); + map.put("businessSubParentSampleId", businessAssayTaskDataDO.getBusinessSubParentSampleId()); + map.put("configAssayMethodId", businessAssayTaskDataDO.getConfigAssayMethodId()); + map.put("businessAssayTaskDetailId", businessAssayTaskDetailDO.getId()); + map.put("sampleCode", businessAssayTaskDetailDO.getSampleCode()); + map.put("sampleName", businessAssayTaskDetailDO.getSampleName()); + map.put("analysisType", "analysis"); + + BusinessAssayProjectDataReqVO projectDataSearch2 = new BusinessAssayProjectDataReqVO(); + projectDataSearch2.setBusinessAssayTaskDataId(businessAssayTaskDataDO.getId()); + List projectAndParameterList2 = businessAssayProjectDataMapper.selectProjectAndParameterBy(projectDataSearch2); + for (BusinessAssayProjectAndParameterRespVO ep : projectAndParameterList2) { + map.put("e" + ep.getDicId(), ep); + if (StringUtils.isNotEmpty(ep.getFormula())) { + BusinessAssayParameterDataReqVO parameterDataSearch = new BusinessAssayParameterDataReqVO(); + parameterDataSearch.setBusinessAssayProjectDataId(ep.getId()); + List plist = businessAssayParameterDataMapper.selectProjectAndParameterBy(parameterDataSearch); + for (BusinessAssayProjectAndParameterRespVO p : plist) { + map.put("p" + p.getDicId(), p); + } + } + + } + datas.add(map); + } + + List businessQCManagementDataDOList = businessQCManagementDataMapper.selectByBusinessAssayTaskId(businessAssayTaskDO.getId()); + + + for (BusinessQCManagementDataDO businessQCManagementData : businessQCManagementDataDOList) { + Map map = new HashedMap<>(); + map.put("businessAssayTaskDataId", businessQCManagementData.getId()); + map.put("businessAssayTaskId", businessQCManagementData.getBusinessAssayTaskId()); + map.put("businessSubSampleId", ""); + map.put("businessSubParentSampleId", ""); + map.put("configAssayMethodId", businessQCManagementData.getConfigAssayMethodId()); + map.put("businessAssayTaskDetailId", ""); + map.put("sampleCode", businessQCManagementData.getSampleCode()); + map.put("sampleName", businessQCManagementData.getSampleName()); + map.put("analysisType", businessQCManagementData.getDictionaryBusinessKey()); + + BusinessQCManagementProjectDataReqVO projectDataSearch2 = new BusinessQCManagementProjectDataReqVO(); + projectDataSearch2.setBusinessQCManagementDataId(businessQCManagementData.getId()); + List projectAndParameterList2 = businessQCManagementProjectDataMapper.selectProjectAndParameterBy(projectDataSearch2); + for (BusinessAssayProjectAndParameterRespVO ep : projectAndParameterList2) { + map.put("e" + ep.getDicId(), ep); + if (StringUtils.isNotEmpty(ep.getFormula())) { + BusinessQCManagementParameterDataReqVO parameterDataSearch = new BusinessQCManagementParameterDataReqVO(); + parameterDataSearch.setBusinessQCManagementProjectDataId(ep.getId()); + List plist = businessQCManagementParameterDataMapper.selectProjectAndParameterBy(parameterDataSearch); + for (BusinessAssayProjectAndParameterRespVO p : plist) { + map.put("p" + p.getDicId(), p); + } + } + + } + datas.add(map); + } + + List businessQCCoefficientDataDOList = businessQCCoefficientDataMapper.selectByBusinessAssayTaskId(businessAssayTaskDO.getId()); + for (BusinessQCCoefficientDataDO businessQCCoefficientData: businessQCCoefficientDataDOList) { + Map map = new HashedMap<>(); + map.put("businessAssayTaskDataId", businessQCCoefficientData.getId()); + map.put("businessAssayTaskId", businessQCCoefficientData.getBusinessAssayTaskId()); + map.put("businessSubSampleId", ""); + map.put("businessSubParentSampleId", ""); + map.put("configAssayMethodId", businessQCCoefficientData.getConfigAssayMethodId()); + map.put("businessAssayTaskDetailId", ""); + map.put("sampleCode", businessQCCoefficientData.getSampleCode()); + map.put("sampleName", businessQCCoefficientData.getSampleName()); + map.put("analysisType", businessQCCoefficientData.getDictionaryBusinessKey()); + + BusinessQCCoefficientParameterDataReqVO parameterDataSearch2 = new BusinessQCCoefficientParameterDataReqVO(); + parameterDataSearch2.setBusinessQCCoefficientDataId(businessQCCoefficientData.getId()); + List plist2 = businessQCCoefficientParameterDataMapper.selectProjectAndParameterBy(parameterDataSearch2); + for (BusinessAssayProjectAndParameterRespVO p : plist2) { + map.put("p" + p.getDicId(), p); + } + datas.add(map); + } + + Map>> map = datas.stream().collect(Collectors.groupingBy(g -> (String) g.get("analysisType"))); + for (Map.Entry>> entry : map.entrySet()) { + resultJsonObject.put(entry.getKey(), entry.getValue()); + } + + return resultJsonObject; + } + @Override public void crossAuditByByTaskId(Long businessAssayTaskId, String auditStatus) { @@ -873,6 +1007,8 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic return getParallelResultAssessment(businessSubSampleId, configAssayMethodId); } + + } 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 b299a79..26192bf 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 @@ -576,7 +576,7 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService { map.put("sampleName", businessQCManagementData.getSampleName()); BusinessQCManagementProjectDataReqVO projectDataSearch2 = new BusinessQCManagementProjectDataReqVO(); - projectDataSearch2.setBusinessQCManagementDataId(businessQCManagementDataDO.getId()); + projectDataSearch2.setBusinessQCManagementDataId(businessQCManagementData.getId()); List projectAndParameterList2 = businessQCManagementProjectDataMapper.selectProjectAndParameterBy(projectDataSearch2); for (BusinessAssayProjectAndParameterRespVO ep : projectAndParameterList2) { map.put("e" + ep.getDicId(), ep);