From cfd0903dc0cfc7ffd39c2caa101f31a50441d39c Mon Sep 17 00:00:00 2001
From: 6c <420680616@qq.com>
Date: 星期五, 31 十月 2025 17:29:59 +0800
Subject: [PATCH] 已送审保养打印; 列表批量打印

---
 src/main/java/com/product/print/util/CustomPictureRenderPolicy.java |   31 +++++++++++++++++++++++++++++--
 1 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/product/print/util/CustomPictureRenderPolicy.java b/src/main/java/com/product/print/util/CustomPictureRenderPolicy.java
index de58bd3..a95664c 100644
--- a/src/main/java/com/product/print/util/CustomPictureRenderPolicy.java
+++ b/src/main/java/com/product/print/util/CustomPictureRenderPolicy.java
@@ -8,9 +8,12 @@
 import com.deepoove.poi.data.Pictures;
 import com.deepoove.poi.policy.PictureRenderPolicy;
 import com.deepoove.poi.render.RenderContext;
+import com.product.common.lang.StringUtils;
 import com.product.core.dao.BaseDao;
 import com.product.core.entity.FieldSetEntity;
+import com.product.core.spring.context.SpringMVCContextHolder;
 import com.product.file.service.FileManagerService;
+import com.product.print.config.CmnCode;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -31,9 +34,29 @@
     public PictureRenderData cast(Object source) throws Exception {
         FileManagerService fileManagerService = SpringUtil.getBean(FileManagerService.class);
         String templateUid = source.toString();
+        if (StringUtils.isEmpty(templateUid)) {
+            return null;
+        }
+        int width = 0;
+        int height = 0;
+        if (templateUid.contains(" ")) {
+            String[] infoArr = templateUid.split(" ");
+            templateUid = infoArr[0];
+            width = Integer.parseInt(infoArr[1]);
+            height = Integer.parseInt(infoArr[2]);
+        }
         BaseDao baseDao = SpringUtil.getBean(BaseDao.class);
         FieldSetEntity attachmentFse = baseDao.getFieldSetEntity("product_sys_attachments", templateUid, false);
-        fileManagerService.getFile(templateUid);
+
+        // 閬囬敊璺宠繃锛岄粯璁や娇鐢ㄩ�忔槑鑳屾櫙涓嶆嫤鎴紝璁板綍鏃ュ織鍒版枃浠�
+        try {
+            fileManagerService.getFile(templateUid);
+        } catch (Exception e) {
+            attachmentFse = baseDao.getFieldSetEntityByFilter("product_sys_attachments", "attachment_title=?", new Object[]{"sys_sp_deal_閫忔槑鑳屾櫙"}, false);
+            fileManagerService.getFile(attachmentFse.getUUID());
+            SpringMVCContextHolder.getSystemLogger().error(String.format("%s-闄勪欢uuid:%s", CmnCode.EXISTS_FILE_RECORD_BUT_NO_FILE.getText(), templateUid));
+        }
+
         String fileName = attachmentFse.getString("file_name");
         String type = fileName.substring(fileName.lastIndexOf(".") + 1);
         File file = fileManagerService.getFile(attachmentFse);
@@ -47,7 +70,11 @@
         } else if ("svg".equals(type)) {
             imgType = PictureType.SVG;
         }
-        return converter.convert(Pictures.ofStream(new FileInputStream(file), imgType).create());
+        if (width > 0 && height > 0) {
+            return converter.convert(Pictures.ofStream(new FileInputStream(file), imgType).size(width, height).create());
+        } else {
+            return converter.convert(Pictures.ofStream(new FileInputStream(file), imgType).create());
+        }
     }
 
     @Override

--
Gitblit v1.9.2