From 019cebd977245e91ef6be53854a195fcc111249f 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: Fri, 6 Jun 2025 15:03:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E4=BB=A3=E8=B0=A2=E7=89=A9=E5=92=8C=E4=B8=8D?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E4=BB=A3=E8=B0=A2=E7=89=A9=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entrustment/dto/ResultExcelDTO.java | 2 +- ...rustMaterialCheckoutResultServiceImpl.java | 47 +++++++++++++++++-- 2 files changed, 43 insertions(+), 6 deletions(-) diff --git a/src/main/java/digital/laboratory/platform/entrustment/dto/ResultExcelDTO.java b/src/main/java/digital/laboratory/platform/entrustment/dto/ResultExcelDTO.java index ab88ca4..6264870 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/dto/ResultExcelDTO.java +++ b/src/main/java/digital/laboratory/platform/entrustment/dto/ResultExcelDTO.java @@ -11,5 +11,5 @@ public class ResultExcelDTO { List oldResult; LocalDateTime startTime; LocalDateTime endTime; - boolean isMetabolite; + Boolean isMetabolite; } diff --git a/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustMaterialCheckoutResultServiceImpl.java b/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustMaterialCheckoutResultServiceImpl.java index c675494..25290b3 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustMaterialCheckoutResultServiceImpl.java +++ b/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustMaterialCheckoutResultServiceImpl.java @@ -3,6 +3,7 @@ package digital.laboratory.platform.entrustment.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; @@ -38,6 +39,7 @@ import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.xssf.usermodel.*; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import springfox.documentation.spring.web.json.Json; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; @@ -542,6 +544,7 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl oldResults = excelDTO.getOldResult(); Integer entrustType = excelDTO.getEntrustType(); + // 创建查询条件包装器 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -611,6 +614,18 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl { + if (StringUtils.isNotBlank(result.getMetaboliteResult())) { + List drugLites = DrugLiteConvert.getDrugLites(result.getMetaboliteResult()); + List drugLites1 = DrugLiteConvert.getDrugLites(result.getQualitativeResult()); + drugLites.addAll(drugLites1); + result.setQualitativeResult(JSONArray.toJSONString(drugLites)); + } + }); + } // 将检测结果转换为 Map Map resultMap = resultList.stream() .collect(Collectors.toMap(EntrustMaterialCheckoutResult::getId, Function.identity())); @@ -651,7 +666,7 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl oldResults = excelDTO.getOldResult(); Integer entrustType = excelDTO.getEntrustType(); - boolean metabolite = excelDTO.isMetabolite(); + boolean isMetabolite = excelDTO.getIsMetabolite(); try { // 1. 构建查询条件 LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); @@ -712,6 +727,14 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl drugLites1 = DrugLiteConvert.getDrugLites(result.getMetaboliteResult()); + for (DrugLite drugLite : drugLites1) { + if (!drugNames.contains(drugLite.getName())) { + drugNames.add(drugLite.getName()); + } + } + } } // 5. 处理不同毒品名称的数据 @@ -720,13 +743,27 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl resultList = this.list(Wrappers.lambdaQuery() - .like(EntrustMaterialCheckoutResult::getQualitativeResult, drugName) + .and(queryWrapper -> queryWrapper + .like(EntrustMaterialCheckoutResult::getMetaboliteResult, drugName) + .or() + .like(EntrustMaterialCheckoutResult::getQualitativeResult, drugName)) .in(EntrustMaterialCheckoutResult::getEntrustId, entrustIdList)); if (resultList.isEmpty()) { continue; } + if (isMetabolite) { + resultList.forEach(item -> { + if (StringUtils.isNotBlank(item.getMetaboliteResult())) { + List drugLites = DrugLiteConvert.getDrugLites(item.getMetaboliteResult()); + List drugLites1 = DrugLiteConvert.getDrugLites(item.getQualitativeResult()); + drugLites.addAll(drugLites1); + item.setQualitativeResult(JSONArray.toJSONString(drugLites)); + } + }); + } + // 转换为 Map,方便后续查找 Map checkoutResultMap = resultList.stream() .collect(Collectors.toMap(EntrustMaterialCheckoutResult::getId, Function.identity())); @@ -1733,7 +1770,7 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl