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