liurunyu
2024-08-09 894d733a70bd7b66b1f515a37c11c18c4ab1f151
Merge remote-tracking branch 'git-pipIrr/master'
12个文件已修改
6个文件已添加
1524 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossDayLastMapper.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoDayIntakeAmount.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoDayLoss.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoICCard.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoMonthAmount.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml 351 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossDayLastMapper.xml 351 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/card/IcCardCtrl.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/card/IcCardSv.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/card/IcCardqo/CommonQO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java 149 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeAmountQO.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java
@@ -3,8 +3,9 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay;
import com.dy.pipIrrGlobal.voRm.VoIntakeAmountDay;
import com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount;
import com.dy.pipIrrGlobal.voSt.VoIntakeAmountStatistics;
import com.dy.pipIrrGlobal.voSt.VoIntakeLossStatistics;
import com.dy.pipIrrGlobal.voSt.VoMonthAmount;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -91,4 +92,31 @@
     */
    List<VoIntakeAmountStatistics> statisticsByIntake(@Param("startId")Long statisticsStartId, @Param("endId")Long statisticsEndId) ;
    /**
     * 指定月份各天用水量记录数量
     * @param params
     * @return
     */
    Long getDayIntakeAmountCount(Map<?, ?> params);
    /**
     * 统计指定月份各天用水量
     * @param params
     * @return
     */
    List<VoDayIntakeAmount> getDayIntakeAmount(Map<?, ?> params);
    /**
     * 统计指定年份各月用水量记录数量
     * @param params
     * @return
     */
    Long getMonthIntakeAmountCount(Map<?, ?> params);
    /**
     * 统计指定年份各月用水量
     * @param params
     * @return
     */
    List<VoMonthAmount> getMonthIntakeAmount(Map<?, ?> params);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossDayLastMapper.java
@@ -1,11 +1,11 @@
package com.dy.pipIrrGlobal.daoRm;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dy.pipIrrGlobal.voRm.VoLossDay;
import com.dy.pipIrrGlobal.voSt.VoIntakeLossStatistics;
import com.dy.pipIrrGlobal.pojoRm.RmLossDayLast;
import com.dy.pipIrrGlobal.voRm.VoLossDay;
import com.dy.pipIrrGlobal.voSt.VoDayLoss;
import com.dy.pipIrrGlobal.voSt.VoMonthAmount;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
@@ -88,6 +88,32 @@
     */
    List<VoLossDay> getLossDayLast(Map<?, ?> params);
    /**
     * 统计指定月份各天漏损量记录数量
     * @param params
     * @return
     */
    Long getDayLossAmountCount(Map<?, ?> params);
    /**
     * 统计指定月份各天漏损量
     * @param params
     * @return
     */
    List<VoDayLoss> getDayLossAmount(Map<?, ?> params);
    /**
     * 统计指定年份各月漏损量记录数量
     * @param params
     * @return
     */
    Long getMonthLossAmountCount(Map<?, ?> params);
    /**
     * 统计指定年份各月漏损量
     * @param params
     * @return
     */
    List<VoMonthAmount> getMonthLossAmount(Map<?, ?> params);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java
@@ -132,4 +132,26 @@
     * @return
     */
    Double getTradeAmountByCardNo(Long cardNum);
    /**
     * 指定时间段内开卡总数量(物理卡)
     * @param params
     * @return
     */
    Long getOpenCountIcCardsCount(Map<String, Object> params);
    /**
     * 指定时间段内挂失总数量(物理卡)
     * @param params
     * @return
     */
    Long getLossCountIcCardsCount(Map<String, Object> params);
    /**
     * 指定时间段内充值总数量(物理卡)
     * @param params
     * @return
     */
    Long getRechargeCountIcCardsCount(Map<String, Object> params);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
@@ -7,6 +7,7 @@
import com.dy.pipIrrGlobal.voSe.VoCardInfo1;
import com.dy.pipIrrGlobal.voSe.VoCards;
import com.dy.pipIrrGlobal.voSe.VoCards2;
import com.dy.pipIrrGlobal.voSt.VoICCard;
import com.dy.pipIrrGlobal.voWe.VoCards3;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -182,4 +183,11 @@
     * @param money
     */
    void updateMoney(@Param("id")Long id , @Param("money")Double money);
    /**
     *当前余额总量(物理卡)
     * @param
     * @return
     */
    Double getTotalMoneyIcCards();
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoDayIntakeAmount.java
New file
@@ -0,0 +1,62 @@
package com.dy.pipIrrGlobal.voSt;
import com.alibaba.fastjson2.annotation.JSONField;
import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.Data;
/**
 * @author ZhuBaoMin
 * @date 2024-08-08 9:31
 * @LastEditTime 2024-08-08 9:31
 * @Description 取水口日用水视图
 */
