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