管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2023-02-13 06492d128df5d7d0905539dd04faa9d475e9de59
1
已修改6个文件
275 ■■■■ 文件已修改
data/db_fn.sql 147 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data/db_tab.sql 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data/ts.sql 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data/update.sql 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/controller/data/MetaController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/entity/data/DirEntity.java 41 ●●●● 补丁 | 查看 | 原始文档 | 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;
    }