From 4917ae8ab0ef975560674adf20d7001bef0a47d9 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 22 一月 2025 11:27:22 +0800
Subject: [PATCH] 通信中间件代码优化;取水口统合数据增加远程的属性内容。

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/VoAllRound/VoArIntakeRemote.java         |    4 +
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/allRound/Ar4RemoteSv.java |   55 +++++++++++++++++-
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandObj.java  |    5 +
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ar4RemoteMapper.xml                              |   26 ++++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoAllRound/Ar4RemoteMapper.java         |   33 +++++++++++
 5 files changed, 117 insertions(+), 6 deletions(-)

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 a8ae268..a19d9be 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,6 +2,7 @@
 
 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;
 
@@ -33,16 +34,19 @@
     /**
      * 鏈�鏂版姤璀︽椂闂�
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     public Date alarmDt ;
 
     /**
      * 鏈�鍚庡紑闃�鏃堕棿
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     public Date lastOpenDt ;
 
     /**
      * 鏈�鍚庡叧闂椂闂�
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     public Date lastCloseDt ;
 
 
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
new file mode 100644
index 0000000..ccc1610
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoAllRound/Ar4RemoteMapper.java
@@ -0,0 +1,33 @@
+package com.dy.pipIrrGlobal.daoAllRound;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.VoAllRound.VoArIntakeRemote;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/1/14 16:45
+ * @Description
+ */
+@Mapper
+public interface Ar4RemoteMapper extends BaseMapper<Object> {
+
+    /**
+     * 鏌ヨ鍙栨按鍙f渶鏂版姤璀︿俊鎭�
+     * @param intakeId
+     * @return
+     */
+    List<VoArIntakeRemote> alarmInfo(@Param("intakeId") Long intakeId) ;
+
+    /**
+     * 鏌ヨ鍙栨按鍙f渶鏂板紑鍏抽榾淇℃伅
+     * @param intakeId
+     * @return
+     */
+    List<VoArIntakeRemote> openCloseValveInfo(@Param("intakeId") Long intakeId) ;
+
+
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ar4RemoteMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ar4RemoteMapper.xml
new file mode 100644
index 0000000..8548633
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/Ar4RemoteMapper.xml
@@ -0,0 +1,26 @@
+<?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.Ar4RemoteMapper">
+
+    <select id="alarmInfo" resultType="com.dy.pipIrrGlobal.VoAllRound.VoArIntakeRemote">
+        select
+        CONCAT(
+        IF(alarm_loss = 1, '婕忔崯鎶ヨ锛�', ''),
+        IF(alarm_battery_volt = 1, '鐢垫睜鐢靛帇鎶ヨ锛�', ''),
+        IF(alarm_valve = 1, '闃�闂ㄦ姤璀︼紝', ''),
+        IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅滄姤璀︼紝', '')
+        ) AS alarm,
+        dt AS alarmDt
+        from rm_alarm_state_last rasl
+        where intake_id = #{intakeId,jdbcType=BIGINT}
+    </select>
+
+    <select id="openCloseValveInfo" resultType="com.dy.pipIrrGlobal.VoAllRound.VoArIntakeRemote">
+        select
+        op_dt AS lastOpenDt,
+        cl_dt AS lastCloseDt
+        from rm_open_close_valve_last rocvl
+        where intake_id = #{intakeId,jdbcType=BIGINT}
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandObj.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandObj.java
index b754cd8..7e415b2 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandObj.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandObj.java
@@ -75,15 +75,16 @@
 		Long lastDownComTime = tcpSe.lastDownComTime ;
 		boolean nowSend = false ;
 		if(this.result.isQuickSend){
+			//鍦ㄥ懡浠ゆ瀯寤烘椂锛屽彧鏈夊湪浣庡姛鑰楁儏鍐典笅锛屾墠浼氭妸isQuickSend浠樺�间负true
 			//鏈敹鍒板懡浠ょ粨鏋滐紝鏈揪鍒版渶澶у彂閫佹鏁帮紝RTU鍦ㄧ嚎锛岀涓婅鏁版嵁鏃跺埢涓嶈繎锛屽綋鍓嶆槸閫熷彂鍛戒护锛屾弧瓒冲彂閫佸懡浠ゆ潯浠讹紝鎵ц鍙戦�佸懡浠�
 			nowSend = true ;
 		}else if(lastDownComTime == null){
 			//鏈敹鍒板懡浠ょ粨鏋滐紝鏈揪鍒版渶澶у彂閫佹鏁帮紝RTU鍦ㄧ嚎锛岀涓婅鏁版嵁鏃跺埢涓嶈繎锛屽綋鍓峈TU涓婄嚎浠ユ潵鏈浘涓嬪彂杩囧懡浠わ紝婊¤冻鍙戦�佸懡浠ゆ潯浠讹紝鎵ц鍙戦�佸懡浠�
 			nowSend = true ;
-		}else if(this.result.isFastCom && now - lastDownComTime >= ServerProperties.fastCommandSendInterval){
+		}else if(this.result.isFastCom && (now - lastDownComTime) >= ServerProperties.fastCommandSendInterval){
 			//鏈敹鍒板懡浠ょ粨鏋滐紝鏈揪鍒版渶澶у彂閫佹鏁帮紝RTU鍦ㄧ嚎锛岀涓婅鏁版嵁鏃跺埢涓嶈繎锛孯TU涓婄嚎浠ユ潵鏇句笅鍙戣繃鍛戒护锛屽綋鍓嶅懡浠ゆ槸蹇�熷懡浠や笖瓒呰繃鍛戒护涓嬪彂闂撮殧锛屾弧瓒冲彂閫佸懡浠ゆ潯浠讹紝鎵ц鍙戦�佸懡浠�
 			nowSend = true ;
-		}else if(!this.result.isFastCom && now - lastDownComTime >= ServerProperties.commandSendInterval){
+		}else if(!this.result.isFastCom && (now - lastDownComTime) >= ServerProperties.commandSendInterval){
 			//鏈敹鍒板懡浠ょ粨鏋滐紝鏈揪鍒版渶澶у彂閫佹鏁帮紝RTU鍦ㄧ嚎锛岀涓婅鏁版嵁鏃跺埢涓嶈繎锛孯TU涓婄嚎浠ユ潵鏇句笅鍙戣繃鍛戒护锛屽綋鍓嶅懡浠ら潪蹇�熷懡浠わ紝RTU涓嬪彂鍛戒护闂撮殧瓒呰繃鍛戒护涓嬪彂闂撮殧锛屾弧瓒冲彂閫佸懡浠ゆ潯浠讹紝鎵ц鍙戦�佸懡浠�
 			nowSend = true ;
 		}
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 990d0a9..52d1d71 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
@@ -7,6 +7,7 @@
 import com.dy.common.webUtil.QueryResultVo;
 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 com.dy.pipIrrGlobal.voPr.VoOnLineIntake;
@@ -32,6 +33,9 @@
     private Ar4BaseMapper baseDao;
 
     @Autowired
+    private Ar4RemoteMapper remoteDao;
+
+    @Autowired
     private Environment env;
 
     @Autowired
@@ -43,12 +47,33 @@
      */
     public QueryResultVo<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 ;
+    }
 
