From 4a2deb11b819dd78a8c75e244ef67ec2e48cf5f5 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 14 四月 2025 21:03:28 +0800
Subject: [PATCH] 重构轮灌组修改接口

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ls4StatisticsMapper.xml |  319 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 319 insertions(+), 0 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ls4StatisticsMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ls4StatisticsMapper.xml
new file mode 100644
index 0000000..dc355db
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ls4StatisticsMapper.xml
@@ -0,0 +1,319 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dy.pipIrrGlobal.daoLargeScreen.Ls4StatisticsMapper">
+
+    <select id="totalCountOfDistrict" resultType="java.lang.Integer">
+        select
+            count(*) as count
+        from ba_district tb
+        where tb.level = #{level, jdbcType=INTEGER}
+            and tb.deleted != 1
+    </select>
+
+    <select id="totalCountOfBlock" resultType="java.lang.Integer">
+        select
+            count(*) as count
+        from ba_block tb
+        where tb.deleted != 1
+    </select>
+
+    <select id="totalCountOfDivide" resultType="java.lang.Integer">
+        select
+            count(*) as count
+        from pr_divide tb
+        where tb.deleted != 1
+    </select>
+
+    <select id="totalCountOfIntake" resultType="java.lang.Integer">
+        select
+        count(*) as count
+        from pr_intake tb
+        where tb.deleted != 1
+    </select>
+
+    <select id="totalCountOfIntakeWithController" resultType="java.lang.Integer">
+        select count(*) as count
+        from (
+             select distinct tb.id
+             from pr_intake tb
+                inner join pr_intake_controller ctb on tb.id = ctb.intakeId
+             where tb.deleted != 1
+                and ctb.id is not null
+        ) otb
+    </select>
+
+    <select id="totalCountOfIntakeWithoutController" resultType="java.lang.Integer">
+        select
+            count(*) as count
+        from pr_intake tb
+                 left join pr_intake_controller ctb on tb.id = ctb.intakeId
+        where tb.deleted != 1
+          and ctb.id is null
+    </select>
+
+    <select id="totalCountOfController" resultType="java.lang.Integer">
+        select
+            count(*) as count
+        from pr_controller tb
+        where tb.deleted != 1
+    </select>
+
+    <select id="totalCountOfControllerTramp" resultType="java.lang.Integer">
+        select
+            count(*) as count
+        from pr_controller_tramp tb
+    </select>
+
+    <select id="totalCountOfOpenValve" resultType="java.lang.Integer">
+        select
+            count(*) as count
+        from rm_alarm_state_last tb
+        where valve_state = 0
+        <if test="dt != null ">
+            AND tb.dt <![CDATA[>=]]> #{dt, javaType=DATE, jdbcType=TIMESTAMP}
+        </if>
+    </select>
+
+    <select id="totalCountOfCloseValve" resultType="java.lang.Integer">
+        select
+            count(*) as count
+        from rm_alarm_state_last tb
+        where valve_state = 1
+        <if test="dt != null ">
+            AND tb.dt <![CDATA[>=]]> #{dt, javaType=DATE, jdbcType=TIMESTAMP}
+        </if>
+    </select>
+
+    <select id="totalCountOfAlarm" resultType="java.lang.Integer">
+        select
+            count(*) as count
+        from rm_alarm_state_last tb
+        where (alarm_remain_water = 1 or
+            alarm_exceed_year = 1 or
+            alarm_water_meter_fault = 1 or
+            alarm_loss = 1 or
+            alarm_water_meter_break = 1 or
+            alarm_ele_meter_fault = 1 or
+            alarm_inner_door = 1 or
+            alarm_outer_door = 1 or
+            alarm_ele_miss = 1 or
+            alarm_ele_exceed = 1 or
+            alarm_ele_low_volt = 1 or
+            state_ic_enable = 1 or
+            alarm_battery_volt = 1 or
+            alarm_valve = 1)
+        <if test="dt != null ">
+            AND tb.dt <![CDATA[>=]]> #{dt, javaType=DATE, jdbcType=TIMESTAMP}
+        </if>
+    </select>
+
+    <select id="totalCountOfNoAlarm" resultType="java.lang.Integer">
+        select
+        count(*) as count
+        from rm_alarm_state_last tb
+        where ((alarm_remain_water is null or alarm_remain_water = 0) and
+        (alarm_remain_water is null or alarm_exceed_year = 0)  and
+        (alarm_remain_water is null or alarm_water_meter_fault = 0)  and
+        (alarm_remain_water is null or alarm_loss = 0)  and
+        (alarm_remain_water is null or alarm_water_meter_break = 0)  and
+        (alarm_remain_water is null or alarm_ele_meter_fault = 0)  and
+        (alarm_remain_water is null or alarm_inner_door = 0)  and
+        (alarm_remain_water is null or alarm_outer_door = 0)  and
+        (alarm_remain_water is null or alarm_ele_miss = 0)  and
+        (alarm_remain_water is null or alarm_ele_exceed = 0)  and
+        (alarm_remain_water is null or alarm_ele_low_volt = 0)  and
+        (alarm_remain_water is null or state_ic_enable = 0)  and
+        (alarm_remain_water is null or alarm_battery_volt = 0)  and
+        (alarm_remain_water is null or alarm_valve = 0) )
+        <if test="dt != null ">
+            AND tb.dt <![CDATA[>=]]> #{dt, javaType=DATE, jdbcType=TIMESTAMP}
+        </if>
+    </select>
+
+    <select id="mTotalCountOfReport" resultType="java.lang.Integer">
+        select
+        count(*) as count
+        from rm_on_hour_report_last tb
+        where tb.dt <![CDATA[>=]]> #{fromDt, javaType=DATE, jdbcType=TIMESTAMP}
+    </select>
+
+    <select id="mTotalCountOfNoReport" resultType="java.lang.Integer">
+        select
+        count(*) as count
+        from pr_intake tb
+            left join (
+                select ltb.intake_id
+                from rm_on_hour_report_last ltb
+                where ltb.dt <![CDATA[>=]]> #{fromDt, javaType=DATE, jdbcType=TIMESTAMP}
+            ) temTb on tb.id = temTb.intake_id
+        where temTb.intake_id is null
+    </select>
+
+
+    <select id="mTotalCountOfNeverReport" resultType="java.lang.Integer">
+        select
+        count(*) as count
+        from pr_intake tb
+            left join (
+                select ltb.intake_id
+                from rm_on_hour_report_last ltb
+            ) temTb on tb.id = temTb.intake_id
+        where temTb.intake_id is null
+    </select>
+
+
+
+
+    <select id="mTotalCountOfOpenValve" resultType="java.lang.Integer">
+        select
+        count(*) as count
+        from rm_alarm_state_last tb
+        where valve_state = 0
+        <if test="fromDt != null ">
+            AND tb.dt <![CDATA[>=]]> #{fromDt, javaType=DATE, jdbcType=TIMESTAMP}
+        </if>
+    </select>
+
+    <select id="mTotalCountOfCloseValve" resultType="java.lang.Integer">
+        select
+        count(*) as count
+        from rm_alarm_state_last tb
+        where valve_state = 1
+        <if test="fromDt != null ">
+            AND tb.dt <![CDATA[>=]]> #{fromDt, javaType=DATE, jdbcType=TIMESTAMP}
+        </if>
+    </select>
+
+    <select id="mTotalCountOfNeverOpenValve" resultType="java.lang.Integer">
+        select
+            count(*) as count
+        from pr_intake tb
+            left join (
+                /* 姝ゅ鐞嗚В涓烘湁杩囪褰曪紝閭d箞灏卞紑杩囬榾 */
+                select ltb.intake_id
+                from rm_alarm_state_last ltb
+            ) temTb on tb.id = temTb.intake_id
+        where temTb.intake_id is null
+    </select>
+
+
+    <select id="mTotalCountOfAlarm" resultType="java.lang.Integer">
+        select
+        count(*) as count
+        from rm_alarm_state_last tb
+        where (alarm_remain_water = 1 or
+        alarm_exceed_year = 1 or
+        alarm_water_meter_fault = 1 or
+        alarm_loss = 1 or
+        alarm_water_meter_break = 1 or
+        alarm_ele_meter_fault = 1 or
+        alarm_inner_door = 1 or
+        alarm_outer_door = 1 or
+        alarm_ele_miss = 1 or
+        alarm_ele_exceed = 1 or
+        alarm_ele_low_volt = 1 or
+        state_ic_enable = 1 or
+        alarm_battery_volt = 1 or
+        alarm_valve = 1)
+        <if test="fromDt != null ">
+            AND tb.dt <![CDATA[>=]]> #{fromDt, javaType=DATE, jdbcType=TIMESTAMP}
+        </if>
+    </select>
+
+    <select id="mTotalCountOfNoAlarm" resultType="java.lang.Integer">
+        select
+        count(*) as count
+        from rm_alarm_state_last tb
+        where ((alarm_remain_water is null or alarm_remain_water = 0) and
+        (alarm_remain_water is null or alarm_exceed_year = 0)  and
+        (alarm_remain_water is null or alarm_water_meter_fault = 0)  and
+        (alarm_remain_water is null or alarm_loss = 0)  and
+        (alarm_remain_water is null or alarm_water_meter_break = 0)  and
+        (alarm_remain_water is null or alarm_ele_meter_fault = 0)  and
+        (alarm_remain_water is null or alarm_inner_door = 0)  and
+        (alarm_remain_water is null or alarm_outer_door = 0)  and
+        (alarm_remain_water is null or alarm_ele_miss = 0)  and
+        (alarm_remain_water is null or alarm_ele_exceed = 0)  and
+        (alarm_remain_water is null or alarm_ele_low_volt = 0)  and
+        (alarm_remain_water is null or state_ic_enable = 0)  and
+        (alarm_remain_water is null or alarm_battery_volt = 0)  and
+        (alarm_remain_water is null or alarm_valve = 0) )
+        <if test="fromDt != null ">
+            AND tb.dt <![CDATA[>=]]> #{fromDt, javaType=DATE, jdbcType=TIMESTAMP}
+        </if>
+    </select>
+
+    <select id="mTotalCountOfNeverAlarm" resultType="java.lang.Integer">
+        select
+            count(*) as count
+        from pr_intake tb
+                 left join (
+            select ltb.intake_id
+            from rm_alarm_state_last ltb
+            where ((ltb.alarm_remain_water is null or ltb.alarm_remain_water = 0) and
+                   (ltb.alarm_remain_water is null or ltb.alarm_exceed_year = 0)  and
+                   (ltb.alarm_remain_water is null or ltb.alarm_water_meter_fault = 0)  and
+                   (ltb.alarm_remain_water is null or ltb.alarm_loss = 0)  and
+                   (ltb.alarm_remain_water is null or ltb.alarm_water_meter_break = 0)  and
+                   (ltb.alarm_remain_water is null or ltb.alarm_ele_meter_fault = 0)  and
+                   (ltb.alarm_remain_water is null or ltb.alarm_inner_door = 0)  and
+                   (ltb.alarm_remain_water is null or ltb.alarm_outer_door = 0)  and
+                   (ltb.alarm_remain_water is null or ltb.alarm_ele_miss = 0)  and
+                   (ltb.alarm_remain_water is null or ltb.alarm_ele_exceed = 0)  and
+                   (ltb.alarm_remain_water is null or ltb.alarm_ele_low_volt = 0)  and
+                   (ltb.alarm_remain_water is null or ltb.state_ic_enable = 0)  and
+                   (ltb.alarm_remain_water is null or ltb.alarm_battery_volt = 0)  and
+                   (ltb.alarm_remain_water is null or ltb.alarm_valve = 0) )
+        ) temTb on tb.id = temTb.intake_id
+        where temTb.intake_id is null
+    </select>
+
+
+
+
+    <select id="topXClientAtCertainDay" resultType="com.dy.pipIrrGlobal.voSpecial.VoTopXClient">
+        select mTb.id as id, mTb.client_id as clientId,
+        scTb.name as clientName, scTb.clientNum as clientNum, scTb.address as clientAddress,
+        mTb.amount as amount
+        from rm_client_amount_day mTb
+        left join se_client scTb on scTb.id = mTb.client_id
+        <where>
+            <if test = "idStart != null">
+                mTb.id <![CDATA[>=]]> #{idStart, javaType=LONG, jdbcType=BIGINT}
+            </if>
+            <if test = "idEnd != null">
+                and mTb.id <![CDATA[<=]]> #{idEnd, javaType=LONG, jdbcType=BIGINT}
+            </if>
+        </where>
+        order by mTb.amount DESC
+        <trim prefix="limit " >
+            <if test="count != null">
+                0, #{count,javaType=Integer, jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
+
+
+    <select id="topXIntakeAtCertainDay" resultType="com.dy.pipIrrGlobal.voSpecial.VoTopXIntake">
+        select mTb.id as id, mTb.intake_id as intakeId,
+        piTb.name as intakeNum, piTb.lng as intakeLng, piTb.lat as intakeLat,
+        mTb.amount as amount
+        from rm_intake_amount_day mTb
+        left join pr_intake piTb on piTb.id = mTb.intake_id
+        <where>
+            <if test = "idStart != null">
+                mTb.id <![CDATA[>=]]> #{idStart, javaType=LONG, jdbcType=BIGINT}
+            </if>
+            <if test = "idEnd != null">
+                and mTb.id <![CDATA[<=]]> #{idEnd, javaType=LONG, jdbcType=BIGINT}
+            </if>
+        </where>
+        order by mTb.amount DESC
+        <trim prefix="limit " >
+            <if test="count != null">
+                0, #{count,javaType=Integer, jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
+
+</mapper>
\ No newline at end of file

--
Gitblit v1.8.0