From db31f95644e77010ffb88ac9e57e618818737733 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期四, 09 一月 2025 11:25:23 +0800 Subject: [PATCH] 优化”开阀操作次数“、”关阀操作次数“、”时间段内开阀次数超过指定值“、”时间段内开阀次数低于指定值“、”时间段有开阀无关阀“、”时间段无开阀有关阀“功能实现及sql。 --- pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml | 97 ++++++++++++++++++++++++++---------------------- 1 files changed, 52 insertions(+), 45 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml index 8156a0d..0728c4a 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml @@ -591,10 +591,11 @@ inta.name AS intakeNum, blo.name AS blockName FROM pr_intake inta - LEFT JOIN (SELECT * - FROM rm_open_close_valve_history - WHERE op_dt BETWEEN #{timeStart} AND #{timeStop}) his ON his.intake_id = inta.id - INNER JOIN ba_block blo ON blo.id = inta.blockId + LEFT JOIN (SELECT intake_id + FROM rm_open_close_valve_history + WHERE id <![CDATA[>=]]> #{idStart} AND id <![CDATA[<=]]> #{idEnd} + ) his ON his.intake_id = inta.id + INNER JOIN ba_block blo ON blo.id = inta.blockId WHERE inta.deleted = 0 GROUP BY intakeId, intakeNum, blockName HAVING recordCount > #{value}) a @@ -606,20 +607,22 @@ inta.name AS intakeNum, blo.name AS blockName FROM pr_intake inta - LEFT JOIN (SELECT * - FROM rm_open_close_valve_history - WHERE op_dt BETWEEN #{timeStart} AND #{timeStop}) his ON his.intake_id = inta.id - INNER JOIN ba_block blo ON blo.id = inta.blockId + LEFT JOIN(SELECT intake_id + FROM rm_open_close_valve_history + WHERE id <![CDATA[>=]]> #{idStart} AND id <![CDATA[<=]]> #{idEnd} + ) his ON his.intake_id = inta.id + INNER JOIN ba_block blo ON blo.id = inta.blockId WHERE inta.deleted = 0 GROUP BY intakeId, intakeNum, blockName HAVING recordCount > #{value} - <!-- ORDER BY inta.id--> + ORDER BY intakeId DESC <trim prefix="limit "> <if test="start != null and count != null"> #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} </if> </trim> </select> + <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟浣庝簬鎸囧畾鍊肩殑鍙栨按鍙f暟閲�--> <select id="getOpenValveLtIntakesCount" resultType="java.lang.Long"> select count(*) @@ -628,10 +631,11 @@ inta.name AS intakeNum, blo.name AS blockName FROM pr_intake inta - LEFT JOIN (SELECT * - FROM rm_open_close_valve_history - WHERE op_dt BETWEEN #{timeStart} AND #{timeStop}) his ON his.intake_id = inta.id - INNER JOIN ba_block blo ON blo.id = inta.blockId + LEFT JOIN (SELECT intake_id + FROM rm_open_close_valve_history + WHERE id <![CDATA[>=]]> #{idStart} AND id <![CDATA[<=]]> #{idEnd} + ) his ON his.intake_id = inta.id + INNER JOIN ba_block blo ON blo.id = inta.blockId WHERE inta.deleted = 0 GROUP BY intakeId, intakeNum, blockName HAVING recordCount < #{value}) a @@ -643,14 +647,15 @@ inta.name AS intakeNum, blo.name AS blockName FROM pr_intake inta - LEFT JOIN (SELECT * - FROM rm_open_close_valve_history - WHERE op_dt BETWEEN #{timeStart} AND #{timeStop}) his ON his.intake_id = inta.id - INNER JOIN ba_block blo ON blo.id = inta.blockId + LEFT JOIN(SELECT intake_id + FROM rm_open_close_valve_history + WHERE id <![CDATA[>=]]> #{idStart} AND id <![CDATA[<=]]> #{idEnd} + ) his ON his.intake_id = inta.id + INNER JOIN ba_block blo ON blo.id = inta.blockId WHERE inta.deleted = 0 GROUP BY intakeId, intakeNum, blockName HAVING recordCount < #{value} - <!-- ORDER BY inta.id--> + ORDER BY intakeId DESC <trim prefix="limit "> <if test="start != null and count != null"> #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} @@ -1080,31 +1085,32 @@ <!--鎸囧畾鏃堕棿娈� 鏈夊紑闃� 鏃犲叧闃�鐨勫彇姘村彛鏁伴噺--> <select id="getHaveOpenNoCloseIntakesCount" resultType="java.lang.Long"> select count(*) from - ( - SELECT - inta.id AS intakeId, - inta.NAME AS intakeNum, - blo.NAME AS blockName - FROM - pr_intake inta - INNER JOIN ba_block blo ON blo.id = inta.blockId - inner JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id - WHERE rocvh.op_dt BETWEEN #{timeStart} AND #{timeStop} AND rocvh.cl_dt IS NULL AND inta.deleted = 0 - GROUP BY inta.id) c + ( + SELECT + inta.id AS intakeId + FROM + pr_intake inta + INNER JOIN ba_block blo ON blo.id = inta.blockId + inner JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id + WHERE inta.deleted = 0 AND rocvh.id >= #{idStart} AND rocvh.id >= #{idEnd} AND rocvh.cl_dt IS NULL + GROUP BY inta.id + ) c </select> <!--鎸囧畾鏃堕棿娈� 鏈夊紑闃� 鏃犲叧闃�鐨勫彇姘村彛--> <select id="getHaveOpenNoCloseIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntake"> SELECT inta.id AS intakeId, inta.NAME AS intakeNum, + inta.lng AS lng, + inta.lat AS lat, blo.NAME AS blockName FROM pr_intake inta - INNER JOIN ba_block blo ON blo.id = inta.blockId - inner JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id - WHERE rocvh.op_dt BETWEEN #{timeStart} AND #{timeStop} AND rocvh.cl_dt IS NULL AND inta.deleted = 0 + INNER JOIN ba_block blo ON blo.id = inta.blockId + inner JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id + WHERE inta.deleted = 0 AND rocvh.id >= #{idStart} AND rocvh.id >= #{idEnd} AND rocvh.cl_dt IS NULL GROUP BY inta.id - ORDER BY inta.id + ORDER BY inta.id DESC <trim prefix="limit "> <if test="start != null and count != null"> #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} @@ -1115,30 +1121,31 @@ <select id="getNoOpenHaveCloseIntakesCount" resultType="java.lang.Long"> select count(*) from ( - SELECT - inta.id AS intakeId, - inta.NAME AS intakeNum, - blo.NAME AS blockName - FROM - pr_intake inta - INNER JOIN ba_block blo ON blo.id = inta.blockId - inner JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id - WHERE rocvh.cl_dt BETWEEN #{timeStart} AND #{timeStop} AND rocvh.op_dt IS NULL AND inta.deleted = 0 - GROUP BY inta.id) c + SELECT + inta.id AS intakeId + FROM + pr_intake inta + INNER JOIN ba_block blo ON blo.id = inta.blockId + inner JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id + WHERE inta.deleted = 0 AND rocvh.id >= #{idStart} AND rocvh.id >= #{idEnd} AND rocvh.op_dt IS NULL + GROUP BY inta.id + ) c </select> <!--鎸囧畾鏃堕棿娈� 鏃犲紑闃� 鏈夊叧闃�鐨勫彇姘村彛--> <select id="getNoOpenHaveCloseIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntake"> SELECT inta.id AS intakeId, inta.NAME AS intakeNum, + inta.lng AS lng, + inta.lat AS lat, blo.NAME AS blockName FROM pr_intake inta INNER JOIN ba_block blo ON blo.id = inta.blockId inner JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id - WHERE rocvh.cl_dt BETWEEN #{timeStart} AND #{timeStop} AND rocvh.op_dt IS NULL AND inta.deleted = 0 + WHERE inta.deleted = 0 AND rocvh.id >= #{idStart} AND rocvh.id >= #{idEnd} AND rocvh.op_dt IS NULL GROUP BY inta.id - ORDER BY inta.id + ORDER BY inta.id DESC <trim prefix="limit "> <if test="start != null and count != null"> #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} -- Gitblit v1.8.0