INSERT INTO t_ydbp_data (
id, name, yd_area, yd_unit, zs_area, zs_unit, has_zz, bp_date, pfwh, pf_date, bz, creator_id, created_at, updated_at
) VALUES (
#{id}, #{name}, #{ydArea}, #{ydUnit}, #{zsArea}, #{zsUnit}, #{hasZz}, #{bpDate}, #{pfwh}, #{pfDate}, #{bz}, #{creatorId}, now(), now()
)
UPDATE t_ydbp_data
name = #{name},
yd_area = #{ydArea},
yd_unit = #{ydUnit},
zs_area = #{zsArea},
zs_unit = #{zsUnit},
has_zz = #{hasZz},
bp_date = #{bpDate},
pfwh = #{pfwh},
pf_date = #{pfDate},
bz = #{bz},
updated_at = #{updatedAt}
WHERE id = #{id}
DELETE FROM t_ydbp_data
WHERE id IN
#{id}
UPDATE t_ydbp_data
SET has_onchain = #{hasOnchain}, updated_at = now()
WHERE id = #{id}
WITH
supply_geom AS (
SELECT DISTINCT
ST_Normalize(gd.geom) AS norm_geom
FROM t_geom_db_details gd
INNER JOIN t_node_land nl ON gd.upload_id = nl.geom_db_id
INNER JOIN t_tdgy gy ON nl.node_id = gy.id
INNER JOIN t_project pro ON gy.project_id = pro.id
WHERE gy.has_onchain = 't'
AND pro.project_type = 2
),
hit_geom_id AS (
SELECT DISTINCT gd.id as details_id
FROM t_geom_db_details gd
INNER JOIN t_node_land nl ON gd.upload_id = nl.geom_db_id
INNER JOIN t_ydbp_data bp ON nl.node_id = bp.id
WHERE bp.has_onchain = 't'
AND EXISTS (
SELECT 1 FROM supply_geom
WHERE ST_Equals(ST_Normalize(gd.geom), supply_geom.norm_geom)
)
)