管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2023-03-01 89a6c7ac02621c592a8168ef857b44696d701250
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
--------------------------------------------------------- 补充字段
-- 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);
comment on column lf.sys_meta.layer is '图层';
select * from lf.sys_fme_log;
select * from lf.sys_meta order by guid,tab; -- delete from lf.sys_meta where id> 31;
-- delete from lf.sys_meta; alter sequence lf.sys_meta_id_seq restart with 1;
 
select * from lf.sys_token where create_time < '2023-01-10';
-- delete from lf.sys_token where create_time < '2023-01-10';
select * from lf.sys_operate where optime < '2023-01-10';
-- delete from lf.sys_operate where optime < '2023-01-10';
select * from lf.sys_login where optime < '2023-01-10';
-- delete from lf.sys_login where optime < '2023-01-10';
--------------------------------------------------------- 查询URL
select * from lf.sys_menu where position('http://' in url) > 0;
select url, replace(url, 'pipe.cppe.com', '{host}') from lf.sys_menu where position('http://' in url) > 0;
update lf.sys_menu set url = replace(url, 'pipe.cppe.com', '{host}') where position('http://' in url) > 0;
--------------------------------------------------------- 更新菜单+用户
select * from lf.sys_menu where cn_name = '数据库监控';
-- update lf.sys_menu set url = 'http://pipe.cppe.com:8088/server/druid/index.html' where cn_name = '数据库监控';
 
select * from lf.sys_user; -- Admin@1234_lf
-- update lf.sys_user set pwd = 'd4d25475a81ef4db4b28ce4034500f896169f15c0c68da5d';
 
select * from lf.sys_menu order by id;
update lf.sys_menu set url = 'http://pipe.cppe.com:88/dataxdi/#/schema/list?tags=入库质检&embed=true&theme=dark&lang=zh&token=' where cn_name = '入库质检';
update lf.sys_menu set url = 'http://pipe.cppe.com:88/dataxdi/#/schema/list?tags=成果质检&embed=true&theme=dark&lang=zh&token=' where cn_name = '成果质检';
update lf.sys_menu set url = 'http://pipe.cppe.com:88/dataxdi/#/task/list?embed=true&theme=dark&lang=zh&token=' where cn_name = '任务状态' and id = 69;
 
update lf.sys_menu set url = 'http://pipe.cppe.com:88/dataxdi/#/schema/list?tags=数据交换&embed=true&theme=dark&lang=zh&token=' where cn_name = '格式转换';
update lf.sys_menu set url = 'http://pipe.cppe.com:88/dataxdi/#/schema/list?tags=坐标转换&embed=true&theme=dark&lang=zh&token=' where cn_name = '坐标转换';
update lf.sys_menu set url = 'http://pipe.cppe.com:88/dataxdi/#/schema/list?tags=数据分发&embed=true&theme=dark&lang=zh&token=' where cn_name = '数据分发';
update lf.sys_menu set url = 'http://pipe.cppe.com:88/dataxdi/#/schema/list?tags=数据治理&embed=true&theme=dark&lang=zh&token=' where cn_name = '数据治理';
update lf.sys_menu set url = 'http://pipe.cppe.com:88/dataxdi/#/task/list?embed=true&theme=dark&lang=zh&token=' where cn_name = '任务状态' and id = 74;
 
update lf.sys_menu set url = 'http://pipe.cppe.com:88/resm/#/resourceManage?embed=true&theme=dark&lang=zh&token=' where cn_name = '我的资源';
update lf.sys_menu set url = 'http://pipe.cppe.com:88/resm/#/resapproval?embed=true&theme=dark&lang=zh&token=' where cn_name = '资源审核';
--------------------------------------------------------- FME_数据质检
select * from lf.sys_menu where cn_name = '入库质检';
update lf.sys_menu set url = 'http://10.7.0.186:88/dataxdi/#/schema/list?tags=入库质检&embed=true&token=' where cn_name = '入库质检';
 
select * from lf.sys_menu where cn_name = '成果质检';
update lf.sys_menu set url = 'http://10.7.0.186:88/dataxdi/#/schema/list?tags=成果质检&embed=true&token=' where cn_name = '成果质检';
 
select * from lf.sys_menu where cn_name = '任务状态' and id = 69;
update lf.sys_menu set url = 'http://10.7.0.186:88/dataxdi/#/task/list?embed=true&token=' where cn_name = '任务状态' and id = 69;
--------------------------------------------------------- FME_数据交换
select * from lf.sys_menu where cn_name = '格式转换';
update lf.sys_menu set url = 'http://10.7.0.186:88/dataxdi/#/schema/list?tags=数据交换&embed=true&token=' where cn_name = '格式转换';
 
