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