From d4c8e72800fcf6fbaa3804d383c7b6a23f826f3e Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 20 八月 2025 14:35:00 +0800
Subject: [PATCH] 修改bug
---
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml | 695 +++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 527 insertions(+), 168 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 48a5d81..bf62b09 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
@@ -553,30 +553,50 @@
</if>
</trim>
</select>
+
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴浠庢湭寮�杩囬榾鐨勫彇姘村彛鏁伴噺-->
<select id="getNeverOpenValveIntakesCount" resultType="java.lang.Long">
SELECT COUNT(*) AS recordCount
FROM pr_intake inta
- INNER JOIN ba_block blo ON blo.id = inta.blockId
- WHERE inta.deleted = 0
- AND NOT EXISTS(SELECT *
- FROM rm_open_close_valve_history
- WHERE op_dt BETWEEN #{timeStart} AND #{timeStop}
- AND intake_id = inta.id)
+ LEFT JOIN
+ (SELECT intake_id FROM rm_open_close_valve_history
+ <where>
+ <if test = "idStart != null">
+ id <![CDATA[>=]]> #{idStart}
+ </if>
+ <if test = "idEnd != null">
+ AND id <![CDATA[<=]]> #{idEnd}
+ </if>
+ </where>) his
+ ON his.intake_id = inta.id
+ LEFT JOIN ba_block blo ON blo.id = inta.blockId
+ LEFT JOIN pr_controller pct ON inta.id = pct.intakeId
+ WHERE his.intake_id IS NULL AND inta.deleted = 0
</select>
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴浠庢湭寮�杩囬榾鐨勫彇姘村彛-->
- <select id="getNeverOpenValveIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntake">
- SELECT inta.id AS intakeId,
- inta.name AS intakeNum,
- blo.name AS blockName
+ <select id="getNeverOpenValveIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeUnOpenValve">
+ SELECT inta.id AS intakeId,
+ inta.name AS intakeNum,
+ inta.lng AS lng,
+ inta.lat AS lat,
+ blo.name AS blockName,
+ pct.rtuAddr AS rtuAddr
FROM pr_intake inta
- INNER JOIN ba_block blo ON blo.id = inta.blockId
- WHERE inta.deleted = 0
- AND NOT EXISTS(SELECT *
- FROM rm_open_close_valve_history
- WHERE op_dt BETWEEN #{timeStart} AND #{timeStop}
- AND intake_id = inta.id)
- ORDER BY inta.id
+ LEFT JOIN
+ (SELECT intake_id FROM rm_open_close_valve_history
+ <where>
+ <if test = "idStart != null">
+ id <![CDATA[>=]]> #{idStart}
+ </if>
+ <if test = "idEnd != null">
+ AND id <![CDATA[<=]]> #{idEnd}
+ </if>
+ </where>) his
+ ON his.intake_id = inta.id
+ LEFT JOIN ba_block blo ON blo.id = inta.blockId
+ LEFT JOIN pr_controller pct ON inta.id = pct.intakeId
+ WHERE his.intake_id IS NULL AND inta.deleted = 0
+ 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}
@@ -591,10 +611,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
+ INNER 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
@@ -604,22 +625,26 @@
SELECT COUNT(*) AS recordCount,
inta.id AS intakeId,
inta.name AS intakeNum,
+ inta.lng AS lng,
+ inta.lat AS lat,
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
+ INNER 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 +653,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
+ INNER 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
@@ -641,16 +667,19 @@
SELECT COUNT(*) AS recordCount,
inta.id AS intakeId,
inta.name AS intakeNum,
+ inta.lng AS lng,
+ inta.lat AS lat,
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
+ INNER 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}
@@ -660,20 +689,69 @@
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟瓒呰繃鎸囧畾鍊肩殑鍐滄埛鏁伴噺-->
<select id="getLargeOpenCountClientsCount" resultType="java.lang.Long">
+ SELECT COUNT(*)
+ FROM se_client cli
+ inner join (
+ SELECT client_id, COUNT(*) AS openCount
+ FROM rm_open_close_valve_history
+ <where>
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ op_dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ group by client_id
+ <if test="openCount != null and openCount > 0">
+ having openCount > #{openCount}
+ </if>
+ ) as his on his.client_id = cli.id
+ </select>
+ <!-- 2025-07-29 涓嬮潰SQL鏌ヨ澶參锛屽簾寮� -->
+ <select id="_getLargeOpenCountClientsCount" resultType="java.lang.Long">
SELECT COUNT(*) AS recordCount
FROM se_client cli
<where>
- <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and openCount != null">
- (SELECT COUNT(*)
- FROM rm_open_close_valve_history his
- WHERE his.client_id = cli.id
- AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) > #{openCount}
+ (SELECT COUNT(*)
+ FROM rm_open_close_valve_history his
+ WHERE his.client_id = cli.id
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}
</if>
+ ) > #{openCount}
</where>
</select>
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟瓒呰繃鎸囧畾鍊肩殑鍐滄埛-->
<select id="getLargeOpenCountClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
+ SELECT cli.id AS clientId,
+ cli.name AS clientName,
+ cli.clientNum,
+ cli.address,
+ cli.phone,
+ cli.idCard,
+ his.openCount
+ FROM se_client cli
+ inner join (
+ SELECT client_id, COUNT(*) AS openCount
+ FROM rm_open_close_valve_history
+ <where>
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ op_dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ group by client_id
+ <if test="openCount != null and openCount > 0">
+ having openCount > #{openCount}
+ </if>
+ ) as his on his.client_id = cli.id
+ ORDER BY cli.id
+ <trim prefix="limit ">
+ <if test="start != null and count != null">
+ #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+ </if>
+ </trim>
+ </select>
+ <!-- 2025-07-29 涓嬮潰SQL鏌ヨ澶參锛屽簾寮� -->
+ <select id="_getLargeOpenCountClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
SELECT cli.id AS clientId,
cli.name AS clientName,
cli.clientNum,
@@ -685,17 +763,18 @@
<where>
his.client_id = cli.id
<if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
- AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}
+ AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}
</if>
</where>) AS openCount
FROM se_client cli
<where>
- <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and openCount != null">
- (SELECT COUNT(*)
- FROM rm_open_close_valve_history his
- WHERE his.client_id = cli.id
- AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) > #{openCount}
+ (SELECT COUNT(*)
+ FROM rm_open_close_valve_history his
+ WHERE his.client_id = cli.id
+ <if test="timeStart != null and timeStart != '' and timeStop != null">
+ AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}
</if>
+ ) > #{openCount}
</where>
ORDER BY cli.id
<trim prefix="limit ">
@@ -707,20 +786,71 @@
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟浣庝簬鎸囧畾鍊肩殑鍐滄埛鏁伴噺-->
<select id="getSmallOpenCountClientsCount" resultType="java.lang.Long">
+ SELECT COUNT(*)
+ FROM se_client cli
+ inner join (
+ SELECT client_id, COUNT(*) AS openCount
+ FROM rm_open_close_valve_history
+ <where>
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ op_dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ group by client_id
+ <if test="openCount != null and openCount > 0">
+ having openCount < #{openCount}
+ </if>
+ ) as his on his.client_id = cli.id
+ </select>
+ <!-- 2025-07-29 涓嬮潰SQL鏌ヨ澶參锛屽簾寮� -->
+ <select id="_getSmallOpenCountClientsCount" resultType="java.lang.Long">
SELECT COUNT(*) AS recordCount
FROM se_client cli
<where>
- <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and openCount != null">
- (SELECT COUNT(*)
- FROM rm_open_close_valve_history his
- WHERE his.client_id = cli.id
- AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) < #{openCount}
+ (SELECT COUNT(*)
+ FROM rm_open_close_valve_history his
+ WHERE his.client_id = cli.id
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ <if test="openCount != null">
+ ) < #{openCount}
</if>
</where>
</select>
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴寮�闃�娆℃暟浣庝簬鎸囧畾鍊肩殑鍐滄埛-->
<select id="getSmallOpenCountClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
+ SELECT cli.id AS clientId,
+ cli.name AS clientName,
+ cli.clientNum,
+ cli.address,
+ cli.phone,
+ cli.idCard,
+ his.openCount
+ FROM se_client cli
+ inner join (
+ SELECT client_id, COUNT(*) AS openCount
+ FROM rm_open_close_valve_history
+ <where>
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ op_dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ group by client_id
+ <if test="openCount != null and openCount > 0">
+ having openCount < #{openCount}
+ </if>
+ ) as his on his.client_id = cli.id
+ ORDER BY cli.id
+ <trim prefix="limit ">
+ <if test="start != null and count != null">
+ #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+ </if>
+ </trim>
+ </select>
+ <!-- 2025-07-29 涓嬮潰SQL鏌ヨ澶參锛屽簾寮� -->
+ <select id="_getSmallOpenCountClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
SELECT cli.id AS clientId,
cli.name AS clientName,
cli.clientNum,
@@ -737,11 +867,14 @@
</where>) AS openCount
FROM se_client cli
<where>
- <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and openCount != null">
- (SELECT COUNT(*)
- FROM rm_open_close_valve_history his
- WHERE his.client_id = cli.id
- AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) < #{openCount}
+ (SELECT COUNT(*)
+ FROM rm_open_close_valve_history his
+ WHERE his.client_id = cli.id
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ <if test="openCount != null">
+ < #{openCount}
</if>
</where>
ORDER BY cli.id
@@ -754,6 +887,24 @@
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按閲忚秴杩囨寚瀹氬�肩殑鍐滄埛鏁伴噺-->
<select id="getLargeWaterConsumptionClientsCount" resultType="java.lang.Long">
+ SELECT COUNT(*)
+ FROM se_client cli
+ inner join (
+ SELECT client_id, SUM(cl_this_amount) AS waterConsumption
+ FROM rm_open_close_valve_history
+ <where>
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ op_dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ group by client_id
+ <if test="waterConsumption != null and waterConsumption > 0">
+ having waterConsumption > #{waterConsumption}
+ </if>
+ ) as his on his.client_id = cli.id
+ </select>
+ <!-- 2025-07-29 涓嬮潰SQL鏌ヨ澶參锛屽簾寮� -->
+ <select id="_getLargeWaterConsumptionClientsCount" resultType="java.lang.Long">
SELECT COUNT(*) AS recordCount
FROM se_client cli
<where>
@@ -768,6 +919,36 @@
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按閲忚秴杩囨寚瀹氬�肩殑鍐滄埛-->
<select id="getLargeWaterConsumptionClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
+ SELECT cli.id AS clientId,
+ cli.name AS clientName,
+ cli.clientNum,
+ cli.address,
+ cli.phone,
+ cli.idCard,
+ his.waterConsumption
+ FROM se_client cli
+ inner join (
+ SELECT client_id, SUM(cl_this_amount) AS waterConsumption
+ FROM rm_open_close_valve_history
+ <where>
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ op_dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ group by client_id
+ <if test="waterConsumption != null and waterConsumption > 0">
+ having waterConsumption > #{waterConsumption}
+ </if>
+ ) as his on his.client_id = cli.id
+ ORDER BY cli.id
+ <trim prefix="limit ">
+ <if test="start != null and count != null">
+ #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+ </if>
+ </trim>
+ </select>
+ <!-- 2025-07-29 涓嬮潰SQL鏌ヨ澶參锛屽簾寮� -->
+ <select id="_getLargeWaterConsumptionClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
SELECT cli.id AS clientId,
cli.name AS clientName,
cli.clientNum,
@@ -802,6 +983,24 @@
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按閲忎綆浜庢寚瀹氬�肩殑鍐滄埛鏁伴噺-->
<select id="getSmallWaterConsumptionClientsCount" resultType="java.lang.Long">
+ SELECT COUNT(*)
+ FROM se_client cli
+ inner join (
+ SELECT client_id, SUM(cl_this_amount) AS waterConsumption
+ FROM rm_open_close_valve_history
+ <where>
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ op_dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ group by client_id
+ <if test="waterConsumption != null and waterConsumption > 0">
+ having waterConsumption < #{waterConsumption}
+ </if>
+ ) as his on his.client_id = cli.id
+ </select>
+ <!-- 2025-07-29 涓嬮潰SQL鏌ヨ澶參锛屽簾寮� -->
+ <select id="_getSmallWaterConsumptionClientsCount" resultType="java.lang.Long">
SELECT COUNT(*) AS recordCount
FROM se_client cli
<where>
@@ -816,6 +1015,36 @@
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按閲忎綆浜庢寚瀹氬�肩殑鍐滄埛-->
<select id="getSmallWaterConsumptionClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
+ SELECT cli.id AS clientId,
+ cli.name AS clientName,
+ cli.clientNum,
+ cli.address,
+ cli.phone,
+ cli.idCard,
+ his.waterConsumption
+ FROM se_client cli
+ inner join (
+ SELECT client_id, SUM(cl_this_amount) AS waterConsumption
+ FROM rm_open_close_valve_history
+ <where>
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ op_dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ group by client_id
+ <if test="waterConsumption != null and waterConsumption > 0">
+ having waterConsumption < #{waterConsumption}
+ </if>
+ ) as his on his.client_id = cli.id
+ ORDER BY cli.id
+ <trim prefix="limit ">
+ <if test="start != null and count != null">
+ #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+ </if>
+ </trim>
+ </select>
+ <!-- 2025-07-29 涓嬮潰SQL鏌ヨ澶參锛屽簾寮� -->
+ <select id="_getSmallWaterConsumptionClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
SELECT cli.id AS clientId,
cli.name AS clientName,
cli.clientNum,
@@ -850,6 +1079,24 @@
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦瓒呰繃鎸囧畾鍊肩殑鍐滄埛鏁伴噺-->
<select id="getLargeAmountSpentClientsCount" resultType="java.lang.Long">
+ SELECT COUNT(*)
+ FROM se_client cli
+ inner join (
+ SELECT client_id, SUM(cl_this_money) AS amountSpent
+ FROM rm_open_close_valve_history
+ <where>
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ op_dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ group by client_id
+ <if test="amountSpent != null and amountSpent > 0">
+ having amountSpent > #{amountSpent}
+ </if>
+ ) as his on his.client_id = cli.id
+ </select>
+ <!-- 2025-07-29 涓嬮潰SQL鏌ヨ澶參锛屽簾寮� -->
+ <select id="_getLargeAmountSpentClientsCount" resultType="java.lang.Long">
SELECT COUNT(*) AS recordCount
FROM se_client cli
<where>
@@ -863,6 +1110,36 @@
</select>
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦瓒呰繃鎸囧畾鍊肩殑鍐滄埛-->
<select id="getLargeAmountSpentClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
+ SELECT cli.id AS clientId,
+ cli.name AS clientName,
+ cli.clientNum,
+ cli.address,
+ cli.phone,
+ cli.idCard,
+ his.amountSpent
+ FROM se_client cli
+ inner join (
+ SELECT client_id, SUM(cl_this_money) AS amountSpent
+ FROM rm_open_close_valve_history
+ <where>
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ op_dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ group by client_id
+ <if test="amountSpent != null and amountSpent > 0">
+ having amountSpent > #{amountSpent}
+ </if>
+ ) as his on his.client_id = cli.id
+ ORDER BY cli.id
+ <trim prefix="limit ">
+ <if test="start != null and count != null">
+ #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+ </if>
+ </trim>
+ </select>
+ <!-- 2025-07-29 涓嬮潰SQL鏌ヨ澶參锛屽簾寮� -->
+ <select id="_getLargeAmountSpentClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
SELECT cli.id AS clientId,
cli.name AS clientName,
cli.clientNum,
@@ -897,6 +1174,24 @@
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦浣庝簬鎸囧畾鍊肩殑鍐滄埛鏁伴噺-->
<select id="getSmallAmountSpentClientsCount" resultType="java.lang.Long">
+ SELECT COUNT(*)
+ FROM se_client cli
+ inner join (
+ SELECT client_id, SUM(cl_this_money) AS amountSpent
+ FROM rm_open_close_valve_history
+ <where>
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ op_dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ group by client_id
+ <if test="amountSpent != null and amountSpent > 0">
+ having amountSpent < #{amountSpent}
+ </if>
+ ) as his on his.client_id = cli.id
+ </select>
+ <!-- 2025-07-29 涓嬮潰SQL鏌ヨ澶參锛屽簾寮� -->
+ <select id="_getSmallAmountSpentClientsCount" resultType="java.lang.Long">
SELECT COUNT(*) AS recordCount
FROM se_client cli
<where>
@@ -910,6 +1205,36 @@
</select>
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦浣庝簬鎸囧畾鍊肩殑鍐滄埛-->
<select id="getSmallAmountSpentClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
+ SELECT cli.id AS clientId,
+ cli.name AS clientName,
+ cli.clientNum,
+ cli.address,
+ cli.phone,
+ cli.idCard,
+ his.amountSpent
+ FROM se_client cli
+ inner join (
+ SELECT client_id, SUM(cl_this_money) AS amountSpent
+ FROM rm_open_close_valve_history
+ <where>
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ op_dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ group by client_id
+ <if test="amountSpent != null and amountSpent > 0">
+ having amountSpent < #{amountSpent}
+ </if>
+ ) as his on his.client_id = cli.id
+ ORDER BY cli.id
+ <trim prefix="limit ">
+ <if test="start != null and count != null">
+ #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+ </if>
+ </trim>
+ </select>
+ <!-- 2025-07-29 涓嬮潰SQL鏌ヨ澶參锛屽簾寮� -->
+ <select id="_getSmallAmountSpentClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
SELECT cli.id AS clientId,
cli.name AS clientName,
cli.clientNum,
@@ -944,6 +1269,24 @@
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按鏃堕暱瓒呰繃鎸囧畾鍊肩殑鍐滄埛鏁伴噺-->
<select id="getLargeWaterDurationClientsCount" resultType="java.lang.Long">
+ SELECT COUNT(*)
+ FROM se_client cli
+ inner join (
+ SELECT client_id, SUM(cl_this_time) AS waterDuration
+ FROM rm_open_close_valve_history
+ <where>
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ op_dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ group by client_id
+ <if test="waterDuration != null and waterDuration > 0">
+ having waterDuration > #{waterDuration}
+ </if>
+ ) as his on his.client_id = cli.id
+ </select>
+ <!-- 2025-07-29 涓嬮潰SQL鏌ヨ澶參锛屽簾寮� -->
+ <select id="_getLargeWaterDurationClientsCount" resultType="java.lang.Long">
SELECT COUNT(*) AS recordCount
FROM se_client cli
<where>
@@ -958,6 +1301,36 @@
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按鏃堕暱瓒呰繃鎸囧畾鍊肩殑鍐滄埛-->
<select id="getLargeWaterDurationClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
+ SELECT cli.id AS clientId,
+ cli.name AS clientName,
+ cli.clientNum,
+ cli.address,
+ cli.phone,
+ cli.idCard,
+ his.waterDuration
+ FROM se_client cli
+ inner join (
+ SELECT client_id, SUM(cl_this_time) AS waterDuration
+ FROM rm_open_close_valve_history
+ <where>
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ op_dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ group by client_id
+ <if test="waterDuration != null and waterDuration > 0">
+ having waterDuration > #{waterDuration}
+ </if>
+ ) as his on his.client_id = cli.id
+ ORDER BY cli.id
+ <trim prefix="limit ">
+ <if test="start != null and count != null">
+ #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+ </if>
+ </trim>
+ </select>
+ <!-- 2025-07-29 涓嬮潰SQL鏌ヨ澶參锛屽簾寮� -->
+ <select id="_getLargeWaterDurationClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
SELECT cli.id AS clientId,
cli.name AS clientName,
cli.clientNum,
@@ -992,6 +1365,24 @@
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按鏃堕暱浣庝簬鎸囧畾鍊肩殑鍐滄埛鏁伴噺-->
<select id="getSmallWaterDurationClientsCount" resultType="java.lang.Long">
+ SELECT COUNT(*)
+ FROM se_client cli
+ inner join (
+ SELECT client_id, SUM(cl_this_time) AS waterDuration
+ FROM rm_open_close_valve_history
+ <where>
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ op_dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ group by client_id
+ <if test="waterDuration != null and waterDuration > 0">
+ having waterDuration < #{waterDuration}
+ </if>
+ ) as his on his.client_id = cli.id
+ </select>
+ <!-- 2025-07-29 涓嬮潰SQL鏌ヨ澶參锛屽簾寮� -->
+ <select id="_getSmallWaterDurationClientsCount" resultType="java.lang.Long">
SELECT COUNT(*) AS recordCount
FROM se_client cli
<where>
@@ -1006,6 +1397,36 @@
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鐢ㄦ按鏃堕暱浣庝簬鎸囧畾鍊肩殑鍐滄埛-->
<select id="getSmallWaterDurationClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
+ SELECT cli.id AS clientId,
+ cli.name AS clientName,
+ cli.clientNum,
+ cli.address,
+ cli.phone,
+ cli.idCard,
+ his.waterDuration
+ FROM se_client cli
+ inner join (
+ SELECT client_id, SUM(cl_this_time) AS waterDuration
+ FROM rm_open_close_valve_history
+ <where>
+ <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
+ op_dt BETWEEN #{timeStart} AND #{timeStop}
+ </if>
+ </where>
+ group by client_id
+ <if test="waterDuration != null and waterDuration > 0">
+ having waterDuration < #{waterDuration}
+ </if>
+ ) as his on his.client_id = cli.id
+ ORDER BY cli.id
+ <trim prefix="limit ">
+ <if test="start != null and count != null">
+ #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+ </if>
+ </trim>
+ </select>
+ <!-- 2025-07-29 涓嬮潰SQL鏌ヨ澶參锛屽簾寮� -->
+ <select id="_getSmallWaterDurationClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
SELECT cli.id AS clientId,
cli.name AS clientName,
cli.clientNum,
@@ -1037,84 +1458,7 @@
</if>
</trim>
</select>
- <!--鎸囧畾鏃堕棿娈电敤姘撮噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙f暟閲�-->
- <select id="getUseWaterGtValueIntakesCount" resultType="java.lang.Long">
- select
- count(*)
- from
- ( SELECT
- inta.id AS intakeId,
- inta.NAME AS intakeNum,
- blo.NAME AS blockName ,
- IFNULL(SUM(rocvh.cl_this_amount),0) AS value
- FROM
- pr_intake inta
- INNER JOIN ba_block blo ON blo.id = inta.blockId
- LEFT JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id
- WHERE rocvh.op_dt >= #{timeStart} AND rocvh.cl_dt <= #{timeStop} AND inta.deleted = 0
- GROUP BY inta.id
- HAVING IFNULL(SUM(rocvh.cl_this_amount),0) > #{value}) c
- </select>
- <!--鎸囧畾鏃堕棿娈电敤姘撮噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�-->
- <select id="getUseWaterGtValueIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeAccumulateAmount">
- SELECT
- inta.id AS intakeId,
- inta.NAME AS intakeNum,
- blo.NAME AS blockName ,
- IFNULL(SUM(rocvh.cl_this_amount),0) AS value
- FROM
- pr_intake inta
- INNER JOIN ba_block blo ON blo.id = inta.blockId
- LEFT JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id
- WHERE rocvh.op_dt >= #{timeStart} AND rocvh.cl_dt <= #{timeStop} AND inta.deleted = 0
- GROUP BY inta.id
- HAVING IFNULL(SUM(rocvh.cl_this_amount),0) > #{value}
- ORDER BY inta.id
- <trim prefix="limit " >
- <if test="start != null and count != null">
- #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
- </if>
- </trim>
- </select>
- <!--鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙g殑鏁伴噺-->
- <select id="getExpenseGtValueIntakesCount" resultType="java.lang.Long">
- select
- count(*)
- from
- ( SELECT
- inta.id AS intakeId,
- inta.NAME AS intakeNum,
- blo.NAME AS blockName ,
- IFNULL(SUM(rocvh.cl_this_money),0) AS value
- FROM
- pr_intake inta
- INNER JOIN ba_block blo ON blo.id = inta.blockId
- LEFT JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id
- WHERE rocvh.op_dt >= #{timeStart} AND rocvh.cl_dt <= #{timeStop} AND inta.deleted = 0
- GROUP BY inta.id
- HAVING IFNULL(SUM(rocvh.cl_this_money),0) > #{value}) c
- </select>
- <!--鎸囧畾鏃堕棿娈靛唴娑堣垂閲戦瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�-->
- <select id="getExpenseGtValueIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeAccumulateAmount">
- SELECT
- inta.id AS intakeId,
- inta.NAME AS intakeNum,
- blo.NAME AS blockName ,
- IFNULL(SUM(rocvh.cl_this_money),0) AS value
- FROM
- pr_intake inta
- INNER JOIN ba_block blo ON blo.id = inta.blockId
- LEFT JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id
- WHERE rocvh.op_dt >= #{timeStart} AND rocvh.cl_dt <= #{timeStop} AND inta.deleted = 0
- GROUP BY inta.id
- HAVING IFNULL(SUM(rocvh.cl_this_money),0) > #{value}
- ORDER BY inta.id
- <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="getUseWaterDurationGtValueIntakesCount" resultType="java.lang.Long">
select
@@ -1142,8 +1486,8 @@
IFNULL(SUM(rocvh.cl_this_time),0) AS recordCount
FROM
pr_intake inta
- INNER JOIN ba_block blo ON blo.id = inta.blockId
- LEFT JOIN rm_open_close_valve_history rocvh ON rocvh.intake_id = inta.id
+ LEFT 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 >= #{timeStart} AND rocvh.cl_dt <= #{timeStop} AND inta.deleted = 0
GROUP BY inta.id
HAVING IFNULL(SUM(rocvh.cl_this_time),0) > #{value}
@@ -1157,31 +1501,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
+ LEFT 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 <![CDATA[>=]]> #{idStart} AND rocvh.id <![CDATA[<=]]> #{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
+ LEFT 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 <![CDATA[>=]]> #{idStart} AND rocvh.id <![CDATA[<=]]> #{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}
@@ -1192,30 +1537,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
+ LEFT 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 <![CDATA[>=]]> #{idStart} AND rocvh.id <![CDATA[<=]]> #{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
+ LEFT 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 <![CDATA[>=]]> #{idStart} AND rocvh.id <![CDATA[<=]]> #{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}
@@ -1376,12 +1722,25 @@
<select id="statisticsByIc" resultType="com.dy.pipIrrGlobal.voSt.VoIcConsumeStatistics">
select ocvh.client_id as clientId,
cc.id as cardId,
+ sum(ocvh.cl_this_amount) as water,
sum(ocvh.cl_this_money) as amount,
+ sum(ocvh.cl_this_time) as duration,
count(ocvh.id) as times
from rm_open_close_valve_history ocvh
- inner join se_client_card cc on cc.cardNum = ocvh.cl_ic_card_no
- where ocvh.cl_dt <![CDATA[>=]]> #{startDt, jdbcType=BIGINT}
- and ocvh.cl_dt <![CDATA[<=]]> #{endDt, jdbcType=BIGINT}
+ inner join se_client_card cc on CAST(cc.cardNum AS CHAR) = ocvh.cl_ic_card_no
+ where ocvh.cl_dt <![CDATA[>=]]> #{startDt, jdbcType=TIMESTAMP }
+ and ocvh.cl_dt <![CDATA[<=]]> #{endDt, jdbcType=TIMESTAMP}
group by ocvh.client_id, cc.id
</select>
+ <select id="statisticsByClient" resultType="com.dy.pipIrrGlobal.voSt.VoClientConsumeStatistics">
+ select client_id as clientId,
+ sum(cl_this_amount) as water,
+ sum(cl_this_money) as amount,
+ sum(cl_this_time) as duration,
+ count(id) as times
+ from rm_open_close_valve_history
+ where cl_dt <![CDATA[>=]]> #{startDt, jdbcType=TIMESTAMP}
+ and cl_dt <![CDATA[<=]]> #{endDt, jdbcType=TIMESTAMP}
+ group by client_id
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0