From ed8c7a5effd0d423ce1118b680ecdca6fe732609 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 02 七月 2025 16:43:13 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.11.205:9000/r/P2022036_Service

---
 src/main/java/com/lf/server/service/sys/AttachService.java |  106 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 102 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/lf/server/service/sys/AttachService.java b/src/main/java/com/lf/server/service/sys/AttachService.java
index b7c2994..290b489 100644
--- a/src/main/java/com/lf/server/service/sys/AttachService.java
+++ b/src/main/java/com/lf/server/service/sys/AttachService.java
@@ -1,11 +1,18 @@
 package com.lf.server.service.sys;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.lf.server.entity.all.BaseEntity;
+import com.lf.server.entity.data.FmeLogEntity;
 import com.lf.server.entity.sys.AttachEntity;
+import com.lf.server.helper.ClassHelper;
 import com.lf.server.helper.StringHelper;
+import com.lf.server.mapper.all.BasicMapper;
 import com.lf.server.mapper.sys.AttachMapper;
+import com.lf.server.service.all.UploadAttachService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.lang.reflect.Field;
 import java.util.List;
 
 /**
@@ -17,16 +24,18 @@
     @Autowired
     AttachMapper attachMapper;
 
+    private static String tabs;
+
     @Override
     public Integer selectCount(String name) {
-        name = StringHelper.getLikeStr(name);
+        name = StringHelper.getLikeUpperStr(name);
 
         return attachMapper.selectCount(name);
     }
 
     @Override
     public List<AttachEntity> selectByPage(String name, Integer limit, Integer offset) {
-        name = StringHelper.getLikeStr(name);
+        name = StringHelper.getLikeUpperStr(name);
 
         return attachMapper.selectByPage(name, limit, offset);
     }
@@ -47,7 +56,7 @@
     }
 
     @Override
-    public List<AttachEntity> selectByGuids(String[] guids) {
+    public List<AttachEntity> selectByGuids(List<String> guids) {
         return attachMapper.selectByGuids(guids);
     }
 
@@ -57,7 +66,7 @@
     }
 
     @Override
-    public List<AttachEntity> selectByTabGuids(String tab, String[] guids) {
+    public List<AttachEntity> selectByTabGuids(String tab, List<String> guids) {
         return attachMapper.selectByTabGuids(tab, guids);
     }
 
@@ -95,4 +104,93 @@
     public Integer updates(List<AttachEntity> list) {
         return attachMapper.updates(list);
     }
+
+    @Override
+    public List<FmeLogEntity> selectFmeLogs(String tabs) {
+        return attachMapper.selectFmeLogs(tabs);
+    }
+
+    /**
+     * 鏌ヨFME鏃ュ織
+     */
+    public List<FmeLogEntity> selectFmeLogs() {
+        if (StringHelper.isEmpty(tabs)) {
+            tabs = UploadAttachService.getTabs().replace("'", "");
+        }
+
+        return attachMapper.selectFmeLogs(tabs);
+    }
+
+    @Override
+    public Integer updateFmeLog(Integer id) {
+        return attachMapper.updateFmeLog(id);
+    }
+
+    @Override
+    public Integer insertAttachByMeta(String tab, String tabGuid, String metaName, String dirid) {
+        return attachMapper.insertAttachByMeta(tab, tabGuid, metaName, dirid);
+    }
+
+    /**
+     * 鍚屾闄勪欢
+     */
+    public void syncAttaches(FmeLogEntity entity) {
+        String tab = entity.getPgNs() + "." + entity.getTcdm();
+        String fieldName = UploadAttachService.ATTACH_TABS.get(tab);
+
+        List<?> list = selectRowsByParentid(entity.getTcdm().replace("_", ""), entity.getParentid(), fieldName);
+        if (null == list || list.isEmpty()) {
+            return;
+        }
+
+        Field field = UploadAttachService.getAnnexField(list.get(0), tab);
+        if (null == field) {
+            return;
+        }
+
+        for (Object obj : list) {
+            String[] names = UploadAttachService.getNames(UploadAttachService.getAnnexName(obj, field));
+            if (null == names || names.length == 0) {
+                continue;
+            }
+
+            BaseEntity be = (BaseEntity) obj;
+            String dirid = getDirid(be);
+            for (String name : names) {
+                if (StringHelper.isEmpty(name)) {
+                    continue;
+                }
+                insertAttachByMeta(tab, be.getEventid(), name.trim(), dirid);
+            }
+        }
+    }
+
+    /**
+     * 鑾峰彇鐩綍缂栫爜
+     */
+    private String getDirid(BaseEntity be) {
+        if (StringHelper.isEmpty(be.getDirid())) {
+            return null;
+        }
+
+        String dirid = be.getDirid().substring(0, 2);
+
+        return StringHelper.getRightLike(dirid);
+    }
+
+    /**
+     * 鏍规嵁鐖禝D鏌ヨ璁板綍
+     */
+    private List<?> selectRowsByParentid(String entity, String parentid, String field) {
+        BasicMapper baseMapper = ClassHelper.getBasicMapper(entity);
+        if (null == baseMapper) {
+            return null;
+        }
+
+        QueryWrapper wrapper = new QueryWrapper();
+        wrapper.eq("parentid", parentid);
+        wrapper.apply(field + " is not null");
+
+        return baseMapper.selectList(wrapper);
+    }
 }

--
Gitblit v1.9.3