data/db_fn.sql | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
data/db_tab.sql | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
data/ts.sql | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
data/update.sql | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/controller/data/MetaController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/entity/data/DirEntity.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
data/db_fn.sql
@@ -158,23 +158,7 @@ $$ language plpgsql; select fn_get_entity('dlg_25w_boua_s'); ----------------------------------------------------------------------------------------------------- 08.FME日志触发器 create or replace function fn_meta_insert() returns trigger as $$ begin update lf.sys_meta set tab = new.pg_ns || '.' || new.tcdm, layer = new.tcmc, rows = new.count where eventid = new.parentid; return new; end; $$ language plpgsql; create or replace trigger fme_log_trigger after insert on lf.sys_fme_log for each row execute procedure fn_meta_insert(); select * from lf.sys_meta; /*insert into lf.sys_fme_log (parentid,dirpath,pg_ns,tcmc,tcdm,count) values ('8fb3c3dd-6a12-488d-80ae-a93cc7e8b2e3','','bs','中线成果表','m_pipelinepoint',0); select * from bs.m_pipelinepoint where parentid='8fb3c3dd-6a12-488d-80ae-a93cc7e8b2e3';*/ ----------------------------------------------------------------------------------------------------- 09.查询字典表并统计记录 ----------------------------------------------------------------------------------------------------- 08.查询字典表并统计记录 -- drop function fn_tab_count(varchar, varchar, varchar, integer); create or replace function fn_tab_count(ns varchar, tab varchar, dirs varchar, depid integer) returns integer as $$ @@ -208,9 +192,9 @@ select fn_rec_array(1, 'dep') select count(*) from lf.sys_meta where depid = ANY(fn_rec_array(1, 'dep')); select count(*) from bd.dlg_25w_lrdl where depid = ANY(fn_rec_array(1, 'dep')); ----------------------------------------------------------------------------------------------------- 10.10进制转62进制 -- drop function fn_10to62(numeric); create or replace function fn_10to62(num numeric(30, 0)) ----------------------------------------------------------------------------------------------------- 09.10进制转62进制 -- drop function fn_10_to_62(numeric); create or replace function fn_10_to_62(num numeric(30, 0)) returns varchar as $$ declare rs varchar; @@ -230,10 +214,10 @@ end; $$ language plpgsql; select fn_10to62(3843); select fn_10to62(0); select fn_10to62(3844); ----------------------------------------------------------------------------------------------------- 11.62进制转10进制 -- drop function fn_62to10(numeric); create or replace function fn_62to10(ch varchar) select fn_10_to_62(3843); select fn_10_to_62(0); select fn_10_to_62(3844); ----------------------------------------------------------------------------------------------------- 10.62进制转10进制 -- drop function fn_62_to_10(varchar); create or replace function fn_62_to_10(ch varchar) returns numeric as $$ declare rs numeric(30, 0); @@ -249,8 +233,119 @@ end; $$ language plpgsql; select fn_62to10('zz'); select fn_62to10('0'); select fn_62to10('100'); ----------------------------------------------------------------------------------------------------- 12.路径分析 select fn_62_to_10('zz'); select fn_62_to_10('0'); select fn_62_to_10('100'); ----------------------------------------------------------------------------------------------------- 11.获取下一个编码 -- drop function fn_get_next_code(integer, integer); create or replace function fn_get_next_code(pid integer, genre integer) returns varchar as $$ declare cc integer; code varchar; pcode varchar; tab varchar := 'dep'; begin if (pid is null or genre is null) then return '00'; end if; if genre = 2 then tab := 'dir'; end if; execute 'select code from lf.sys_' || tab || ' where id = ' || pid into pcode; if pcode is null then pcode := ''; end if; for ii in 0..3843 loop code := fn_10_to_62(ii); if length(code) = 1 then code := '0' || code; end if; execute 'select count(*) from lf.sys_' || tab || ' where pid = ' || pid || ' and code = ''' || pcode || code || '''' into cc; if cc = 0 then return pcode || code; end if; end loop; return pcode || '00'; end; $$ language plpgsql; select fn_get_next_code(0, 1); select fn_get_next_code(0, 2); ----------------------------------------------------------------------------------------------------- 12.设置表的编码:1-单位,2-目录 -- drop function fn_set_tab_codes(integer, integer); create or replace function fn_set_tab_codes(pid integer, genre integer) returns integer as $$ declare cc integer; rid integer; code varchar; tab varchar := 'dep'; begin if (pid is null or genre is null) then return 0; end if; if genre = 2 then tab := 'dir'; end if; execute 'select count(*) from lf.sys_' || tab || ' where pid = ' || pid into cc; if cc = 0 then return 0; end if; for rid in execute 'select id from lf.sys_' || tab || ' where code is null and pid = ' || pid || ' order by order_num' loop code := fn_get_next_code(pid, genre); execute 'update lf.sys_' || tab || ' set code = ''' || code || ''' where id = ' || rid; cc := fn_set_tab_codes(rid, genre); end loop; return 1; end; $$ language plpgsql; select fn_set_tab_codes(1, 1); select fn_set_tab_codes(0, 2); ----------------------------------------------------------------------------------------------------- 13.FME日志表触发器 -- drop function fn_meta_insert(); create or replace function fn_meta_insert() returns trigger as $$ begin update lf.sys_meta set tab = new.pg_ns || '.' || new.tcdm, layer = new.tcmc, rows = new.count where eventid = new.parentid; return new; end; $$ language plpgsql; -- drop trigger fme_log_trigger on lf.sys_fme_log; create or replace trigger fn_fme_log_trigger after insert on lf.sys_fme_log for each row execute procedure fn_meta_insert(); select * from lf.sys_meta; /*insert into lf.sys_fme_log (parentid,dirpath,pg_ns,tcmc,tcdm,count) values ('8fb3c3dd-6a12-488d-80ae-a93cc7e8b2e3','','bs','中线成果表','m_pipelinepoint',0); select * from bs.m_pipelinepoint where parentid='8fb3c3dd-6a12-488d-80ae-a93cc7e8b2e3';*/ ----------------------------------------------------------------------------------------------------- 14.单位表触发器 -- drop function fn_dep_insert(); create or replace function fn_dep_insert() returns trigger as $$ begin update lf.sys_dep set code = fn_get_next_code(new.pid, 1) where id = new.id; return new; end; $$ language plpgsql; -- drop trigger fn_dep_trigger on lf.sys_dep; create or replace trigger fn_dep_trigger after insert on lf.sys_dep for each row execute procedure fn_dep_insert(); select * from lf.sys_dep where pid = 0 order by id; /*insert into lf.sys_dep (pid,name,level,order_num) values (0,'新单位',1,2); delete from lf.sys_dep where pid = 0 and id > 1;*/ ----------------------------------------------------------------------------------------------------- 15.目录表触发器 ----------------------------------------------------------------------------------------------------- 16.路径分析 -- 删除已存在的函数 drop function pgr_fromAtoB(varchar, double precision, double precision, double precision, double precision); data/db_tab.sql
@@ -50,7 +50,7 @@ pid integer, name varchar(150), sname varchar(50), code varchar(50), code varchar(24), uncode varchar(50), addr varchar(300), contact varchar(50), @@ -97,9 +97,11 @@ id serial primary key, pid integer, name varchar(150), code varchar(50), exts varchar(200), descr varchar(1024), level integer, checks varchar(100), code varchar(24), order_num integer, create_user integer, create_time timestamp(6) without time zone default now(), @@ -114,6 +116,8 @@ comment on column lf.sys_dir.code is '目录编码'; comment on column lf.sys_dir.descr is '目录说明'; comment on column lf.sys_dir.level is '层级:0-根节点'; comment on column lf.sys_dir.checks is '检查项'; comment on column lf.sys_dir.code is '编码'; comment on column lf.sys_dir.order_num is '排序号'; comment on column lf.sys_dir.create_user is '创建人ID'; comment on column lf.sys_dir.create_time is '创建时间'; @@ -540,7 +544,7 @@ --insert into lf.sys_role_menu_auth (roleid,menu_auth_id) values (1,1); select * from lf.sys_role_menu_auth; ----------------------------------------------------------------------------------------------------- 16.元数据表 ----------------------------------------------------------------------------------------------------- 16.源数据表 -- DROP TABLE IF EXISTS lf.sys_meta; create table lf.sys_meta ( id serial primary key, @@ -566,7 +570,7 @@ ); -- drop index index_sys_meta_geom; create index index_sys_meta_geom on lf.sys_meta using GIST (geom); comment on table lf.sys_meta is '元数据表'; comment on table lf.sys_meta is '源数据表'; comment on column lf.sys_meta.id is '主键ID'; comment on column lf.sys_meta.eventid is 'GUID'; comment on column lf.sys_meta.metaid is '父元数据ID:0-没有'; data/ts.sql
@@ -106,33 +106,8 @@ -- 密码:test@12345_lf select * from lf.sys_user where id in (47,48,49); select * from lf.sys_download; ----------------------------------------------------------------------- ----------------------------------------------------------------------- 统计报告 -- alter sequence lf.sys_dict_id_seq restart with 11118; select * from bs.m_marker where parentid is not null; -- delete from bs.m_marker; createtime select * from bs.m_hydraulic_protection; insert into lf.sys_fme_log (pg_ns,tcdm,create_time) values ('bs','m_marker',20230206132933); delete lf.sys_fme_log where id = 99; select * from lf.sys_meta where type in ('xls', 'xlsx') and eventid is not null and tab is not null and rows > 0 and id in (1209,1180,1387); select * from lf.sys_attach order by id desc; select * from lf.sys_dir where id = 74; select * from lf.sys_dict where field='gid'; select field,type,count(*) from lf.sys_dict where field='gid' group by field,type; update lf.sys_dict set type='integer' where field='updateuser'; select * from lf.sys_layer; alter sequence lf.sys_layer_id_seq restart with 1; select * from lf.sys_menu where position('http:' in url)>0; select * from bd.b_hydrogeology_attach limit 1; select * from bd.b_pac_hydrogeology limit 1; select * from lf.sys_serve_log; select * from lf.sys_meta; select * from lf.sys_operate order by id desc limit 20; select * from lf.sys_report order by id; select * from lf.sys_attach order by id; select * from lf.sys_download order by id desc; select fn_rec_query(depid, 'dep') "m1", count(sizes) "sizes" from lf.sys_meta group by depid @@ -147,10 +122,18 @@ from lf.sys_operate group by modular1,modular2 order by modular1 desc,modular2; ----------------------------------------------------------------------- select * from lf.sys_menu where position('http:' in url)>0; select * from bs.m_marker where parentid is not null; -- delete from bs.m_marker; createtime select * from bs.m_hydraulic_protection; select * from lf.sys_operate where modular2 = '' or modular2 = '2' or modular2 is null; delete from lf.sys_operate where modular2 = '' or modular2 = '2' or modular2 is null; select * from lf.sys_report select * from lf.sys_layer where url is not null; data/update.sql
@@ -98,16 +98,32 @@ select fn_rec_query(a.dirid,'dir'),a.* from lf.sys_meta_new a where dirid = ANY(fn_rec_array((select id from rs), 'dir')); select * from lf.sys_meta where substr(path,1,2) = '2\'; --------------------------------------------------------- alter sequence lf.sys_meta_id_seq restart with 1; update lf.sys_operate set modular2='源数据管理' where modular2='元数据'; delete from lf.sys_dep where id = 59; update lf.sys_dep set bak = null where bak = ' '; update lf.sys_dep set code = null; update lf.sys_dep set code = '00' where pid = 0; update lf.sys_dep set level = level + 1; alter table lf.sys_dep alter column code type varchar(24); select id,pid,name,code,level,order_num from lf.sys_dep where code is not null order by code; --------------------------------------------------------- select * from lf.sys_fme_log; select * from lf.sys_dir order by id; alter table lf.sys_dir alter column code type varchar(200); alter table lf.sys_dir rename column code to exts; alter table lf.sys_dir alter column bak type varchar(100); alter table lf.sys_dir rename column bak to checks; alter table lf.sys_dir add column bak varchar(1024); update lf.sys_dir set bak=checks where checks is not null and position('check' in checks)=0; update lf.sys_dir set checks=null where position('check' in checks)=0; alter table lf.sys_dir add column code varchar(24); select id,pid,name,code,level,order_num from lf.sys_dir where code is not null order by code; --------------------------------------------------------- select * from lf.sys_meta; -- delete from lf.sys_meta where id> 31; -- delete from lf.sys_meta; -- alter sequence lf.sys_meta_id_seq restart with 1; src/main/java/com/lf/server/controller/data/MetaController.java
@@ -41,7 +41,7 @@ * 元数据 * @author WWW */ @Api(tags = "数据管理\\元数据") @Api(tags = "数据管理\\源数据管理") @RestController @RequestMapping("/meta") public class MetaController extends BaseController { src/main/java/com/lf/server/entity/data/DirEntity.java
@@ -2,20 +2,16 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; import java.sql.Timestamp; /** * sys_dir * @author sws * @date 2022-09-24 * 目录 * @author WWW */ @Data @AllArgsConstructor @NoArgsConstructor public class DirEntity implements Serializable { private static final long serialVersionUID = -2184993363389504088L; @@ -25,7 +21,7 @@ private String name; private String code; private String exts; private String descr; @@ -41,9 +37,16 @@ private Timestamp updateTime; private String checks; private String bak; private String code; private String fullName; public DirEntity() { } public int getId() { return id; @@ -69,12 +72,12 @@ this.name = name; } public String getCode() { return code; public String getExts() { return exts; } public void setCode(String code) { this.code = code; public void setExts(String exts) { this.exts = exts; } public String getDescr() { @@ -133,6 +136,14 @@ this.updateTime = updateTime; } public String getChecks() { return checks; } public void setChecks(String checks) { this.checks = checks; } public String getBak() { return bak; } @@ -141,6 +152,14 @@ this.bak = bak; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getFullName() { return fullName; }