From 6dacac48ebb596797dfd8e5bf3a803ed0b583643 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 05 二月 2025 17:11:31 +0800
Subject: [PATCH] 取水口综合信息-统计数据逻辑处理模块完善
---
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml | 155 ++++++++++++++++++++++++++++++---------------------
1 files changed, 91 insertions(+), 64 deletions(-)
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml
index edfd7d1..0f63312 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml
@@ -200,13 +200,13 @@
SELECT
COUNT(*) AS recordCount
FROM rm_on_hour_report_history oh
- INNER JOIN pr_intake inta ON inta.id = oh.intake_id
+ INNER JOIN pr_intake inta ON inta.id = oh.intake_id
<where>
<if test="intakeId != null and intakeId >0">
AND oh.intake_id = #{intakeId}
</if>
- <if test = "intakeName != null and intakeName !=''">
- AND inta.name LIKE CONCAT('%',#{intakeName},'%')
+ <if test = "intakeNum != null and intakeNum !=''">
+ AND inta.name LIKE CONCAT('%',#{intakeNum},'%')
</if>
<if test = "rtuAddr != null and rtuAddr !=''">
AND oh.rtu_addr LIKE CONCAT('%',#{rtuAddr},'%')
@@ -235,16 +235,16 @@
INNER JOIN pr_intake inta ON inta.id = oh.intake_id
<where>
<if test="intakeId != null and intakeId >0">
- AND oh.intake_id = #{intakeId}
+ AND oh.intake_id = #{intakeId,jdbcType=BIGINT}
</if>
<if test = "intakeNum != null and intakeNum !=''">
- AND inta.name LIKE CONCAT('%',#{intakeNum},'%')
+ AND inta.name LIKE CONCAT('%',#{intakeNum,jdbcType=VARCHAR},'%')
</if>
<if test = "rtuAddr != null and rtuAddr !=''">
- AND oh.rtu_addr LIKE CONCAT('%',#{rtuAddr},'%')
+ AND oh.rtu_addr LIKE CONCAT('%',#{rtuAddr,jdbcType=VARCHAR},'%')
</if>
<if test = "timeStart != null and timeStop != null">
- AND oh.dt BETWEEN #{timeStart} AND #{timeStop}
+ AND oh.dt BETWEEN #{timeStart,jdbcType=INTEGER} AND #{timeStop,jdbcType=INTEGER}
</if>
</where>
ORDER BY oh.dt DESC
@@ -260,10 +260,19 @@
SELECT
COUNT(*) AS recordCount
FROM pr_intake inta
- LEFT JOIN (SELECT * FROM rm_on_hour_report_history WHERE 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_on_hour_report_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
WHERE his.intake_id IS NULL AND inta.deleted = 0
-
</select>
<!--鑾峰彇鎸囧畾鏃堕棿娈靛唴鏈笂绾跨殑鍙栨按鍙�-->
@@ -271,10 +280,22 @@
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
- LEFT JOIN (SELECT * FROM rm_on_hour_report_history WHERE 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_on_hour_report_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
WHERE his.intake_id IS NULL AND inta.deleted = 0
ORDER BY inta.id
<trim prefix="limit " >
@@ -283,61 +304,67 @@
</if>
</trim>
</select>
-
- <!--鑾峰彇绱娴侀噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙f暟閲�-->
- <select id="getLargeFlowIntakesCount" resultType="java.lang.Long">
+ <!--鎸囧畾鏃堕棿娈靛唴绱Н娴侀噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙f暟閲�-->
+ <select id="getTotalFlowGtValueIntakesCount" resultType="java.lang.Long">
+ select
+ count(*)
+ from
+ (
SELECT
- COUNT(*) AS recordCount
- FROM pr_intake inta
- INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
- INNER JOIN ba_block blo ON blo.id = inta.blockId
- WHERE inta.deleted = 0 AND hou.total_amount > #{totalAmount}
- </select>
-
- <!--鑾峰彇绱娴侀噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�-->
- <select id="getLargeFlowIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoCumulativeFlow">
+ inta.id AS intakeId,
+ inta.NAME AS intakeNum,
+ blo.NAME AS blockName ,
+ IFNULL(b.total_amount, 0)-IFNULL(a.total_amount, 0) AS value
+ FROM
+ pr_intake inta
+ INNER JOIN ba_block blo ON blo.id = inta.blockId
+ LEFT JOIN (SELECT
+ intake_id,
+ total_amount
+ FROM
+ rm_on_hour_report_history rohrs
+ WHERE rohrs.rtu_dt = ( SELECT MAX(rtu_dt)
+ FROM rm_on_hour_report_history
+ WHERE rtu_dt <= #{timeStart})) AS a ON inta.id = a.intake_id
+ LEFT JOIN ( SELECT
+ intake_id,
+ total_amount
+ FROM
+ rm_on_hour_report_history rohrs
+ WHERE rohrs.rtu_dt = ( SELECT MAX(rtu_dt)
+ FROM rm_on_hour_report_history
+ WHERE rtu_dt <= #{timeStop})) AS b ON inta.id = b.intake_id
+ WHERE IFNULL(b.total_amount, 0)-IFNULL(a.total_amount, 0) > #{value} AND inta.deleted = 0
+ ) c
+ </select>
+ <!--鎸囧畾鏃堕棿娈靛唴绱Н娴侀噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�-->
+ <select id="getTotalFlowGtValueIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeAccumulateAmount">
SELECT
inta.id AS intakeId,
- inta.name AS intakeNum,
- blo.name AS blockName,
- CAST(hou.total_amount AS DECIMAL(10, 2)) AS cumulativeFlow,
- hou.dt AS getDate
- FROM pr_intake inta
- INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
- INNER JOIN ba_block blo ON blo.id = inta.blockId
- WHERE inta.deleted = 0 AND hou.total_amount > #{totalAmount}
- ORDER BY hou.dt
- <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="getSmallFlowIntakesCount" resultType="java.lang.Long">
- SELECT
- COUNT(*) AS recordCount
- FROM pr_intake inta
- INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
- INNER JOIN ba_block blo ON blo.id = inta.blockId
- WHERE inta.deleted = 0 AND hou.total_amount < #{totalAmount}
- </select>
-
- <!--鑾峰彇绱娴侀噺浣庝簬鎸囧畾鍊肩殑鍙栨按鍙�-->
- <select id="getSmallFlowIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoCumulativeFlow">
- SELECT
- inta.id AS intakeId,
- inta.name AS intakeNum,
- blo.name AS blockName,
-<!-- FORMAT(hou.total_amount,2) AS cumulativeFlow,-->
- CAST(hou.total_amount AS DECIMAL(10, 2)) AS cumulativeFlow,
- hou.dt AS getDate
- FROM pr_intake inta
- INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
- INNER JOIN ba_block blo ON blo.id = inta.blockId
- WHERE inta.deleted = 0 AND hou.total_amount < #{totalAmount}
- ORDER BY hou.dt
+ inta.NAME AS intakeNum,
+ blo.NAME AS blockName ,
+ IFNULL(b.total_amount, 0)-IFNULL(a.total_amount, 0) AS value
+ FROM
+ pr_intake inta
+ INNER JOIN ba_block blo ON blo.id = inta.blockId
+ LEFT JOIN (SELECT
+ intake_id,
+ total_amount
+ FROM
+ rm_on_hour_report_history rohrs
+ WHERE rohrs.rtu_dt = ( SELECT MAX(rtu_dt)
+ FROM rm_on_hour_report_history
+ WHERE rtu_dt <= #{timeStart})) AS a ON inta.id = a.intake_id
+ LEFT JOIN ( SELECT
+ intake_id,
+ total_amount
+ FROM
+ rm_on_hour_report_history rohrs
+ WHERE rohrs.rtu_dt = ( SELECT MAX(rtu_dt)
+ FROM rm_on_hour_report_history
+ WHERE rtu_dt <= #{timeStop})) AS b ON inta.id = b.intake_id
+ WHERE IFNULL(b.total_amount, 0)-IFNULL(a.total_amount, 0) > #{value} AND inta.deleted = 0
+ ORDER BY inta.id
<trim prefix="limit " >
<if test="start != null and count != null">
#{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
--
Gitblit v1.8.0