From d89a42213b4a32535e93185dedf41fe7a7fc1940 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 04 四月 2025 01:57:13 +0800
Subject: [PATCH] bug修改

---
 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwStagingRoomServiceImpl.java |   33 +++++++++++++++++++++++++++------
 1 files changed, 27 insertions(+), 6 deletions(-)

diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwStagingRoomServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwStagingRoomServiceImpl.java
index ce919cc..aaa6beb 100644
--- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwStagingRoomServiceImpl.java
+++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwStagingRoomServiceImpl.java
@@ -1,5 +1,6 @@
 package com.sinata.system.service.impl;
 
+import cn.hutool.core.bean.copier.CopyOptions;
 import cn.idev.excel.FastExcel;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -7,7 +8,8 @@
 import com.sinata.common.exception.ServiceException;
 import com.sinata.common.utils.BeanUtils;
 import com.sinata.common.utils.StringUtils;
-import com.sinata.system.config.AutoColumnWidthStrategy;
+import com.sinata.system.config.AutoColumnWidthEntityStrategy;
+import com.sinata.system.config.CustomCellWriteHeightConfig;
 import com.sinata.system.domain.MwStagingRoom;
 import com.sinata.system.domain.dto.MwStagingRoomDTO;
 import com.sinata.system.domain.excel.MwCheckoutRecordExcel;
@@ -20,12 +22,17 @@
 import com.sinata.system.mapper.MwStagingRoomMapper;
 import com.sinata.system.service.MwStagingRoomService;
 import com.sinata.system.service.SysDepartmentService;
+import com.sinata.system.utils.ImgUtils;
 import lombok.RequiredArgsConstructor;
+import net.coobird.thumbnailator.Thumbnails;
+import org.apache.commons.io.FilenameUtils;
 import org.springframework.stereotype.Service;
 
+import javax.imageio.ImageIO;
 import javax.servlet.http.HttpServletResponse;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.net.URL;
 import java.net.URLEncoder;
 import java.util.List;
 import java.util.Objects;
@@ -138,7 +145,7 @@
         String fileName = URLEncoder.encode("暂存间入库记录", "UTF-8").replaceAll("\\+", "%20");
         response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
         FastExcel.write(response.getOutputStream(), MwStorageRecordVO.class)
-                .registerWriteHandler(new AutoColumnWidthStrategy())
+                .registerWriteHandler(new AutoColumnWidthEntityStrategy())
                 .sheet("暂存间入库记录").doWrite(list);
     }
 
@@ -171,11 +178,24 @@
             return;
         }
         List<MwCheckoutRecordVO> list = baseMapper.checkoutRecordList(query, treeCode);
-        List<MwCheckoutRecordExcel> mwCheckoutRecordExcels = BeanUtils.copyToList(list, MwCheckoutRecordExcel.class);
+        CopyOptions copyOptions = new CopyOptions();
+        copyOptions.setIgnoreProperties("hospitalSignature");
+        List<MwCheckoutRecordExcel> mwCheckoutRecordExcels = BeanUtils.copyToList(list, MwCheckoutRecordExcel.class, copyOptions);
         for (MwCheckoutRecordExcel mwCheckoutRecordExcel : mwCheckoutRecordExcels) {
             for (MwCheckoutRecordVO mwCheckoutRecordVO : list) {
                 if (mwCheckoutRecordVO.getId().equals(mwCheckoutRecordExcel.getId())) {
-                    mwCheckoutRecordExcel.setHospitalSignature(new URL(mwCheckoutRecordVO.getHospitalSignature()));
+                    if (StringUtils.isNotBlank(mwCheckoutRecordVO.getHospitalSignature())) {
+                        try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
+                            //获取文件后缀
+                            String extension = FilenameUtils.getExtension(mwCheckoutRecordVO.getHospitalSignature());
+                            BufferedImage originalImage = ImageIO.read(ImgUtils.getFileByHttpURL(mwCheckoutRecordVO.getHospitalSignature()));
+                            Thumbnails.of(originalImage).scale(0.8).rotate(270).outputFormat(extension).toOutputStream(outputStream);
+                            mwCheckoutRecordExcel.setHospitalSignature(outputStream.toByteArray());
+                        } catch (IOException e) {
+                            throw new RuntimeException(e);
+                        }
+
+                    }
                 }
             }
         }
@@ -184,7 +204,8 @@
         String fileName = URLEncoder.encode("暂存间出库记录", "UTF-8").replaceAll("\\+", "%20");
         response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
         FastExcel.write(response.getOutputStream(), MwCheckoutRecordExcel.class)
-                .registerWriteHandler(new AutoColumnWidthStrategy())
+                .registerWriteHandler(new AutoColumnWidthEntityStrategy())
+                .registerWriteHandler(new CustomCellWriteHeightConfig())
                 .sheet("暂存间出库记录")
                 .doWrite(mwCheckoutRecordExcels);
     }

--
Gitblit v1.7.1