1、统计模块实现农户日用水量纵转横转存,月、年用水量统计;
2、临时模块农户日用水量纵转横转存,月、年用水量统计;
1 文件已重命名
12个文件已修改
3个文件已添加
1471 ■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSt/StClientAmountDayMapper.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSt/StClientAmountMonthMapper.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSt/StClientAmountYearMapper.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSt/StClientAmountDay.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSt/StClientAmountMonth.java 203 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSt/StClientAmountYear.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/StClientAmountDayMapper.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/StClientAmountMonthMapper.xml 500 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/StClientAmountYearMapper.xml 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StClientAmountSv.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/java/com/dy/pipIrrTemp/statistics/StClientAmountConstant.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/java/com/dy/pipIrrTemp/statistics/StClientAmountDaySv.java 93 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/java/com/dy/pipIrrTemp/statistics/StClientAmountMonthSv.java 170 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/java/com/dy/pipIrrTemp/statistics/StClientAmountYearSv.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/java/com/dy/pipIrrTemp/statistics/StSomeCtrl.java 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-temp/说明.txt 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSt/StClientAmountDayMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dy.pipIrrGlobal.pojoSt.StClientAmountDay;
import com.dy.pipIrrGlobal.voSt.VoClientAmountStatistics;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -67,18 +68,24 @@
    //统计相关
    /**
     * æŸ¥è¯¢ç”¨æ°´æˆ·ä¸€ä¸ªæœˆæ‰€æœ‰æ—¥çš„用水量
     * @param clientId
     * @param year
     * @param month
     * @return
     */
    List<StClientAmountDay> selectByClientIdAndYearAndMonthAndDay(@Param("clientId")Long clientId,
                                                                  @Param("year")Integer year,
                                                                  @Param("month")Integer month) ;
    List<VoClientAmountStatistics> statisticsByClient(@Param("year")Integer year,
                                                      @Param("month")Integer month) ;
    /**
     * æŸ¥è¯¢ç”¨æ°´æˆ·ä¸€ä¸ªæœˆæ‰€æœ‰æ—¥çš„用水量
     * @param year
     * @param month
     * @return
     */
    List<StClientAmountDay> selectByYearAndMonthAndDay(@Param("year")Integer year,
                                                       @Param("month")Integer month) ;
    //////////////////////////////////////
    //临时任务相关
    /**
     * åˆ é™¤å…¨éƒ¨
     * @return
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSt/StClientAmountMonthMapper.java
@@ -1,24 +1,22 @@
package com.dy.pipIrrGlobal.daoSt;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dy.pipIrrGlobal.pojoSt.StClientAmountMonth;
import com.dy.pipIrrGlobal.pojoSt.StIntakeAmountMonth;
import com.dy.pipIrrGlobal.voSt.VoClientAmountStatistics;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * @Author: liurunyu
 * @Date: 2024/7/24 17:03
 * @Date: 2024/12/30 8:54
 * @Description
 */
