管道基础大数据平台系统开发-【后端】-Server
13693261870
2023-09-24 0bdfffaef3b003ea81bc2415ce583e555489ae24
src/main/java/com/lf/server/controller/all/BaseQueryController.java
@@ -28,6 +28,7 @@
import com.lf.server.service.show.DataLibService;
import com.lf.server.service.sys.AttachService;
import com.lf.server.service.sys.DepService;
import com.lf.server.service.sys.DownlogService;
import com.lf.server.service.sys.TokenService;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -64,7 +65,10 @@
    DataLibService dataLibService;
    @Autowired
    DownloadService downloadService;
    public DownlogService downlogService;
    @Autowired
    public DownloadService downloadService;
    @Autowired
    BaseQueryService baseQueryService;
@@ -115,7 +119,7 @@
    })
    @GetMapping(value = "/selectByPage")
    @PostMapping(value = "/selectByPage")
    public ResponseMsg<List<Object>> selectByPage(String name, String depcode, String dirs, String filter, String wkt, Integer pageIndex, Integer pageSize, Integer hasGeom) {
    public ResponseMsg<List<?>> selectByPage(String name, String depcode, String dirs, String filter, String wkt, Integer pageIndex, Integer pageSize, Integer hasGeom) {
        try {
            BasicMapper baseMapper = ClassHelper.getBasicMapper(name);
            if (null == baseMapper) {
@@ -141,7 +145,7 @@
            Page<Object> page = new Page<>(pageIndex, pageSize);
            page.addOrder(OrderItem.desc("gid"));
            IPage<Object> paged = baseMapper.selectPage(page, wrapper);
            IPage<?> paged = baseMapper.selectPage(page, wrapper);
            if (hasWkt && null != paged.getRecords()) {
                copeWkt(paged.getRecords());
            }
@@ -196,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) {
@@ -420,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);
@@ -441,19 +446,62 @@
            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) {
            return fail(ex, null);
        }
    }
    /**
     * 获取类别过滤条件
     */
    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()
@@ -573,6 +621,32 @@
    }
    @SysLog()
    @ApiOperation(value = "查询元数据中溢出的单位ID")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "reqEntity", value = "请求下载实体", dataType = "DownloadReqEntity", paramType = "body")
    })
    @ResponseBody
    @PostMapping(value = "/selectMetaOverflowDep")
    public ResponseMsg<Object> selectMetaOverflowDep(@RequestBody DownloadReqEntity dr, HttpServletRequest req, HttpServletResponse res) {
        try {
            if (null == dr || null == dr.getIds() || dr.getIds().isEmpty()) {
                return fail("请选择要下载的文件ID");
            }
            UserEntity ue = tokenService.getCurrentUser(req);
            if (StaticData.ADMIN.equals(ue.getUid())) {
                return success(new ArrayList<String>());
            }
            List<String> list = metaService.selectMetaOverflowDep(ue, dr);
            return success(list);
        } catch (Exception ex) {
            return fail(ex, null);
        }
    }
    @SysLog()
    @ApiOperation(value = "查询DB中溢出的单位ID")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "reqEntity", value = "请求下载实体", dataType = "DownloadReqEntity", paramType = "body")
@@ -684,11 +758,11 @@
                return fail("用户未登录", null);
            }
            int count = downloadService.selectCountForUser(ue.getId(), 4, name);
            int count = downloadService.selectCountForUser(ue.getId(), "3,4", name);
            if (count == 0) {
                return success(0, null);
            }
            List<DownloadEntity> rs = downloadService.selectByPageForUser(ue.getId(), 4, name, pageSize, pageSize * (pageIndex - 1));
            List<DownloadEntity> rs = downloadService.selectByPageForUser(ue.getId(), "3,4", name, pageSize, pageSize * (pageIndex - 1));
            return success(count, rs);
        } catch (Exception ex) {