From d4e4ea6405756d495806a609e24ae85ebd7345ef Mon Sep 17 00:00:00 2001
From: suerprisePlus <15810472099@163.com>
Date: 星期二, 17 十二月 2024 09:30:12 +0800
Subject: [PATCH] 代码更新

---
 src/main/java/com/yb/service/XzService.java |   68 ++++++++++++++++++++++++++-------
 1 files changed, 53 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/yb/service/XzService.java b/src/main/java/com/yb/service/XzService.java
index 6b8b6a2..d9dc8f0 100644
--- a/src/main/java/com/yb/service/XzService.java
+++ b/src/main/java/com/yb/service/XzService.java
@@ -7,6 +7,7 @@
 import com.yb.helper.RsaHelper;
 import com.yb.util.EntityHttpUtil;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.locationtech.jts.geom.*;
@@ -35,12 +36,27 @@
     private EntityHttpUtil entityHttpUtil;
     @Autowired
     private AgentService agentService;
+    int num = 40;
 
     // 鍏抽敭瀛楁煡璇�
     public String getQueryFiled(String place, String filed, String layerId, String dbId, String queryEntity) throws Exception {
-
+        String querySQL = "";
         String valSql = " like '%" + place + "%'";
-        String querySQL = getQuerySql(valSql, filed);
+        String key = getPublickey();
+        String query = getQuerySql(valSql, filed);
+//        int num = 40;
+        if (query.length() > num) {
+            String[] sbuString = getSqlSubStr(query, num);
+            for (int w = 0; w < sbuString.length; w++) {
+                if (w > 0) {
+                    querySQL += ",";
+                }
+                querySQL += RsaHelper.encrypt(key, sbuString[w]);
+            }
+        } else {
+            querySQL += RsaHelper.encrypt(key, query);
+        }
+        System.out.println("rec getQueryFiled:" + querySQL);
         HashMap formData = getHashMap(layerId, dbId, "1", "0", querySQL, null);
         String jsonString = entityHttpUtil.getPostMessage(queryEntity, formData);
         System.out.println("rec getQueryFiled:" + jsonString);
@@ -53,32 +69,53 @@
         return "";
     }
 
-    private String getQuerySql(String valSql, String filed) throws Exception {
-        String key = getPublickey();
-        String querySQL = "";
+    public String[] getSqlSubStr(String str, int chunkSize) {
+        int numChunks = (str.length() + chunkSize - 1) / chunkSize;
+        String[] chunks = new String[numChunks];
+        for (int i = 0; i < numChunks; i++) {
+            int start = i * chunkSize;
+            int end = Math.min(start + chunkSize, str.length());
+            chunks[i] = str.substring(start, end);
+        }
+        return chunks;
+    }
+
+    public String getQuerySql(String valSql, String filed) {
+        String query = "";
         if (filed.indexOf(",") > -1) {
             String[] fileds = filed.split(",");
             for (int i = 0; i < fileds.length; i++) {
                 String name = fileds[i];
                 if (i > 0) {
-                    querySQL += ";";
+                    query += " or ";
                 }
-                String Sql = name + valSql + "";
-                querySQL += RsaHelper.encrypt(key, Sql);
+                query += name + valSql;
             }
+            query += "";
         } else {
-            String Sql = filed + valSql + "";
-            querySQL = RsaHelper.encrypt(key, Sql);
+            query = filed + valSql + "";
         }
-        return querySQL;
-
+        return query;
     }
-
 
     // 鍏抽敭瀛楁煡璇�
     public String getQueryEntity(String place, String filed, String layerId, String dbId, String queryEntity) throws Exception {
         String valSql = " like '%" + place + "%'";
-        String querySQL = getQuerySql(valSql, filed);
+        String key = getPublickey();
+        String query = getQuerySql(valSql, filed);
+        String querySQL = "";
+//        int num = 40;
+        if (query.length() > num) {
+            String[] sbuString = getSqlSubStr(query, num);
+            for (int w = 0; w < sbuString.length; w++) {
+                if (w > 0) {
+                    querySQL += ",";
+                }
+                querySQL += RsaHelper.encrypt(key, sbuString[w]);
+            }
+        } else {
+            querySQL += RsaHelper.encrypt(key, query);
+        }
         HashMap formData = getHashMap(layerId, dbId, "1", "100", querySQL, null);
         formData.put("querytype", "entity");
         String jsonString1 = entityHttpUtil.getPostMessage(queryEntity, formData);
@@ -122,7 +159,8 @@
         HashMap<String, String> formData = getHashMap(layerId, dbid, null, null, null, null);
         formData.put("statistics", jsonArray.toString());
         formData.put("groupby", filed);
-        return entityHttpUtil.getPostMessage(entity, formData);
+        String meta = entityHttpUtil.getPostMessage(entity, formData);
+        return meta;
     }
 
     // 鑾峰彇杩斿洖淇℃伅Map

--
Gitblit v1.9.3