From dc21db178ca07d136b29d6bf421cd9005e9eff5f Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期六, 16 九月 2023 21:07:07 +0800
Subject: [PATCH] 栅格分析添加消息推送-2

---
 src/main/java/com/moon/server/service/data/RasterAnalysisService.java |   47 +++++++++++++++++++++++
 src/main/java/com/moon/server/entity/data/AnalysisResultEntity.java   |   15 +++++++
 2 files changed, 61 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/moon/server/entity/data/AnalysisResultEntity.java b/src/main/java/com/moon/server/entity/data/AnalysisResultEntity.java
index 89c8804..78d33fd 100644
--- a/src/main/java/com/moon/server/entity/data/AnalysisResultEntity.java
+++ b/src/main/java/com/moon/server/entity/data/AnalysisResultEntity.java
@@ -22,6 +22,11 @@
         this.points = new ArrayList<>();
     }
 
+    public AnalysisResultEntity(String token) {
+        this();
+        this.token = token;
+    }
+
     /**
      * 娣诲姞鐐�
      */
@@ -39,6 +44,8 @@
         this.maxList.add(WebHelper.round(max, 3));
     }
 
+    private String token;
+
     private String layerName;
 
     private List<Double> minList;
@@ -53,6 +60,14 @@
 
     private List<Point> points;
 
+    public String getToken() {
+        return token;
+    }
+
+    public void setToken(String token) {
+        this.token = token;
+    }
+
     public String getLayerName() {
         return layerName;
     }
diff --git a/src/main/java/com/moon/server/service/data/RasterAnalysisService.java b/src/main/java/com/moon/server/service/data/RasterAnalysisService.java
index ced8ed4..0e21bc5 100644
--- a/src/main/java/com/moon/server/service/data/RasterAnalysisService.java
+++ b/src/main/java/com/moon/server/service/data/RasterAnalysisService.java
@@ -1,11 +1,13 @@
 package com.moon.server.service.data;
 
+import com.alibaba.fastjson.JSONObject;
 import com.moon.server.entity.all.StaticData;
 import com.moon.server.entity.data.AnalysisResultEntity;
 import com.moon.server.entity.data.MetaEntity;
 import com.moon.server.entity.data.PublishEntity;
 import com.moon.server.helper.GeoHelper;
 import com.moon.server.helper.PathHelper;
+import com.moon.server.service.all.WebSocketService;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.gdal.gdal.Band;
@@ -19,6 +21,7 @@
 import javax.annotation.Resource;
 import java.awt.geom.Point2D;
 import java.io.File;
+import java.io.IOException;
 import java.util.*;
 
 /**
@@ -54,7 +57,49 @@
      * 浣跨敤WKT鏌ヨ鍒嗘瀽锛岀粨鏋滀互娑堟伅鎺ㄩ��
      */
     public void analysisForPost(Geometry geo, Integer size, String token) {
-        //
+        List<PublishEntity> pubs = publishService.selectRaster();
+        if (null == pubs || pubs.isEmpty()) {
+            return;
+        }
+
+        // for (PublishEntity pub : pubs) {
+        pubs.parallelStream().forEach(pub -> {
+            try {
+                AnalysisResultEntity entity = new AnalysisResultEntity(token);
+                entity.setLayerName(pub.getName());
+
+                List<MetaEntity> metas = publishService.selectMetasByPubid(pub.getId());
+                if (null == metas || metas.isEmpty()) {
+                    setError(entity, "鎵句笉鍒板彂甯冩暟鎹�");
+                    postInfo(entity);
+                    return;
+                }
+
+                String filePath = pathHelper.getConfig().getUploadPath() + File.separator + metas.get(0).getPath();
+                File file = new File(filePath);
+                if (!file.exists() || file.isDirectory()) {
+                    setError(entity, "婧愭暟鎹笉瀛樺湪");
+                    postInfo(entity);
+                    return;
+                }
+
+                openRaster(entity, filePath, geo, size);
+                postInfo(entity);
+            } catch (Exception ex) {
+                log.error(ex.getMessage(), ex);
+            }
+        });
+    }
+
+    /**
+     * 鎺ㄩ�佹秷鎭�
+     */
+    private void postInfo(AnalysisResultEntity entity) throws IOException {
+        JSONObject map = new JSONObject();
+        map.put("analysisForPost", entity);
+
+        String json = JSONObject.toJSONString(map);
+        WebSocketService.broadCastInfo(json);
     }
 
     /**

--
Gitblit v1.9.3