月球大数据地理空间分析展示平台-【后端】-月球后台服务
13693261870
2023-08-14 e002c67732b571f0b20cca8321ca8ee1ddba2e05
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 = "测绘(ESV)"),
            @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 "测绘(ESV)":
                    list.add("bak like '工程数据/测绘%'");
                    break;
                case "勘察(EGE)":
                    list.add("bak like '工程数据/勘察%'");
                    break;
                case "地灾(EGD)":
                    list.add("bak like '工程数据/地灾%'");
                    break;
                case "洞库(EGD)":
                    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({