添加了可以导出代谢物和不导出代谢物列表的功能
This commit is contained in:
@@ -11,5 +11,5 @@ public class ResultExcelDTO {
|
|||||||
List<String> oldResult;
|
List<String> oldResult;
|
||||||
LocalDateTime startTime;
|
LocalDateTime startTime;
|
||||||
LocalDateTime endTime;
|
LocalDateTime endTime;
|
||||||
boolean isMetabolite;
|
Boolean isMetabolite;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package digital.laboratory.platform.entrustment.service.impl;
|
|||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
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.apache.poi.xssf.usermodel.*;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import springfox.documentation.spring.web.json.Json;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
@@ -542,6 +544,7 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
|
|||||||
LocalDateTime endTime = excelDTO.getEndTime();
|
LocalDateTime endTime = excelDTO.getEndTime();
|
||||||
List<String> oldResults = excelDTO.getOldResult();
|
List<String> oldResults = excelDTO.getOldResult();
|
||||||
Integer entrustType = excelDTO.getEntrustType();
|
Integer entrustType = excelDTO.getEntrustType();
|
||||||
|
|
||||||
// 创建查询条件包装器
|
// 创建查询条件包装器
|
||||||
LambdaQueryWrapper<Entrustment> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Entrustment> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
|
||||||
@@ -611,6 +614,18 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
|
|||||||
.in(EntrustMaterialCheckoutResult::getId, materialIds)
|
.in(EntrustMaterialCheckoutResult::getId, materialIds)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Boolean isMetabolite = excelDTO.getIsMetabolite();
|
||||||
|
|
||||||
|
if (isMetabolite) {
|
||||||
|
resultList.forEach(result -> {
|
||||||
|
if (StringUtils.isNotBlank(result.getMetaboliteResult())) {
|
||||||
|
List<DrugLite> drugLites = DrugLiteConvert.getDrugLites(result.getMetaboliteResult());
|
||||||
|
List<DrugLite> drugLites1 = DrugLiteConvert.getDrugLites(result.getQualitativeResult());
|
||||||
|
drugLites.addAll(drugLites1);
|
||||||
|
result.setQualitativeResult(JSONArray.toJSONString(drugLites));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
// 将检测结果转换为 Map
|
// 将检测结果转换为 Map
|
||||||
Map<String, EntrustMaterialCheckoutResult> resultMap = resultList.stream()
|
Map<String, EntrustMaterialCheckoutResult> resultMap = resultList.stream()
|
||||||
.collect(Collectors.toMap(EntrustMaterialCheckoutResult::getId, Function.identity()));
|
.collect(Collectors.toMap(EntrustMaterialCheckoutResult::getId, Function.identity()));
|
||||||
@@ -651,7 +666,7 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
|
|||||||
LocalDateTime endTime = excelDTO.getEndTime();
|
LocalDateTime endTime = excelDTO.getEndTime();
|
||||||
List<String> oldResults = excelDTO.getOldResult();
|
List<String> oldResults = excelDTO.getOldResult();
|
||||||
Integer entrustType = excelDTO.getEntrustType();
|
Integer entrustType = excelDTO.getEntrustType();
|
||||||
boolean metabolite = excelDTO.isMetabolite();
|
boolean isMetabolite = excelDTO.getIsMetabolite();
|
||||||
try {
|
try {
|
||||||
// 1. 构建查询条件
|
// 1. 构建查询条件
|
||||||
LambdaQueryWrapper<Entrustment> qw = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Entrustment> qw = new LambdaQueryWrapper<>();
|
||||||
@@ -712,6 +727,14 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
|
|||||||
for (DrugLite drugLite : drugLites) {
|
for (DrugLite drugLite : drugLites) {
|
||||||
drugNames.add(drugLite.getName());
|
drugNames.add(drugLite.getName());
|
||||||
}
|
}
|
||||||
|
if (isMetabolite && StringUtils.isNotBlank(result.getMetaboliteResult())) {
|
||||||
|
List<DrugLite> drugLites1 = DrugLiteConvert.getDrugLites(result.getMetaboliteResult());
|
||||||
|
for (DrugLite drugLite : drugLites1) {
|
||||||
|
if (!drugNames.contains(drugLite.getName())) {
|
||||||
|
drugNames.add(drugLite.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 5. 处理不同毒品名称的数据
|
// 5. 处理不同毒品名称的数据
|
||||||
@@ -720,13 +743,27 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
|
|||||||
for (String drugName : drugNames) {
|
for (String drugName : drugNames) {
|
||||||
// 5.1 查询所有含有该毒品的检验结果
|
// 5.1 查询所有含有该毒品的检验结果
|
||||||
List<EntrustMaterialCheckoutResult> resultList = this.list(Wrappers.<EntrustMaterialCheckoutResult>lambdaQuery()
|
List<EntrustMaterialCheckoutResult> resultList = this.list(Wrappers.<EntrustMaterialCheckoutResult>lambdaQuery()
|
||||||
.like(EntrustMaterialCheckoutResult::getQualitativeResult, drugName)
|
.and(queryWrapper -> queryWrapper
|
||||||
|
.like(EntrustMaterialCheckoutResult::getMetaboliteResult, drugName)
|
||||||
|
.or()
|
||||||
|
.like(EntrustMaterialCheckoutResult::getQualitativeResult, drugName))
|
||||||
.in(EntrustMaterialCheckoutResult::getEntrustId, entrustIdList));
|
.in(EntrustMaterialCheckoutResult::getEntrustId, entrustIdList));
|
||||||
|
|
||||||
if (resultList.isEmpty()) {
|
if (resultList.isEmpty()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isMetabolite) {
|
||||||
|
resultList.forEach(item -> {
|
||||||
|
if (StringUtils.isNotBlank(item.getMetaboliteResult())) {
|
||||||
|
List<DrugLite> drugLites = DrugLiteConvert.getDrugLites(item.getMetaboliteResult());
|
||||||
|
List<DrugLite> drugLites1 = DrugLiteConvert.getDrugLites(item.getQualitativeResult());
|
||||||
|
drugLites.addAll(drugLites1);
|
||||||
|
item.setQualitativeResult(JSONArray.toJSONString(drugLites));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// 转换为 Map,方便后续查找
|
// 转换为 Map,方便后续查找
|
||||||
Map<String, EntrustMaterialCheckoutResult> checkoutResultMap = resultList.stream()
|
Map<String, EntrustMaterialCheckoutResult> checkoutResultMap = resultList.stream()
|
||||||
.collect(Collectors.toMap(EntrustMaterialCheckoutResult::getId, Function.identity()));
|
.collect(Collectors.toMap(EntrustMaterialCheckoutResult::getId, Function.identity()));
|
||||||
|
|||||||
Reference in New Issue
Block a user