From 6f2bdc70b4c946719059a5f367776540f98f1978 Mon Sep 17 00:00:00 2001 From: wuzeyu <1223318623@qq.com> Date: 星期四, 08 八月 2024 14:57:11 +0800 Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV --- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountDayMapper.java | 16 +++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml | 125 +++++++++++++++++++++++++++++- pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java | 18 ++++ pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java | 28 ++++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoMonthIntakeAmount.java | 43 ++++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeAmountQO.java | 7 + 6 files changed, 227 insertions(+), 10 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 8b80aa8..e23bad8 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 @@ -2,9 +2,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoRm.RmIntakeAmountDay; -import com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount; 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 org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -105,4 +106,17 @@ */ List<VoDayIntakeAmount> getDayIntakeAmount(Map<?, ?> params); + /** + * 缁熻鎸囧畾骞翠唤鍚勬湀鐢ㄦ按閲忚褰曟暟閲� + * @param params + * @return + */ + Long getMonthIntakeAmountCount(Map<?, ?> params); + + /** + * 缁熻鎸囧畾骞翠唤鍚勬湀鐢ㄦ按閲� + * @param params + * @return + */ + List<VoMonthIntakeAmount> getMonthIntakeAmount(Map<?, ?> params); } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoMonthIntakeAmount.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoMonthIntakeAmount.java new file mode 100644 index 0000000..b4fdfe2 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoMonthIntakeAmount.java @@ -0,0 +1,43 @@ +package com.dy.pipIrrGlobal.voSt; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import lombok.Data; + +/** + * @author ZhuBaoMin + * @date 2024-08-08 14:16 + * @LastEditTime 2024-08-08 14:16 + * @Description 鍙栨按鍙f湀鐢ㄦ按瑙嗗浘 + */ + +@Data +@JsonPropertyOrder({ "intakeId", "intakeNum", "month1" , "month2" , "month3" , "month4" , "month5" , "month6" , "month7" , "month8" , "month9" , "month10" , "month11" , "month12" }) +public class VoMonthIntakeAmount { + private static final long serialVersionUID = 202408081417001L; + + /** + * 鍙栨按鍙D + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + private Long intakeId; + + /** + * 鍙栨按鍙g紪鍙� + */ + private String intakeNum; + + private Double month1; + private Double month2; + private Double month3; + private Double month4; + private Double month5; + private Double month6; + private Double month7; + private Double month8; + private Double month9; + private Double month10; + private Double month11; + private Double month12; +} 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 5b247fb..ff1f3fa 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml @@ -211,10 +211,10 @@ </if> </where> ORDER BY riad.id DESC -<!-- <if test="pageCurr != null and pageSize != null">--> -<!-- LIMIT ${(pageCurr-1)*pageSize}, ${pageSize}--> -<!-- </if>--> - <trim prefix="limit " > + <!-- <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> @@ -234,7 +234,12 @@ <select id="getDayIntakeAmountCount" resultType="java.lang.Long"> SELECT COUNT(*) AS recordCount FROM pr_intake inta - WHERE inta.deleted = 0 + <where> + AND inta.deleted = 0 + <if test="intakeNum != null and intakeNum != ''"> + AND inta.name = #{intakeNum} + </if> + </where> </select> <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鐢ㄦ按閲�--> @@ -428,7 +433,115 @@ AND MONTH(intaDay.dt) = #{month} AND DAY(intaDay.dt) = 31), 0) AS amount31 FROM pr_intake inta - WHERE inta.deleted = 0 + <where> + AND inta.deleted = 0 + <if test="intakeNum != null and intakeNum != ''"> + AND inta.name = #{intakeNum} + </if> + </where> + ORDER BY inta.id + <trim prefix="limit "> + <if test="start != null and count != null"> + #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} + </if> + </trim> + </select> + + <!--缁熻鎸囧畾骞翠唤鍚勬湀鐢ㄦ按閲忚褰曟暟閲�--> + <select id="getMonthIntakeAmountCount" resultType="java.lang.Long"> + SELECT COUNT(*) AS recordCount + FROM pr_intake inta + <where> + AND inta.deleted = 0 + <if test="intakeNum != null and intakeNum != ''"> + AND inta.name = #{intakeNum} + </if> + </where> + </select> + + <!--缁熻鎸囧畾骞翠唤鍚勬湀鐢ㄦ按閲�--> + <select id="getMonthIntakeAmount" resultType="com.dy.pipIrrGlobal.voSt.VoMonthIntakeAmount"> + SELECT inta.id AS intakeId, + inta.name AS intakeNum, + IFNULL((SELECT SUM(amount) AS amount + FROM rm_intake_amount_day 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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"> diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java index 74b0257..4f1b5f9 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java @@ -646,7 +646,7 @@ * @param qo * @return */ - public QueryResultVo<List<VoDayIntakeAmount>> getDayIntakeAmount(DayIntakeAmountQO qo) { + public QueryResultVo<List<VoDayIntakeAmount>> getDayIntakeAmount(IntakeAmountQO qo) { Calendar calendar = Calendar.getInstance(); Integer year = Optional.ofNullable(qo.getYear()).orElse(calendar.get(Calendar.YEAR)); Integer month = Optional.ofNullable(qo.getMonth()).orElse(calendar.get(Calendar.MONTH)); @@ -668,4 +668,30 @@ rsVo.obj = rmIntakeAmountDayMapper.getDayIntakeAmount(params); return rsVo ; } + + /** + * 缁熻鎸囧畾骞翠唤鍚勬湀鐢ㄦ按閲� + * @param qo + * @return + */ + public QueryResultVo<List<VoMonthIntakeAmount>> getMonthIntakeAmount(IntakeAmountQO qo) { + Calendar calendar = Calendar.getInstance(); + Integer year = Optional.ofNullable(qo.getYear()).orElse(calendar.get(Calendar.YEAR)); + qo.setYear(year); + + // 鐢熸垚鏌ヨ鍙傛暟 + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; + + // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟 + Long itemTotal = Optional.ofNullable(rmIntakeAmountDayMapper.getMonthIntakeAmountCount(params)).orElse(0L); + + QueryResultVo<List<VoMonthIntakeAmount>> rsVo = new QueryResultVo<>() ; + + rsVo.pageSize = qo.pageSize ; + rsVo.pageCurr = qo.pageCurr ; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = rmIntakeAmountDayMapper.getMonthIntakeAmount(params); + return rsVo ; + } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java index ca2a113..d6c8a55 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java @@ -334,7 +334,7 @@ */ @GetMapping(path = "/getDayIntakeAmount") @SsoAop() - public BaseResponse<QueryResultVo<List<VoDayIntakeAmount>>> getDayIntakeAmount(DayIntakeAmountQO qo) { + public BaseResponse<QueryResultVo<List<VoDayIntakeAmount>>> getDayIntakeAmount(IntakeAmountQO qo) { try { return BaseResponseUtils.buildSuccess(intakeSv.getDayIntakeAmount(qo)); } catch (Exception e) { @@ -342,4 +342,20 @@ return BaseResponseUtils.buildException(e.getMessage()) ; } } + + /** + * 缁熻鎸囧畾骞翠唤鍚勬湀鐢ㄦ按閲� + * @param qo + * @return + */ + @GetMapping(path = "/getMonthIntakeAmount") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoMonthIntakeAmount>>> getMonthIntakeAmount(IntakeAmountQO qo) { + try { + return BaseResponseUtils.buildSuccess(intakeSv.getMonthIntakeAmount(qo)); + } catch (Exception e) { + log.error("鑾峰彇璁板綍寮傚父", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/DayIntakeAmountQO.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeAmountQO.java similarity index 72% rename from pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/DayIntakeAmountQO.java rename to pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeAmountQO.java index 47a6ed5..3c56028 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/DayIntakeAmountQO.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeAmountQO.java @@ -11,7 +11,7 @@ */ @Data -public class DayIntakeAmountQO extends QueryConditionVo { +public class IntakeAmountQO extends QueryConditionVo { /** * 骞� @@ -22,4 +22,9 @@ * 鏈� */ private Integer month; + + /** + * 鍙栨按鍙g紪鍙� + */ + private String intakeNum; } -- Gitblit v1.8.0