| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | 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); |
| | | } |