From b397edee2be2dfcc3f28eeac50298b4de26b1afa Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期五, 13 十二月 2024 16:53:45 +0800 Subject: [PATCH] 取水口日取水量表中,出现一些大数,明显不正确,发析系统日志,发现一些阀控器会上报一些累计流量为0的数据,且无规律,推测是其不能从水表读取到累计流量时会上报0值。如果间歇上报0值,间歇上报一些非0值,非0值减去0值,就会出现大数,一天中出现几次那么会大数进行累加,数值将更大。为此变更算法,规避这种情况,但也会丢失一些流量值。 --- pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml | 44 +++++++++++++++++++++++++++++--------------- 1 files changed, 29 insertions(+), 15 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 c3afb26..ff89d88 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,8 +260,15 @@ 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 * FROM rm_on_hour_report_history + <where> + <if test = "timeStart != null and timeStop != null"> + dt BETWEEN #{timeStart} AND #{timeStop} + </if> + </where>) his + ON his.intake_id = inta.id + INNER JOIN ba_block blo ON blo.id = inta.blockId WHERE his.intake_id IS NULL AND inta.deleted = 0 </select> @@ -273,8 +280,15 @@ inta.name AS intakeNum, 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 * FROM rm_on_hour_report_history + <where> + <if test = "timeStart != null and timeStop != null"> + dt BETWEEN #{timeStart} AND #{timeStop} + </if> + </where>) his + ON his.intake_id = inta.id + INNER 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,8 +297,8 @@ </if> </trim> </select> - <!--鎸囧畾鏃堕棿娈靛唴鐢ㄦ按閲忚秴杩囨寚瀹氬�肩殑鍙栨按鍙f暟閲�--> - <select id="getUseWaterGtValueIntakesCount" resultType="java.lang.Long"> + <!--鎸囧畾鏃堕棿娈靛唴绱Н娴侀噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙f暟閲�--> + <select id="getTotalFlowGtValueIntakesCount" resultType="java.lang.Long"> select count(*) from @@ -316,8 +330,8 @@ WHERE IFNULL(b.total_amount, 0)-IFNULL(a.total_amount, 0) > #{value} AND inta.deleted = 0 ) c </select> - <!--鎸囧畾鏃堕棿娈靛唴鐢ㄦ按閲忚秴杩囨寚瀹氬�肩殑鍙栨按鍙�--> - <select id="getUseWaterGtValueIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeAccumulateAmount"> + <!--鎸囧畾鏃堕棿娈靛唴绱Н娴侀噺瓒呰繃鎸囧畾鍊肩殑鍙栨按鍙�--> + <select id="getTotalFlowGtValueIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeAccumulateAmount"> SELECT inta.id AS intakeId, inta.NAME AS intakeNum, -- Gitblit v1.8.0