@Data
@JsonPropertyOrder({ "intakeId", "intakeNum", "amount1" , "amount2" , "amount3" , "amount4" , "amount5" , "amount6" , "amount7" , "amount8" , "amount9" , "amount10" , "amount11" , "amount12" , "amount13" , "amount14" , "amount15" , "amount16" , "amount17" , "amount18" , "amount19" , "amount20" , "amount21" , "amount22" , "amount23" , "amount24" , "amount25" , "amount26" , "amount27" , "amount28" , "amount29" , "amount30" , "amount31" })
public class VoDayIntakeAmount {
    private static final long serialVersionUID = 202408080933001L;
    /**
     * 取水口ID
     */
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
    private Long intakeId;
    /**
     * 取水口编号
     */
    private String intakeNum;
    private Double amount1;
    private Double amount2;
    private Double amount3;
    private Double amount4;
    private Double amount5;
    private Double amount6;
    private Double amount7;
    private Double amount8;
    private Double amount9;
    private Double amount10;
    private Double amount11;
    private Double amount12;
    private Double amount13;
    private Double amount14;
    private Double amount15;
    private Double amount16;
    private Double amount17;
    private Double amount18;
    private Double amount19;
    private Double amount20;
    private Double amount21;
    private Double amount22;
    private Double amount23;
    private Double amount24;
    private Double amount25;
    private Double amount26;
    private Double amount27;
    private Double amount28;
    private Double amount29;
    private Double amount30;
    private Double amount31;
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoDayLoss.java
New file
@@ -0,0 +1,62 @@
package com.dy.pipIrrGlobal.voSt;
import com.alibaba.fastjson2.annotation.JSONField;
import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.Data;
/**
 * @author ZhuBaoMin
 * @date 2024-08-08 15:21
 * @LastEditTime 2024-08-08 15:21
 * @Description 日漏损视图
 */
@Data
@JsonPropertyOrder({ "intakeId", "intakeNum", "lossAmount1" , "lossAmount2" , "lossAmount3" , "lossAmount4" , "lossAmount5" , "lossAmount6" , "lossAmount7" , "lossAmount8" , "lossAmount9" , "lossAmount10" , "lossAmount11" , "lossAmount12" , "lossAmount13" , "lossAmount14" , "lossAmount15" , "lossAmount16" , "lossAmount17" , "lossAmount18" , "lossAmount19" , "lossAmount20" , "lossAmount21" , "lossAmount22" , "lossAmount23" , "lossAmount24" , "lossAmount25" , "lossAmount26" , "lossAmount27" , "lossAmount28" , "lossAmount29" , "lossAmount30" , "lossAmount31" })
public class VoDayLoss {
    private static final long serialVersionUID = 202408081523001L;
    /**
     * 取水口ID
     */
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
    private Long intakeId;
    /**
     * 取水口编号
     */
    private String intakeNum;
    private Double lossAmount1;
    private Double lossAmount2;
    private Double lossAmount3;
    private Double lossAmount4;
    private Double lossAmount5;
    private Double lossAmount6;
    private Double lossAmount7;
    private Double lossAmount8;
    private Double lossAmount9;
    private Double lossAmount10;
    private Double lossAmount11;
    private Double lossAmount12;
    private Double lossAmount13;
    private Double lossAmount14;
    private Double lossAmount15;
    private Double lossAmount16;
    private Double lossAmount17;
    private Double lossAmount18;
    private Double lossAmount19;
    private Double lossAmount20;
    private Double lossAmount21;
    private Double lossAmount22;
    private Double lossAmount23;
    private Double lossAmount24;
    private Double lossAmount25;
    private Double lossAmount26;
    private Double lossAmount27;
    private Double lossAmount28;
    private Double lossAmount29;
    private Double lossAmount30;
    private Double lossAmount31;
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoICCard.java
New file
@@ -0,0 +1,25 @@
package com.dy.pipIrrGlobal.voSt;
import com.alibaba.fastjson2.annotation.JSONField;
import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
import lombok.Data;
/**
 * @author :WuZeYu
 * @Date :2024/8/8  9:49
 * @LastEditTime :2024/8/8  9:49
 * @Description
 */
@Data
public class VoICCard {
    private static final long serialVersionUID = 202408311404001L;
    /**
     * 水卡ID
     */
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
    private Long cardId;
    /**
     * 余额总量
     */
    private Double totalMoney;
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoMonthAmount.java
New file
@@ -0,0 +1,43 @@
package com.dy.pipIrrGlobal.voSt;
import com.alibaba.fastjson2.annotation.JSONField;
import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.Data;
/**
 * @author ZhuBaoMin
 * @date 2024-08-08 14:16
 * @LastEditTime 2024-08-08 14:16
 * @Description 取水口月用水视图、月漏损视图
 */
@Data
@JsonPropertyOrder({ "intakeId", "intakeNum", "month1" , "month2" , "month3" , "month4" , "month5" , "month6" , "month7" , "month8" , "month9" , "month10" , "month11" , "month12"  })
public class VoMonthAmount {
    private static final long serialVersionUID = 202408081417001L;
    /**
     * 取水口ID
     */
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
    private Long intakeId;
    /**
     * 取水口编号
     */
    private String intakeNum;
    private Double month1;
    private Double month2;
    private Double month3;
    private Double month4;
    private Double month5;
    private Double month6;
    private Double month7;
    private Double month8;
    private Double month9;
    private Double month10;
    private Double month11;
    private Double month12;
}
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml
@@ -16,7 +16,14 @@
  </resultMap>
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
    id, intake_id, dt, amount, dt_last, rtu_addr_last, controller_id_last, total_amount_last,
        id,
        intake_id,
        dt,
        amount,
        dt_last,
        rtu_addr_last,
        controller_id_last,
        total_amount_last,
    rtu_dt_last
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
@@ -35,7 +42,8 @@
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
    <!--@mbg.generated-->
    delete from rm_intake_amount_day
        delete
        from rm_intake_amount_day
    where id = #{id,jdbcType=BIGINT}
  </delete>
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay">
@@ -162,7 +170,7 @@
    Left join pr_intake pint on pint.id = riad.intake_id
    <where>
      <if test="intakeId != null and intakeId != '' ">
        and rash.intake_id = #{intakeId}
                and riad.intake_id = #{intakeId}
      </if>
      <if test="intakeName != null and intakeName != '' ">
        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
@@ -177,8 +185,7 @@
    </select>
  <!--根据指定条件获取记录-->
  <select id="getIntakeAmountDayHistory" resultType="com.dy.pipIrrGlobal.voRm.VoIntakeAmountDay">
    select
    CAST(riad.intake_id AS char)AS intakeId,
        select CAST(riad.intake_id AS char)          AS intakeId,
    pint.name as intakeName,
    riad.dt as dt,
    riad.amount as amount,
@@ -191,7 +198,7 @@
    Left join pr_intake pint on pint.id = riad.intake_id
    <where>
      <if test="intakeId != null and intakeId != '' ">
        and rash.intake_id = #{intakeId}
                and riad.intake_id = #{intakeId}
      </if>
      <if test="intakeName != null and intakeName != '' ">
        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
@@ -204,16 +211,342 @@
      </if>
    </where>
    ORDER BY riad.id DESC
    <if test="pageCurr != null and pageSize != null">
      LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
        <!--        <if test="pageCurr != null and pageSize != null">-->
        <!--            LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}-->
        <!--        </if>-->
        <trim prefix="limit ">
            <if test="start != null and count != null">
                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
    </if>
        </trim>
  </select>
  <select id="statisticsByIntake" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeAmountStatistics">
    select intake_id, sum(amount) amount
    from rm_intake_amount_day
    where id <![CDATA[>=]]> #{startId, jdbcType=BIGINT} and id <![CDATA[<]]> #{endId, jdbcType=BIGINT}
        where id <![CDATA[>=]]> #{startId, jdbcType=BIGINT}
          and id <![CDATA[<]]> #{endId, jdbcType=BIGINT}
    group by intake_id
  </select>
    <!--指定月份各天用水量记录数量-->
    <select id="getDayIntakeAmountCount" resultType="java.lang.Long">
        SELECT COUNT(*) AS recordCount
        FROM pr_intake inta
        <where>
            AND inta.deleted = 0
            <if test="intakeNum != null and intakeNum != ''">
                AND inta.name = #{intakeNum}
            </if>
        </where>
    </select>
    <!--统计指定月份各天用水量-->
    <select id="getDayIntakeAmount" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount">
        SELECT inta.id                                 AS intakeId,
               inta.name                               AS intakeNum,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 1), 0)  AS amount1,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 2), 0)  AS amount2,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 3), 0)  AS amount3,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 4), 0)  AS amount4,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 5), 0)  AS amount5,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 6), 0)  AS amount6,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 7), 0)  AS amount7,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 8), 0)  AS amount8,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 9), 0)  AS amount9,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 10), 0) AS amount10,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 11), 0) AS amount11,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 12), 0) AS amount12,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 13), 0) AS amount13,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 14), 0) AS amount14,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 15), 0) AS amount15,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 16), 0) AS amount16,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 17), 0) AS amount17,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 18), 0) AS amount18,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 19), 0) AS amount19,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 20), 0) AS amount20,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 21), 0) AS amount21,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 22), 0) AS amount22,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 23), 0) AS amount23,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 24), 0) AS amount24,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 25), 0) AS amount25,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 26), 0) AS amount26,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 27), 0) AS amount27,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 28), 0) AS amount28,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 29), 0) AS amount29,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 30), 0) AS amount30,
               IFNULL((SELECT IFNULL(amount, 0)
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 31), 0) AS amount31
        FROM pr_intake inta
        <where>
            AND inta.deleted = 0
            <if test="intakeNum != null and intakeNum != ''">
                AND inta.name = #{intakeNum}
            </if>
        </where>
        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>
    <!--统计指定年份各月用水量记录数量-->
    <select id="getMonthIntakeAmountCount" resultType="java.lang.Long">
        SELECT COUNT(*) AS recordCount
        FROM pr_intake inta
        <where>
            AND inta.deleted = 0
            <if test="intakeNum != null and intakeNum != ''">
                AND inta.name = #{intakeNum}
            </if>
        </where>
    </select>
    <!--统计指定年份各月用水量-->
    <select id="getMonthIntakeAmount" resultType="com.dy.pipIrrGlobal.voSt.VoMonthAmount">
        SELECT inta.id                                  AS intakeId,
               inta.name                                AS intakeNum,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 1
                       GROUP BY(intaDay.intake_id)), 0) AS month1,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 2
                       GROUP BY(intaDay.intake_id)), 0) AS month2,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 3
                       GROUP BY(intaDay.intake_id)), 0) AS month3,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 4
                       GROUP BY(intaDay.intake_id)), 0) AS month4,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 5
                       GROUP BY(intaDay.intake_id)), 0) AS month5,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 6
                       GROUP BY(intaDay.intake_id)), 0) AS month6,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 7
                       GROUP BY(intaDay.intake_id)), 0) AS month7,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 8
                       GROUP BY(intaDay.intake_id)), 0) AS month8,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 9
                       GROUP BY(intaDay.intake_id)), 0) AS month9,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 10
                       GROUP BY(intaDay.intake_id)), 0) AS month10,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 11
                       GROUP BY(intaDay.intake_id)), 0) AS month11,
               IFNULL((SELECT SUM(amount) AS amount
                       FROM rm_intake_amount_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 12
                       GROUP BY(intaDay.intake_id)), 0) AS month12
        FROM pr_intake inta
        <where>
            AND inta.deleted = 0
            <if test="intakeNum != null and intakeNum != ''">
                AND inta.name = #{intakeNum}
            </if>
        </where>
        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>
