From 0ee940c32fb24ec0eaa6548beb476f2beb2cce62 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期四, 01 八月 2024 08:48:40 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java |    3 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd81.java              |   59 +++++++++
 pipIrr-platform/pom.xml                                                                                                     |   18 +++
 pipIrr-platform/pipIrr-global/pom.xml                                                                                       |    1 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forMs/MsObj4Ding.java                             |   33 +++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forMs/SendMsCache.java                            |   68 +++++++++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java         |   15 ++
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java     |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataAlarmVo.java                     |    8 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml                                              |    4 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/pom.xml                                                                             |   12 ++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java                                              |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/SendMsConstantTask.java                     |   81 +++++++++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/config/DingTalk.java                                        |   20 ++-
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml                                          |    2 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java           |    4 
 16 files changed, 314 insertions(+), 18 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataAlarmVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataAlarmVo.java
index 86c3e72..575caae 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataAlarmVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataAlarmVo.java
@@ -41,16 +41,16 @@
         StringBuilder str = new StringBuilder() ;
         str.append("      鎶ヨ:\n");
         str.append("         钃勭數姹犵數鍘嬶細");
-        str.append(batteryVolt==null?"":(batteryVolt==1?"鎶ヨ":"姝e父"));
+        str.append(batteryVolt==null?"":(batteryVolt==1?"鎶ヨ(1)":"姝e父(0)"));
         str.append("\n");
         str.append("         婕忔崯锛�     ");
-        str.append(loss==null?"":(loss==1?"鎶ヨ":"姝e父"));
+        str.append(loss==null?"":(loss==1?"鎶ヨ(1)":"姝e父(0)"));
         str.append("\n");
         str.append("         娴侀噺璁℃晠闅滐細");
-        str.append(meter==null?"":(meter==1?"鎶ヨ":"姝e父"));
+        str.append(meter==null?"":(meter==1?"鎶ヨ(1)":"姝e父(0)"));
         str.append("\n");
         str.append("         闃�闂細     ");
-        str.append(valve==null?"":(valve==1?"鎶ヨ":"姝e父"));
+        str.append(valve==null?"":(valve==1?"鎶ヨ(1)":"姝e父(0)"));
         return str.toString() ;
     }
 }
diff --git a/pipIrr-platform/pipIrr-global/pom.xml b/pipIrr-platform/pipIrr-global/pom.xml
index 4624b96..f780609 100644
--- a/pipIrr-platform/pipIrr-global/pom.xml
+++ b/pipIrr-platform/pipIrr-global/pom.xml
@@ -147,7 +147,6 @@
             <artifactId>alibaba-dingtalk-service-sdk</artifactId>
             <version>2.0.0</version>
         </dependency>
-
         <dependency>
             <groupId>commons-codec</groupId>
             <artifactId>commons-codec</artifactId>
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/config/DingTalk.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/config/DingTalk.java
index 67afbfc..e66f22b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/config/DingTalk.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/config/DingTalk.java
@@ -5,6 +5,7 @@
 import com.dingtalk.api.request.OapiRobotSendRequest;
 import com.dingtalk.api.response.OapiRobotSendResponse;
 import com.taobao.api.ApiException;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.binary.Base64;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
@@ -23,7 +24,7 @@
  * @LastEditTime 2024-07-31 9:20
  * @Description 閽夐拤瀹㈡埛绔伐鍏风被
  */
