From 233336b97af9fe4994c92803ee8f1be64f496300 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期日, 05 二月 2023 16:32:15 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/service/all/UploadAttachService.java |   40 +++++++++++++++++++++++++++++++++++++---
 1 files changed, 37 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/lf/server/service/all/UploadAttachService.java b/src/main/java/com/lf/server/service/all/UploadAttachService.java
index dac906f..6e94fea 100644
--- a/src/main/java/com/lf/server/service/all/UploadAttachService.java
+++ b/src/main/java/com/lf/server/service/all/UploadAttachService.java
@@ -260,10 +260,20 @@
         }
 
         Field field = getAnnexField(list.get(0), meta);
-
+        String folder = meta.getName().split(".")[0].trim().toLowerCase() + File.separator;
 
         int rows = 0;
         for (Object obj : list) {
+            String name = getAnnexName(obj, field);
+            if (StringHelper.isEmpty(name)) {
+                continue;
+            }
+
+            String file = findAnnexFile(name, folder, files);
+            if (null == file) {
+                continue;
+            }
+
             BaseEntity be = (BaseEntity) obj;
             rows += insertXlsAnnex(be, files);
         }
@@ -301,6 +311,7 @@
     private Field getAnnexField(Object obj, MetaEntity meta) {
         try {
             String str = ATTACH_TABS.get(meta.getTab());
+
             Field field = obj.getClass().getDeclaredField(str);
             field.setAccessible(true);
 
@@ -311,10 +322,33 @@
     }
 
     /**
-     * 鏌ユ壘Excel闄勪欢
+     * 鑾峰彇闄勪欢鍚嶇О
      */
-    private String findXlsAnnex(Object obj) {
+    private String getAnnexName(Object obj, Field field) {
+        try {
+            Object val = field.get(obj);
 
+            return null == val ? null : val.toString().trim();
+        } catch (Exception ex) {
+            return null;
+        }
+    }
+
+    /**
+     * 鏌ユ壘闄勪欢鏂囦欢
+     */
+    private String findAnnexFile(String name, String folder, List<String> files) {
+        name = File.separator + name.split(".")[0].toLowerCase();
+        for (String file : files) {
+            if (file.toLowerCase().contains(folder) && file.toLowerCase().contains(name)) {
+                return file;
+            }
+        }
+        for (String file : files) {
+            if (file.toLowerCase().contains(name)) {
+                return file;
+            }
+        }
 
         return null;
     }

--
Gitblit v1.9.3