From 1135c89deb50a080152f9086fc7b741c415ecd54 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 12 二月 2025 17:00:14 +0800
Subject: [PATCH] 通信中间件增加功能: 1、实现消息心中; 2、开阀报、关阀报、报警数据都会在消息中间件存入消息; 3、在消息中心注册消息接收者,消息中心周期性向消息接收者推送消息。
---
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsCenterUnit.java | 83 +++++++++
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsObj.java | 12 +
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnit.java | 2
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(test测试).xml | 8
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(ym元谋).xml | 8
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealOpenValveReport.java | 26 ++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/largeScreen/WebSocketServer.java | 4
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java | 2
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java | 18 ++
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_MsCenterUnit.java | 19 ++
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealCloseValveReport.java | 25 ++
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml | 8
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml | 5
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(mj梅江).xml | 8
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealAlarmStatus.java | 25 ++
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(sp沙盘).xml | 8
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsCenterUnitAdapter.java | 12 +
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/TestMsResource.java | 23 ++
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsCenterManager.java | 138 +++++++++++++++
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java | 19 ++
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml | 3
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config(mq民勤).xml | 8
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsCenterConfigVo.java | 19 ++
23 files changed, 478 insertions(+), 5 deletions(-)
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
index f5c65a6..ae9b1ff 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -92,7 +92,8 @@
<!-- 鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱瀵瑰簲鐨勫啘鎴穒d鍜屽鍚� -->
<select id="getClientIdAndNameByCardAddrAndCardNo" resultType="java.util.Map">
SELECT cli.id AS clientId,
- cli.name AS clientName
+ cli.name AS clientName,
+ cli.address AS clientAddress
FROM se_client_card card
INNER JOIN se_client cli ON card.clientId = cli.id
WHERE card.cardAddr = #{cardAddr}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
index e758d80..6bc3433 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
@@ -245,11 +245,12 @@
SELECT id FROM se_virtual_card WHERE state = 1 AND vc_num = #{vcNum}
</select>
- <!--鏍规嵁铏氭嫙鍗$紪鍙疯幏鍙栬櫄鎷熷崱ID-->
+ <!--鏍规嵁铏氭嫙鍗$紪鍙疯幏鍙栧啘鎴穒d銆佸鍚嶃�佸湴鍧�-->
<select id="getClientIdAndNameByVsCardNo" resultType="java.util.Map">
SELECT
cli.id AS clientId,
- cli.name AS clientName
+ cli.name AS clientName,
+ cli.address AS clientAddress
FROM se_virtual_card card
INNER JOIN se_client cli ON card.client_id = cli.id
WHERE card.state = 1 AND card.vc_num = #{vcNum}
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 17e9b85..79375db 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
@@ -4,6 +4,8 @@
import java.util.List;
import com.dy.rtuMw.server.*;
+import com.dy.rtuMw.server.msCenter.MsCenterConfigVo;
+import com.dy.rtuMw.server.msCenter.MsCenterUnit;
import com.dy.rtuMw.server.rtuData.RtuDataUnit;
import com.dy.rtuMw.server.rtuData.RtuDataUnitConfigVo;
import com.dy.rtuMw.server.tasks.FromRtuComResultConstantTask;
@@ -334,6 +336,22 @@
}
*/
+
+ /////////////////
+ //娑堟伅涓績妯″潡
+ MsCenterConfigVo mscVo = new MsCenterConfigVo();
+ mscVo.enable = conf.getSetAttrBoolean(doc, "config.msCenter", "enable", null, null) ;
+ mscVo.notifyMsInterval = conf.getSetAttrPlusInt(doc, "config.msCenter", "notifyInterval", null, 1, 600, null) * 1000L ;
+ mscVo.showStartInfo = showStartInfo ;
+ AdapterImp_MsCenterUnit mscAdapt = new AdapterImp_MsCenterUnit();
+ mscAdapt.setConfig(mscVo);
+ MsCenterUnit mscUnit = MsCenterUnit.getInstance();
+ mscUnit.setAdapter(mscAdapt);
+ mscUnit.start(obj -> {
+ });
+ units.add(mscUnit) ;
+
+
/////////////////
//RTU杩滅▼鍗囩骇妯″潡
UpgradeUnitConfigVo ugVo = new UpgradeUnitConfigVo();
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_MsCenterUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_MsCenterUnit.java
new file mode 100644
index 0000000..9c1ad40
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_MsCenterUnit.java
@@ -0,0 +1,19 @@
+package com.dy.rtuMw.server;
+
+
+import com.dy.rtuMw.server.msCenter.MsCenterConfigVo;
+import com.dy.rtuMw.server.msCenter.MsCenterUnitAdapter;
+
+public class AdapterImp_MsCenterUnit implements MsCenterUnitAdapter {
+
+ private MsCenterConfigVo configVo ;
+
+ public MsCenterConfigVo getConfig() {
+ return configVo;
+ }
+
+ public void setConfig(MsCenterConfigVo configVo){
+ this.configVo = configVo ;
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsCenterConfigVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsCenterConfigVo.java
new file mode 100644
index 0000000..a8f2131
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsCenterConfigVo.java
@@ -0,0 +1,19 @@
+package com.dy.rtuMw.server.msCenter;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/2/12 13:57
+ * @Description
+ */
+public class MsCenterConfigVo {
+ public Boolean showStartInfo ;
+ public Boolean enable ;//妯″潡鏄惁鍚姩
+
+ public Long notifyMsInterval ;//閫氱煡闂撮殧(鍗曚綅姣)
+
+ public MsCenterConfigVo(){
+ this.showStartInfo = false ;
+ this.enable = false ;
+ this.notifyMsInterval = 1000L ;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsCenterManager.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsCenterManager.java
new file mode 100644
index 0000000..659e45f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsCenterManager.java
@@ -0,0 +1,138 @@
+package com.dy.rtuMw.server.msCenter;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.queue.Queue;
+import com.dy.common.springUtil.SpringContextUtil;
+import com.dy.common.threadPool.ThreadPool;
+import com.dy.common.threadPool.TreadPoolFactory;
+import com.dy.common.util.Callback;
+import com.dy.common.util.TimerTaskJob;
+import com.dy.rtuMw.web.webRequest.WebRequestDeal;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.util.*;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/2/12 14:12
+ * @Description
+ */
+public class MsCenterManager extends TimerTaskJob implements Callback {
+
+ private static final Logger log = LogManager.getLogger(MsCenterManager.class.getName());
+
+ private static final MsCenterManager INSTANCE = new MsCenterManager();
+ //娑堟伅缂撳瓨闃熷垪锛岀嚎绋嬪畨鍏ㄧ殑
+ private static final Queue msQueue = new Queue("MsCenterQueue") ;
+
+ private static final Map<String, String> msReceivers = new HashMap<>() ;
+
+
+ private MsCenterManager(){
+ }
+
+ protected static MsCenterManager getInstance() {
+ return MsCenterManager.INSTANCE;
+ }
+
+ /**
+ * 鍒濆鍖栭厤缃俊鎭�
+ */
+ protected void initOption(MsCenterConfigVo configVo) {
+ }
+ /**
+ * 娉ㄥ唽娑堟伅鎺ユ敹鍣�
+ * @param webUrl 鎺ユ敹鑰厀eb http post url
+ */
+ protected void registerMsReceiver(String webUrl){
+ if(!msReceivers.containsKey(webUrl)){
+ msReceivers.put(webUrl, webUrl) ;
+ }
+ }
+
+ protected void pushMs(MsObj msNode){
+ try {
+ msQueue.pushTail(msNode);
+ }catch (Exception e){
+ log.error("娑堟伅涓績闃熷垪瀛樺叆娑堟伅鏃跺彂鐢熷紓甯�", e);
+ }
+ }
+
+ @Override
+ public Object execute() throws Exception {
+ if(msQueue.size() > 0){
+ JSONObject msNode1 = (JSONObject)msQueue.pop() ;
+ if(msNode1 != null){
+ //澶ч儴鍒嗘椂闂磎sNode1鏄痭ull
+ List<JSONObject> list = new ArrayList<>() ;
+ list.add(msNode1) ;
+ JSONObject msNode ;
+ do{
+ msNode = (JSONObject)msQueue.pop() ;
+ if(msNode != null){
+ list.add(msNode) ;
+ }
+ }while (msNode != null);
+ this.notifyMs(list) ;
+ }
+ }
+ return null;
+ }
+
+
+ ////////////////////////////////////////////////////
+ //
+ // 娑堟伅閫氱煡閫氱煡宸ヤ綔绾跨▼鎵ц瀹屾垚鍚庡洖璋冪殑鏂规硶锛�
+ // 涔熷氨鏄笂闈xecute鏂规硶鎵ц瀹屾垚杩斿洖鎴栨姏鍑哄紓甯稿悗锛屾墽琛屼笅闈笁涓柟娉�
+ //
+ ////////////////////////////////////////////////////
+ @Override
+ public void call(Object obj) {
+ //绾跨▼宸ヤ綔鎵ц瀹屼簡锛宱bj = Boolean(true)
+ }
+ @Override
+ public void call(Object... objs) {
+ }
+ @Override
+ public void exception(Exception e) {
+ log.error("娑堟伅閫氱煡浼烘湇绾跨▼鍙戠敓寮傚父", e);
+ }
+
+
+ /**
+ * 鎶婃秷鎭�氱煡鍑哄幓
+ * @param list
+ */
+ private void notifyMs(List<JSONObject> list){
+ try {
+ if(msReceivers.size() > 0){
+ ThreadPool.Pool pool = TreadPoolFactory.getThreadPoolLong() ;
+ pool.putJob(new ThreadPool.Job() {
+ public void execute() {
+ Iterator<String> it = msReceivers.keySet().iterator() ;
+ while (it.hasNext()){
+ doNotifyMs(it.next(), list) ;
+ }
+ }
+ @Override
+ public void destroy(){
+ }
+ @Override
+ public boolean isDestroy(){
+ return false ;
+ }
+
+ });
+ }
+ } catch (Exception e) {
+ log.error("鍦≧tuDataNode鍐呭彂鐢熷紓甯�", e);
+ }
+ }
+
+ private void doNotifyMs(String receiverWebUrl, List<JSONObject> list){
+ WebRequestDeal deal = SpringContextUtil.getBean(WebRequestDeal.class) ;
+ deal.deal(receiverWebUrl, list);
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsCenterUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsCenterUnit.java
new file mode 100644
index 0000000..2776201
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsCenterUnit.java
@@ -0,0 +1,83 @@
+package com.dy.rtuMw.server.msCenter;
+
+import com.dy.common.mw.UnitAdapterInterface;
+import com.dy.common.mw.UnitCallbackInterface;
+import com.dy.common.mw.UnitInterface;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/2/12 13:55
+ * @Description
+ */
+public class MsCenterUnit implements UnitInterface {
+
+ private static MsCenterUnit instance = new MsCenterUnit() ;
+
+ public static MsCenterUnitAdapter adapter ;
+ public static MsCenterConfigVo confVo ;
+
+ private static MsCenterManager manager ;
+
+ private MsCenterUnit(){} ;
+
+ public static MsCenterUnit getInstance(){
+ return instance ;
+ }
+
+ @Override
+ public void setAdapter(UnitAdapterInterface adapter) throws Exception {
+ if(adapter == null){
+ throw new Exception("娑堟伅涓績妯″潡閫傞厤鍣ㄥ璞′笉鑳戒负绌猴紒") ;
+ }
+ MsCenterUnit.adapter = (MsCenterUnitAdapter)adapter ;
+ MsCenterUnit.confVo = MsCenterUnit.adapter.getConfig() ;
+ if(MsCenterUnit.confVo == null){
+ throw new Exception("娑堟伅涓績妯″潡閰嶇疆瀵硅薄涓嶈兘涓虹┖锛�") ;
+ }
+ }
+
+ /**
+ * 鍒濆鍖�
+ */
+ @Override
+ public void start(UnitCallbackInterface callback) throws Exception {
+ if(confVo.enable){
+ manager = MsCenterManager.getInstance() ;
+ manager.initOption(confVo);
+ manager.start(1000L, confVo.notifyMsInterval, manager);
+ callback.call(null) ;
+ System.out.println("娑堟伅涓績妯″潡鎴愬姛鍚姩");
+ }else{
+ System.out.println("娑堟伅涓績妯″潡閰嶇疆涓嶅惎鍔�");
+ }
+
+ }
+
+ @Override
+ public void stop(UnitCallbackInterface callback) throws Exception {
+ if(manager != null){
+ manager.stop();
+ }
+ }
+
+ /**
+ * 瀛樺叆娑堟伅
+ * @param msNode
+ */
+ public void pushMs(MsObj msNode){
+ if(manager != null){
+ manager.pushMs(msNode) ;
+ }
+ }
+
+ /**
+ * 娉ㄥ唽娑堟伅鎺ユ敹鍣�
+ * @param webUrl 鎺ユ敹鑰厀eb http post url
+ */
+ public void registerMsReceiver(String webUrl){
+ if(manager != null){
+ manager.registerMsReceiver(webUrl) ;
+ }
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsCenterUnitAdapter.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsCenterUnitAdapter.java
new file mode 100644
index 0000000..d458763
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsCenterUnitAdapter.java
@@ -0,0 +1,12 @@
+package com.dy.rtuMw.server.msCenter;
+
+import com.dy.common.mw.UnitAdapterInterface;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/2/12 13:58
+ * @Description
+ */
+public interface MsCenterUnitAdapter extends UnitAdapterInterface {
+ MsCenterConfigVo getConfig();
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsObj.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsObj.java
new file mode 100644
index 0000000..b1aa8cd
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/MsObj.java
@@ -0,0 +1,12 @@
+package com.dy.rtuMw.server.msCenter;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.queue.NodeObj;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/2/12 15:14
+ * @Description
+ */
+public class MsObj extends JSONObject implements NodeObj {
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/TestMsResource.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/TestMsResource.java
new file mode 100644
index 0000000..f0b09af
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/msCenter/TestMsResource.java
@@ -0,0 +1,23 @@
+package com.dy.rtuMw.server.msCenter;
+
+import org.springframework.scheduling.annotation.Scheduled;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/2/12 15:35
+ * @Description
+ */
+//浣胯捣浣滅敤锛屾湰绫绘敞瑙Component锛屽苟鍦≒ipIrrMwRtuApplication娉ㄨВ@EnableScheduling
+//@Component
+public class TestMsResource {
+
+ // 璁剧疆瀹氭椂鍗佺涓�娆�
+ @Scheduled(cron = "0/1 * * * * ?")
+ public void WsHeartBeat() throws Exception {
+ MsObj obj = new MsObj() ;
+ obj.put("id", System.currentTimeMillis());
+ obj.put("ms", "娑堟伅" + System.currentTimeMillis());
+ MsCenterUnit.getInstance().pushMs(obj);
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
index fd7c0df..b2a6a43 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
@@ -98,6 +98,7 @@
vo = new SeClient() ;
vo.setId(Long.parseLong(map.get("clientId").toString()));
vo.setName(map.get("clientName").toString());
+ vo.setAddress(map.get("clientAddress").toString());
}
}
return vo ;
@@ -116,6 +117,7 @@
vo = new SeClient() ;
vo.setId(Long.parseLong(map.get("clientId").toString()));
vo.setName(map.get("clientName").toString());
+ vo.setAddress(map.get("clientAddress").toString());
}
}
return vo ;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealAlarmStatus.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealAlarmStatus.java
index 354af9f..d11588e 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealAlarmStatus.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealAlarmStatus.java
@@ -4,6 +4,8 @@
import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateHistory;
import com.dy.rtuMw.server.ServerProperties;
import com.dy.rtuMw.server.forMs.SendMsCache;
+import com.dy.rtuMw.server.msCenter.MsCenterUnit;
+import com.dy.rtuMw.server.msCenter.MsObj;
import com.dy.rtuMw.server.rtuData.TaskSurpport;
import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
import com.dy.common.mw.protocol.Data;
@@ -47,6 +49,7 @@
Object[] objs = this.getTaskResults(TkPreGenObjs.taskId);
DbSv sv = (DbSv) objs[0];
PrController controller = (PrController) objs[1];
+ this.toMsCenter(controller, d.getRtuAddr(), dV1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo);
this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCd81Vo.rtuDt, dV1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo);
this.saveHistory(sv, controller, d.getRtuAddr(), dataCd81Vo.rtuDt, dV1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo);
if(dataCd81Vo.stateVo != null && dataCd81Vo.stateVo.valveState != null && dataCd81Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){
@@ -63,6 +66,7 @@
Object[] objs = this.getTaskResults(TkPreGenObjs.taskId);
DbSv sv = (DbSv) objs[0];
PrController controller = (PrController) objs[1];
+ this.toMsCenter(controller, d.getRtuAddr(), dV1, dataCd84Vo.alarmVo, dataCd84Vo.stateVo);
this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCd84Vo.rtuDt, dV1, dataCd84Vo.alarmVo, dataCd84Vo.stateVo);
this.saveHistory(sv, controller, d.getRtuAddr(), dataCd84Vo.rtuDt, dV1, dataCd84Vo.alarmVo, dataCd84Vo.stateVo);
/** 闃�寮�宸ヤ綔鎶ワ紝闃�闂ㄧ姸鎬佷竴瀹氭槸鎵撳紑鐘舵�侊紝鎵�浠ヤ笉璁剧疆涓嬮潰鏁版嵁浠ュ鍚庣画浠诲姟璁剧疆铏氭嫙鍗$姸鎬�
@@ -80,6 +84,7 @@
Object[] objs = this.getTaskResults(TkPreGenObjs.taskId);
DbSv sv = (DbSv) objs[0];
PrController controller = (PrController) objs[1];
+ this.toMsCenter(controller, d.getRtuAddr(), dV1, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo);
this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCdC0Vo.rtuDt, dV1, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo);
this.saveHistory(sv, controller, d.getRtuAddr(), dataCdC0Vo.rtuDt, dV1, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo);
if(dataCdC0Vo.stateVo != null && dataCdC0Vo.stateVo.valveState != null && dataCdC0Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){
@@ -99,6 +104,26 @@
}
}
}
+
+ /**
+ * 鎶ヨ鐘舵�佹暟鎹瓨鍏ユ秷鎭腑蹇�
+ * @param controller 鎺у埗鍣ㄥ璞�
+ * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+ * @param dV1 鏁版嵁瀵硅薄
+ * @param alarmVo 鎶ヨ瀵硅薄
+ * @param stateVo 鐘舵�佸璞�
+ */
+ private void toMsCenter(PrController controller, String rtuAddr, DataV1 dV1, DataAlarmVo alarmVo, DataStateVo stateVo){
+ if(alarmVo != null && controller != null){
+ MsObj msObj = new MsObj() ;
+ msObj.put("name", "鎶ヨ");
+ msObj.put("rtuAddr", rtuAddr);
+ msObj.put("intakeId", controller.getIntakeId());
+ msObj.put("alarm", alarmVo.alarmContent());
+ MsCenterUnit.getInstance().pushMs(msObj);
+ }
+ }
+
/**
* 淇濆瓨鎶ヨ鐘舵�佹渶鏂版暟鎹�
* @param sv 鏈嶅姟
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealCloseValveReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealCloseValveReport.java
index dc02e7e..b328b7e 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealCloseValveReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealCloseValveReport.java
@@ -8,6 +8,8 @@
import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory;
import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast;
import com.dy.pipIrrGlobal.pojoSe.SeClient;
+import com.dy.rtuMw.server.msCenter.MsCenterUnit;
+import com.dy.rtuMw.server.msCenter.MsObj;
import com.dy.rtuMw.server.rtuData.TaskSurpport;
import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
import org.apache.logging.log4j.LogManager;
@@ -43,6 +45,7 @@
PrController controller = (PrController)objs[1] ;
SeClient clientVo = (SeClient)objs[3] ;//杩欎釜鍊煎璞′腑鍙湁id鍜宯ame浼氭湁鍊�
try{
+ this.toMsCenter(clientVo, controller, d.getRtuAddr(), dV1, (DataCd83CloseVo)cdObj) ;
this.doDeal(sv, clientVo, controller, d.getRtuAddr(), dV1, (DataCd83CloseVo)cdObj) ;
}catch (Exception e){
log.error("淇濆瓨鎺у埗鍣ㄥ紑闃�涓婃姤鏃跺彂鐢熷紓甯�", e);
@@ -51,6 +54,28 @@
}
/**
+ * 鎶婂紑闃�娑堟伅瀛樺叆娑堟伅涓績
+ * @param clientVo
+ * @param controller
+ * @param rtuAddr
+ * @param dV1
+ * @param dataCd83CloseVo
+ */
+ private void toMsCenter(SeClient clientVo, PrController controller, String rtuAddr, DataV1 dV1, DataCd83CloseVo dataCd83CloseVo){
+ if(clientVo != null && controller != null){
+ MsObj msObj = new MsObj() ;
+ msObj.put("name", "鍏抽榾");
+ msObj.put("clientId", clientVo.getId());
+ msObj.put("clientName", clientVo.getName());
+ msObj.put("clientAddress", clientVo.getAddress());
+ msObj.put("icCardNo", dataCd83CloseVo.icCardNo);
+ msObj.put("rtuAddr", rtuAddr);
+ msObj.put("intakeId", controller.getIntakeId());
+ MsCenterUnit.getInstance().pushMs(msObj);
+ }
+ }
+
+ /**
* 淇濆瓨鏁版嵁
* @param sv 鏈嶅姟
* @param clientVo 鍐滄埛瀵硅薄锛堜笉涓虹┖鏃讹紝鍙湁id鍜宯ame鏈夊�硷級
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealOpenValveReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealOpenValveReport.java
index b4e39a7..c786899 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealOpenValveReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealOpenValveReport.java
@@ -8,6 +8,8 @@
import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory;
import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveLast;
import com.dy.pipIrrGlobal.pojoSe.SeClient;
+import com.dy.rtuMw.server.msCenter.MsCenterUnit;
+import com.dy.rtuMw.server.msCenter.MsObj;
import com.dy.rtuMw.server.rtuData.TaskSurpport;
import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
import org.apache.logging.log4j.LogManager;
@@ -42,12 +44,36 @@
PrController controller = (PrController)objs[1] ;
SeClient clientVo = (SeClient)objs[3] ;//杩欎釜鍊煎璞′腑鍙湁id鍜宯ame浼氭湁鍊�
try{
+ this.toMsCenter(clientVo, controller, d.getRtuAddr(), dV1, (DataCd83OpenVo)cdObj) ;
this.doDeal(sv, clientVo, controller, d.getRtuAddr(), dV1, (DataCd83OpenVo)cdObj) ;
}catch (Exception e){
log.error("淇濆瓨鎺у埗鍣ㄥ紑闃�涓婃姤鏃跺彂鐢熷紓甯�", e);
}
}
}
+
+ /**
+ * 鎶婂紑闃�娑堟伅瀛樺叆娑堟伅涓績
+ * @param clientVo
+ * @param controller
+ * @param rtuAddr
+ * @param dV1
+ * @param dataCd83OpenVo
+ */
+ private void toMsCenter(SeClient clientVo, PrController controller, String rtuAddr, DataV1 dV1, DataCd83OpenVo dataCd83OpenVo){
+ if(clientVo != null && controller != null){
+ MsObj msObj = new MsObj() ;
+ msObj.put("name", "寮�闃�");
+ msObj.put("clientId", clientVo.getId());
+ msObj.put("clientName", clientVo.getName());
+ msObj.put("clientAddress", clientVo.getAddress());
+ msObj.put("icCardNo", dataCd83OpenVo.icCardNo);
+ msObj.put("rtuAddr", rtuAddr);
+ msObj.put("intakeId", controller.getIntakeId());
+ MsCenterUnit.getInstance().pushMs(msObj);
+ }
+ }
+
/**
* 涓氬姟澶勭悊
* @param sv 鏈嶅姟
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnit.java
index 9a7fd69..3abc7b6 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnit.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnit.java
@@ -39,7 +39,7 @@
}
/**
- * 鍒濆鍖栦笂琛屾暟鎹鐞嗕换鍔℃睜
+ * 鍒濆鍖�
*/
@Override
public void start(UnitCallbackInterface callback) throws Exception {
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
index b96b485..877113e 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
@@ -7,6 +7,7 @@
import com.dy.rtuMw.server.forTcp.TcpSessionCache;
import com.dy.rtuMw.server.local.CommandInnerDeaLer;
import com.dy.rtuMw.server.local.ReturnCommand;
+import com.dy.rtuMw.server.msCenter.MsCenterUnit;
import com.dy.rtuMw.server.tasks.WebDownComTask;
import com.dy.common.mw.core.CoreUnit;
import com.dy.common.mw.protocol.Command;
@@ -144,6 +145,24 @@
return BaseResponseUtils.buildSuccess(list);
}
}
+
+
+ /**
+ * 娉ㄥ唽娑堟伅鎺ユ敹鑰�
+ * @param msReceiverWebUrl 娑堟伅鎺ユ敹鑰厀eb http post url
+ * @return
+ */
+ @GetMapping("/registerMsReceiverWebUrl")
+ public BaseResponse<List<String>> registerMsReceiverWebUrl(String msReceiverWebUrl){
+ try{
+ MsCenterUnit.getInstance().registerMsReceiver(msReceiverWebUrl);
+ }catch (Exception e){
+ log.error("娉ㄥ唽娑堟伅鎺ユ敹鑰呮椂鍙戠敓寮傚父", e);
+ return BaseResponseUtils.buildError("娉ㄥ唽娑堟伅鎺ユ敹鑰呮椂鍙戠敓寮傚父" + (e.getMessage() == null?"":("锛�" + e.getMessage())));
+ }
+ return BaseResponseUtils.buildSuccess(true);
+ }
+
/**
* 鎺ユ敹web绯荤粺鍙戞潵鍗囩骇浠诲姟
* @param vo
diff --git "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050mj\346\242\205\346\261\237\051.xml" "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050mj\346\242\205\346\261\237\051.xml"
index d0d32a8..ff21787 100644
--- "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050mj\346\242\205\346\261\237\051.xml"
+++ "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050mj\346\242\205\346\261\237\051.xml"
@@ -56,6 +56,14 @@
synchroRtuClockTimepieces="300000"
/>
+ <!-- RTU 娑堟伅涓績
+ enable: 妯″潡鏄惁鍚姩
+ notifyInterval: 娑堟伅閫氱煡闂撮殧锛堢锛�
+ -->
+ <msCenter enable="true"
+ notifyInterval="5"
+ />
+
<!-- RTU 杞欢鍗囩骇
enable: 妯″潡鏄惁鍚姩
openNoUpgrade: 闃�寮�锛堟车寮�锛変笉鎵ц鍗囩骇
diff --git "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050mq\346\260\221\345\213\244\051.xml" "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050mq\346\260\221\345\213\244\051.xml"
index 0b20023..933d74e 100644
--- "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050mq\346\260\221\345\213\244\051.xml"
+++ "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050mq\346\260\221\345\213\244\051.xml"
@@ -56,6 +56,14 @@
synchroRtuClockTimepieces="300000"
/>
+ <!-- RTU 娑堟伅涓績
+ enable: 妯″潡鏄惁鍚姩
+ notifyInterval: 娑堟伅閫氱煡闂撮殧锛堢锛�
+ -->
+ <msCenter enable="true"
+ notifyInterval="5"
+ />
+
<!-- RTU 杞欢鍗囩骇
enable: 妯″潡鏄惁鍚姩
openNoUpgrade: 闃�寮�锛堟车寮�锛変笉鎵ц鍗囩骇
diff --git "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050sp\346\262\231\347\233\230\051.xml" "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050sp\346\262\231\347\233\230\051.xml"
index ee8e0ee..9c148d8 100644
--- "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050sp\346\262\231\347\233\230\051.xml"
+++ "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050sp\346\262\231\347\233\230\051.xml"
@@ -56,6 +56,14 @@
synchroRtuClockTimepieces="300000"
/>
+ <!-- RTU 娑堟伅涓績
+ enable: 妯″潡鏄惁鍚姩
+ notifyInterval: 娑堟伅閫氱煡闂撮殧锛堢锛�
+ -->
+ <msCenter enable="true"
+ notifyInterval="5"
+ />
+
<!-- RTU 杞欢鍗囩骇
enable: 妯″潡鏄惁鍚姩
openNoUpgrade: 闃�寮�锛堟车寮�锛変笉鎵ц鍗囩骇
diff --git "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050test\346\265\213\350\257\225\051.xml" "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050test\346\265\213\350\257\225\051.xml"
index cd60a61..5b08ff2 100644
--- "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050test\346\265\213\350\257\225\051.xml"
+++ "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050test\346\265\213\350\257\225\051.xml"
@@ -56,6 +56,14 @@
synchroRtuClockTimepieces="300000"
/>
+ <!-- RTU 娑堟伅涓績
+ enable: 妯″潡鏄惁鍚姩
+ notifyInterval: 娑堟伅閫氱煡闂撮殧锛堢锛�
+ -->
+ <msCenter enable="true"
+ notifyInterval="5"
+ />
+
<!-- RTU 杞欢鍗囩骇
enable: 妯″潡鏄惁鍚姩
openNoUpgrade: 闃�寮�锛堟车寮�锛変笉鎵ц鍗囩骇
diff --git "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050ym\345\205\203\350\260\213\051.xml" "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050ym\345\205\203\350\260\213\051.xml"
index d2a18e5..d8800f8 100644
--- "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050ym\345\205\203\350\260\213\051.xml"
+++ "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config\050ym\345\205\203\350\260\213\051.xml"
@@ -56,6 +56,14 @@
synchroRtuClockTimepieces="300000"
/>
+ <!-- RTU 娑堟伅涓績
+ enable: 妯″潡鏄惁鍚姩
+ notifyInterval: 娑堟伅閫氱煡闂撮殧锛堢锛�
+ -->
+ <msCenter enable="true"
+ notifyInterval="5"
+ />
+
<!-- RTU 杞欢鍗囩骇
enable: 妯″潡鏄惁鍚姩
openNoUpgrade: 闃�寮�锛堟车寮�锛変笉鎵ц鍗囩骇
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
index d2a18e5..d8800f8 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
@@ -56,6 +56,14 @@
synchroRtuClockTimepieces="300000"
/>
+ <!-- RTU 娑堟伅涓績
+ enable: 妯″潡鏄惁鍚姩
+ notifyInterval: 娑堟伅閫氱煡闂撮殧锛堢锛�
+ -->
+ <msCenter enable="true"
+ notifyInterval="5"
+ />
+
<!-- RTU 杞欢鍗囩骇
enable: 妯″潡鏄惁鍚姩
openNoUpgrade: 闃�寮�锛堟车寮�锛変笉鎵ц鍗囩骇
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/largeScreen/WebSocketServer.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/largeScreen/WebSocketServer.java
index 423b4e8..fd66ef4 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/largeScreen/WebSocketServer.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/largeScreen/WebSocketServer.java
@@ -27,7 +27,8 @@
// 瀹㈡埛绔繛鎺ヤ細璇濓紝閫氳繃瀹冪粰瀹㈡埛绔彂閫佹暟鎹�
private Session session;
-
+ // 瀹㈡埛绔笂绾挎椂鍒�
+ //private String onLineDt ;
// 瀹㈡埛绔痠d
private String id = "";
@@ -39,6 +40,7 @@
@OnOpen
public void onOpen(Session session, @PathParam("id") String id) {
this.session = session;
+ //this.onLineDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
this.id = id;
if(this.id == null || this.id.length() == 0){
this.id = "" + System.nanoTime() ;
--
Gitblit v1.8.0