月球大数据地理空间分析展示平台-【后端】-月球后台服务
1
13693261870
2024-11-11 fee67ca8a0760315047a52fc4101a8f4f80b7a7f
src/main/java/com/moon/server/controller/all/BaseQueryController.java
@@ -41,10 +41,7 @@
import java.util.ArrayList;
import java.util.List;
/**
 * 父查询控制器
 * @author WWW
 */
@SuppressWarnings("ALL")
public class BaseQueryController extends BaseController {
    @Autowired
    AttachService attachService;
@@ -156,9 +153,6 @@
        }
    }
    /**
     * 处理WKT
     */
    private void copeWkt(List<?> list) {
        for (int i = 0, c = list.size(); i < c; i++) {
            Object obj = list.get(i);
@@ -166,9 +160,6 @@
        }
    }
    /**
     * 设置WKT加密
     */
    private void setWktEncrypt(Object obj) {
        if (obj instanceof BaseGeoEntity) {
            BaseGeoEntity entity = (BaseGeoEntity) obj;
@@ -200,7 +191,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 +415,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 +437,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 +453,45 @@
        }
    }
    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({