管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2023-02-16 3926afb2eff19ed3860c87b91d9c5f87ffc0c0dc
1
已修改6个文件
155 ■■■■ 文件已修改
data/db_fn.sql 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data/update.sql 92 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/controller/all/BaseQueryController.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/mapper/all/BaseQueryMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/all/BaseQueryService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/all/BaseQueryMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data/db_fn.sql
@@ -86,7 +86,7 @@
) select name from rs order by code;*/
----------------------------------------------------------------------------------------------------- 04.查询用户名
-- execute format('select uname from lf.sys_user where id = %s', id) into str;
-- drop function fn_uname(id integer);
-- drop function fn_uname(integer);
create or replace function fn_uname(id integer)
returns varchar as $$
  declare
@@ -104,7 +104,7 @@
select fn_uname(null); select fn_uname(1);
----------------------------------------------------------------------------------------------------- 05.查询版本名
-- drop function fn_ver(id integer);
-- drop function fn_ver(integer);
create or replace function fn_ver(id integer)
returns varchar as $$
  declare
@@ -122,7 +122,7 @@
select fn_ver(0);
----------------------------------------------------------------------------------------------------- 06.递归查询ID数组
-- drop function fn_rec_array(id integer, tab varchar);
-- drop function fn_rec_array(integer, varchar);
create or replace function fn_rec_array(id integer, tab varchar)
returns integer[] as $$
  declare
@@ -144,6 +144,7 @@
select fn_rec_array(1, 'dep'); select fn_rec_array(10, 'dir');
select * from lf.sys_user a where a.depid = ANY(fn_rec_array(15,'dep'));
----------------------------------------------------------------------------------------------------- 07.获取实体名
-- drop function fn_get_entity(varchar);
create or replace function fn_get_entity(tab varchar)
returns varchar as $$
  declare
@@ -277,9 +278,9 @@
create or replace function fn_set_tab_codes(pid integer, genre integer)
returns integer as $$
    declare
        cc    integer;
        rid   integer;
        code  varchar;
        cc    integer := 0;
        tab   varchar := 'dep';
    begin
        if (pid is null or genre is null) then
@@ -298,13 +299,14 @@
            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);
            cc := cc + fn_set_tab_codes(rid, genre);
        end loop;
        
        return 1;
        return cc;
    end;
$$ language plpgsql;
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.FME日志表触发器
-- drop function fn_meta_insert();
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,7 @@
select * from lf.sys_meta where substr(path,1,2) = '2\';
--------------------------------------------------------- 更新内容 ---------------------------------------------------------
bd.* 140,bs.* 284,lf.* 34,md.* 64
--------------------------------------------------------- 01 lf.sys_dep
-- alter sequence lf.sys_meta_id_seq restart with 1;
update lf.sys_operate set modular2='源数据管理' where modular2='元数据';
@@ -109,11 +110,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 +127,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 +141,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 +153,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 +172,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 +188,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,17 +198,67 @@
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 修改表结构
-- 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 count(*) from bd.b_borehole;
select gid,depid,dirid,verid from bd.b_borehole; -- 357824
select * from lf.sys_dir where id=0;
select * from lf.sys_dep where id=0;
select gid,depid,dirid from bd.b_borehole limit 10;
select gid,depid,dirid from bd.dlg_agnp limit 10;
select gid,depid,dirid from bd.dlg_25w_resa limit 10;
select gid,depid,dirid from bd.dlg_25w_boul limit 10;
---------------------------------------------------------
-- 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 (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;
src/main/java/com/lf/server/controller/all/BaseQueryController.java
@@ -554,29 +554,4 @@
            return fail(ex.getMessage(), null);
        }
    }
    @SysLog()
    @ApiOperation(value = "查询字典表并统计记录")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "depcode", value = "单位编码", dataType = "String", paramType = "query", example = "00"),
            @ApiImplicitParam(name = "dirs", value = "目录编码", dataType = "String", paramType = "query", example = "00,01"),
            @ApiImplicitParam(name = "name", value = "名称", dataType = "String", paramType = "query", example = ""),
            @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "Integer", paramType = "query", example = "10"),
            @ApiImplicitParam(name = "pageIndex", value = "分页数(从1开始)", dataType = "Integer", paramType = "query", example = "1")
    })
    @GetMapping(value = "/selectTabCount")
    public ResponseMsg<Object> selectTabCount(String depcode, String dirs, String name, Integer pageSize, Integer pageIndex) {
        try {
            if (pageSize < 1 || pageIndex < 1) {
                return fail("每页页数或分页数小于1", null);
            }
            dirs = DataLibService.copeCodes(dirs, "dirid");
            List<DictEntity> list = baseQueryService.selectTabCount(depcode, dirs, name, pageSize, pageSize * (pageIndex - 1));
            return success(list);
        } catch (Exception ex) {
            return fail(ex.getMessage(), null);
        }
    }
}
src/main/java/com/lf/server/mapper/all/BaseQueryMapper.java
@@ -116,16 +116,4 @@
     * @return
     */
    public List<KeyValueEntity> selectProject();
    /**
     * 查询字典表并统计记录
     *
     * @param depcode
     * @param dirs
     * @param name
     * @param limit
     * @param offset
     * @return
     */
    public List<DictEntity> selectTabCount(String depcode, String dirs, String name, Integer limit, Integer offset);
}
src/main/java/com/lf/server/service/all/BaseQueryService.java
@@ -276,12 +276,4 @@
    public List<KeyValueEntity> selectProject() {
        return baseQueryMapper.selectProject();
    }
    @Override
    public List<DictEntity> selectTabCount(String depcode, String dirs, String name, Integer limit, Integer offset) {
        depcode = StringHelper.getRightLike(depcode);
        name = StringHelper.getLikeStr(name);
        return baseQueryMapper.selectTabCount(depcode, dirs, name, limit, offset);
    }
}
src/main/resources/mapper/all/BaseQueryMapper.xml
@@ -80,8 +80,4 @@
    <select id="selectProject" resultType="com.lf.server.entity.ctrl.KeyValueEntity">
        select cast(id as varchar) "key",name "value" from lf.sys_dir where pid = 0 and id > 1
    </select>
    <select id="selectTabCount" resultType="com.lf.server.entity.data.DictEntity">
        select fn_tab_count(#{name}, #{dirs}, #{depid});
    </select>
</mapper>