@Mapper
public interface StClientAmountMonthMapper extends BaseMapper<StClientAmountMonth> {
public interface StClientAmountMonthMapper {
    /**
     * delete by primary key
     *
     * @param id primaryKey
     * @return deleteCount
     */
@@ -26,6 +24,7 @@
    /**
     * insert record to table
     *
     * @param record the record
     * @return insert count
     */
@@ -33,6 +32,7 @@
    /**
     * insert record to table selective
     *
     * @param record the record
     * @return insert count
     */
@@ -40,22 +40,15 @@
    /**
     * select by primary key
     *
     * @param id primary key
     * @return object by primary key
     */
    StClientAmountMonth selectByPrimaryKey(Long id);
    /**
     * æŸ¥è¯¢æŸå¹´æŸæœˆæŸå–水口的月某量值
     * @param clientId å†œæˆ·ID
     * @param year æŸå¹´
     * @param month æŸæœˆ
     * @return
     */
    List<StClientAmountMonth> selectByClientIdAndYearAndMonth(@Param("clientId")Long clientId, @Param("year")Integer year, @Param("month")Integer month) ;
    /**
     * update record selective
     *
     * @param record the updated record
     * @return update count
     */
@@ -63,16 +56,38 @@
    /**
     * update record
     *
     * @param record the updated record
     * @return update count
     */
    int updateByPrimaryKey(StClientAmountMonth record);
    //////////////////////////////////////
    //统计相关
    /**
     * æŸ¥è¯¢æŸå¹´æŸæœˆ é‡å€¼
     *
     * @param year     æŸå¹´
     * @return
     */
    List<StClientAmountMonth> selectByYear(@Param("year") Integer year);
    /**
     * ä»¥å†œæˆ·ç»´åº¦ç»Ÿè®¡ç”¨æ°´é‡åŠè´¹ç”¨
     *
     * @param year ç»Ÿè®¡å¹´åº¦
     * @return
     */
    List<VoClientAmountStatistics> statisticsByClient(Integer year) ;
    List<VoClientAmountStatistics> statisticsByClient(Integer year);
    //////////////////////////////////////
    //临时任务相关
    /**
     * åˆ é™¤å…¨éƒ¨
     * @return
     */
    int deleteAll() ;
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSt/StClientAmountYearMapper.java
@@ -1,8 +1,6 @@
package com.dy.pipIrrGlobal.daoSt;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dy.pipIrrGlobal.pojoSt.StClientAmountYear;
import com.dy.pipIrrGlobal.pojoSt.StIntakeAmountYear;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -10,13 +8,14 @@
/**
 * @Author: liurunyu
 * @Date: 2024/7/24 17:03
 * @Date: 2024/12/30 9:21
 * @Description
 */
@Mapper
public interface StClientAmountYearMapper extends BaseMapper<StClientAmountYear> {
public interface StClientAmountYearMapper {
    /**
     * delete by primary key
     *
     * @param id primaryKey
     * @return deleteCount
     */
@@ -24,6 +23,7 @@
    /**
     * insert record to table
     *
     * @param record the record
     * @return insert count
     */
@@ -31,6 +31,7 @@
    /**
     * insert record to table selective
     *
     * @param record the record
     * @return insert count
     */
@@ -38,21 +39,15 @@
    /**
     * select by primary key
     *
     * @param id primary key
     * @return object by primary key
     */
    StClientAmountYear selectByPrimaryKey(Long id);
    /**
     * æŸ¥è¯¢æŸå¹´æŸå–水口的年某量值
     * @param clientId å†œæˆ·ID
     * @param year æŸå¹´
     * @return
     */
    List<StClientAmountYear> selectByClientIdAndYear(@Param("clientId")Long clientId, @Param("year")Integer year) ;
    /**
     * update record selective
     *
     * @param record the updated record
     * @return update count
     */
@@ -60,8 +55,21 @@
    /**
     * update record
     *
     * @param record the updated record
     * @return update count
     */
    int updateByPrimaryKey(StClientAmountYear record);
    /**
     * æŸ¥è¯¢æŸå¹´ æŸé‡å€¼
     *
     * @param year æŸå¹´
     * @return
     */
    List<StClientAmountYear> selectByYear(@Param("year") Integer year);
    /////////////////////////////////////
    //临时任务
    int deleteAll() ;
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSt/StClientAmountDay.java
@@ -25,7 +25,7 @@
@Schema(name = "农户用水量日统计")
public class StClientAmountDay implements BaseEntity {
    public static final long serialVersionUID = 202412281145001L;
    public static final long serialVersionUID = 202412300924001L;
    /**
     * ä¸»é”®
     */
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSt/StClientAmountMonth.java
@@ -2,7 +2,7 @@
/**
 * @Author: liurunyu
 * @Date: 2024/7/24 17:03
 * @Date: 2024/12/30 8:54
 * @Description
 */
@@ -25,7 +25,8 @@
@Schema(name = "农户用水量及费用月统计")
public class StClientAmountMonth implements BaseEntity {
    public static final long serialVersionUID = 202407241705001L;
    public static final long serialVersionUID = 202412300923001L;
    /**
     * ä¸»é”®
     */
@@ -35,36 +36,196 @@
    public Long id;
    /**
    * å†œæˆ·ID
    */
     * å†œæˆ·ID
     */
    @Schema(description = "农户外键", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
    public Long clientId;
    /**
    * ç»Ÿè®¡å¹´åº¦
    */
    @Schema(description = "统计年度", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     * å¹´åº¦
     */
    public Integer year;
    /**
    * ç»Ÿè®¡æœˆä»½
    */
    @Schema(description = "统计月份", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    public Integer month;
     * 1月用水量统计
     */
    public Double amount1;
    /**
    * ç”¨æ°´é‡ï¼ˆm3)
    */
    @Schema(description = "月用水量(m3)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
    public Double amount;
     * 1月花费金额
     */
    public Double money1;
    /**
    * è´¹ç”¨ï¼ˆå…ƒï¼‰
    */
    @Schema(description = "月费用(元)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
    public Double money;
     * 1月用水次数
     */
    public Integer times1;
    /**
     * 2月用水量统计
     */
    public Double amount2;
    /**
     * 2月花费金额
     */
    public Double money2;
    /**
     * 2月用水次数
     */
    public Integer times2;
    /**
     * 3月用水量统计
     */
    public Double amount3;
    /**
     * 3月花费金额
     */
    public Double money3;
    /**
     * 3月用水次数
     */
    public Integer times3;
    /**
     * 4月用水量统计
     */
    public Double amount4;
    /**
     * 4月花费金额
     */
    public Double money4;
    /**
     * 4月用水次数
     */
    public Integer times4;
    /**
     * 5月用水量统计
     */
    public Double amount5;
    /**
     * 5月花费金额
     */
    public Double money5;
    /**
     * 5月用水次数
     */
    public Integer times5;
    /**
     * 6月用水量统计
     */
    public Double amount6;
    /**
     * 6月花费金额
     */
    public Double money6;
    /**
     * 6月用水次数
     */
    public Integer times6;
    /**
     * 7月用水量统计
     */
    public Double amount7;
    /**
     * 7月花费金额
     */
    public Double money7;
    /**
     * 7月用水次数
     */
    public Integer times7;
    /**
     * 8月用水量统计
     */
    public Double amount8;
    /**
     * 8月花费金额
     */
    public Double money8;
    /**
     * 8月用水次数
     */
    public Integer times8;
    /**
     * 9月用水量统计
     */
    public Double amount9;
    /**
     * 9月花费金额
     */
    public Double money9;
    /**
     * 9月用水次数
     */
    public Integer times9;
    /**
     * 10月用水量统计
     */
    public Double amount10;
    /**
     * 10月花费金额
     */
    public Double money10;
    /**
     * 10月用水次数
     */
    public Integer times10;
    /**
     * 11月用水量统计
     */
    public Double amount11;
    /**
     * 11月花费金额
     */
    public Double money11;
    /**
     * 11月用水次数
     */
    public Integer times11;
    /**
     * 12月用水量统计
     */
    public Double amount12;
    /**
     * 12月花费金额
     */
    public Double money12;
    /**
     * 12月用水次数
     */
    public Integer times12;
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSt/StClientAmountYear.java
@@ -2,7 +2,7 @@
/**
 * @Author: liurunyu
 * @Date: 2024/7/24 17:03
 * @Date: 2024/12/30 9:21
 * @Description
 */
@@ -12,7 +12,6 @@
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dy.common.po.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
@@ -25,7 +24,7 @@
@Schema(name = "农户用水量及费用年统计")
public class StClientAmountYear implements BaseEntity {
    public static final long serialVersionUID = 202407241705002L;
    public static final long serialVersionUID = 202412300922001L;
    /**
     * ä¸»é”®
     */
@@ -35,30 +34,31 @@
    public Long id;
    /**
    * å†œæˆ·ID
    */
     * å†œæˆ·ID
     */
    @Schema(description = "农户外键", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
    public Long clientId;
    /**
    * ç»Ÿè®¡å¹´åº¦
    */
    @Schema(description = "统计年度", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     * å¹´åº¦
     */
    public Integer year;
    /**
    * å¹´ç”¨æ°´é‡
    */
    @Schema(description = "年用水量(m3)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
     * å¹´ç”¨æ°´é‡ç»Ÿè®¡
     */
    public Double amount;
    /**
    * å¹´è´¹ç”¨
    */
    @Schema(description = "年费用(元)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" )
     * å¹´èŠ±è´¹é‡‘é¢
     */
    public Double money;
    /**
     * å¹´ç”¨æ°´æ¬¡æ•°
     */
    public Integer times;
}
pipIrr-platform/pipIrr-global/src/main/resources/mapper/StClientAmountDayMapper.xml
@@ -1187,12 +1187,36 @@
  <!-- ////////////////////////////////// -->
  <!-- ç»Ÿè®¡ç›¸å…³                         -->
  <!-- ////////////////////////////////// -->
  <select id="selectByClientIdAndYearAndMonthAndDay" resultType="com.dy.pipIrrGlobal.pojoSt.StClientAmountDay">
  <select id="statisticsByClient" resultType="com.dy.pipIrrGlobal.voSt.VoClientAmountStatistics">
    select client_id as clientId,
    sum(
    IFNULL(amount1,0) + IFNULL(amount2,0) + IFNULL(amount3,0) + IFNULL(amount4,0) + IFNULL(amount5,0) + IFNULL(amount6,0) + IFNULL(amount7,0) + IFNULL(amount8,0) + IFNULL(amount9,0) +
    IFNULL(amount10,0) + IFNULL(amount11,0) + IFNULL(amount12,0) + IFNULL(amount13,0) + IFNULL(amount14,0) + IFNULL(amount15,0) + IFNULL(amount16,0) + IFNULL(amount17,0) + IFNULL(amount18,0) + IFNULL(amount19,0) +
    IFNULL(amount20,0) + IFNULL(amount21,0) + IFNULL(amount22,0) + IFNULL(amount23,0) + IFNULL(amount24,0) + IFNULL(amount25,0) + IFNULL(amount26,0) + IFNULL(amount27,0) + IFNULL(amount28,0) + IFNULL(amount29,0) +
    IFNULL(amount30,0) + IFNULL(amount31,0)
    ) as amount,
    sum(
    IFNULL(money1,0) + IFNULL(money2,0) + IFNULL(money3,0) + IFNULL(money4,0) + IFNULL(money5,0) + IFNULL(money6,0) + IFNULL(money7,0) + IFNULL(money8,0) + IFNULL(money9,0) +
    IFNULL(money10,0) + IFNULL(money11,0) + IFNULL(money12,0) + IFNULL(money13,0) + IFNULL(money14,0) + IFNULL(money15,0) + IFNULL(money16,0) + IFNULL(money17,0) + IFNULL(money18,0) + IFNULL(money19,0) +
    IFNULL(money20,0) + IFNULL(money21,0) + IFNULL(money22,0) + IFNULL(money23,0) + IFNULL(money24,0) + IFNULL(money25,0) + IFNULL(money26,0) + IFNULL(money27,0) + IFNULL(money28,0) + IFNULL(money29,0) +
    IFNULL(money30,0) + IFNULL(money31,0)
    ) as money,
    sum(
    IFNULL(times1,0) + IFNULL(times2,0) + IFNULL(times3,0) + IFNULL(times4,0) + IFNULL(times5,0) + IFNULL(times6,0) + IFNULL(times7,0) + IFNULL(times8,0) + IFNULL(times9,0) +
    IFNULL(times10,0) + IFNULL(times11,0) + IFNULL(times12,0) + IFNULL(times13,0) + IFNULL(times14,0) + IFNULL(times15,0) + IFNULL(times16,0) + IFNULL(times17,0) + IFNULL(times18,0) + IFNULL(times19,0) +
    IFNULL(times20,0) + IFNULL(times21,0) + IFNULL(times22,0) + IFNULL(times23,0) + IFNULL(times24,0) + IFNULL(times25,0) + IFNULL(times26,0) + IFNULL(times27,0) + IFNULL(times28,0) + IFNULL(times29,0) +
    IFNULL(times30,0) + IFNULL(times31,0)
    ) as times
    from st_client_amount_day
    where year = #{year, jdbcType=INTEGER}
    and month = #{month, jdbcType=INTEGER}
    group by client_id
  </select>
  <select id="selectByYearAndMonthAndDay" resultType="com.dy.pipIrrGlobal.pojoSt.StClientAmountDay">
    select
    <include refid="Base_Column_List" />
    from st_client_amount_day
    where client_id = #{clientId,jdbcType=BIGINT}
    and year = #{year,jdbcType=INTEGER}
    where year = #{year,jdbcType=INTEGER}
    and month = #{month,jdbcType=INTEGER}
  </select>
pipIrr-platform/pipIrr-global/src/main/resources/mapper/StClientAmountMonthMapper.xml
@@ -7,13 +7,49 @@
    <id column="id" jdbcType="BIGINT" property="id" />
    <result column="client_id" jdbcType="BIGINT" property="clientId" />
    <result column="year" jdbcType="INTEGER" property="year" />
    <result column="month" jdbcType="INTEGER" property="month" />
    <result column="amount" jdbcType="FLOAT" property="amount" />
    <result column="money" jdbcType="FLOAT" property="money" />
    <result column="amount1" jdbcType="FLOAT" property="amount1" />
    <result column="money1" jdbcType="FLOAT" property="money1" />
    <result column="times1" jdbcType="INTEGER" property="times1" />
    <result column="amount2" jdbcType="FLOAT" property="amount2" />
    <result column="money2" jdbcType="FLOAT" property="money2" />
    <result column="times2" jdbcType="INTEGER" property="times2" />
    <result column="amount3" jdbcType="FLOAT" property="amount3" />
    <result column="money3" jdbcType="FLOAT" property="money3" />
    <result column="times3" jdbcType="INTEGER" property="times3" />
    <result column="amount4" jdbcType="FLOAT" property="amount4" />
    <result column="money4" jdbcType="FLOAT" property="money4" />
    <result column="times4" jdbcType="INTEGER" property="times4" />
    <result column="amount5" jdbcType="FLOAT" property="amount5" />
    <result column="money5" jdbcType="FLOAT" property="money5" />
    <result column="times5" jdbcType="INTEGER" property="times5" />
    <result column="amount6" jdbcType="FLOAT" property="amount6" />
    <result column="money6" jdbcType="FLOAT" property="money6" />
    <result column="times6" jdbcType="INTEGER" property="times6" />
    <result column="amount7" jdbcType="FLOAT" property="amount7" />
    <result column="money7" jdbcType="FLOAT" property="money7" />
    <result column="times7" jdbcType="INTEGER" property="times7" />
    <result column="amount8" jdbcType="FLOAT" property="amount8" />
    <result column="money8" jdbcType="FLOAT" property="money8" />
    <result column="times8" jdbcType="INTEGER" property="times8" />
    <result column="amount9" jdbcType="FLOAT" property="amount9" />
    <result column="money9" jdbcType="FLOAT" property="money9" />
    <result column="times9" jdbcType="INTEGER" property="times9" />
    <result column="amount10" jdbcType="FLOAT" property="amount10" />
    <result column="money10" jdbcType="FLOAT" property="money10" />
    <result column="times10" jdbcType="INTEGER" property="times10" />
    <result column="amount11" jdbcType="FLOAT" property="amount11" />
    <result column="money11" jdbcType="FLOAT" property="money11" />
    <result column="times11" jdbcType="INTEGER" property="times11" />
    <result column="amount12" jdbcType="FLOAT" property="amount12" />
    <result column="money12" jdbcType="FLOAT" property="money12" />
    <result column="times12" jdbcType="INTEGER" property="times12" />
  </resultMap>
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
    id, client_id, `year`, `month`, amount, money
    id, client_id, `year`, amount1, money1, times1, amount2, money2, times2, amount3,
    money3, times3, amount4, money4, times4, amount5, money5, times5, amount6, money6,
    times6, amount7, money7, times7, amount8, money8, times8, amount9, money9, times9,
    amount10, money10, times10, amount11, money11, times11, amount12, money12, times12
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
    <!--@mbg.generated-->
@@ -21,22 +57,6 @@
    <include refid="Base_Column_List" />
    from st_client_amount_month
    where id = #{id,jdbcType=BIGINT}
  </select>
  <select id="selectByClientIdAndYearAndMonth" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List" />
    from st_client_amount_month
    <where>
      <if test="clientId != null">
        and client_id = #{clientId,jdbcType=BIGINT}
      </if>
      <if test="year != null">
        and year = #{year,jdbcType=INTEGER}
      </if>
      <if test="month != null">
        and month = #{month,jdbcType=INTEGER}
      </if>
    </where>
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
    <!--@mbg.generated-->
@@ -46,9 +66,33 @@
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSt.StClientAmountMonth">
    <!--@mbg.generated-->
    insert into st_client_amount_month (id, client_id, `year`, 
      `month`, amount, money)
      amount1, money1, times1,
      amount2, money2, times2,
      amount3, money3, times3,
      amount4, money4, times4,
      amount5, money5, times5,
      amount6, money6, times6,
      amount7, money7, times7,
      amount8, money8, times8,
      amount9, money9, times9,
      amount10, money10, times10,
      amount11, money11, times11,
      amount12, money12, times12
      )
    values (#{id,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT}, #{year,jdbcType=INTEGER}, 
      #{month,jdbcType=INTEGER}, #{amount,jdbcType=FLOAT}, #{money,jdbcType=FLOAT})
      #{amount1,jdbcType=FLOAT}, #{money1,jdbcType=FLOAT}, #{times1,jdbcType=INTEGER},
      #{amount2,jdbcType=FLOAT}, #{money2,jdbcType=FLOAT}, #{times2,jdbcType=INTEGER},
      #{amount3,jdbcType=FLOAT}, #{money3,jdbcType=FLOAT}, #{times3,jdbcType=INTEGER},
      #{amount4,jdbcType=FLOAT}, #{money4,jdbcType=FLOAT}, #{times4,jdbcType=INTEGER},
      #{amount5,jdbcType=FLOAT}, #{money5,jdbcType=FLOAT}, #{times5,jdbcType=INTEGER},
      #{amount6,jdbcType=FLOAT}, #{money6,jdbcType=FLOAT}, #{times6,jdbcType=INTEGER},
      #{amount7,jdbcType=FLOAT}, #{money7,jdbcType=FLOAT}, #{times7,jdbcType=INTEGER},
      #{amount8,jdbcType=FLOAT}, #{money8,jdbcType=FLOAT}, #{times8,jdbcType=INTEGER},
      #{amount9,jdbcType=FLOAT}, #{money9,jdbcType=FLOAT}, #{times9,jdbcType=INTEGER},
      #{amount10,jdbcType=FLOAT}, #{money10,jdbcType=FLOAT}, #{times10,jdbcType=INTEGER},
      #{amount11,jdbcType=FLOAT}, #{money11,jdbcType=FLOAT}, #{times11,jdbcType=INTEGER},
      #{amount12,jdbcType=FLOAT}, #{money12,jdbcType=FLOAT}, #{times12,jdbcType=INTEGER}
      )
  </insert>
  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSt.StClientAmountMonth">
    <!--@mbg.generated-->
@@ -63,14 +107,113 @@
      <if test="year != null">
        `year`,
      </if>
      <if test="month != null">
        `month`,
      <if test="amount1 != null">
        amount1,
      </if>
      <if test="amount != null">
        amount,
      <if test="money1 != null">
        money1,
      </if>
      <if test="money != null">
        money,
      <if test="times1 != null">
        times1,
      </if>
      <if test="amount2 != null">
        amount2,
      </if>
      <if test="money2 != null">
        money2,
      </if>
      <if test="times2 != null">
        times2,
      </if>
      <if test="amount3 != null">
        amount3,
      </if>
      <if test="money3 != null">
        money3,
      </if>
      <if test="times3 != null">
        times3,
      </if>
      <if test="amount4 != null">
        amount4,
      </if>
      <if test="money4 != null">
        money4,
      </if>
      <if test="times4 != null">
        times4,
      </if>
      <if test="amount5 != null">
        amount5,
      </if>
      <if test="money5 != null">
        money5,
      </if>
      <if test="times5 != null">
        times5,
      </if>
      <if test="amount6 != null">
        amount6,
      </if>
      <if test="money6 != null">
        money6,
      </if>
      <if test="times6 != null">
        times6,
      </if>
      <if test="amount7 != null">
        amount7,
      </if>
      <if test="money7 != null">
        money7,
      </if>
      <if test="times7 != null">
        times7,
      </if>
      <if test="amount8 != null">
        amount8,
      </if>
      <if test="money8 != null">
        money8,
      </if>
      <if test="times8 != null">
        times8,
      </if>
      <if test="amount9 != null">
        amount9,
      </if>
      <if test="money9 != null">
        money9,
      </if>
      <if test="times9 != null">
        times9,
      </if>
      <if test="amount10 != null">
        amount10,
      </if>
      <if test="money10 != null">
        money10,
      </if>
      <if test="times10 != null">
        times10,
      </if>
      <if test="amount11 != null">
        amount11,
      </if>
      <if test="money11 != null">
        money11,
      </if>
      <if test="times11 != null">
        times11,
      </if>
      <if test="amount12 != null">
        amount12,
      </if>
      <if test="money12 != null">
        money12,
      </if>
      <if test="times12 != null">
        times12,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
@@ -83,14 +226,113 @@
      <if test="year != null">
        #{year,jdbcType=INTEGER},
      </if>
      <if test="month != null">
        #{month,jdbcType=INTEGER},
      <if test="amount1 != null">
        #{amount1,jdbcType=FLOAT},
      </if>
      <if test="amount != null">
        #{amount,jdbcType=FLOAT},
      <if test="money1 != null">
        #{money1,jdbcType=FLOAT},
      </if>
      <if test="money != null">
        #{money,jdbcType=FLOAT},
      <if test="times1 != null">
        #{times1,jdbcType=INTEGER},
      </if>
      <if test="amount2 != null">
        #{amount2,jdbcType=FLOAT},
      </if>
      <if test="money2 != null">
        #{money2,jdbcType=FLOAT},
      </if>
      <if test="times2 != null">
        #{times2,jdbcType=INTEGER},
      </if>
      <if test="amount3 != null">
        #{amount3,jdbcType=FLOAT},
      </if>
      <if test="money3 != null">
        #{money3,jdbcType=FLOAT},
      </if>
      <if test="times3 != null">
        #{times3,jdbcType=INTEGER},
      </if>
      <if test="amount4 != null">
        #{amount4,jdbcType=FLOAT},
      </if>
      <if test="money4 != null">
        #{money4,jdbcType=FLOAT},
      </if>
      <if test="times4 != null">
        #{times4,jdbcType=INTEGER},
      </if>
      <if test="amount5 != null">
        #{amount5,jdbcType=FLOAT},
      </if>
      <if test="money5 != null">
        #{money5,jdbcType=FLOAT},
      </if>
      <if test="times5 != null">
        #{times5,jdbcType=INTEGER},
      </if>
      <if test="amount6 != null">
        #{amount6,jdbcType=FLOAT},
      </if>
      <if test="money6 != null">
        #{money6,jdbcType=FLOAT},
      </if>
      <if test="times6 != null">
        #{times6,jdbcType=INTEGER},
      </if>
      <if test="amount7 != null">
        #{amount7,jdbcType=FLOAT},
      </if>
      <if test="money7 != null">
        #{money7,jdbcType=FLOAT},
      </if>
      <if test="times7 != null">
        #{times7,jdbcType=INTEGER},
      </if>
      <if test="amount8 != null">
        #{amount8,jdbcType=FLOAT},
      </if>
      <if test="money8 != null">
        #{money8,jdbcType=FLOAT},
      </if>
      <if test="times8 != null">
        #{times8,jdbcType=INTEGER},
      </if>
      <if test="amount9 != null">
        #{amount9,jdbcType=FLOAT},
      </if>
      <if test="money9 != null">
        #{money9,jdbcType=FLOAT},
      </if>
      <if test="times9 != null">
        #{times9,jdbcType=INTEGER},
      </if>
      <if test="amount10 != null">
        #{amount10,jdbcType=FLOAT},
      </if>
      <if test="money10 != null">
        #{money10,jdbcType=FLOAT},
      </if>
      <if test="times10 != null">
        #{times10,jdbcType=INTEGER},
      </if>
      <if test="amount11 != null">
        #{amount11,jdbcType=FLOAT},
      </if>
      <if test="money11 != null">
        #{money11,jdbcType=FLOAT},
      </if>
      <if test="times11 != null">
        #{times11,jdbcType=INTEGER},
      </if>
      <if test="amount12 != null">
        #{amount12,jdbcType=FLOAT},
      </if>
      <if test="money12 != null">
        #{money12,jdbcType=FLOAT},
      </if>
      <if test="times12 != null">
        #{times12,jdbcType=INTEGER},
      </if>
    </trim>
  </insert>
@@ -104,14 +346,113 @@
      <if test="year != null">
        `year` = #{year,jdbcType=INTEGER},
      </if>
      <if test="month != null">
        `month` = #{month,jdbcType=INTEGER},
      <if test="amount1 != null">
        amount1 = #{amount1,jdbcType=FLOAT},
      </if>
      <if test="amount != null">
        amount = #{amount,jdbcType=FLOAT},
      <if test="money1 != null">
        money1 = #{money1,jdbcType=FLOAT},
      </if>
      <if test="money != null">
        money = #{money,jdbcType=FLOAT},
      <if test="times1 != null">
        times1 = #{times1,jdbcType=INTEGER},
      </if>
      <if test="amount2 != null">
        amount2 = #{amount2,jdbcType=FLOAT},
      </if>
      <if test="money2 != null">
        money2 = #{money2,jdbcType=FLOAT},
      </if>
      <if test="times2 != null">
        times2 = #{times2,jdbcType=INTEGER},
      </if>
      <if test="amount3 != null">
        amount3 = #{amount3,jdbcType=FLOAT},
      </if>
      <if test="money3 != null">
        money3 = #{money3,jdbcType=FLOAT},
      </if>
      <if test="times3 != null">
        times3 = #{times3,jdbcType=INTEGER},
      </if>
      <if test="amount4 != null">
        amount4 = #{amount4,jdbcType=FLOAT},
      </if>
      <if test="money4 != null">
        money4 = #{money4,jdbcType=FLOAT},
      </if>
      <if test="times4 != null">
        times4 = #{times4,jdbcType=INTEGER},
      </if>
      <if test="amount5 != null">
        amount5 = #{amount5,jdbcType=FLOAT},
      </if>
      <if test="money5 != null">
        money5 = #{money5,jdbcType=FLOAT},
      </if>
      <if test="times5 != null">
        times5 = #{times5,jdbcType=INTEGER},
      </if>
      <if test="amount6 != null">
        amount6 = #{amount6,jdbcType=FLOAT},
      </if>
      <if test="money6 != null">
        money6 = #{money6,jdbcType=FLOAT},
      </if>
      <if test="times6 != null">
        times6 = #{times6,jdbcType=INTEGER},
      </if>
      <if test="amount7 != null">
        amount7 = #{amount7,jdbcType=FLOAT},
      </if>
      <if test="money7 != null">
        money7 = #{money7,jdbcType=FLOAT},
      </if>
      <if test="times7 != null">
        times7 = #{times7,jdbcType=INTEGER},
      </if>
      <if test="amount8 != null">
        amount8 = #{amount8,jdbcType=FLOAT},
      </if>
      <if test="money8 != null">
        money8 = #{money8,jdbcType=FLOAT},
      </if>
      <if test="times8 != null">
        times8 = #{times8,jdbcType=INTEGER},
      </if>
      <if test="amount9 != null">
        amount9 = #{amount9,jdbcType=FLOAT},
      </if>
      <if test="money9 != null">
        money9 = #{money9,jdbcType=FLOAT},
      </if>
      <if test="times9 != null">
        times9 = #{times9,jdbcType=INTEGER},
      </if>
      <if test="amount10 != null">
        amount10 = #{amount10,jdbcType=FLOAT},
      </if>
      <if test="money10 != null">
        money10 = #{money10,jdbcType=FLOAT},
      </if>
      <if test="times10 != null">
        times10 = #{times10,jdbcType=INTEGER},
      </if>
      <if test="amount11 != null">
        amount11 = #{amount11,jdbcType=FLOAT},
      </if>
      <if test="money11 != null">
        money11 = #{money11,jdbcType=FLOAT},
      </if>
      <if test="times11 != null">
        times11 = #{times11,jdbcType=INTEGER},
      </if>
      <if test="amount12 != null">
        amount12 = #{amount12,jdbcType=FLOAT},
      </if>
      <if test="money12 != null">
        money12 = #{money12,jdbcType=FLOAT},
      </if>
      <if test="times12 != null">
        times12 = #{times12,jdbcType=INTEGER},
      </if>
    </set>
    where id = #{id,jdbcType=BIGINT}
@@ -121,18 +462,81 @@
    update st_client_amount_month
    set client_id = #{clientId,jdbcType=BIGINT},
      `year` = #{year,jdbcType=INTEGER},
      `month` = #{month,jdbcType=INTEGER},
      amount = #{amount,jdbcType=FLOAT},
      money = #{money,jdbcType=FLOAT}
      amount1 = #{amount1,jdbcType=FLOAT},
      money1 = #{money1,jdbcType=FLOAT},
      times1 = #{times1,jdbcType=INTEGER},
      amount2 = #{amount2,jdbcType=FLOAT},
      money2 = #{money2,jdbcType=FLOAT},
      times2 = #{times2,jdbcType=INTEGER},
      amount3 = #{amount3,jdbcType=FLOAT},
      money3 = #{money3,jdbcType=FLOAT},
      times3 = #{times3,jdbcType=INTEGER},
      amount4 = #{amount4,jdbcType=FLOAT},
      money4 = #{money4,jdbcType=FLOAT},
      times4 = #{times4,jdbcType=INTEGER},
      amount5 = #{amount5,jdbcType=FLOAT},
      money5 = #{money5,jdbcType=FLOAT},
      times5 = #{times5,jdbcType=INTEGER},
      amount6 = #{amount6,jdbcType=FLOAT},
      money6 = #{money6,jdbcType=FLOAT},
      times6 = #{times6,jdbcType=INTEGER},
      amount7 = #{amount7,jdbcType=FLOAT},
      money7 = #{money7,jdbcType=FLOAT},
      times7 = #{times7,jdbcType=INTEGER},
      amount8 = #{amount8,jdbcType=FLOAT},
      money8 = #{money8,jdbcType=FLOAT},
      times8 = #{times8,jdbcType=INTEGER},
      amount9 = #{amount9,jdbcType=FLOAT},
      money9 = #{money9,jdbcType=FLOAT},
      times9 = #{times9,jdbcType=INTEGER},
      amount10 = #{amount10,jdbcType=FLOAT},
      money10 = #{money10,jdbcType=FLOAT},
      times10 = #{times10,jdbcType=INTEGER},
      amount11 = #{amount11,jdbcType=FLOAT},
      money11 = #{money11,jdbcType=FLOAT},
      times11 = #{times11,jdbcType=INTEGER},
      amount12 = #{amount12,jdbcType=FLOAT},
      money12 = #{money12,jdbcType=FLOAT},
      times12 = #{times12,jdbcType=INTEGER}
    where id = #{id,jdbcType=BIGINT}
  </update>
  <select id="statisticsByClient" resultType="com.dy.pipIrrGlobal.voSt.VoClientAmountStatistics">
    select client_id, sum(amount) as amount, sum(money) as money
  <select id="selectByYear" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List" />
    from st_client_amount_month
    where `year` = #{year,jdbcType=INTEGER}
    group by client_id
    <where>
      <if test="year != null">
        and year = #{year,jdbcType=INTEGER}
      </if>
    </where>
  </select>
  <select id="statisticsByClient" resultType="com.dy.pipIrrGlobal.voSt.VoClientAmountStatistics">
    select client_id as clientId,
    sum(
    IFNULL(amount1,0) + IFNULL(amount2,0) + IFNULL(amount3,0) + IFNULL(amount4,0) + IFNULL(amount5,0) + IFNULL(amount6,0) + IFNULL(amount7,0) + IFNULL(amount8,0) + IFNULL(amount9,0) +
    IFNULL(amount10,0) + IFNULL(amount11,0) + IFNULL(amount12,0)
    ) as amount,
    sum(
    IFNULL(money1,0) + IFNULL(money2,0) + IFNULL(money3,0) + IFNULL(money4,0) + IFNULL(money5,0) + IFNULL(money6,0) + IFNULL(money7,0) + IFNULL(money8,0) + IFNULL(money9,0) +
    IFNULL(money10,0) + IFNULL(money11,0) + IFNULL(money12,0)
    ) as money,
    sum(
    IFNULL(times1,0) + IFNULL(times2,0) + IFNULL(times3,0) + IFNULL(times4,0) + IFNULL(times5,0) + IFNULL(times6,0) + IFNULL(times7,0) + IFNULL(times8,0) + IFNULL(times9,0) +
    IFNULL(times10,0) + IFNULL(times11,0) + IFNULL(times12,0)
    ) as times
    from st_client_amount_month
    where year = #{year, jdbcType=INTEGER}
    group by client_id
  </select>
  <!-- ////////////////////////////////// -->
  <!-- ä¸´æ—¶ä»»åŠ¡ç›¸å…³                         -->
  <!-- ////////////////////////////////// -->
  <delete id="deleteAll">
    delete from st_client_amount_month
  </delete>
</mapper>
pipIrr-platform/pipIrr-global/src/main/resources/mapper/StClientAmountYearMapper.xml
@@ -9,10 +9,11 @@
    <result column="year" jdbcType="INTEGER" property="year" />
    <result column="amount" jdbcType="FLOAT" property="amount" />
    <result column="money" jdbcType="FLOAT" property="money" />
    <result column="times" jdbcType="INTEGER" property="times" />
  </resultMap>
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
    id, client_id, `year`, amount, money
    id, client_id, `year`, amount, money, times
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
    <!--@mbg.generated-->
@@ -20,19 +21,6 @@
    <include refid="Base_Column_List" />
    from st_client_amount_year
    where id = #{id,jdbcType=BIGINT}
  </select>
  <select id="selectByClientIdAndYear" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List" />
    from st_client_amount_year
    <where>
      <if test="clientId != null">
        and client_id = #{clientId,jdbcType=BIGINT}
      </if>
      <if test="year != null">
        and `year` = #{year,jdbcType=INTEGER}
      </if>
    </where>
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
    <!--@mbg.generated-->
@@ -42,9 +30,9 @@
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSt.StClientAmountYear">
    <!--@mbg.generated-->
    insert into st_client_amount_year (id, client_id, `year`, 
      amount, money)
      amount, money, times)
    values (#{id,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT}, #{year,jdbcType=INTEGER}, 
      #{amount,jdbcType=FLOAT}, #{money,jdbcType=FLOAT})
      #{amount,jdbcType=FLOAT}, #{money,jdbcType=FLOAT}, #{times,jdbcType=INTEGER})
  </insert>
  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSt.StClientAmountYear">
    <!--@mbg.generated-->
@@ -65,6 +53,9 @@
      <if test="money != null">
        money,
      </if>
      <if test="times != null">
        times,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="id != null">
@@ -81,6 +72,9 @@
      </if>
      <if test="money != null">
        #{money,jdbcType=FLOAT},
      </if>
      <if test="times != null">
        #{times,jdbcType=INTEGER},
      </if>
    </trim>
  </insert>
@@ -100,6 +94,9 @@
      <if test="money != null">
        money = #{money,jdbcType=FLOAT},
      </if>
      <if test="times != null">
        times = #{times,jdbcType=INTEGER},
      </if>
    </set>
    where id = #{id,jdbcType=BIGINT}
  </update>
@@ -109,7 +106,32 @@
    set client_id = #{clientId,jdbcType=BIGINT},
      `year` = #{year,jdbcType=INTEGER},
      amount = #{amount,jdbcType=FLOAT},
      money = #{money,jdbcType=FLOAT}
      money = #{money,jdbcType=FLOAT},
      times = #{times,jdbcType=INTEGER}
    where id = #{id,jdbcType=BIGINT}
  </update>
  <!-- ////////////////////////////////// -->
  <!-- ç»Ÿè®¡ç›¸å…³                         -->
  <!-- ////////////////////////////////// -->
  <select id="selectByYear" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List" />
    from st_client_amount_year
    <where>
      <if test="year != null">
        and `year` = #{year,jdbcType=INTEGER}
      </if>
    </where>
  </select>
  <!-- ////////////////////////////////// -->
  <!-- ä¸´æ—¶ä»»åŠ¡ç›¸å…³                         -->
  <!-- ////////////////////////////////// -->
  <delete id="deleteAll">
    delete from st_client_amount_year
  </delete>
</mapper>
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/statistics/StClientAmountSv.java
@@ -6,7 +6,6 @@
import com.dy.pipIrrGlobal.daoSt.StClientAmountYearMapper;
import com.dy.pipIrrGlobal.pojoSt.*;
import com.dy.pipIrrGlobal.voSt.VoClientAmountStatistics;
import com.dy.pipIrrGlobal.voSt.VoClientConsumeStatistics;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@@ -40,13 +39,9 @@
    protected void statisticsDay(Integer statisticsYear, Integer statisticsMonth, Integer statisticsDay, Long statisticsStartId, Long statisticsEndId){
        List<VoClientAmountStatistics> list = rmClientAmountDayDao.statisticsByClient(statisticsStartId, statisticsEndId) ;
        if(list != null && list.size() > 0){
            List<StClientAmountDay> listOfDay = stClientAmountDayDao.selectByYearAndMonthAndDay(statisticsYear, statisticsMonth) ;
            for(VoClientAmountStatistics vo : list){
                List<StClientAmountDay> listOfDay = stClientAmountDayDao.selectByClientIdAndYearAndMonthAndDay(vo.clientId, statisticsYear, statisticsMonth) ;
                StClientAmountDay po = null ;
                if(listOfDay != null && listOfDay.size() > 0){
                    //程序逻辑控制上,集合中只有一个对象
                    po = listOfDay.get(0) ;
                }
                StClientAmountDay po = this.getDayDataOfClient(listOfDay, vo.clientId) ;
                if(po == null){
                    po = new StClientAmountDay() ;
                    po.clientId = vo.clientId ;
@@ -68,23 +63,17 @@
     */
    @Transactional
    protected void statisticsMonth(Integer statisticsYear, Integer statisticsMonth, Long statisticsStartId, Long statisticsEndId){
        List<VoClientAmountStatistics> list = rmClientAmountDayDao.statisticsByClient(statisticsStartId, statisticsEndId) ;
        List<VoClientAmountStatistics> list = stClientAmountDayDao.statisticsByClient(statisticsYear, statisticsMonth) ;
        if(list != null && list.size() > 0){
            List<StClientAmountMonth> listOfMonth = stClientAmountMonthDao.selectByYear(statisticsYear) ;
            for(VoClientAmountStatistics vo : list){
                List<StClientAmountMonth> listOfMonth = stClientAmountMonthDao.selectByClientIdAndYearAndMonth(vo.clientId, statisticsYear, statisticsMonth) ;
                StClientAmountMonth po = null ;
                if(listOfMonth != null && listOfMonth.size() > 0){
                    //程序逻辑控制上,集合中只有一个对象
                    po = listOfMonth.get(0) ;
                }
                 StClientAmountMonth po = this.getMonthDataOfClient(listOfMonth, vo.clientId) ;
                if(po == null) {
                    po = new StClientAmountMonth();
                }
                po.clientId = vo.clientId ;
                po.year = statisticsYear ;
                po.month = statisticsMonth ;
                po.amount = vo.amount;
                po.money = vo.money ;
                this.setValueOfMonthOfYear(statisticsMonth, vo, po) ;
                if(po.id == null) {
                    stClientAmountMonthDao.insert(po);
                }else{
@@ -101,20 +90,17 @@
    protected void statisticsYear(Integer statisticsYear){
        List<VoClientAmountStatistics> list = stClientAmountMonthDao.statisticsByClient(statisticsYear) ;
        if(list != null && list.size() > 0){
            List<StClientAmountYear> listOfYear = stClientAmountYearDao.selectByYear(statisticsYear) ;
            for(VoClientAmountStatistics vo : list){
                List<StClientAmountYear> listOfYear = stClientAmountYearDao.selectByClientIdAndYear(vo.clientId, statisticsYear) ;
                StClientAmountYear po = null ;
                if(listOfYear != null && listOfYear.size() > 0){
                    //程序逻辑控制上,集合中只有一个对象
                    po = listOfYear.get(0) ;
                }
                StClientAmountYear po = this.getYearDataOfClient(listOfYear, vo.clientId) ;
                if(po == null) {
                    po = new StClientAmountYear();
                }
                po.clientId = vo.clientId ;
                po.year = statisticsYear ;
                po.amount = vo.amount;
                po.amount = vo.amount ;
                po.money = vo.money ;
                po.times = vo.times ;
                if(po.id == null) {
                    stClientAmountYearDao.insert(po);
                }else{
@@ -122,6 +108,45 @@
                }
            }
        }
    }
    private StClientAmountDay getDayDataOfClient(List<StClientAmountDay> list, Long clientId){
        if(list != null && list.size() > 0){
            for(StClientAmountDay po : list){
                if(po.clientId.longValue() == clientId.longValue()){
                    //程序逻辑控制上,集合中只有一个对象
                    return po;
                }
            }
        }
        return null ;
    }
    private StClientAmountMonth getMonthDataOfClient(List<StClientAmountMonth> list, Long clientId){
        if(list != null && list.size() > 0){
            for(StClientAmountMonth po : list){
                if(po.clientId.longValue() == clientId.longValue()){
                    //程序逻辑控制上,集合中只有一个对象
                    return po;
                }
            }
        }
        return null ;
    }
    private StClientAmountYear getYearDataOfClient(List<StClientAmountYear> list, Long clientId){
        if(list != null && list.size() > 0){
            for(StClientAmountYear po : list){
                if(po.clientId.longValue() == clientId.longValue()){
                    //程序逻辑控制上,集合中只有一个对象
                    return po;
                }
            }
        }
        return null ;
    }
@@ -285,61 +310,69 @@
        }
    }
    private void setValueOfMonthOfYear(Integer statisticsMonth, VoClientConsumeStatistics vo, StConsumeClientMonth po){
    private void setValueOfMonthOfYear(Integer statisticsMonth, VoClientAmountStatistics vo, StClientAmountMonth po){
        switch (statisticsMonth) {
            case 1:
                po.amount1 = vo.money;
                po.amount1 = vo.amount;
                po.money1 = vo.money;
                po.times1 = vo.times;
                break;
            case 2:
                po.amount2 = vo.money;
                po.amount2 = vo.amount;
                po.money2 = vo.money;
                po.times2 = vo.times;
                break;
            case 3:
                po.amount3 = vo.money;
                po.amount3 = vo.amount;
                po.money3 = vo.money;
                po.times3 = vo.times;
                break;
            case 4:
                po.amount4 = vo.money;
                po.amount4 = vo.amount;
                po.money4 = vo.money;
                po.times4 = vo.times;
                break;
            case 5:
                po.amount5 = vo.money;
                po.amount5 = vo.amount;
                po.money5 = vo.money;
                po.times5 = vo.times;
                break;
            case 6:
                po.amount6 = vo.money;
                po.amount6 = vo.amount;
                po.money6 = vo.money;
                po.times6 = vo.times;
                break;
            case 7:
                po.amount7 = vo.money;
                po.amount7 = vo.amount;
                po.money7 = vo.money;
                po.times7 = vo.times;
                break;
            case 8:
                po.amount8 = vo.money;
                po.amount8 = vo.amount;
                po.money8 = vo.money;
                po.times8 = vo.times;
                break;
            case 9:
                po.amount9 = vo.money;
                po.amount9 = vo.amount;
                po.money9 = vo.money;
                po.times9 = vo.times;
                break;
            case 10:
                po.amount10 = vo.money;
                po.amount10 = vo.amount;
                po.money10 = vo.money;
                po.times10 = vo.times;
                break;
            case 11:
                po.amount11 = vo.money;
                po.amount11 = vo.amount;
                po.money11 = vo.money;
                po.times11 = vo.times;
                break;
            case 12:
                po.amount12 = vo.money;
                po.amount12 = vo.amount;
                po.money12 = vo.money;
                po.times12 = vo.times;
                break;
        }
    }
    private void setValueOfYear(VoClientConsumeStatistics vo, StConsumeClientYear po){
        po.amount = vo.money;
        po.times = vo.times;
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/java/com/dy/pipIrrTemp/statistics/StClientAmountConstant.java
New file
@@ -0,0 +1,12 @@
package com.dy.pipIrrTemp.statistics;
/**
 * @Author: liurunyu
 * @Date: 2024/12/30 13:49
 * @Description
 */
public class StClientAmountConstant {
    public static final int[][] yearMonthGrp = {{2024, 9}, {2024, 10}, {2024, 11}, {2024, 12}, {2025, 1}, {2025, 2}, {2025, 3}, {2025, 4}};
}
pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/java/com/dy/pipIrrTemp/statistics/StClientAmountDaySv.java
File was renamed from pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/java/com/dy/pipIrrTemp/statistics/StClientAmountSv.java
@@ -24,7 +24,7 @@
@Slf4j
@Service
public class StClientAmountSv {
public class StClientAmountDaySv {
    protected RmClientAmountDayMapper rmClientAmountDayDao;
@@ -40,8 +40,6 @@
        this.stClientAmountDayDao = dao;
    }
    private static final int[][] yearMonthGrp = {{2024, 9}, {2024, 10}, {2024, 11}, {2024, 12}, {2025, 1}, {2025, 2}, {2025, 3}, {2025, 4}};
    /**
     * åˆ é™¤æ‰€æœ‰
     * @throws Exception
@@ -56,17 +54,18 @@
     * @throws Exception
     */
    public void transSaveClientAmountDay() throws Exception {
        //统计到昨天,今天的统计明日零晨定时任务统计
        Long yesterday = Long.parseLong(DateTime.lastXDay_yyyy_MM_dd(1).replaceAll("-", ""));
        Long atDay = Long.MAX_VALUE ;
        int endDayOfMonth = 0 ;
        for(int[] ym : yearMonthGrp) {
        for(int[] ym : StClientAmountConstant.yearMonthGrp) {
            endDayOfMonth = DateTime.endDayOfMonth(ym[0], ym[1]) ;
            for (int day = 1; day <= endDayOfMonth; day++) {
                atDay = Long.parseLong(ym[0] + "" + (ym[1] < 10?("0" + ym[1]):ym[1]) + "" + (day < 10?("0" + day):day)) ;
                if(atDay <= yesterday) {
                    Long statistics4DayStartId = IDLongGenerator.generateOneDayStartId(ym[0], ym[1], day);
                    Long statistics4DayEndId = IDLongGenerator.generateOneDayEndId(ym[0], ym[1], day);
                    this.statisticsDay(ym[0], ym[1], day, statistics4DayStartId, statistics4DayEndId);
                    this.doSome(ym[0], ym[1], day, statistics4DayStartId, statistics4DayEndId);
                }
            }
        }
@@ -74,23 +73,19 @@
    @Transactional
    protected void statisticsDay(Integer statisticsYear, Integer statisticsMonth, Integer statisticsDay, Long statisticsStartId, Long statisticsEndId){
    protected void doSome(Integer statisticsYear, Integer statisticsMonth, Integer statisticsDay, Long statisticsStartId, Long statisticsEndId){
        List<VoClientAmountStatistics> list = rmClientAmountDayDao.statisticsByClient(statisticsStartId, statisticsEndId) ;
        if(list != null && list.size() > 0){
            List<StClientAmountDay> listOfDay = stClientAmountDayDao.selectByYearAndMonthAndDay(statisticsYear, statisticsMonth) ;
            for(VoClientAmountStatistics vo : list){
                List<StClientAmountDay> listOfDay = stClientAmountDayDao.selectByClientIdAndYearAndMonthAndDay(vo.clientId, statisticsYear, statisticsMonth) ;
                StClientAmountDay po = null ;
                if(listOfDay != null && listOfDay.size() > 0){
                    //程序逻辑控制上,集合中只有一个对象
                    po = listOfDay.get(0) ;
                }
                StClientAmountDay po = this.getDataOfClient(listOfDay, vo.clientId) ;
                if(po == null){
                    po = new StClientAmountDay() ;
                    po.clientId = vo.clientId ;
                    po.year = statisticsYear ;
                    po.month = statisticsMonth ;
                }
                this.setValueOfDayOfMonth(statisticsDay, vo, po);
                this.setValue(statisticsDay, vo, po);
                if(po.id == null) {
                    stClientAmountDayDao.insert(po);
                }else{
@@ -100,7 +95,20 @@
        }
    }
    private void setValueOfDayOfMonth(Integer statisticsDay, VoClientAmountStatistics vo, StClientAmountDay po){
    private StClientAmountDay getDataOfClient(List<StClientAmountDay> list, Long clientId){
        if(list != null && list.size() > 0){
            for(StClientAmountDay vo : list){
                if(vo.clientId.longValue() == clientId.longValue()){
                    //程序逻辑控制上,集合中只有一个对象
                    return vo ;
                }
            }
        }
        return null ;
    }
    private void setValue(Integer statisticsDay, VoClientAmountStatistics vo, StClientAmountDay po){
        switch (statisticsDay) {
            case 1:
                po.amount1 = vo.amount;
@@ -260,62 +268,5 @@
        }
    }
    private void setValueOfMonthOfYear(Integer statisticsMonth, VoClientConsumeStatistics vo, StConsumeClientMonth po){
        switch (statisticsMonth) {
            case 1:
                po.amount1 = vo.amount;
                po.times1 = vo.times;
                break;
            case 2:
                po.amount2 = vo.amount;
                po.times2 = vo.times;
                break;
            case 3:
                po.amount3 = vo.amount;
                po.times3 = vo.times;
                break;
            case 4:
                po.amount4 = vo.amount;
                po.times4 = vo.times;
                break;
            case 5:
                po.amount5 = vo.amount;
                po.times5 = vo.times;
                break;
            case 6:
                po.amount6 = vo.amount;
                po.times6 = vo.times;
                break;
            case 7:
                po.amount7 = vo.amount;
                po.times7 = vo.times;
                break;
            case 8:
                po.amount8 = vo.amount;
                po.times8 = vo.times;
                break;
            case 9:
                po.amount9 = vo.amount;
                po.times9 = vo.times;
                break;
            case 10:
                po.amount10 = vo.amount;
                po.times10 = vo.times;
                break;
            case 11:
                po.amount11 = vo.amount;
                po.times11 = vo.times;
                break;
            case 12:
                po.amount12 = vo.amount;
                po.times12 = vo.times;
                break;
        }
    }
    private void setValueOfYear(VoClientConsumeStatistics vo, StConsumeClientYear po){
        po.amount = vo.amount;
        po.times = vo.times;
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/java/com/dy/pipIrrTemp/statistics/StClientAmountMonthSv.java
New file
@@ -0,0 +1,170 @@
package com.dy.pipIrrTemp.statistics;
import com.dy.common.util.DateTime;
import com.dy.common.util.IDLongGenerator;
import com.dy.pipIrrGlobal.daoSt.StClientAmountDayMapper;
import com.dy.pipIrrGlobal.daoSt.StClientAmountMonthMapper;
import com.dy.pipIrrGlobal.pojoSt.StClientAmountMonth;
import com.dy.pipIrrGlobal.pojoSt.StConsumeClientMonth;
import com.dy.pipIrrGlobal.pojoSt.StConsumeClientYear;
import com.dy.pipIrrGlobal.voSt.VoClientAmountStatistics;
import com.dy.pipIrrGlobal.voSt.VoClientConsumeStatistics;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
 * @Author: liurunyu
 * @Date: 2024/12/30 09:52
 * @Description
 */
@Slf4j
@Service
public class StClientAmountMonthSv {
    protected StClientAmountDayMapper stClientAmountDayDao;
    protected StClientAmountMonthMapper stClientAmountMonthDao;
    @Autowired
    private void setDao(StClientAmountDayMapper dao) {
        this.stClientAmountDayDao = dao;
    }
    @Autowired
    private void setDao(StClientAmountMonthMapper dao) {
        this.stClientAmountMonthDao = dao;
    }
    /**
     * åˆ é™¤æ‰€æœ‰
     * @throws Exception
     */
    public void deleteAllStClientAmountMonth() throws Exception {
        stClientAmountMonthDao.deleteAll() ;
    }
    /**
     * è½¬å­˜å†œæˆ·æœˆå–水量
     *
     * @throws Exception
     */
    public void statisticsClientAmountMonth() throws Exception {
        //统计到昨天,今天的统计明日零晨定时任务统计
        Long curYm = Long.parseLong(DateTime.yyyy_MM().replaceAll("-", ""));
        Long atMonth ;
        for(int[] ym : StClientAmountConstant.yearMonthGrp) {
            atMonth = Long.parseLong(ym[0] + "" + (ym[1] < 10?("0" + ym[1]):ym[1]) ) ;
            if(atMonth <= curYm) {
                this.doSome(ym[0], ym[1]);
            }
        }
    }
    @Transactional
    protected void doSome(Integer statisticsYear, Integer statisticsMonth){
        List<VoClientAmountStatistics> list = stClientAmountDayDao.statisticsByClient(statisticsYear, statisticsMonth) ;
        if(list != null && list.size() > 0){
            List<StClientAmountMonth> listOfMonth = stClientAmountMonthDao.selectByYear(statisticsYear) ;
            for(VoClientAmountStatistics vo : list){
                StClientAmountMonth po = this.getDataOfClient(listOfMonth, vo.clientId) ;
                if(po == null){
                    po = new StClientAmountMonth() ;
                    po.clientId = vo.clientId ;
                    po.year = statisticsYear ;
                }
                this.setValue(statisticsMonth, vo, po);
                if(po.id == null) {
                    stClientAmountMonthDao.insert(po);
                }else{
                    stClientAmountMonthDao.updateByPrimaryKeySelective(po) ;
                }
            }
        }
    }
    private StClientAmountMonth getDataOfClient(List<StClientAmountMonth> list, Long clientId){
        if(list != null && list.size() > 0){
            for(StClientAmountMonth vo : list){
                if(vo.clientId.longValue() == clientId.longValue()){
                    //程序逻辑控制上,集合中只有一个对象
                    return vo ;
                }
            }
        }
        return null ;
    }
    private void setValue(Integer statisticsMonth, VoClientAmountStatistics vo, StClientAmountMonth po){
        switch (statisticsMonth) {
            case 1:
                po.amount1 = vo.amount;
                po.money1 = vo.money;
                po.times1 = vo.times;
                break;
            case 2:
                po.amount2 = vo.amount;
                po.money2 = vo.money;
                po.times2 = vo.times;
                break;
            case 3:
                po.amount3 = vo.amount;
                po.money3 = vo.money;
                po.times3 = vo.times;
                break;
            case 4:
                po.amount4 = vo.amount;
                po.money4 = vo.money;
                po.times4 = vo.times;
                break;
            case 5:
                po.amount5 = vo.amount;
                po.money5 = vo.money;
                po.times5 = vo.times;
                break;
            case 6:
                po.amount6 = vo.amount;
                po.money6 = vo.money;
                po.times6 = vo.times;
                break;
            case 7:
                po.amount7 = vo.amount;
                po.money7 = vo.money;
                po.times7 = vo.times;
                break;
            case 8:
                po.amount8 = vo.amount;
                po.money8 = vo.money;
                po.times8 = vo.times;
                break;
            case 9:
                po.amount9 = vo.amount;
                po.money9 = vo.money;
                po.times9 = vo.times;
                break;
            case 10:
                po.amount10 = vo.amount;
                po.money10 = vo.money;
                po.times10 = vo.times;
                break;
            case 11:
                po.amount11 = vo.amount;
                po.money11 = vo.money;
                po.times11 = vo.times;
                break;
            case 12:
                po.amount12 = vo.amount;
                po.money12 = vo.money;
                po.times12 = vo.times;
                break;
        }
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/java/com/dy/pipIrrTemp/statistics/StClientAmountYearSv.java
New file
@@ -0,0 +1,116 @@
package com.dy.pipIrrTemp.statistics;
import com.dy.common.util.DateTime;
import com.dy.pipIrrGlobal.daoSt.StClientAmountDayMapper;
import com.dy.pipIrrGlobal.daoSt.StClientAmountMonthMapper;
import com.dy.pipIrrGlobal.daoSt.StClientAmountYearMapper;
import com.dy.pipIrrGlobal.pojoSt.StClientAmountMonth;
import com.dy.pipIrrGlobal.pojoSt.StClientAmountYear;
import com.dy.pipIrrGlobal.voSt.VoClientAmountStatistics;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
 * @Author: liurunyu
 * @Date: 2024/12/30 09:52
 * @Description
 */
@Slf4j
@Service
public class StClientAmountYearSv {
    protected StClientAmountDayMapper stClientAmountDayDao;
    protected StClientAmountMonthMapper stClientAmountMonthDao;
    protected StClientAmountYearMapper stClientAmountYearDao;
    @Autowired
    private void setDao(StClientAmountDayMapper dao) {
        this.stClientAmountDayDao = dao;
    }
    @Autowired
    private void setDao(StClientAmountMonthMapper dao) {
        this.stClientAmountMonthDao = dao;
    }
    @Autowired
    private void setDao(StClientAmountYearMapper dao) {
        this.stClientAmountYearDao = dao;
    }
    /**
     * åˆ é™¤æ‰€æœ‰
     * @throws Exception
     */
    public void deleteAllStClientAmountYear() throws Exception {
        stClientAmountYearDao.deleteAll() ;
    }
    /**
     * è½¬å­˜å†œæˆ·å¹´å–水量
     *
     * @throws Exception
     */
    public void statisticsClientAmountYear() throws Exception {
        //统计到昨天,今天的统计明日零晨定时任务统计
        Long curY = Long.parseLong(DateTime.yyyy().replaceAll("-", ""));
        Long atYear ;
        for(int[] ym : StClientAmountConstant.yearMonthGrp) {
            atYear = ym[0] + 0L ;
            if(atYear <= curY) {
                this.doSome(ym[0]);
            }
        }
    }
    @Transactional
    protected void doSome(Integer statisticsYear){
        List<VoClientAmountStatistics> list = stClientAmountMonthDao.statisticsByClient(statisticsYear) ;
        if(list != null && list.size() > 0){
            List<StClientAmountYear> listOfYear = stClientAmountYearDao.selectByYear(statisticsYear) ;
            for(VoClientAmountStatistics vo : list){
                StClientAmountYear po = this.getDataOfClient(listOfYear, vo.clientId) ;
                if(po == null){
                    po = new StClientAmountYear() ;
                    po.clientId = vo.clientId ;
                    po.year = statisticsYear ;
                }
                this.setValue(vo, po);
                if(po.id == null) {
                    stClientAmountYearDao.insert(po);
                }else{
                    stClientAmountYearDao.updateByPrimaryKeySelective(po) ;
                }
            }
        }
    }
    private StClientAmountYear getDataOfClient(List<StClientAmountYear> list, Long clientId){
        if(list != null && list.size() > 0){
            for(StClientAmountYear vo : list){
                if(vo.clientId.longValue() == clientId.longValue()){
                    //程序逻辑控制上,集合中只有一个对象
                    return vo ;
                }
            }
        }
        return null ;
    }
    private void setValue(VoClientAmountStatistics vo, StClientAmountYear po){
        po.amount = vo.amount;
        po.money = vo.money;
        po.times = vo.times;
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/java/com/dy/pipIrrTemp/statistics/StSomeCtrl.java
@@ -19,11 +19,21 @@
@RequestMapping(path = "stSome")
public class StSomeCtrl {
    private StClientAmountSv stClientAmountSv;
    private StClientAmountDaySv stClientAmountDaySv;
    private StClientAmountMonthSv stClientAmountMonthSv;
    private StClientAmountYearSv stClientAmountYearSv;
    @Autowired
    private void setSv(StClientAmountSv sv) {
        this.stClientAmountSv = sv;
    private void setSv(StClientAmountDaySv sv) {
        this.stClientAmountDaySv = sv;
    }
    @Autowired
    private void setSv(StClientAmountMonthSv sv) {
        this.stClientAmountMonthSv = sv;
    }
    @Autowired
    private void setSv(StClientAmountYearSv sv) {
        this.stClientAmountYearSv = sv;
    }
    ///////////////////////////////////////////
@@ -38,8 +48,30 @@
    @GetMapping(path = "transSaveClientAmountDay")
    @SsoAop()
    public BaseResponse<Boolean> transSaveClientAmountDay() throws Exception{
        this.stClientAmountSv.deleteAllStClientAmountDay();
        this.stClientAmountSv.transSaveClientAmountDay();
        this.stClientAmountDaySv.deleteAllStClientAmountDay();
        this.stClientAmountDaySv.transSaveClientAmountDay();
        return BaseResponseUtils.buildSuccess(true);
    }
    /**
     * ç»Ÿè®¡å†œæˆ·æœˆå–水量
     * @return
     */
    @GetMapping(path = "statisticsClientAmountMonth")
    @SsoAop()
    public BaseResponse<Boolean> statisticsClientAmountMonth() throws Exception{
        this.stClientAmountMonthSv.deleteAllStClientAmountMonth();
        this.stClientAmountMonthSv.statisticsClientAmountMonth();
        return BaseResponseUtils.buildSuccess(true);
    }
   /**
     * ç»Ÿè®¡å†œæˆ·å¹´å–水量
     * @return
     */
    @GetMapping(path = "statisticsClientAmountYear")
    @SsoAop()
    public BaseResponse<Boolean> statisticsClientAmountYear() throws Exception{
        this.stClientAmountYearSv.deleteAllStClientAmountYear();
        this.stClientAmountYearSv.statisticsClientAmountYear();
        return BaseResponseUtils.buildSuccess(true);
    }
pipIrr-platform/pipIrr-web/pipIrr-web-temp/˵Ã÷.txt
@@ -27,4 +27,8 @@
10 è½¬å­˜å†œæˆ·æ—¥å–水量,由纵型改为横型(2025å¹´4月(包括)前可执行多次)
/temp/stSome/transSaveClientAmountDay
/temp/stSome/transSaveClientAmountDay
11 ç»Ÿè®¡å†œæˆ·æœˆå–水量,必须上面transSaveClientAmountDay执行完后再执行
/temp/stSome/statisticsClientAmountMonth
12 ç»Ÿè®¡å†œæˆ·å¹´å–水量,必须上面statisticsClientAmountMonth执行完后再执行
/temp/stSome/statisticsClientAmountYear