From 123ed266760b75e0ffb89e24b3cec57d564419a4 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 07 二月 2025 09:36:22 +0800
Subject: [PATCH] 大屏展示模块:当前信息统计优化,监测信息统计实现。
---
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/largeScreen/Ls4StatisticsCtrl.java | 9 +
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voLargeScreen/VoCurrentInfo.java | 29 +++--
pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ls4StatisticsMapper.xml | 137 +++++++++++++++++++++++++++
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voLargeScreen/VoMonitorInfo.java | 47 ++++++++-
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/largeScreen/Ls4StatisticsSv.java | 32 ++++-
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoLargeScreen/Ls4StatisticsMapper.java | 43 ++++++++
6 files changed, 267 insertions(+), 30 deletions(-)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoLargeScreen/Ls4StatisticsMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoLargeScreen/Ls4StatisticsMapper.java
index 9f27c42..ebf5a7c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoLargeScreen/Ls4StatisticsMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoLargeScreen/Ls4StatisticsMapper.java
@@ -75,4 +75,47 @@
*/
Integer totalCountOfNoAlarm(@Param("dt") Date dt) ;
+
+ /**
+ * 浠庢煇鏃朵互鏉ワ紝鏇句笂鎶ヨ繃鏁版嵁鐨勬�绘暟
+ */
+ Integer mTotalCountOfReport(@Param("fromDt") Date fromDt) ;
+ /**
+ * 浠庢煇鏃朵互鏉ワ紝鏈浘涓婃姤杩囨暟鎹殑鎬绘暟
+ */
+ Integer mTotalCountOfNoReport(@Param("fromDt") Date fromDt) ;
+ /**
+ * 浠庢湭涓婃姤杩囨暟鎹殑鎬绘暟
+ */
+ Integer mTotalCountOfNeverReport() ;
+
+
+ /**
+ * 浠庢煇鏃朵互鏉ワ紝鏇鹃榾寮�鎬绘暟
+ */
+ Integer mTotalCountOfOpenValve(@Param("fromDt") Date fromDt) ;
+ /**
+ * 浠庢煇鏃朵互鏉ワ紝鏇鹃榾鍏虫�绘暟
+ */
+ Integer mTotalCountOfCloseValve(@Param("fromDt") Date fromDt) ;
+ /**
+ * 浠庢湭寮�杩囬榾鐨勬�绘暟
+ */
+ Integer mTotalCountOfNeverOpenValve() ;
+
+
+
+ /**
+ * 浠庢煇鏃朵互鏉ワ紝鏇炬姤璀︽�绘暟
+ */
+ Integer mTotalCountOfAlarm(@Param("fromDt") Date fromDt) ;
+ /**
+ * 浠庢煇鏃朵互鏉ワ紝鏇炬棤鎶ヨ鎬绘暟
+ */
+ Integer mTotalCountOfNoAlarm(@Param("fromDt") Date fromDt) ;
+ /**
+ * 浠庢湭鎶ヨ繃璀︽�绘暟
+ */
+ Integer mTotalCountOfNeverAlarm() ;
+
}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voLargeScreen/VoCurrentInfo.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voLargeScreen/VoCurrentInfo.java
index a76175a..7677923 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voLargeScreen/VoCurrentInfo.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voLargeScreen/VoCurrentInfo.java
@@ -10,11 +10,14 @@
*/
@Data
-@JsonPropertyOrder({"totalCountOfOnLine",
- "totalCountOfOffLine",
- "totalCountOfOpenValve",
- "totalCountOfCloseValve",
- "totalCountOfUnknownValve"
+@JsonPropertyOrder({"cTotalCountOfOnLine",
+ "cTotalCountOfOffLine",
+ "cTotalCountOfOpenValve",
+ "cTotalCountOfCloseValve",
+ "cTotalCountOfUnknownValve",
+ "cTotalCountOfAlarm",
+ "cTotalCountOfNoAlarm",
+ "cTotalCountOfUnknownAlarm"
})
public class VoCurrentInfo {
@@ -23,36 +26,36 @@
/**
* 鍦ㄧ嚎鎬绘暟
*/
- public Integer totalCountOfOnLine ;
+ public Integer cTotalCountOfOnLine;
/**
* 绂荤嚎鎬绘暟
*/
- public Integer totalCountOfOffLine ;
+ public Integer cTotalCountOfOffLine;
/**
* 闃�寮�鎬绘暟
*/
- public Integer totalCountOfOpenValve ;
+ public Integer cTotalCountOfOpenValve;
/**
* 闃�鍏虫�绘暟
*/
- public Integer totalCountOfCloseValve ;
+ public Integer cTotalCountOfCloseValve;
/**
* 鏈煡闃�闂ㄧ姸鎬佹�绘暟
*/
- public Integer totalCountOfUnknownValve ;
+ public Integer cTotalCountOfUnknownValve;
/**
* 鎶ヨ鎬绘暟
*/
- public Integer totalCountOfAlarm ;
+ public Integer cTotalCountOfAlarm;
/**
* 鏃犳姤璀︽�绘暟
*/
- public Integer totalCountOfNoAlarm ;
+ public Integer cTotalCountOfNoAlarm;
/**
* 鏈煡鎶ヨ鐘舵�佹�绘暟
*/
- public Integer totalCountOfUnknownAlarm ;
+ public Integer cTotalCountOfUnknownAlarm;
}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voLargeScreen/VoMonitorInfo.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voLargeScreen/VoMonitorInfo.java
index 2909d0b..6ee70a3 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voLargeScreen/VoMonitorInfo.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voLargeScreen/VoMonitorInfo.java
@@ -10,24 +10,59 @@
*/
@Data
-@JsonPropertyOrder({"totalCountOfOnLine",
- "totalCountOfOffLine"
+@JsonPropertyOrder({"mTotalCountOfReport",
+ "mTotalCountOfNoReport",
+ "mTotalCountOfNeverReport",
+ "mTotalCountOfOpenValve",
+ "mTotalCountOfCloseValve",
+ "mTotalCountOfUnknownValve",
+ "mTotalCountOfAlarm",
+ "mTotalCountOfNoAlarm",
+ "mTotalCountOfUnknownAlarm"
})
public class VoMonitorInfo {
- private static final long serialVersionUID = 202502061348001L;
+ private static final long serialVersionUID = 202502061348321L;
/**
* 浠庢煇鏃朵互鏉ワ紝鏇句笂鎶ヨ繃鏁版嵁鐨勬�绘暟
*/
- public Integer totalCountOfReport ;
+ public Integer mTotalCountOfReport;
/**
* 浠庢煇鏃朵互鏉ワ紝鏈浘涓婃姤杩囨暟鎹殑鎬绘暟
*/
- public Integer totalCountOfNoReport ;
+ public Integer mTotalCountOfNoReport;
/**
* 浠庢湭涓婃姤杩囨暟鎹殑鎬绘暟
*/
- public Integer totalCountOfNeverReport ;
+ public Integer mTotalCountOfNeverReport;
+
+
+ /**
+ * 浠庢煇鏃朵互鏉ワ紝鏇鹃榾寮�鎬绘暟
+ */
+ public Integer mTotalCountOfOpenValve ;
+ /**
+ * 浠庢煇鏃朵互鏉ワ紝鏇鹃榾鍏虫�绘暟
+ */
+ public Integer mTotalCountOfCloseValve ;
+ /**
+ * 浠庢湭寮�杩囬榾鐨勬�绘暟
+ */
+ public Integer mTotalCountOfNeverOpenValve ;
+
+
+ /**
+ * 浠庢煇鏃朵互鏉ワ紝鏇炬姤璀︽�绘暟
+ */
+ public Integer mTotalCountOfAlarm ;
+ /**
+ * 浠庢煇鏃朵互鏉ワ紝鏇炬棤鎶ヨ鎬绘暟
+ */
+ public Integer mTotalCountOfNoAlarm ;
+ /**
+ * 浠庢湭鎶ヨ繃璀︽�绘暟
+ */
+ public Integer mTotalCountOfNeverAlarm ;
}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ls4StatisticsMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ls4StatisticsMapper.xml
index 8674548..70353ff 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ls4StatisticsMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ls4StatisticsMapper.xml
@@ -130,5 +130,142 @@
</if>
</select>
+ <select id="mTotalCountOfReport" resultType="java.lang.Integer">
+ select
+ count(*) as count
+ from rm_on_hour_report_last tb
+ where tb.dt <![CDATA[>=]]> #{fromDt, javaType=DATE, jdbcType=TIMESTAMP}
+ </select>
+
+ <select id="mTotalCountOfNoReport" resultType="java.lang.Integer">
+ select
+ count(*) as count
+ from pr_intake tb
+ left join (
+ select ltb.intake_id
+ from rm_on_hour_report_last ltb
+ where ltb.dt <![CDATA[>=]]> #{fromDt, javaType=DATE, jdbcType=TIMESTAMP}
+ ) temTb on tb.id = temTb.intake_id
+ where temTb.intake_id is null
+ </select>
+
+
+ <select id="mTotalCountOfNeverReport" resultType="java.lang.Integer">
+ select
+ count(*) as count
+ from pr_intake tb
+ left join (
+ select ltb.intake_id
+ from rm_on_hour_report_last ltb
+ ) temTb on tb.id = temTb.intake_id
+ where temTb.intake_id is null
+ </select>
+
+
+
+
+ <select id="mTotalCountOfOpenValve" resultType="java.lang.Integer">
+ select
+ count(*) as count
+ from rm_alarm_state_last tb
+ where valve_state = 0
+ <if test="fromDt != null ">
+ AND tb.dt <![CDATA[>=]]> #{fromDt, javaType=DATE, jdbcType=TIMESTAMP}
+ </if>
+ </select>
+
+ <select id="mTotalCountOfCloseValve" resultType="java.lang.Integer">
+ select
+ count(*) as count
+ from rm_alarm_state_last tb
+ where valve_state = 1
+ <if test="fromDt != null ">
+ AND tb.dt <![CDATA[>=]]> #{fromDt, javaType=DATE, jdbcType=TIMESTAMP}
+ </if>
+ </select>
+
+ <select id="mTotalCountOfNeverOpenValve" resultType="java.lang.Integer">
+ select
+ count(*) as count
+ from pr_intake tb
+ left join (
+ /* 姝ゅ鐞嗚В涓烘湁杩囪褰曪紝閭d箞灏卞紑杩囬榾 */
+ select ltb.intake_id
+ from rm_alarm_state_last ltb
+ ) temTb on tb.id = temTb.intake_id
+ where temTb.intake_id is null
+ </select>
+
+
+ <select id="mTotalCountOfAlarm" resultType="java.lang.Integer">
+ select
+ count(*) as count
+ from rm_alarm_state_last tb
+ where (alarm_remain_water = 1 or
+ alarm_exceed_year = 1 or
+ alarm_water_meter_fault = 1 or
+ alarm_loss = 1 or
+ alarm_water_meter_break = 1 or
+ alarm_ele_meter_fault = 1 or
+ alarm_inner_door = 1 or
+ alarm_outer_door = 1 or
+ alarm_ele_miss = 1 or
+ alarm_ele_exceed = 1 or
+ alarm_ele_low_volt = 1 or
+ state_ic_enable = 1 or
+ alarm_battery_volt = 1 or
+ alarm_valve = 1)
+ <if test="fromDt != null ">
+ AND tb.dt <![CDATA[>=]]> #{fromDt, javaType=DATE, jdbcType=TIMESTAMP}
+ </if>
+ </select>
+
+ <select id="mTotalCountOfNoAlarm" resultType="java.lang.Integer">
+ select
+ count(*) as count
+ from rm_alarm_state_last tb
+ where ((alarm_remain_water is null or alarm_remain_water = 0) and
+ (alarm_remain_water is null or alarm_exceed_year = 0) and
+ (alarm_remain_water is null or alarm_water_meter_fault = 0) and
+ (alarm_remain_water is null or alarm_loss = 0) and
+ (alarm_remain_water is null or alarm_water_meter_break = 0) and
+ (alarm_remain_water is null or alarm_ele_meter_fault = 0) and
+ (alarm_remain_water is null or alarm_inner_door = 0) and
+ (alarm_remain_water is null or alarm_outer_door = 0) and
+ (alarm_remain_water is null or alarm_ele_miss = 0) and
+ (alarm_remain_water is null or alarm_ele_exceed = 0) and
+ (alarm_remain_water is null or alarm_ele_low_volt = 0) and
+ (alarm_remain_water is null or state_ic_enable = 0) and
+ (alarm_remain_water is null or alarm_battery_volt = 0) and
+ (alarm_remain_water is null or alarm_valve = 0) )
+ <if test="fromDt != null ">
+ AND tb.dt <![CDATA[>=]]> #{fromDt, javaType=DATE, jdbcType=TIMESTAMP}
+ </if>
+ </select>
+
+ <select id="mTotalCountOfNeverAlarm" resultType="java.lang.Integer">
+ select
+ count(*) as count
+ from pr_intake tb
+ left join (
+ select ltb.intake_id
+ from rm_alarm_state_last ltb
+ where ((ltb.alarm_remain_water is null or ltb.alarm_remain_water = 0) and
+ (ltb.alarm_remain_water is null or ltb.alarm_exceed_year = 0) and
+ (ltb.alarm_remain_water is null or ltb.alarm_water_meter_fault = 0) and
+ (ltb.alarm_remain_water is null or ltb.alarm_loss = 0) and
+ (ltb.alarm_remain_water is null or ltb.alarm_water_meter_break = 0) and
+ (ltb.alarm_remain_water is null or ltb.alarm_ele_meter_fault = 0) and
+ (ltb.alarm_remain_water is null or ltb.alarm_inner_door = 0) and
+ (ltb.alarm_remain_water is null or ltb.alarm_outer_door = 0) and
+ (ltb.alarm_remain_water is null or ltb.alarm_ele_miss = 0) and
+ (ltb.alarm_remain_water is null or ltb.alarm_ele_exceed = 0) and
+ (ltb.alarm_remain_water is null or ltb.alarm_ele_low_volt = 0) and
+ (ltb.alarm_remain_water is null or ltb.state_ic_enable = 0) and
+ (ltb.alarm_remain_water is null or ltb.alarm_battery_volt = 0) and
+ (ltb.alarm_remain_water is null or ltb.alarm_valve = 0) )
+ ) temTb on tb.id = temTb.intake_id
+ where temTb.intake_id is null
+ </select>
</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/largeScreen/Ls4StatisticsCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/largeScreen/Ls4StatisticsCtrl.java
index e42cbc0..fdd99cf 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/largeScreen/Ls4StatisticsCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/largeScreen/Ls4StatisticsCtrl.java
@@ -1,6 +1,7 @@
package com.dy.pipIrrStatistics.largeScreen;
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.ResultCodeMsg;
@@ -86,7 +87,7 @@
/**
* 澶у睆灞曠ず---鐩戞祴淇℃伅
* @return 鐩戞祴淇℃伅
- * @param startDt 寮�濮嬫棩鏈燂紙鏍煎紡 yyyy-mm-dd锛�
+ * @param fromDt 寮�濮嬫棩鏈燂紙鏍煎紡 yyyy-mm-dd锛�
*/
@Operation(summary = "澶у睆灞曠ず", description = "鐩戞祴淇℃伅")
@ApiResponses(value = {
@@ -99,7 +100,11 @@
})
@GetMapping(path = "monitorInfo")
@SsoAop()
- public BaseResponse<VoMonitorInfo> monitorInfo(Date startDt) {
+ public BaseResponse<VoMonitorInfo> monitorInfo(String fromDt) throws Exception {
+ if(fromDt == null || fromDt.trim().equals("")){
+ return BaseResponseUtils.buildException("寮�濮嬫棩鏈熶笉鑳戒负绌�");
+ }
+ Date startDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(fromDt + " 00:00:00");
VoMonitorInfo res = this.sv.monitorInfo(startDt);
return BaseResponseUtils.buildSuccess(res);
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/largeScreen/Ls4StatisticsSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/largeScreen/Ls4StatisticsSv.java
index 620ad5f..09d573f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/largeScreen/Ls4StatisticsSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/largeScreen/Ls4StatisticsSv.java
@@ -72,14 +72,16 @@
Date dtAtXHourBefore = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(DateTime.lastXHour_yyyy_MM_dd_HH_mm_ss(24)) ;//X涓皬鏃跺墠
VoCurrentInfo vo = new VoCurrentInfo() ;
Integer[] result = this.queryMwOnAndOffLine() ;
- vo.totalCountOfOnLine = result[0] ;
- vo.totalCountOfOffLine = totalCountOfIntake - vo.totalCountOfOnLine; ;
- vo.totalCountOfOpenValve = this.dao.totalCountOfOpenValve(dtAtXHourBefore) ;
- vo.totalCountOfCloseValve = this.dao.totalCountOfCloseValve(dtAtXHourBefore) ;
- vo.totalCountOfUnknownValve = totalCountOfIntake - vo.totalCountOfOpenValve - vo.totalCountOfCloseValve ;
- vo.totalCountOfAlarm = this.dao.totalCountOfAlarm(dtAtXHourBefore) ;
- vo.totalCountOfNoAlarm = this.dao.totalCountOfNoAlarm(dtAtXHourBefore) ;
- vo.totalCountOfUnknownAlarm = totalCountOfIntake - vo.totalCountOfAlarm - vo.totalCountOfNoAlarm ;
+ vo.cTotalCountOfOnLine = result[0] ;
+ vo.cTotalCountOfOffLine = totalCountOfIntake - vo.cTotalCountOfOnLine;
+
+ vo.cTotalCountOfOpenValve = this.dao.totalCountOfOpenValve(dtAtXHourBefore) ;
+ vo.cTotalCountOfCloseValve = this.dao.totalCountOfCloseValve(dtAtXHourBefore) ;
+ vo.cTotalCountOfUnknownValve = totalCountOfIntake - vo.cTotalCountOfOpenValve - vo.cTotalCountOfCloseValve;
+
+ vo.cTotalCountOfAlarm = this.dao.totalCountOfAlarm(dtAtXHourBefore) ;
+ vo.cTotalCountOfNoAlarm = this.dao.totalCountOfNoAlarm(dtAtXHourBefore) ;
+ vo.cTotalCountOfUnknownAlarm = totalCountOfIntake - vo.cTotalCountOfAlarm - vo.cTotalCountOfNoAlarm;
return vo ;
}
@@ -87,8 +89,20 @@
* 鐩戞祴淇℃伅缁熻
* @return
*/
- public VoMonitorInfo monitorInfo(Date startDt){
+ public VoMonitorInfo monitorInfo(Date fromDt){
VoMonitorInfo vo = new VoMonitorInfo() ;
+ vo.mTotalCountOfReport = this.dao.mTotalCountOfReport(fromDt) ;
+ vo.mTotalCountOfNoReport = this.dao.mTotalCountOfNoReport(fromDt) ;
+ vo.mTotalCountOfNeverReport = this.dao.mTotalCountOfNeverReport() ;
+
+ vo.mTotalCountOfOpenValve = this.dao.mTotalCountOfOpenValve(fromDt) ;
+ vo.mTotalCountOfCloseValve = this.dao.mTotalCountOfCloseValve(fromDt) ;
+ vo.mTotalCountOfNeverOpenValve = this.dao.mTotalCountOfNeverOpenValve() ;
+
+ vo.mTotalCountOfAlarm = this.dao.mTotalCountOfAlarm(fromDt) ;
+ vo.mTotalCountOfNoAlarm = this.dao.mTotalCountOfNoAlarm(fromDt) ;
+ vo.mTotalCountOfNeverAlarm = this.dao.mTotalCountOfNeverAlarm() ;
+
return vo ;
}
--
Gitblit v1.8.0