From 742b6bbac1b4609386817a6e6fb489ec098a5490 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期二, 21 一月 2025 18:29:44 +0800
Subject: [PATCH] 重构获取分水房详情接口
---
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml | 276 ++++++++++++++++++++++++++-----------------------------
1 files changed, 130 insertions(+), 146 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 a9c9b6d..6c5d694 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
@@ -507,7 +507,7 @@
oh.op_ic_card_no AS openIcNum,
oh.op_ic_card_addr AS openIcAddr,
oh.open_dt AS openTime,
- oh.op_type AS openType_,
+ oh.op_type AS opType,
oh.op_order_no AS openOrderNo,
oh.op_total_amount AS openTotalAmount,
oh.op_remain_money AS openRemainMoney,
@@ -516,7 +516,7 @@
oh.cl_ic_card_no AS closeIcNum,
oh.cl_ic_card_addr AS closeIcAddr,
oh.close_dt AS closeTime,
- oh.cl_type AS closeType_,
+ oh.cl_type AS clType,
oh.cl_this_amount AS closeThisAmount,
oh.cl_this_time AS thisTime,
oh.cl_price AS closePrice,
@@ -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}
@@ -1037,84 +1066,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 +1094,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 +1109,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 +1145,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}
@@ -1367,4 +1321,34 @@
</if>
</trim>
</select>
+
+
+
+ <!-- /////////////////////////////////// -->
+ <!-- 缁熻鐩稿叧 -->
+ <!-- /////////////////////////////////// -->
+ <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 CAST(cc.cardNum AS CHAR) = ocvh.cl_ic_card_no
+ where ocvh.cl_dt <![CDATA[>=]]> #{startDt, jdbcType=BIGINT}
+ and ocvh.cl_dt <![CDATA[<=]]> #{endDt, jdbcType=BIGINT}
+ 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=BIGINT}
+ and cl_dt <![CDATA[<=]]> #{endDt, jdbcType=BIGINT}
+ group by client_id
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0