吉安感知网项目-后端
linwei
2026-04-02 8ac34cbae4ea8cc47194f51389a4e2dddebcc7d5
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml
@@ -128,7 +128,7 @@
                    </foreach>
                    and ad.device_ids is not null
                    and ad.device_ids != ''
                    and find_in_set(ja_fw_device.id, ad.device_ids)
                    and ja_fw_device.id = ANY(string_to_array(ad.device_ids, ',')::bigint[])
                        )
                    )
                </when>
@@ -143,7 +143,7 @@
                            and ad.id = #{areaId}
                            and ad.device_ids is not null
                            and ad.device_ids != ''
                            and find_in_set(ja_fw_device.id, ad.device_ids)
                            and ja_fw_device.id = ANY(string_to_array(ad.device_ids, ',')::bigint[])
                            )
                            or not exists (
                            select 1
@@ -151,7 +151,7 @@
                            where ad.is_deleted = 0
                            and ad.device_ids is not null
                            and ad.device_ids != ''
                            and find_in_set(ja_fw_device.id, ad.device_ids)
                            and ja_fw_device.id = ANY(string_to_array(ad.device_ids, ',')::bigint[])
                            and ad.id != #{areaId}
                            )
                        </when>
@@ -162,7 +162,7 @@
                            where ad.is_deleted = 0
                            and ad.device_ids is not null
                            and ad.device_ids != ''
                            and find_in_set(ja_fw_device.id, ad.device_ids)
                            and ja_fw_device.id = ANY(string_to_array(ad.device_ids, ',')::bigint[])
                            )
                        </otherwise>
                    </choose>
@@ -197,7 +197,7 @@
                                  and ad.id = #{query.areaId}
                                  and ad.device_ids is not null
                                  and ad.device_ids != ''
                                  and find_in_set(ja_fw_device.id, ad.device_ids)
                                  and ja_fw_device.id = ANY(string_to_array(ad.device_ids, ',')::bigint[])
                            )
                            or not exists (
                                select 1
@@ -205,7 +205,7 @@
                                where ad.is_deleted = 0
                                  and ad.device_ids is not null
                                  and ad.device_ids != ''
                                  and find_in_set(ja_fw_device.id, ad.device_ids)
                                  and ja_fw_device.id = ANY(string_to_array(ad.device_ids, ',')::bigint[])
                                  and ad.id != #{query.areaId}
                            )
                        </when>
@@ -216,7 +216,7 @@
                                where ad.is_deleted = 0
                                  and ad.device_ids is not null
                                  and ad.device_ids != ''
                                  and find_in_set(ja_fw_device.id, ad.device_ids)
                                  and ja_fw_device.id = ANY(string_to_array(ad.device_ids, ',')::bigint[])
                            )
                        </otherwise>
                    </choose>
@@ -276,7 +276,7 @@
            FROM
                ja_fw_device d
            LEFT JOIN ja_fw_area_divide ad
                ON find_in_set(d.id, ad.device_ids) > 0
                ON d.id = ANY(string_to_array(ad.device_ids, ',')::bigint[])
                AND ad.is_deleted = 0
            WHERE
                d.is_deleted = 0