</mapper>
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossDayLastMapper.xml
@@ -16,7 +16,15 @@
  </resultMap>
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
    id, last_history_id, controller_id, intake_id, rtu_addr, dt, dt_last, dt_rtu, loss_amount
        id,
        last_history_id,
        controller_id,
        intake_id,
        rtu_addr,
        dt,
        dt_last,
        dt_rtu,
        loss_amount
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
    <!--@mbg.generated-->
@@ -41,7 +49,8 @@
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
    <!--@mbg.generated-->
    delete from rm_loss_day_last
        delete
        from rm_loss_day_last
    where id = #{id,jdbcType=BIGINT}
  </delete>
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossDayLast">
@@ -50,7 +59,8 @@
    intake_id, rtu_addr, dt, dt_last, dt_rtu,
    loss_amount)
    values (#{id,jdbcType=BIGINT}, #{lastHistoryId,jdbcType=BIGINT}, #{controllerId,jdbcType=BIGINT},
    #{intakeId,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=DATE}, #{dtLast,jdbcType=TIMESTAMP}, #{dtRtu,jdbcType=TIMESTAMP},
                #{intakeId,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR}, #{dt,jdbcType=DATE},
                #{dtLast,jdbcType=TIMESTAMP}, #{dtRtu,jdbcType=TIMESTAMP},
    #{lossAmount,jdbcType=DOUBLE})
  </insert>
  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoRm.RmLossDayLast">
@@ -166,7 +176,7 @@
    Left join pr_intake pint on pint.id = rldl.intake_id
    <where>
      <if test="intakeId != null and intakeId != '' ">
        and rash.intake_id = #{intakeId}
                and rldl.intake_id = #{intakeId}
      </if>
      <if test="intakeName != null and intakeName != '' ">
        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
@@ -181,8 +191,7 @@
  </select>
  <!--根据指定条件获取记录-->
  <select id="getLossDayLast" resultType="com.dy.pipIrrGlobal.voRm.VoLossDay">
    select
    CAST(rldl.intake_id AS char)AS intakeId,
        select CAST(rldl.intake_id AS char)     AS intakeId,
    CAST(rldl.controller_id AS char)AS controllerId,
    pint.name as intakeName,
    rldl.rtu_addr as rtuAddr,
@@ -194,7 +203,7 @@
    Left join pr_intake pint on pint.id = rldl.intake_id
    <where>
      <if test="intakeId != null and intakeId != '' ">
        and rash.intake_id = #{intakeId}
                and rldl.intake_id = #{intakeId}
      </if>
      <if test="intakeName != null and intakeName != '' ">
        and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%')
@@ -207,9 +216,333 @@
      </if>
    </where>
    ORDER BY rldl.dt DESC , rldl.loss_amount DESC
    <if test="pageCurr != null and pageSize != null">
      LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}
        <!--    <if test="pageCurr != null and pageSize != null">-->
        <!--      LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}-->
        <!--    </if>-->
        <trim prefix="limit ">
            <if test="start != null and count != null">
                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
    </if>
        </trim>
  </select>
    <!--统计指定月份各天漏损量记录数量-->
    <select id="getDayLossAmountCount" resultType="java.lang.Long">
        SELECT COUNT(*) AS recordCount
        FROM pr_intake inta
        <where>
            AND inta.deleted = 0
            <if test="intakeNum != null and intakeNum != ''">
                AND inta.name = #{intakeNum}
            </if>
        </where>
    </select>
    <!--统计指定月份各天漏损量-->
    <select id="getDayLossAmount" resultType="com.dy.pipIrrGlobal.voSt.VoDayLoss">
        SELECT inta.id                                 AS intakeId,
               inta.name                               AS intakeNum,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 1), 0)  AS lossAmount1,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 2), 0)  AS lossAmount2,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 3), 0)  AS lossAmount3,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 4), 0)  AS lossAmount4,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 5), 0)  AS lossAmount5,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 6), 0)  AS lossAmount6,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 7), 0)  AS lossAmount7,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 8), 0)  AS lossAmount8,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 9), 0)  AS lossAmount9,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 10), 0) AS lossAmount10,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 11), 0) AS lossAmount11,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 12), 0) AS lossAmount12,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 13), 0) AS lossAmount13,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 14), 0) AS lossAmount14,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 15), 0) AS lossAmount15,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 16), 0) AS lossAmount16,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 17), 0) AS lossAmount17,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 18), 0) AS lossAmount18,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 19), 0) AS lossAmount19,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 20), 0) AS lossAmount20,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 21), 0) AS lossAmount21,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 22), 0) AS lossAmount22,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 23), 0) AS lossAmount23,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 24), 0) AS lossAmount24,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 25), 0) AS lossAmount25,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 26), 0) AS lossAmount26,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 27), 0) AS lossAmount27,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 28), 0) AS lossAmount28,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 29), 0) AS lossAmount29,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 30), 0) AS lossAmount30,
               IFNULL((SELECT IFNULL(loss_amount, 0)
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = #{month}
                         AND DAY(intaDay.dt) = 31), 0) AS lossAmount31
        FROM pr_intake inta
        <where>
            AND inta.deleted = 0
            <if test="intakeNum != null and intakeNum != ''">
                AND inta.name = #{intakeNum}
            </if>
        </where>
        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>
    <!--统计指定年份各月漏损量记录数量-->
    <select id="getMonthLossAmountCount" resultType="java.lang.Long">
        SELECT COUNT(*) AS recordCount
        FROM pr_intake inta
        <where>
            AND inta.deleted = 0
            <if test="intakeNum != null and intakeNum != ''">
                AND inta.name = #{intakeNum}
            </if>
        </where>
    </select>
    <!--统计指定年份各月漏损量-->
    <select id="getMonthLossAmount" resultType="com.dy.pipIrrGlobal.voSt.VoMonthAmount">
        SELECT inta.id                                  AS intakeId,
               inta.name                                AS intakeNum,
               IFNULL((SELECT SUM(loss_amount) AS amount
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 1
                       GROUP BY(intaDay.intake_id)), 0) AS month1,
               IFNULL((SELECT SUM(loss_amount) AS amount
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 2
                       GROUP BY(intaDay.intake_id)), 0) AS month2,
               IFNULL((SELECT SUM(loss_amount) AS amount
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 3
                       GROUP BY(intaDay.intake_id)), 0) AS month3,
               IFNULL((SELECT SUM(loss_amount) AS amount
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 4
                       GROUP BY(intaDay.intake_id)), 0) AS month4,
               IFNULL((SELECT SUM(loss_amount) AS amount
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 5
                       GROUP BY(intaDay.intake_id)), 0) AS month5,
               IFNULL((SELECT SUM(loss_amount) AS amount
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 6
                       GROUP BY(intaDay.intake_id)), 0) AS month6,
               IFNULL((SELECT SUM(loss_amount) AS amount
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 7
                       GROUP BY(intaDay.intake_id)), 0) AS month7,
               IFNULL((SELECT SUM(loss_amount) AS amount
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 8
                       GROUP BY(intaDay.intake_id)), 0) AS month8,
               IFNULL((SELECT SUM(loss_amount) AS amount
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 9
                       GROUP BY(intaDay.intake_id)), 0) AS month9,
               IFNULL((SELECT SUM(loss_amount) AS amount
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 10
                       GROUP BY(intaDay.intake_id)), 0) AS month10,
               IFNULL((SELECT SUM(loss_amount) AS amount
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 11
                       GROUP BY(intaDay.intake_id)), 0) AS month11,
               IFNULL((SELECT SUM(loss_amount) AS amount
                       FROM rm_loss_day_last intaDay
                       WHERE intaDay.intake_id = inta.id
                         AND YEAR(intaDay.dt) = #{year}
                         AND MONTH(intaDay.dt) = 12
                       GROUP BY(intaDay.intake_id)), 0) AS month12
        FROM pr_intake inta
        <where>
            AND inta.deleted = 0
            <if test="intakeNum != null and intakeNum != ''">
                AND inta.name = #{intakeNum}
            </if>
        </where>
        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>
