From 796b44ea813a1133beae4f3a67f1c0263510c0c7 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期日, 17 十一月 2024 09:45:07 +0800
Subject: [PATCH] 1

---
 src/main/java/com/moon/server/service/data/ShuJianService.java |  160 +++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 135 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/moon/server/service/data/ShuJianService.java b/src/main/java/com/moon/server/service/data/ShuJianService.java
index d4021c5..7e99ab0 100644
--- a/src/main/java/com/moon/server/service/data/ShuJianService.java
+++ b/src/main/java/com/moon/server/service/data/ShuJianService.java
@@ -12,6 +12,7 @@
 import com.moon.server.helper.HttpHelper;
 import com.moon.server.helper.RestHelper;
 import com.moon.server.helper.StringHelper;
+import com.moon.server.helper.WebHelper;
 import com.moon.server.service.sys.LayerService;
 import com.moon.server.service.sys.ResService;
 import org.apache.commons.logging.Log;
@@ -19,6 +20,7 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.*;
 import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.client.RestTemplate;
 
 import javax.annotation.Resource;
@@ -73,19 +75,24 @@
 
     private final static String API_LAYER = "%s/sj_raster/v6/api/layer?%s&sort=name%%20asc";
 
+    private final static String MISSION_STATUS = "%s/sj_raster/v6/api/mission/%d?op=get_status&%s";
+
     private final static String COLOR_TABLE = "%s/sj_raster/v6/api/color_table?%s&page_count=%d&page_num=%d&key=";
+
+    private final static String IMAGE_INFO = "%s/sj_raster/v6/api/image?%s&key=&page_num=1&page_count=1000&layer_id=%d";
 
     /**
      * 鍒嗛〉鏌ヨ鏁扮畝鐨勯鑹茶〃
      */
-    public void selectSjColorTables(Integer port, Integer pageSize, Integer pageIndex, HttpServletRequest req, HttpServletResponse res) {
+    public void selectSjColorTables(Integer pageSize, Integer pageIndex, HttpServletRequest req, HttpServletResponse res) {
         try {
-            String url = String.format(COLOR_TABLE, null == port || 50001 == port ? sjUrl1 : sjUrl5, ak, pageSize, pageIndex);
+            String url = String.format(COLOR_TABLE, sjUrl5, ak, pageSize, pageIndex);
 
             HttpHelper httpHelper = new HttpHelper();
             httpHelper.service(req, res, null, url);
         } catch (Exception ex) {
             log.error(ex.getMessage(), ex);
+            WebHelper.writeJson2Page(res,ex.getMessage());
         }
     }
 
@@ -100,6 +107,22 @@
             httpHelper.service(req, res, null, url);
         } catch (Exception ex) {
             log.error(ex.getMessage(), ex);
+            WebHelper.writeJson2Page(res,ex.getMessage());
+        }
+    }
+
+    /**
+     * 鏌ヨ鏁扮畝浠诲姟鐘舵��
+     */
+    public void selectSjMissionStatus(Integer id, HttpServletRequest req, HttpServletResponse res) {
+        try {
+            String url = String.format(MISSION_STATUS, sjUrl5, id, ak);
+
+            HttpHelper httpHelper = new HttpHelper();
+            httpHelper.service(req, res, null, url);
+        } catch (Exception ex) {
+            log.error(ex.getMessage(), ex);
+            WebHelper.writeJson2Page(res,ex.getMessage());
         }
     }
 