@@ -298,11 +298,11 @@
                and exists (
                select 1
                from ja_fw_defense_scene ds
                join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id = ds.id::VARCHAR and dsm.is_deleted = 0
                join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id::VARCHAR = ds.id::VARCHAR and dsm.is_deleted = 0
                where ds.is_deleted = 0
                and ds.area_divide_ids is not null
                and ds.area_divide_ids != ''
                and find_in_set(ad.id, replace(ds.area_divide_ids, ' ', ''))
                and ad.id = ANY(string_to_array(replace(ds.area_divide_ids, ' ', ''), ',')::bigint[])
                and (dsm.effective_date_start is null or dsm.effective_date_start &lt;= #{flyTime})
                and (dsm.effective_date_end is null or dsm.effective_date_end &gt;= #{flyTime})
                )
@@ -322,7 +322,7 @@
            FROM
                ja_fw_device d
            LEFT JOIN ja_fw_area_divide ad
                ON find_in_set(d.id, ad.device_ids) > 0
                ON d.id = ANY(string_to_array(ad.device_ids, ',')::bigint[])
                AND ad.is_deleted = 0
            WHERE
                d.is_deleted = 0
@@ -345,11 +345,11 @@
                and exists (
                select 1
                from ja_fw_defense_scene ds
                join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id = ds.id::VARCHAR and dsm.is_deleted = 0
                join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id::VARCHAR = ds.id::VARCHAR and dsm.is_deleted = 0
                where ds.is_deleted = 0
                and ds.area_divide_ids is not null
                and ds.area_divide_ids != ''
                and find_in_set(ad.id, replace(ds.area_divide_ids, ' ', ''))
                and ad.id = ANY(string_to_array(replace(ds.area_divide_ids, ' ', ''), ',')::bigint[])
                and (dsm.effective_date_start is null or dsm.effective_date_start &lt;= #{flyTime})
                and (dsm.effective_date_end is null or dsm.effective_date_end &gt;= #{flyTime})
                )
@@ -456,7 +456,7 @@
             FROM
                 ja_fw_device d
            left join ja_fw_area_divide ad
                on find_in_set(d.id, ad.device_ids) > 0
                on d.id = ANY(string_to_array(ad.device_ids, ',')::bigint[])
                and ad.is_deleted = 0
             WHERE
                 d.is_deleted = 0
@@ -477,11 +477,11 @@
                    and exists (
                    select 1
                    from ja_fw_defense_scene ds
                    join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id = ds.id::VARCHAR and dsm.is_deleted = 0
                    join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id::VARCHAR = ds.id::VARCHAR and dsm.is_deleted = 0
                    where ds.is_deleted = 0
                    and ds.area_divide_ids is not null
                    and ds.area_divide_ids != ''
                    and find_in_set(ad.id, replace(ds.area_divide_ids, ' ', ''))
                    and ad.id = ANY(string_to_array(replace(ds.area_divide_ids, ' ', ''), ',')::bigint[])
                    and (dsm.effective_date_start is null or dsm.effective_date_start &lt;= #{flyTime})
                    and (dsm.effective_date_end is null or dsm.effective_date_end &gt;= #{flyTime})
                    )
@@ -493,7 +493,7 @@
             FROM
                 ja_fw_device d
            left join ja_fw_area_divide ad
                on find_in_set(d.id, ad.device_ids) > 0
                on d.id = ANY(string_to_array(ad.device_ids, ',')::bigint[])
                and ad.is_deleted = 0
             WHERE
                 d.is_deleted = 0
@@ -515,11 +515,11 @@
                    and exists (
                    select 1
                    from ja_fw_defense_scene ds
                    join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id = ds.id::VARCHAR and dsm.is_deleted = 0
                    join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id::VARCHAR = ds.id::VARCHAR and dsm.is_deleted = 0
                    where ds.is_deleted = 0
                    and ds.area_divide_ids is not null
                    and ds.area_divide_ids != ''
                    and find_in_set(ad.id, replace(ds.area_divide_ids, ' ', ''))
                    and ad.id = ANY(string_to_array(replace(ds.area_divide_ids, ' ', ''), ',')::bigint[])
                    and (dsm.effective_date_start is null or dsm.effective_date_start &lt;= #{flyTime})
                    and (dsm.effective_date_end is null or dsm.effective_date_end &gt;= #{flyTime})
                    )
@@ -531,7 +531,7 @@
             FROM
                 ja_fw_device d
            left join ja_fw_area_divide ad
                on find_in_set(d.id, ad.device_ids) > 0
                on d.id = ANY(string_to_array(ad.device_ids, ',')::bigint[])
                and ad.is_deleted = 0
             WHERE d.is_deleted = 0
               and d.is_enabled = 1
@@ -552,11 +552,11 @@
                and exists (
                select 1
                from ja_fw_defense_scene ds
                join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id = ds.id::VARCHAR and dsm.is_deleted = 0
                join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id::VARCHAR = ds.id::VARCHAR and dsm.is_deleted = 0
                where ds.is_deleted = 0
                and ds.area_divide_ids is not null
                and ds.area_divide_ids != ''
                and find_in_set(ad.id, replace(ds.area_divide_ids, ' ', ''))
                and ad.id = ANY(string_to_array(replace(ds.area_divide_ids, ' ', ''), ',')::bigint[])
                and (dsm.effective_date_start is null or dsm.effective_date_start &lt;= #{flyTime})
                and (dsm.effective_date_end is null or dsm.effective_date_end &gt;= #{flyTime})
                )
@@ -567,7 +567,7 @@
                 COUNT(*)
             FROM ja_fw_device d
             left join ja_fw_area_divide ad
                on find_in_set(d.id, ad.device_ids) > 0
                on d.id = ANY(string_to_array(ad.device_ids, ',')::bigint[])
                and ad.is_deleted = 0
             WHERE d.is_deleted = 0
               and d.is_enabled = 1
@@ -588,11 +588,11 @@
                    and exists (
                    select 1
                    from ja_fw_defense_scene ds
                    join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id = ds.id::VARCHAR and dsm.is_deleted = 0
                    join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id::VARCHAR = ds.id::VARCHAR and dsm.is_deleted = 0
                    where ds.is_deleted = 0
                    and ds.area_divide_ids is not null
                    and ds.area_divide_ids != ''
                    and find_in_set(ad.id, replace(ds.area_divide_ids, ' ', ''))
                    and ad.id = ANY(string_to_array(replace(ds.area_divide_ids, ' ', ''), ',')::bigint[])
                    and (dsm.effective_date_start is null or dsm.effective_date_start &lt;= #{flyTime})
                    and (dsm.effective_date_end is null or dsm.effective_date_end &gt;= #{flyTime})
                    )
@@ -603,7 +603,7 @@
                 COUNT(*)
             FROM ja_fw_device d
            left join ja_fw_area_divide ad
                on find_in_set(d.id, ad.device_ids) > 0
                on d.id = ANY(string_to_array(ad.device_ids, ',')::bigint[])
                and ad.is_deleted = 0
             WHERE d.is_deleted = 0
               and d.is_enabled = 1
@@ -624,11 +624,11 @@
                    and exists (
                    select 1
                    from ja_fw_defense_scene ds
                    join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id = ds.id::VARCHAR and dsm.is_deleted = 0
                    join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id::VARCHAR = ds.id::VARCHAR and dsm.is_deleted = 0
                    where ds.is_deleted = 0
                    and ds.area_divide_ids is not null
                    and ds.area_divide_ids != ''
                    and find_in_set(ad.id, replace(ds.area_divide_ids, ' ', ''))
                    and ad.id = ANY(string_to_array(replace(ds.area_divide_ids, ' ', ''), ',')::bigint[])
                    and (dsm.effective_date_start is null or dsm.effective_date_start &lt;= #{flyTime})
                    and (dsm.effective_date_end is null or dsm.effective_date_end &gt;= #{flyTime})
                    )
@@ -644,13 +644,13 @@
        from
            ja_fw_device d
        left join ja_fw_area_divide ad
            on find_in_set(d.id, ad.device_ids) > 0
            on d.id = ANY(string_to_array(ad.device_ids, ',')::bigint[])
            and ad.is_deleted = 0
        left join ja_fw_defense_scene ds
            on find_in_set(ad.id, ds.area_divide_ids) > 0
            on ad.id = ANY(string_to_array(ds.area_divide_ids, ',')::bigint[])
            and ds.is_deleted = 0
        left join ja_fw_defense_scene_manage dsm
            on dsm.defense_scene_id = ds.id::VARCHAR
            on dsm.defense_scene_id::VARCHAR = ds.id::VARCHAR
            and dsm.is_deleted = 0
        <where>
                d.is_deleted = 0
@@ -659,11 +659,11 @@
                and exists (
                select 1
                from ja_fw_defense_scene ds
                join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id = ds.id::VARCHAR and dsm.is_deleted = 0
                join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id::VARCHAR = ds.id::VARCHAR and dsm.is_deleted = 0
                where ds.is_deleted = 0
                and ds.area_divide_ids is not null
                and ds.area_divide_ids != ''
                and find_in_set(ad.id, replace(ds.area_divide_ids, ' ', ''))
                and ad.id = ANY(string_to_array(replace(ds.area_divide_ids, ' ', ''), ',')::bigint[])
                and (dsm.effective_date_start is null or dsm.effective_date_start &lt;= #{param2.flyTime})
                and (dsm.effective_date_end is null or dsm.effective_date_end &gt;= #{param2.flyTime})
                )
@@ -770,17 +770,18 @@
        FROM
            ja_fw_device d
        LEFT JOIN ja_fw_area_divide ad
            ON find_in_set(d.id, ad.device_ids) > 0
            AND ad.is_deleted = 0
        ON d.id = ANY(string_to_array(ad.device_ids, ',')::bigint[])
        AND ad.is_deleted = 0
        WHERE
            d.is_deleted = 0
        AND d.is_enabled = 1
        AND d.final_outbound_area IS NOT NULL
        <if test="regionCode != null and regionCode != ''">
            and ( d.final_outbound_area_code like concat(#{regionCode},'%')
            and ( d.final_outbound_area_code::text LIKE concat(#{regionCode}, '%')
            <if test="currentDeptId != null and currentDeptId != '' ">
                or d.id in (
                SELECT device_id FROM ja_fw_device_per_share
                or d.id IN (
                SELECT device_id::bigint
                FROM ja_fw_device_per_share
                WHERE loan_to_dept_id = #{currentDeptId}
                AND is_deleted = 0
                )
@@ -791,13 +792,13 @@
            and exists (
            select 1
            from ja_fw_defense_scene ds
            join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id = ds.id::VARCHAR and dsm.is_deleted = 0
            join ja_fw_defense_scene_manage dsm on dsm.defense_scene_id::VARCHAR = ds.id::VARCHAR and dsm.is_deleted = 0
            where ds.is_deleted = 0
            and ds.area_divide_ids is not null
            and ds.area_divide_ids != ''
            and find_in_set(ad.id, replace(ds.area_divide_ids, ' ', ''))
            and (dsm.effective_date_start is null or dsm.effective_date_start &lt;= #{flyTime})
            and (dsm.effective_date_end is null or dsm.effective_date_end &gt;= #{flyTime})
            and ad.id = ANY(string_to_array(replace(ds.area_divide_ids, ' ', ''), ',')::bigint[])
            and (dsm.effective_date_start is null or dsm.effective_date_start &lt;= #{flyTime}::timestamp)
            and (dsm.effective_date_end is null or dsm.effective_date_end &gt;= #{flyTime}::timestamp)
            )
        </if>
        GROUP BY