-        String rtuAddr = null ;
+    /**
+     * 鑾峰彇鍙栨按鍙e搴旂殑RTU鍦板潃
+     * @param intakeId 鍙栨按鍙D
+     * @return RTU鍦板潃
+     */
+    private String getRtuAddr(Long intakeId){
         List<String> rtuAddrs = baseDao.intakeRtuAddr(intakeId) ;
         if(rtuAddrs != null && rtuAddrs.size() > 0){
-            rtuAddr = rtuAddrs.get(0) ;
+            return rtuAddrs.get(0) ;
         }
+        return null ;
+    }
+
+    /**
+     * 寰楀埌鍙栨按RTU鍦ㄧ嚎鎯呭喌
+     * @param intakeId
+     * @param rtuAddr
+     * @param rVo
+     */
+    private void getRtuOnLine(Long intakeId, String rtuAddr, VoArIntakeRemote rVo){
         if(rtuAddr != null){
             //鍚戦�氫俊涓棿浠跺彂鍏冲懡浠わ紝鏌ヨ閮ㄥ垎RTU鍦ㄧ嚎鎯呭喌
             Command com = this.createInnerCommand(CodeLocal.onLinePart);
@@ -77,7 +102,29 @@
                 log.error("閫氫俊涓棿浠惰繑鍥炲唴閮ㄥ懡浠ょ粨鏋滀负null");
             }
         }
-
-        return null ;
+    }
+    /**
+     * 寰楀埌鍙栨按鍙f渶鏂版姤璀︿俊鎭�
+     * @param intakeId
+     */
+    private void getAlarmInfo(Long intakeId, String rtuAddr, VoArIntakeRemote rVo){
+        List<VoArIntakeRemote> list = remoteDao.alarmInfo(intakeId);
+        if(list != null && list.size() > 0){
+            VoArIntakeRemote vo = list.get(0) ;
+            rVo.alarm = vo.alarm ;
+            rVo.alarmDt = vo.alarmDt ;
+        }
+    }
+   /**
+     * 寰楀埌鍙栨按鍙f渶鏂板紑鍏抽榾淇℃伅
+     * @param intakeId
+     */
+    private void getOpenCloseValveInfo(Long intakeId, String rtuAddr, VoArIntakeRemote rVo){
+        List<VoArIntakeRemote> list = remoteDao.openCloseValveInfo(intakeId);
+        if(list != null && list.size() > 0){
+            VoArIntakeRemote vo = list.get(0) ;
+            rVo.lastOpenDt = vo.lastOpenDt ;
+            rVo.lastCloseDt = vo.lastCloseDt ;
+        }
     }
 }

--
Gitblit v1.8.0