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