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