| | |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="fwDroneFlightRecordResultMap" type="org.sxkj.fw.record.entity.FwDroneFlightRecordEntity"> |
| | | <result column="id" property="id"/> |
| | | <result column="device_id" property="deviceId"/> |
| | | <result column="drone_name" property="droneName"/> |
| | | <result column="serial_no" property="serialNo"/> |
| | | <result column="alarm_time" property="alarmTime"/> |
| | | <result column="trigger_type" property="triggerType"/> |
| | | <result column="stay_duration" property="stayDuration"/> |
| | | <result column="area_code" property="areaCode"/> |
| | | <result column="create_user" property="createUser"/> |
| | | <result column="create_dept" property="createDept"/> |
| | | <result column="create_time" property="createTime"/> |
| | | <result column="update_user" property="updateUser"/> |
| | | <result column="update_time" property="updateTime"/> |
| | | <result column="status" property="status"/> |
| | | <result column="is_deleted" property="isDeleted"/> |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="selectFwDroneFlightRecordPage" resultMap="fwDroneFlightRecordResultMap"> |
| | | select * from ja_fw_drone_flight_record where is_deleted = 0 |
| | | select |
| | | dfr.* |
| | | from |
| | | ja_fw_drone_flight_record dfr |
| | | left join |
| | | /* 修改点1:双向转型对齐 */ |
| | | ja_fw_device d on dfr.device_id::text = d.id::text |
| | | <where> |
| | | dfr.is_deleted = 0 |
| | | and d.track_status = 1 |
| | | and d.is_enabled = 1 |
| | | <if test="param2.regionCode != null and param2.regionCode != ''"> |
| | | and (d.final_outbound_area_code like CONCAT(#{param2.regionCode}, '%') |
| | | <if test="param2.currentDeptId != null and param2.currentDeptId != '' "> |
| | | /* 修改点2:dfr.device_id 转 text 以匹配子查询,参数加 ::bigint */ |
| | | or dfr.device_id::text in ( |
| | | SELECT device_id::text FROM ja_fw_device_per_share |
| | | WHERE loan_to_dept_id = #{param2.currentDeptId}::bigint |
| | | AND is_deleted = 0 |
| | | ) |
| | | </if> |
| | | ) |
| | | </if> |
| | | <if test="param2.deviceId != null and param2.deviceId != ''"> |
| | | /* 修改点3:过滤条件参数对齐 */ |
| | | and dfr.device_id::text = #{param2.deviceId}::text |
| | | </if> |
| | | <if test="param2.droneName != null and param2.droneName != ''"> |
| | | and dfr.drone_name like CONCAT('%', #{param2.droneName}, '%') |
| | | </if> |
| | | <if test="param2.serialNo != null and param2.serialNo != ''"> |
| | | and dfr.serial_no = #{param2.serialNo} |
| | | </if> |
| | | <if test="param2.alarmTime != null and param2.alarmTime != ''"> |
| | | and dfr.alarm_time = #{param2.alarmTime} |
| | | </if> |
| | | <if test="param2.triggerType != null and param2.triggerType != ''"> |
| | | and dfr.trigger_type = #{param2.triggerType} |
| | | </if> |
| | | <if test="param2.stayDuration != null and param2.stayDuration != ''"> |
| | | and dfr.stay_duration = #{param2.stayDuration} |
| | | </if> |
| | | <if test="param2.areaCode != null and param2.areaCode != ''"> |
| | | and dfr.area_code = #{param2.areaCode} |
| | | </if> |
| | | <if test="param2.startTime != null and param2.startTime != '' and param2.endTime != null and param2.endTime != ''"> |
| | | and dfr.alarm_time BETWEEN #{param2.startTime}::timestamp AND #{param2.endTime}::timestamp |
| | | </if> |
| | | <if test="param2.deviceType != null and param2.deviceType != ''"> |
| | | and dfr.device_type = #{param2.deviceType} |
| | | </if> |
| | | <if test="param2.areaName != null and param2.areaName != ''"> |
| | | and dfr.area_name like CONCAT('%', #{param2.areaName}, '%') |
| | | </if> |
| | | </where> |
| | | </select> |
| | | |
| | | |
| | | <select id="exportFwDroneFlightRecord" resultType="org.sxkj.fw.record.excel.FwDroneFlightRecordExcel"> |
| | | SELECT * FROM ja_fw_drone_flight_record ${ew.customSqlSegment} |
| | | SELECT |
| | | dfr.id, |
| | | dfr.drone_name, |
| | | dfr.serial_no, |
| | | dfr.alarm_time, |
| | | dfr.area_name, |
| | | dfr.trigger_type, |
| | | dfr.stay_duration, |
| | | dfrd.longitude, |
| | | dfrd.latitude, |
| | | dfrd.point_time |
| | | FROM |
| | | ja_fw_drone_flight_record dfr |
| | | /* 修改点 1:将 VARCHAR 改为更通用的 text,并确保两端类型一致 */ |
| | | left join |
| | | ja_fw_device d on dfr.device_id::text = d.id::text |
| | | left join |
| | | ja_fw_drone_flight_record_detail dfrd on dfr.id::text = dfrd.flight_record_id::text |
| | | <where> |
| | | dfr.is_deleted = 0 |
| | | <if test="ids != null and ids.size() > 0"> |
| | | and dfr.id in |
| | | <foreach item="item" collection="ids" separator="," open="(" close=")"> |
| | | #{item}::bigint |
| | | </foreach> |
| | | </if> |
| | | <if test="regionCode != null and regionCode != ''"> |
| | | and (d.final_outbound_area_code::text like CONCAT(#{regionCode}::text, '%') |
| | | <if test="currentDeptId != null and currentDeptId != '' "> |
| | | or dfr.device_id in ( |
| | | SELECT device_id FROM ja_fw_device_per_share |
| | | WHERE |
| | | loan_to_dept_id = #{currentDeptId}::bigint |
| | | AND is_deleted = 0 |
| | | ) |
| | | </if> |
| | | ) |
| | | </if> |
| | | </where> |
| | | </select> |
| | | |
| | | </mapper> |