From 71726a1cb05790d6841595ef7daef5173f2cddfa Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 29 三月 2023 09:43:11 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/service/show/DataLibService.java |   43 ++++++++++++++++++++++++++++++++-----------
 1 files changed, 32 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/lf/server/service/show/DataLibService.java b/src/main/java/com/lf/server/service/show/DataLibService.java
index 9e7b76c..adf6c3c 100644
--- a/src/main/java/com/lf/server/service/show/DataLibService.java
+++ b/src/main/java/com/lf/server/service/show/DataLibService.java
@@ -138,6 +138,9 @@
         }
 
         for (String id : ids) {
+            if (StringHelper.isEmpty(id)) {
+                continue;
+            }
             if (!rs.contains(id)) {
                 rs.add(id);
             }
@@ -148,8 +151,11 @@
      * 璇锋眰DB鏁版嵁涓嬭浇
      */
     public String downloadDbReq(UserEntity ue, DownloadReqEntity dr) {
-        Map<String, List<?>> map = queryData(dr);
-        if (map.size() == 0) {
+        Map<String, List<?>> dataMap = new HashMap<>(2);
+        Map<String, List<AttachEntity>> annexMap = new HashMap<>(2);
+
+        queryData(dr, dataMap, annexMap);
+        if (dataMap.size() == 0) {
             return null;
         }
 
@@ -157,10 +163,9 @@
     }
 
     /**
-     * 鏌ヨ鏁版嵁
+     * 鏌ヨ鏁版嵁+闄勪欢
      */
-    private Map<String, List<?>> queryData(DownloadReqEntity dr) {
-        Map<String, List<?>> map = new HashMap<>(3);
+    private void queryData(DownloadReqEntity dr, Map<String, List<?>> dataMap, Map<String, List<AttachEntity>> annexMap) {
         for (String enity : dr.getEntities()) {
             try {
                 BasicMapper baseMapper = ClassHelper.getBasicMapper(enity);
@@ -169,20 +174,35 @@
                 }
 
                 QueryWrapper wrapper = createQueryWrapper(baseMapper, dr);
-                List<?> list = baseMapper.selectList(wrapper);
+                List list = baseMapper.selectList(wrapper);
                 if (null == list || list.size() == 0) {
                     continue;
                 }
 
-                if (!map.containsKey(enity)) {
-                    map.put(enity, list);
+                String tab = BaseQueryService.getTabName(baseMapper);
+                if (!dataMap.containsKey(enity)) {
+                    dataMap.put(enity, list);
+                } else {
+                    dataMap.get(enity).addAll(list);
+                }
+                if (wrapper.isEmptyOfWhere()) {
+                    wrapper.apply("1 = 1");
+                }
+
+                List<AttachEntity> annex = baseMapper.selectAnnex(tab, wrapper);
+                if (null == annex || annex.isEmpty()) {
+                    continue;
+                }
+
+                if (!annexMap.containsKey(enity)) {
+                    annexMap.put(enity, annex);
+                } else {
+                    annexMap.get(enity).addAll(annex);
                 }
             } catch (Exception ex) {
                 log.error(ex.getMessage(), ex);
             }
         }
-
-        return map;
     }
 
     /**
@@ -196,6 +216,7 @@
             wrapper.apply(dirs);
         }
         if (!StringHelper.isEmpty(dr.getDepcode())) {
+            // wrapper.apply(String.format("depid like '%s'", StringHelper.getRightLike(dr.getDepcode())))
             wrapper.likeRight("depid", dr.getDepcode());
         }
         if (baseMapper instanceof GeomBaseMapper && !StringHelper.isEmpty(dr.getWkt())) {
@@ -415,7 +436,7 @@
         removeDuplicate(list);
         setRightLike(list, field);
 
-        return StringHelper.join(list, " or ");
+        return "(" + StringHelper.join(list, " or ") + ")";
     }
 
     /**

--
Gitblit v1.9.3