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