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