</mapper>
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
@@ -693,4 +693,31 @@
    ORDER BY ope.operate_dt DESC
    LIMIT 0,1
  </select>
  <!--指定时间段内开卡总数量(物理卡)-->
  <select id="getOpenCountIcCardsCount" resultType="java.lang.Long">
    SELECT
    count(*)
    FROM
    `se_card_operate`
    WHERE
    operate_dt BETWEEN #{timeStart} AND #{timeStop} AND operate_type = 1
  </select>
  <!--指定时间段内挂失总数量(物理卡)-->
  <select id="getLossCountIcCardsCount" resultType="java.lang.Long">
    SELECT
    count(*)
    FROM
    `se_card_operate`
    WHERE
    operate_dt BETWEEN #{timeStart} AND #{timeStop} AND operate_type = 6
  </select>
  <!--指定时间段内充值总数量(物理卡)-->
  <select id="getRechargeCountIcCardsCount" resultType="java.lang.Long">
    SELECT
    count(*)
    FROM
    `se_card_operate`
    WHERE
    operate_dt BETWEEN #{timeStart} AND #{timeStop} AND operate_type = 2
  </select>
</mapper>
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -589,4 +589,12 @@
    ORDER BY card.id
  </select>
  <!--当前余额总量(物理卡)-->
  <select id="getTotalMoneyIcCards" resultType="java.lang.Double">
    SELECT
      IFNULL(SUM(money),0) AS totalMoney
    FROM
      `se_client_card`
    WHERE state = 1
  </select>
