LAPTOP-BJJ3IV5R\SIWEI 8 bulan lalu
induk
melakukan
dfde8cd159
1 mengubah file dengan 0 tambahan dan 137 penghapusan
  1. 0 137
      sql/pgsql/0_init.sql

+ 0 - 137
sql/pgsql/0_init.sql

@@ -2,140 +2,3 @@
 
 -- 修改表结构和数据,需要同步到现场
 base.t_jsc_sql
-
--- 新增表
-vector."TB_GDZL"
-vector."TB_HDGLX"
-vector."TB_GYL"
-
--- 修改表结构和数据,需要同步到现场
-vector."AFTER_JCSH"
-
--- 添加影像数据
---  D:/onemapfile/15影像.tif
-
---修改表数据,需要同步到现场
-vector."AFTER_BJXM_SZ"
-
--- 只同步数据
-base."t_fzss_fzxz_factor"
-
--- 需要修改的nacos
--- onemap-spatial-dev.yml
--- onemap-analyse-dev.yml
-
--- 添加多地块合并方法
-drop function if exists area_in_range;
-
-CREATE OR REPLACE FUNCTION  area_in_range(jsonarg json, systemarg json)
-RETURNS VARCHAR AS $$
-DECLARE
-sql TEXT;
-    records VARCHAR;
-begin
-execute format('
-	insert into %s
-	with t as(
-	select  array[id] idarray, public.st_area (public.st_transform(geom, 3857) ) /2000*3  area, ''%s'' feature , 0.0 weight,geom
-	from %s order by area
-	)
-	select t.* from t where  area between %s and %s
-	limit 3; ', systemarg->>'选址结果',systemarg->>'选址方式',systemarg->>'初步结果',jsonarg->>'面积下限', jsonarg->>'面积上限');
-return 'OK';
-END;
-$$ LANGUAGE plpgsql;
-
-drop function if exists block_merge;
-
-CREATE OR REPLACE FUNCTION  block_merge(jsonarg json , systemarg json)
-RETURNS VARCHAR AS $$
-DECLARE
-sql TEXT;
-    records VARCHAR;
-BEGIN
-with a as(select jsonb(jsonarg) arg),
-     an as (select  regexp_split_to_table( substring('abcdefghijklmnopqrstuvwxyz',1, cast(a.arg->>'小地块最多合并块数' as integer) ), '') alias from a),
-     t1 as ( select  string_agg( an.alias || '.id', ',') idarr,
-                     string_agg( an.alias || '.area' , ' + ') areaarr,
-                     string_agg ('t2 as ' || an.alias , ',') tblarr,
-                     string_agg( an.alias || '.geom', ',' ) geomarr
-             from an),
-     t2 as (select alias, lead(alias) over() n from an ),
-     t3 as ( select string_agg( alias || '.id < ' || n ||'.id', ' and ') cond from t2 where n notnull),
-    in_t1 as (select format('select id, public.st_area (public.st_transform(geom, 3857) ) /2000*3  area, geom from %s order by area ', systemarg->>'初步结果' ) t ) ,
-    in_t2 as (select format('select id,area,geom from t1 where area < %s', a.arg->>'面积下限') t from a) ,
-    in_t3 as (select format(
-    'select ARRAY[%s] idarray, %s area ,public.st_collect(ARRAY[%s]) geom
-        from %s
-        where %s', idarr, areaarr,geomarr , tblarr, cond ) t from t1,t3)
-select
-    format('insert into %s
-	with t1 as (%s),
-		 t2 as (%s),
-		 t3 as(%s)
-	select idarray,area, ''%s'' feature, 0.0 weight, geom from t3
-		where area between %s and %s
-		order by area
-		limit 3',systemarg->>'选址结果',
-           in_t1.t, in_t2.t, in_t3.t,systemarg->>'选址方式',a.arg->>'面积下限',a.arg->>'面积上限'  )  into  sql from in_t1, in_t2, in_t3,a;
-EXECUTE sql;
-return 'OK';
-END;
-$$ LANGUAGE plpgsql;
-
-
-drop function if exists big_area_block;
-CREATE OR REPLACE FUNCTION  big_area_block(jsonarg json, systemarg json)
-RETURNS VARCHAR AS $$
-DECLARE
-sql TEXT;
-    records VARCHAR;
-begin
-execute format('
-insert into %s
-with t as(
-select array[id] idarray, public.st_area (public.st_transform(geom, 3857) ) /2000*3  area, ''%s'' feature ,0 weight, geom
-from %s order by area
-)select * from t
-where area > %s order by area limit 3;
-
-with recursive cte(arealimit,tolerance, movedirection, area, grade, movescale, interarea, idarray,width,height,geom,env) as(
-select cast(arg->>''面积上限'' as float8) arealimit, (cast(arg->>''面积上限'' as float8)  - cast(arg->>''面积下限'' as float8) ) / 100.0 tolerance,
-        array[sign(cast(arg->>''截取地块X方位'' as integer)), sign(cast(arg->>''截取地块Y方位'' as integer))] movedirection,   area,
-        1 grade, 0.5::float4 movescale,
-        public.st_area(public.st_intersection(public.st_transform(geom,3857), public.st_translate(public.st_envelope(public.st_transform(geom,3857)), (public.st_xmax(public.st_transform(geom,3857)) - public.st_xmin(public.st_transform(geom,3857)))*abs(sign(cast(arg->>''截取地块X方位'' as integer)))*0.5,
-                                                        (public.st_ymax(public.st_transform(geom,3857)) - public.st_ymin(public.st_transform(geom,3857)))*abs(sign(cast(arg->>''截取地块Y方位'' as integer)))*0.5) ) ) *3/2000 interarea ,
-        idarray, (public.st_xmax(public.st_transform(geom,3857)) - public.st_xmin(public.st_transform(geom,3857))) width,
-	                     (public.st_ymax(public.st_transform(geom,3857)) - public.st_ymin(public.st_transform(geom,3857))) height,
-	                     public.st_transform(geom,3857) geom,
-	                     public.st_envelope(public.st_transform(geom,3857)) env
-	from vector.选址结果, jsonb(''%s'') arg
-    where feature like ''%s''
-union all
-select arealimit, tolerance, movedirection, area,  grade + 1 grade,
-          movescale + (1.0/power(2, (grade + 1) )*(case when arealimit < interarea then 1 else -1 end)  )::float4  movescale,
-       public.st_area(public.st_intersection(geom, public.st_translate(env,
-            width*(movescale + (1.0/power(2, (grade + 1) )*(case when arealimit < interarea then 1 else -1 end)  )::float4)*movedirection[1],
-            height*(movescale + (1.0/power(2, (grade + 1) )*(case when arealimit < interarea then 1 else -1 end)  )::float4)*movedirection[2])
-           )
-         ) *3/2000 interarea ,
-idarray,width,height,geom,env from cte
-where grade < 16 and abs(interarea - arealimit) > tolerance
-),
-t as(
-select idarray, public.st_transform( public.st_collectionextract(  public.st_intersection(geom, public.st_translate(env,
-            width*(movescale::float4)*movedirection[1],
-            height*(movescale::float4)*movedirection[2])
-           ) ,3), 4326) geom
-           from cte order by grade DESC limit 1)
-update %s f set geom = t.geom from t
-where  feature like ''%s'' and f.idarray = t.idarray  and t.geom is not null
-', systemarg->>'选址结果',systemarg->>'选址方式', systemarg->>'初步结果', jsonarg->>'面积上限',jsonarg, systemarg->>'选址方式', systemarg->>'选址结果', systemarg->>'选址方式' );
-return 'OK';
-END;
-$$ LANGUAGE plpgsql;
-
--- 修改选址结果表
-ALTER TABLE "base"."t_fzss_fzxz_res" ALTER COLUMN "dkid" TYPE varchar USING "dkid"::varchar;
-ALTER TABLE "base"."t_fzss_fzxz_res" ALTER COLUMN "dkid" SET DEFAULT NULL;
-COMMENT ON COLUMN "base"."t_fzss_fzxz_res"."dkid" IS '土地';