| <?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 ( | 
|                 /* 此处理解为有过记录,那么就开过阀 */ | 
|                 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> |