From 1157c9c0eca6484e197aaeb941ac7ce572a5cc03 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期三, 05 二月 2025 11:25:51 +0800 Subject: [PATCH] 取水口综合信息:监控数据信息,统计数据信息 --- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoDayIntakeAmount.java | 10 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeAmountMonth.java | 38 ++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeOpenCloseValve.java | 110 +++++++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ar4RemoteMapper.xml | 12 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/allRound/Ar4RemoteCtrl.java | 15 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeLossMonth.java | 33 ++ pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/allRound/Ar4StatisticsSv.java | 85 ++++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeAmountDay.java | 48 +++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeRemote.java | 43 +++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeLossDay.java | 38 ++ pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/allRound/说明.txt | 1 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/allRound/Ar4RemoteSv.java | 31 + pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ar4StatisticsMapper.xml | 101 +++++++ pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/allRound/Ar4StatisticsCtrl.java | 164 +++++++++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoAllRound/Ar4RemoteMapper.java | 13 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoAllRound/Ar4StatisticsMapper.java | 55 +++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoMonthAmount.java | 5 17 files changed, 779 insertions(+), 23 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeAmountDay.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeAmountDay.java new file mode 100644 index 0000000..526125d --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeAmountDay.java @@ -0,0 +1,48 @@ +package com.dy.pipIrrGlobal.VoAllRound; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import lombok.Data; + +import java.util.Date; + +/** + * @Author: liurunyu + * @Date: 2025/2/5 10:14 + * @Description + */ +@Data +@JsonPropertyOrder({ "intakeId", "amount", "amount", "money", "times" }) +public class VoArIntakeAmountDay { + public static final long serialVersionUID = 202502051005003L; + + /** + * 鍙栨按鍙D + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + public Long intakeId; + + /** + * 鏃ユ湡 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + public Date dt ; + + /** + * 鐢ㄦ按閲� + */ + public Double amount ; + + /** + * 鐢ㄦ按娑堣垂閲戦 + */ + public Double money ; + + /** + * 鐢ㄦ按娆℃暟 + */ + public Integer times ; + +} diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeAmountMonth.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeAmountMonth.java new file mode 100644 index 0000000..f840a7b --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeAmountMonth.java @@ -0,0 +1,38 @@ +package com.dy.pipIrrGlobal.VoAllRound; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import lombok.Data; + +import java.util.Date; + +/** + * @Author: liurunyu + * @Date: 2025/2/5 10:14 + * @Description + */ +@Data +@JsonPropertyOrder({ "intakeId", "amount", "amount"}) +public class VoArIntakeAmountMonth { + public static final long serialVersionUID = 202502051005004L; + + /** + * 鍙栨按鍙D + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + public Long intakeId; + + /** + * 鏃ユ湡 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + public Date dt ; + + /** + * 鐢ㄦ按閲� + */ + public Double amount ; + +} diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeLossDay.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeLossDay.java new file mode 100644 index 0000000..121af5d --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeLossDay.java @@ -0,0 +1,38 @@ +package com.dy.pipIrrGlobal.VoAllRound; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import lombok.Data; + +import java.util.Date; + +/** + * @Author: liurunyu + * @Date: 2025/2/5 9:59 + * @Description + */ +@Data +@JsonPropertyOrder({ "intakeId", "dt", "loss" }) +public class VoArIntakeLossDay { + public static final long serialVersionUID = 202502051001001L; + + /** + * 鍙栨按鍙D + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + public Long intakeId; + + /** + * 鏃ユ湡鏃堕棿 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + public Date dt ; + + /** + * 鏃ユ紡鎹熼噺 + */ + public Double loss ; + +} diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeLossMonth.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeLossMonth.java new file mode 100644 index 0000000..cf87d7c --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeLossMonth.java @@ -0,0 +1,33 @@ +package com.dy.pipIrrGlobal.VoAllRound; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import lombok.Data; + +/** + * @Author: liurunyu + * @Date: 2025/2/5 10:04 + * @Description + */ +@Data +@JsonPropertyOrder({ "intakeId", "dt", "loss" }) +public class VoArIntakeLossMonth { + public static final long serialVersionUID = 202502051005001L; + + /** + * 鍙栨按鍙D + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + public Long intakeId; + + /** + * 鏈堜唤锛堟牸寮忥細 yyyy-mm锛� + */ + public String dt ; + + /** + * 鏃ユ紡鎹熼噺 + */ + public Double loss ; +} diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeOpenCloseValve.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeOpenCloseValve.java new file mode 100644 index 0000000..ffb590d --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeOpenCloseValve.java @@ -0,0 +1,110 @@ +package com.dy.pipIrrGlobal.VoAllRound; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import lombok.Data; + +import java.util.Date; + +/** + * @Author: liurunyu + * @Date: 2025/2/5 9:36 + * @Description + */ +@Data +@JsonPropertyOrder({ "intakeId", "clientId", + "clientName", "clientAddr", + "openTime" , "openType" , + "openIcNum" , "openRemainMoney" , + "closeTime" , "closeType" , + "closeIcNum" , "closeRemainMoney" , + "thisTime" , "thisAmount" , + "thisMoney" }) +public class VoArIntakeOpenCloseValve { + public static final long serialVersionUID = 202502050936001L; + + /** + * 鍙栨按鍙D + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + public Long intakeId; + + /** + * 寮�鍏抽榾鍐滄埛ID + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + public Long clientId; + + /** + * 寮�鍏抽榾鍐滄埛 + */ + public String clientName; + + /** + * 鍐滄埛鍦板潃 + */ + public String clientAddr; + + + /** + * 寮�闃�鏃ユ湡鏃堕棿 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + public Date openTime ; + + /** + * 寮�闃�绫诲瀷 + */ + @JSONField(serialize=false) + public Byte opType; + public String openType; + + /** + * 寮�闃�IC鍗$紪鍙� + */ + public String openIcNum; + + /** + * 寮�闃�鏃跺崱鍐呭墿浣欓噾棰� + */ + public Double openRemainMoney; + + + /** + * 鍏抽榾鏃ユ湡鏃堕棿 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + public Date closeTime ; + + /** + * 鍏抽榾绫诲瀷 + */ + @JSONField(serialize=false) + public Byte clType; + public String closeType; + + /** + * 鍏抽榾IC鍗$紪鍙� + */ + public String closeIcNum; + + /** + * 鍏抽榾鏃跺崱鍐呭墿浣欓噾棰� + */ + public Double closeRemainMoney; + + /** + * 鏈鐢ㄦ按鏃堕暱锛堝垎閽燂級 + */ + public Integer thisTime; + /** + * 鏈鐢ㄦ按閲� + */ + public Double thisAmount; + /** + * 鏈娑堣垂閲戦 + */ + public Double thisMoney; +} diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeRemote.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeRemote.java index a19d9be..f3419b5 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeRemote.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeRemote.java @@ -2,11 +2,17 @@ import com.alibaba.fastjson2.annotation.JSONField; import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.dy.pipIrrGlobal.voRm.VoLossDay; +import com.dy.pipIrrGlobal.voRm.VoOpenCloseValve; +import com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount; +import com.dy.pipIrrGlobal.voSt.VoDayLoss; +import com.dy.pipIrrGlobal.voSt.VoMonthAmount; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import lombok.Data; import java.util.Date; +import java.util.List; /** * @Author: liurunyu @@ -14,7 +20,7 @@ * @Description */ @Data -@JsonPropertyOrder({"id", "onLine", "alarm", "alarmDt", "lastOpenDt", "lastCloseDt"}) +@JsonPropertyOrder({"id", "onLine", "alarm", "alarmDt", "lastOpenDt", "lastCloseDt", "lossAmount", "lossDt"}) public class VoArIntakeRemote { private static final long serialVersionUID = 202501141703001L; @@ -49,5 +55,40 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") public Date lastCloseDt ; + /** + * 鏈�鍚庣粺璁℃紡鎹熼噺 + */ + public Double lossAmount ; + + /** + * 鏈�鍚庣粺璁℃紡鎹熸棩鏈� + */ + @JsonFormat(pattern = "yyyy-MM-dd") + public Date lossDt ; + + /** + * 寮�鍏抽榾璁板綍 + */ + public List<VoOpenCloseValve> openCloseRecords ; + + /** + * 鏃ユ紡鎹熻褰� + */ + public List<VoDayLoss> lossDayRecords ; + + /** + * 鏈堟紡鎹熻褰� + */ + public List<VoMonthAmount> lossMonthRecords ; + + /** + * 鏃ョ敤姘寸粺璁¤褰� + */ + public List<VoDayIntakeAmount> amountDayRecords ; + + /** + * 鏈堢敤姘寸粺璁¤褰� + */ + public List<VoMonthAmount> amountMonthRecords ; } diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoAllRound/Ar4RemoteMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoAllRound/Ar4RemoteMapper.java index ccc1610..ae0ad20 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoAllRound/Ar4RemoteMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoAllRound/Ar4RemoteMapper.java @@ -9,7 +9,7 @@ /** * @Author: liurunyu - * @Date: 2025/1/14 16:45 + * @Date: 2025/1/22 09:45 * @Description */ @Mapper @@ -20,14 +20,21 @@ * @param intakeId * @return */ - List<VoArIntakeRemote> alarmInfo(@Param("intakeId") Long intakeId) ; + List<VoArIntakeRemote> alarmLastInfo(@Param("intakeId") Long intakeId) ; /** * 鏌ヨ鍙栨按鍙f渶鏂板紑鍏抽榾淇℃伅 * @param intakeId * @return */ - List<VoArIntakeRemote> openCloseValveInfo(@Param("intakeId") Long intakeId) ; + List<VoArIntakeRemote> openCloseValveLastInfo(@Param("intakeId") Long intakeId) ; + + /** + * 鏌ヨ鍙栨按鍙f渶鏂版紡鎹熶俊鎭� + * @param intakeId + * @return + */ + List<VoArIntakeRemote> lossLastInfo(@Param("intakeId") Long intakeId) ; } diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoAllRound/Ar4StatisticsMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoAllRound/Ar4StatisticsMapper.java new file mode 100644 index 0000000..3d0f1f4 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoAllRound/Ar4StatisticsMapper.java @@ -0,0 +1,55 @@ +package com.dy.pipIrrGlobal.daoAllRound; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.VoAllRound.*; +import io.swagger.v3.oas.models.security.SecurityScheme; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @Author: liurunyu + * @Date: 2025/1/22 14:45 + * @Description + */ +@Mapper +public interface Ar4StatisticsMapper extends BaseMapper<Object> { + + /** + * 寮�鍏抽榾璁板綍 + * @param intakeId + * @return + */ + List<VoArIntakeOpenCloseValve> openCloseRecords(@Param("intakeId") Long intakeId, @Param("start") Integer start, @Param("count") Integer count) ; + + /** + * 鏃ユ紡鎹熻褰� + * @param intakeId + * @return + */ + List<VoArIntakeLossDay> lossDayRecords(@Param("intakeId") Long intakeId, @Param("start") Integer start, @Param("count") Integer count) ; + + /** + * 鏈堟紡鎹熻褰� + * @param intakeId + * @return + */ + List<VoArIntakeLossMonth> lossMonthRecords(@Param("intakeId") Long intakeId, @Param("start") Integer start, @Param("count") Integer count) ; + + /** + * 鏃ョ敤姘寸粺璁¤褰� + * @param intakeId + * @return + */ + List<VoArIntakeAmountDay> amountDayRecords(@Param("intakeId") Long intakeId, @Param("start") Integer start, @Param("count") Integer count) ; + + /** + * 鏈堢敤姘寸粺璁¤褰� + * @param intakeId + * @return + */ + List<VoArIntakeAmountMonth> amountMonthRecords(@Param("intakeId") Long intakeId, @Param("start") Integer start, @Param("count") Integer count) ; + + +} 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 197f8c2..22a1be2 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 @@ -42,6 +42,16 @@ */ public Double intakeLat; + /** + * 骞村害 + */ + public Integer year ; + + /** + * 鏈堜唤 + */ + public Integer month ; + @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) public Double amount1; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoMonthAmount.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoMonthAmount.java index 9ffc36a..e56ea04 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoMonthAmount.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoMonthAmount.java @@ -38,6 +38,11 @@ */ public Double intakeLat; + /** + * 骞村害 + */ + public Integer year ; + @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) public Double month1; @JsonFormat(shape = JsonFormat.Shape.NUMBER_FLOAT, pattern="0.00" ) diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ar4RemoteMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ar4RemoteMapper.xml index 8548633..dbc55c2 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ar4RemoteMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ar4RemoteMapper.xml @@ -2,7 +2,7 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.dy.pipIrrGlobal.daoAllRound.Ar4RemoteMapper"> - <select id="alarmInfo" resultType="com.dy.pipIrrGlobal.VoAllRound.VoArIntakeRemote"> + <select id="alarmLastInfo" resultType="com.dy.pipIrrGlobal.VoAllRound.VoArIntakeRemote"> select CONCAT( IF(alarm_loss = 1, '婕忔崯鎶ヨ锛�', ''), @@ -15,7 +15,7 @@ where intake_id = #{intakeId,jdbcType=BIGINT} </select> - <select id="openCloseValveInfo" resultType="com.dy.pipIrrGlobal.VoAllRound.VoArIntakeRemote"> + <select id="openCloseValveLastInfo" resultType="com.dy.pipIrrGlobal.VoAllRound.VoArIntakeRemote"> select op_dt AS lastOpenDt, cl_dt AS lastCloseDt @@ -23,4 +23,12 @@ where intake_id = #{intakeId,jdbcType=BIGINT} </select> + <select id="lossLastInfo" resultType="com.dy.pipIrrGlobal.VoAllRound.VoArIntakeRemote"> + select + dt AS lossDt, + loss_amount AS lossAmount + from rm_loss_day_last rldl + where intake_id = #{intakeId,jdbcType=BIGINT} + </select> + </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ar4StatisticsMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ar4StatisticsMapper.xml new file mode 100644 index 0000000..22815c3 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ar4StatisticsMapper.xml @@ -0,0 +1,101 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.dy.pipIrrGlobal.daoAllRound.Ar4StatisticsMapper"> + + <select id="openCloseRecords" resultType="com.dy.pipIrrGlobal.VoAllRound.VoArIntakeOpenCloseValve"> + select + tb.intake_id as intakeId, + sec.id as clientId, + sec.name as clientName, + sec.address as clientAddr, + tb.op_dt as openTime, + tb.op_type as opType, + tb.op_ic_card_no as openIcNum, + tb.op_remain_money as openRemainMoney, + tb.cl_dt as closeTime, + tb.cl_type as clType, + tb.cl_ic_card_no as closeIcNum, + tb.cl_remain_money as closeRemainMoney, + tb.cl_this_time as thisTime, + tb.cl_this_amount as thisAmount, + tb.cl_this_money as thisMoney + from rm_open_close_valve_history tb + left join se_client sec on tb.client_id = sec.id + where tb.intake_id = #{intakeId, jdbcType=BIGINT} + ORDER BY tb.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> + + + <select id="lossDayRecords" resultType="com.dy.pipIrrGlobal.VoAllRound.VoArIntakeLossDay"> + select + tb.intake_id as intakeId, + tb.dt AS dt, + tb.loss_amount AS loss + from rm_loss_day tb + where intake_id = #{intakeId, jdbcType=BIGINT} + ORDER BY tb.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> + + + <select id="lossMonthRecords" resultType="com.dy.pipIrrGlobal.VoAllRound.VoArIntakeLossMonth"> + select + tb.intake_id as intakeId, + CONCAT(tb.year, '-', tb.month) AS dt, + tb.amount AS loss + from st_loss_month tb + where intake_id = #{intakeId, jdbcType=BIGINT} + ORDER BY tb.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> + + + + <select id="amountDayRecords" resultType="com.dy.pipIrrGlobal.VoAllRound.VoArIntakeAmountDay"> + select + tb.intake_id as intakeId, + tb.dt AS dt, + tb.amount AS amount, + tb.money AS money, + tb.times AS times + from rm_intake_amount_day tb + where intake_id = #{intakeId, jdbcType=BIGINT} + ORDER BY tb.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> + + + <select id="amountMonthRecords" resultType="com.dy.pipIrrGlobal.VoAllRound.VoArIntakeAmountMonth"> + select + tb.intake_id as intakeId, + CONCAT(tb.year, '-', tb.month) AS dt, + tb.amount AS amount + from st_intake_amount_month tb + where intake_id = #{intakeId, jdbcType=BIGINT} + ORDER BY tb.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> + + +</mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/allRound/Ar4RemoteCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/allRound/Ar4RemoteCtrl.java index b110125..024c3f1 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/allRound/Ar4RemoteCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/allRound/Ar4RemoteCtrl.java @@ -3,7 +3,6 @@ import com.dy.common.aop.SsoAop; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; -import com.dy.common.webUtil.QueryResultVo; import com.dy.common.webUtil.ResultCodeMsg; import com.dy.pipIrrGlobal.VoAllRound.VoArIntakeRemote; import io.swagger.v3.oas.annotations.Operation; @@ -25,7 +24,7 @@ * @Description */ @Slf4j -@Tag(name = "鏈夊叧杩滅▼鎿嶄綔淇℃伅鐨勭患鍚�", description = "鏈夊叧杩滅▼鎿嶄綔淇℃伅鐨勭患鍚�") +@Tag(name = "鍙栨按鍙g患鍚堜俊鎭箣鐩稿叧鐩戞祴鏁版嵁", description = "鍙栨按鍙g患鍚堜俊鎭箣鐩稿叧鐩戞祴鏁版嵁") @RestController @RequestMapping(path = "ar4Remote") @SuppressWarnings("unchecked")//java鐗堟湰瓒婇珮锛屽娉涘瀷绾︽潫瓒婁弗锛屾墍浠ラ厤缃甋uppressWarnings("unchecked") @@ -40,25 +39,25 @@ /** * 缁煎悎淇℃伅 - * 鍙栨按鍙e熀鏈俊鎭� - * @return 鎵�鏈夌墖鍖烘暟鎹� + * 鍙栨按鍙g洃娴嬫暟鎹� + * @return */ - @Operation(summary = "缁煎悎淇℃伅", description = "鍙栨按鍙e熀鏈俊鎭�") + @Operation(summary = "缁煎悎淇℃伅", description = "鍙栨按鍙g洃娴嬫暟鎹�") @ApiResponses(value = { @ApiResponse( responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, - description = "鍙栨按鍙e熀鏈俊鎭紙BaseResponse.content:QueryResultVo{}锛�", + description = "鍙栨按鍙g洃娴嬫暟鎹紙BaseResponse.content:VoArIntakeRemote{}锛�", content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = VoArIntakeRemote.class))} ) }) @GetMapping(path = "intakeInfo") @SsoAop() - public BaseResponse<QueryResultVo<VoArIntakeRemote>> intakeInfo(Long intakeId) { + public BaseResponse<VoArIntakeRemote> intakeInfo(Long intakeId) { if (intakeId == null || intakeId.longValue() == 0L) { return BaseResponseUtils.buildException("鍙栨按鍙d涓嶈兘涓虹┖"); } - QueryResultVo<VoArIntakeRemote> res = this.sv.intakeInfo(intakeId); + VoArIntakeRemote res = this.sv.intakeInfo(intakeId); return BaseResponseUtils.buildSuccess(res); } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/allRound/Ar4RemoteSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/allRound/Ar4RemoteSv.java index 52d1d71..ec8ca1b 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/allRound/Ar4RemoteSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/allRound/Ar4RemoteSv.java @@ -8,9 +8,9 @@ import com.dy.pipIrrGlobal.VoAllRound.VoArIntakeRemote; import com.dy.pipIrrGlobal.daoAllRound.Ar4BaseMapper; import com.dy.pipIrrGlobal.daoAllRound.Ar4RemoteMapper; +import com.dy.pipIrrGlobal.daoAllRound.Ar4StatisticsMapper; import com.dy.pipIrrGlobal.rtuMw.CodeLocal; import com.dy.pipIrrGlobal.rtuMw.Web2RtuMw; -import com.dy.pipIrrGlobal.voPr.VoOnLineIntake; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; @@ -45,13 +45,14 @@ * 鍙栨按鍙e熀鏈俊鎭� * @return 鍙栨按鍙e熀鏈俊鎭� */ - public QueryResultVo<VoArIntakeRemote> intakeInfo(Long intakeId){ + public VoArIntakeRemote intakeInfo(Long intakeId){ VoArIntakeRemote rVo = new VoArIntakeRemote() ; String rtuAddr = this.getRtuAddr(intakeId); this.getRtuOnLine(intakeId, rtuAddr, rVo); - this.getAlarmInfo(intakeId, rtuAddr, rVo); - this.getOpenCloseValveInfo(intakeId, rtuAddr, rVo); - return null ; + this.getAlarmLastInfo(intakeId, rtuAddr, rVo); + this.getOpenCloseValveLastInfo(intakeId, rtuAddr, rVo); + this.getLossAmountLastInfo(intakeId, rtuAddr, rVo); + return rVo ; } /** @@ -107,8 +108,8 @@ * 寰楀埌鍙栨按鍙f渶鏂版姤璀︿俊鎭� * @param intakeId */ - private void getAlarmInfo(Long intakeId, String rtuAddr, VoArIntakeRemote rVo){ - List<VoArIntakeRemote> list = remoteDao.alarmInfo(intakeId); + private void getAlarmLastInfo(Long intakeId, String rtuAddr, VoArIntakeRemote rVo){ + List<VoArIntakeRemote> list = remoteDao.alarmLastInfo(intakeId); if(list != null && list.size() > 0){ VoArIntakeRemote vo = list.get(0) ; rVo.alarm = vo.alarm ; @@ -119,12 +120,24 @@ * 寰楀埌鍙栨按鍙f渶鏂板紑鍏抽榾淇℃伅 * @param intakeId */ - private void getOpenCloseValveInfo(Long intakeId, String rtuAddr, VoArIntakeRemote rVo){ - List<VoArIntakeRemote> list = remoteDao.openCloseValveInfo(intakeId); + private void getOpenCloseValveLastInfo(Long intakeId, String rtuAddr, VoArIntakeRemote rVo){ + List<VoArIntakeRemote> list = remoteDao.openCloseValveLastInfo(intakeId); if(list != null && list.size() > 0){ VoArIntakeRemote vo = list.get(0) ; rVo.lastOpenDt = vo.lastOpenDt ; rVo.lastCloseDt = vo.lastCloseDt ; } } + /** + * 寰楀埌鍙栨按鍙f渶鏂版紡鎹熶俊鎭� + * @param intakeId + */ + private void getLossAmountLastInfo(Long intakeId, String rtuAddr, VoArIntakeRemote rVo){ + List<VoArIntakeRemote> list = remoteDao.lossLastInfo(intakeId); + if(list != null && list.size() > 0){ + VoArIntakeRemote vo = list.get(0) ; + rVo.lossDt = vo.lossDt ; + rVo.lossAmount = vo.lossAmount ; + } + } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/allRound/Ar4StatisticsCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/allRound/Ar4StatisticsCtrl.java new file mode 100644 index 0000000..e0a807a --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/allRound/Ar4StatisticsCtrl.java @@ -0,0 +1,164 @@ +package com.dy.pipIrrStatistics.allRound; + +import com.dy.common.aop.SsoAop; +import com.dy.common.webUtil.BaseResponse; +import com.dy.common.webUtil.BaseResponseUtils; +import com.dy.common.webUtil.ResultCodeMsg; +import com.dy.pipIrrGlobal.VoAllRound.*; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +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: 2025/2/5 10:46 + * @Description + */ +@Slf4j +@Tag(name = "鍙栨按鍙g患鍚堜俊鎭箣鐩稿叧缁熻鏁版嵁", description = "鍙栨按鍙g患鍚堜俊鎭箣鐩稿叧缁熻鏁版嵁") +@RestController +@RequestMapping(path = "ar4Statistics") +@SuppressWarnings("unchecked")//java鐗堟湰瓒婇珮锛屽娉涘瀷绾︽潫瓒婁弗锛屾墍浠ラ厤缃甋uppressWarnings("unchecked") +public class Ar4StatisticsCtrl { + + private Ar4StatisticsSv sv; + + @Autowired + private void setSv(Ar4StatisticsSv sv) { + this.sv = sv; + } + + /** + * 缁煎悎淇℃伅 + * 鍙栨按鍙e紑鍏抽榾鏁版嵁 + * @return + */ + @Operation(summary = "缁煎悎淇℃伅", description = "鍙栨按鍙e紑鍏抽榾鏁版嵁") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鍙栨按鍙e紑鍏抽榾鏁版嵁锛圔aseResponse.content:VoArIntakeOpenCloseValve[{}]锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = VoArIntakeOpenCloseValve.class))} + ) + }) + @GetMapping(path = "openCloseValveInfo") + @SsoAop() + public BaseResponse<List<VoArIntakeOpenCloseValve>> openCloseValveInfo(Long intakeId) { + if (intakeId == null || intakeId.longValue() == 0L) { + return BaseResponseUtils.buildException("鍙栨按鍙d涓嶈兘涓虹┖"); + } + List<VoArIntakeOpenCloseValve> res = this.sv.openCloseValveRecords(intakeId); + return BaseResponseUtils.buildSuccess(res); + } + + + /** + * 缁煎悎淇℃伅 + * 鍙栨按鍙f棩婕忔崯鏁版嵁 + * @return + */ + @Operation(summary = "缁煎悎淇℃伅", description = "鍙栨按鍙f棩婕忔崯鏁版嵁") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鍙栨按鍙f棩婕忔崯鏁版嵁锛圔aseResponse.content:VoArIntakeLossDay[{}]锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = VoArIntakeLossDay.class))} + ) + }) + @GetMapping(path = "lossDayRecords") + @SsoAop() + public BaseResponse<List<VoArIntakeLossDay>> lossDayRecords(Long intakeId) { + if (intakeId == null || intakeId.longValue() == 0L) { + return BaseResponseUtils.buildException("鍙栨按鍙d涓嶈兘涓虹┖"); + } + List<VoArIntakeLossDay> res = this.sv.lossDayRecords(intakeId); + return BaseResponseUtils.buildSuccess(res); + } + + /** + * 缁煎悎淇℃伅 + * 鍙栨按鍙f湀婕忔崯鏁版嵁 + * @return + */ + @Operation(summary = "缁煎悎淇℃伅", description = "鍙栨按鍙f湀婕忔崯鏁版嵁") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鍙栨按鍙f湀婕忔崯鏁版嵁锛圔aseResponse.content:VoArIntakeLossMonth[{}]锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = VoArIntakeLossMonth.class))} + ) + }) + @GetMapping(path = "lossMonthRecords") + @SsoAop() + public BaseResponse<List<VoArIntakeLossMonth>> lossMonthRecords(Long intakeId) { + if (intakeId == null || intakeId.longValue() == 0L) { + return BaseResponseUtils.buildException("鍙栨按鍙d涓嶈兘涓虹┖"); + } + List<VoArIntakeLossMonth> res = this.sv.lossMonthRecords(intakeId); + return BaseResponseUtils.buildSuccess(res); + } + + /** + * 缁煎悎淇℃伅 + * 鍙栨按鍙f棩鍙栨按鏁版嵁 + * @return + */ + @Operation(summary = "缁煎悎淇℃伅", description = "鍙栨按鍙f棩鍙栨按鏁版嵁") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鍙栨按鍙f棩鍙栨按鏁版嵁锛圔aseResponse.content:VoArIntakeAmountDay[{}]锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = VoArIntakeAmountDay.class))} + ) + }) + @GetMapping(path = "amountDayRecords") + @SsoAop() + public BaseResponse<List<VoArIntakeAmountDay>> amountDayRecords(Long intakeId) { + if (intakeId == null || intakeId.longValue() == 0L) { + return BaseResponseUtils.buildException("鍙栨按鍙d涓嶈兘涓虹┖"); + } + List<VoArIntakeAmountDay> res = this.sv.amountDayRecords(intakeId); + return BaseResponseUtils.buildSuccess(res); + } + + /** + * 缁煎悎淇℃伅 + * 鍙栨按鍙f湀鍙栨按鏁版嵁 + * @return + */ + @Operation(summary = "缁煎悎淇℃伅", description = "鍙栨按鍙f湀鍙栨按鏁版嵁") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鍙栨按鍙f湀鍙栨按鏁版嵁锛圔aseResponse.content:VoArIntakeAmountDay[{}]锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = VoArIntakeAmountMonth.class))} + ) + }) + @GetMapping(path = "amountMonthRecords") + @SsoAop() + public BaseResponse<List<VoArIntakeAmountMonth>> amountMonthRecords(Long intakeId) { + if (intakeId == null || intakeId.longValue() == 0L) { + return BaseResponseUtils.buildException("鍙栨按鍙d涓嶈兘涓虹┖"); + } + List<VoArIntakeAmountMonth> res = this.sv.amountMonthRecords(intakeId); + return BaseResponseUtils.buildSuccess(res); + } + + +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/allRound/Ar4StatisticsSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/allRound/Ar4StatisticsSv.java new file mode 100644 index 0000000..4f41357 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/allRound/Ar4StatisticsSv.java @@ -0,0 +1,85 @@ +package com.dy.pipIrrStatistics.allRound; + +import com.dy.common.mw.protocol.p206V1.CommonV1; +import com.dy.common.webUtil.QueryResultVo; +import com.dy.pipIrrGlobal.VoAllRound.*; +import com.dy.pipIrrGlobal.daoAllRound.Ar4StatisticsMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Author: liurunyu + * @Date: 2025/2/5 10:46 + * @Description + */ +@Slf4j +@Service +public class Ar4StatisticsSv { + + @Autowired + private Ar4StatisticsMapper statisticsDao; + + //璁板綍鏉℃暟 + private static final int totalRecordsCount = 10 ; + + /** + * 寰楀埌鍙栨按鍙e紑鍏抽榾璁板綍锛坱otalRecordsCount鏉★級 + * @param intakeId + */ + public List<VoArIntakeOpenCloseValve> openCloseValveRecords(Long intakeId){ + List<VoArIntakeOpenCloseValve> list = statisticsDao.openCloseRecords(intakeId, 0, totalRecordsCount); + if(list != null && list.size() > 0){ + for (VoArIntakeOpenCloseValve vo : list) { + if(vo != null){ + if(vo.opType != null){ + vo.openType = CommonV1.openCloseValveType(vo.opType); + } + if(vo.clType != null){ + vo.closeType = CommonV1.openCloseValveType(vo.clType); + } + } + } + } + return list; + } + + + /** + * 寰楀埌鍙栨按鍙f棩婕忔崯璁板綍锛坱otalRecordsCount鏉★級 + * @param intakeId + */ + public List<VoArIntakeLossDay> lossDayRecords(Long intakeId){ + return statisticsDao.lossDayRecords(intakeId, 0, totalRecordsCount); + } + + + /** + * 寰楀埌鍙栨按鍙f湀婕忔崯璁板綍锛坱otalRecordsCount鏉★級 + * @param intakeId + */ + public List<VoArIntakeLossMonth> lossMonthRecords(Long intakeId){ + return statisticsDao.lossMonthRecords(intakeId, 0, totalRecordsCount); + } + + + /** + * 寰楀埌鍙栨按鍙f棩鐢ㄦ按璁板綍锛坱otalRecordsCount鏉★級 + * @param intakeId + */ + public List<VoArIntakeAmountDay> amountDayRecords(Long intakeId){ + return statisticsDao.amountDayRecords(intakeId, 0, totalRecordsCount); + } + + + /** + * 寰楀埌鍙栨按鍙f湀鐢ㄦ按璁板綍锛坱otalRecordsCount鏉★級 + * @param intakeId + */ + public List<VoArIntakeAmountMonth> amountMonthRecords(Long intakeId){ + return statisticsDao.amountMonthRecords(intakeId, 0, totalRecordsCount); + } + +} diff --git "a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/allRound/\350\257\264\346\230\216.txt" "b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/allRound/\350\257\264\346\230\216.txt" new file mode 100644 index 0000000..3129cac --- /dev/null +++ "b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/allRound/\350\257\264\346\230\216.txt" @@ -0,0 +1 @@ +allRound浠h〃缁煎悎 \ No newline at end of file -- Gitblit v1.8.0