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-remote/src/main/java/com/dy/pipIrrRemote/allRound/Ar4RemoteSv.java | 131 ++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 127 insertions(+), 4 deletions(-)
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 ce1b11d..b0e1d2e 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
@@ -1,9 +1,22 @@
package com.dy.pipIrrRemote.allRound;
-import com.dy.common.webUtil.QueryResultVo;
-import com.dy.pipIrrGlobal.VoAllRound.VoArIntakeRemote;
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol.CommandBackParam;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.pipIrrGlobal.voAllRound.VoArIntakeRemote;
+import com.dy.pipIrrGlobal.daoAllRound.Ar4BaseMapper;
+import com.dy.pipIrrGlobal.daoAllRound.Ar4RemoteMapper;
+import com.dy.pipIrrGlobal.rtuMw.CodeLocal;
+import com.dy.pipIrrGlobal.rtuMw.Web2RtuMw;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.HashMap;
+import java.util.List;
/**
* @Author: liurunyu
@@ -12,13 +25,123 @@
*/
@Slf4j
@Service
-public class Ar4RemoteSv {
+public class Ar4RemoteSv extends Web2RtuMw {
+
+ @Autowired
+ private Ar4BaseMapper baseDao;
+
+ @Autowired
+ private Ar4RemoteMapper remoteDao;
+
+ @Autowired
+ private Environment env;
+
+ @Autowired
+ private RestTemplate restTemplate;
/**
* 鍙栨按鍙e熀鏈俊鎭�
* @return 鍙栨按鍙e熀鏈俊鎭�
*/
- public QueryResultVo<VoArIntakeRemote> intakeInfo(Long intakeId){
+ public VoArIntakeRemote intakeInfo(Long intakeId){
+ VoArIntakeRemote rVo = new VoArIntakeRemote() ;
+ rVo.intakeId = intakeId ;
+ String rtuAddr = this.getRtuAddr(intakeId);
+ this.getRtuOnLine(rtuAddr, rVo);
+ this.getAlarmLastInfo(intakeId, rVo);
+ this.getOpenCloseValveLastInfo(intakeId, rVo);
+ this.getLossAmountLastInfo(intakeId, rVo);
+ return rVo ;
+ }
+
+ /**
+ * 鑾峰彇鍙栨按鍙e搴旂殑RTU鍦板潃
+ * @param intakeId 鍙栨按鍙D
+ * @return RTU鍦板潃
+ */
+ private String getRtuAddr(Long intakeId){
+ List<String> rtuAddrs = baseDao.intakeRtuAddr(intakeId) ;
+ if(rtuAddrs != null && rtuAddrs.size() > 0){
+ return rtuAddrs.get(0) ;
+ }
return null ;
}
+
+ /**
+ * 寰楀埌鍙栨按RTU鍦ㄧ嚎鎯呭喌
+ * @param rtuAddr
+ * @param rVo
+ */
+ private void getRtuOnLine(String rtuAddr, VoArIntakeRemote rVo){
+ if(rtuAddr != null){
+ //鍚戦�氫俊涓棿浠跺彂鍏冲懡浠わ紝鏌ヨ閮ㄥ垎RTU鍦ㄧ嚎鎯呭喌
+ Command com = this.createInnerCommand(CodeLocal.onLinePart);
+ com.setParam(rtuAddr) ;
+ String rqUrl = this.get2MwRequestUrl(this.env, ContextComSend) ;
+ BaseResponse res = sendPostRequest2Mw(restTemplate, rqUrl, com) ;
+ if(res != null){
+ if(res.isSuccess()){
+ Command reCom = JSON.parseObject(res.getContent() == null ? null : JSON.toJSONString(res.getContent()), Command.class) ;
+ CommandBackParam bakParam = JSON.parseObject((reCom== null || reCom.param == null) ? null : JSON.toJSONString(reCom.param), CommandBackParam.class) ;
+ if(bakParam != null){
+ if(bakParam.getSuccess().booleanValue()){
+ //閫氫俊涓棿浠舵垚鍔熻繑鍥炲懡浠ょ粨鏋�
+ HashMap<String, Boolean> onLineMap = JSON.parseObject(JSON.toJSONString(reCom.getAttachment()), HashMap.class);
+ if(onLineMap != null && onLineMap.size() > 0){
+ rVo.onLine = onLineMap.get(rtuAddr) ;
+ }
+ }
+ }else{
+ log.error("閫氫俊涓棿浠惰繑鍥炲唴閮ㄥ懡浠ょ粨鏋滀腑涓嶅寘鍚獵ommandBackParam绫诲瀷鍙傛暟");
+ }
+ }else{
+ log.error("閫氫俊涓棿浠惰繑鍥炲唴閮ㄥ懡浠ゆ墽琛屽け璐�" + (res.getMsg() == null? "" : ("锛�" + res.getMsg()))) ;
+ }
+ }else{
+ log.error("閫氫俊涓棿浠惰繑鍥炲唴閮ㄥ懡浠ょ粨鏋滀负null");
+ }
+ }
+ }
+ /**
+ * 寰楀埌鍙栨按鍙f渶鏂版姤璀︿俊鎭�
+ * @param intakeId
+ * @param rVo
+ */
+ private void getAlarmLastInfo(Long intakeId, VoArIntakeRemote rVo){
+ List<VoArIntakeRemote> list = remoteDao.alarmLastInfo(intakeId);
+ if(list != null && list.size() > 0){
+ VoArIntakeRemote vo = list.get(0) ;
+ rVo.alarm = vo.alarm ;
+ if(rVo.alarm == null || rVo.alarm.trim().equals("")){
+ rVo.alarm = "鏃犳姤璀�" ;
+ }
+ rVo.alarmDt = vo.alarmDt ;
+ }
+ }
+ /**
+ * 寰楀埌鍙栨按鍙f渶鏂板紑鍏抽榾淇℃伅
+ * @param intakeId
+ * @param rVo
+ */
+ private void getOpenCloseValveLastInfo(Long intakeId, 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
+ * @param rVo
+ */
+ private void getLossAmountLastInfo(Long intakeId, 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 ;
+ }
+ }
}
--
Gitblit v1.8.0