From 04ac241630ad659674f5cec848d030bb84f70685 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=B5=B7=E8=88=AA?= <11918452+yang-haihang@user.noreply.gitee.com> Date: Wed, 26 Mar 2025 17:38:51 +0800 Subject: [PATCH] update --- .../impl/InspectRecordServiceImpl.java | 54 ++++++++++++++++++- .../inspection/vo/IonPairAndCEVO.java | 16 ++++++ 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/vo/IonPairAndCEVO.java diff --git a/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/InspectRecordServiceImpl.java b/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/InspectRecordServiceImpl.java index 9fbca66..12b219b 100644 --- a/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/InspectRecordServiceImpl.java +++ b/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/service/impl/InspectRecordServiceImpl.java @@ -19,10 +19,13 @@ import digital.laboratory.platform.inspection.entity.TestRecordSampleDataExpand; import digital.laboratory.platform.inspection.enums.BusinessType; import digital.laboratory.platform.inspection.enums.TestRecordFileUrl; import digital.laboratory.platform.inspection.service.*; +import digital.laboratory.platform.inspection.vo.IonPairAndCEVO; +import digital.laboratory.platform.inspection.vo.TestRecordReagentVO; import digital.laboratory.platform.inspetion.api.entity.EntrustInfo; import digital.laboratory.platform.inspetion.api.entity.SampleInfo; import digital.laboratory.platform.inspetion.api.entity.TargetObject; import digital.laboratory.platform.inspetion.api.entity.TestRecord; +import digital.laboratory.platform.sys.entity.Drug; import digital.laboratory.platform.sys.enums.entrust.EntrustBiologyType; import org.apache.commons.io.output.ByteArrayOutputStream; import org.springframework.beans.BeanUtils; @@ -67,6 +70,8 @@ public class InspectRecordServiceImpl implements InspectRecordService { @Resource private TestRecordSampledataExpandService testRecordSampledataExpandService; + @Resource + /** * 生成检验记录-贵阳禁毒 * @@ -233,6 +238,13 @@ public class InspectRecordServiceImpl implements InspectRecordService { for (int i = 0; i < dataDtos.size(); i++) { dataDtos.get(i).setIndexNum(String.valueOf(indexNum++)); } + this.buildIonPairAndCE(data, testRecordReagentService + .list(Wrappers.lambdaQuery() + .in(TestRecordReagent::getId, testRecord.getReagentConsumablesList()) + .eq(TestRecordReagent::getCategory, "标准物质")) + .stream() + .map(item -> item.getId()) + .collect(Collectors.toList())); // 返回处理后的数据 data.put("dataDtos", dataDtos); data.put("sampleSize", dataDtos.size()); @@ -240,6 +252,45 @@ public class InspectRecordServiceImpl implements InspectRecordService { return data; } + public void buildIonPairAndCE(Map data, List reagentIdList) { + List ionPairAndCEVOS = new ArrayList<>(); + + // 遍历 reagentIdList + for (String id : reagentIdList) { + TestRecordReagentVO vo = testRecordReagentService.getVOById(id); + if (vo == null) { + continue; // 如果 vo 为空,跳过当前循环 + } + + Drug drug = vo.getDrug(); + if (drug == null) { + continue; // 如果 drug 为空,跳过当前循环 + } + + // 添加 ionPairAndCEVO1 和 ionPairAndCEVO2 + ionPairAndCEVOS.add(createIonPairAndCEVO(drug.getName(), drug.getMainProductIon(), + drug.getMainDeclusteringPotential(), drug.getMainCollisionEnergy())); + ionPairAndCEVOS.add(createIonPairAndCEVO(drug.getName(), drug.getMinorProductIon(), + drug.getMinorDeclusteringPotential(), drug.getMinorCollisionEnergy())); + } + + // 将结果放入数据 map 中 + data.put("ionPairAndCEVOS", ionPairAndCEVOS); + data.put("ionPairAndCEVOSize", ionPairAndCEVOS.size() / 2); + } + + // 创建 IonPairAndCEVO 对象的辅助方法 + private IonPairAndCEVO createIonPairAndCEVO(String compoundName, String productIon, + Integer declusteringPotential, Integer collisionEnergy) { + IonPairAndCEVO ionPairAndCEVO = new IonPairAndCEVO(); + ionPairAndCEVO.setCompoundName(compoundName); + ionPairAndCEVO.setProductIon(productIon); + ionPairAndCEVO.setDeclusteringPotential(declusteringPotential); + ionPairAndCEVO.setCollisionEnergy(collisionEnergy); + return ionPairAndCEVO; + } + + /** * 根据委托信息和样本类型生成生物样本检验记录文件。 * @@ -313,7 +364,8 @@ public class InspectRecordServiceImpl implements InspectRecordService { String templatePath = "/template" + "/贵阳禁毒常规毒品检验记录模板.docx"; LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy(); Configure config = Configure.builder(). - bind("dataDtos", policy).build(); + bind("dataDtos", policy) + .bind("ionPairAndCEVOS", policy).build(); return buildDocFileAndUploadToOss(entrustId, templatePath, config, docMap); } diff --git a/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/vo/IonPairAndCEVO.java b/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/vo/IonPairAndCEVO.java new file mode 100644 index 0000000..687aedb --- /dev/null +++ b/dlp-drugtesting-biz/src/main/java/digital/laboratory/platform/inspection/vo/IonPairAndCEVO.java @@ -0,0 +1,16 @@ +package digital.laboratory.platform.inspection.vo; + +import lombok.Data; + +@Data +public class IonPairAndCEVO { + + private String compoundName; + + private String productIon; + + private Integer declusteringPotential; + + private Integer collisionEnergy; + +}