Browse Source

perf:灵州换流变小模型接口sql性能优化

master
wangguangyuan 4 weeks ago
parent
commit
3848f035cc
1 changed files with 39 additions and 23 deletions
  1. +39
    -23
      src/main/resources/mapper/PatrolResultMapper.xml

+ 39
- 23
src/main/resources/mapper/PatrolResultMapper.xml View File

@ -798,7 +798,8 @@
</select> </select>
<select id="selectPatrolResults" resultType="com.inspect.simulator.domain.result.PatrolResult"> <select id="selectPatrolResults" resultType="com.inspect.simulator.domain.result.PatrolResult">
select f.line_id lineId,
SELECT
f.line_id lineId,
s.task_patrolled_id taskPatrolledId, s.task_patrolled_id taskPatrolledId,
s.start_time startTime, s.start_time startTime,
d.area_name areaName, d.area_name areaName,
@ -813,28 +814,43 @@
ra.result_type resultType, ra.result_type resultType,
ra.filter filter, ra.filter filter,
ra.res_value resValue ra.res_value resValue
from patrol_task_status s
left join result_analysis ra on ra.task_patrol_id = s.task_patrolled_id
left join patrol_result f on ra.business_id = f.line_id and ra.objectId = f.device_id
left join basedata_patrolpoint a on ra.objectId = a.patrol_point_id
left join basedata_device c on a.device_id = c.device_id
left join basedata_area e on a.area_id = e.area_id
left join basedata_area d on d.area_id = e.parent_id
where
a.patrol_point_id is not null and (ra.filter = '0' or ra.filter = '1')
<if test="astId != null and astId != ''">
and c.phy_asset_id = #{astId}
</if>
<if test="deviceType != null and deviceType != ''">
and c.device_type_name like concat('%',#{deviceType},'%')
</if>
<if test="startTime != null and startTime != ''">
and s.start_time &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
and s.start_time &lt;= #{endTime}
</if>
order by s.task_patrolled_id desc
FROM (
SELECT s.task_patrolled_id
FROM patrol_task_status s
INNER JOIN result_analysis ra ON ra.task_patrol_id = s.task_patrolled_id
AND (ra.filter = '0' OR ra.filter = '1')
INNER JOIN basedata_patrolpoint a ON ra.objectId = a.patrol_point_id
AND a.patrol_point_id IS NOT NULL
INNER JOIN basedata_device c ON a.device_id = c.device_id
<where>
<if test="astId != null and astId != ''">
AND c.phy_asset_id = #{astId}
</if>
<if test="deviceType != null and deviceType != ''">
AND c.device_type_name LIKE CONCAT('%', #{deviceType}, '%')
</if>
<if test="startTime != null and startTime != ''">
AND s.start_time &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND s.start_time &lt;= #{endTime}
</if>
</where>
GROUP BY s.task_patrolled_id
ORDER BY s.task_patrolled_id DESC
LIMIT 10
) t
LEFT JOIN patrol_task_status s ON s.task_patrolled_id = t.task_patrolled_id
LEFT JOIN result_analysis ra ON ra.task_patrol_id = s.task_patrolled_id
AND (ra.filter = '0' OR ra.filter = '1')
LEFT JOIN patrol_result f ON ra.business_id = f.line_id
AND ra.objectId = f.device_id
AND ra.task_patrol_id = f.task_patrolled_id
LEFT JOIN basedata_patrolpoint a ON ra.objectId = a.patrol_point_id
LEFT JOIN basedata_device c ON a.device_id = c.device_id
LEFT JOIN basedata_area e ON a.area_id = e.area_id
LEFT JOIN basedata_area d ON d.area_id = e.parent_id
ORDER BY s.task_patrolled_id DESC
</select> </select>
<select id="selectPatrolResultOld" resultType="com.inspect.simulator.domain.result.PatrolResult"> <select id="selectPatrolResultOld" resultType="com.inspect.simulator.domain.result.PatrolResult">


Loading…
Cancel
Save