From ede49ec7133b86d9db9dc1f0328418dcdaaef8aa Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期五, 28 二月 2025 15:16:55 +0800 Subject: [PATCH] 报告修改+实验结果 --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java | 61 +++++++++++++++++++++++++++--- 1 files changed, 55 insertions(+), 6 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java index 41a8ecc..c728dec 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java @@ -1,19 +1,20 @@ package com.yuanchu.mom.service.impl; import cn.hutool.poi.excel.ExcelUtil; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.alibaba.excel.write.style.column.SimpleColumnWidthStyleStrategy; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.yuanchu.mom.dto.FactoryDto; -import com.yuanchu.mom.dto.LaboratoryDto; -import com.yuanchu.mom.dto.SampleTypeDto; +import com.yuanchu.mom.dto.*; import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.StandardProductListMapper; import com.yuanchu.mom.mapper.StandardTreeMapper; -import com.yuanchu.mom.pojo.StandardProductList; -import com.yuanchu.mom.pojo.StandardTemplate; -import com.yuanchu.mom.pojo.StandardTree; +import com.yuanchu.mom.pojo.*; import com.yuanchu.mom.service.*; import lombok.AllArgsConstructor; import org.apache.commons.lang3.ObjectUtils; @@ -21,12 +22,16 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; /** * @author Administrator @@ -63,6 +68,23 @@ } } return factoryDtos; + } + + @Override + public List<SampleTypeDto> selectStandardTreeList2() { + List<SampleTypeDto> sampleTypeDtos= new ArrayList<>(); + List<FactoryDto> factoryDtos = standardTreeMapper.selectStandardTreeList(); + for (FactoryDto factoryDto : factoryDtos) { + for (LaboratoryDto laboratoryDto : factoryDto.getChildren()) { + for (SampleTypeDto sampleTypeDto : laboratoryDto.getChildren()) { + if (sampleTypeDto.getChildren().size() == 0) { + sampleTypeDto.setChildren(standardTreeMapper.getStandardTree3(sampleTypeDto.getValue())); + } + sampleTypeDtos.add(sampleTypeDto); + } + } + } + return sampleTypeDtos; } @Override @@ -420,6 +442,33 @@ }); } + //瀵煎嚭 + @Override + public void exportStandTree(HttpServletResponse response) throws IOException { + //鏌ヨ鏍囧噯搴撴暟鎹�,鎸夌収浜у搧澶х被鍒嗙被 + List<standardTreeDto> standardTreeDtos = standardTreeMapper.exportStandTree(); + Map<String, List<standardTreeDto>> collect = standardTreeDtos.stream().collect(Collectors.groupingBy(standardTreeDto -> standardTreeDto.getSampleType())); + List<Map.Entry<String, List<standardTreeDto>>> entryList = new ArrayList<>(collect.entrySet()); + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("UTF-8"); + // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴 + String fileName = URLEncoder.encode("鏍囧噯搴撳鍑�", "UTF-8"); + response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); + try { + // 鏂板缓ExcelWriter + ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); + for (int i = 0; i < collect.size(); i++) { + Map.Entry<String, List<standardTreeDto>> entry = entryList.get(i); + WriteSheet mainSheet = EasyExcel.writerSheet(i, entry.getKey()+"鏍囧噯搴撳鍑�").head(standardTreeDto.class).build(); + excelWriter.write(entry.getValue(), mainSheet); + } + // 鍏抽棴娴� + excelWriter.finish(); + } catch (IOException e) { + throw new RuntimeException("瀵煎嚭澶辫触"); + } + } + @Override public void resetTreeOfPrice(String tree, Integer standardId) { standardProductListMapper.update(null, Wrappers.<StandardProductList>lambdaUpdate().like(StandardProductList::getTree, tree).eq(StandardProductList::getStandardMethodListId, standardId).set(StandardProductList::getPrice, null)); -- Gitblit v1.9.3