From 3659edb3f59e5e438c4799b2a06ed19d20bd521e Mon Sep 17 00:00:00 2001 From: wxr Date: Thu, 25 Dec 2025 10:19:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A3=80=E9=AA=8C=E5=A7=94=E6=89=98=E7=94=9F?= =?UTF-8?q?=E6=88=90=E6=A0=B7=E5=93=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SampleEntrustGenSampleDataCmp.java | 273 +++++++++++------- .../SampleResultReportingServiceImpl.java | 14 +- 2 files changed, 169 insertions(+), 118 deletions(-) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustGenSampleDataCmp.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustGenSampleDataCmp.java index dd54133..4a24ea7 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustGenSampleDataCmp.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustGenSampleDataCmp.java @@ -2,6 +2,7 @@ package com.zt.plat.module.qms.business.bus.liteflow.sample.entrust; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -426,6 +427,8 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { List currentMaterialAssayStandardDetailIdList = currentMaterialAssayStandardMethodList.stream().map(m -> m.getMaterialAssayStandardDetailId()).collect(Collectors.toList()); //获取当前分析方法对应的检测项目 List dictionaryProjectIdList = sampleEntrustProjectDOList.stream().filter(f -> currentMaterialAssayStandardDetailIdList.contains(f.getMaterialAssayStandardDetailId())).map(m -> m.getDictionaryProjectId()).collect(Collectors.toList()); + //获取当前分析方法对应的检测项目显示名称 + List dictionaryProjectShowNameList = dictionaryProjectList.stream().filter(f -> dictionaryProjectIdList.contains(f.getId())).map(m -> m.getShowName()).collect(Collectors.toList()); //查询分析方法 ConfigAssayMethodDO configAssayMethodDO = configAssayMethodList.stream().filter(f -> f.getId().equals(configAssayMethodId)).findFirst().orElse(null); @@ -512,65 +515,84 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { String assayType = configSubSampleMethodDO.getTaskCount() > 1 ? QmsCommonConstant.ASSAY_TYPE_SINGLE_PARALLEL : QmsCommonConstant.ASSAY_TYPE_SINGLE_CUP; //分样判定数据 - BusinessSubParentSampleAssessmentDO businessSubParentSampleAssessmentDO = new BusinessSubParentSampleAssessmentDO(); - businessSubParentSampleAssessmentDO.setId(IdWorker.getId()); - businessSubParentSampleAssessmentDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId()); - businessSubParentSampleAssessmentDO.setConfigAssayMethodId(configAssayMethodId); - businessSubParentSampleAssessmentDO.setAssayType(assayType); - businessSubParentSampleAssessmentDO.setTaskType("常规"); - businessSubParentSampleAssessmentDOList.add(businessSubParentSampleAssessmentDO); + BusinessSubParentSampleAssessmentDO businessSubParentSampleAssessmentDO = businessSubParentSampleAssessmentDOList.stream().filter(f -> f.getBusinessSubParentSampleId().equals(businessSubSampleDO.getBusinessSubParentSampleId()) && f.getConfigAssayMethodId().equals(configAssayMethodId) && f.getAssayType().equals(assayType)).findFirst().orElse(null);//防止重复添加,先从列表过滤 + if (businessSubParentSampleAssessmentDO == null) { + businessSubParentSampleAssessmentDO = new BusinessSubParentSampleAssessmentDO(); + businessSubParentSampleAssessmentDO.setId(IdWorker.getId()); + businessSubParentSampleAssessmentDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId()); + businessSubParentSampleAssessmentDO.setConfigAssayMethodId(configAssayMethodId); + businessSubParentSampleAssessmentDO.setAssayType(assayType); + businessSubParentSampleAssessmentDO.setTaskType("常规"); + businessSubParentSampleAssessmentDOList.add(businessSubParentSampleAssessmentDO); + } //子样判定数据 - BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = new BusinessSubSampleAssessmentDO(); - businessSubSampleAssessmentDO.setId(IdWorker.getId()); - businessSubSampleAssessmentDO.setBusinessBaseSampleId(businessSubSampleDO.getBusinessBaseSampleId()); - businessSubSampleAssessmentDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId()); - businessSubSampleAssessmentDO.setBusinessSubSampleId(businessSubSampleDO.getId()); - businessSubSampleAssessmentDO.setBusinessSubParentSampleAssessmentId(businessSubParentSampleAssessmentDO.getId()); - businessSubSampleAssessmentDO.setConfigAssayMethodId(configAssayMethodId); - businessSubSampleAssessmentDO.setAssayType(assayType); - businessSubSampleAssessmentDO.setTaskType("常规"); - - businessSubSampleAssessmentDOList.add(businessSubSampleAssessmentDO); - - //根据检测方法循环 - BusinessAssayTaskDataDO businessAssayTaskDataDO = null; + BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = businessSubSampleAssessmentDOList.stream().filter(f -> f.getBusinessSubSampleId().equals(businessSubSampleDO.getId()) && f.getConfigAssayMethodId().equals(configAssayMethodId) && f.getAssayType().equals(assayType)).findFirst().orElse(null);//防止重复添加,先从列表过滤 + if (businessSubSampleAssessmentDO == null) { + businessSubSampleAssessmentDO = new BusinessSubSampleAssessmentDO(); + businessSubSampleAssessmentDO.setId(IdWorker.getId()); + businessSubSampleAssessmentDO.setBusinessBaseSampleId(businessSubSampleDO.getBusinessBaseSampleId()); + businessSubSampleAssessmentDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId()); + businessSubSampleAssessmentDO.setBusinessSubSampleId(businessSubSampleDO.getId()); + businessSubSampleAssessmentDO.setBusinessSubParentSampleAssessmentId(businessSubParentSampleAssessmentDO.getId()); + businessSubSampleAssessmentDO.setConfigAssayMethodId(configAssayMethodId); + businessSubSampleAssessmentDO.setAssayType(assayType); + businessSubSampleAssessmentDO.setTaskType("常规"); + + businessSubSampleAssessmentDOList.add(businessSubSampleAssessmentDO); + } + //根据任务数循环 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.setBusinessSubSampleAssessmentId(businessSubSampleAssessmentDO.getId()); - businessAssayTaskDataDO.setConfigAssayMethodId(configAssayMethodId); - businessAssayTaskDataDO.setAssayType(assayType); - businessAssayTaskDataDO.setTaskType("常规"); - businessAssayTaskDataDO.setConfigSampleFlowId(configSampleFlowSub.getId()); - businessAssayTaskDataDO.setSampleFlowNodeKey(sampleFlowNodeSub.getNodeKey()); - businessAssayTaskDataDO.setSampleFlowNodeTime(currentDateTime); - businessAssayTaskDataDO.setAssayDepartmentId(configAssayMethodDO.getAssayDepartmentId()); - businessAssayTaskDataDO.setAssayDepartmentName(configAssayMethodDO.getAssayDepartmentName()); + BusinessAssayTaskDataDO businessAssayTaskDataDO = businessAssayTaskDataDOList.stream().filter(f -> { + String assayProject = f.getAssayProject(); + if (StringUtils.isNotBlank(assayProject)) { + List assayProjectList = Arrays.asList(assayProject.split(",")); + return !assayProjectList.containsAll(dictionaryProjectShowNameList);//分析项目未完全存在,则返回 + } + return false; + }).findFirst().orElse(null); - //子样检测任务参数 - List configAssayMethodParameterDOList = configAssayMethodParameterList.stream().filter(f -> f.getConfigAssayMethodId().equals(configAssayMethodId)).collect(Collectors.toList()); - BusinessAssayTaskParameterDataDO businessAssayTaskParameterDataDO = null; - for (ConfigAssayMethodParameterDO configAssayMethodParameterDO : configAssayMethodParameterDOList) { - businessAssayTaskParameterDataDO = new BusinessAssayTaskParameterDataDO(); - businessAssayTaskParameterDataDO.setId(IdWorker.getId()); - businessAssayTaskParameterDataDO.setBusinessAssayTaskDataId(businessAssayTaskDataDO.getId()); - businessAssayTaskParameterDataDO.setConfigAssayMethodParameterId(configAssayMethodParameterDO.getId()); - businessAssayTaskParameterDataDO.setDataType(configAssayMethodParameterDO.getDataType()); - businessAssayTaskParameterDataDO.setDecimalPosition(configAssayMethodParameterDO.getDecimalPosition()); + if (businessAssayTaskDataDO == null) { + //子样检测任务 + businessAssayTaskDataDO = new BusinessAssayTaskDataDO(); + businessAssayTaskDataDO.setId(IdWorker.getId()); + businessAssayTaskDataDO.setBusinessBaseSampleId(businessSubSampleDO.getBusinessBaseSampleId()); + businessAssayTaskDataDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId()); + businessAssayTaskDataDO.setBusinessSubSampleId(businessSubSampleDO.getId()); + businessAssayTaskDataDO.setBusinessSubSampleAssessmentId(businessSubSampleAssessmentDO.getId()); + businessAssayTaskDataDO.setConfigAssayMethodId(configAssayMethodId); + businessAssayTaskDataDO.setAssayType(assayType); + businessAssayTaskDataDO.setTaskType("常规"); + businessAssayTaskDataDO.setConfigSampleFlowId(configSampleFlowSub.getId()); + businessAssayTaskDataDO.setSampleFlowNodeKey(sampleFlowNodeSub.getNodeKey()); + businessAssayTaskDataDO.setSampleFlowNodeTime(currentDateTime); + businessAssayTaskDataDO.setAssayDepartmentId(configAssayMethodDO.getAssayDepartmentId()); + businessAssayTaskDataDO.setAssayDepartmentName(configAssayMethodDO.getAssayDepartmentName()); - businessAssayTaskParameterDataDOList.add(businessAssayTaskParameterDataDO); + //子样检测任务参数 + List configAssayMethodParameterDOList = configAssayMethodParameterList.stream().filter(f -> f.getConfigAssayMethodId().equals(configAssayMethodId)).collect(Collectors.toList()); + BusinessAssayTaskParameterDataDO businessAssayTaskParameterDataDO = null; + for (ConfigAssayMethodParameterDO configAssayMethodParameterDO : configAssayMethodParameterDOList) { + businessAssayTaskParameterDataDO = new BusinessAssayTaskParameterDataDO(); + businessAssayTaskParameterDataDO.setId(IdWorker.getId()); + businessAssayTaskParameterDataDO.setBusinessAssayTaskDataId(businessAssayTaskDataDO.getId()); + businessAssayTaskParameterDataDO.setConfigAssayMethodParameterId(configAssayMethodParameterDO.getId()); + businessAssayTaskParameterDataDO.setDataType(configAssayMethodParameterDO.getDataType()); + businessAssayTaskParameterDataDO.setDecimalPosition(configAssayMethodParameterDO.getDecimalPosition()); + + businessAssayTaskParameterDataDOList.add(businessAssayTaskParameterDataDO); + } + + //子样检测任务添加 + businessAssayTaskDataDOList.add(businessAssayTaskDataDO); } + //子样检测任务检测项目 List configAssayMethodProjectDOList = configAssayMethodProjectList.stream().filter(f -> f.getConfigAssayMethodId().equals(configAssayMethodId)).collect(Collectors.toList()); - StringBuilder assayProjectBuilder = new StringBuilder(); +// StringBuilder assayProjectBuilder = new StringBuilder(); for (ConfigAssayMethodProjectExtendRespVO configAssayMethodProjectDO : configAssayMethodProjectDOList) { @@ -579,8 +601,8 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { continue; } - DictionaryProjectDO dictionaryProject = dictionaryProjectList.stream().filter(f -> f.getId().equals(configAssayMethodProjectDO.getDictionaryProjectId())).findFirst().orElse(null); - assayProjectBuilder.append(dictionaryProject.getShowName()).append(","); +// DictionaryProjectDO dictionaryProject = dictionaryProjectList.stream().filter(f -> f.getId().equals(configAssayMethodProjectDO.getDictionaryProjectId())).findFirst().orElse(null); +// assayProjectBuilder.append(dictionaryProject.getShowName()).append(","); //检测项目 BusinessAssayProjectDataDO businessAssayProjectDataDO = new BusinessAssayProjectDataDO(); @@ -614,11 +636,15 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { } - if (assayProjectBuilder.length() > 1) { - assayProjectBuilder.delete(assayProjectBuilder.length() - 1 , assayProjectBuilder.length()); - } - businessAssayTaskDataDO.setAssayProject(assayProjectBuilder.toString()); - businessAssayTaskDataDOList.add(businessAssayTaskDataDO); +// if (assayProjectBuilder.length() > 1) { +// assayProjectBuilder.delete(assayProjectBuilder.length() - 1 , assayProjectBuilder.length()); +// } +// businessAssayTaskDataDO.setAssayProject(assayProjectBuilder.toString()); + + Long currentBusinessAssayTaskDataId = businessAssayTaskDataDO.getId(); + List currentDictionaryProjectIdList = businessAssayProjectDataDOList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(currentBusinessAssayTaskDataId)).map(m -> m.getDictionaryProjectId()).collect(Collectors.toList()); + List currentDictionaryProjectShowNameList = dictionaryProjectList.stream().filter(f -> currentDictionaryProjectIdList.contains(f.getId())).map(m -> m.getShowName()).collect(Collectors.toList()); + businessAssayTaskDataDO.setAssayProject(CollUtil.join(currentDictionaryProjectShowNameList, ",")); } } @@ -694,6 +720,9 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { ConfigAssayMethodDO addAssayTaskConfigAssayMethod = configAssayMethodMapper.selectById(methodId); Long addAssayTaskAssayDepartmentId = addAssayTaskConfigAssayMethod.getAssayDepartmentId(); + //获取当前分析方法对应的检测项目显示名称 + List dictionaryProjectShowNameList = dictionaryProjectList.stream().filter(f -> projectIdList.contains(f.getId())).map(m -> m.getShowName()).collect(Collectors.toList()); + //查询子样对应的分析方法 ConfigSubSampleMethodExtendRespVO addAssayTaskConfigSubSampleMethodDO = configSubSampleMethodList.stream().filter(f -> f.getIsDefaultUse().equals(QmsCommonConstant.YES) && f.getConfigAssayMethodId().equals(methodId) && f.getConfigSubSampleId().equals(configSubSample.getId())).findFirst().orElse(null); @@ -715,66 +744,88 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { String assayType = addAssayTaskConfigSubSampleMethodDO.getTaskCount() > 1 ? QmsCommonConstant.ASSAY_TYPE_SINGLE_PARALLEL : QmsCommonConstant.ASSAY_TYPE_SINGLE_CUP; //分样判定数据 - BusinessSubParentSampleAssessmentDO businessSubParentSampleAssessmentDO = new BusinessSubParentSampleAssessmentDO(); - businessSubParentSampleAssessmentDO.setId(IdWorker.getId()); - businessSubParentSampleAssessmentDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId()); - businessSubParentSampleAssessmentDO.setConfigAssayMethodId(addAssayTaskConfigAssayMethod.getId()); - businessSubParentSampleAssessmentDO.setAssayType(assayType); - businessSubParentSampleAssessmentDO.setTaskType("常规"); - businessSubParentSampleAssessmentDOList.add(businessSubParentSampleAssessmentDO); + BusinessSubParentSampleAssessmentDO businessSubParentSampleAssessmentDO = businessSubParentSampleAssessmentDOList.stream().filter(f -> f.getBusinessSubParentSampleId().equals(businessSubSampleDO.getBusinessSubParentSampleId()) && f.getConfigAssayMethodId().equals(addAssayTaskConfigAssayMethod.getId()) && f.getAssayType().equals(assayType)).findFirst().orElse(null);//防止重复添加,先从列表过滤 + if (businessSubParentSampleAssessmentDO == null) { + businessSubParentSampleAssessmentDO = new BusinessSubParentSampleAssessmentDO(); + businessSubParentSampleAssessmentDO.setId(IdWorker.getId()); + businessSubParentSampleAssessmentDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId()); + businessSubParentSampleAssessmentDO.setConfigAssayMethodId(addAssayTaskConfigAssayMethod.getId()); + businessSubParentSampleAssessmentDO.setAssayType(assayType); + businessSubParentSampleAssessmentDO.setTaskType("常规"); + businessSubParentSampleAssessmentDOList.add(businessSubParentSampleAssessmentDO); + + } //子样判定数据 - BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = new BusinessSubSampleAssessmentDO(); - businessSubSampleAssessmentDO.setId(IdWorker.getId()); - businessSubSampleAssessmentDO.setBusinessBaseSampleId(businessSubSampleDO.getBusinessBaseSampleId()); - businessSubSampleAssessmentDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId()); - businessSubSampleAssessmentDO.setBusinessSubParentSampleAssessmentId(businessSubParentSampleAssessmentDO.getId()); - businessSubSampleAssessmentDO.setBusinessSubSampleId(businessSubSampleDO.getId()); - businessSubSampleAssessmentDO.setConfigAssayMethodId(addAssayTaskConfigAssayMethod.getId()); - businessSubSampleAssessmentDO.setAssayType(assayType); - businessSubSampleAssessmentDO.setTaskType("常规"); - - businessSubSampleAssessmentDOList.add(businessSubSampleAssessmentDO); + BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = businessSubSampleAssessmentDOList.stream().filter(f -> f.getBusinessSubSampleId().equals(businessSubSampleDO.getId()) && f.getConfigAssayMethodId().equals(addAssayTaskConfigAssayMethod.getId()) && f.getAssayType().equals(assayType)).findFirst().orElse(null);//防止重复添加,先从列表过滤 + if (businessSubSampleAssessmentDO == null) { + businessSubSampleAssessmentDO = new BusinessSubSampleAssessmentDO(); + businessSubSampleAssessmentDO.setId(IdWorker.getId()); + businessSubSampleAssessmentDO.setBusinessBaseSampleId(businessSubSampleDO.getBusinessBaseSampleId()); + businessSubSampleAssessmentDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId()); + businessSubSampleAssessmentDO.setBusinessSubParentSampleAssessmentId(businessSubParentSampleAssessmentDO.getId()); + businessSubSampleAssessmentDO.setBusinessSubSampleId(businessSubSampleDO.getId()); + businessSubSampleAssessmentDO.setConfigAssayMethodId(addAssayTaskConfigAssayMethod.getId()); + businessSubSampleAssessmentDO.setAssayType(assayType); + businessSubSampleAssessmentDO.setTaskType("常规"); + + businessSubSampleAssessmentDOList.add(businessSubSampleAssessmentDO); + } - //根据检测方法循环 - BusinessAssayTaskDataDO businessAssayTaskDataDO = null; //根据任务数循环 for (int i = 0; i < addAssayTaskConfigSubSampleMethodDO.getTaskCount(); i++) { - //子样检测任务 - businessAssayTaskDataDO = new BusinessAssayTaskDataDO(); - businessAssayTaskDataDO.setId(IdWorker.getId()); - businessAssayTaskDataDO.setBusinessBaseSampleId(businessSubSampleDO.getBusinessBaseSampleId()); - businessAssayTaskDataDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId()); - businessAssayTaskDataDO.setBusinessSubSampleId(businessSubSampleDO.getId()); - businessAssayTaskDataDO.setBusinessSubSampleAssessmentId(businessSubSampleAssessmentDO.getId());//子样判定id - businessAssayTaskDataDO.setConfigAssayMethodId(addAssayTaskConfigAssayMethod.getId()); - businessAssayTaskDataDO.setAssayType(assayType); - businessAssayTaskDataDO.setTaskType("常规"); - businessAssayTaskDataDO.setConfigSampleFlowId(configSampleFlowSub.getId()); - businessAssayTaskDataDO.setSampleFlowNodeKey(sampleFlowNodeSub.getNodeKey()); - businessAssayTaskDataDO.setSampleFlowNodeTime(currentDateTime); - businessAssayTaskDataDO.setAssayDepartmentId(addAssayTaskConfigAssayMethod.getAssayDepartmentId()); - businessAssayTaskDataDO.setAssayDepartmentName(addAssayTaskConfigAssayMethod.getAssayDepartmentName()); - - //子样检测任务参数 - List configAssayMethodParameterDOList = configAssayMethodParameterList.stream().filter(f -> f.getConfigAssayMethodId().equals(methodId)).collect(Collectors.toList()); - BusinessAssayTaskParameterDataDO businessAssayTaskParameterDataDO = null; - for (ConfigAssayMethodParameterDO configAssayMethodParameterDO : configAssayMethodParameterDOList) { - businessAssayTaskParameterDataDO = new BusinessAssayTaskParameterDataDO(); - businessAssayTaskParameterDataDO.setId(IdWorker.getId()); - businessAssayTaskParameterDataDO.setBusinessAssayTaskDataId(businessAssayTaskDataDO.getId()); - businessAssayTaskParameterDataDO.setConfigAssayMethodParameterId(configAssayMethodParameterDO.getId()); - businessAssayTaskParameterDataDO.setDataType(configAssayMethodParameterDO.getDataType()); - businessAssayTaskParameterDataDO.setDecimalPosition(configAssayMethodParameterDO.getDecimalPosition()); + //根据检测方法循环 + BusinessAssayTaskDataDO businessAssayTaskDataDO = businessAssayTaskDataDOList.stream().filter(f -> { + String assayProject = f.getAssayProject(); + if (StringUtils.isNotBlank(assayProject)) { + List assayProjectList = Arrays.asList(assayProject.split(",")); + return !assayProjectList.containsAll(dictionaryProjectShowNameList);//分析项目未完全存在,则返回 + } + return false; + }).findFirst().orElse(null); + + if (businessAssayTaskDataDO == null) { + //子样检测任务 + businessAssayTaskDataDO = new BusinessAssayTaskDataDO(); + businessAssayTaskDataDO.setId(IdWorker.getId()); + businessAssayTaskDataDO.setBusinessBaseSampleId(businessSubSampleDO.getBusinessBaseSampleId()); + businessAssayTaskDataDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId()); + businessAssayTaskDataDO.setBusinessSubSampleId(businessSubSampleDO.getId()); + businessAssayTaskDataDO.setBusinessSubSampleAssessmentId(businessSubSampleAssessmentDO.getId());//子样判定id + businessAssayTaskDataDO.setConfigAssayMethodId(addAssayTaskConfigAssayMethod.getId()); + businessAssayTaskDataDO.setAssayType(assayType); + businessAssayTaskDataDO.setTaskType("常规"); + businessAssayTaskDataDO.setConfigSampleFlowId(configSampleFlowSub.getId()); + businessAssayTaskDataDO.setSampleFlowNodeKey(sampleFlowNodeSub.getNodeKey()); + businessAssayTaskDataDO.setSampleFlowNodeTime(currentDateTime); + businessAssayTaskDataDO.setAssayDepartmentId(addAssayTaskConfigAssayMethod.getAssayDepartmentId()); + businessAssayTaskDataDO.setAssayDepartmentName(addAssayTaskConfigAssayMethod.getAssayDepartmentName()); - businessAssayTaskParameterDataDOList.add(businessAssayTaskParameterDataDO); + + //子样检测任务参数 + List configAssayMethodParameterDOList = configAssayMethodParameterList.stream().filter(f -> f.getConfigAssayMethodId().equals(methodId)).collect(Collectors.toList()); + BusinessAssayTaskParameterDataDO businessAssayTaskParameterDataDO = null; + for (ConfigAssayMethodParameterDO configAssayMethodParameterDO : configAssayMethodParameterDOList) { + businessAssayTaskParameterDataDO = new BusinessAssayTaskParameterDataDO(); + businessAssayTaskParameterDataDO.setId(IdWorker.getId()); + businessAssayTaskParameterDataDO.setBusinessAssayTaskDataId(businessAssayTaskDataDO.getId()); + businessAssayTaskParameterDataDO.setConfigAssayMethodParameterId(configAssayMethodParameterDO.getId()); + businessAssayTaskParameterDataDO.setDataType(configAssayMethodParameterDO.getDataType()); + businessAssayTaskParameterDataDO.setDecimalPosition(configAssayMethodParameterDO.getDecimalPosition()); + + businessAssayTaskParameterDataDOList.add(businessAssayTaskParameterDataDO); + } + + + businessAssayTaskDataDOList.add(businessAssayTaskDataDO); } + //子样检测任务检测项目 List configAssayMethodProjectDOList = configAssayMethodProjectList.stream().filter(f -> f.getConfigAssayMethodId().equals(methodId)).collect(Collectors.toList()); - StringBuilder assayProjectBuilder = new StringBuilder(); +// StringBuilder assayProjectBuilder = new StringBuilder(); for (ConfigAssayMethodProjectExtendRespVO configAssayMethodProjectDO : configAssayMethodProjectDOList) { @@ -783,8 +834,8 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { continue; } - DictionaryProjectDO dictionaryProject = dictionaryProjectList.stream().filter(f -> f.getId().equals(configAssayMethodProjectDO.getDictionaryProjectId())).findFirst().orElse(null); - assayProjectBuilder.append(dictionaryProject.getShowName()).append(","); +// DictionaryProjectDO dictionaryProject = dictionaryProjectList.stream().filter(f -> f.getId().equals(configAssayMethodProjectDO.getDictionaryProjectId())).findFirst().orElse(null); +// assayProjectBuilder.append(dictionaryProject.getShowName()).append(","); //检测项目 @@ -816,11 +867,13 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { businessAssayParameterDataDOList.add(businessAssayParameterDataDO); } } - if (assayProjectBuilder.length() > 1) { - assayProjectBuilder.delete(assayProjectBuilder.length() - 1 , assayProjectBuilder.length()); - } - businessAssayTaskDataDO.setAssayProject(assayProjectBuilder.toString()); - businessAssayTaskDataDOList.add(businessAssayTaskDataDO); +// if (assayProjectBuilder.length() > 1) { +// assayProjectBuilder.delete(assayProjectBuilder.length() - 1 , assayProjectBuilder.length()); +// } + Long currentBusinessAssayTaskDataId = businessAssayTaskDataDO.getId(); + List currentDictionaryProjectIdList = businessAssayProjectDataDOList.stream().filter(f -> f.getBusinessAssayTaskDataId().equals(currentBusinessAssayTaskDataId)).map(m -> m.getDictionaryProjectId()).collect(Collectors.toList()); + List currentDictionaryProjectShowNameList = dictionaryProjectList.stream().filter(f -> currentDictionaryProjectIdList.contains(f.getId())).map(m -> m.getShowName()).collect(Collectors.toList()); + businessAssayTaskDataDO.setAssayProject(CollUtil.join(currentDictionaryProjectShowNameList, ",")); } } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleResultReportingServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleResultReportingServiceImpl.java index f6492d1..2a45af1 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleResultReportingServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleResultReportingServiceImpl.java @@ -17,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional; import com.alibaba.cloud.commons.lang.StringUtils; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; +import com.alibaba.fastjson2.TypeReference; import com.alibaba.qlexpress4.Express4Runner; import com.alibaba.qlexpress4.QLOptions; import com.alibaba.qlexpress4.QLResult; @@ -534,10 +535,10 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe } else { updateBusinessAssayReportDataDOList.add(businessAssayReportDataDO); } - JSONObject assayDataJson = new JSONObject(); + Map assayDataJson = new HashMap<>(); String assayData = businessAssayReportDataDO.getAssayData(); if (StringUtils.isNotBlank(assayData)) { - assayDataJson = JSON.parseObject(assayData); + assayDataJson = JSON.parseObject(assayData, new TypeReference>() {}); } //循环判定值 List businessSubParentSampleAssessmentList = businessSubParentSampleAssessmentExtendList.stream().filter(f -> f.getBusinessSubParentSampleId().equals(businessSubParentSampleDO.getId()) && "normal".equals(f.getAssessmentStatus())).collect(Collectors.toList()); @@ -581,12 +582,11 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe if (busDataSources.size() == dataSources.size() && busDataSources.equals(dataSources)) { businessAssayReportDataDO.setIsAllReported(QmsCommonConstant.YES); } - if (busDataSources.size() > 0) {//计算 - + if (busDataSources.size() > 0) {//计算 Map calcContext = assayDataJson.entrySet().stream().collect(Collectors.toMap( Map.Entry::getKey, entry -> { - ReportFieldValueData data = (ReportFieldValueData) entry.getValue(); + ReportFieldValueData data = entry.getValue(); String fieldValue = data != null ? data.getFieldValue() : null; if (fieldValue == null || fieldValue.isEmpty()) { return BigDecimal.ZERO; @@ -633,14 +633,12 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe reportFieldValueData.setMethodName(null); assayDataJson.put(configReportFieldCalculated.getField(), reportFieldValueData); - } - } } - businessAssayReportDataDO.setAssayData(assayDataJson.toJSONString()); + businessAssayReportDataDO.setAssayData(JSON.toJSONString(assayDataJson)); businessAssayReportDataDO.setReportedSource(JSON.toJSONString(reportedDataSource)); }