From 3f39280a9b2b814f883a9b578939f421dd056fef Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期日, 03 九月 2023 15:06:24 +0800 Subject: [PATCH] 根据id查询元数据,设置nodata --- src/main/java/com/moon/server/entity/ctrl/PubEntity.java | 26 ++++++++ src/main/java/com/moon/server/mapper/data/MetaMapper.java | 8 ++ src/main/java/com/moon/server/entity/shujian/CreateLayerEntity.java | 16 ++--- src/main/java/com/moon/server/service/data/MetaService.java | 5 + src/main/java/com/moon/server/service/data/ShuJianService.java | 61 ++++++++++++++----- src/main/java/com/moon/server/controller/data/PublishController.java | 3 + src/main/resources/mapper/data/MetaMapper.xml | 7 ++ 7 files changed, 99 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/moon/server/controller/data/PublishController.java b/src/main/java/com/moon/server/controller/data/PublishController.java index b88a93a..777b104 100644 --- a/src/main/java/com/moon/server/controller/data/PublishController.java +++ b/src/main/java/com/moon/server/controller/data/PublishController.java @@ -193,6 +193,9 @@ if (StringHelper.isEmpty(entity.getType())) { return fail("鍙戝竷绫诲埆涓虹┖", null); } + if (!ShuJianService.TYPES.contains(entity.getType())) { + return fail("鍙戝竷绫诲埆涓嶆敮鎸�", null); + } UserEntity ue = tokenService.getCurrentUser(req); if (null != ue) { diff --git a/src/main/java/com/moon/server/entity/ctrl/PubEntity.java b/src/main/java/com/moon/server/entity/ctrl/PubEntity.java index 8478e99..82342ba 100644 --- a/src/main/java/com/moon/server/entity/ctrl/PubEntity.java +++ b/src/main/java/com/moon/server/entity/ctrl/PubEntity.java @@ -66,6 +66,16 @@ private String depcode; /** + * NoData + */ + private Integer nodata; + + /** + * 鎷変几鏂瑰紡 0锛氫笉鎷変几锛� 1 绾挎�ф媺浼革紝 2 鐩存柟鍥惧潎琛★紝 3 鏍囧噯宸媺浼革紝 4 浼介┈鎷変几 + */ + private Integer enhanceType; + + /** * 鍏冩暟鎹甀D闆嗗悎 */ private List<Integer> ids; @@ -152,6 +162,22 @@ this.depcode = depcode; } + public Integer getNodata() { + return nodata; + } + + public void setNodata(Integer nodata) { + this.nodata = nodata; + } + + public Integer getEnhanceType() { + return enhanceType; + } + + public void setEnhanceType(Integer enhanceType) { + this.enhanceType = enhanceType; + } + public List<Integer> getIds() { return ids; } diff --git a/src/main/java/com/moon/server/entity/shujian/CreateLayerEntity.java b/src/main/java/com/moon/server/entity/shujian/CreateLayerEntity.java index 057d912..ab73ef5 100644 --- a/src/main/java/com/moon/server/entity/shujian/CreateLayerEntity.java +++ b/src/main/java/com/moon/server/entity/shujian/CreateLayerEntity.java @@ -46,10 +46,6 @@ create_service = 0; layer = new Layer(); image_ovr = new ImageOvr(); - } - - public CreateLayerEntity(int pathCount, int imageCount) { - this(); image_list = new ArrayList<>(); image_path_list = new ArrayList<>(); } @@ -106,7 +102,7 @@ /** * nodata璁剧疆锛屾暟缁勶紝鏁扮粍澶у皬鍜屾尝娈垫暟绛夊悓 */ - private String[] nodata; + private List<String> nodata; /** * 鎶曞奖鎴栬�呭潗鏍囷細EPSG:4326 @@ -185,11 +181,11 @@ this.name = name; } - public String[] getNodata() { + public List<String> getNodata() { return nodata; } - public void setNodata(String[] nodata) { + public void setNodata(List<String> nodata) { this.nodata = nodata; } @@ -317,7 +313,7 @@ /** * 杩囨护鍣ㄧ粍鍒楄〃锛歔"a.tif|b.tif"] */ - private String[] filter; + private List<String> filter; /** * 灞炴�ц繃婊� @@ -362,11 +358,11 @@ this.image_time = image_time; } - public String[] getFilter() { + public List<String> getFilter() { return filter; } - public void setFilter(String[] filter) { + public void setFilter(List<String> filter) { this.filter = filter; } diff --git a/src/main/java/com/moon/server/mapper/data/MetaMapper.java b/src/main/java/com/moon/server/mapper/data/MetaMapper.java index 789b703..e2b2c19 100644 --- a/src/main/java/com/moon/server/mapper/data/MetaMapper.java +++ b/src/main/java/com/moon/server/mapper/data/MetaMapper.java @@ -129,6 +129,14 @@ public MetaEntity selectById(int id); /** + * 鏍规嵁id瀛楃涓叉煡璇� + * + * @param ids id瀛楃涓� + * @return 鍏冩暟鎹泦鍚� + */ + public List<MetaEntity> selectByIds(String ids); + + /** * 鏍规嵁GUID鏌ヨ * * @param guid 鏂囦欢GUID diff --git a/src/main/java/com/moon/server/service/data/MetaService.java b/src/main/java/com/moon/server/service/data/MetaService.java index 605be1e..26001a3 100644 --- a/src/main/java/com/moon/server/service/data/MetaService.java +++ b/src/main/java/com/moon/server/service/data/MetaService.java @@ -120,6 +120,11 @@ } @Override + public List<MetaEntity> selectByIds(String ids) { + return metaMapper.selectByIds(ids); + } + + @Override public MetaEntity selectByGuid(String guid, String dircode, String tab) { return metaMapper.selectByGuid(guid, dircode, tab); } 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 3e61d66..78ba2e9 100644 --- a/src/main/java/com/moon/server/service/data/ShuJianService.java +++ b/src/main/java/com/moon/server/service/data/ShuJianService.java @@ -3,6 +3,7 @@ import com.alibaba.fastjson.JSON; import com.moon.server.entity.all.StaticData; import com.moon.server.entity.ctrl.PubEntity; +import com.moon.server.entity.data.MetaEntity; import com.moon.server.entity.data.MetaPubEntity; import com.moon.server.entity.data.PublishEntity; import com.moon.server.entity.shujian.*; @@ -21,9 +22,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.lang.reflect.Field; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 鏁扮畝.鏈嶅姟 @@ -32,15 +31,20 @@ @Service public class ShuJianService { @Value("${shujian.ak}") - private String ak; + String ak; @Value("${shujian.url}") - private String sjUrl; + String sjUrl; + + @Resource + MetaService metaService; @Resource PublishService publishService; private final static Log log = LogFactory.getLog(ShuJianService.class); + + public final static List<String> TYPES = new ArrayList<>(Arrays.asList("DOM", "DEM")); /** * 鍒嗛〉鏌ヨ鏁扮畝鐨勯鑹茶〃 @@ -84,21 +88,20 @@ /** * 鍒涘缓鍥惧眰瀹炰綋绫� */ - public CreateLayerEntity createLayerEntity(PubEntity pubEntity) { - CreateLayerEntity entity = new CreateLayerEntity(1, 3); + public CreateLayerEntity createLayerEntity(PubEntity pub) { + String epsg = getEpsg(pub); + String ids = StringHelper.join(pub.getIds(), ","); + List<MetaEntity> list = metaService.selectByIds(ids); + + CreateLayerEntity entity = new CreateLayerEntity(); entity.setCreate_service(0); CreateLayerEntity.Layer layer = entity.getLayer(); - layer.setName(""); - layer.setProjection("ESRI:" + StaticData.I104903); - layer.setType(0); - layer.setEnhance_type(0); - - String[] noData = new String[3]; - noData[0] = "0"; - noData[1] = "0"; - noData[2] = "0"; - layer.setNodata(noData); + layer.setName(pub.getName()); + layer.setProjection(epsg); + layer.setType(TYPES.indexOf(pub.getType())); + layer.setEnhance_type(pub.getEnhanceType()); + layer.setNodata(getNoData(pub, list)); CreateLayerEntity.ImagePathList imagePathList = entity.getImage_path_list().get(0); imagePathList.setPath(""); @@ -110,6 +113,30 @@ return entity; } + private List<String> getNoData(PubEntity pub, List<MetaEntity> metas) { + int bands = 1; + for (MetaEntity meta : metas) { + if (StringHelper.isEmpty(meta.getBands())) { + continue; + } + try { + int b = Integer.parseInt(meta.getBands()); + if (b > bands) { + bands = b; + } + } catch (Exception e) { + // + } + } + + List<String> list = new ArrayList<>(); + for (int i = 0; i < bands; i++) { + list.add(String.valueOf(pub.getNodata())); + } + + return list; + } + /** * 鍙戦�佸浘灞傚疄浣撶被 */ diff --git a/src/main/resources/mapper/data/MetaMapper.xml b/src/main/resources/mapper/data/MetaMapper.xml index a9683a2..75df9a2 100644 --- a/src/main/resources/mapper/data/MetaMapper.xml +++ b/src/main/resources/mapper/data/MetaMapper.xml @@ -173,6 +173,13 @@ from lf.sys_meta a where id = #{id} </select> + <select id="selectByIds" resultType="com.moon.server.entity.data.MetaEntity"> + select * + from lf.sys_meta + where id in (${ids}) + order by id desc; + </select> + <select id="selectByGuid" resultType="com.moon.server.entity.data.MetaEntity"> select st_astext(geom) "geom", a.*, fn_uname(a.create_user) createName, fn_uname(a.update_user) updateName, fn_get_fullname(a.depcode, 1) depName, fn_ver(a.verid) verName, fn_get_fullname(a.dircode, 2) dirName from lf.sys_meta a -- Gitblit v1.9.3