From 8502fa3b35ee337ed06f752401d1d216675177b5 Mon Sep 17 00:00:00 2001 From: chen <2710907404@qq.com> Date: Thu, 9 Oct 2025 15:08:00 +0800 Subject: [PATCH] =?UTF-8?q?202501009=20=E6=9B=B4=E6=96=B0=201.=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=8F=AF=E5=AF=BC=E5=87=BA=E4=B8=8A=E4=BC=A0=E8=87=B3?= =?UTF-8?q?=E7=A6=81=E6=AF=92=E5=A4=A7=E6=95=B0=E6=8D=AE=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...trustMaterialCheckoutResultController.java | 6 - .../controller/EntrustmentController.java | 2 - .../controller/ExcelOperationController.java | 3 - .../PushDataToLabsCareController.java | 1 - .../dto/GenerateQuarterlyReportDTO.java | 1 - .../entrustment/dto/ResultExcelDTO.java | 25 +++- .../entity/EntrustMaterialCheckoutResult.java | 2 +- .../entrustment/entity/Entrustment.java | 1 + .../EntrustmentIdentificationMaterial.java | 1 - .../entrustment/mapper/SuspectMapper.java | 3 +- .../EntrustMaterialCheckoutResultService.java | 17 ++- ...rustMaterialCheckoutResultServiceImpl.java | 138 +++++++++--------- ...mentIdentificationMaterialServiceImpl.java | 1 - .../entrustment/utils/ExcelUtils.java | 5 +- .../vo/EntrustMaterialCheckoutResultVO.java | 1 - .../entrustment/vo/EntrustmentVO.java | 1 - 16 files changed, 102 insertions(+), 106 deletions(-) diff --git a/src/main/java/digital/laboratory/platform/entrustment/controller/EntrustMaterialCheckoutResultController.java b/src/main/java/digital/laboratory/platform/entrustment/controller/EntrustMaterialCheckoutResultController.java index f4b0644..deebb38 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/controller/EntrustMaterialCheckoutResultController.java +++ b/src/main/java/digital/laboratory/platform/entrustment/controller/EntrustMaterialCheckoutResultController.java @@ -1,6 +1,5 @@ package digital.laboratory.platform.entrustment.controller; -import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import digital.laboratory.platform.common.core.exception.CheckedException; @@ -11,11 +10,9 @@ import digital.laboratory.platform.entrustment.convert.EntrustMaterialCheckoutRe import digital.laboratory.platform.entrustment.dto.EntrustMaterialCheckoutResultDTO; import digital.laboratory.platform.entrustment.dto.GenerateQuarterlyReportDTO; import digital.laboratory.platform.entrustment.dto.ResultExcelDTO; -import digital.laboratory.platform.entrustment.query.BaseQuery; import digital.laboratory.platform.entrustment.query.EntrustMaterialCheckoutResultQuery; import digital.laboratory.platform.entrustment.service.EntrustMaterialCheckoutResultService; import digital.laboratory.platform.entrustment.vo.EntrustMaterialCheckoutResultVO; -import digital.laboratory.platform.entrustment.vo.EntrustmentIdentificationMaterialVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; @@ -26,11 +23,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; -import java.sql.Array; import java.sql.SQLException; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; /** * 委托检材--检出定性定量结果信息 diff --git a/src/main/java/digital/laboratory/platform/entrustment/controller/EntrustmentController.java b/src/main/java/digital/laboratory/platform/entrustment/controller/EntrustmentController.java index c63d898..e9ab3fc 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/controller/EntrustmentController.java +++ b/src/main/java/digital/laboratory/platform/entrustment/controller/EntrustmentController.java @@ -10,7 +10,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import digital.laboratory.platform.common.aop.annotation.DlpAccessLimit; import digital.laboratory.platform.common.aop.annotation.DlpRepeatSubmit; import digital.laboratory.platform.common.core.constant.OSSDirectoryConstants; import digital.laboratory.platform.common.core.exception.CheckedException; @@ -21,7 +20,6 @@ import digital.laboratory.platform.common.oss.service.OssFile; import digital.laboratory.platform.common.security.annotation.Inner; import digital.laboratory.platform.common.security.util.SecurityUtils; import digital.laboratory.platform.entrustment.dto.EntrustmentDTO; -import digital.laboratory.platform.entrustment.dto.MaterialDTO; import digital.laboratory.platform.entrustment.entity.CaseEvent; import digital.laboratory.platform.entrustment.entity.Entrustment; import digital.laboratory.platform.entrustment.enums.EntrustStatusConstants; diff --git a/src/main/java/digital/laboratory/platform/entrustment/controller/ExcelOperationController.java b/src/main/java/digital/laboratory/platform/entrustment/controller/ExcelOperationController.java index 44ad7f4..62a4fb6 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/controller/ExcelOperationController.java +++ b/src/main/java/digital/laboratory/platform/entrustment/controller/ExcelOperationController.java @@ -4,9 +4,6 @@ import digital.laboratory.platform.common.core.util.R; import digital.laboratory.platform.entrustment.service.ExcelOperationService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.apache.poi.ss.usermodel.Row; -import org.apache.poi.ss.usermodel.Sheet; -import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; diff --git a/src/main/java/digital/laboratory/platform/entrustment/controller/PushDataToLabsCareController.java b/src/main/java/digital/laboratory/platform/entrustment/controller/PushDataToLabsCareController.java index 0920983..8870ca1 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/controller/PushDataToLabsCareController.java +++ b/src/main/java/digital/laboratory/platform/entrustment/controller/PushDataToLabsCareController.java @@ -9,7 +9,6 @@ import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; diff --git a/src/main/java/digital/laboratory/platform/entrustment/dto/GenerateQuarterlyReportDTO.java b/src/main/java/digital/laboratory/platform/entrustment/dto/GenerateQuarterlyReportDTO.java index 05af6ac..10dca9e 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/dto/GenerateQuarterlyReportDTO.java +++ b/src/main/java/digital/laboratory/platform/entrustment/dto/GenerateQuarterlyReportDTO.java @@ -2,7 +2,6 @@ package digital.laboratory.platform.entrustment.dto; import lombok.Data; -import java.util.ArrayList; import java.util.List; @Data public class GenerateQuarterlyReportDTO { 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 d961fdc..865a731 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/dto/ResultExcelDTO.java +++ b/src/main/java/digital/laboratory/platform/entrustment/dto/ResultExcelDTO.java @@ -1,20 +1,31 @@ package digital.laboratory.platform.entrustment.dto; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.time.LocalDateTime; import java.util.List; @Data -public class +@ApiModel(value = "ResultExcelDTO对象", description = "导出检材信息excel的参数") +public class ResultExcelDTO { + @ApiModelProperty(value = "委托类型") + private Integer entrustType; + @ApiModelProperty(value = "鉴定情况") + private List oldResult; + @ApiModelProperty(value = "开始时间") + private LocalDateTime startTime; -ResultExcelDTO { - Integer entrustType; - List oldResult; - LocalDateTime startTime; - LocalDateTime endTime; - Boolean isMetabolite; + @ApiModelProperty(value = "结束时间") + private LocalDateTime endTime; + + @ApiModelProperty(value = "是否代谢物") + private Boolean isMetabolite; + + @ApiModelProperty(value = "是否导出可上传至禁毒大数据平台文件") + private Boolean exportForBigDataPlatform; } diff --git a/src/main/java/digital/laboratory/platform/entrustment/entity/EntrustMaterialCheckoutResult.java b/src/main/java/digital/laboratory/platform/entrustment/entity/EntrustMaterialCheckoutResult.java index 23d6df9..aec5537 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/entity/EntrustMaterialCheckoutResult.java +++ b/src/main/java/digital/laboratory/platform/entrustment/entity/EntrustMaterialCheckoutResult.java @@ -31,7 +31,7 @@ public class EntrustMaterialCheckoutResult extends BaseEntity { private String qualitativeResult; /** - * 定量结果 + * 定量结果,多个则是通过 、分隔 */ @TableField(updateStrategy = FieldStrategy.IGNORED) private String quantitativeResult; diff --git a/src/main/java/digital/laboratory/platform/entrustment/entity/Entrustment.java b/src/main/java/digital/laboratory/platform/entrustment/entity/Entrustment.java index d0b8200..0ee2165 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/entity/Entrustment.java +++ b/src/main/java/digital/laboratory/platform/entrustment/entity/Entrustment.java @@ -14,6 +14,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; + import java.time.LocalDateTime; import java.util.List; diff --git a/src/main/java/digital/laboratory/platform/entrustment/entity/EntrustmentIdentificationMaterial.java b/src/main/java/digital/laboratory/platform/entrustment/entity/EntrustmentIdentificationMaterial.java index babf344..96c2cf1 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/entity/EntrustmentIdentificationMaterial.java +++ b/src/main/java/digital/laboratory/platform/entrustment/entity/EntrustmentIdentificationMaterial.java @@ -13,7 +13,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; import org.apache.commons.lang.StringUtils; -import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.math.BigDecimal; diff --git a/src/main/java/digital/laboratory/platform/entrustment/mapper/SuspectMapper.java b/src/main/java/digital/laboratory/platform/entrustment/mapper/SuspectMapper.java index 7e2e567..1ce27b4 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/mapper/SuspectMapper.java +++ b/src/main/java/digital/laboratory/platform/entrustment/mapper/SuspectMapper.java @@ -3,11 +3,10 @@ package digital.laboratory.platform.entrustment.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import digital.laboratory.platform.entrustment.entity.Suspect; import org.apache.ibatis.annotations.Mapper; -import org.springframework.stereotype.Repository; /** * 委托嫌疑人数据访问接口 */ @Mapper public interface SuspectMapper extends BaseMapper { -} \ No newline at end of file +} diff --git a/src/main/java/digital/laboratory/platform/entrustment/service/EntrustMaterialCheckoutResultService.java b/src/main/java/digital/laboratory/platform/entrustment/service/EntrustMaterialCheckoutResultService.java index 214b9bc..9407787 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/service/EntrustMaterialCheckoutResultService.java +++ b/src/main/java/digital/laboratory/platform/entrustment/service/EntrustMaterialCheckoutResultService.java @@ -14,16 +14,13 @@ import digital.laboratory.platform.entrustment.query.EntrustMaterialCheckoutResu import digital.laboratory.platform.entrustment.vo.DetectionRateVO; import digital.laboratory.platform.entrustment.vo.EntrustMaterialCheckoutResultVO; import digital.laboratory.platform.entrustment.vo.EntrustmentIdentificationMaterialVO; -import digital.laboratory.platform.entrustment.vo.SuspectDetectionVO; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.sql.SQLException; import java.time.LocalDateTime; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * @author ChenJiangBao @@ -49,12 +46,12 @@ public interface EntrustMaterialCheckoutResultService extends IService entrustIds, HttpServletResponse response) throws IOException; + void exportForBigDataPlatform(ResultExcelDTO excelDTO, HttpServletResponse response) throws IOException; /** * vo 分页对象 @@ -84,7 +81,13 @@ public interface EntrustMaterialCheckoutResultService extends IService entrustIds, HttpServletResponse response) throws IOException { + public void exportForBigDataPlatform(ResultExcelDTO excelDTO, HttpServletResponse response) throws IOException { // 获取委托信息 + List allResults = getOriginalIdentificationList(excelDTO.getOldResult()); List entrustmentList = entrustmentService.list( - Wrappers.lambdaQuery().in(Entrustment::getId, entrustIds) + Wrappers.lambdaQuery() + .eq(excelDTO.getEntrustType() != null, Entrustment::getEntrustmentType, excelDTO.getEntrustType()) + .in(CollUtil.isNotEmpty(allResults), Entrustment::getOldIdentificationResult, allResults) + .ge(excelDTO.getStartTime() != null, Entrustment::getAcceptTime, excelDTO.getStartTime()) + .le(excelDTO.getEndTime() != null, Entrustment::getAcceptTime, excelDTO.getEndTime()) ); + List entrustIds = entrustmentList.stream().map(Entrustment::getId).collect(Collectors.toList()); // 获取检材信息, 排序的原因是需要数据是有序的 List materialList = entrustmentIdentificationMaterialService.list( Wrappers.lambdaQuery() @@ -251,25 +253,6 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl voiPage(EntrustMaterialCheckoutResultQuery query) { -// IPage page = this.page( -// new Page<>(query.getCurrent(), query.getSize()), -// Wrappers.lambdaQuery() -// .eq(StrUtil.isNotBlank(query.getEntrustId()), EntrustMaterialCheckoutResult::getEntrustId, query.getEntrustId()) -// .orderByDesc(EntrustMaterialCheckoutResult::getUpdateTime) -// ); -// IPage voPage = new Page<>(); -// BeanUtils.copyProperties(page, voPage, "records"); -// List records = page.getRecords(); -// if (CollUtil.isNotEmpty(records)) { -// List entrustmentIdentificationMaterials = entrustmentIdentificationMaterialService.list(Wrappers.lambdaQuery().in(EntrustmentIdentificationMaterial::getId, records.stream().map(EntrustMaterialCheckoutResult::getId).collect(Collectors.toSet()))); -// Map materialMap = entrustmentIdentificationMaterials.stream().collect(Collectors.toMap(EntrustmentIdentificationMaterial::getId, Function.identity())); -// List entrustMaterialCheckoutResultVOS = records.stream().map(record -> { -// EntrustMaterialCheckoutResultVO entrustMaterialCheckoutResultVO = EntrustMaterialCheckoutResultConvert.entityToVO(record); -// entrustMaterialCheckoutResultVO.setName(materialMap.get(record.getId()).getName()); -// return entrustMaterialCheckoutResultVO; -// }).collect(Collectors.toList()); -// voPage.setRecords(entrustMaterialCheckoutResultVOS); -// } return baseMapper.getEntrustMaterialCheckoutResultVOPage( new Page<>(query.getCurrent(), query.getSize()), Wrappers.query() @@ -333,8 +316,8 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl allResults = new ArrayList<>(); - for (String oldResult : oldResults) { - if (StringUtils.isNotBlank(oldResult)) { - if ("委托".equals(oldResult)) { - allResults.add("首次鉴定"); - allResults.add("补充鉴定"); - allResults.add("重新鉴定"); - } else { - allResults.add(oldResult); - } - } - } + List allResults = getOriginalIdentificationList(oldResults); if (!allResults.isEmpty()) { wrapper.in(Entrustment::getOldIdentificationResult, allResults); @@ -682,6 +656,27 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl getOriginalIdentificationList(List oldResults) { + List allResults = new ArrayList<>(); + for (String oldResult : oldResults) { + if (StringUtils.isNotBlank(oldResult)) { + if ("委托".equals(oldResult)) { + allResults.add("首次鉴定"); + allResults.add("补充鉴定"); + allResults.add("重新鉴定"); + } else { + allResults.add(oldResult); + } + } + } + return allResults; + } + public Map> getResultDataMap( ResultExcelDTO excelDTO) { @@ -701,19 +696,7 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl allResults = new ArrayList<>(); - for (String oldResult : oldResults) { - if (StringUtils.isNotBlank(oldResult)) { - if ("委托".equals(oldResult)) { - allResults.add("首次鉴定"); - allResults.add("补充鉴定"); - allResults.add("重新鉴定"); - } else { - allResults.add(oldResult); - } - } - } - + List allResults = getOriginalIdentificationList(oldResults); if (!allResults.isEmpty()) { qw.in(Entrustment::getOldIdentificationResult, allResults); } @@ -854,28 +837,41 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl resultData = this.getResultData(excelDTO); - Map> resultDataMap = this.getResultDataMap(excelDTO); - LocalDateTime startTime = excelDTO.getStartTime(); - LocalDateTime endTime = excelDTO.getEndTime(); - Integer entrustType = excelDTO.getEntrustType(); - List oldResults = excelDTO.getOldResult(); + if (excelDTO.getExportForBigDataPlatform() != null && excelDTO.getExportForBigDataPlatform()) { + // 导出可上传至禁毒大数据平台文件 + exportForBigDataPlatform(excelDTO, response); + } else { + // 获取查询数据 + List resultData = this.getResultData(excelDTO); + Map> resultDataMap = this.getResultDataMap(excelDTO); - if (resultData.isEmpty() || resultDataMap.isEmpty()) { - return R.failed("没有符合条件的数据!"); - } + LocalDateTime startTime = excelDTO.getStartTime(); + LocalDateTime endTime = excelDTO.getEndTime(); + Integer entrustType = excelDTO.getEntrustType(); + List oldResults = excelDTO.getOldResult(); - Workbook workbook = new XSSFWorkbook(); + if (resultData.isEmpty() || resultDataMap.isEmpty()) { + return R.failed("没有符合条件的数据!"); + } - createDataSheet(workbook, entrustType, resultData); - createStatisticsSheet(workbook, resultDataMap, oldResults, entrustType, startTime, endTime); - createDrugSheets(workbook, resultDataMap, entrustType); + Workbook workbook = new XSSFWorkbook(); - workbook.write(response.getOutputStream()); + createDataSheet(workbook, entrustType, resultData); + createStatisticsSheet(workbook, resultDataMap, oldResults, entrustType, startTime, endTime); + createDrugSheets(workbook, resultDataMap, entrustType); + + workbook.write(response.getOutputStream()); + } return R.ok("导出成功!"); } diff --git a/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentIdentificationMaterialServiceImpl.java b/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentIdentificationMaterialServiceImpl.java index f9e8aa9..d34a593 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentIdentificationMaterialServiceImpl.java +++ b/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentIdentificationMaterialServiceImpl.java @@ -59,7 +59,6 @@ import javax.servlet.http.HttpServletResponse; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.io.OutputStream; import java.math.BigDecimal; import java.math.RoundingMode; import java.net.URLEncoder; diff --git a/src/main/java/digital/laboratory/platform/entrustment/utils/ExcelUtils.java b/src/main/java/digital/laboratory/platform/entrustment/utils/ExcelUtils.java index e65e30b..9b9bc74 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/utils/ExcelUtils.java +++ b/src/main/java/digital/laboratory/platform/entrustment/utils/ExcelUtils.java @@ -5,7 +5,10 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.web.multipart.MultipartFile; import java.io.InputStream; -import java.util.*; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; /** * @author ChenJiangBao diff --git a/src/main/java/digital/laboratory/platform/entrustment/vo/EntrustMaterialCheckoutResultVO.java b/src/main/java/digital/laboratory/platform/entrustment/vo/EntrustMaterialCheckoutResultVO.java index bb4e570..989c010 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/vo/EntrustMaterialCheckoutResultVO.java +++ b/src/main/java/digital/laboratory/platform/entrustment/vo/EntrustMaterialCheckoutResultVO.java @@ -1,6 +1,5 @@ package digital.laboratory.platform.entrustment.vo; -import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/src/main/java/digital/laboratory/platform/entrustment/vo/EntrustmentVO.java b/src/main/java/digital/laboratory/platform/entrustment/vo/EntrustmentVO.java index 48f470d..808968b 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/vo/EntrustmentVO.java +++ b/src/main/java/digital/laboratory/platform/entrustment/vo/EntrustmentVO.java @@ -1,6 +1,5 @@ package digital.laboratory.platform.entrustment.vo; -import digital.laboratory.platform.common.aop.annotation.DlpFeign; import digital.laboratory.platform.entrustment.entity.Entrustment; import digital.laboratory.platform.entrustment.entity.EntrustmentIdentificationMaterial; import digital.laboratory.platform.entrustment.entity.Suspect;