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 | 76 +++++++++++++++++++++++++++++++++++--- 1 files changed, 70 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 c0c312f..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,14 +1,18 @@ package com.sinata.system.service.impl; -import cn.idev.excel.EasyExcel; +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; import com.sinata.common.entity.PageDTO; import com.sinata.common.exception.ServiceException; import com.sinata.common.utils.BeanUtils; import com.sinata.common.utils.StringUtils; +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; import com.sinata.system.domain.query.CheckoutRecordQuery; import com.sinata.system.domain.query.MwStagingRoomQuery; import com.sinata.system.domain.query.StorageRecordQuery; @@ -18,10 +22,16 @@ 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.URLEncoder; import java.util.List; @@ -52,7 +62,7 @@ if (StringUtils.isBlank(treeCode)) { return PageDTO.empty(0L, 0L); } - Page<MwStagingRoomVO> page = baseMapper.pagelist(new Page<>(query.getPageCurr(), query.getPageSize()), treeCode); + Page<MwStagingRoomVO> page = baseMapper.pageList(new Page<>(query.getPageCurr(), query.getPageSize()), treeCode); return PageDTO.of(page); } @@ -83,6 +93,8 @@ if (Objects.isNull(dto.getId())) { throw new ServiceException("暂存间id不能为空"); } + MwStagingRoom mwStagingRoom = BeanUtils.copyBean(dto, MwStagingRoom.class); + updateById(mwStagingRoom); } /** @@ -132,7 +144,9 @@ // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 String fileName = URLEncoder.encode("暂存间入库记录", "UTF-8").replaceAll("\\+", "%20"); response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); - EasyExcel.write(response.getOutputStream(), MwStorageRecordVO.class).sheet("暂存间入库记录").doWrite(list); + FastExcel.write(response.getOutputStream(), MwStorageRecordVO.class) + .registerWriteHandler(new AutoColumnWidthEntityStrategy()) + .sheet("暂存间入库记录").doWrite(list); } /** @@ -164,12 +178,62 @@ return; } List<MwCheckoutRecordVO> list = baseMapper.checkoutRecordList(query, treeCode); - // 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman + 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())) { + 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); + } + + } + } + } + } response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setCharacterEncoding("utf-8"); - // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 String fileName = URLEncoder.encode("暂存间出库记录", "UTF-8").replaceAll("\\+", "%20"); response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); - EasyExcel.write(response.getOutputStream(), MwCheckoutRecordVO.class).sheet("暂存间出库记录").doWrite(list); + FastExcel.write(response.getOutputStream(), MwCheckoutRecordExcel.class) + .registerWriteHandler(new AutoColumnWidthEntityStrategy()) + .registerWriteHandler(new CustomCellWriteHeightConfig()) + .sheet("暂存间出库记录") + .doWrite(mwCheckoutRecordExcels); + } + + @Override + public List<MwStagingRoomVO> queryStagingRoomList() { + return baseMapper.queryStagingRoomList(); + } + + /** + * 暂存间待处理医废分页列表 + * + * @param query + * @return + */ + @Override + public PageDTO<MwStorageRecordVO> temporarilyStoredMedicalWaste(StorageRecordQuery query) { + return PageDTO.of(baseMapper.temporarilyStoredMedicalWaste(new Page<MwStorageRecordVO>(query.getPageCurr(), query.getPageSize()), query)); + } + + /** + * 根据医废查询使用列表 + * + * @param id 微波设备id + * @return + */ + @Override + public List<MwStorageRecordVO> queryMedicalWasteList(Long id) { + return baseMapper.queryMedicalWasteList(id); } } -- Gitblit v1.7.1