From 79454ce9fbb025d35b7b28144bc9306cf9e546e3 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期六, 25 二月 2023 15:24:33 +0800 Subject: [PATCH] 1 --- src/main/resources/mapper/sys/ReportMapper.xml | 2 +- data/db_fn.sql | 11 ++++++----- data/db_cx.sql | 7 ++----- data/update.sql | 35 +++++++++++++++++++++++++++++++++-- 4 files changed, 42 insertions(+), 13 deletions(-) diff --git a/data/db_cx.sql b/data/db_cx.sql index 452884d..0f8cc35 100644 --- a/data/db_cx.sql +++ b/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 ('娴嬮噺锛圗SV锛�','鍕樺療锛圗GE锛�','鍦扮伨锛圗GD锛�','娲炲簱锛圗GD锛�') 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 ('娴嬮噺锛圗SV锛�','鍕樺療锛圗GE锛�','鍦扮伨锛圗GD锛�','娲炲簱锛圗GD锛�') 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 ('鍩虹娴嬬粯', '鍩虹鍦扮伨', '鍩虹鍕樺療', '鍚堣鏁版嵁', '绠$悊鏁版嵁', '娴嬮噺锛圗SV锛�', '鍕樺療锛圗GE锛�', '鍦扮伨锛圗GD锛�', '娲炲簱锛圗GD锛�') @@ -340,3 +335,5 @@ + + diff --git a/data/db_fn.sql b/data/db_fn.sql index 451b41a..d21420b 100644 --- a/data/db_fn.sql +++ b/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('娴嬮噺锛圗SV锛�'); select * from lf.sys_meta where depcode like '0000%'; ----------------------------------------------------------------------------------------------------- 14.FME鏃ュ織琛ㄨЕ鍙戝櫒 -- drop function fn_meta_insert(); diff --git a/data/update.sql b/data/update.sql index 5004155..1f1b23d 100644 --- a/data/update.sql +++ b/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 ('鍩虹娴嬬粯', '鍩虹鍦扮伨', '鍩虹鍕樺療', '鍚堣鏁版嵁', '绠$悊鏁版嵁', '娴嬮噺锛圗SV锛�', '鍕樺療锛圗GE锛�', '鍦扮伨锛圗GD锛�', '娲炲簱锛圗GD锛�') +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 ('鍩虹鍦扮伨', '鍩虹鍕樺療', '鍚堣鏁版嵁', '绠$悊鏁版嵁', '娴嬮噺锛圗SV锛�', '鍕樺療锛圗GE锛�', '鍦扮伨锛圗GD锛�', '娲炲簱锛圗GD锛�') +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%'; diff --git a/src/main/resources/mapper/sys/ReportMapper.xml b/src/main/resources/mapper/sys/ReportMapper.xml index 005a791..05118c6 100644 --- a/src/main/resources/mapper/sys/ReportMapper.xml +++ b/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; -- Gitblit v1.9.3