</mapper>
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/card/IcCardCtrl.java
@@ -1,9 +1,18 @@
package com.dy.pipIrrStatistics.card;
import com.dy.common.aop.SsoAop;
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.voSt.VoICCard;
import com.dy.pipIrrStatistics.card.IcCardqo.CommonQO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
 * @author ZhuBaoMin
@@ -18,4 +27,79 @@
@RequiredArgsConstructor
public class IcCardCtrl {
    private final IcCardSv icCardSv;
    /**
     * 指定时间段内开卡总数量(物理卡)
     *
     * @param qo
     * @return
     */
    @GetMapping(path = "/getOpenCountIcCards")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoICCard>>> getOpenCountIcCards(CommonQO qo) {
        try {
             QueryResultVo<List<VoICCard>> res = icCardSv.getOpenCountIcCards(qo);
            return BaseResponseUtils.buildSuccess(res);
        }catch (Exception e){
            log.error("获取记录异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
    }
    /**
     * 指定时间段内挂失总数量(物理卡)
     *
     * @param qo
     * @return
     */
    @GetMapping(path = "/getLossCountIcCards")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoICCard>>> getLossCountIcCards(CommonQO qo) {
        try {
            QueryResultVo<List<VoICCard>> res = icCardSv.getLossCountIcCards(qo);
            return BaseResponseUtils.buildSuccess(res);
        }catch (Exception e){
            log.error("获取记录异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
    }
    /**
     * 指定时间段内充值总数量(物理卡)
     *
     * @param qo
     * @return
     */
    @GetMapping(path = "/getRechargeCountIcCards")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoICCard>>> getRechargeCountIcCards(CommonQO qo) {
        try {
            QueryResultVo<List<VoICCard>> res = icCardSv.getRechargeCountIcCards(qo);
            return BaseResponseUtils.buildSuccess(res);
        }catch (Exception e){
            log.error("获取记录异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
    }
    /**
     * 当前余额总量(物理卡)
     *
     * @param
     * @return
     */
    @GetMapping(path = "/getTotalMoneyIcCards")
    @SsoAop()
    public BaseResponse<Double> getTotalMoneyIcCards() {
        try {
            Double res = icCardSv.getTotalMoneyIcCards();
            return BaseResponseUtils.buildSuccess(res);
        }catch (Exception e){
            log.error("获取记录异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/card/IcCardSv.java
@@ -1,7 +1,20 @@
package com.dy.pipIrrStatistics.card;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper;
import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper;
import com.dy.pipIrrGlobal.voSt.VoICCard;
import com.dy.pipIrrGlobal.voSt.VoIntakeAccumulateAmount;
import com.dy.pipIrrStatistics.card.IcCardqo.CommonQO;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
/**
 * @author ZhuBaoMin
@@ -13,4 +26,128 @@
@Slf4j
@Service
public class IcCardSv {
    @Autowired
    private SeCardOperateMapper seCardOperateMapper;
    @Autowired
    private SeClientCardMapper seClientCardMapper;
    /**
     * 指定时间段内开卡总数量(物理卡)
     * @param qo
     * @return
     */
    public QueryResultVo<List<VoICCard>> getOpenCountIcCards(CommonQO qo) {
        String timeStart = qo.getTimeStart();
        String timeStop = qo.getTimeStop();
        if (timeStart != null && timeStart != ""){
            timeStart = timeStart + " 00:00:00";
        }else {
            timeStart = LocalDate.now() + " 00:00:00";
        }
        if (timeStop != null && timeStop != ""){
            timeStop = timeStop + " 23:59:59";
        }else {
            timeStop = LocalDateTime.now().toString();
        }
        qo.setTimeStart(timeStart);
        qo.setTimeStop(timeStop);
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo);
        Long itemTotal = seCardOperateMapper.getOpenCountIcCardsCount(params);
        QueryResultVo<List<VoICCard>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = qo.pageSize ;
        rsVo.pageCurr = qo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        return rsVo ;
    }
    /**
     * 指定时间段内挂失总数量(物理卡)
     * @param qo
     * @return
     */
    public QueryResultVo<List<VoICCard>> getLossCountIcCards(CommonQO qo) {
        String timeStart = qo.getTimeStart();
        String timeStop = qo.getTimeStop();
        if (timeStart != null && timeStart != ""){
            timeStart = timeStart + " 00:00:00";
        }else {
            timeStart = LocalDate.now() + " 00:00:00";
        }
        if (timeStop != null && timeStop != ""){
            timeStop = timeStop + " 23:59:59";
        }else {
            timeStop = LocalDateTime.now().toString();
        }
        qo.setTimeStart(timeStart);
        qo.setTimeStop(timeStop);
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo);
        Long itemTotal = seCardOperateMapper.getLossCountIcCardsCount(params);
        QueryResultVo<List<VoICCard>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = qo.pageSize ;
        rsVo.pageCurr = qo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        return rsVo ;
    }
    /**
     * 指定时间段内充值总数量(物理卡)
     * @param qo
     * @return
     */
    public QueryResultVo<List<VoICCard>> getRechargeCountIcCards(CommonQO qo) {
        String timeStart = qo.getTimeStart();
        String timeStop = qo.getTimeStop();
        if (timeStart != null && timeStart != ""){
            timeStart = timeStart + " 00:00:00";
        }else {
            timeStart = LocalDate.now() + " 00:00:00";
        }
        if (timeStop != null && timeStop != ""){
            timeStop = timeStop + " 23:59:59";
        }else {
            timeStop = LocalDateTime.now().toString();
        }
        qo.setTimeStart(timeStart);
        qo.setTimeStop(timeStop);
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo);
        Long itemTotal = seCardOperateMapper.getRechargeCountIcCardsCount(params);
        QueryResultVo<List<VoICCard>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = qo.pageSize ;
        rsVo.pageCurr = qo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        return rsVo ;
    }
    /**
     * 当前余额总量(物理卡)
     * @param
     * @return
     */
    public Double getTotalMoneyIcCards() {
        Double totalMoney = seClientCardMapper.getTotalMoneyIcCards();
        return totalMoney ;
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/card/IcCardqo/CommonQO.java
New file
@@ -0,0 +1,29 @@
package com.dy.pipIrrStatistics.card.IcCardqo;
import com.dy.common.webUtil.QueryConditionVo;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
/**
 * @author :WuZeYu
 * @Date :2024/8/8  9:33
 * @LastEditTime :2024/8/8  9:33
 * @Description
 */
@Data
public class CommonQO extends QueryConditionVo {
    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private String timeStart;
    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @NotBlank(message = "结束时间不能为空")
    private String timeStop;
}
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java
@@ -1,22 +1,9 @@
package com.dy.pipIrrStatistics.intake;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.daoRm.RmOnHourReportHistoryMapper;
import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveHistoryMapper;
import com.dy.pipIrrGlobal.daoRm.RmOnHourReportLastMapper;
import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveLastMapper;
import com.dy.pipIrrGlobal.daoRm.*;
import com.dy.pipIrrGlobal.voSt.*;
import com.dy.pipIrrStatistics.intake.qo.*;
import com.dy.pipIrrGlobal.voSt.VoBatteryVolt;
import com.dy.pipIrrGlobal.voSt.VoCumulativeFlow;
import com.dy.pipIrrGlobal.voSt.VoIntake;
import com.dy.pipIrrGlobal.voSt.VoIntakeOpenCount;
import com.dy.pipIrrGlobal.voSt.VoSignalIntensity;
import com.dy.pipIrrStatistics.intake.qo.BatteryVoltQO;
import com.dy.pipIrrStatistics.intake.qo.CumulativeFlowQO;
import com.dy.pipIrrStatistics.intake.qo.IntakeCountValueQO;
import com.dy.pipIrrStatistics.intake.qo.CommonQO;
import com.dy.pipIrrStatistics.intake.qo.SignalIntensityQO;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,7 +12,7 @@
import java.text.DecimalFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -46,9 +33,13 @@
    private RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapper;
    @Autowired
    private RmOnHourReportLastMapper rmOnHourReportLastMapper;
    @Autowired
    private RmOpenCloseValveLastMapper rmOpenCloseValveLastMapper;
    @Autowired
    private RmIntakeAmountDayMapper rmIntakeAmountDayMapper;
    @Autowired
    private RmLossDayLastMapper rmLossDayLastMapper;
    @Value("${rtu.batteryVolt}")
    private Double batteryVolt;
@@ -201,7 +192,7 @@
        if(timeStart != null && timeStart != "") {
            timeStart = timeStart + " 00:00:00";
        } else {
            timeStart = LocalDateTime.of(2024, 1, 1, 0, 0, 0).toString();
            timeStart = LocalDate.now() + " 00:00:00";
        }
        qo.setTimeStart(timeStart);
@@ -240,7 +231,7 @@
        if(timeStart != null && timeStart != "") {
            timeStart = timeStart + " 00:00:00";
        } else {
            timeStart = LocalDateTime.of(2024, 1, 1, 0, 0, 0).toString();
            timeStart = LocalDate.now() + " 00:00:00";
        }
        qo.setTimeStart(timeStart);
@@ -279,7 +270,7 @@
        if(timeStart != null && timeStart != "") {
            timeStart = timeStart + " 00:00:00";
        } else {
            timeStart = LocalDateTime.of(2024, 1, 1, 0, 0, 0).toString();
            timeStart = LocalDate.now() + " 00:00:00";
        }
        qo.setTimeStart(timeStart);
@@ -437,7 +428,7 @@
        if(timeStart != null && timeStart != "") {
            timeStart = timeStart + " 00:00:00";
        } else {
            timeStart = LocalDateTime.of(2024, 1, 1, 0, 0, 0).toString();
            timeStart = LocalDate.now() + " 00:00:00";
        }
        qo.setTimeStart(timeStart);
@@ -477,7 +468,7 @@
        if(timeStart != null && timeStart != "") {
            timeStart = timeStart + " 00:00:00";
        } else {
            timeStart = LocalDateTime.of(2024, 1, 1, 0, 0, 0).toString();
            timeStart = LocalDate.now() + " 00:00:00";
        }
        qo.setTimeStart(timeStart);
@@ -518,7 +509,7 @@
        if(timeStart != null && timeStart != "") {
            timeStart = timeStart + " 00:00:00";
        } else {
            timeStart = LocalDateTime.of(2024, 1, 1, 0, 0, 0).toString();
            timeStart = LocalDate.now() + " 00:00:00";
        }
        qo.setTimeStart(timeStart);
@@ -557,7 +548,7 @@
        if(timeStart != null && timeStart != "") {
            timeStart = timeStart + " 00:00:00";
        } else {
            timeStart = LocalDateTime.of(2024, 1, 1, 0, 0, 0).toString();
            timeStart = LocalDate.now() + " 00:00:00";
        }
        qo.setTimeStart(timeStart);
@@ -592,7 +583,7 @@
        if(timeStart != null && timeStart != "") {
            timeStart = timeStart + " 00:00:00";
        } else {
            timeStart = LocalDateTime.of(2024, 1, 1, 0, 0, 0).toString();
            timeStart = LocalDate.now() + " 00:00:00";
        }
        qo.setTimeStart(timeStart);
@@ -627,7 +618,7 @@
        if(timeStart != null && timeStart != "") {
            timeStart = timeStart + " 00:00:00";
        } else {
            timeStart = LocalDateTime.of(2024, 1, 1, 0, 0, 0).toString();
            timeStart = LocalDate.now() + " 00:00:00";
        }
        qo.setTimeStart(timeStart);
@@ -650,4 +641,112 @@
        rsVo.obj = rmOpenCloseValveHistoryMapper.getNoOpenHaveCloseIntakes(params);
        return rsVo ;
    }
    /**
     * 统计指定月份各天用水量
     * @param qo
     * @return
     */
    public QueryResultVo<List<VoDayIntakeAmount>> getDayIntakeAmount(IntakeAmountQO qo) {
        Calendar calendar = Calendar.getInstance();
        Integer year = Optional.ofNullable(qo.getYear()).orElse(calendar.get(Calendar.YEAR));
        Integer month = Optional.ofNullable(qo.getMonth()).orElse(calendar.get(Calendar.MONTH));
        qo.setYear(year);
        qo.setMonth(month);
        // 生成查询参数
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
        // 获取符合条件的记录数
        Long itemTotal = Optional.ofNullable(rmIntakeAmountDayMapper.getDayIntakeAmountCount(params)).orElse(0L);
        QueryResultVo<List<VoDayIntakeAmount>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = qo.pageSize ;
        rsVo.pageCurr = qo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = rmIntakeAmountDayMapper.getDayIntakeAmount(params);
        return rsVo ;
    }
    /**
     * 统计指定年份各月用水量
     * @param qo
     * @return
     */
    public QueryResultVo<List<VoMonthAmount>> getMonthIntakeAmount(IntakeAmountQO qo) {
        Calendar calendar = Calendar.getInstance();
        Integer year = Optional.ofNullable(qo.getYear()).orElse(calendar.get(Calendar.YEAR));
        qo.setYear(year);
        // 生成查询参数
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
        // 获取符合条件的记录数
        Long itemTotal = Optional.ofNullable(rmIntakeAmountDayMapper.getMonthIntakeAmountCount(params)).orElse(0L);
        QueryResultVo<List<VoMonthAmount>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = qo.pageSize ;
        rsVo.pageCurr = qo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = rmIntakeAmountDayMapper.getMonthIntakeAmount(params);
        return rsVo ;
    }
    /**
     * 统计指定月份各天漏损量
     * @param qo
     * @return
     */
    public QueryResultVo<List<VoDayLoss>> getDayLossAmount(IntakeAmountQO qo) {
        Calendar calendar = Calendar.getInstance();
        Integer year = Optional.ofNullable(qo.getYear()).orElse(calendar.get(Calendar.YEAR));
        Integer month = Optional.ofNullable(qo.getMonth()).orElse(calendar.get(Calendar.MONTH));
        qo.setYear(year);
        qo.setMonth(month);
        // 生成查询参数
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
        // 获取符合条件的记录数
        Long itemTotal = Optional.ofNullable(rmLossDayLastMapper.getDayLossAmountCount(params)).orElse(0L);
        QueryResultVo<List<VoDayLoss>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = qo.pageSize ;
        rsVo.pageCurr = qo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = rmLossDayLastMapper.getDayLossAmount(params);
        return rsVo ;
    }
    /**
     * 统计指定年份各月漏损量
     * @param qo
     * @return
     */
    public QueryResultVo<List<VoMonthAmount>> getMonthLossAmount(IntakeAmountQO qo) {
        Calendar calendar = Calendar.getInstance();
        Integer year = Optional.ofNullable(qo.getYear()).orElse(calendar.get(Calendar.YEAR));
        qo.setYear(year);
        // 生成查询参数
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
        // 获取符合条件的记录数
        Long itemTotal = Optional.ofNullable(rmLossDayLastMapper.getMonthLossAmountCount(params)).orElse(0L);
        QueryResultVo<List<VoMonthAmount>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = qo.pageSize ;
        rsVo.pageCurr = qo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = rmLossDayLastMapper.getMonthLossAmount(params);
        return rsVo ;
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
@@ -6,16 +6,6 @@
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.voSt.*;
import com.dy.pipIrrStatistics.intake.qo.*;
import com.dy.pipIrrGlobal.voSt.VoBatteryVolt;
import com.dy.pipIrrGlobal.voSt.VoCumulativeFlow;
import com.dy.pipIrrGlobal.voSt.VoIntake;
import com.dy.pipIrrGlobal.voSt.VoSignalIntensity;
import com.dy.pipIrrStatistics.intake.qo.BatteryVoltQO;
import com.dy.pipIrrGlobal.voSt.VoIntakeOpenCount;
import com.dy.pipIrrStatistics.intake.qo.CumulativeFlowQO;
import com.dy.pipIrrStatistics.intake.qo.SignalIntensityQO;
import com.dy.pipIrrStatistics.intake.qo.IntakeCountValueQO;
import com.dy.pipIrrStatistics.result.StatisticlResultCode;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -336,4 +326,68 @@
            return BaseResponseUtils.buildException(e.getMessage()) ;
        }
    }
    /**
     * 统计指定月份各天用水量
     * @param qo
     * @return
     */
    @GetMapping(path = "/getDayIntakeAmount")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoDayIntakeAmount>>> getDayIntakeAmount(IntakeAmountQO qo) {
        try {
            return BaseResponseUtils.buildSuccess(intakeSv.getDayIntakeAmount(qo));
        } catch (Exception e) {
            log.error("获取记录异常", e);
            return BaseResponseUtils.buildException(e.getMessage()) ;
        }
    }
    /**
     * 统计指定年份各月用水量
     * @param qo
     * @return
     */
    @GetMapping(path = "/getMonthIntakeAmount")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoMonthAmount>>> getMonthIntakeAmount(IntakeAmountQO qo) {
        try {
            return BaseResponseUtils.buildSuccess(intakeSv.getMonthIntakeAmount(qo));
        } catch (Exception e) {
            log.error("获取记录异常", e);
            return BaseResponseUtils.buildException(e.getMessage()) ;
        }
    }
    /**
     * 统计指定月份各天漏损量
     * @param qo
     * @return
     */
    @GetMapping(path = "/getDayLossAmount")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoDayLoss>>> getDayLossAmount(IntakeAmountQO qo) {
        try {
            return BaseResponseUtils.buildSuccess(intakeSv.getDayLossAmount(qo));
        } catch (Exception e) {
            log.error("获取记录异常", e);
            return BaseResponseUtils.buildException(e.getMessage()) ;
        }
    }
    /**
     * 统计指定年份各月漏损量
     * @param qo
     * @return
     */
    @GetMapping(path = "/getMonthLossAmount")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoMonthAmount>>> getMonthLossAmount(IntakeAmountQO qo) {
        try {
            return BaseResponseUtils.buildSuccess(intakeSv.getMonthLossAmount(qo));
        } catch (Exception e) {
            log.error("获取记录异常", e);
            return BaseResponseUtils.buildException(e.getMessage()) ;
        }
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeAmountQO.java
New file
@@ -0,0 +1,30 @@
package com.dy.pipIrrStatistics.intake.qo;
import com.dy.common.webUtil.QueryConditionVo;
import lombok.Data;
/**
 * @author ZhuBaoMin
 * @date 2024-08-08 9:59
 * @LastEditTime 2024-08-08 9:59
 * @Description 取水口用水查询对象、漏算查询对象
 */
@Data
public class IntakeAmountQO extends QueryConditionVo {
    /**
     * 年
     */
    private Integer year;
    /**
     * 月
     */
    private Integer month;
    /**
     * 取水口编号
     */
    private String intakeNum;
}