管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2023-02-21 60a470582d8ddf5d45441d6f73bdac235ecfc40f
data/update.sql
@@ -1,4 +1,4 @@
--------------------------------------------------------- 补充字段 ---------------------------------------------------------
--------------------------------------------------------- 补充字段
-- alter table lf.sys_meta rename column bstab to tab; alter table lf.sys_meta drop column mdtab;
alter table lf.sys_fme_log add column create_time timestamp(6) without time zone default now();
alter table lf.sys_meta add column layer varchar(50);
@@ -99,6 +99,12 @@
select * from lf.sys_meta where substr(path,1,2) = '2\';
--------------------------------------------------------- 更新内容 ---------------------------------------------------------
bd.* 140,bs.* 284,lf.* 34,md.* 64
--------------------------------------------------------- 00 lf.sys_dict
update lf.sys_dict set type='integer' where field='gid' and type='double';
update lf.sys_dict set type='integer' where field='verid' and type='double';
update lf.sys_dict set type='integer' where field='createuser' and type='text';
update lf.sys_dict set type='integer' where field='updateuser' and type='text';
--------------------------------------------------------- 01 lf.sys_dep
-- alter sequence lf.sys_meta_id_seq restart with 1;
update lf.sys_operate set modular2='源数据管理' where modular2='元数据';
@@ -109,11 +115,11 @@
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 fn_set_tab_codes(1, 1);
select id,pid,name,code,level,order_num from lf.sys_dep where code is not null order by code;
select * from lf.sys_dep order by id;
select id,pid,name,code,level,order_num,bak from lf.sys_dep where code is not null order by code;
--------------------------------------------------------- 02 lf.sys_dir
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);
@@ -126,8 +132,13 @@
alter table lf.sys_dir add column code varchar(24);
comment on column lf.sys_dir.exts is '扩展名';
comment on column lf.sys_dir.checks is '检查项';
select fn_set_tab_codes(0, 2);
select id,pid,name,code,level,order_num from lf.sys_dir where code is not null order by code;
select id,checks,replace(checks,chr(10),'') from lf.sys_dir where position(chr(10) in checks) > 0;
update lf.sys_dir set checks = replace(checks,chr(10),'') where position(chr(10) in checks) > 0; -- 替换回车键
select * from lf.sys_dir order by id;
select id,pid,name,code,level,order_num,checks,exts from lf.sys_dir where code is not null order by code;
--------------------------------------------------------- 03 lf.sys_user
alter table lf.sys_user add column depcode varchar(24);
comment on column lf.sys_user.depcode is '单位编码';
@@ -135,6 +146,7 @@
update lf.sys_user a set depcode = (select code from lf.sys_dep b where b.id = a.depid);
select * from lf.sys_user order by id;
select id,uname,depid,depcode from lf.sys_user order by id;
--------------------------------------------------------- 04 lf.sys_meta
alter table lf.sys_meta add column depcode varchar(24) default '00';
alter table lf.sys_meta add column dircode varchar(24) default '00';
@@ -146,6 +158,12 @@
alter table lf.sys_meta drop column depid;
alter table lf.sys_meta drop column dirid;
-- drop index if exists lf.idx_sys_meta_depcode;
create index idx_sys_meta_depcode on lf.sys_meta (depcode);
-- drop index if exists lf.idx_lf_sys_meta_dircode;
create index idx_lf_sys_meta_dircode on lf.sys_meta (dircode);
select id,name,depcode,dircode,type from lf.sys_meta order by id;
--------------------------------------------------------- 05 lf.sys_flow
@@ -159,9 +177,9 @@
update lf.sys_apply set depids = '000204,000205,000206' where depids = '20,21,22';
update lf.sys_apply set depids = '000205,000206' where depids = '21,22';
select * from lf.sys_dep where id in (20,21,22)
select * from lf.sys_dep where id in (20,21,22);
select * from lf.sys_apply;
--------------------------------------------------------- 07 bd.dlg_agnp
--------------------------------------------------------- 07 bd.dlg_agnp *
alter table bd.dlg_agnp alter column depid type varchar(24);
alter table bd.dlg_agnp alter column dirid type varchar(24);
@@ -175,13 +193,6 @@
--------------------------------------------------------- 08 lf.sys_role
update lf.sys_role set is_admin = 2 where position('数据管理员' in descr) > 0;
select * from lf.sys_role;
---------------------------------------------------------
select * from lf.sys_user limit 10;
select * from lf.sys_dep where id=0
select * from lf.sys_res;
select * from lf.sys_ver;
select c.* from lf.sys_role a inner join lf.sys_role_user b on a.id = b.roleid
inner join lf.sys_user c on b.userid = c.id
where a.is_admin = 2 and c.depcode = '000204'
@@ -192,30 +203,135 @@
where a.is_admin = 2 and a.depid = 20
order by c.id limit 1;
select * from lf.sys_download where guid = '5f0d5b61ca8cd79a07502f308c2f4dcc';
select * from lf.sys_user;
select * from lf.sys_role;
--------------------------------------------------------- 09
select * from lf.sys_dir
select * from lf.sys_meta order by id desc limit 10; --1062,1398
select * from lf.sys_fme_log order by id desc;
select * from bs.m_marker where parentid = '1caa28e2-b911-40e1-bfc5-4959a927cdd1';
with rs as (select code from lf.sys_dir where name='西气东输四线天然气管道工程(吐鲁番-中卫)(00116DT02)')
select fn_rec_query(a.dirid,'dir'),a.* from lf.sys_meta a where dirid = ANY(fn_rec_array((select id from rs), 'dir'));
select a.*,fn_uname(a.create_user) uname,fn_get_fullname(a.depcode, 1) depName,fn_ver(a.verid) verName,fn_get_fullname(a.dircode, 2) dirName
from lf.sys_meta a where a.dircode like (select code from lf.sys_dir where name='西气东输四线天然气管道工程(吐鲁番-中卫)(00116DT02)') || '%';
select * from lf.sys_report order by code
select * from lf.sys_layer
-- 项目表
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)"
from lf.sys_dir a where id > 1 and pid = 0;
-- 按文件类型统计
select type,count(*),count(sizes) from lf.sys_meta group by type;
-- type类型:1-Shp文件,2-专题图,3-源数据,4-业务数据,5-管道分析,6-统计报告
select * from lf.sys_download;
select * from lf.sys_serve_log
-- 按照专业统计
select code , name "value" from lf.sys_dir a
        where name in ('测量(ESV)', '勘察(EGE)', '地灾(EGD)', '洞库(EGD)') group by name order by name;
