From 6dcef8bdb3a6d1681fadf4001c22f63f046af84b Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期四, 12 十二月 2024 17:22:00 +0800 Subject: [PATCH] 取水口取水月,年统计查询重新实现 --- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoDayIntakeAmount.java | 77 ++- pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeCtrl.java | 72 +++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java | 32 + pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml | 447 +++++++++++++++++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeQo.java | 48 ++ pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossCtrl.java | 3 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossSv.java | 28 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeSv.java | 188 +++++++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSt/StIntakeAmountMonthMapper.java | 32 + pipIrr-platform/pipIrr-global/src/main/resources/mapper/StIntakeAmountMonthMapper.xml | 187 +++++++++ 10 files changed, 1,064 insertions(+), 50 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java index a934457..a725519 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java @@ -4,6 +4,7 @@ import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay; import com.dy.pipIrrGlobal.voRm.VoIntakeAmountDay; import com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount; +import com.dy.pipIrrGlobal.voSt.VoDayLoss; import com.dy.pipIrrGlobal.voSt.VoIntakeAmountStatistics; import com.dy.pipIrrGlobal.voSt.VoMonthAmount; import org.apache.ibatis.annotations.Mapper; @@ -119,4 +120,35 @@ * @return */ List<VoMonthAmount> getMonthIntakeAmount(Map<?, ?> params); + + //////////////////////////////////////////////// + // 缁熻鏌ヨ + /////////////////////////////////////////////// + + /** + * 涓烘煡璇㈢粺璁″彇姘村彛鏃ユ紡鎹熼噺锛岀粺璁″彇姘村彛鏁伴噺 + * @param intakeN + * @return + */ + Long selectIntakeCount4AmountDay(@Param("intakeNum")String intakeN) ; + + /** + * 涓烘煡璇㈢粺璁″彇姘村彛鏃ユ紡鎹熼噺锛屾煡璇竴椤靛彇姘村彛ID + * @param params + * @return + */ + List<VoDayIntakeAmount> selectIntakes4AmountDay(Map<?, ?> params) ; + + /** + * 鏌ヨ缁熻鍙栨按鍙f棩婕忔崯閲� + * @param params + * @return + */ + //涓嬮潰1鍒�31鍙峰垎浜�6涓煡璇紝鍘熷洜鏄叆涓�涓煡璇腑锛岄潪甯告參锛屼笉鐭ラ亾浠�涔堝師鍥狅紝涔熻鏄瓙鏌ヨ澶鐨勫師鍥� + List<VoDayIntakeAmount> selectIntakeAmountOfDay01_05(Map<?, ?> params); + List<VoDayIntakeAmount> selectIntakeAmountOfDay06_10(Map<?, ?> params); + List<VoDayIntakeAmount> selectIntakeAmountOfDay11_15(Map<?, ?> params); + List<VoDayIntakeAmount> selectIntakeAmountOfDay16_20(Map<?, ?> params); + List<VoDayIntakeAmount> selectIntakeAmountOfDay21_25(Map<?, ?> params); + List<VoDayIntakeAmount> selectIntakeAmountOfDay26_31(Map<?, ?> params); } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSt/StIntakeAmountMonthMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSt/StIntakeAmountMonthMapper.java index 2f0f5fe..9e0372d 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSt/StIntakeAmountMonthMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSt/StIntakeAmountMonthMapper.java @@ -5,10 +5,12 @@ import com.dy.pipIrrGlobal.pojoSt.StLossMonth; import com.dy.pipIrrGlobal.voSt.VoIntakeAmountStatistics; import com.dy.pipIrrGlobal.voSt.VoIntakeLossStatistics; +import com.dy.pipIrrGlobal.voSt.VoMonthAmount; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * @Author: liurunyu @@ -74,11 +76,39 @@ * @param year 缁熻骞村害 * @return */ - List<VoIntakeAmountStatistics> statisticsByIntake(Integer year, Integer month, Long startId, Long endId) ; + List<VoIntakeAmountStatistics> statisticsByIntake(@Param("year")Integer year, @Param("month")Integer month, @Param("startId")Long startId, @Param("endId")Long endId) ; /** * 浠ュ彇姘村彛缁村害缁熻鍙栨按閲� * @param year 缁熻骞村害 * @return */ List<VoIntakeAmountStatistics> statisticsByIntake(Integer year) ; + + + //////////////////////////////////////////////// + // 缁熻鏌ヨ + /////////////////////////////////////////////// + + /** + * 涓烘煡璇㈢粺璁″彇姘村彛鏃ユ紡鎹熼噺锛岀粺璁″彇姘村彛鏁伴噺 + * @param intakeN + * @return + */ + Long selectIntakeCount4AmountMonth(@Param("intakeNum")String intakeN) ; + + /** + * 涓烘煡璇㈢粺璁″彇姘村彛鏃ユ紡鎹熼噺锛屾煡璇竴椤靛彇姘村彛ID + * @param params + * @return + */ + List<VoMonthAmount> selectIntakes4AmountMonth(Map<?, ?> params) ; + + /** + * 鏌ヨ缁熻鍙栨按鍙f湀婕忔崯閲� + * @param params + * @return + */ + //涓嬮潰1鍒�12鏈堝垎浜�2涓煡璇紝鍘熷洜鏄湪涓�涓煡璇腑锛岄潪甯告參锛屼笉鐭ラ亾浠�涔堝師鍥狅紝涔熻鏄瓙鏌ヨ澶鐨勫師鍥� + List<VoMonthAmount> selectIntakeAmountOfMonth01_06(Map<?, ?> params); + List<VoMonthAmount> selectIntakeAmountOfMonth07_12(Map<?, ?> params); } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoDayIntakeAmount.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoDayIntakeAmount.java index 88fef3c..384f01a 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoDayIntakeAmount.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoDayIntakeAmount.java @@ -16,79 +16,88 @@ @Data @JsonPropertyOrder({ "intakeId", "intakeNum", "amount1" , "amount2" , "amount3" , "amount4" , "amount5" , "amount6" , "amount7" , "amount8" , "amount9" , "amount10" , "amount11" , "amount12" , "amount13" , "amount14" , "amount15" , "amount16" , "amount17" , "amount18" , "amount19" , "amount20" , "amount21" , "amount22" , "amount23" , "amount24" , "amount25" , "amount26" , "amount27" , "amount28" , "amount29" , "amount30" , "amount31" }) public class VoDayIntakeAmount { - private static final long serialVersionUID = 202408080933001L; + public static final long serialVersionUID = 202408080933001L; /** * 鍙栨按鍙D */ @JSONField(serializeUsing= ObjectWriterImplToString.class) - private Long intakeId; + public Long intakeId; /** * 鍙栨按鍙g紪鍙� */ - private String intakeNum; + public String intakeNum; + + /** + * 缁忓害 + */ + public Double intakeLng; + /** + * 绾害 + */ + public Double intakeLat; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount1; + public Double amount1; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount2; + public Double amount2; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount3; + public Double amount3; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount4; + public Double amount4; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount5; + public Double amount5; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount6; + public Double amount6; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount7; + public Double amount7; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount8; + public Double amount8; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount9; + public Double amount9; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount10; + public Double amount10; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount11; + public Double amount11; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount12; + public Double amount12; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount13; + public Double amount13; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount14; + public Double amount14; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount15; + public Double amount15; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount16; + public Double amount16; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount17; + public Double amount17; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount18; + public Double amount18; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount19; + public Double amount19; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount20; + public Double amount20; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount21; + public Double amount21; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount22; + public Double amount22; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount23; + public Double amount23; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount24; + public Double amount24; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount25; + public Double amount25; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount26; + public Double amount26; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount27; + public Double amount27; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount28; + public Double amount28; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount29; + public Double amount29; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount30; + public Double amount30; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) - private Double amount31; + public Double amount31; } diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml index c68b2b7..7ddc8ab 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml @@ -549,4 +549,451 @@ </if> </trim> </select> + + + + + <!-- 涓烘煡璇㈢粺璁″彇姘村彛鏃ユ紡鎹熼噺锛岀粺璁″彇姘村彛鏁伴噺 --> + <select id="selectIntakeCount4AmountDay" resultType="java.lang.Long"> + SELECT COUNT(*) + FROM pr_intake tb + <where> + AND tb.deleted != 1 + <if test="intakeNum != null and intakeNum != ''"> + AND tb.name = #{intakeNum} + </if> + </where> + </select> + + <!-- 涓烘煡璇㈢粺璁″彇姘村彛鏃ユ紡鎹熼噺锛屾煡璇竴椤靛彇姘村彛ID --> + <select id="selectIntakes4AmountDay" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> + SELECT id as intakeId, + name as intakeNum, + lat as intakeLat, + lng as intakeLng + FROM pr_intake + <where> + AND deleted != 1 + <if test="intakeNum != null and intakeNum != ''"> + AND name = #{intakeNum} + </if> + </where> + order by id DESC + <trim prefix="limit " > + <if test="start != null and count != null"> + #{start, javaType=Integer, jdbcType=INTEGER}, #{count, javaType=Integer, jdbcType=INTEGER} + </if> + </trim> + </select> + + <sql id="selectIntakeAmountOfDay_with"> + SELECT intaId.intakeId AS intakeId, + riad.dt AS dt, + riad.amount AS amount + FROM JSON_TABLE( + #{intakesJson}, + '$[*]' COLUMNS ( + intakeId BIGINT PATH '$.intakeId' + ) + ) intaId + INNER JOIN rm_intake_amount_day riad ON riad.intake_id = intaId.intakeId + <where> + <if test="startDt != null "> + AND riad.dt <![CDATA[>=]]> #{startDt, javaType=DATE, jdbcType=DATE} + </if> + <if test="endDt != null "> + AND riad.dt <![CDATA[<=]]> #{endDt, javaType=DATE, jdbcType=DATE} + </if> + </where> + </sql> + + <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(1鍙峰埌5鍙�)--> + <select id="selectIntakeAmountOfDay01_05" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> + WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>) + SELECT inta.intakeId AS intakeId, + inta.intakeNum AS intakeNum, + inta.intakeLng AS intakeLng, + inta.intakeLat AS intakeLat, + tb01.amount AS amount1, + tb02.amount AS amount2, + tb03.amount AS amount3, + tb04.amount AS amount4, + tb05.amount AS amount5 + FROM JSON_TABLE( + #{intakesJson}, + '$[*]' COLUMNS ( + intakeId BIGINT PATH '$.intakeId', + intakeNum VARCHAR(100) PATH '$.intakeNum', + intakeLng DOUBLE PATH '$.intakeLng', + intakeLat DOUBLE PATH '$.intakeLat' + ) + ) inta + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 1 + ) as tb01 on tb01.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 2 + ) as tb02 on tb02.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 3 + ) as tb03 on tb03.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 4 + ) as tb04 on tb04.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 5 + ) as tb05 on tb05.intakeId = inta.intakeId + </select> + + + <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(6鍙峰埌10鍙�)--> + <select id="selectIntakeAmountOfDay06_10" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> + WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>) + SELECT inta.intakeId AS intakeId, + inta.intakeNum AS intakeNum, + inta.intakeLng AS intakeLng, + inta.intakeLat AS intakeLat, + tb06.amount AS amount6, + tb07.amount AS amount7, + tb08.amount AS amount8, + tb09.amount AS amount9, + tb10.amount AS amount10 + FROM JSON_TABLE( + #{intakesJson}, + '$[*]' COLUMNS ( + intakeId BIGINT PATH '$.intakeId', + intakeNum VARCHAR(100) PATH '$.intakeNum', + intakeLng DOUBLE PATH '$.intakeLng', + intakeLat DOUBLE PATH '$.intakeLat' + ) + ) inta + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 6 + ) as tb06 on tb06.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 7 + ) as tb07 on tb07.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 8 + ) as tb08 on tb08.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 9 + ) as tb09 on tb09.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 10 + ) as tb10 on tb10.intakeId = inta.intakeId + </select> + + <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(11鍙峰埌15鍙�)--> + <select id="selectIntakeAmountOfDay11_15" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> + WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>) + SELECT inta.intakeId AS intakeId, + inta.intakeNum AS intakeNum, + inta.intakeLng AS intakeLng, + inta.intakeLat AS intakeLat, + tb11.amount AS amount11, + tb12.amount AS amount12, + tb13.amount AS amount13, + tb14.amount AS amount14, + tb15.amount AS amount15 + FROM JSON_TABLE( + #{intakesJson}, + '$[*]' COLUMNS ( + intakeId BIGINT PATH '$.intakeId', + intakeNum VARCHAR(100) PATH '$.intakeNum', + intakeLng DOUBLE PATH '$.intakeLng', + intakeLat DOUBLE PATH '$.intakeLat' + ) + ) inta + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 11 + ) as tb11 on tb11.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 12 + ) as tb12 on tb12.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 13 + ) as tb13 on tb13.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 14 + ) as tb14 on tb14.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 15 + ) as tb15 on tb15.intakeId = inta.intakeId + </select> + + <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(20鍙峰埌16鍙�)--> + <select id="selectIntakeAmountOfDay16_20" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> + WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>) + SELECT inta.intakeId AS intakeId, + inta.intakeNum AS intakeNum, + inta.intakeLng AS intakeLng, + inta.intakeLat AS intakeLat, + tb16.amount AS amount16, + tb17.amount AS amount17, + tb18.amount AS amount18, + tb19.amount AS amount19, + tb20.amount AS amount20 + FROM JSON_TABLE( + #{intakesJson}, + '$[*]' COLUMNS ( + intakeId BIGINT PATH '$.intakeId', + intakeNum VARCHAR(100) PATH '$.intakeNum', + intakeLng DOUBLE PATH '$.intakeLng', + intakeLat DOUBLE PATH '$.intakeLat' + ) + ) inta + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 16 + ) as tb16 on tb16.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 17 + ) as tb17 on tb17.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 18 + ) as tb18 on tb18.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 19 + ) as tb19 on tb19.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 20 + ) as tb20 on tb20.intakeId = inta.intakeId + </select> + + <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(21鍙峰埌25鍙�)--> + <select id="selectIntakeAmountOfDay21_25" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> + WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>) + SELECT inta.intakeId AS intakeId, + inta.intakeNum AS intakeNum, + inta.intakeLng AS intakeLng, + inta.intakeLat AS intakeLat, + tb21.amount AS amount21, + tb22.amount AS amount22, + tb23.amount AS amount23, + tb24.amount AS amount24, + tb25.amount AS amount25 + FROM JSON_TABLE( + #{intakesJson}, + '$[*]' COLUMNS ( + intakeId BIGINT PATH '$.intakeId', + intakeNum VARCHAR(100) PATH '$.intakeNum', + intakeLng DOUBLE PATH '$.intakeLng', + intakeLat DOUBLE PATH '$.intakeLat' + ) + ) inta + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 21 + ) as tb21 on tb21.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 22 + ) as tb22 on tb22.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 23 + ) as tb23 on tb23.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 24 + ) as tb24 on tb24.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 25 + ) as tb25 on tb25.intakeId = inta.intakeId + </select> + + <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(26鍙峰埌31鍙�)--> + <select id="selectIntakeAmountOfDay26_31" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount"> + WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>) + SELECT inta.intakeId AS intakeId, + inta.intakeNum AS intakeNum, + inta.intakeLng AS intakeLng, + inta.intakeLat AS intakeLat, + tb26.amount AS amount26, + tb27.amount AS amount27, + tb28.amount AS amount28, + tb29.amount AS amount29, + tb30.amount AS amount30, + tb31.amount AS amount31 + FROM JSON_TABLE( + #{intakesJson}, + '$[*]' COLUMNS ( + intakeId BIGINT PATH '$.intakeId', + intakeNum VARCHAR(100) PATH '$.intakeNum', + intakeLng DOUBLE PATH '$.intakeLng', + intakeLat DOUBLE PATH '$.intakeLat' + ) + ) inta + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 26 + ) as tb26 on tb26.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 27 + ) as tb27 on tb27.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 28 + ) as tb28 on tb28.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 29 + ) as tb29 on tb29.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 30 + ) as tb30 on tb30.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountDay AS tb + WHERE YEAR(tb.dt) = #{year} + AND MONTH(tb.dt) = #{month} + AND DAY(tb.dt) = 31 + ) as tb31 on tb31.intakeId = inta.intakeId + </select> + + </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/StIntakeAmountMonthMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/StIntakeAmountMonthMapper.xml index 8c63d23..cb32952 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/StIntakeAmountMonthMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/StIntakeAmountMonthMapper.xml @@ -123,4 +123,191 @@ group by intake_id </select> + + + + <!-- 涓烘煡璇㈢粺璁″彇姘村彛鏃ョ敤姘撮噺锛岀粺璁″彇姘村彛鏁伴噺 --> + <select id="selectIntakeCount4AmountMonth" resultType="java.lang.Long"> + SELECT COUNT(*) + FROM pr_intake tb + <where> + AND tb.deleted != 1 + <if test="intakeNum != null and intakeNum != ''"> + AND tb.name = #{intakeNum} + </if> + </where> + </select> + + <!-- 涓烘煡璇㈢粺璁″彇姘村彛鏃ョ敤姘撮噺锛屾煡璇竴椤靛彇姘村彛ID --> + <select id="selectIntakes4AmountMonth" resultType="com.dy.pipIrrGlobal.voSt.VoMonthAmount"> + SELECT id as intakeId, + name as intakeNum, + lat as intakeLat, + lng as intakeLng + FROM pr_intake + <where> + AND deleted != 1 + <if test="intakeNum != null and intakeNum != ''"> + AND name = #{intakeNum} + </if> + </where> + order by id DESC + <trim prefix="limit " > + <if test="start != null and count != null"> + #{start, javaType=Integer, jdbcType=INTEGER}, #{count, javaType=Integer, jdbcType=INTEGER} + </if> + </trim> + </select> + + <sql id="selectIntakeAmountOfMonth_with"> + SELECT intaId.intakeId AS intakeId, + siam.year AS `year`, + siam.month AS `month`, + siam.amount AS amount + FROM JSON_TABLE( + #{intakesJson}, + '$[*]' COLUMNS ( + intakeId BIGINT PATH '$.intakeId' + ) + ) intaId + INNER JOIN st_intake_amount_month siam ON siam.intake_id = intaId.intakeId + <where> + <if test="year != null "> + AND siam.year = #{year, javaType=Integer, jdbcType=INTEGER} + </if> + </where> + </sql> + + <!--缁熻鎸囧畾鏈堜唤鍚勬湀鐢ㄦ按閲�(1鍙峰埌6鏈�)--> + <select id="selectIntakeAmountOfMonth01_06" resultType="com.dy.pipIrrGlobal.voSt.VoMonthAmount"> + WITH intakeAmountMonth AS (<include refid="selectIntakeAmountOfMonth_with" />) + SELECT inta.intakeId AS intakeId, + inta.intakeNum AS intakeNum, + inta.intakeLng AS intakeLng, + inta.intakeLat AS intakeLat, + tb01.amount AS month1, + tb02.amount AS month2, + tb03.amount AS month3, + tb04.amount AS month4, + tb05.amount AS month5, + tb06.amount AS month6 + FROM JSON_TABLE( + #{intakesJson}, + '$[*]' COLUMNS ( + intakeId BIGINT PATH '$.intakeId', + intakeNum VARCHAR(100) PATH '$.intakeNum', + intakeLng DOUBLE PATH '$.intakeLng', + intakeLat DOUBLE PATH '$.intakeLat' + ) + ) inta + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountMonth AS tb + WHERE tb.year = #{year} + AND tb.month = 1 + ) as tb01 on tb01.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountMonth AS tb + WHERE tb.year = #{year} + AND tb.month = 2 + ) as tb02 on tb02.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountMonth AS tb + WHERE tb.year = #{year} + AND tb.month = 3 + ) as tb03 on tb03.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountMonth AS tb + WHERE tb.year = #{year} + AND tb.month = 4 + ) as tb04 on tb04.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountMonth AS tb + WHERE tb.year = #{year} + AND tb.month = 5 + ) as tb05 on tb05.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountMonth AS tb + WHERE tb.year = #{year} + AND tb.month = 6 + ) as tb06 on tb06.intakeId = inta.intakeId + </select> + + <!--缁熻鎸囧畾鏈堜唤鍚勬湀鐢ㄦ按閲�(7鍙峰埌12鏈�)--> + <select id="selectIntakeAmountOfMonth07_12" resultType="com.dy.pipIrrGlobal.voSt.VoMonthAmount"> + WITH intakeAmountMonth AS (<include refid="selectIntakeAmountOfMonth_with" />) + SELECT inta.intakeId AS intakeId, + inta.intakeNum AS intakeNum, + inta.intakeLng AS intakeLng, + inta.intakeLat AS intakeLat, + tb07.amount AS month7, + tb08.amount AS month8, + tb09.amount AS month9, + tb010.amount AS month10, + tb011.amount AS month11, + tb012.amount AS month12 + FROM JSON_TABLE( + #{intakesJson}, + '$[*]' COLUMNS ( + intakeId BIGINT PATH '$.intakeId', + intakeNum VARCHAR(100) PATH '$.intakeNum', + intakeLng DOUBLE PATH '$.intakeLng', + intakeLat DOUBLE PATH '$.intakeLat' + ) + ) inta + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountMonth AS tb + WHERE tb.year = #{year} + AND tb.month = 7 + ) as tb07 on tb07.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountMonth AS tb + WHERE tb.year = #{year} + AND tb.month = 8 + ) as tb08 on tb08.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountMonth AS tb + WHERE tb.year = #{year} + AND tb.month = 9 + ) as tb09 on tb09.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountMonth AS tb + WHERE tb.year = #{year} + AND tb.month = 10 + ) as tb010 on tb010.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountMonth AS tb + WHERE tb.year = #{year} + AND tb.month = 11 + ) as tb011 on tb011.intakeId = inta.intakeId + LEFT JOIN ( + SELECT tb.intakeId AS intakeId, + tb.amount AS amount + FROM intakeAmountMonth AS tb + WHERE tb.year = #{year} + AND tb.month = 12 + ) as tb012 on tb012.intakeId = inta.intakeId + </select> + </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeCtrl.java new file mode 100644 index 0000000..2fb3f45 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeCtrl.java @@ -0,0 +1,72 @@ +package com.dy.pipIrrStatistics.intaker; + +import com.dy.common.aop.SsoAop; +import com.dy.common.util.DateTime; +import com.dy.common.webUtil.BaseResponse; +import com.dy.common.webUtil.BaseResponseUtils; +import com.dy.common.webUtil.QueryResultVo; +import com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount; +import com.dy.pipIrrGlobal.voSt.VoMonthAmount; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @Author: liurunyu + * @Date: 2024/12/12 16:24 + * @Description 鏈夊叧鍙栨按鍙g敤姘寸粺璁� + */ +@Slf4j +@RestController +@RequestMapping(path="intake") +@RequiredArgsConstructor +public class IntakeCtrl { + + private IntakeSv sv; + + @Autowired + public void setSv(IntakeSv sv){ + this.sv = sv ; + } + + /** + * 鏌ヨ鎸囧畾鏈堜唤鍚勬棩鐢ㄦ按閲� + * @param qo + * @return + */ + @GetMapping(path = "/amountOfDay") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoDayIntakeAmount>>> amountOfDay(IntakeQo qo) throws Exception { + String yearMonth = qo.getYearMonth(); + if(yearMonth == null || yearMonth.trim().equals("")) { + return BaseResponseUtils.buildErrorMsg("鏌ヨ鏉′欢骞存湀涓嶈兘涓虹┖"); + } + qo.startDt = DateTime.dateFrom_yyyy_MM_dd(yearMonth + "-01"); + qo.endDt = DateTime.dateFrom_yyyy_MM_dd(yearMonth + "-31"); + + int[] ymd = DateTime.yyyy_MM_ymdGroup(yearMonth) ; + qo.year = ymd[0] ; + qo.month = ymd[1] ; + + return BaseResponseUtils.buildSuccess(this.sv.amountOfDay(qo)); + } + + /** + * 鏌ヨ鎸囧畾鏈堜唤鍚勬棩鐢ㄦ按閲� + * @param qo + * @return + */ + @GetMapping(path = "/amountOfMonth") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoMonthAmount>>> amountOfMonth(IntakeQo qo) throws Exception { + if(qo.getYear() == null) { + return BaseResponseUtils.buildErrorMsg("鏌ヨ鏉′欢骞村害涓嶈兘涓虹┖"); + } + return BaseResponseUtils.buildSuccess(this.sv.amountOfMonth(qo)); + } +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeQo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeQo.java new file mode 100644 index 0000000..f899064 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeQo.java @@ -0,0 +1,48 @@ +package com.dy.pipIrrStatistics.intaker; + +import com.dy.common.webUtil.QueryConditionVo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * @Author: liurunyu + * @Date: 2024/12/12 16:34 + * @Description + */ +@Data +@EqualsAndHashCode(callSuper = false) +public class IntakeQo extends QueryConditionVo { + + /** + * 缁熻骞存湀 + */ + public String yearMonth; + + /** + * 鏌ヨ寮�濮嬫棩鏈燂紙骞存湀鏃ワ級 + */ + public Date startDt ; + + /** + * 鏌ヨ鎴鏃ユ湡锛堝勾鏈堟棩锛� + */ + public Date endDt ; + + + /** + * 骞� + */ + public Integer year; + + /** + * 鏈� + */ + public Integer month; + + /** + * 鍙栨按鍙g紪鍙� + */ + public String intakeNum; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeSv.java new file mode 100644 index 0000000..3d419ad --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intaker/IntakeSv.java @@ -0,0 +1,188 @@ +package com.dy.pipIrrStatistics.intaker; + +import com.alibaba.fastjson2.JSON; +import com.dy.common.webUtil.QueryResultVo; +import com.dy.pipIrrGlobal.daoRm.RmIntakeAmountDayMapper; +import com.dy.pipIrrGlobal.daoSt.StIntakeAmountMonthMapper; +import com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount; +import com.dy.pipIrrGlobal.voSt.VoMonthAmount; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.common.utils.PojoUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.ParseException; +import java.util.List; +import java.util.Map; + +/** + * @Author: liurunyu + * @Date: 2024/12/12 16:24 + * @Description + */ +@Slf4j +@Service +public class IntakeSv { + + @Autowired + private RmIntakeAmountDayMapper dayDao ; + + @Autowired + private StIntakeAmountMonthMapper monthDao ; + + + /** + * 缁熻鎸囧畾鏈堜唤鍚勫ぉ鐢ㄦ按閲� + * @param qo + * @return + */ + public QueryResultVo<List<VoDayIntakeAmount>> amountOfDay(IntakeQo qo) throws ParseException { + QueryResultVo<List<VoDayIntakeAmount>> rsVo = new QueryResultVo<>() ; + // 鐢熸垚鏌ヨ鍙傛暟 + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; + // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟 + Long itemTotal = dayDao.selectIntakeCount4AmountDay(qo.intakeNum) ; + + if(itemTotal != null && itemTotal > 0){ + rsVo.pageSize = qo.pageSize ; + rsVo.pageCurr = qo.pageCurr ; + rsVo.calculateAndSet(itemTotal, params); + + List<VoDayIntakeAmount> list = dayDao.selectIntakes4AmountDay(params); + if(list == null || list.size() == 0){ + rsVo.obj = list ; + }else{ + String json = JSON.toJSONString(list) ; + params.put("intakesJson", json); + + List<VoDayIntakeAmount> list01_05 = dayDao.selectIntakeAmountOfDay01_05(params); + if(list01_05 != null && list01_05.size() > 0){ + //涓嬮潰1鍒�31鍙峰垎浜�6涓煡璇紝鍘熷洜鏄湪涓�涓煡璇腑锛岄潪甯告參锛屼笉鐭ラ亾浠�涔堝師鍥狅紝涔熻鏄瓙鏌ヨ澶鐨勫師鍥� + List<VoDayIntakeAmount> list06_10 = dayDao.selectIntakeAmountOfDay06_10(params); + List<VoDayIntakeAmount> list11_15 = dayDao.selectIntakeAmountOfDay11_15(params); + List<VoDayIntakeAmount> list16_20 = dayDao.selectIntakeAmountOfDay16_20(params); + List<VoDayIntakeAmount> list21_25 = dayDao.selectIntakeAmountOfDay21_25(params); + List<VoDayIntakeAmount> list26_31 = dayDao.selectIntakeAmountOfDay26_31(params); + this.merge(list01_05, list06_10, list11_15, list16_20, list21_25, list26_31); + } + rsVo.obj = list01_05 ; + } + } + return rsVo ; + } + + private void merge(List<VoDayIntakeAmount> list01_05, + List<VoDayIntakeAmount> list06_10, + List<VoDayIntakeAmount> list11_15, + List<VoDayIntakeAmount> list16_20, + List<VoDayIntakeAmount> list21_25, + List<VoDayIntakeAmount> list26_31){ + for(VoDayIntakeAmount vo01_05 : list01_05){ + for(VoDayIntakeAmount vo06_10 : list06_10){ + if(vo01_05.intakeId.longValue() == vo06_10.intakeId.longValue()){ + vo01_05.amount6 = vo06_10.amount6 ; + vo01_05.amount7 = vo06_10.amount7 ; + vo01_05.amount8 = vo06_10.amount8 ; + vo01_05.amount9 = vo06_10.amount9 ; + vo01_05.amount10 = vo06_10.amount10 ; + break ; + } + } + for(VoDayIntakeAmount vo11_15 : list11_15){ + if(vo01_05.intakeId.longValue() == vo11_15.intakeId.longValue()){ + vo01_05.amount11 = vo11_15.amount11 ; + vo01_05.amount12 = vo11_15.amount12 ; + vo01_05.amount13 = vo11_15.amount13 ; + vo01_05.amount14 = vo11_15.amount14 ; + vo01_05.amount15 = vo11_15.amount15 ; + break ; + } + } + for(VoDayIntakeAmount vo16_20 : list16_20){ + if(vo01_05.intakeId.longValue() == vo16_20.intakeId.longValue()){ + vo01_05.amount16 = vo16_20.amount16 ; + vo01_05.amount17 = vo16_20.amount17 ; + vo01_05.amount18 = vo16_20.amount18 ; + vo01_05.amount19 = vo16_20.amount19 ; + vo01_05.amount20 = vo16_20.amount20 ; + break ; + } + } + for(VoDayIntakeAmount vo21_25 : list21_25){ + if(vo01_05.intakeId.longValue() == vo21_25.intakeId.longValue()){ + vo01_05.amount21 = vo21_25.amount21 ; + vo01_05.amount22 = vo21_25.amount22 ; + vo01_05.amount23 = vo21_25.amount23 ; + vo01_05.amount24 = vo21_25.amount24 ; + vo01_05.amount25 = vo21_25.amount25 ; + break ; + } + } + for(VoDayIntakeAmount vo26_31 : list26_31){ + if(vo01_05.intakeId.longValue() == vo26_31.intakeId.longValue()){ + vo01_05.amount26 = vo26_31.amount26 ; + vo01_05.amount27 = vo26_31.amount27 ; + vo01_05.amount28 = vo26_31.amount28 ; + vo01_05.amount29 = vo26_31.amount29 ; + vo01_05.amount30 = vo26_31.amount30 ; + vo01_05.amount31 = vo26_31.amount31 ; + break ; + } + } + } + } + + + /** + * 缁熻鎸囧畾鏈堜唤鍚勬湀鐢ㄦ按閲� + * @param qo + * @return + */ + public QueryResultVo<List<VoMonthAmount>> amountOfMonth(IntakeQo qo) throws ParseException { + QueryResultVo<List<VoMonthAmount>> rsVo = new QueryResultVo<>() ; + // 鐢熸垚鏌ヨ鍙傛暟 + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; + // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟 + Long itemTotal = monthDao.selectIntakeCount4AmountMonth(qo.intakeNum) ; + + if(itemTotal != null && itemTotal > 0){ + rsVo.pageSize = qo.pageSize ; + rsVo.pageCurr = qo.pageCurr ; + rsVo.calculateAndSet(itemTotal, params); + + List<VoMonthAmount> list = monthDao.selectIntakes4AmountMonth(params); + if(list == null || list.size() == 0){ + rsVo.obj = list ; + }else{ + String json = JSON.toJSONString(list) ; + params.put("intakesJson", json); + + List<VoMonthAmount> list01_06 = monthDao.selectIntakeAmountOfMonth01_06(params); + if(list01_06 != null && list01_06.size() > 0){ + //涓嬮潰1鍒�12鏈堝垎浜�2涓煡璇紝鍘熷洜鏄湪涓�涓煡璇腑锛岄潪甯告參锛屼笉鐭ラ亾浠�涔堝師鍥狅紝涔熻鏄瓙鏌ヨ澶鐨勫師鍥� + List<VoMonthAmount> list07_12 = monthDao.selectIntakeAmountOfMonth07_12(params); + this.merge(list01_06, list07_12); + } + rsVo.obj = list01_06 ; + } + } + return rsVo ; + } + + private void merge(List<VoMonthAmount> list01_06, + List<VoMonthAmount> list07_12){ + for(VoMonthAmount vo01_06 : list01_06){ + for(VoMonthAmount vo07_12 : list07_12){ + if(vo01_06.intakeId.longValue() == vo07_12.intakeId.longValue()){ + vo01_06.month7 = vo07_12.month7 ; + vo01_06.month8 = vo07_12.month8 ; + vo01_06.month9 = vo07_12.month9 ; + vo01_06.month10 = vo07_12.month10 ; + vo01_06.month11 = vo07_12.month11 ; + vo01_06.month12 = vo07_12.month12 ; + break ; + } + } + } + } +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossCtrl.java index f28d0f7..2e84f53 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossCtrl.java @@ -6,6 +6,7 @@ import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.voSt.VoDayLoss; +import com.dy.pipIrrGlobal.voSt.VoMonthAmount; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -62,7 +63,7 @@ */ @GetMapping(path = "/lossAmountOfMonth") @SsoAop() - public BaseResponse<QueryResultVo<List<VoDayLoss>>> lossAmountOfMonth(LossQo qo) throws Exception { + public BaseResponse<QueryResultVo<List<VoMonthAmount>>> lossAmountOfMonth(LossQo qo) throws Exception { if(qo.getYear() == null) { return BaseResponseUtils.buildErrorMsg("鏌ヨ鏉′欢骞村害涓嶈兘涓虹┖"); } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossSv.java index 63db789..4692924 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/loss/LossSv.java @@ -26,10 +26,10 @@ public class LossSv { @Autowired - private RmLossDayMapper rmLossDayMapper ; + private RmLossDayMapper dayDao; @Autowired - private StLossMonthMapper stLossMonthMapper ; + private StLossMonthMapper monthDao; /** * 缁熻鎸囧畾鏈堜唤鍚勫ぉ婕忔崯閲� @@ -41,28 +41,28 @@ // 鐢熸垚鏌ヨ鍙傛暟 Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟 - Long itemTotal = rmLossDayMapper.selectIntakeCount4LossDay(qo.intakeNum) ; + Long itemTotal = dayDao.selectIntakeCount4LossDay(qo.intakeNum) ; if(itemTotal != null && itemTotal > 0){ rsVo.pageSize = qo.pageSize ; rsVo.pageCurr = qo.pageCurr ; rsVo.calculateAndSet(itemTotal, params); - List<VoDayLoss> list = rmLossDayMapper.selectIntakes4LossDay(params); + List<VoDayLoss> list = dayDao.selectIntakes4LossDay(params); if(list == null || list.size() == 0){ rsVo.obj = list ; }else{ String json = JSON.toJSONString(list) ; params.put("intakesJson", json); - List<VoDayLoss> list01_05 = rmLossDayMapper.selectLossAmountOfDay01_05(params); + List<VoDayLoss> list01_05 = dayDao.selectLossAmountOfDay01_05(params); if(list01_05 != null && list01_05.size() > 0){ //涓嬮潰1鍒�31鍙峰垎浜�6涓煡璇紝鍘熷洜鏄湪涓�涓煡璇腑锛岄潪甯告參锛屼笉鐭ラ亾浠�涔堝師鍥狅紝涔熻鏄瓙鏌ヨ澶鐨勫師鍥� - List<VoDayLoss> list06_10 = rmLossDayMapper.selectLossAmountOfDay06_10(params); - List<VoDayLoss> list11_15 = rmLossDayMapper.selectLossAmountOfDay11_15(params); - List<VoDayLoss> list16_20 = rmLossDayMapper.selectLossAmountOfDay16_20(params); - List<VoDayLoss> list21_25 = rmLossDayMapper.selectLossAmountOfDay21_25(params); - List<VoDayLoss> list26_31 = rmLossDayMapper.selectLossAmountOfDay26_31(params); + List<VoDayLoss> list06_10 = dayDao.selectLossAmountOfDay06_10(params); + List<VoDayLoss> list11_15 = dayDao.selectLossAmountOfDay11_15(params); + List<VoDayLoss> list16_20 = dayDao.selectLossAmountOfDay16_20(params); + List<VoDayLoss> list21_25 = dayDao.selectLossAmountOfDay21_25(params); + List<VoDayLoss> list26_31 = dayDao.selectLossAmountOfDay26_31(params); this.merge(list01_05, list06_10, list11_15, list16_20, list21_25, list26_31); } rsVo.obj = list01_05 ; @@ -143,24 +143,24 @@ // 鐢熸垚鏌ヨ鍙傛暟 Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟 - Long itemTotal = stLossMonthMapper.selectIntakeCount4LossMonth(qo.intakeNum) ; + Long itemTotal = monthDao.selectIntakeCount4LossMonth(qo.intakeNum) ; if(itemTotal != null && itemTotal > 0){ rsVo.pageSize = qo.pageSize ; rsVo.pageCurr = qo.pageCurr ; rsVo.calculateAndSet(itemTotal, params); - List<VoMonthAmount> list = stLossMonthMapper.selectIntakes4LossMonth(params); + List<VoMonthAmount> list = monthDao.selectIntakes4LossMonth(params); if(list == null || list.size() == 0){ rsVo.obj = list ; }else{ String json = JSON.toJSONString(list) ; params.put("intakesJson", json); - List<VoMonthAmount> list01_06 = stLossMonthMapper.selectLossAmountOfMonth01_06(params); + List<VoMonthAmount> list01_06 = monthDao.selectLossAmountOfMonth01_06(params); if(list01_06 != null && list01_06.size() > 0){ //涓嬮潰1鍒�12鏈堝垎浜�2涓煡璇紝鍘熷洜鏄湪涓�涓煡璇腑锛岄潪甯告參锛屼笉鐭ラ亾浠�涔堝師鍥狅紝涔熻鏄瓙鏌ヨ澶鐨勫師鍥� - List<VoMonthAmount> list07_12 = stLossMonthMapper.selectLossAmountOfMonth07_12(params); + List<VoMonthAmount> list07_12 = monthDao.selectLossAmountOfMonth07_12(params); this.merge(list01_06, list07_12); } rsVo.obj = list01_06 ; -- Gitblit v1.8.0