From 33dbc6a161554f3a897f9e9273feb4f2c1b47381 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期一, 15 十二月 2025 17:04:27 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override

---
 north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java |   79 ++++++++++++++++++++++++++++-----------
 1 files changed, 57 insertions(+), 22 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java
index 116db21..e15bb07 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java
@@ -53,33 +53,45 @@
        return orderFiles;
     }
 
-    public Object updateOrderFileByOrderNumber(MultipartFile file,String orderId,String orderNumber) throws IOException {
+    public Object updateOrderFileByOrderNumber(MultipartFile file,String name,String orderId,String orderNumber) throws IOException {
+       //鍒ゆ柇鏄惁瑙勫畾鐨勬牸寮忓悗缂�鍚�
+        if(!isAllowedFile(name)){
+           return null;
+       }
+
 
         try (InputStream is = License.class.getResourceAsStream("/lisence.xml")) {
-            License license = new License();
-            license.setLicense(is);
+            String base64 = null;
+            if(name.toLowerCase().endsWith(".dwg")){
+
+                License license = new License();
+                license.setLicense(is);
 
 
-            // 璋冪敤Image绫荤殑Load鏂规硶鏉ュ姞杞借緭鍏ョ殑DWG鏂囦欢銆�
-            Image image = Image.load(file.getInputStream());
-            // 鍒涘缓CadRasterizationOptions瀹炰緥浠ュ惎鐢–AD鏍呮牸鍖栭�夐」銆�
-            CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
-            // 璁剧疆瀹藉害
-            rasterizationOptions.setPageWidth(1000);
-            // 璁剧疆楂樺害
-            rasterizationOptions.setPageHeight(700);
-            // 璋冪敤杩欎釜setEmbedBackground鏂规硶鏉ヨ缃儗鏅壊鏄惁涓嶇瓑浜庤緭鍑烘牸寮忕殑榛樿鑳屾櫙鑹�
-            //rasterizationOptions.setEmbedBackground(true);
-            // 涓虹敓鎴愮殑鍥惧儚鍒涘缓涓�涓狿ngOptions鐨勫疄渚嬶紝骞跺皢鍏跺垎閰嶇粰ImageOptionsBase绫荤殑瀹炰緥銆�
-            ImageOptionsBase options = new PngOptions();
-            // 璋冪敤 setVectorRasterizationOptions 鏂规硶鏉ュ畾涔夊厜鏍呭寲閫夐」
-            options.setVectorRasterizationOptions(rasterizationOptions);
+                // 璋冪敤Image绫荤殑Load鏂规硶鏉ュ姞杞借緭鍏ョ殑DWG鏂囦欢銆�
+                Image image = Image.load(file.getInputStream());
+                // 鍒涘缓CadRasterizationOptions瀹炰緥浠ュ惎鐢–AD鏍呮牸鍖栭�夐」銆�
+                CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
+                // 璁剧疆瀹藉害
+                rasterizationOptions.setPageWidth(1000);
+                // 璁剧疆楂樺害
+                rasterizationOptions.setPageHeight(700);
+                // 璋冪敤杩欎釜setEmbedBackground鏂规硶鏉ヨ缃儗鏅壊鏄惁涓嶇瓑浜庤緭鍑烘牸寮忕殑榛樿鑳屾櫙鑹�
+                //rasterizationOptions.setEmbedBackground(true);
+                // 涓虹敓鎴愮殑鍥惧儚鍒涘缓涓�涓狿ngOptions鐨勫疄渚嬶紝骞跺皢鍏跺垎閰嶇粰ImageOptionsBase绫荤殑瀹炰緥銆�
+                ImageOptionsBase options = new PngOptions();
+                // 璋冪敤 setVectorRasterizationOptions 鏂规硶鏉ュ畾涔夊厜鏍呭寲閫夐」
+                options.setVectorRasterizationOptions(rasterizationOptions);
 
-            // 淇濆瓨鍒板瓧鑺傛祦
-            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-            image.save(outputStream, options);
-            byte[] imageBytes = outputStream.toByteArray();
-            String base64 = "data:image/png;base64," + Base64.getEncoder().encodeToString(imageBytes);
+                // 淇濆瓨鍒板瓧鑺傛祦
+                ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+                image.save(outputStream, options);
+                byte[] imageBytes = outputStream.toByteArray();
+                base64 = "data:image/png;base64," + Base64.getEncoder().encodeToString(imageBytes);
+            }else{
+                base64 = "data:image/png;base64," + Base64.getEncoder().encodeToString(file.getBytes());
+            }
+
             OrderFile orderFile = new OrderFile();
             orderFile.setImageBase64(base64);
             orderFile.setFileName(file.getName());
@@ -107,6 +119,10 @@
             e.printStackTrace();
             return null;
         }
+
+
+
+
     }
 
     public Object getOrderNumberFile(String orderId, String orderNumber) {
@@ -122,4 +138,23 @@
                     .eq("order_number", orderNumber)
                 ) > 0;
     }
+
+    public static boolean isAllowedFile(String fileName) {
+        List<String> allowedExtensions = Arrays.asList(".dwg", ".png", ".jpg");
+        if (fileName == null || fileName.isEmpty()) {
+            return false;
+        }
+
+        String lowerFileName = fileName.toLowerCase();
+
+        for (String ext : allowedExtensions) {
+            if (!ext.startsWith(".")) {
+                ext = "." + ext;
+            }
+            if (lowerFileName.endsWith(ext)) {
+                return true;
+            }
+        }
+        return false;
+    }
 }

--
Gitblit v1.8.0