吉安感知网项目-后端
rain
2026-01-09 3ae46f2a59f9d4e751f78d8dc1a896ceba5ca495
drone-service/drone-fw/src/main/java/org/sxkj/fw/area/mapper/FwDefenseZoneMapper.xml
@@ -23,7 +23,23 @@
    <select id="selectFwDefenseZonePage" resultMap="fwDefenseZoneResultMap">
        select * from ja_fw_defense_zone
        select
        id,
        zone_name,
        zone_area,
        defense_scene_ids,
        area_divide_ids,
        device_ids,
        concat(ST_AsText(geom), ' | ', ST_SRID(geom)) as geom,
        area_code,
        create_user,
        create_dept,
        create_time,
        update_user,
        update_time,
        status,
        is_deleted
        from ja_fw_defense_zone
        <where>
            is_deleted = 0
            <if test="param2.id != null and param2.id != ''">
@@ -45,7 +61,15 @@
                and device_ids = #{param2.deviceIds}
            </if>
            <if test="param2.geom != null and param2.geom != ''">
                and geom = #{param2.geom}
                and ST_Equals(
                    geom,
                    ST_SRID(
                        ST_GeomFromText(
                            trim(case when instr(#{param2.geom}, '|') &gt; 0 then substring_index(#{param2.geom}, '|', 1) else #{param2.geom} end)
                        ),
                        case when instr(#{param2.geom}, '|') &gt; 0 then cast(trim(substring_index(#{param2.geom}, '|', -1)) as unsigned) else 4326 end
                    )
                )
            </if>
            <if test="param2.areaCode != null and param2.areaCode != ''">
                and area_code = #{param2.areaCode}
@@ -73,7 +97,97 @@
    <select id="exportFwDefenseZone" resultType="org.sxkj.fw.area.excel.FwDefenseZoneExcel">
        SELECT * FROM ja_fw_defense_zone ${ew.customSqlSegment}
        SELECT
        id,
        zone_name,
        zone_area,
        defense_scene_ids,
        area_divide_ids,
        device_ids,
        concat(ST_AsText(geom), ' | ', ST_SRID(geom)) as geom,
        area_code,
        create_user,
        create_dept,
        create_time,
        update_user,
        update_time,
        status,
        is_deleted
        FROM ja_fw_defense_zone ${ew.customSqlSegment}
    </select>
    <insert id="insertWithGeom" parameterType="org.sxkj.fw.area.entity.FwDefenseZoneEntity" useGeneratedKeys="true" keyProperty="id">
        insert into ja_fw_defense_zone (
            id,
            zone_name,
            zone_area,
            defense_scene_ids,
            area_divide_ids,
            device_ids,
            geom,
            area_code,
            create_user,
            create_dept,
            create_time,
            update_user,
            update_time,
            status,
            is_deleted
        ) values (
            #{id},
            #{zoneName},
            #{zoneArea},
            #{defenseSceneIds},
            #{areaDivideIds},
            #{deviceIds},
            <choose>
                <when test="geom != null and geom != ''">
                    ST_SRID(
                        ST_GeomFromText(
                            trim(case when instr(#{geom}, '|') &gt; 0 then substring_index(#{geom}, '|', 1) else #{geom} end)
                        ),
                        case when instr(#{geom}, '|') &gt; 0 then cast(trim(substring_index(#{geom}, '|', -1)) as unsigned) else 4326 end
                    )
                </when>
                <otherwise>null</otherwise>
            </choose>,
            #{areaCode},
            #{createUser},
            #{createDept},
            #{createTime},
            #{updateUser},
            #{updateTime},
            #{status},
            #{isDeleted}
        )
    </insert>
    <update id="updateWithGeomById" parameterType="org.sxkj.fw.area.entity.FwDefenseZoneEntity">
        update ja_fw_defense_zone
        <set>
            <if test="zoneName != null">zone_name = #{zoneName},</if>
            <if test="zoneArea != null">zone_area = #{zoneArea},</if>
            <if test="defenseSceneIds != null">defense_scene_ids = #{defenseSceneIds},</if>
            <if test="areaDivideIds != null">area_divide_ids = #{areaDivideIds},</if>
            <if test="deviceIds != null">device_ids = #{deviceIds},</if>
            <if test="geom != null and geom != ''">
                geom = ST_SRID(
                    ST_GeomFromText(
                        trim(case when instr(#{geom}, '|') &gt; 0 then substring_index(#{geom}, '|', 1) else #{geom} end)
                    ),
                    case when instr(#{geom}, '|') &gt; 0 then cast(trim(substring_index(#{geom}, '|', -1)) as unsigned) else 4326 end
                ),
            </if>
            <if test="areaCode != null">area_code = #{areaCode},</if>
            <if test="createUser != null">create_user = #{createUser},</if>
            <if test="createDept != null">create_dept = #{createDept},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateUser != null">update_user = #{updateUser},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="status != null">status = #{status},</if>
            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
        </set>
        where id = #{id}
    </update>
</mapper>