select * from lf.sys_menu where cn_name = '坐标转换';
update lf.sys_menu set url = 'http://10.7.0.186:88/dataxdi/#/schema/list?tags=坐标转换&embed=true&token=' where cn_name = '坐标转换';
 
select * from lf.sys_menu where cn_name = '数据分发';
update lf.sys_menu set url = 'http://10.7.0.186:88/dataxdi/#/schema/list?tags=数据分发&embed=true&token=' where cn_name = '数据分发';
 
select * from lf.sys_menu where cn_name = '数据治理';
update lf.sys_menu set url = 'http://10.7.0.186:88/dataxdi/#/schema/list?tags=数据治理&embed=true&token=' where cn_name = '数据治理';
 
select * from lf.sys_menu where cn_name = '任务状态' and id = 74;
update lf.sys_menu set url = 'http://10.7.0.186:88/dataxdi/#/task/list?embed=true&token=' where cn_name = '任务状态' and id = 74;
--------------------------------------------------------- FME_服务管理
select * from lf.sys_menu where cn_name = '我的资源';
update lf.sys_menu set url = 'http://10.7.0.186:88/resm/#/resourceManage?embed=true&token=' where cn_name = '我的资源';
 
select * from lf.sys_menu where cn_name = '资源审核';
update lf.sys_menu set url = 'http://10.7.0.186:88/resm/#/resapproval?embed=true&token=' where cn_name = '资源审核';
--------------------------------------------------------- 初始化元数据
insert into lf.sys_meta (name,dirid) values ('项目WBS导出.xlsx',57);
insert into lf.sys_meta (name,dirid) values ('00116BT02-CR001#ESV-DW-0101 封面.docx',62);
insert into lf.sys_meta (name,dirid) values ('00116BT02-CR001#ESV-DW-0101(大河沿河穿越地形图)0.dwg',62);
insert into lf.sys_meta (name,dirid) values ('00116BT02-CR001#ESV-DW-0101(大河沿河穿越地形图)0.dwl',62);
insert into lf.sys_meta (name,dirid) values ('00116BT02-CR001#ESV-DW-0101(大河沿河穿越地形图)0.dwl2',62);
insert into lf.sys_meta (name,dirid) values ('00116BT02-CR001#ESV-DW-0101(大河沿河穿越纵断面图)0.dwg',62);
insert into lf.sys_meta (name,dirid) values ('00116BT02-CR001#ESV-IN-0101(资料图纸目录).doc',62);
insert into lf.sys_meta (name,dirid) values ('1类.gdb',74);
insert into lf.sys_meta (name,dirid) values ('2类.gdb',74);
insert into lf.sys_meta (name,dirid) values ('易燃易爆.gdb',74);
insert into lf.sys_meta (name,dirid) values ('地面线.xlsx',64);
insert into lf.sys_meta (name,dirid) values ('控制点.xlsx',64);
insert into lf.sys_meta (name,dirid) values ('离散点.xlsx',64);
insert into lf.sys_meta (name,dirid) values ('平面图索引文件.xlsx',64);
insert into lf.sys_meta (name,dirid) values ('中线成果表.xlsx',64);
 
update lf.sys_meta set depid=1,type='file',path='2\'||name,sizes=1;
 
insert into lf.sys_meta (name,dirid) values ('S318 洛陕线穿越工程地质剖面图.dwg',80);
insert into lf.sys_meta (name,dirid) values ('地质剖面图索引表.xlsx',80);
insert into lf.sys_meta (name,dirid) values ('地质资料表.xlsx',80);
insert into lf.sys_meta (name,dirid) values ('勘探点坐标表.xlsx',80);
insert into lf.sys_meta (name,dirid) values ('土壤电阻率表.xlsx',80);
 
update lf.sys_meta set depid=1,type='file',path='2\'||name,sizes=1 where path is null;
 
with rs as (select id from lf.sys_dir where name='西气东输四线天然气管道工程(吐鲁番-中卫)(00116BT02)')
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\';
--------------------------------------------------------- 更新内容 ---------------------------------------------------------
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='元数据管理';
select modular1,modular2 from lf.sys_operate group by modular1,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 fn_set_tab_codes(1, 1);
 
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
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);
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,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 '单位编码';
 
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';
comment on column lf.sys_meta.depcode is '目录编码';
comment on column lf.sys_meta.dircode is '单位编码';
 
