管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2023-02-18 118ae24754f526c318b14a6c2af1badf3b7d90de
src/main/java/com/lf/server/service/show/DataLibService.java
@@ -91,8 +91,8 @@
    /**
     * 创建Zip包
     */
    public String createZipFile(UserEntity ue, List<String> entities, String wkt, String pwd) throws Exception {
        Map<String, List<?>> map = queryData(entities, wkt);
    public String createZipFile(UserEntity ue, List<String> entities, String depcode, String dirs, String wkt, String pwd) throws Exception {
        Map<String, List<?>> map = queryData(entities, depcode, dirs, wkt);
        if (map.size() == 0) {
            return null;
        }
@@ -125,7 +125,7 @@
    /**
     * 查询数据
     */
    private Map<String, List<?>> queryData(List<String> entities, String wkt) {
    private Map<String, List<?>> queryData(List<String> entities, String depcode, String dirs, String wkt) {
        Map<String, List<?>> map = new HashMap<>(5);
        for (String enity : entities) {
            try {
@@ -134,7 +134,7 @@
                    continue;
                }
                QueryWrapper wrapper = createWrapper(baseMapper, wkt);
                QueryWrapper wrapper = createWrapper(baseMapper, depcode, dirs, wkt);
                List<?> list = baseMapper.selectList(wrapper);
                if (null == list || list.size() == 0) {
                    continue;
@@ -154,13 +154,23 @@
    /**
     * 创建QueryWrapper
     */
    private QueryWrapper createWrapper(GeomBaseMapper baseMapper, String wkt) {
    private QueryWrapper createWrapper(BasicMapper baseMapper, String depcode, String dirs, String wkt) {
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.select("ST_AsText(geom) as geom, *");
        if (baseMapper instanceof GeomBaseMapper) {
            wrapper.select("ST_AsText(geom) as geom, *");
        Integer srid = baseQueryService.getSrid(baseMapper);
        if (null != srid) {
            wrapper.apply(String.format("ST_Intersects(ST_PolygonFromText('%s', %d), geom)", wkt, srid));
            Integer srid = baseQueryService.getSrid((GeomBaseMapper) baseMapper);
            if (null != srid) {
                wrapper.apply(String.format("ST_Intersects(ST_PolygonFromText('%s', %d), geom)", wkt, srid));
            }
        }
        if (!StringHelper.isEmpty(depcode)) {
            wrapper.likeRight("depid", depcode);
        }
        dirs = DataLibService.copeCodes(dirs, "dirid");
        if (!StringHelper.isEmpty(dirs)) {
            wrapper.apply(dirs);
        }
        return wrapper;