@@ -108,18 +131,18 @@
      */
     public Integer insertSjService(PubEntity pub) {
         CreateLayerEntity layerEntity = createLayerEntity(pub);
-        Integer layerId = postLayerEntity(layerEntity);
-        if (null == layerId) {
+        LayerResultEntity.Result layerResult = postLayerEntity(layerEntity);
+        if (null == layerResult) {
             return 0;
         }
 
-        CreateServiceEntity serviceEntity = createServiceEntity(pub, layerId);
+        CreateServiceEntity serviceEntity = createServiceEntity(pub, layerResult.getLayer_id());
         Integer serviceId = postServiceEntity(serviceEntity);
         if (null == serviceId) {
             return 0;
         }
 
-        PublishEntity publishEntity = createPublishEntity(pub, layerId, serviceId);
+        PublishEntity publishEntity = createPublishEntity(pub, layerResult.getLayer_id(), serviceId);
         int rows = publishService.insert(publishEntity);
         if (0 == rows) {
             return 0;
@@ -129,9 +152,9 @@
         resService.insert(resEntity);
 
         insertMetaPub(pub, publishEntity.getId());
-        layerService.insert(createLayerEntity(resEntity, StaticData.I3));
+        // layerService.insert(createLayerEntity(resEntity, StaticData.I3))
 
-        return rows;
+        return layerResult.getMission_id();
     }
 
     /**
@@ -147,22 +170,34 @@
         CreateLayerEntity.Layer layer = entity.getLayer();
         layer.setName(pub.getName() + "_" + pub.getTime());
         layer.setProjection(getEpsg(pub));
-        layer.setType(TYPES.indexOf(pub.getType()));
+        layer.setType(getPublishType(pub));
         layer.setEnhance_type(pub.getEnhanceType());
         layer.setEnhance_factor(pub.getEnhanceFactor());
         layer.setNodata(getNoData(pub, metas));
         layer.setConfig(getColorTableConfig(entity, pub));
 
-        CreateLayerEntity.ImagePathList imagePathList = entity.new ImagePathList();
-        imagePathList.setPath(sjPath);
-        entity.getImage_path_list().add(imagePathList);
-
-        List<String> filters = imagePathList.getFilter();
         for (MetaEntity meta : metas) {
-            filters.add(meta.getPath().replace("\\", "/"));
+            String[] strs = meta.getPath().split(StaticData.BACKSLASH);
+
+            CreateLayerEntity.ImagePathList imagePathList = entity.new ImagePathList();
+            imagePathList.setPath(sjPath + strs[0]);
+            imagePathList.getFilter().add(strs[1]);
+
+            entity.getImage_path_list().add(imagePathList);
         }
 
         return entity;
+    }
+
+    /**
+     * 鑾峰彇鍙戝竷绫诲瀷
+     */
+    private int getPublishType(PubEntity pub) {
+        if (null != pub.getColorTable() || null != pub.getGradientColorTable()) {
+            return StaticData.I2;
+        }
+
+        return TYPES.indexOf(pub.getType());
     }
 
     /**
@@ -214,20 +249,20 @@
         Integer type = null != pub.getColorTable() ? 0 : 1;
         List<?> levels = null != pub.getColorTable() ? pub.getColorTable() : pub.getGradientColorTable();
 
-        return entity.new Config(type, levels);
+        return entity.new Config(pub.getColorTableId(), type, levels);
     }
 
     /**
      * 鍙戦�佸浘灞傚疄浣撶被
      */
-    public Integer postLayerEntity(CreateLayerEntity layerEntity) {
+    public LayerResultEntity.Result postLayerEntity(CreateLayerEntity layerEntity) {
         Map<String, Object> map = getMapData(layerEntity);
         String url = String.format("%s/sj_raster/v6/api/layer?op=create_ex&%s", sjUrl5, ak);
 
         LayerResultEntity rs = postForRest(url, map, LayerResultEntity.class);
-        boolean flag = null == rs || !StaticData.SUCCESS.equals(rs.getStatus()) || null == rs.getResult().getLayer_id();
+        boolean flag = null == rs || !StaticData.SUCCESS.equals(rs.getStatus());
 
-        return flag ? null : rs.getResult().getLayer_id();
+        return flag ? null : rs.getResult();
     }
 
     /**
@@ -401,7 +436,7 @@
     }
 
     /**
-     * 鎻掑叆鏁扮畝鏈嶅姟
+     * 鏇存柊鏁扮畝鏈嶅姟
      */
     public Integer updateSjService(PubEntity pub) {
         PublishEntity entity = publishService.selectById(pub.getPubid());
@@ -417,18 +452,18 @@
         setPubEntity(pub, entity);
 
         CreateLayerEntity layerEntity = createLayerEntity(pub);
-        Integer layerId = postLayerEntity(layerEntity);
-        if (null == layerId) {
+        LayerResultEntity.Result layerResult = postLayerEntity(layerEntity);
+        if (null == layerResult) {
             return 0;
         }
 
-        CreateServiceEntity serviceEntity = createServiceEntity(pub, layerId);
+        CreateServiceEntity serviceEntity = createServiceEntity(pub, layerResult.getLayer_id());
         Integer serviceId = postServiceEntity(serviceEntity);
         if (null == serviceId) {
             return 0;
         }
 
-        entity.setLayerid(layerId);
+        entity.setLayerid(layerResult.getLayer_id());
         entity.setServiceid(serviceId);
         entity.setEventid(pub.getUuid());
         entity.setUpdateUser(pub.getUserId());
@@ -460,7 +495,7 @@
             layerService.update(lyrEntity);
         }
 
-        return entity.getId();
+        return layerResult.getMission_id();
     }
 
     /**
@@ -594,4 +629,79 @@
 
         return map;
     }
+
+    /**
+     * 鑾峰彇浠诲姟鐘舵��
+     */
+    public List<TaskResultEntity.Result> getTaskStatus(List<Integer> list) {
+        String url = String.format("%s/sj_raster/v6/api/mission?op=bulk_get_mission_status&%s", sjUrl5, ak);
+        Map<String, Object> map = new HashMap<>(1);
+        map.put("cmd_list", list);
+
+        TaskResultEntity rs = postForRest(url, map, TaskResultEntity.class);
+        boolean flag = null == rs || !StaticData.SUCCESS.equals(rs.getStatus());
+
+        return flag ? null : rs.getResult();
+    }
+
+    /**
+     * 鏇存柊鏁扮畝鍥惧眰鐨勬媺浼告柟寮�
+     */
+    public Integer updateSjLayerStretch(PubEntity entity) {
+        PublishEntity pub = publishService.selectByLayerId(entity.getLayerId());
+        if (null == pub || null == pub.getLayerid()) {
+            return 0;
+        }
+
+        ImageResultEntity ir = selectImageInfo(pub.getLayerid());
+        if (null == ir || null == ir.getResult() || null == ir.getResult().getItem_list()) {
+            return 0;
+        }
+
+        List<ImageResultEntity.Image> itemList = ir.getResult().getItem_list();
+        for (ImageResultEntity.Image image : itemList) {
+            Integer imgId = updateImageLayerStretch(image.getData_id(), entity);
+        }
+
+        pub.setUpdateUser(entity.getUserId());
+        if (null == pub.getGeom()) {
+            pub.setGeom("null");
+        }
+
+        return publishService.update(pub);
+    }
+
+    /**
+     * 鏍规嵁鍥惧眰ID鏌ヨ褰卞儚淇℃伅
+     */
+    public ImageResultEntity selectImageInfo(Integer layerId) {
+        try {
+            String url = String.format(IMAGE_INFO, sjUrl5, ak, layerId);
+
+            RestTemplate rest = RestHelper.getRestTemplate();
+            ResponseEntity<ImageResultEntity> resp = rest.getForEntity(url, ImageResultEntity.class);
+
+            return resp.getBody();
+        } catch (Exception ex) {
+            log.error(ex.getMessage(), ex);
+            return null;
+        }
+    }
+
+    /**
+     * 鏇存柊褰卞儚鍥惧眰鐨勬媺浼告柟寮�
+     */
+    private Integer updateImageLayerStretch(Integer imageLayerId, PubEntity entity) {
+        String url = String.format("%s/sj_raster/v6/api/image/%d?op=update&%s", sjUrl5, imageLayerId, ak);
+
+        Map<String, Object> map = new HashMap<>(3);
+        map.put("tile_rgb", entity.getTile_rgb());
+        map.put("enhance_type", entity.getEnhanceType());
+        map.put("enhance_factor", entity.getEnhanceFactor());
+
+        ServiceResultEntity rs = postForRest(url, map, ServiceResultEntity.class);
+        boolean flag = null == rs || !StaticData.SUCCESS.equals(rs.getStatus());
+
+        return flag ? null : rs.getResult();
+    }
 }

--
Gitblit v1.9.3