管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2023-02-25 79454ce9fbb025d35b7b28144bc9306cf9e546e3
1
已修改4个文件
55 ■■■■ 文件已修改
data/db_cx.sql 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data/db_fn.sql 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data/update.sql 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/sys/ReportMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
data/db_cx.sql
@@ -319,11 +319,6 @@
)
SELECT N::NUMERIC(30, 0) FROM T WHERE LENGTH(S) < 1;
---------------------------------------------------------------------------------------------- -1.测试
select id,name from lf.sys_dir where name in ('测量(ESV)','勘察(EGE)','地灾(EGD)','洞库(EGD)') order by name;
select (select string_agg(cast(id as varchar),',') from lf.sys_dir where name = a.name) "key",name "value" from lf.sys_dir a
where name in ('测量(ESV)','勘察(EGE)','地灾(EGD)','洞库(EGD)') group by name order by name;
select (select string_agg(code, ',') from lf.sys_dir where name = a.name) "key", name "value"
from lf.sys_dir a
where name in ('基础测绘', '基础地灾', '基础勘察', '合规数据', '管理数据', '测量(ESV)', '勘察(EGE)', '地灾(EGD)', '洞库(EGD)')
@@ -340,3 +335,5 @@
data/db_fn.sql
@@ -291,26 +291,27 @@
select id, name, code from lf.sys_dir order by id;
select fn_set_tab_codes(1, 1); select fn_set_tab_codes(0, 2);
----------------------------------------------------------------------------------------------------- 13.获取目录编码过滤条件
-- drop function fn_get_dirs(varchar);
create or replace function fn_get_dirs(name varchar)
----------------------------------------------------------------------------------------------------- 13.获取目录编码过滤条件 *
-- drop function fn_get_dir_similar(varchar);
create or replace function fn_get_dir_similar(name varchar)
returns varchar as $$
    declare
        code varchar;
        str  varchar := '';
    begin
        for code in execute 'select code from lf.sys_dir where name=''' || name || '''' loop
            str := str || ' or depcode like ''' || code || '%''';
            str := str || '|' || code;
        end loop;
        
        if length(str) > 0 then
            return substr(str, 5);
            return substr(str, 1);
        end if;
        
        return '1=1';
    end;
$$ language plpgsql;
select * from lf.sys_meta where depcode similar to '(00|01|02)%';
select fn_get_dirs('基础测绘'); select fn_get_dirs('测量(ESV)'); select * from lf.sys_meta where depcode like '0000%';
----------------------------------------------------------------------------------------------------- 14.FME日志表触发器
-- drop function fn_meta_insert();
data/update.sql
@@ -241,16 +241,18 @@
-- 项目表
select a.*,st_astext(geom) from bs.bs_project a;
-- 按项目统计数据
select name "名称", (select count(*) from lf.sys_meta b where b.dircode like a.code || '%') "文件数",
    (select count(sizes) from lf.sys_meta b where b.dircode like a.code || '%') "数量(MB)"
    (select sum(sizes) from lf.sys_meta b where b.dircode like a.code || '%') "数量(MB)"
from lf.sys_dir a where id > 1 and pid = 0;
-- 按文件类型统计
select type,count(*),count(sizes) from lf.sys_meta group by type;
select type,count(*),sum(sizes) from lf.sys_meta group by type;
-- type类型:1-Shp文件,2-专题图,3-源数据,4-业务数据,5-管道分析,6-统计报告
select * from lf.sys_download;
@@ -280,7 +282,36 @@
-- 登录次数
select b.uname, count(*) from lf.sys_login a inner join lf.sys_user b on a.userid = b.id group by uname;
-- 按照大类统计
select name,
    (select count(b.id) from lf.sys_meta b where dircode similar to '(' || (select string_agg(code, '|') from lf.sys_dir c where c.name = a.name) || ')%') "count",
    (select coalesce(sum(b.sizes), 0) from lf.sys_meta b where dircode similar to '(' || (select string_agg(code, '|') from lf.sys_dir c where c.name = a.name) || ')%') "sizes"
from lf.sys_dir a
where name in ('基础测绘', '基础地灾', '基础勘察', '合规数据', '管理数据', '测量(ESV)', '勘察(EGE)', '地灾(EGD)', '洞库(EGD)')
group by name
order by name;
--------------------------------------------------------- 
select (select string_agg(code, ',') from lf.sys_dir where name = a.name) "key", name "value"
from lf.sys_dir a
where name in ('基础地灾', '基础勘察', '合规数据', '管理数据', '测量(ESV)', '勘察(EGE)', '地灾(EGD)', '洞库(EGD)')
group by name
order by key;
select * from lf.sys_dir order by id
update lf.sys_dir set code=null;
select fn_set_tab_codes(0, 2);
select id,pid,name,code from lf.sys_dir where pid=0 order by code
SELECT * from lf.sys_meta WHERE depcode similar to '(00|01|02)%';
select count(b.sizes) from lf.sys_meta b where dircode similar to '(' || (select string_agg(code, '|') from lf.sys_dir c where c.name = '西气东输四线天然气管道工程(吐鲁番-中卫)(00116BT02)') || ')%'
select count(b.sizes),count(*) from lf.sys_meta b where dircode similar to '(02)%' group by depcode
select sum(b.sizes),count(*) from lf.sys_meta b group by dircode;
-- 0100000000,02000000,030000,040100,0100000002,02000002,040102,0100000003,02000003,0100000001,02000001,040101,030001,01,02,02000001
select * from lf.sys_meta where dircode like '01%' or dircode like '02%' or dircode like '030000%'
  or dircode like '030001%' or dircode like '040100%' or dircode like '040101%' or dircode like '040102%';
src/main/resources/mapper/sys/ReportMapper.xml
@@ -80,7 +80,7 @@
    <!-- 数据量统计 -->
    <select id="countSizes" resultType="com.lf.server.entity.ctrl.CountEntity">
        select fn_get_fullname(depcode, 1) "m1", count(sizes) "sizes"
        select fn_get_fullname(depcode, 1) "m1", sum(sizes) "sizes"
        from lf.sys_meta
        group by depcode
        order by depcode;