update lf.sys_meta a set depcode = (select code from lf.sys_dep b where b.id = a.depid);
update lf.sys_meta a set dircode = (select code from lf.sys_dir b where b.id = a.dirid);
 
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
alter table lf.sys_flow alter column depid type varchar(24);
alter table lf.sys_flow rename column depid to depcode;
 
update lf.sys_flow a set depcode = (select code from lf.sys_dep b where b.id = cast(a.depcode as integer));
 
select * from lf.sys_flow;
--------------------------------------------------------- 06 lf.sys_apply
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_apply;
--------------------------------------------------------- 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);
 
update bd.dlg_agnp a set depid = (select code from lf.sys_dep b where b.id = cast(a.depid as integer));
update bd.dlg_agnp a set dirid = (select code from lf.sys_dir b where b.id = cast(a.dirid as integer));
 
select * from bd.dlg_agnp limit 20;
select depid from bd.dlg_agnp where depid is not null and depid not like '000307%' group by depid order by depid;
select dirid from bd.dlg_agnp group by dirid order by dirid; select id, name, code from lf.sys_dir where id in (3, 0, 163) order by code;
select depid from bd.dlg_agnp group by depid order by depid; select id, name, code from lf.sys_dep where id in (1, 20, 21, 22, 38, 55) order by code;
--------------------------------------------------------- 08 lf.sys_role
update lf.sys_role set is_admin = 2 where position('数据管理员' in descr) > 0;
 
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'
order by c.id limit 1;
 
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 a.depid = 20
order by c.id limit 1;
 
select * from lf.sys_role;
--------------------------------------------------------- 09 lf.sys_dict 1810行
select * from lf.sys_dict where field in ('geom', 'gid', 'eventid', 'parentid');
 
