pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java
@@ -5,7 +5,7 @@ import com.dy.pipIrrGlobal.voRm.VoIntakeAmountDay; import com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount; import com.dy.pipIrrGlobal.voSt.VoIntakeAmountStatistics; import com.dy.pipIrrGlobal.voSt.VoMonthIntakeAmount; import com.dy.pipIrrGlobal.voSt.VoMonthAmount; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -118,5 +118,5 @@ * @param params * @return */ List<VoMonthIntakeAmount> getMonthIntakeAmount(Map<?, ?> params); 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/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/VoMonthAmount.java
File was renamed from pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoMonthIntakeAmount.java @@ -9,12 +9,12 @@ * @author ZhuBaoMin * @date 2024-08-08 14:16 * @LastEditTime 2024-08-08 14:16 * @Description 取水口月用水视图 * @Description 取水口月用水视图、月漏损视图 */ @Data @JsonPropertyOrder({ "intakeId", "intakeNum", "month1" , "month2" , "month3" , "month4" , "month5" , "month6" , "month7" , "month8" , "month9" , "month10" , "month11" , "month12" }) public class VoMonthIntakeAmount { public class VoMonthAmount { private static final long serialVersionUID = 202408081417001L; /** pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -72,7 +72,7 @@ pipIrr: global: dev: true #是否开发阶段,true或false dev: false #是否开发阶段,true或false dsName: ym #开发阶段,设置临时的数据库名称 mw: webPort: 8070 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml
@@ -247,187 +247,187 @@ SELECT inta.id AS intakeId, inta.name AS intakeNum, IFNULL((SELECT IFNULL(amount, 0) FROM rm_intake_amount_day intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay FROM rm_intake_amount_day_last intaDay WHERE intaDay.intake_id = inta.id AND YEAR(intaDay.dt) = #{year} AND MONTH(intaDay.dt) = #{month} @@ -460,77 +460,77 @@ </select> <!--统计指定年份各月用水量--> <select id="getMonthIntakeAmount" resultType="com.dy.pipIrrGlobal.voSt.VoMonthIntakeAmount"> <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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay 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 intaDay FROM rm_intake_amount_day_last intaDay WHERE intaDay.intake_id = inta.id AND YEAR(intaDay.dt) = #{year} AND MONTH(intaDay.dt) = 12 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-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java
@@ -12,7 +12,6 @@ import java.text.DecimalFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Calendar; import java.util.List; import java.util.Map; @@ -39,6 +38,8 @@ @Autowired private RmIntakeAmountDayMapper rmIntakeAmountDayMapper; @Autowired private RmLossDayLastMapper rmLossDayLastMapper; @Value("${rtu.batteryVolt}") private Double batteryVolt; @@ -674,7 +675,7 @@ * @param qo * @return */ public QueryResultVo<List<VoMonthIntakeAmount>> getMonthIntakeAmount(IntakeAmountQO qo) { 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); @@ -685,7 +686,7 @@ // 获取符合条件的记录数 Long itemTotal = Optional.ofNullable(rmIntakeAmountDayMapper.getMonthIntakeAmountCount(params)).orElse(0L); QueryResultVo<List<VoMonthIntakeAmount>> rsVo = new QueryResultVo<>() ; QueryResultVo<List<VoMonthAmount>> rsVo = new QueryResultVo<>() ; rsVo.pageSize = qo.pageSize ; rsVo.pageCurr = qo.pageCurr ; @@ -694,4 +695,58 @@ 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
@@ -350,7 +350,7 @@ */ @GetMapping(path = "/getMonthIntakeAmount") @SsoAop() public BaseResponse<QueryResultVo<List<VoMonthIntakeAmount>>> getMonthIntakeAmount(IntakeAmountQO qo) { public BaseResponse<QueryResultVo<List<VoMonthAmount>>> getMonthIntakeAmount(IntakeAmountQO qo) { try { return BaseResponseUtils.buildSuccess(intakeSv.getMonthIntakeAmount(qo)); } catch (Exception e) { @@ -358,4 +358,36 @@ 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
@@ -7,7 +7,7 @@ * @author ZhuBaoMin * @date 2024-08-08 9:59 * @LastEditTime 2024-08-08 9:59 * @Description * @Description 取水口用水查询对象、漏算查询对象 */ @Data