select * from lf.sys_meta
where dircode like '040000%' or dircode like '0100000000%' or dircode like '02000000%' or dircode like '030000%';
-- 数据申请
select * from lf.sys_apply a inner join lf.sys_user b on a.userid = b.id
-- 访问次数
select modular1,count(*) from lf.sys_operate group by modular1 order by modular1;
-- 按单位统计
select name,code,(select count(*) from lf.sys_meta b where b.depcode like a.code || '%'),
   (select count(sizes) from lf.sys_meta b where b.depcode like a.code || '%')
from lf.sys_dep a where name in ('测绘室','勘察室','地灾专业','洞库专业');
---------------------------------------------------------
-- 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%';
select code "key",name "value" from lf.sys_dir where pid = 1;
select code "key", name "value" from lf.sys_dir where pid = 0 and id > 1;
select code "key", name "value" from lf.sys_dir where pid = 1;
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 name;
select count(*) from bd.dlg_25w_aanp where 1 = 1
select a.*, fn_tab_count(a.ns, a.tab, '1=1') "rows" from
(select distinct ns,tab,fn_get_entity(tab) entity,tab_desc,tableType from lf.sys_dict
order by tab
limit 10 offset 0) a
select dirid,depid from bd.dlg_25w_resa group by dirid,depid
select * from lf.sys_dict where tab='dlg_25w_resa'
--------------------------------------------------------- A0 修改表结构
-- drop function fn_alter_tab_fields();
create or replace function fn_alter_tab_fields()
returns integer as $$
     declare
      rec record;
      tn  varchar;
      cc  integer := 0;
     begin
      for rec in (select ns, tab from lf.sys_dict group by ns, tab order by ns, tab)
      loop
         raise notice 'ns = %, tab = %.', rec.ns, rec.tab;
         tn := rec.tab;
         if length(tn) > 32 then
            tn := replace(tn, 'standard_frozen_depth_', 's_f_d_');
            tn := replace(tn, 'general_report_on_', 'g_r_o_');
            tn := replace(tn, 'prevention_and_control_', 'p_a_c_');
            tn := replace(tn, 'water_curtain_roadway_', 'w_c_r_');
         end if;
         execute format('alter table %s.%s alter column %s type varchar(24)', rec.ns, rec.tab, 'depid');
         execute format('alter table %s.%s alter column %s type varchar(24)', rec.ns, rec.tab, 'dirid');
         execute format('update %s.%s a set depid = (select code from lf.sys_dep b where b.id = cast(a.depid as integer))', rec.ns, rec.tab);
         execute format('update %s.%s a set dirid = (select code from lf.sys_dir b where b.id = cast(a.dirid as integer))', rec.ns, rec.tab);
         --execute format('drop index if exists %s.idx_%s_depid', rec.ns, rec.tab);
            execute format('create index idx_%s_depid on %s.%s (depid)', tn, rec.ns, rec.tab);
         --execute format('drop index if exists %s.idx_%s_dirid', rec.ns, rec.tab);
            execute format('create index idx_%s_dirid on %s.%s (dirid)', tn, rec.ns, rec.tab);
         cc := cc + 1;
      end loop;
      return cc;
     end;
$$ language plpgsql;
select fn_alter_tab_fields();
select gid,depid,dirid from bd.b_borehole limit 10;
select depid,dirid from bd.dlg_agnp group by depid,dirid;
select depid,dirid from bd.dlg_25w_resa group by depid,dirid;
select depid,dirid from bd.dlg_25w_boul group by depid,dirid;
select * from lf.sys_dict where tab='dlg_25w_boul';
---------------------------------------------------------