-
+@Slf4j
 @Component
 public class DingTalk {
     @Value("${dingtalk.robot.url}")
@@ -72,15 +73,22 @@
             req.setText(text);
             req.setAt(at);
             OapiRobotSendResponse rsp = client.execute(req, CUSTOM_ROBOT_TOKEN);
-            System.out.println(rsp.getBody());
+            log.info(rsp.getBody());
         } catch (ApiException e) {
-            e.printStackTrace();
+            log.error("閽夐拤鍙戦�佹秷鎭紓甯�", e);
+            //e.printStackTrace();
         } catch (UnsupportedEncodingException e) {
-            throw new RuntimeException(e);
+            log.error("閽夐拤鍙戦�佹秷鎭紓甯�", e);
+            //e.printStackTrace();
         } catch (NoSuchAlgorithmException e) {
-            throw new RuntimeException(e);
+            log.error("閽夐拤鍙戦�佹秷鎭紓甯�", e);
+            //e.printStackTrace();
         } catch (InvalidKeyException e) {
-            throw new RuntimeException(e);
+            log.error("閽夐拤鍙戦�佹秷鎭紓甯�", e);
+            //e.printStackTrace();
+        } catch (Exception e){
+            log.error("閽夐拤鍙戦�佹秷鎭紓甯�", e);
+            //e.printStackTrace();
         }
     }
 }
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
index 3ba6bb9..7245604 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
@@ -266,8 +266,8 @@
     tb.intakeId intakeId,
     itb.name intakeName
     FROM pr_controller tb
-    INNER JOIN pr_intake itb on tb.intakeId=itb.id
-    WHERE deleted = 0 AND intakeId is not null AND rtuAddr=#{rtuAddr,jdbcType=VARCHAR}
+    INNER JOIN pr_intake itb on tb.intakeId = itb.id
+    WHERE tb.deleted = 0 AND tb.intakeId is not null AND tb.rtuAddr=#{rtuAddr,jdbcType=VARCHAR}
   </select>
 
   <!--鏍规嵁鎺у埗鍣ㄧ紪鍙烽�昏緫鍒犻櫎鎺у埗-->
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml
index 738601c..884118b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml
@@ -340,7 +340,7 @@
       alarm_battery_volt = #{alarmBatteryVolt,jdbcType=TINYINT},
       alarm_valve = #{alarmValve,jdbcType=TINYINT},
       power_type = #{powerType,jdbcType=TINYINT},
-      send_ms_time = #{powerType,jdbcType=BIGINT}
+      send_ms_time = #{sendMsTime,jdbcType=BIGINT}
     where id = #{id,jdbcType=BIGINT}
   </update>
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璁板綍鎬绘暟-->
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/pom.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/pom.xml
index 7fd838f..29cb1cb 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/pom.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/pom.xml
@@ -125,6 +125,18 @@
             <version>2.0.7</version>
         </dependency>
 
+        <!--閽夐拤娑堟伅鎺ㄩ��-->
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>alibaba-dingtalk-service-sdk</artifactId>
+            <version>2.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-codec</groupId>
+            <artifactId>commons-codec</artifactId>
+            <version>1.15</version>
+        </dependency>
+
         <!-- 娴嬭瘯 -->
         <dependency>
             <groupId>org.springframework.boot</groupId>
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
index 7e6e557..3d71ead 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
@@ -19,6 +19,7 @@
 import com.dy.common.mw.protocol.ProtocolUnit;
 import com.dy.common.mw.support.SupportUnit;
 import com.dy.common.mw.support.SupportUnitConfigVo;
+import com.dy.rtuMw.server.tasks.SendMsConstantTask;
 import com.dy.rtuMw.server.tasks.ToRtuConstantTask;
 import com.dy.rtuMw.resource.ResourceUnit;
 import com.dy.rtuMw.resource.ResourceUnitConfigVo;
@@ -340,6 +341,7 @@
 			CoreUnit.addConstantTask(new ToRtuConstantTask());
 			CoreUnit.addConstantTask(new FromRtuDataConstantTask());
 			CoreUnit.addConstantTask(new FromRtuComResultConstantTask());
+			CoreUnit.addConstantTask(new SendMsConstantTask());
 			coreUnit.start(obj -> {
 			});
 			units.add(coreUnit) ;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forMs/MsObj4Ding.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forMs/MsObj4Ding.java
