管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2023-03-28 7a481b56048d2356ed1b0e3eaef3e44a3d610f64
1
已修改2个文件
72 ■■■■■ 文件已修改
src/main/java/com/lf/server/service/show/DataLibService.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/sys/AttachMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/show/DataLibService.java
@@ -104,7 +104,7 @@
    }
    /**
     * 查询DB中溢出单位编码的查询包装
     * 查询DB中溢出单位编码的查询包装器
     */
    private <T> QueryWrapper<T> getWrapper4DbOverflow(UserEntity ue, DownloadReqEntity dr) {
        QueryWrapper<T> wrapper = new QueryWrapper<T>();
@@ -147,12 +147,71 @@
    /**
     * 请求DB数据下载
     */
    public String downloadDbReq(UserEntity ue, DownloadReqEntity dr) throws Exception {
        if (!StringHelper.isEmpty(dr.getWkt())) {
            return downloadDbReq4Wkt(ue, dr);
    public String downloadDbReq(UserEntity ue, DownloadReqEntity dr) {
        Map<String, List<?>> map = queryData(dr);
        if (map.size() == 0) {
            return null;
        }
        return downloadDbReq4Prop(ue, dr);
        return null;
    }
    /**
     * 查询数据
     */
    private Map<String, List<?>> queryData(DownloadReqEntity dr) {
        Map<String, List<?>> map = new HashMap<>(3);
        for (String enity : dr.getEntities()) {
            try {
                BasicMapper baseMapper = ClassHelper.getBasicMapper(enity);
                if (null == baseMapper) {
                    continue;
                }
                QueryWrapper wrapper = createQueryWrapper(baseMapper, dr);
                List<?> list = baseMapper.selectList(wrapper);
                if (null == list || list.size() == 0) {
                    continue;
                }
                if (!map.containsKey(enity)) {
                    map.put(enity, list);
                }
            } catch (Exception ex) {
                log.error(ex.getMessage(), ex);
            }
        }
        return map;
    }
    /**
     * 创建查询包装器
     */
    private <T> QueryWrapper<T> createQueryWrapper(BasicMapper baseMapper, DownloadReqEntity dr) {
        QueryWrapper<T> wrapper = new QueryWrapper<T>();
        String dirs = copeCodes(dr.getDirs(), "dirid");
        if (!StringHelper.isEmpty(dirs)) {
            wrapper.apply(dirs);
        }
        if (!StringHelper.isEmpty(dr.getDepcode())) {
            wrapper.likeRight("depid", dr.getDepcode());
        }
        if (baseMapper instanceof GeomBaseMapper && !StringHelper.isEmpty(dr.getWkt())) {
            wrapper.select("ST_AsText(geom) as geom, *");
            Integer srid = baseQueryService.getSrid((GeomBaseMapper) baseMapper);
            if (null != srid) {
                wrapper.apply(String.format("ST_Intersects(ST_PolygonFromText('%s', %d), geom)", dr.getWkt(), srid));
            }
        }
        if (null != dr.getIds() && dr.getIds().size() > 0) {
            wrapper.apply(String.format("gid in (%s)", StringHelper.join(dr.getIds(), ",")));
        } else {
            baseQueryService.addFilterWrapper(wrapper, dr.getFilter());
        }
        return wrapper;
    }
    /**
src/main/resources/mapper/sys/AttachMapper.xml
@@ -113,11 +113,12 @@
        update lf.sys_fme_log set update_time = now() where id = #{id};
    </update>
    <!-- and create_time > now()::timestamp + '-15 min' -->
    <insert id="insertAttachByMeta">
        insert into lf.sys_attach (name, guid, path, sizes, create_user, tab, tab_guid)
        select name, guid, path, sizes, create_user, #{tab}, #{tabGuid}
        from lf.sys_meta
        where name = #{metaName} and create_time > now()::timestamp + '-15 min'
        where name = #{metaName}
        order by id desc
        limit 1;
    </insert>