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) ) )