From 57c673aa3e83677bcf5d30b4b45d06bae6609db8 Mon Sep 17 00:00:00 2001 From: liusuyi <1951119284@qq.com> Date: 星期四, 08 八月 2024 16:14:40 +0800 Subject: [PATCH] 优化:获取会话 --- ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml | 29 +++++++++++++++++++++++++++++ 1 files changed, 29 insertions(+), 0 deletions(-) diff --git a/ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml b/ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml index 44a6ef9..65a9bc3 100644 --- a/ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml +++ b/ard-work/src/main/resources/mapper/alarmpoints/ArdAlarmpointsWellMapper.xml @@ -298,4 +298,33 @@ <select id="getWellById" resultMap="ArdAlarmpointsWellOnlyResult"> select aaw.* from ard_alarmpoints_well aaw where aaw.id = #{id} </select> + + + <select id="conditionList" resultType="com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell"> + Select * from ard_alarmpoints_well well + where WHERE well.well_id = #{wellId} + and well.dept_id in + <foreach item="deptList" collection="deptList" open="(" separator="," close=")"> + #{deptList} + </foreach> + </select> + + <select id="getArdAlarmpointsWellByDeptIdAndDistance" resultMap="ArdAlarmpointsWellOnlyResult"> + select * from ard_alarmpoints_well aaw + where aaw.dept_id in ( + with recursive rsd as ( + select sd.dept_id from sys_dept sd where sd.dept_id = #{deptId} + union + select csd.dept_id from sys_dept csd inner join rsd on rsd.dept_id = csd.parent_id + ) + select * from rsd) and f_compute_distance(aaw.longitude,aaw.latitude,cast(#{lonM} as numeric),cast(#{latM} as numeric)) <= (select max(t.distance) from ( + select f_compute_distance(cast(#{lonM} as numeric),cast(#{latM} as numeric),cast(#{lonA} as numeric),cast(#{latA} as numeric)) as distance + union + select f_compute_distance(cast(#{lonM} as numeric),cast(#{latM} as numeric),cast(#{lonB} as numeric),cast(#{latB} as numeric)) as distance + union + select f_compute_distance(cast(#{lonM} as numeric),cast(#{latM} as numeric),cast(#{lonC} as numeric),cast(#{latC} as numeric)) as distance + union + select f_compute_distance(cast(#{lonM} as numeric),cast(#{latM} as numeric),cast(#{lonD} as numeric),cast(#{latD} as numeric)) as distance + )t) + </select> </mapper> -- Gitblit v1.9.3