From e002c67732b571f0b20cca8321ca8ee1ddba2e05 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期一, 14 八月 2023 17:05:23 +0800 Subject: [PATCH] 修改文件上传、GDB/Shp数据读取、数据入库、元数据管理等接口 --- src/main/java/com/moon/server/entity/data/MetaFileEntity.java | 10 src/main/resources/mapper/all/BaseQueryMapper.xml | 6 src/main/java/com/moon/server/entity/ctrl/PubEntity.java | 36 + src/main/java/com/moon/server/helper/GdbHelper.java | 88 +++- src/main/java/com/moon/server/service/data/PublishService.java | 119 ++++++ src/main/java/com/moon/server/helper/ShpHelper.java | 4 src/main/java/com/moon/server/mapper/sys/ReportMapper.java | 14 src/main/java/com/moon/server/service/all/BaseUploadService.java | 143 +++++-- src/main/java/com/moon/server/service/sys/ProxyService.java | 2 src/main/java/com/moon/server/helper/PathHelper.java | 5 src/main/java/com/moon/server/config/RestTemplateConfig.java | 6 src/main/java/com/moon/server/helper/MdbHelper.java | 2 src/main/java/com/moon/server/service/show/InquiryService.java | 8 src/main/java/com/moon/server/service/all/BaseQueryService.java | 8 src/main/resources/mapper/data/PublishMapper.xml | 39 ++ src/main/java/com/moon/server/controller/all/BaseQueryController.java | 52 ++ src/main/java/com/moon/server/entity/all/StaticData.java | 37 + src/main/java/com/moon/server/controller/data/MetaController.java | 20 + src/main/java/com/moon/server/service/sys/ReportService.java | 10 src/main/resources/mapper/sys/ReportMapper.xml | 17 src/main/java/com/moon/server/service/data/UploadService.java | 64 ++ src/main/java/com/moon/server/controller/sys/TokenController.java | 4 src/main/java/com/moon/server/mapper/data/PublishMapper.java | 25 + src/main/java/com/moon/server/mapper/all/BaseQueryMapper.java | 20 src/main/java/com/moon/server/service/data/MetaService.java | 10 src/main/java/com/moon/server/controller/data/PublishController.java | 134 ++++++ src/main/resources/mapper/data/MetaMapper.xml | 10 src/main/java/com/moon/server/service/all/UploadAttachService.java | 7 src/main/java/com/moon/server/helper/StringHelper.java | 17 src/main/java/com/moon/server/mapper/data/MetaMapper.java | 8 src/main/java/com/moon/server/service/show/DataLibService.java | 74 +++- src/main/java/com/moon/server/config/PropertiesConfig.java | 4 src/main/java/com/moon/server/controller/data/upload/UploadController.java | 6 src/main/java/com/moon/server/controller/data/DataCountController.java | 26 + src/main/java/com/moon/server/helper/FileHelper.java | 6 src/main/resources/mapper/show/OneMapMapper.xml | 4 36 files changed, 864 insertions(+), 181 deletions(-) diff --git a/src/main/java/com/moon/server/config/PropertiesConfig.java b/src/main/java/com/moon/server/config/PropertiesConfig.java index c43e9c0..1d786f3 100644 --- a/src/main/java/com/moon/server/config/PropertiesConfig.java +++ b/src/main/java/com/moon/server/config/PropertiesConfig.java @@ -51,4 +51,8 @@ public String getTilePath() { return tilePath; } + + public String getLfData() { + return tilePath.replace("2d\\tiles", ""); + } } diff --git a/src/main/java/com/moon/server/config/RestTemplateConfig.java b/src/main/java/com/moon/server/config/RestTemplateConfig.java index bafce30..dbea731 100644 --- a/src/main/java/com/moon/server/config/RestTemplateConfig.java +++ b/src/main/java/com/moon/server/config/RestTemplateConfig.java @@ -25,7 +25,7 @@ @ConditionalOnClass(value = {RestTemplate.class, HttpClient.class}) public class RestTemplateConfig { /** - * 杩炴帴姹犵殑鏈�澶ц繛鎺ユ暟榛樿涓�0 + * 杩炴帴姹犵殑鏈�澶ц繛鎺ユ暟榛樿涓�0锛屼笉闄愬埗 */ @Value("${remote.maxTotalConnect:0}") private int maxTotalConnect; @@ -37,13 +37,13 @@ private int maxConnectPerRoute; /** - * 杩炴帴瓒呮椂榛樿5s + * 杩炴帴瓒呮椂榛樿5s锛�-1涓轰笉闄愬埗 */ @Value("${remote.connectTimeout:5000}") private int connectTimeout; /** - * 璇诲彇瓒呮椂榛樿30s + * 璇诲彇瓒呮椂榛樿30s锛�-1涓轰笉闄愬埗 */ @Value("${remote.readTimeout:30000}") private int readTimeout; diff --git a/src/main/java/com/moon/server/controller/all/BaseQueryController.java b/src/main/java/com/moon/server/controller/all/BaseQueryController.java index 31f4206..c6ab13b 100644 --- a/src/main/java/com/moon/server/controller/all/BaseQueryController.java +++ b/src/main/java/com/moon/server/controller/all/BaseQueryController.java @@ -200,7 +200,7 @@ if (StringHelper.isEmpty(wkt)) { return fail("WKT涓嶈兘涓虹┖", null); } - if (null == limit || limit < 1 || limit > StaticData.ONE_HUNDRED) { + if (null == limit || limit < 1 || limit > StaticData.I100) { limit = 20; } if (null == buffer || buffer < 0 || buffer > StaticData.ONE_HUNDRED_THOUSAND) { @@ -424,11 +424,12 @@ @ApiImplicitParam(name = "depcode", value = "鍗曚綅缂栫爜", dataType = "String", paramType = "query", example = "00"), @ApiImplicitParam(name = "dirs", value = "鐩綍缂栫爜", dataType = "String", paramType = "query", example = "00,01"), @ApiImplicitParam(name = "tab", value = "琛ㄥ悕", dataType = "String", paramType = "query", example = "dlg_"), + @ApiImplicitParam(name = "types", value = "绫诲埆", dataType = "String", paramType = "query", example = "娴嬬粯锛圗SV锛�"), @ApiImplicitParam(name = "hasGeom", value = "鍚湁Geom瀛楁", dataType = "Boolean", paramType = "query", example = "false"), @ApiImplicitParam(name = "pageSize", value = "姣忛〉鏉℃暟", dataType = "Integer", paramType = "query", example = "10"), @ApiImplicitParam(name = "pageIndex", value = "鍒嗛〉鏁帮紙浠�1寮�濮嬶級", dataType = "Integer", paramType = "query", example = "1") }) - public ResponseMsg<Object> selectTabsByPage(String depcode, String dirs, String tab, Boolean hasGeom, Integer pageSize, Integer pageIndex) { + public ResponseMsg<Object> selectTabsByPage(String depcode, String dirs, String tab, String types, Boolean hasGeom, Integer pageSize, Integer pageIndex) { try { if (pageSize < 1 || pageIndex < 1) { return fail("姣忛〉椤垫暟鎴栧垎椤垫暟灏忎簬1", null); @@ -445,14 +446,15 @@ if (dirs != null) { filters += String.format(" and %s", dirs); } + String typesFilter = getTypesFilter(types); String field = null == hasGeom || !hasGeom ? "gid" : "geom"; - int count = baseQueryService.selectTabsForCount(tab, field); + int count = baseQueryService.selectTabsForCount(tab, typesFilter, field); if (count == 0) { return success(0, null); } - List<TabEntity> rs = baseQueryService.selectTabsByPage(tab, field, filters, pageSize, pageSize * (pageIndex - 1)); + List<TabEntity> rs = baseQueryService.selectTabsByPage(tab, typesFilter, field, filters, pageSize, pageSize * (pageIndex - 1)); return success(count, rs); } catch (Exception ex) { @@ -460,6 +462,48 @@ } } + /** + * 鑾峰彇绫诲埆杩囨护鏉′欢 + */ + private String getTypesFilter(String types) { + if (StringHelper.isEmpty(types)) { + return null; + } + + List<String> list = new ArrayList<>(); + for (String type : types.split(StaticData.COMMA)) { + switch (type) { + case "娴嬬粯锛圗SV锛�": + list.add("bak like '宸ョ▼鏁版嵁/娴嬬粯%'"); + break; + case "鍕樺療锛圗GE锛�": + list.add("bak like '宸ョ▼鏁版嵁/鍕樺療%'"); + break; + case "鍦扮伨锛圗GD锛�": + list.add("bak like '宸ョ▼鏁版嵁/鍦扮伨%'"); + break; + case "娲炲簱锛圗GD锛�": + list.add("bak like '宸ョ▼鏁版嵁/娲炲簱%'"); + break; + case "鍩虹娴嬬粯": + list.add("bak like '鍩虹鏁版嵁/娴嬬粯%'"); + break; + case "鍩虹鍦扮伨": + list.add("bak like '鍩虹鏁版嵁/鍦扮伨%'"); + break; + case "鍩虹鍕樺療": + list.add("bak like '鍩虹鏁版嵁/鍕樺療%'"); + break; + case "鍚堣鏁版嵁": + case "绠$悊鏁版嵁": + default: + break; + } + } + + return list.isEmpty() ? null : StringHelper.join(list, " or "); + } + @SysLog() @ApiOperation(value = "鏌ヨ瀛楁淇℃伅") @ApiImplicitParams({ diff --git a/src/main/java/com/moon/server/controller/data/DataCountController.java b/src/main/java/com/moon/server/controller/data/DataCountController.java index 220a787..67333ed 100644 --- a/src/main/java/com/moon/server/controller/data/DataCountController.java +++ b/src/main/java/com/moon/server/controller/data/DataCountController.java @@ -80,6 +80,19 @@ } @SysLog() + @ApiOperation(value = "鎸夋枃浠剁被鍨嬬粺璁�") + @GetMapping(value = "/countSizesByType") + public ResponseMsg<Object> countSizesByType() { + try { + List<CountEntity> list = reportService.countSizesByType(); + + return success(list); + } catch (Exception ex) { + return fail(ex, null); + } + } + + @SysLog() @ApiOperation(value = "鏌ヨ鏈嶅姟璋冪敤閲忕粺璁�") @GetMapping(value = "/selectCountServices") public ResponseMsg<Object> selectCountServices() { @@ -106,6 +119,19 @@ } @SysLog() + @ApiOperation(value = "鎸夐」鐩粺璁℃暟鎹�") + @GetMapping(value = "/countSizesByPrj") + public ResponseMsg<Object> countSizesByPrj() { + try { + List<CountEntity> list = reportService.countSizesByPrj(); + + return success(list); + } catch (Exception ex) { + return fail(ex, null); + } + } + + @SysLog() @ApiOperation(value = "涓嬭浇鎶ュ憡") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "鎶ュ憡ID", dataType = "Integer", paramType = "7") diff --git a/src/main/java/com/moon/server/controller/data/MetaController.java b/src/main/java/com/moon/server/controller/data/MetaController.java index a3bfa9a..e93d318 100644 --- a/src/main/java/com/moon/server/controller/data/MetaController.java +++ b/src/main/java/com/moon/server/controller/data/MetaController.java @@ -100,6 +100,26 @@ } @SysLog() + @ApiOperation(value = "鏍规嵁GUID鏌ヨGDB") + @ApiImplicitParams({ + @ApiImplicitParam(name = "guid", value = "GUID", dataType = "String", paramType = "query", example = "d58e66d9606a4b85e7c8ab43b3db0b55") + }) + @GetMapping(value = "/selectGdbByGuid") + public ResponseMsg<Object> selectGdbByGuid(String guid) { + try { + if (StringHelper.isEmpty(guid)) { + return fail("鏂囦欢GUID鍊间笉鑳戒负绌�", null); + } + + List<MetaEntity> rs = metaService.selectGdbByGuid(guid); + + return success(null == rs ? 0 : rs.size(), rs); + } catch (Exception ex) { + return fail(ex, null); + } + } + + @SysLog() @ApiOperation(value = "鏍规嵁鐖禝D鍒嗛〉鏌ヨ骞惰繑鍥炶褰曟暟") @ApiImplicitParams({ @ApiImplicitParam(name = "metaid", value = "鐖禝D", dataType = "String", paramType = "query", example = "0"), 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 0027314..706c24c 100644 --- a/src/main/java/com/moon/server/controller/data/PublishController.java +++ b/src/main/java/com/moon/server/controller/data/PublishController.java @@ -9,16 +9,18 @@ import com.moon.server.entity.sys.UserEntity; import com.moon.server.helper.StringHelper; import com.moon.server.helper.WebHelper; +import com.moon.server.service.all.PermsService; import com.moon.server.service.data.PublishService; import com.moon.server.service.sys.TokenService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.Arrays; import java.util.List; /** @@ -29,11 +31,14 @@ @RestController @RequestMapping("/publish") public class PublishController extends BaseController { - @Autowired + @Resource PublishService publishService; - @Autowired + @Resource TokenService tokenService; + + @Resource + PermsService permsService; @SysLog() @ApiOperation(value = "鍒嗛〉鏌ヨ鍏冩暟鎹�") @@ -56,7 +61,7 @@ return fail("鏁版嵁绫诲埆涓虹┖", null); } - String types = getType(type); + String types = getType(dircode, type); int count = publishService.selectMetasByCount(depcode, dircode, verid, types, name); if (count == 0) { return success(0, null); @@ -73,47 +78,114 @@ /** * 鑾峰彇绫诲瀷 */ - private String getType(String type) throws Exception { + private String getType(String dircode, String type) throws Exception { switch (type) { case "DOM": - return "type in ('tif', 'tiff', 'img')"; + return "type in ('tif', 'tiff', 'img')" + getFilter(dircode, type); case "DEM": - return "type in ('tif', 'tiff')"; + return "type in ('tif', 'tiff')" + getFilter(dircode, type); case "MPT": return "type = 'mpt'"; case "3DML": return "type = '3dml'"; + case "CPT": + return "type = 'cpt'"; case "BIM": return "type in ('ifc', 'fbx', 'rvt')"; + case "LAS": + return "type in ('las', 'laz')"; + case "OSGB": + return "type = 'osgb'"; default: throw new Exception("鏁版嵁绫诲瀷涓嶅尮閰�"); } + } + + /** + * 鑾峰彇杩囨护鏉′欢 + */ + private String getFilter(String dircode, String type) { + dircode = StringHelper.isEmpty(dircode) ? "" : StringHelper.getRightLike(dircode); + + List<String> list = null; + switch (type) { + case "DOM": + list = publishService.selectCodesForDir(dircode, 0); + break; + case "DEM": + list = publishService.selectCodesForDir(dircode, 1); + break; + default: + break; + } + if (null == list || list.isEmpty()) { + return ""; + } + + for (int i = 0, c = list.size(); i < c; i++) { + list.set(i, "'" + list.get(i) + "'"); + } + + return " and dircode not in (" + StringHelper.join(list, ",") + ")"; } @SysLog() @ApiOperation(value = "鍒嗛〉鏌ヨ骞惰繑鍥炶褰曟暟") @ApiImplicitParams({ @ApiImplicitParam(name = "name", value = "鍚嶇О", dataType = "String", paramType = "query", example = ""), + @ApiImplicitParam(name = "dircode", value = "鐩綍", dataType = "String", paramType = "query", example = ""), + @ApiImplicitParam(name = "type", value = "绫诲埆", dataType = "String", paramType = "query", example = ""), @ApiImplicitParam(name = "pageSize", value = "姣忛〉鏉℃暟", dataType = "Integer", paramType = "query", example = "10"), @ApiImplicitParam(name = "pageIndex", value = "鍒嗛〉鏁帮紙浠�1寮�濮嬶級", dataType = "Integer", paramType = "query", example = "1") }) @GetMapping(value = "/selectByPageAndCount") - public ResponseMsg<List<PublishEntity>> selectByPageAndCount(String name, Integer pageSize, Integer pageIndex) { + public ResponseMsg<List<PublishEntity>> selectByPageAndCount(String name, String dircode, String type, Integer pageSize, Integer pageIndex) { try { if (pageSize < 1 || pageIndex < 1) { return fail("姣忛〉椤垫暟鎴栧垎椤垫暟灏忎簬1", null); } + type = getPubType(type); - int count = publishService.selectCount(name); + int count = publishService.selectCount(name, dircode, type); if (count == 0) { return success(0, null); } - List<PublishEntity> rs = publishService.selectByPage(name, pageSize, pageSize * (pageIndex - 1)); + List<PublishEntity> rs = publishService.selectByPage(name, dircode, type, pageSize, pageSize * (pageIndex - 1)); return success(count, rs); } catch (Exception ex) { return fail(ex.getMessage(), null); + } + } + + /** + * 鑾峰彇鍙戝竷绫诲瀷 + */ + private String getPubType(String type) { + if (StringHelper.isEmpty(type)) { + return null; + } + + switch (type) { + case "DOM": + return "type = 'DOM'"; + case "DEM": + return "type = 'DEM'"; + case "MPT": + return "type = 'mpt'"; + case "3DML": + return "type = '3dml'"; + case "CPT": + return "type = 'cpt'"; + case "BIM": + return "type in ('ifc', 'fbx', 'rvt')"; + case "LAS": + return "type in ('las', 'laz')"; + case "OSGB": + return "type = 'osgb'"; + default: + return null; } } @@ -128,6 +200,31 @@ PublishEntity entity = publishService.selectById(id); return success(entity); + } catch (Exception ex) { + return fail(ex.getMessage(), null); + } + } + + @SysLog() + @ApiOperation(value = "鏌ヨLas鏂囦欢鍧愭爣绯籌D") + @ApiImplicitParams({ + @ApiImplicitParam(name = "ids", value = "鍏冩暟鎹甀D闆嗗悎", dataType = "Integer[]", paramType = "query", example = "10483,10481,10456,10285") + }) + @GetMapping(value = "/selectLasCs") + public ResponseMsg<Object> selectLasCs(Integer[] ids, HttpServletRequest req) { + try { + if (null == ids || ids.length == 0) { + return fail("鍏冩暟鎹甀D闆嗗悎涓嶈兘涓虹┖"); + } + + PubEntity entity = new PubEntity(); + entity.setIds(Arrays.asList(ids)); + entity.setDircode("00"); + entity.setToken(WebHelper.getToken(req)); + + List<Integer> list = publishService.selectLasCs(entity, "/Convert/ReadLasCs", req); + + return success(list); } catch (Exception ex) { return fail(ex.getMessage(), null); } @@ -154,6 +251,7 @@ entity.setToken(WebHelper.getToken(req)); } + permsService.clearLayerCache(); String method = getConvertMethod(entity.getType()); long count = publishService.postForPub(entity, method, req); @@ -174,9 +272,14 @@ return "/Convert/ToTerra"; case "MPT": case "3DML": + case "CPT": return "/Convert/ToSG"; case "BIM": return "/Convert/ToTileset"; + case "LAS": + return "/Convert/ToLasByPy"; + case "OSGB": + return "/Convert/ToOsgb"; default: throw new Exception("鏁版嵁绫诲瀷涓嶅尮閰�"); } @@ -193,6 +296,16 @@ if (ids == null || ids.isEmpty()) { return fail("id鏁扮粍涓嶈兘涓虹┖", -1); } + + String strs = StringHelper.join(ids, ","); + List<PublishEntity> list = publishService.selectByIds(strs); + if (null == list || list.isEmpty()) { + return fail("娌℃湁鎵惧埌瑕佸垹闄ょ殑鏁版嵁", -1); + } + + // publishService.deleteFiles(list) + permsService.clearLayerCache(); + publishService.deleteFiles(ids, req); int count = publishService.deletes(ids, req); @@ -216,6 +329,7 @@ entity.setUpdateUser(ue.getId()); } + permsService.clearLayerCache(); int count = publishService.update(entity); return success(count); diff --git a/src/main/java/com/moon/server/controller/data/upload/UploadController.java b/src/main/java/com/moon/server/controller/data/upload/UploadController.java index 2bc670c..4fa9262 100644 --- a/src/main/java/com/moon/server/controller/data/upload/UploadController.java +++ b/src/main/java/com/moon/server/controller/data/upload/UploadController.java @@ -125,7 +125,7 @@ @GetMapping(value = "/selectFiles") public ResponseMsg<List<MetaFileEntity>> selectFiles(String path) { try { - List<MetaFileEntity> list = uploadService.selectFiles(path); + List<MetaFileEntity> list = uploadService.selectFiles(path, false); return success(list); } catch (Exception ex) { @@ -161,8 +161,8 @@ @SysLog() @ApiOperation(value = "鏌ヨ鏄犲皠") @ApiImplicitParams({ - @ApiImplicitParam(name = "path", value = "璺緞", dataType = "String", paramType = "query", example = "20230110010101"), - @ApiImplicitParam(name = "dirid", value = "鐩綍ID", dataType = "Integer", paramType = "query", example = "163"), + @ApiImplicitParam(name = "path", value = "璺緞", dataType = "String", paramType = "query", example = "20230722"), + @ApiImplicitParam(name = "dirid", value = "鐩綍ID", dataType = "Integer", paramType = "query", example = "1"), @ApiImplicitParam(name = "verid", value = "鐗堟湰ID", dataType = "Integer", paramType = "query", example = "0"), @ApiImplicitParam(name = "epsgCode", value = "鍧愭爣缂栫爜", dataType = "String", paramType = "query", example = "EPSG:4490") }) diff --git a/src/main/java/com/moon/server/controller/sys/TokenController.java b/src/main/java/com/moon/server/controller/sys/TokenController.java index 3ccfe6f..f92b3de 100644 --- a/src/main/java/com/moon/server/controller/sys/TokenController.java +++ b/src/main/java/com/moon/server/controller/sys/TokenController.java @@ -43,11 +43,11 @@ if (pageSize < 1 || pageIndex < 1) { return fail("姣忛〉椤垫暟鎴栧垎椤垫暟灏忎簬1", null); } - int count = tokenService.selectCount(name,type); + int count = tokenService.selectCount(name, type); if (count == 0) { return success(0, null); } - List<TokenEntity> rs = tokenService.selectByPage(name,type, pageSize, pageSize * (pageIndex - 1)); + List<TokenEntity> rs = tokenService.selectByPage(name, type, pageSize, pageSize * (pageIndex - 1)); return success(count, rs); } catch (Exception ex) { return fail(ex, null); diff --git a/src/main/java/com/moon/server/entity/all/StaticData.java b/src/main/java/com/moon/server/entity/all/StaticData.java index 1ed135e..f71beb6 100644 --- a/src/main/java/com/moon/server/entity/all/StaticData.java +++ b/src/main/java/com/moon/server/entity/all/StaticData.java @@ -34,6 +34,10 @@ public final static int ONE_HUNDRED_THOUSAND = 100000; + public static final double D90 = 90.0; + + public static final double D100 = 100.0; + public static final double D1024 = 1024.0; public static final double D1050 = 1050.0; @@ -46,11 +50,15 @@ public static final int I31 = 31; + public static final int I50 = 50; + public static final int I60 = 60; public static final int I90 = 90; public static final int I90_NEG = -90; + + public final static int I100 = 100; public static final int I120 = 120; @@ -61,6 +69,8 @@ public static final int I1000 = 1000; public static final int I2050 = 2050; + + public static final int I4326 = 4326; public static final int I4490 = 4490; @@ -86,9 +96,10 @@ */ public final static String COMMA = ","; - public final static String AK = "?ak="; - - public final static String REST_LAYER = "/v6/rest/"; + /** + * 娉㈡氮鍙� + */ + public final static String TILDE = "~"; /** * 鍗曞紩鍙� @@ -96,6 +107,10 @@ public final static String SINGLE_QUOTES = "'"; public final static String BBOREHOLE = "bborehole"; + + public final static String AK = "?ak="; + + public final static String REST_LAYER = "/v6/rest/"; public final static String TEXT_XML = "text/xml"; @@ -116,6 +131,8 @@ public final static String SHP = ".shp"; + public final static String NGDB = "gdb"; + public final static String GDB = ".gdb"; public final static String JPG = ".jpg"; @@ -129,6 +146,10 @@ public final static String TIF = ".tif"; public final static String TIFF = ".tiff"; + + public final static String LAS = ".las"; + + public final static String OSGB = ".osgb"; public static String ADMIN = "admin"; @@ -191,6 +212,10 @@ public final static String MULTIPOLYGON = "MULTIPOLYGON"; + public final static String MULTICURVE = "MULTICURVE"; + + public final static String COMPOUNDCURVE = "COMPOUNDCURVE"; + public static final String NO_FILE = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.NOT_FOUND, "鏂囦欢鎵句笉鍒�")); /** @@ -221,12 +246,12 @@ /** * TIF鏂囦欢鎵╁睍鍚� */ - public final static List<String> TIF_EXT = new ArrayList<>(Arrays.asList(".prj", ".tfw", ".tif.ovr", ".tif.aux.xml", ".tif.enp", ".tif.xml")); + public final static List<String> TIF_EXT = new ArrayList<>(Arrays.asList(".prj", ".tfw", ".aux", ".tif.ovr", ".tif.aux.xml", ".tif.xml")); /** * TIFF鏂囦欢鎵╁睍鍚� */ - public final static List<String> TIFF_EXT = new ArrayList<>(Arrays.asList(".prj", ".tfw", ".tiff.ovr", ".tiff.aux.xml", ".tiff.enp", ".tiff.xml")); + public final static List<String> TIFF_EXT = new ArrayList<>(Arrays.asList(".prj", ".tfw", ".aux", ".tiff.ovr", ".tiff.aux.xml", ".tiff.xml")); /** * SHP鏂囦欢鎵╁睍鍚� @@ -236,7 +261,7 @@ /** * Mapper鎺掗櫎鎵╁睍鍚� */ - public final static List<String> MAPPER_EXCLUDE_EXT = new ArrayList<>(Arrays.asList(".img.aux.xml", ".img.xml", ".tif.aux.xml", ".tif.xml", ".tiff.aux.xml", ".tiff.xml", ".shp.xml")); + public final static List<String> MAPPER_EXCLUDE_EXT = new ArrayList<>(Arrays.asList(".jpg.aux.xml", ".jpg.xml", ".img.aux.xml", ".img.xml", ".tif.aux.xml", ".tif.xml", ".tiff.aux.xml", ".tiff.xml", ".shp.xml")); /** * 鎵�鏈夋枃浠舵墿灞曞悕 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 e201046..21652ab 100644 --- a/src/main/java/com/moon/server/entity/ctrl/PubEntity.java +++ b/src/main/java/com/moon/server/entity/ctrl/PubEntity.java @@ -30,7 +30,13 @@ private String depcode; - private List<String> ids; + private List<Integer> ids; + + private List<Integer> models; + + private List<Integer> srids; + + private List<Double> zs; public String getType() { return type; @@ -104,11 +110,35 @@ this.depcode = depcode; } - public List<String> getIds() { + public List<Integer> getIds() { return ids; } - public void setIds(List<String> ids) { + public void setIds(List<Integer> ids) { this.ids = ids; } + + public List<Integer> getModels() { + return models; + } + + public void setModels(List<Integer> models) { + this.models = models; + } + + public List<Integer> getSrids() { + return srids; + } + + public void setSrids(List<Integer> srids) { + this.srids = srids; + } + + public List<Double> getZs() { + return zs; + } + + public void setZs(List<Double> zs) { + this.zs = zs; + } } diff --git a/src/main/java/com/moon/server/entity/data/MetaFileEntity.java b/src/main/java/com/moon/server/entity/data/MetaFileEntity.java index e492942..b8c8473 100644 --- a/src/main/java/com/moon/server/entity/data/MetaFileEntity.java +++ b/src/main/java/com/moon/server/entity/data/MetaFileEntity.java @@ -42,6 +42,8 @@ private int rows; + private int records; + private String msg; private Boolean isMeta; @@ -176,6 +178,14 @@ this.rows = rows; } + public int getRecords() { + return records; + } + + public void setRecords(int records) { + this.records = records; + } + public String getMsg() { return msg; } diff --git a/src/main/java/com/moon/server/helper/FileHelper.java b/src/main/java/com/moon/server/helper/FileHelper.java index 730056f..8157d98 100644 --- a/src/main/java/com/moon/server/helper/FileHelper.java +++ b/src/main/java/com/moon/server/helper/FileHelper.java @@ -401,7 +401,7 @@ /** * 鏍规嵁璺緞鑾峰彇鏂囦欢 */ - public static void getFilesByPath(List<File> list, String path) { + public static void getFilesByPath(List<String> list, String path) { File file = new File(path); if (file.isDirectory()) { File[] files = file.listFiles(); @@ -413,11 +413,11 @@ if (f.isDirectory()) { getFilesByPath(list, f.getPath()); } else { - list.add(f); + list.add(f.getPath()); } } } else { - list.add(file); + list.add(file.getPath()); } } diff --git a/src/main/java/com/moon/server/helper/GdbHelper.java b/src/main/java/com/moon/server/helper/GdbHelper.java index fd780e8..4f2448d 100644 --- a/src/main/java/com/moon/server/helper/GdbHelper.java +++ b/src/main/java/com/moon/server/helper/GdbHelper.java @@ -8,7 +8,9 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.gdal.ogr.*; +import org.gdal.osr.CoordinateTransformation; import org.gdal.osr.SpatialReference; +import org.gdal.osr.osr; import java.lang.reflect.Field; import java.math.BigDecimal; @@ -107,7 +109,7 @@ /** * 璇诲彇鏁版嵁 */ - public static <T> List<T> readData(Class clazz, String filePath, String layerName) { + public static <T> List<T> readData(Class clazz, String filePath, String layerName, boolean isTransform) { List<T> list = new ArrayList<>(); Driver driver = null; @@ -127,7 +129,7 @@ for (int i = 0, count = dataSource.GetLayerCount(); i < count; i++) { Layer layer = dataSource.GetLayer(i); if (layer.GetName().equals(layerName)) { - GdbHelper.readLayer(clazz, layer, list); + GdbHelper.readLayer(clazz, layer, list, isTransform); break; } @@ -145,7 +147,7 @@ /** * 璇诲彇鍥惧眰 */ - public static <T> void readLayer(Class clazz, Layer layer, List<T> list) { + public static <T> void readLayer(Class clazz, Layer layer, List<T> list, boolean isTransform) { try { Field gField = getGeomField(clazz); @@ -155,6 +157,8 @@ return; } + CoordinateTransformation ct = getCoordinateTransformation(layer, isTransform); + do { Feature f = layer.GetNextFeature(); if (null == f) { @@ -162,7 +166,7 @@ } T t = (T) clazz.newInstance(); - readFeature(t, f, map, gField); + readFeature(t, f, map, gField, ct); list.add(t); } while (true); } catch (Exception ex) { @@ -170,6 +174,33 @@ } finally { GdbHelper.delete(layer); } + } + + /** + * 鑾峰彇鍧愭爣杞崲鍣� + */ + private static CoordinateTransformation getCoordinateTransformation(Layer layer, boolean isTransform) { + if (!isTransform) { + return null; + } + + String epsg = layer.GetSpatialRef().GetAttrValue("AUTHORITY", 1); + if (StringHelper.isEmpty(epsg)) { + return null; + } + + int epsgId = Integer.parseInt(epsg); + if (StaticData.I4326 == epsgId || StaticData.I4490 == epsgId) { + return null; + } + + SpatialReference srTarget = new SpatialReference(); + srTarget.ImportFromEPSG(StaticData.I4490); + + layer.GetSpatialRef().SetAxisMappingStrategy(osr.OAMS_TRADITIONAL_GIS_ORDER); + srTarget.SetAxisMappingStrategy(osr.OAMS_TRADITIONAL_GIS_ORDER); + + return CoordinateTransformation.CreateCoordinateTransformation(layer.GetSpatialRef(), srTarget); } /** @@ -193,14 +224,13 @@ try { FeatureDefn fd = layer.GetLayerDefn(); for (int i = 0, count = fd.GetFieldCount(); i < count; i++) { - FieldDefn fieldDefn = fd.GetFieldDefn(i); try { - String name = fieldDefn.GetName().toLowerCase(); + String name = fd.GetFieldDefn(i).GetName().toLowerCase(); if (StaticData.READ_EXCLUDE_FIELDS.contains(name)) { continue; } - Field field = clazz.getDeclaredField(name); + Field field = clazz.getDeclaredField("gbcode".equals(name) ? "gb" : name); field.setAccessible(true); map.put(i, field); @@ -213,14 +243,14 @@ getFieldMapper(clazz.getSuperclass(), layer, map); } } catch (Exception ex) { - // + log.error(ex); } } /** * 璇诲彇Feature */ - private static <T> void readFeature(T t, Feature f, Map<Integer, Field> map, Field gField) { + private static <T> void readFeature(T t, Feature f, Map<Integer, Field> map, Field gField, CoordinateTransformation ct) { for (Integer i : map.keySet()) { try { Field field = map.get(i); @@ -231,7 +261,7 @@ } if (null != gField) { - setGeom(t, f, gField); + setGeom(t, gField, f.GetGeometryRef(), ct); } } @@ -288,24 +318,32 @@ * wkbNone = 100, * wkbLinearRing = 101 */ - private static <T> void setGeom(T t, Feature f, Field gField) { + private static <T> void setGeom(T t, Field gField, Geometry geometry, CoordinateTransformation ct) { try { - String geo = "null"; - if (null != f.GetGeometryRef()) { - String wkt = f.GetGeometryRef().ExportToWkt(); - // f.GetGeometryRef().GetGeometryType() - if (wkt.contains(StaticData.LINESTRING) && !wkt.contains(StaticData.MULTILINESTRING)) { - wkt = wkt.replace("LINESTRING (", "MULTILINESTRING ((") + ")"; - } - if (wkt.contains(StaticData.POLYGON) && !wkt.contains(StaticData.MULTIPOLYGON)) { - wkt = wkt.replace("POLYGON (", "MULTIPOLYGON ((") + ")"; - } - wkt = wkt.replace(" 0,", ",").replace(" 0)", ")"); - - geo = String.format("ST_GeomFromText('%s')", wkt); + if (null == geometry) { + gField.set(t, "null"); + return; + } + if (null != ct) { + int flag = geometry.Transform(ct); } - gField.set(t, geo); + String wkt = geometry.ExportToWkt(); + if (wkt.contains(StaticData.LINESTRING) && !wkt.contains(StaticData.MULTILINESTRING)) { + wkt = wkt.replace("LINESTRING (", "MULTILINESTRING ((") + ")"; + } + if (wkt.contains(StaticData.POLYGON) && !wkt.contains(StaticData.MULTIPOLYGON)) { + wkt = wkt.replace("POLYGON (", "MULTIPOLYGON ((") + ")"; + } + wkt = wkt.replace(" 0,", ",").replace(" 0)", ")"); + if (wkt.contains(StaticData.MULTICURVE)) { + wkt = wkt.replace("MULTICURVE (", "MULTILINESTRING (").replace("CIRCULARSTRING ", ""); + if (wkt.contains(StaticData.COMPOUNDCURVE)) { + wkt = wkt.replace("COMPOUNDCURVE (", "").replace(")))", "))"); + } + } + + gField.set(t, String.format("ST_GeomFromText('%s')", wkt)); } catch (Exception ex) { log.error(ex.getMessage(), ex); } diff --git a/src/main/java/com/moon/server/helper/MdbHelper.java b/src/main/java/com/moon/server/helper/MdbHelper.java index 1c33390..65178be 100644 --- a/src/main/java/com/moon/server/helper/MdbHelper.java +++ b/src/main/java/com/moon/server/helper/MdbHelper.java @@ -75,7 +75,7 @@ for (int i = 0, count = dataSource.GetLayerCount(); i < count; i++) { Layer layer = dataSource.GetLayer(i); if (layer.GetName().equals(layerName)) { - GdbHelper.readLayer(clazz, layer, list); + GdbHelper.readLayer(clazz, layer, list, true); break; } diff --git a/src/main/java/com/moon/server/helper/PathHelper.java b/src/main/java/com/moon/server/helper/PathHelper.java index 74c4033..0c2604e 100644 --- a/src/main/java/com/moon/server/helper/PathHelper.java +++ b/src/main/java/com/moon/server/helper/PathHelper.java @@ -2,6 +2,7 @@ import com.moon.server.config.PropertiesConfig; import com.moon.server.entity.all.SettingData; +import com.moon.server.entity.all.StaticData; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -22,8 +23,6 @@ private static int downloadPath = 1; private static int uploadPath = 1; - - private final static double D90 = 90; private final static Log log = LogFactory.getLog(PathHelper.class); @@ -142,7 +141,7 @@ public void deleteOldPath(String tempPath) { try { double ran = Math.random() * 99; - if (ran < D90) { + if (ran < StaticData.D90) { return; } diff --git a/src/main/java/com/moon/server/helper/ShpHelper.java b/src/main/java/com/moon/server/helper/ShpHelper.java index aba74c0..218a67a 100644 --- a/src/main/java/com/moon/server/helper/ShpHelper.java +++ b/src/main/java/com/moon/server/helper/ShpHelper.java @@ -214,7 +214,7 @@ /** * 璇诲彇鏁版嵁 */ - public static <T> List<T> readData(Class clazz, String filePath) { + public static <T> List<T> readData(Class clazz, String filePath, boolean isTransform) { List<T> list = new ArrayList<>(); Driver driver = null; @@ -231,7 +231,7 @@ } Layer layer = dataSource.GetLayer(0); - GdbHelper.readLayer(clazz, layer, list); + GdbHelper.readLayer(clazz, layer, list, isTransform); } catch (Exception ex) { log.error(ex.getMessage(), ex); } finally { diff --git a/src/main/java/com/moon/server/helper/StringHelper.java b/src/main/java/com/moon/server/helper/StringHelper.java index e2a4fff..b720865 100644 --- a/src/main/java/com/moon/server/helper/StringHelper.java +++ b/src/main/java/com/moon/server/helper/StringHelper.java @@ -3,6 +3,7 @@ import com.moon.server.entity.all.StaticData; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; @@ -226,4 +227,20 @@ return sb.toString(); } + + /** + * 瀛楃涓茶浆鏁存暟闆嗗悎 + */ + public static List<Integer> strToIntegers(String str) { + if (StringHelper.isEmpty(str)) { + return null; + } + + List<Integer> list = new ArrayList<>(); + for (String s : str.split(StaticData.COMMA)) { + list.add(Integer.parseInt(s)); + } + + return list; + } } diff --git a/src/main/java/com/moon/server/mapper/all/BaseQueryMapper.java b/src/main/java/com/moon/server/mapper/all/BaseQueryMapper.java index ceca52e..0a9fe3e 100644 --- a/src/main/java/com/moon/server/mapper/all/BaseQueryMapper.java +++ b/src/main/java/com/moon/server/mapper/all/BaseQueryMapper.java @@ -37,23 +37,25 @@ /** * 鏍规嵁琛ㄥ悕鏌ヨ璁板綍鏁� * - * @param tab 琛ㄥ悕 - * @param field 瀛楁 + * @param tab 琛ㄥ悕 + * @param typesFilter 绫诲埆 + * @param field 瀛楁 * @return */ - public Integer selectTabsForCount(String tab, String field); + public Integer selectTabsForCount(String tab, String typesFilter, String field); /** * 鏍规嵁琛ㄥ悕鍒嗛〉鏌ヨ * - * @param tab 琛ㄥ悕 - * @param field 瀛楁 - * @param filters 杩囨护鏉′欢 - * @param limit 璁板綍鏁� - * @param offset 鍋忕Щ閲� + * @param tab 琛ㄥ悕 + * @param typesFilter 绫诲埆 + * @param field 瀛楁 + * @param filters 杩囨护鏉′欢 + * @param limit 璁板綍鏁� + * @param offset 鍋忕Щ閲� * @return */ - public List<TabEntity> selectTabsByPage(String tab, String field, String filters, Integer limit, Integer offset); + public List<TabEntity> selectTabsByPage(String tab, String typesFilter, String field, String filters, Integer limit, Integer offset); /** * 鏌ヨ瀛楁淇℃伅 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 a38c393..90a4dcc 100644 --- a/src/main/java/com/moon/server/mapper/data/MetaMapper.java +++ b/src/main/java/com/moon/server/mapper/data/MetaMapper.java @@ -38,6 +38,14 @@ public List<MetaEntity> selectByPage(String depcode, String dircode, Integer verid, String name, Integer limit, Integer offset); /** + * 鏍规嵁GUID鏌ヨGDB + * + * @param guid + * @return + */ + public List<MetaEntity> selectGdbByGuid(String guid); + + /** * 鏌ヨ璁板綍鏁� * * @param depcode diff --git a/src/main/java/com/moon/server/mapper/data/PublishMapper.java b/src/main/java/com/moon/server/mapper/data/PublishMapper.java index 0499a8e..207a84f 100644 --- a/src/main/java/com/moon/server/mapper/data/PublishMapper.java +++ b/src/main/java/com/moon/server/mapper/data/PublishMapper.java @@ -17,20 +17,24 @@ /** * 鏌ヨ璁板綍鏁� * - * @param name 鍚嶇О + * @param name 鍚嶇О + * @param dircode 鐩綍缂栫爜 + * @param type 绫诲埆 * @return 璁板綍鏁� */ - public Integer selectCount(String name); + public Integer selectCount(String name, String dircode, String type); /** * 鍒嗛〉鏌ヨ * - * @param name 鍚嶇О - * @param limit 璁板綍鏁� - * @param offset 鍋忕Щ閲� + * @param name 鍚嶇О + * @param dircode 鐩綍缂栫爜 + * @param type 绫诲埆 + * @param limit 璁板綍鏁� + * @param offset 鍋忕Щ閲� * @return 鍒楄〃 */ - public List<PublishEntity> selectByPage(String name, Integer limit, Integer offset); + public List<PublishEntity> selectByPage(String name, String dircode, String type, Integer limit, Integer offset); /** * 鏌ヨ鎵�鏈� @@ -56,6 +60,15 @@ public List<PublishEntity> selectByIds(String ids); /** + * 鏍规嵁鐩綍鏌ヨDOM鍜孌EM鐨勭紪鐮� + * + * @param dircode 鐩綍 + * @param isDom 1-DOM锛�0-DEM + * @return + */ + public List<String> selectCodesForDir(String dircode, Integer isDom); + + /** * 鎻掑叆涓�鏉� * * @param entity diff --git a/src/main/java/com/moon/server/mapper/sys/ReportMapper.java b/src/main/java/com/moon/server/mapper/sys/ReportMapper.java index c7d7173..fe77531 100644 --- a/src/main/java/com/moon/server/mapper/sys/ReportMapper.java +++ b/src/main/java/com/moon/server/mapper/sys/ReportMapper.java @@ -105,6 +105,13 @@ public List<CountEntity> countSizes(); /** + * 鎸夋枃浠剁被鍨嬬粺璁� + * + * @return + */ + public List<CountEntity> countSizesByType(); + + /** * 鏈嶅姟璋冪敤閲忕粺璁� * * @return @@ -117,4 +124,11 @@ * @return */ public List<CountEntity> countOperates(); + + /** + * 鎸夐」鐩粺璁℃暟鎹� + * + * @return + */ + public List<CountEntity> countSizesByPrj(); } diff --git a/src/main/java/com/moon/server/service/all/BaseQueryService.java b/src/main/java/com/moon/server/service/all/BaseQueryService.java index ab65401..f4e2e2e 100644 --- a/src/main/java/com/moon/server/service/all/BaseQueryService.java +++ b/src/main/java/com/moon/server/service/all/BaseQueryService.java @@ -265,17 +265,17 @@ } @Override - public Integer selectTabsForCount(String tab, String field) { + public Integer selectTabsForCount(String tab, String typesFilter, String field) { tab = StringHelper.getLikeUpperStr(tab); - return baseQueryMapper.selectTabsForCount(tab, field); + return baseQueryMapper.selectTabsForCount(tab, typesFilter, field); } @Override - public List<TabEntity> selectTabsByPage(String tab, String field, String filters, Integer limit, Integer offset) { + public List<TabEntity> selectTabsByPage(String tab, String typesFilter, String field, String filters, Integer limit, Integer offset) { tab = StringHelper.getLikeUpperStr(tab); - return baseQueryMapper.selectTabsByPage(tab, field, filters, limit, offset); + return baseQueryMapper.selectTabsByPage(tab, typesFilter, field, filters, limit, offset); } @Override diff --git a/src/main/java/com/moon/server/service/all/BaseUploadService.java b/src/main/java/com/moon/server/service/all/BaseUploadService.java index 6813b85..119977f 100644 --- a/src/main/java/com/moon/server/service/all/BaseUploadService.java +++ b/src/main/java/com/moon/server/service/all/BaseUploadService.java @@ -129,7 +129,7 @@ /** * 鏌ヨ鏂囦欢 */ - public List<MetaFileEntity> selectFiles(String subPath) { + public List<MetaFileEntity> selectFiles(String subPath, boolean hasMd5) { String root = pathHelper.getConfig().getTempPath() + File.separator + subPath; File file = new File(root); @@ -145,7 +145,7 @@ for (File f : files) { String fileName = FileHelper.getFileName(f.getPath()); String extName = FileHelper.getExtension(fileName); - if (!isExtValid(extName)) { + if (!isFileValid(f.getName())) { continue; } @@ -154,7 +154,7 @@ mf.setExtName(extName); mf.setSizes(FileHelper.sizeToMb(f.length())); mf.setPath(subPath + File.separator + fileName); - if (!StaticData.ZIP.equals(extName)) { + if (hasMd5 && !StaticData.ZIP.equals(extName)) { mf.setGuid(FileHelper.getFileMd5(f.getPath())); } @@ -190,7 +190,7 @@ * 鏌ヨ鏄犲皠 */ public List<MetaFileEntity> selectMappers(UserEntity ue, String path, DirEntity dir, VerEntity ver, String epsgCode) { - List<MetaFileEntity> metas = selectFiles(path); + List<MetaFileEntity> metas = selectFiles(path, true); if (null == metas || metas.isEmpty()) { return null; } @@ -252,14 +252,13 @@ private void getFilesByPath(List<File> list, String path) { File file = new File(path); if (!file.isDirectory()) { - String extName = FileHelper.getExtension(file); - if (isExtValid(extName)) { + if (isFileValid(file.getName())) { list.add(file); } return; } - if (isGdbFile(file)) { + if (isGdbFile(file) || isOsgbFile(file)) { list.add(file); return; } @@ -272,8 +271,7 @@ if (f.isDirectory()) { getFilesByPath(list, f.getPath()); } else { - String extName = FileHelper.getExtension(f); - if (isExtValid(extName)) { + if (isFileValid(f.getName())) { list.add(f); } } @@ -281,10 +279,22 @@ } /** - * 鎵╁睍鏄惁鏈夋晥 + * 鏂囦欢鏄�/鍚︽湁鏁� */ - private boolean isExtValid(String extName) { - return StaticData.ALL_EXTENSION.contains(extName) && !StaticData.MAPPER_EXCLUDE_EXT.contains(extName); + private boolean isFileValid(String fileName) { + String extName = FileHelper.getExtension(fileName); + if (fileName.startsWith(StaticData.TILDE) || !StaticData.ALL_EXTENSION.contains(extName)) { + return false; + } + + fileName = fileName.toLowerCase(); + for (String ext : StaticData.MAPPER_EXCLUDE_EXT) { + if (fileName.contains(ext)) { + return false; + } + } + + return true; } /** @@ -294,18 +304,19 @@ List<MetaFileEntity> list = new ArrayList<>(); for (File f : files) { boolean isGdb = isGdbFile(f); - if (!isGdb && f.isDirectory()) { + boolean isOsgb = isOsgbFile(f); + boolean isFile = isGdb || isOsgb; + if (f.isDirectory() && !isFile) { continue; } String fileName = FileHelper.getFileName(f.getPath()); - String extName = FileHelper.getExtension(fileName); - if (!isExtValid(extName) || fileName.startsWith("~")) { + String extName = isOsgb ? StaticData.OSGB : FileHelper.getExtension(fileName); + if (!isFileValid(f.getName())) { continue; } String dircode = getDirByPath(f.getPath(), fileName, dir, dirs); - boolean isShp = StaticData.SHP.equals(extName); if (isGdb) { List<MetaFileEntity> rs = getGdbMappers(f, meta, dircode, start); if (null != rs && rs.size() > 0) { @@ -313,27 +324,42 @@ } continue; } - - MetaFileEntity mf = createMetaFileEntity(meta); - mf.setDircode(dircode); - mf.setEventid(StringHelper.getGuid()); - mf.setName(fileName); - mf.setExtName(extName); - mf.setPath(f.getPath().substring(start)); - - if (isShp) { - List<String> shpFiles = getShpFiles(f.getPath()); - mf.setTab(fileName.replace(StaticData.SHP, "")); - mf.setSizes(getFilesSize(shpFiles)); - mf.setGuid(getFilesMd5(shpFiles)); - } else { - mf.setSizes(FileHelper.sizeToMb(f.length())); - mf.setGuid(FileHelper.getFileMd5(f.getPath())); + if (isOsgb) { + list.add(getOsgbMapper(f, meta, dircode, start)); + continue; } + + MetaFileEntity mf = createMetaFileEntity(f, meta, fileName, extName); + mf.setPath(f.getPath().substring(start)); + mf.setDircode(dircode); list.add(mf); } return list; + } + + /** + * 鍒涘缓鍏冩暟鎹枃浠跺疄浣撶被 + */ + private MetaFileEntity createMetaFileEntity(File f, MetaFileEntity meta, String fileName, String extName) { + boolean isShp = StaticData.SHP.equals(extName); + + MetaFileEntity mf = createMetaFileEntity(meta); + mf.setEventid(StringHelper.getGuid()); + mf.setName(fileName); + mf.setExtName(extName); + + if (isShp) { + List<String> shpFiles = getShpFiles(f.getPath()); + mf.setTab(fileName.replace(StaticData.SHP, "")); + mf.setSizes(getFilesSize(shpFiles)); + mf.setGuid(getFilesMd5(shpFiles)); + } else { + mf.setSizes(FileHelper.sizeToMb(f.length())); + mf.setGuid(FileHelper.getFileMd5(f.getPath())); + } + + return mf; } /** @@ -464,7 +490,7 @@ MetaFileEntity mf = createMetaFileEntity(meta); mf.setDircode(dircode); mf.setEventid(StringHelper.getGuid()); - mf.setName(fileName); + mf.setName(fileName + "\\" + tab); mf.setExtName(extName); mf.setSizes(FileHelper.sizeToMb(f.length())); mf.setPath(f.getPath().substring(start)); @@ -482,16 +508,9 @@ */ private boolean isGdbFile(File f) { if (f.isDirectory() && f.getName().toLowerCase().endsWith(StaticData.GDB)) { - File[] files = f.listFiles(); - if (null == files || files.length == 0) { - return false; - } + File gdb = new File(f.getPath() + File.separator + "gdb"); - for (File file : files) { - if ("gdb".equals(file.getName())) { - return true; - } - } + return gdb.exists() && !gdb.isDirectory(); } return false; @@ -519,6 +538,46 @@ } /** + * 鏄�/鍚︿负OSGB鏂囦欢 + */ + private boolean isOsgbFile(File f) { + if (f.isDirectory()) { + File meta = new File(f.getPath() + File.separator + "metadata.xml"); + File data = new File(f.getPath() + File.separator + "Data"); + + return meta.exists() && !meta.isDirectory() && data.exists() && data.isDirectory(); + } + + return false; + } + + + /** + * 鑾峰彇OSGB鏂囦欢鏄犲皠 + */ + private MetaFileEntity getOsgbMapper(File f, MetaFileEntity meta, String dircode, int start) { + String fileName = FileHelper.getFileName(f.getPath()); + + List<String> files = new ArrayList<>(); + FileHelper.getFilesByPath(files, f.getPath()); + + String md5 = getFilesMd5(files); + double sizes = getFilesSize(files); + + MetaFileEntity mf = createMetaFileEntity(meta); + mf.setDircode(dircode); + mf.setEventid(StringHelper.getGuid()); + mf.setName(fileName); + mf.setExtName(StaticData.OSGB); + mf.setSizes(FileHelper.sizeToMb(f.length())); + mf.setPath(f.getPath().substring(start)); + mf.setSizes(sizes); + mf.setGuid(md5); + + return mf; + } + + /** * 鑾峰彇鍙傛暟 * * Enumeration<String> headers = req.getHeaderNames(); * Enumeration<String> attributes = req.getAttributeNames(); diff --git a/src/main/java/com/moon/server/service/all/UploadAttachService.java b/src/main/java/com/moon/server/service/all/UploadAttachService.java index ff752c5..0780ff3 100644 --- a/src/main/java/com/moon/server/service/all/UploadAttachService.java +++ b/src/main/java/com/moon/server/service/all/UploadAttachService.java @@ -2,20 +2,17 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.moon.server.controller.all.BaseController; -import com.moon.server.entity.all.ResponseMsg; -import com.moon.server.entity.all.SettingData; +import com.moon.server.entity.all.*; import com.moon.server.entity.ctrl.KeyValueEntity; import com.moon.server.entity.data.DownloadEntity; import com.moon.server.entity.data.MetaEntity; import com.moon.server.entity.data.MetaFileEntity; import com.moon.server.entity.sys.AttachEntity; import com.moon.server.entity.sys.UserEntity; +import com.moon.server.helper.*; import com.moon.server.mapper.all.BasicMapper; import com.moon.server.mapper.data.DownloadMapper; import com.moon.server.service.sys.AttachService; -import com.moon.server.entity.all.BaseEntity; -import com.moon.server.entity.all.StaticData; -import com.moon.server.helper.*; import net.lingala.zip4j.ZipFile; import net.lingala.zip4j.model.FileHeader; import net.lingala.zip4j.model.ZipParameters; 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 6c3d997..ec46830 100644 --- a/src/main/java/com/moon/server/service/data/MetaService.java +++ b/src/main/java/com/moon/server/service/data/MetaService.java @@ -66,6 +66,11 @@ } @Override + public List<MetaEntity> selectGdbByGuid(String guid) { + return metaMapper.selectGdbByGuid(guid); + } + + @Override public Integer selectMetasForCount(String depcode, String dirs, String name) { depcode = StringHelper.getRightLike(depcode); name = StringHelper.getLikeUpperStr(name); @@ -238,6 +243,9 @@ } if (str.contains("bs.s_explorationpoint ")) { list.add(str.replace("bs.s_explorationpoint ", "bs.s_surveyworksite ")); + } + if (str.contains("bs.m_surface_deformation_data ")) { + list.add(str.replace("bs.m_surface_deformation_data ", "bs.m_surface_deformation_data_date ")); } i++; @@ -524,6 +532,8 @@ addMultiFile(uploadPath, mf, zip, params, StaticData.SHP_EXT); break; case StaticData.GDB: + continue; + case StaticData.OSGB: addFolderFile(uploadPath, mf, zip, params); break; default: diff --git a/src/main/java/com/moon/server/service/data/PublishService.java b/src/main/java/com/moon/server/service/data/PublishService.java index f3fae53..cb0e886 100644 --- a/src/main/java/com/moon/server/service/data/PublishService.java +++ b/src/main/java/com/moon/server/service/data/PublishService.java @@ -7,16 +7,21 @@ import com.moon.server.entity.ctrl.RegisterEntity; import com.moon.server.entity.data.MetaEntity; import com.moon.server.entity.data.PublishEntity; +import com.moon.server.entity.sys.UserEntity; +import com.moon.server.helper.PathHelper; import com.moon.server.helper.RestHelper; import com.moon.server.helper.StringHelper; +import com.moon.server.helper.WebHelper; import com.moon.server.mapper.data.PublishMapper; +import com.moon.server.service.sys.TokenService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.io.File; import java.lang.reflect.Field; import java.util.HashMap; import java.util.List; @@ -34,26 +39,34 @@ @Value("${sys.iisHost}") private String iisHost; - @Autowired + @Resource PublishMapper publishMapper; - @Autowired + @Resource FmeService fmeService; + + @Resource + PathHelper pathHelper; + + @Resource + TokenService tokenService; private final static Log log = LogFactory.getLog(PublishService.class); @Override - public Integer selectCount(String name) { + public Integer selectCount(String name, String dircode, String type) { name = StringHelper.getLikeUpperStr(name); + dircode = StringHelper.getRightLike(dircode); - return publishMapper.selectCount(name); + return publishMapper.selectCount(name, dircode, type); } @Override - public List<PublishEntity> selectByPage(String name, Integer limit, Integer offset) { + public List<PublishEntity> selectByPage(String name, String dircode, String type, Integer limit, Integer offset) { name = StringHelper.getLikeUpperStr(name); + dircode = StringHelper.getRightLike(dircode); - return publishMapper.selectByPage(name, limit, offset); + return publishMapper.selectByPage(name, dircode, type, limit, offset); } @Override @@ -69,6 +82,11 @@ @Override public List<PublishEntity> selectByIds(String ids) { return publishMapper.selectByIds(ids); + } + + @Override + public List<String> selectCodesForDir(String dircode, Integer isDom) { + return publishMapper.selectCodesForDir(dircode, isDom); } @Override @@ -122,6 +140,27 @@ name = StringHelper.getLikeUpperStr(name); return publishMapper.selectMetasByPage(depcode, dircode, verid, types, name, limit, offset); + } + + public List<Integer> selectLasCs(PubEntity entity, String method, HttpServletRequest req) { + Map<String, Object> map = getMapData(entity); + + String str = RestHelper.postForRest(exportServer + method, map); + if (StringHelper.isEmpty(str)) { + return null; + } + + ResponseMsg<String> msg = JSON.parseObject(str, ResponseMsg.class); + if (msg == null || msg.getCode() != StaticData.TWO_HUNDRED) { + return null; + } + + String rs = msg.getResult(); + if (StringHelper.isEmpty(rs)) { + return null; + } + + return StringHelper.strToIntegers(rs); } /** @@ -182,6 +221,11 @@ } for (PublishEntity entity : list) { + // 閬垮厤閲嶅娉ㄥ唽 + if (null != entity.getUpdateTime()) { + continue; + } + String url = entity.getUrl().replace("{host}", iisHost); String type = getServerType(entity); @@ -208,6 +252,10 @@ return "涓夌淮鍦板舰鏈嶅姟"; case "mpt": return "涓夌淮鍦烘櫙鏈嶅姟"; + case "las": + case "laz": + case "cpt": + return "涓夌淮鐐逛簯鏈嶅姟"; default: return "涓夌淮妯″瀷鏈嶅姟"; } @@ -245,4 +293,61 @@ } } } + + /** + * 鍒犻櫎鍙戝竷鏂囦欢 + */ + public void deleteFiles(List<PublishEntity> list) { + String lfData = pathHelper.getConfig().getLfData(); + for (PublishEntity pub : list) { + if (null != pub.getUrl() && pub.getUrl().contains("/SG/")) { + continue; + } + + String path = lfData + pub.getPath().replace("\\tileset.json", ""); + File file = new File(path); + if (!file.exists() || !file.isDirectory()) { + continue; + } + + String cmd = String.format("cmd /c rd \"%s\" /s /q", path); + WebHelper.exec(cmd); + } + } + + /** + * 鍒犻櫎鍙戝竷鏂囦欢 + */ + public void deleteFiles(List<Integer> ids, HttpServletRequest req) { + PubEntity entity = new PubEntity(); + entity.setIds(ids); + entity.setDircode("00"); + + UserEntity ue = tokenService.getCurrentUser(req); + if (ue != null) { + entity.setUserId(ue.getId()); + entity.setToken(WebHelper.getToken(req)); + } + + long rows = postForPub(entity, "/Convert/DeleteFiles"); + } + + /** + * 鍙戦�佸彂甯冭姹� + */ + public long postForPub(PubEntity entity, String method) { + Map<String, Object> map = getMapData(entity); + + String str = RestHelper.postForRest(exportServer + method, map); + if (StringHelper.isEmpty(str)) { + return 0; + } + + ResponseMsg<String> msg = JSON.parseObject(str, ResponseMsg.class); + if (msg == null || msg.getCode() != StaticData.TWO_HUNDRED) { + return 0; + } + + return msg.getCount(); + } } diff --git a/src/main/java/com/moon/server/service/data/UploadService.java b/src/main/java/com/moon/server/service/data/UploadService.java index bb5e2b4..2ecae47 100644 --- a/src/main/java/com/moon/server/service/data/UploadService.java +++ b/src/main/java/com/moon/server/service/data/UploadService.java @@ -1,15 +1,16 @@ package com.moon.server.service.data; +import com.google.common.collect.Lists; import com.moon.server.entity.all.BaseEntity; import com.moon.server.entity.all.StaticData; +import com.moon.server.entity.data.*; import com.moon.server.entity.sys.UserEntity; +import com.moon.server.helper.*; import com.moon.server.mapper.all.BasicMapper; import com.moon.server.mapper.data.UploadMapper; import com.moon.server.service.all.BaseQueryService; import com.moon.server.service.all.BaseUploadService; import com.moon.server.service.sys.DepService; -import com.moon.server.entity.data.*; -import com.moon.server.helper.*; import org.apache.commons.io.FileUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -93,6 +94,9 @@ File f = new File(mf.getPath()); if (!f.exists()) { mf.setMsg("鏂囦欢涓㈠け"); + } + if (f.exists() && StringHelper.isNull(mf.getGuid())) { + mf.setGuid(FileHelper.getFileMd5(f.getPath())); } MetaEntity old = metaService.selectByGuid(mf.getGuid(), getDirCode(mf), null); @@ -227,21 +231,40 @@ List<?> list; if (StaticData.SHP.equals(mf.getExtName())) { - list = ShpHelper.readData(clazz, mf.getPath()); + list = ShpHelper.readData(clazz, mf.getPath(), true); } else { - list = GdbHelper.readData(clazz, mf.getPath(), mf.getTab()); + list = GdbHelper.readData(clazz, mf.getPath(), mf.getTab(), true); } if (null == list || list.isEmpty()) { return; } + mf.setRecords(list.size()); setCreateInfo(list, mf); - int rows = basicMapper.insertBatch(list); + int rows = batchInserts(basicMapper, list); if (rows > 0) { mf.setEntity(mf.getTab()); mf.setTab(tabName); mf.setRows(rows); } + } + + /** + * 鎵归噺鎻掑叆 + */ + private <T> int batchInserts(BasicMapper basicMapper, List<T> list) { + int rows = 0; + //int count = (int) Math.ceil(list.size() / StaticData.D100) + List<List<T>> subLists = Lists.partition(list, StaticData.I50); + for (List<T> sub : subLists) { + try { + rows += basicMapper.insertBatch(sub); + } catch (Exception ex) { + log.error(ex); + } + } + + return rows; } /** @@ -296,6 +319,9 @@ break; case StaticData.SHP: copyMultiFile(mf, StaticData.SHP_EXT); + break; + case StaticData.OSGB: + copyFolderFile(mf); break; case StaticData.GDB: if (gdbList.contains(mf.getPath())) { @@ -425,15 +451,11 @@ return; } - newFile.mkdirs(); - File[] files = file.listFiles(); - if (null == files || files.length == 0) { - return; - } - - for (File f : files) { - String subFile = targetPath + File.separator + FileHelper.getFileName(f.getPath()); - f.renameTo(new File(subFile)); + try { + // newFile.mkdirs() + FileUtils.moveDirectory(file, newFile); + } catch (Exception ex) { + log.error(ex); } mf.setPath(subPath); } @@ -464,15 +486,25 @@ */ private void insertMetas(List<MetaFileEntity> list) { int metaId = insertParentMeta(list); + + List<String> guids = new ArrayList<>(); for (MetaFileEntity mf : list) { if (null != mf.getMsg()) { continue; } MetaEntity me = createMeta(mf, metaId); - metaService.insert(me); + if (StaticData.NGDB.equals(me.getType())) { + if (guids.contains(me.getGuid())) { + me.setIsmeta((short)-1); + } else { + guids.add(me.getGuid()); + } + } - mf.setMsg(me.getId() > 0 ? "鎴愬姛" : "澶辫触"); + metaService.insert(me); + String err = mf.getRows() < mf.getRecords() ? "(" + (mf.getRecords() - mf.getRows()) + " 鏉″け璐�)" : ""; + mf.setMsg(me.getId() > 0 ? String.format("鎴愬姛%s", err) : "澶辫触"); } } diff --git a/src/main/java/com/moon/server/service/show/DataLibService.java b/src/main/java/com/moon/server/service/show/DataLibService.java index c763e10..cac2014 100644 --- a/src/main/java/com/moon/server/service/show/DataLibService.java +++ b/src/main/java/com/moon/server/service/show/DataLibService.java @@ -285,7 +285,7 @@ } List<String> list = codesAsList(codes); - removeDuplicate(list); + list = copeDirCodes(list); setRightLike(list, field); return "(" + StringHelper.join(list, " or ") + ")"; @@ -305,39 +305,75 @@ } /** - * 鍘婚櫎閲嶅 + * 澶勭悊鐩綍缂栫爜 */ - private static void removeDuplicate(List<String> list) { - int i = 0; - while (i < list.size()) { - int j = findStr(list, i); - if (j > -1) { - list.remove(j); - continue; - } - - i++; + private static List<String> copeDirCodes(List<String> list) { + List<String> prjList = getDirCodesByLen(list, 0, 2); + List<String> appList = getDirCodesByLen(list, 3, 30); + if (prjList.isEmpty() && appList.isEmpty()) { + return list; } + if (prjList.isEmpty()) { + return appList; + } + if (appList.isEmpty()) { + return prjList; + } + + return filterCodes(prjList, appList); } /** - * 鏌ユ壘瀛楃涓� + * 鏍规嵁闀垮害鑾峰彇鍗曚綅缂栫爜 */ - private static int findStr(List<String> list, int i) { - String source = list.get(i); - for (int j = i + 1, c = list.size(); j < c; j++) { - if (list.get(j).startsWith(source)) { - return j; + private static List<String> getDirCodesByLen(List<String> list, int start, int end) { + List<String> rs = new ArrayList<>(); + for (String code : list) { + if (StringHelper.isEmpty(code)) { + continue; + } + + if (code.length() >= start && code.length() <= end) { + rs.add(code); } } - return -1; + return rs; + } + + /** + * 杩囨护椤圭洰缂栫爜 + */ + private static List<String> filterCodes(List<String> prjList, List<String> appList) { + int i = 0; + while (i < appList.size()) { + boolean flag = false; + for (String prj : prjList) { + if (appList.get(i).startsWith(prj)) { + flag = true; + break; + } + } + + if (!flag) { + appList.remove(i); + continue; + } + i++; + } + + return appList; } /** * 璁剧疆 鍙砽ike */ private static void setRightLike(List<String> list, String field) { + if (list.isEmpty()) { + list.add("1 = 2"); + return; + } + for (int i = 0, c = list.size(); i < c; i++) { String str = String.format("%s like '%s%%'", field, list.get(i)); list.set(i, str); diff --git a/src/main/java/com/moon/server/service/show/InquiryService.java b/src/main/java/com/moon/server/service/show/InquiryService.java index d9c8e1b..9feec70 100644 --- a/src/main/java/com/moon/server/service/show/InquiryService.java +++ b/src/main/java/com/moon/server/service/show/InquiryService.java @@ -95,7 +95,7 @@ * 鐡︾墖璺緞鏄惁瀛樺湪 */ private boolean isTilePathExist(PublishEntity pub) { - String tilePath = pathHelper.getConfig().getTilePath().replace("2d\\tiles", "") + pub.getPath(); + String tilePath = pathHelper.getConfig().getTilePath() + pub.getPath(); File f = new File(tilePath); if (!f.exists() || !f.isDirectory()) { @@ -112,6 +112,12 @@ */ private List<File> findTiles(DownloadTileEntity dt, PublishEntity pub) { List<File> list = new ArrayList<>(); + + File view = new File(pub.getPath() + File.separator + "view.htm"); + if (view.exists() && !view.isDirectory()) { + list.add(view); + } + for (int i = 0; i < StaticData.I23; i++) { List<File> files = findTilesByZoom(dt, pub, i); if (files.size() > 0) { diff --git a/src/main/java/com/moon/server/service/sys/ProxyService.java b/src/main/java/com/moon/server/service/sys/ProxyService.java index 36cc0de..454dcbe 100644 --- a/src/main/java/com/moon/server/service/sys/ProxyService.java +++ b/src/main/java/com/moon/server/service/sys/ProxyService.java @@ -56,7 +56,7 @@ // 9.鑾峰彇璧勬簮瀹炰綋 ResEntity entity = getResEntity(ue, resId); - if (null == entity || StaticData.TWO != entity.getType() || StringHelper.isNull(entity.getProxy()) || StringHelper.isNull(entity.getUrl())) { + if (null == entity || StaticData.TWO != entity.getStatus() || StringHelper.isNull(entity.getProxy()) || StringHelper.isNull(entity.getUrl())) { WebHelper.writeStr2Page(res, ILLEGAL_RESOURCE); return; } diff --git a/src/main/java/com/moon/server/service/sys/ReportService.java b/src/main/java/com/moon/server/service/sys/ReportService.java index 8cafc99..0ac0c20 100644 --- a/src/main/java/com/moon/server/service/sys/ReportService.java +++ b/src/main/java/com/moon/server/service/sys/ReportService.java @@ -94,6 +94,11 @@ } @Override + public List<CountEntity> countSizesByType() { + return reportMapper.countSizesByType(); + } + + @Override public List<CountEntity> countServices() { return reportMapper.countServices(); } @@ -103,6 +108,11 @@ return reportMapper.countOperates(); } + @Override + public List<CountEntity> countSizesByPrj() { + return reportMapper.countSizesByPrj(); + } + /** * 鍒涘缓鎶ュ憡 */ diff --git a/src/main/resources/mapper/all/BaseQueryMapper.xml b/src/main/resources/mapper/all/BaseQueryMapper.xml index cd273f0..141ddac 100644 --- a/src/main/resources/mapper/all/BaseQueryMapper.xml +++ b/src/main/resources/mapper/all/BaseQueryMapper.xml @@ -28,6 +28,9 @@ <if test="tab != null"> and upper(tab) like #{tab} or upper(tab_desc) like #{tab} </if> + <if test="typesFilter != null"> + and (${typesFilter}) + </if> </where> </select> @@ -39,6 +42,9 @@ <if test="tab != null"> and (upper(tab) like #{tab} or upper(tab_desc) like #{tab}) </if> + <if test="typesFilter != null"> + and (${typesFilter}) + </if> </where> order by id limit #{limit} offset #{offset}; diff --git a/src/main/resources/mapper/data/MetaMapper.xml b/src/main/resources/mapper/data/MetaMapper.xml index bbec10c..1abc389 100644 --- a/src/main/resources/mapper/data/MetaMapper.xml +++ b/src/main/resources/mapper/data/MetaMapper.xml @@ -4,7 +4,7 @@ <select id="selectCount" resultType="java.lang.Integer"> select count(*) from lf.sys_meta <where> - 1 = 1 + ismeta between 0 and 1 <if test="depcode != null"> and depcode like #{depcode} </if> @@ -24,7 +24,7 @@ select a.*,fn_uname(a.create_user) uname,fn_get_fullname(a.depcode, 1) depName,fn_ver(a.verid) verName,fn_get_fullname(a.dircode, 2) dirName from lf.sys_meta a <where> - 1 = 1 + ismeta between 0 and 1 <if test="depcode != null"> and depcode like #{depcode} </if> @@ -42,6 +42,12 @@ limit #{limit} offset #{offset} </select> + <select id="selectGdbByGuid" resultType="com.moon.server.entity.data.MetaEntity"> + select a.*,fn_uname(a.create_user) uname,fn_get_fullname(a.depcode, 1) depName,fn_ver(a.verid) verName,fn_get_fullname(a.dircode, 2) dirName + from lf.sys_meta a + where type = 'gdb' and guid = #{guid}; + </select> + <select id="selectMetasForCount" resultType="java.lang.Integer"> select count(*) from lf.sys_meta <where> diff --git a/src/main/resources/mapper/show/PublishMapper.xml b/src/main/resources/mapper/data/PublishMapper.xml similarity index 82% rename from src/main/resources/mapper/show/PublishMapper.xml rename to src/main/resources/mapper/data/PublishMapper.xml index e0a72ac..10ce798 100644 --- a/src/main/resources/mapper/show/PublishMapper.xml +++ b/src/main/resources/mapper/data/PublishMapper.xml @@ -48,8 +48,15 @@ <select id="selectCount" resultType="java.lang.Integer"> select count(*) from lf.sys_publish <where> + 1 = 1 <if test="name != null"> - upper(name) like #{name} + and upper(name) like #{name} + </if> + <if test="dircode != null"> + and dirid like #{dircode} + </if> + <if test="type != null"> + and ${type} </if> </where> </select> @@ -58,11 +65,18 @@ select ST_AsText(geom) "geom", a.*, fn_get_fullname(a.depid, 1) depName, fn_get_fullname(a.dirid, 2) dirName, fn_uname(create_user) createName, fn_uname(update_user) updateName from lf.sys_publish a <where> + 1 = 1 <if test="name != null"> - upper(name) like #{name} + and upper(name) like #{name} + </if> + <if test="dircode != null"> + and dirid like #{dircode} + </if> + <if test="type != null"> + and ${type} </if> </where> - order by id desc + order by a.update_time desc, a.create_time desc limit #{limit} offset #{offset} </select> @@ -80,6 +94,25 @@ select * from lf.sys_publish where id in (${ids}) order by id desc; </select> + <select id="selectCodesForDir" resultType="java.lang.String"> + select code + from lf.sys_dir + <where> + <choose> + <when test="isDom > 0"> + name in ('DOM', '鏁板瓧姝e皠褰卞儚鍥�') + </when> + <otherwise> + name in ('DEM', '鏁板瓧楂樼▼妯″瀷') + </otherwise> + </choose> + <if test="dircode != null"> + and code like #{dircode} + </if> + </where> + order by code; + </select> + <insert id="insert" parameterType="com.moon.server.entity.data.PublishEntity"> insert into lf.sys_publish (regid,name,url,path,type,status,dirid,depid,min,max,json,create_user,create_time,bak) diff --git a/src/main/resources/mapper/show/OneMapMapper.xml b/src/main/resources/mapper/show/OneMapMapper.xml index 8c6c43a..cd78d5f 100644 --- a/src/main/resources/mapper/show/OneMapMapper.xml +++ b/src/main/resources/mapper/show/OneMapMapper.xml @@ -128,7 +128,9 @@ <select id="countProjectTour" resultType="java.util.Map"> SELECT st_astext(geom) AS wkt,* FROM bs.m_pipeline <where> - <if test="pipename != null and pipename != ''"> and pipename = #{pipename}</if> + <if test="pipename != null and pipename != ''"> + pipename = #{pipename} + </if> </where> </select> diff --git a/src/main/resources/mapper/sys/ReportMapper.xml b/src/main/resources/mapper/sys/ReportMapper.xml index dc7d636..1e2e06a 100644 --- a/src/main/resources/mapper/sys/ReportMapper.xml +++ b/src/main/resources/mapper/sys/ReportMapper.xml @@ -86,6 +86,14 @@ order by depcode; </select> + <!-- 鎸夋枃浠剁被鍨嬬粺璁� --> + <select id="countSizesByType" resultType="com.moon.server.entity.ctrl.CountEntity"> + select type "m1", cast(sum(sizes) as decimal(18, 3)) "sizes", count(*) "count" + from lf.sys_meta + group by type + order by type; + </select> + <!-- 鏈嶅姟璋冪敤閲忕粺璁� --> <select id="countServices" resultType="com.moon.server.entity.ctrl.CountEntity"> select name "m1", count(*) "count" @@ -101,4 +109,13 @@ group by modular1,modular2 order by modular1 desc,modular2; </select> + + <!-- 鎸夐」鐩粺璁℃暟鎹� --> + <select id="countSizesByPrj" resultType="com.moon.server.entity.ctrl.CountEntity"> + select name "m1", coalesce((select sum(sizes) from lf.sys_meta b where b.dircode like a.code || '%'), 0) "sizes", + (select count(*) from lf.sys_meta b where b.dircode like a.code || '%') "count" + from lf.sys_dir a + where pid = 0 + order by a.code; + </select> </mapper> \ No newline at end of file -- Gitblit v1.9.3