update lf.sys_dict set showtype = 0 where field in ('geom', 'gid', 'eventid', 'parentid');
--------------------------------------------------------- 09 测试SQL
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 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 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(*),sum(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
inner join lf.sys_dep c on b.depid = c.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 ('测绘室','勘察室','地灾专业','洞库专业');
 
-- 服务统计
select * from lf.sys_serve_log;
 
-- 登录次数
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 ('基础测绘', '基础地灾', '基础勘察', '合规数据', '管理数据', '测量(ESV)', '勘察(EGE)', '地灾(EGD)', '洞库(EGD)')
group by name
order by name;
 
select name,
    (select count(b.id) from lf.sys_meta b where dircode similar to fn_dir_similar(a.name)) "count",
    (select coalesce(sum(b.sizes), 0) from lf.sys_meta b where dircode similar to fn_dir_similar(a.name)) "sizes"
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 similar to fn_dir_similar('基础测绘');
 
-- 单个项目的下载个数、下载次数和数据总量
select count(*) "下载个数", sum(c.dcount) "下载数量", round(sum(c.dcount * c.sizes)::numeric, 3) "数量总量(MB)"
from lf.sys_meta a inner join lf.sys_meta_down b on a.id = b.metaid
  inner join lf.sys_download c on b.downid = c.id
where dircode like '06%';
 
-- 按照输送介质统计
select 
  case medium when 'CPY' then '成品油' when 'TRQ' then '天然气' when 'YY' then '原油' else '其它' end "输送介质",
  round(sum(st_length(geom))::numeric, 2) "总里程",
  count(*) "管道数量",
  (select count(*) from bs.m_sitepoint b inner join bs.m_pipeline c on b.pipename = c.pipename where c.medium = a.medium) "站场数量",
  (select count(*) from bs.m_valvehousepoint d inner join bs.m_pipeline e on d.pipename = e.pipename where e.medium = a.medium) "阀室数量"
from bs.m_pipeline a
group by medium;
-- select * from lf.sys_domain where dom_name='dsg0016';
 
-- 所有项目的下载个数、下载次数和数据总量
with rs as (
  select a.dircode, c.dcount, c.sizes
  from lf.sys_meta a
    inner join lf.sys_meta_down b on a.id = b.metaid
    inner join lf.sys_download c on b.downid = c.id
)
select
  d.name "项目名称",
  (select count(*) from rs where rs.dircode like d.code || '%') "下载个数",
  (select coalesce(sum(rs.dcount), 0) from rs where rs.dircode like d.code || '%') "下载数量",
  (select round(coalesce(sum(rs.dcount * rs.sizes), 0)::numeric, 3) from rs where rs.dircode like d.code || '%') "数量总量(MB)"
from lf.sys_dir d
where pid = 0
order by d.code;
--------------------------------------------------------- 
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 key;
 
select * from lf.sys_meta order by id desc;
select * from lf.sys_download order by id desc;
select * from lf.sys_downlog order by id desc;
select * from lf.sys_meta_down order by id desc;
select downid,count(*),max(create_time) from lf.sys_downlog group by downid having count(*)>1;
--delete from lf.sys_download where id=324;
--delete from lf.sys_meta_down where downid=324;
select * from lf.sys_apply
 
select * from lf.sys_user order by id desc
select * from lf.sys_dep where id=36
 
select * from lf.sys_attach where guid in ('bbfcfb74cd4f31d755d2795f8da48bfe','deb91a0cfe0df67bb71b66c366cac043')
delete from lf.sys_attach where guid in ('bbfcfb74cd4f31d755d2795f8da48bfe','deb91a0cfe0df67bb71b66c366cac043')
select * from lf.sys_meta where guid='6bf9b041-29b6-465a-b247-b05d1b29e6f6'
 
select exts,checks from lf.sys_dir where code='0200000002'
select st_astext(geom) from bs.m_pipeline
select * from lf.sys_dir where pid=0 order by code
 
select ST_GeomFromText('MULTILINESTRING ((103.67272724 36.089968492,103.656203297 36.0911306690001,103.649390844 36.090980244,103.644883185 36.090890196,103.646134979 36.090610564,103.645396235 36.0890745,103.646101335 36.088113311,103.646058726 36.0876219790001,103.644862539 36.087707257,103.643858659 36.0875148540001,103.643004284 36.0873865610001,103.642171269 36.0872582700001,103.641487757 36.0871940860001,103.641081945 36.087065855,103.638583273 36.085014749,103.636468946 36.083583193,103.633756642 36.0816602260001,103.633180016 36.081232904,103.632475301 36.080485133,103.632112266 36.0801005660001,103.631685281 36.0791392150001,103.631172859 36.07815649,103.63072446 36.0774301180001,103.629784821 36.076511419,103.629357932 36.0751228280001,103.629913387 36.07471703,103.630404884 36.0737558100001,103.631451646 36.073243271,103.631900315 36.072773372,103.632156992 36.0711926220001,103.632541886 36.0693555450001,103.631346368 36.066471506,103.63299138 36.0652113830001,103.632564378 36.064314118,103.633291037 36.0624770910001,103.637050854 36.060533687,103.636496349 36.0567098110001,103.635172682 36.05378303,103.634363105 36.0444049980001,103.634112336 36.0408244560001,103.632404466 36.036646756,103.630809818 36.0355831750001,103.628645676 36.0340258140001,103.628228665 36.030911652,103.626293407 36.0247211440001,103.625078723 36.022632242,103.625344709 36.0218727440001,103.625041313 36.0201257620001,103.624813966 36.017923072,103.623181251 36.017277232,103.62230813 36.0160618470001,103.621093276 36.014732483,103.620030391 36.0130613490001,103.616119119 36.0130607900001,103.613764939 36.012262939,103.613158446 36.007439789,103.610386754 36.0057684110001,103.609855389 36.0045910520001,103.609361903 36.0038314440001,103.608109306 36.0014766990001,103.607425816 36.0013246950001,103.606666336 36.0013625610001,103.60465356 36.002159788,103.601768128 35.9996908800001,103.602110769 35.99577931,103.598240476 35.982372921,103.597330132 35.9778155650001,103.593533787 35.9733337530001,103.592926414 35.972422221,103.584610569 35.970826005,103.583363471 35.9679689270001),(103.594864915 35.974450242,103.594669677 35.9740031430001,103.591290009 35.970698993,103.588669745 35.9690658600001,103.586543153 35.9677365650001,103.584758309 35.966976941,103.581796465 35.9626094590001,103.578720531 35.9603306980001,103.577353413 35.9597989550001,103.576290063 35.9598368810001,103.572834291 35.958469543,103.569074876 35.954899536,103.565847014 35.952886606,103.564745716 35.952544759,103.562923112 35.948974848,103.560037114 35.946012513,103.558442132 35.9455187360001,103.556847257 35.943619814,103.555176334 35.942974126,103.554758782 35.940505612,103.554910809 35.938948569,103.556278224 35.9356446520001,103.55646823 35.9340496340001,103.557075886 35.933669896,103.558557012 35.933214246,103.559734491 35.930593903,103.561139655 35.9302521810001,103.562582876 35.9288471090001,103.562089429 35.925619053,103.562583437 35.9215935330001,103.561938074 35.9184794020001,103.560761068 35.914985475,103.559698005 35.911301671,103.559052558 35.9092746250001,103.558483059 35.9073092960001,103.557942016 35.905714242,103.556347137 35.903862793,103.556062423 35.902438649,103.554752335 35.9010429350001,103.554809368 35.900159977,103.55429671 35.8998181590001,103.552331581 35.897681866,103.551591162 35.8960583200001,103.551448956 35.893380947,103.552161213 35.8908460270001,103.553386065 35.889507404,103.554126753 35.887656071,103.553671096 35.8868300520001,103.550823147 35.882927792,103.549740992 35.8805921650001,103.547747307 35.879424278,103.545611156 35.8789399670001,103.545297873 35.8786266440001,103.544813803 35.87688918,103.543076499 35.875237102,103.540399472 35.8709645760001,103.53840593 35.86794532,103.534789148 35.861508069,103.532134474 35.854648373,103.529502284 35.843508371,103.530819451 35.835153533,103.540086339 35.8276598950001,103.5416056 35.82512818,103.542821337 35.818849405,103.550568777 35.8162673620001,103.553961462 35.814950998,103.555379399 35.813128179,103.561101464 35.8099384080001,103.562924859 35.803254575,103.56454545 35.79996333,103.569862517 35.795659551,103.576343969 35.7943433390001,103.578825214 35.793026931,103.589307954 35.777735443,103.593865635 35.7715074660001,103.59730899 35.769735385,103.598372792 35.7638110500001,103.600702372 35.7593552160001,103.607538286 35.7578871160001,103.610728362 35.757431551,103.615386897 35.756621608,103.617058069 35.7540392660001,103.618070971 35.751558163,103.632452859 35.7335325340001,103.639491527 35.729330111,103.639795743 35.724064006,103.643492876 35.7144940260001,103.65331685 35.7057345210001,103.658026401 35.699962274,103.659494922 35.698797723,103.674939873 35.684468559,103.680510042 35.681126872,103.694688356 35.676519715,103.709288898 35.6684590310001,103.717211252 35.659337479,103.723092517 35.6588576670001,103.74469828 35.6425352580001,103.748179117 35.641095122,103.756101425 35.632573698,103.770025529 35.616971064,103.775067694 35.602448221,103.77722832 35.6001678420001,103.78058915 35.59848765,103.782389857 35.5941668190001,103.780709939 35.588525535,103.781910815 35.5803638570001,103.806758465 35.548198235,103.826164714 35.5194930820001,103.828885993 35.51021124,103.831446736 35.5074907870001,103.839448555 35.505570773,103.846490147 35.503970779,103.857693038 35.4967697980001,103.863454633 35.4916489920001,103.864735341 35.485887828,103.868736385 35.483167447,103.872258501 35.4650837720001,103.874660003 35.451961097,103.882181661 35.450841229,103.884902767 35.4437998650001,103.882662738 35.4380385270001,103.880582499 35.4354778810001,103.880423002 35.4284363740001,103.878823424 35.4185141830001,103.876903426 35.413232964,103.878344348 35.4050712980001,103.874663788 35.4023505380001,103.872263982 35.3932284790001,103.872584793 35.383466416,103.878186328 35.3786656710001,103.886028356 35.373544967,103.891629562 35.373065141,103.894830075 35.375145741,103.900431476 35.37210537,103.907793295 35.3684249500001,103.918515937 35.363144354,103.918036238 35.3578632050001,103.923477376 35.357863475,103.927798778 35.35130229,103.944282417 35.3487425590001,103.95148402 35.347462641,103.96284659 35.344902656,103.982370548 35.346503958,103.998854238 35.343304087,104.01133743 35.3356230690001,104.036826048 35.3118474120001,104.042137308 35.3050195530001,104.047448625 35.2974330160001,104.054276949 35.294398632,104.077040088 35.2572244340001,104.091835358 35.2431895830001,104.110424992 35.2162573590001,104.168088857 35.158221182,104.177193387 35.15291087,104.184401278 35.146841786,104.209816734 35.1498777580001,104.243199149 35.1417235930001,104.275671385 35.1304967290001,104.30662668 35.113807294,104.343651578 35.094690384,104.370964303 35.090139649,104.389476695 35.081339874,104.409202603 35.0773957100001,104.418609996 35.080127422,104.431659681 35.0743620970001,104.445922998 35.071935023,104.458365513 35.069204389,104.474449288 35.0716329570001,104.4966034 35.061922946,104.515115862 35.052212754,104.522398913 35.0555513050001,104.540304295 35.047661916,104.558512665 35.0461454530001,104.571561871 35.0467530400001,104.587646199 35.041898281,104.60767597 35.0327951090001,104.617691084 35.025208804,104.632864724 35.0239956620001,104.641665449 35.0230856800001,104.656232996 35.010644046,104.664124639 34.992132644,104.669588536 34.9733176500001,104.695384026 34.9672494810001,104.708738466 34.9444897390001,104.719665343 34.9189986310001,104.733929165 34.909895174,104.754564803 34.9150552150001,104.78430473 34.918091401,104.812223973 34.9193066650001,104.823756189 34.9150586270001,104.840144789 34.899582363,104.872617397 34.8834999480001,104.882632809 34.871968505,104.910552348 34.8692386330001,104.937865173 34.863474013,104.954556172 34.862260947,104.961233539 34.8489085080001,104.966697637 34.8273622660001,104.967608484 34.8215963430001,104.973981855 34.8152237470001,104.993710071 34.7806289110001,105.005546193 34.7706149200001,105.012222556 34.7706152490001,105.028002981 34.771526443,105.035589894 34.769705985,105.041356299 34.7636368290001,105.044088973 34.7445182270001,105.049249143 34.72904141,105.051677502 34.7211512580001,105.047429452 34.713867722,105.049857789 34.7062810400001,105.051679322 34.696873499,105.046520813 34.6901968610001,105.044093636 34.682306468,105.040149171 34.6735055870001,105.042273764 34.6695605560001,105.037722086 34.664401308,105.041667753 34.6571181740001,105.04348933 34.6471036880001,105.038027463 34.638909674,105.045615738 34.618880898,105.057147706 34.617971051,105.063217602 34.611598439,105.068376747 34.6097778610001,105.07475091 34.592783743,105.077482444 34.5888387420001,105.08203442 34.5900528550001,105.091139254 34.5806456710001,105.097816387 34.5703279520001,105.10024479 34.561830856,105.106921538 34.5566721610001,105.110867321 34.5478716690001,105.112081726 34.540891872,105.119669566 34.526629063,105.140610337 34.509635664,105.150323221 34.4853583840001,105.183099499 34.466544737,105.211627407 34.44469616,105.227713273 34.419205305,105.245314212 34.424365197,105.256846926 34.413440774,105.26321975 34.4143515050001,105.274448836 34.4055513690001,105.278091166 34.3964473890001,105.293265262 34.3891648100001,105.31845501 34.367012597,105.330595861 34.3400041890001,105.343343382 34.3166374740001,105.362159402 34.3057134090001,105.376726713 34.296306497,105.397970276 34.2884172730001,105.412841126 34.278099958,105.424374177 34.262623455,105.435300554 34.2435052590001,105.443495264 34.2301528950001,105.444407182 34.209820316,105.455030109 34.190398633,105.464439353 34.168245642,105.475668302 34.1612663380001,105.483255618 34.153983386,105.484166727 34.1445757990001,105.498127475 34.130009833,105.496307052 34.1245472460001,105.500556768 34.109373856,105.500557642 34.0975384490001,105.506627535 34.0911658360001,105.506931723 34.0814547470001,105.521802592 34.0708339620001,105.525748971 34.053839725,105.517555675 34.0480733520001,105.519680287 34.043824849,105.52514279 34.043521647,105.51695032 34.0265268110001,105.528483969 34.0028565640001,105.534554241 33.991324929,105.527879393 33.9706885030001,105.537895236 33.9530876210001,105.543055071 33.941859413,105.535165602 33.931237504,105.560052087 33.906050556,105.557322117 33.8887525170001,105.565517198 33.8702411300001,105.569766997 33.853853852,105.587369281 33.840805425,105.611345106 33.8189566250001,105.619540184 33.8004452380001,105.616809498 33.792858304,105.621058428 33.7883064320001,105.623486708 33.7813266960001,105.629556132 33.7813269960001,105.641089037 33.767671325,105.655657051 33.7485533080001,105.65080258 33.733986413,105.659907513 33.723061871,105.646556601 33.6981765090001,105.651109888 33.6814857740001,105.643220235 33.673291641,105.647166891 33.6523522690001,105.654147304 33.6444623410001,105.653541313 33.6314130150001,105.641403618 33.615631873,105.635941867 33.6056170270001,105.638977177 33.5974234350001,105.650509346 33.5937823400001,105.655061569 33.59165826,105.653848702 33.5776984870001,105.649297519 33.565559384,105.652636631 33.5528137250001,105.655065061 33.5437096860001,105.648692544 33.5385503460001,105.652941801 33.5294463970001,105.6477833 33.522466287,105.649302002 33.5039545700001,105.652944738 33.4890846220001,105.649000628 33.475124716,105.635345064 33.4663233540001,105.63231119 33.4547912690001,105.631705371 33.4393141670001,105.638382398 33.4302103380001,105.639293628 33.418981919,105.621996189 33.413215098,105.618356384 33.3877232720001,105.606824788 33.3834740940001,105.605915496 33.3679969780001,105.59893676 33.352823034,105.604097001 33.335828857,105.600152666 33.32490367,105.605312313 33.316103238,105.610472245 33.303357668,105.618666603 33.2945573850001,105.618060957 33.2766525070001,105.607743465 33.2693686710001,105.615027891 33.253891959,105.612601198 33.2390217120001,105.61290515 33.2323453430001,105.621706428 33.2238485620001,105.630203992 33.218689956,105.637791737 33.205337564,105.638399381 33.1956264890001,105.637185934 33.18955699,105.643862364 33.1886469030001,105.650539322 33.1804534880001,105.65327054 33.180757095,105.65751964 33.1737774480001,105.66601701 33.1713500920001,105.670872833 33.1674051960001,105.673300426 33.1698330930001,105.673300515 33.168619204,105.678459678 33.1664951540001,105.683922158 33.1664954240001,105.690294856 33.1692269860001,105.689081431 33.1628540140001,105.69059916 33.157695065,105.689992567 33.152839483,105.689385975 33.1479839030001,105.696669742 33.1416113490001,105.708201517 33.14343275,105.714271268 33.1388809690001,105.712754088 33.1364531190001,105.712450966 33.131597551,105.722769599 33.1231008460001,105.728535442 33.124618491,105.730053084 33.1206734290001,105.734302072 33.1152111430001,105.743709854 33.1127838300001,105.751600566 33.1064113090001,105.753725279 33.1006454450001,105.755850363 33.0897205590001,105.753422835 33.0863822470001,105.753726742 33.0803128220001,105.763135027 33.070905655,105.768901328 33.0660503870001,105.773150187 33.062408933,105.775274639 33.0602847330001,105.77041993 33.048752558,105.760709113 33.0451104160001,105.751909191 33.0347919330001,105.753124034 33.021439226,105.753125125 33.006265625,105.757374703 32.9926095960001,105.764051439 32.987450902,105.769514661 32.977133124,105.773763193 32.9780437490001,105.780136654 32.9701537920001,105.7837782 32.971671331,105.784992302 32.9686366720001,105.77892327 32.963173877,105.784386123 32.9580151230001,105.778317004 32.953766214,105.783173675 32.9379859110001,105.784994916 32.9322200340001,105.795616843 32.9261511180001,105.793493088 32.918564212,105.791065993 32.9091564610001,105.786817418 32.908852779,105.781658843 32.9027830860001,105.782873293 32.8948928730001,105.784694578 32.8885200510001,105.781053183 32.8848782090001,105.788337015 32.8775952400001,105.782875183 32.86849081,105.790462876 32.8557453600001,105.792587501 32.851193385,105.797746598 32.849979752,105.787125908 32.8387507640001,105.781360108 32.836626177,105.777415243 32.832984319,105.780450433 32.8263080840001,105.771953174 32.8272180810001,105.76649117 32.820541427,105.754049197 32.815685262,105.74403454 32.817202127,105.738572383 32.812649778,105.713992042 32.80111663,105.704585086 32.792012006,105.703675191 32.7847286350001,105.714296792 32.783211798,105.73159738 32.74497518,105.749502593 32.7392100960001,105.754965767 32.729499262,105.753145265 32.724947092,105.755269757 32.7222159500001,105.755270149 32.7167534540001,105.763465753 32.690351794,105.764680525 32.677909503,105.756790749 32.67123273,105.752239588 32.6584866810001,105.74937432 32.646566835,105.753151774 32.6336188830001,105.76394236 32.6266058410001,105.772575197 32.615816151,105.774734213 32.6017891070001,105.780130293 32.5872227180001,105.760710167 32.5586279550001,105.75315795 32.5467584560001,105.758553876 32.534350089,105.776897253 32.53111396,105.775280158 32.511152166,105.790387925 32.487954164,105.775822569 32.4701497560001,105.770968179 32.4539643430001,105.744534681 32.422671704,105.71270423 32.4183540880001,105.66738663 32.407561737,105.646345655 32.4118767460001,105.623687581 32.3962299610001,105.611818829 32.391373824,105.614516961 32.382741864,105.608044092 32.3660168650001,105.539530974 32.3104443930001,105.503384453 32.3066660700001,105.494752309 32.3077446550001,105.464542276 32.276451831,105.261698375 32.138867856,105.250368937 32.1367092740001,105.075579655 31.9931921190001,105.038356023 31.962438455,105.033501203 31.9521876050001,105.025410076 31.931685988,105.005989133 31.9144208450001,104.966067299 31.893378151,104.935315903 31.8885210830001,104.891077925 31.8690966930001,104.884064486 31.86747783,104.869498551 31.8577660070001,104.850076971 31.849672463,104.835511302 31.8361841,104.825261665 31.8226959510001,104.827421036 31.80327385,104.830659415 31.783851801,104.823107147 31.7725218080001,104.802608285 31.739610946,104.782647535 31.726661823,104.775095379 31.713713312,104.762687837 31.698606539,104.765385995 31.6894350740001,104.757293621 31.686737147,104.747044432 31.6667749270001,104.730860622 31.647891428,104.708201902 31.6414162410001,104.70496529 31.6354815180001,104.705505544 31.6246914290001,104.701191045 31.6025714790001,104.69579608 31.601492202,104.688243923 31.588543691,104.680691202 31.5836877680001,104.65264073 31.5297358080001,104.632680987 31.5022200290001,104.612720309 31.488191896,104.602470479 31.477401274,104.599773966 31.4628344860001,104.578734243 31.449345803,104.558773714 31.433159647,104.540972094 31.4040254560001,104.519933784 31.3700355560001,104.480552784 31.3295706810001,104.40826241 31.2837091270001,104.338670411 31.2254390730001,104.281487589 31.1585375390001,104.219447342 31.1191505570001,104.161183732 31.0781452460001,104.128275178 31.0608794390001,104.078642558 31.0355202210001,103.987469066 30.9966713110001,103.982074471 30.9901969750001,104.000958836 30.9648411360001,103.997722992 30.9475767910001,104.002579336 30.935707904,104.005817574 30.9179043730001,104.023082396 30.9076546160001,104.028478133 30.8974042720001,104.037650396 30.8871541130001,104.041968155 30.8617975560001,104.036573704 30.853165199,104.043048522 30.8418358960001,104.045207859 30.822413795,104.044669309 30.808386619,104.065171263 30.796518502,104.060035369 30.7555669600001,104.064390838 30.6815043600001,104.081337091 30.5572318420001,104.098283343 30.427310574,104.132175848 30.297389305,104.194312107 30.0940342760001,104.29034087 29.901976749,104.482398397 29.704270471,104.708348429 29.5912954550001,104.92300096 29.5630517010001,105.069868481 29.5799979540001,105.233682254 29.5630517010001,105.380549775 29.534807947,105.533066046 29.495266692,105.719474823 29.461374187,105.956722356 29.4274816820001,106.165726136 29.4500766850001,106.33518866 29.472671688,106.499002433 29.5517542000001))')
 
{"code":500,"count":0,"msg":"\r\n### Error querying database.  Cause: org.postgresql.util.PSQLException: 错误: 函数 fn_uname(double precision) 不存在\n  建议:没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换.\n  位置:366\r\n### The error may exist in com/lf/server/mapper/bs/MsitepointMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT gid, x, y, elev, segname, projname, pipename, belongs, belongsid, datastatus, remarks, version, datastage, sitename, sitedesc, sitetype, location, principal, useddate, eventid, parentid, dirid, depid, verid, createtime, createuser, updateuser, updatetime, fn_get_fullname(dirid, 2) AS dirName, fn_get_fullname(depid, 1) AS depName, fn_ver(verid) AS verName, fn_uname(createuser) AS createName, fn_uname(updateuser) AS updateName FROM bs.m_sitepoint WHERE (parentid = ?) ORDER BY gid ASC LIMIT ?\r\n### Cause: org.postgresql.util.PSQLException: 错误: 函数 fn_uname(double precision) 不存在\n  建议:没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换.\n  位置:366\n; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: 错误: 函数 fn_uname(double precision) 不存在\n  建议:没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换.\n  位置:366","result":null,"time":1677582840698}
select * from bs.m_sitepoint
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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';
---------------------------------------------------------