From f8d3c39cbcfc7818d2118e7d1e0a2d5beebfbf9c Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期一, 27 三月 2023 09:20:58 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/service/show/DataLibService.java |   47 +++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 43 insertions(+), 4 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 c7208b0..8bafeeb 100644
--- a/src/main/java/com/lf/server/service/show/DataLibService.java
+++ b/src/main/java/com/lf/server/service/show/DataLibService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.lf.server.entity.all.BaseEntity;
+import com.lf.server.entity.ctrl.DownloadReqEntity;
 import com.lf.server.entity.data.DownloadEntity;
 import com.lf.server.entity.sys.AttachEntity;
 import com.lf.server.entity.sys.UserEntity;
@@ -44,11 +45,22 @@
     /**
      * 鏌ヨDB涓孩鍑虹殑鍗曚綅缂栫爜
      */
-    public List<String> selectDbOverflowDep(UserEntity ue, List<String> entities, String wkt) {
+    public List<String> selectDbOverflowDep(UserEntity ue, DownloadReqEntity dr) {
+        if (StringHelper.isEmpty(dr.getWkt())) {
+            return selectDbOverflowDep4Wkt(ue, dr.getEntities(), dr.getWkt());
+        }
+
+        return selectDbOverflowDep4Prop(ue, dr.getEntities().get(0), dr.getIds(), dr.getFilter());
+    }
+
+    /**
+     * 鏌ヨDB涓孩鍑虹殑鍗曚綅缂栫爜-绌洪棿鏌ヨ
+     */
+    public List<String> selectDbOverflowDep4Wkt(UserEntity ue, List<String> entities, String wkt) {
         List<String> rs = new ArrayList<>();
-        for (String enity : entities) {
+        for (String entity : entities) {
             try {
-                GeomBaseMapper<?> baseMapper = ClassHelper.getGeoBaseMapper(enity);
+                GeomBaseMapper<?> baseMapper = ClassHelper.getGeoBaseMapper(entity);
                 if (null == baseMapper) {
                     continue;
                 }
@@ -65,7 +77,6 @@
                 }
 
                 List<String> ids = baseMapper.selectObjs(wrapper);
-
                 addDepCodes(rs, ids);
             } catch (Exception ex) {
                 log.error(ex.getMessage(), ex);
@@ -76,6 +87,34 @@
     }
 
     /**
+     * 鏌ヨDB涓孩鍑虹殑鍗曚綅缂栫爜-灞炴�ф煡璇�
+     */
+    public List<String> selectDbOverflowDep4Prop(UserEntity ue, String entity, List<Integer> gids, String filter) {
+        List<String> rs = new ArrayList<>();
+        try {
+            BasicMapper<?> baseMapper = ClassHelper.getBasicMapper(entity);
+            if (null == baseMapper) {
+                return rs;
+            }
+
+            QueryWrapper wrapper = new QueryWrapper();
+            wrapper.select("depid");
+            baseQueryService.addFilterWrapper(wrapper, filter);
+            if (null != gids && gids.size() > 0) {
+                wrapper.apply(String.format("gid in (%s)", StringHelper.join(gids, ",")));
+            }
+            wrapper.groupBy("depid");
+
+            List<String> ids = baseMapper.selectObjs(wrapper);
+            addDepCodes(rs, ids);
+        } catch (Exception ex) {
+            log.error(ex.getMessage(), ex);
+        }
+
+        return rs;
+    }
+
+    /**
      * 娣诲姞鍗曚綅缂栫爜
      */
     private void addDepCodes(List<String> rs, List<String> ids) {

--
Gitblit v1.9.3