From 7a525a0d577642cc6b89dcfd93e58ffc44a09c6b Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期日, 10 九月 2023 11:31:57 +0800 Subject: [PATCH] 添加自动创建图层功能 --- src/main/java/com/moon/server/service/data/DirService.java | 6 -- src/main/resources/mapper/data/DirMapper.xml | 4 - src/main/java/com/moon/server/mapper/sys/LayerMapper.java | 24 ++++++++ src/main/java/com/moon/server/service/sys/LayerService.java | 18 +++++ src/main/java/com/moon/server/mapper/data/DirMapper.java | 8 -- src/main/resources/mapper/sys/LayerMapper.xml | 12 ++++ src/main/resources/mapper/sys/ResMapper.xml | 4 + src/main/java/com/moon/server/service/data/ShuJianService.java | 56 +++++++++++++++++- src/main/java/com/moon/server/controller/data/PublishController.java | 3 + 9 files changed, 112 insertions(+), 23 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 58a524f..7cec1ee 100644 --- a/src/main/java/com/moon/server/controller/data/PublishController.java +++ b/src/main/java/com/moon/server/controller/data/PublishController.java @@ -290,6 +290,9 @@ if (ue != null) { entity.setUpdateUser(ue.getId()); } + if (StringHelper.isEmpty(entity.getGeom())) { + entity.setGeom("null"); + } permsService.clearPermsCache(); int count = publishService.update(entity); diff --git a/src/main/java/com/moon/server/mapper/data/DirMapper.java b/src/main/java/com/moon/server/mapper/data/DirMapper.java index 5be37ca..b69d475 100644 --- a/src/main/java/com/moon/server/mapper/data/DirMapper.java +++ b/src/main/java/com/moon/server/mapper/data/DirMapper.java @@ -115,12 +115,4 @@ * @return */ public List<DirEntity> selectDirsForPrj(); - - /** - * 鏍规嵁鍚嶇О鏌ヨID - * - * @param name 鍚嶇О - * @return ID - */ - public Integer selectIdByName(String name); } diff --git a/src/main/java/com/moon/server/mapper/sys/LayerMapper.java b/src/main/java/com/moon/server/mapper/sys/LayerMapper.java index 6305198..54b0544 100644 --- a/src/main/java/com/moon/server/mapper/sys/LayerMapper.java +++ b/src/main/java/com/moon/server/mapper/sys/LayerMapper.java @@ -64,6 +64,30 @@ public LayerEntity selectById(int id); /** + * 鏍规嵁鍚嶇О鏌ヨID + * + * @param name 鍚嶇О + * @return ID + */ + public Integer selectIdByName(String name); + + /** + * 鏍规嵁pid鏌ヨ鏈�澶ф帓搴忔暟 + * + * @param pid 鐖剁被ID + * @return 鏈�澶ф帓搴忔暟 + */ + public Integer selectMaxOrderNumByPid(Integer pid); + + /** + * 鏍规嵁璧勬簮ID鏌ヨ鍥惧眰 + * + * @param resid 璧勬簮ID + * @return 鍥惧眰 + */ + public LayerEntity selectByResId(Integer resid); + + /** * 鎻掑叆涓�鏉� * * @param entity diff --git a/src/main/java/com/moon/server/service/data/DirService.java b/src/main/java/com/moon/server/service/data/DirService.java index e3ca975..61ed8db 100644 --- a/src/main/java/com/moon/server/service/data/DirService.java +++ b/src/main/java/com/moon/server/service/data/DirService.java @@ -94,12 +94,6 @@ return dirMapper.selectDirsForPrj(); } - @Override - public Integer selectIdByName(String name) { - Integer id = dirMapper.selectIdByName(name); - return null == id ? 0 : id; - } - /** * 鍒涘缓鏁版嵁鐩綍 */ 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 000489c..e56fec5 100644 --- a/src/main/java/com/moon/server/service/data/ShuJianService.java +++ b/src/main/java/com/moon/server/service/data/ShuJianService.java @@ -7,10 +7,12 @@ import com.moon.server.entity.data.MetaPubEntity; import com.moon.server.entity.data.PublishEntity; import com.moon.server.entity.shujian.*; +import com.moon.server.entity.sys.LayerEntity; import com.moon.server.entity.sys.ResEntity; import com.moon.server.helper.HttpHelper; import com.moon.server.helper.RestHelper; import com.moon.server.helper.StringHelper; +import com.moon.server.service.sys.LayerService; import com.moon.server.service.sys.ResService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -51,6 +53,9 @@ @Resource PublishService publishService; + + @Resource + LayerService layerService; private final static Log log = LogFactory.getLog(ShuJianService.class); @@ -117,7 +122,10 @@ ResEntity resEntity = createResEntity(publishEntity); resService.insert(resEntity); - return insertMetaPub(pub, publishEntity.getId()); + insertMetaPub(pub, publishEntity.getId()); + layerService.insert(createLayerEntity(resEntity, StaticData.I3)); + + return rows; } /** @@ -308,6 +316,39 @@ } /** + * 鍒涘缓鍥惧眰 + */ + private LayerEntity createLayerEntity(ResEntity resEntity, Integer category) { + Integer pid = layerService.selectIdByName(StaticData.I1 == resEntity.getData() ? "DOM" : "DEM"); + Integer orderNum = layerService.selectMaxOrderNumByPid(pid); + LayerEntity layer = layerService.selectById(pid); + + LayerEntity entity = new LayerEntity(); + entity.setPid(pid); + entity.setCnName(resEntity.getCnName()); + entity.setEnName(resEntity.getEnName()); + entity.setUrl(resEntity.getProxy()); + // 鏄惁涓哄浘灞傦細0-鍥惧眰缁�,1-鍥惧眰 + entity.setIsLayer(1); + entity.setLevel(null == layer ? 1 : layer.getLevel() + 1); + entity.setOrderNum(orderNum); + // 鐘舵�侊細0-鍋滄锛�1-鍚敤 + entity.setStatus(1); + entity.setCreateUser(resEntity.getCreateUser()); + entity.setResid(resEntity.getId()); + // 绫诲埆锛�0-URL锛�1-TMS锛�2-WMTS锛�3-WMS锛�4-WFS锛�5-Tileset + entity.setType(StaticData.I1 == resEntity.getData() ? 2 : 0); + // 鏁版嵁绫诲瀷锛�0-URL锛�1-DOM锛�2-DEM + entity.setData(resEntity.getData()); + // 鏈嶅姟绫诲埆锛�0-鍏朵粬锛�1-GisServer锛�2-GeoServer锛�3-鏁扮畝 + entity.setCategory(category); + // 鏄�/鍚﹂粯璁ゆ樉绀� + entity.setIsShow(0); + + return entity; + } + + /** * 鑾峰彇棰滆壊琛ㄧ被鍨� */ private String getColorTableType(PubEntity pub) { @@ -398,13 +439,22 @@ ResEntity resEntity = resService.selectByPubid(entity.getId()); if (null == resEntity) { resEntity = createResEntity(entity); - return resService.insert(resEntity); + resService.insert(resEntity); } else { resEntity.setUpdateUser(pub.getUserId()); resEntity.setCnName(entity.getName()); resEntity.setUrl(entity.getUrl()); - return resService.update(resEntity); + resService.update(resEntity); } + + LayerEntity lyrEntity = layerService.selectByResId(resEntity.getId()); + if (null != lyrEntity) { + lyrEntity.setCnName(resEntity.getCnName()); + lyrEntity.setUpdateUser(pub.getUserId()); + layerService.update(lyrEntity); + } + + return entity.getId(); } /** diff --git a/src/main/java/com/moon/server/service/sys/LayerService.java b/src/main/java/com/moon/server/service/sys/LayerService.java index 640c95f..a879f52 100644 --- a/src/main/java/com/moon/server/service/sys/LayerService.java +++ b/src/main/java/com/moon/server/service/sys/LayerService.java @@ -3,11 +3,9 @@ import com.moon.server.entity.all.RedisCacheKey; import com.moon.server.entity.all.SettingData; import com.moon.server.entity.sys.LayerEntity; -import com.moon.server.entity.sys.ResEntity; import com.moon.server.helper.StringHelper; import com.moon.server.mapper.sys.LayerMapper; import com.moon.server.service.all.RedisService; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -83,6 +81,22 @@ } @Override + public Integer selectIdByName(String name) { + Integer id = layerMapper.selectIdByName(name); + return null == id ? 0 : id; + } + + @Override + public Integer selectMaxOrderNumByPid(Integer pid) { + return layerMapper.selectMaxOrderNumByPid(pid); + } + + @Override + public LayerEntity selectByResId(Integer resid) { + return layerMapper.selectByResId(resid); + } + + @Override public Integer insert(LayerEntity entity) { return layerMapper.insert(entity); } diff --git a/src/main/resources/mapper/data/DirMapper.xml b/src/main/resources/mapper/data/DirMapper.xml index 67ce590..89253c9 100644 --- a/src/main/resources/mapper/data/DirMapper.xml +++ b/src/main/resources/mapper/data/DirMapper.xml @@ -53,10 +53,6 @@ select a.* from lf.sys_dir a where code not like '00%' order by code; </select> - <select id="selectIdByName" resultType="java.lang.Integer"> - select id from lf.sys_dir where name = #{name}; - </select> - <!-- 鎻掑叆涓�鏉� --> <insert id="insert" parameterType="com.moon.server.entity.data.DirEntity"> <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> diff --git a/src/main/resources/mapper/sys/LayerMapper.xml b/src/main/resources/mapper/sys/LayerMapper.xml index 6723498..3fa6425 100644 --- a/src/main/resources/mapper/sys/LayerMapper.xml +++ b/src/main/resources/mapper/sys/LayerMapper.xml @@ -68,6 +68,18 @@ select * from lf.sys_layer where id = #{id} </select> + <select id="selectIdByName" resultType="java.lang.Integer"> + select id from lf.sys_dir where name = #{name}; + </select> + + <select id="selectOrderNumByPid" resultType="java.lang.Integer"> + select coalesce(max(order_num), 0) + 1 from lf.sys_layer where pid = #{pid}; + </select> + + <select id="selectByResId" resultType="com.moon.server.entity.sys.LayerEntity"> + select * from lf.sys_layer where resid = #{resid} limit 1; + </select> + <insert id="insert" parameterType="com.moon.server.entity.sys.LayerEntity"> insert into lf.sys_layer (pid,cn_name,en_name,url,is_layer,is_show,icon,level,order_num,status,create_user,create_time,bak,elev,resid,type,data,tab,category,flag) diff --git a/src/main/resources/mapper/sys/ResMapper.xml b/src/main/resources/mapper/sys/ResMapper.xml index 6e93a9a..25cd1a8 100644 --- a/src/main/resources/mapper/sys/ResMapper.xml +++ b/src/main/resources/mapper/sys/ResMapper.xml @@ -88,6 +88,10 @@ </select> <insert id="insert" parameterType="com.moon.server.entity.sys.ResEntity"> + <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> + select currval('lf.sys_res_id_seq'::regclass) as id + </selectKey> + insert into lf.sys_res (cn_name,en_name,status,type,data,category,url,test,descr,depid,dirid,img,create_user,create_time,bak,tab,args,pubid) values -- Gitblit v1.9.3