new file mode 100644
index 0000000..1d267ee
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forMs/MsObj4Ding.java
@@ -0,0 +1,33 @@
+package com.dy.rtuMw.server.forMs;
+
+import com.dy.common.queue.NodeObj;
+import com.dy.common.springUtil.SpringContextUtil;
+import com.dy.pipIrrGlobal.config.DingTalk;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/31 18:50
+ * @Description
+ */
+public class MsObj4Ding implements NodeObj {
+
+    private static Logger log = LogManager.getLogger(MsObj4Ding.class.getName());
+
+    public String ms ;
+
+    public MsObj4Ding(String ms){
+        this.ms = ms ;
+    }
+
+    /**
+     * 鑷繁澶勭悊鑷繁
+     * @return
+     */
+    public boolean dealSelf(){
+        DingTalk dingTalk = SpringContextUtil.getBean(DingTalk.class) ;
+        dingTalk.sendMessage(ms);
+        return true ;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forMs/SendMsCache.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forMs/SendMsCache.java
new file mode 100644
index 0000000..9e5b675
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forMs/SendMsCache.java
@@ -0,0 +1,68 @@
+package com.dy.rtuMw.server.forMs;
+
+import com.dy.common.queue.Node;
+import com.dy.common.queue.Queue;
+import com.dy.rtuMw.server.ServerProperties;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/31 18:47
+ * @Description
+ */
+public class SendMsCache {
+
+    //TCP涓嬭鍛戒护缂撳瓨闃熷垪
+    private static Queue cacheQueue = new Queue("SendMsCache") ;
+
+    private static SendMsCache instance = new SendMsCache() ;
+
+    private SendMsCache(){
+        cacheQueue.setLimit(ServerProperties.cacheUpDownDataWarnCount, ServerProperties.cacheUpDownDataMaxCount);
+    }
+
+    public static SendMsCache getInstance(){
+        return instance ;
+    }
+
+    /**
+     * 缂撳瓨鍛戒护
+     * @param ms
+     * @throws Exception
+     */
+    public static void cacheMs(String ms) throws Exception{
+        cacheQueue.pushTail(new MsObj4Ding(ms));
+    }
+
+    /**
+     * 寰楀埌绗竴涓妭鐐�
+     * @return
+     */
+    public static Node getFirstQueueNode(){
+        return cacheQueue.getFirstNode() ;
+    }
+
+    /**
+     * 寰楀埌鏈�鍚庝竴涓妭鐐�
+     * @return
+     */
+    public static Node getLastQueueNode(){
+        return cacheQueue.getLastNode() ;
+    }
+
+    /**
+     * 绉婚櫎鑺傜偣
+     * @param node
+     */
+    public static void removeNode(Node node){
+        cacheQueue.remove(node);
+    }
+
+    /**
+     * 缂撳瓨鐨勮妭鐐规暟
+     * @Return 缂撳瓨鑺傜偣鏁�
+     */
+    public static Integer size(){
+        return cacheQueue.size() ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
index 5263b6e..03f1eeb 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
@@ -1,9 +1,12 @@
 package com.dy.rtuMw.server.rtuData.p206V1_0_0;
 
 import com.dy.common.mw.protocol.p206V1_0_0.upVos.*;
+import com.dy.common.springUtil.SpringContextUtil;
 import com.dy.common.util.DateTime;
+import com.dy.pipIrrGlobal.config.DingTalk;
 import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory;
 import com.dy.rtuMw.server.ServerProperties;
+import com.dy.rtuMw.server.forMs.SendMsCache;
 import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import com.dy.common.mw.protocol.Data;
@@ -162,8 +165,18 @@
 
     }
 
+    /**
+     * 鍚戦拤閽夊彂閫佹秷鎭�
+     * @param controller
+     * @param alarmVo
+     */
     private void sendMessage(PrController controller, DataAlarmVo alarmVo){
-        String ms = "鍙栨按鍙�" + controller.getIntakeName() + "浜х敓鎶ヨ锛�" + alarmVo.alarmContent() ;
+        String ms = "鍙栨按鍙b��" + controller.getIntakeName() + "鈥濅骇鐢熸姤璀︼細" + alarmVo.alarmContent() ;
+        try{
+            SendMsCache.cacheMs(ms);
+        }catch (Exception e){
+            log.error("缂撳瓨閽夐拤娑堟伅寮傚父锛�", e);
+        }
     }
 
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java
index c71cbd4..3dd8e8b 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java
@@ -107,7 +107,8 @@
                     alarmVo==null?null:alarmVo.stateIcEnable,
                     (byte)0,//鐢垫睜鐢靛帇(1锛氭姤璀︼紝0锛氭甯�)
                     (byte)0,//闃�闂ㄦ姤璀�(1锛氭姤璀︼紝0锛氭甯�)
-                    (byte)0//渚涚數鏂瑰紡锛�0: 220V锛�1锛氳搫鐢垫睜锛�
+                    (byte)0,//渚涚數鏂瑰紡锛�0: 220V锛�1锛氳搫鐢垫睜锛�
+                    System.currentTimeMillis()
             ) ;
             sv.saveRmAlarmStateLast(po) ;
         }else{
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/SendMsConstantTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/SendMsConstantTask.java
new file mode 100644
index 0000000..a57a546
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/SendMsConstantTask.java
@@ -0,0 +1,81 @@
+package com.dy.rtuMw.server.tasks;
+
+import com.dy.common.mw.core.CoreTask;
+import com.dy.common.queue.Node;
+import com.dy.rtuMw.server.forMs.MsObj4Ding;
+import com.dy.rtuMw.server.forMs.SendMsCache;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/31 18:45
+ * @Description
+ */
+public class SendMsConstantTask  extends CoreTask {
+
+    private static final Logger log = LogManager.getLogger(SendMsConstantTask.class.getName());
+
+    /**
+     * 鍦ㄥ崟绾跨▼鐜涓繍琛�
+     */
+    @Override
+    public Integer execute() {
+        try{
+            //log.info("褰撳墠娑堟伅闃熷垪涓繕鏈夌粨鐐规暟閲忥細" + SendMsCache.size());
+            dealMs() ;
+        }catch(Exception e){
+            log.error(e);
+        }
+        return SendMsCache.size()>0?0:1 ;
+    }
+
+    /**
+     * 澶勭悊涓嬭鍛戒护
+     */
+    public void dealMs() {
+        Node first = SendMsCache.getFirstQueueNode() ;
+        if(first != null){
+            Node last = SendMsCache.getLastQueueNode() ;
+            while (last != null){
+                last = this.doDealMs(first, last);
+            }
+        }
+    }
+    /**
+     * 澶勭悊缂撳瓨鐨勪笅琛岃妭鐐�
+     * @param first 绗竴涓妭鐐�
+     * @param last 鏈�鍚庝竴涓妭鐐�
+     */
+    private Node doDealMs(Node first, Node last){
+        if(last != null){
+            //鍦╠ealNode鏂规硶涓紝鍙兘瑕佹妸last浠庨槦鍒椾腑绉婚櫎锛岃繖鏃秎ast.pre涓虹┖锛屾墍浠ユ彁鍓嶆妸last.pre鍙栧嚭鏉�
+            Node pre = last.pre ;
+            dealNode(last) ;
+            if(first != last){
+                return pre ;
+            }else{
+                //鍋滄
+                return null ;
+            }
+        }else{
+            return null ;
+        }
+    }
+
+    /**
+     * 澶勭悊涓�涓妭鐐�
+     * @param node 鑺傜偣
+     */
+    private void dealNode(Node node){
+        if(node != null && node.obj != null){
+            MsObj4Ding obj = (MsObj4Ding)node.obj ;
+            boolean removeNode = obj.dealSelf() ;
+            if(removeNode){
+                SendMsCache.removeNode(node);
+            }
+        }
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd81.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd81.java
new file mode 100644
index 0000000..e13fe43
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd81.java
@@ -0,0 +1,59 @@
+package com.dy.pipIrrMwTestRtu.tcpClient.upData;
+
+import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+import com.dy.pipIrrMwTestRtu.ServerProperties;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/7/31 16:29
+ * @Description
+ */
+public class UpCd81 extends UpData {
+
+    private static final Logger log = LogManager.getLogger(UpCd81.class);
+
+    public static void upData() {
+        try {
+            if (UpData.session != null && UpData.session.isConnected()) {
+                byte[] bs = createData(ServerProperties.rtuAddr);
+                UpData.upSend(bs);
+            } else {
+                log.error("鏈繛鎺ラ�氫俊涓棿浠讹紝涓嶈兘鍙戦�佹暟鎹�");
+            }
+        } catch (Exception e) {
+            log.error("鍚戦�氫俊涓棿浠跺彂閫佹暟鎹骇鐢熷紓甯�", e);
+        }
+    }
+
+
+    /**
+     * 鏋勯�犳暟鎹�
+     *
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    private static byte[] createData(String rtuAddr) throws Exception {
+        byte[] bytes = creatHead(rtuAddr, "81", (byte)0xB0);
+
+        byte[] bs = new byte[2] ;
+        bs[0] = (byte)0xDF ;//鎶ヨ
+        bs[1] = (byte)0xF9 ;//鎶ヨ
+        bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+        bs = new byte[2] ;
+        bs[0] = (byte)0x00 ;//鐘舵��
+        bs[1] = (byte)0x00 ;//鐘舵��
+        bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓�
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java
index ad39965..aeab9a7 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java
@@ -12,7 +12,9 @@
 @ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrMwTestWeb"},
         excludeFilters = {
                 @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {
-                        com.dy.common.apiDoc.SpringApiConfig.class //涓�绉嶆帓闄ょ被鐨勬柟寮�
+                        //涓�绉嶆帓闄ょ被鐨勬柟寮�
+                        com.dy.common.apiDoc.SpringApiConfig.class,
+                        com.dy.pipIrrGlobal.config.DingTalk.class
                 }),
                 @ComponentScan.Filter(type = FilterType.REGEX, pattern = {
                         //浜岀鎺掗櫎绫荤殑鏂瑰紡锛屽啓姝e垯琛ㄨ揪寮忥紝闇�瑕佸鐩爣绫荤殑瀹屽叏闄愬畾鍚嶅畬鍏ㄥ尮閰嶏紝鍚﹀垯涓嶇敓鏁�
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java
index 6f0e02b..707fc58 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java
@@ -242,7 +242,7 @@
         comVo.moneyRemain = 234.56 ;
         comVo.waterPrice = 1.2 ;
         comVo.minutes = 3 ;
-        String nextDtStr = DateTime.nextXMinute_yyyy_MM_dd_HH_mm_ss(DateTime.yyyy_MM_dd_HH_mm_ss(), 5) ;//灏嗘潵5鍒嗛挓
+        String nextDtStr = DateTime.nextXMinute_yyyy_MM_dd_HH_mm_ss(DateTime.yyyy_MM_dd_HH_mm_ss(), comVo.minutes) ;//灏嗘潵X鍒嗛挓
         int[] nextDt = DateTime.yyyy_MM_dd_HH_MM_SS_2_ymdhmsGroup(nextDtStr) ;
         comVo.year = nextDt[0] ;
         comVo.month = nextDt[1] ;
diff --git a/pipIrr-platform/pom.xml b/pipIrr-platform/pom.xml
index c195141..62c1229 100644
--- a/pipIrr-platform/pom.xml
+++ b/pipIrr-platform/pom.xml
@@ -276,6 +276,24 @@
                 <groupId>org.apache.rocketmq</groupId>
                 <artifactId>rocketmq-client</artifactId>
                 <version>4.9.7</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+            <!--閽夐拤娑堟伅鎺ㄩ��-->
+            <dependency>
+                <groupId>com.aliyun</groupId>
+                <artifactId>alibaba-dingtalk-service-sdk</artifactId>
+                <version>2.0.0</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>commons-codec</groupId>
+                <artifactId>commons-codec</artifactId>
+                <version>1.15</version>
+                <type>pom</type>
+                <scope>import</scope>
             </dependency>
 
             <!-- 娴嬭瘯 -->

--
Gitblit v1.8.0