From b218f31bb202cffa656fa4ee09bdd8d67f8ed0ef Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 13 五月 2025 17:29:42 +0800
Subject: [PATCH] 1、根据江海调整,功能码92、A2的应答中的日期时间去除; 2、表阀一体机的开关阀上行数据(84、85)处理逻辑进行修改。

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu3rd/src/main/java/com/dy/rtuMw3rd/tcp4Bjnl/NetDataDecoder.java |   92 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 92 insertions(+), 0 deletions(-)

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu3rd/src/main/java/com/dy/rtuMw3rd/tcp4Bjnl/NetDataDecoder.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu3rd/src/main/java/com/dy/rtuMw3rd/tcp4Bjnl/NetDataDecoder.java
new file mode 100644
index 0000000..5f947f6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu3rd/src/main/java/com/dy/rtuMw3rd/tcp4Bjnl/NetDataDecoder.java
@@ -0,0 +1,92 @@
+package com.dy.rtuMw3rd.tcp4Bjnl;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.springUtil.SpringContextUtil;
+import com.dy.rtuMw3rd.tcp4Bjnl.deal.BjnlDealer;
+import com.dy.rtuMw3rd.tcp4Bjnl.protocol.BjnlProtocol;
+import com.dy.rtuMw3rd.tcp4Bjnl.protocol.Result;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.mina.core.buffer.IoBuffer;
+import org.apache.mina.core.session.IoSession;
+import org.apache.mina.filter.codec.CumulativeProtocolDecoder;
+import org.apache.mina.filter.codec.ProtocolDecoderOutput;
+
+import java.io.IOException;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/03/18 14:20
+ * @Description
+ */
+@Slf4j
+public class NetDataDecoder extends CumulativeProtocolDecoder {
+
+    /**
+     * 瀵圭綉缁滀紶杈撴潵鐨勬暟鎹繘琛岃В鐮�
+     */
+    protected boolean doDecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws IOException, Exception{
+        int remain = in.remaining() ;
+        if(remain > 0){
+            byte[] bs = new byte[remain];
+            in.get(bs) ;
+            in.position(0) ;
+            String s = new String(bs, "UTF-8") ;
+            if(s != null && s.length() > 0){
+                s = s.trim() ;
+            }
+            this.receive(s);
+        }
+        return true;
+    }
+
+
+    private void receive(String json){
+        log.info("鍖椾含鍐滄灄--鏀跺埌鏁版嵁锛�" + json);
+        try{
+            if(JSON.isValid(json)){
+                Result res = JSON.parseObject(json, Result.class) ;
+                if(res.status != null && res.status.code != null && res.status.code.equals(BjnlProtocol.SuccessCode)){
+                    if(res.status.type != null){
+                        if(res.status.type.equals(BjnlProtocol.ResultTypeAuth)){
+                            forLogin(res) ;
+                        }else if(res.status.type.equals(BjnlProtocol.ResultTypeData)){
+                            forData(res) ;
+                        }else if(res.status.type.equals(BjnlProtocol.ResultTypeControl)){
+                            forControl(res) ;
+                        }else{
+                            log.error("鍖椾含鍐滄灄--鏈嶅姟绔繑鍥炴暟鎹叾绫诲瀷涓嶅彲璇嗗埆锛�" + res.status.type);
+                        }
+                    }
+                }else{
+                    //鍙兘鎺ㄩ�佺殑鏁版嵁涓笉鍖呭惈status瀛愭暟鎹�
+                    if(res.data != null && res.data.length() > 0){
+                        forData(res) ;
+                    }else{
+                        log.error("鍖椾含鍐滄灄--鏈嶅姟绔繑鍥炲け璐ヤ俊鎭細" + json);
+                    }
+
+                }
+            }else{
+                log.error("鍖椾含鍐滄灄--鏈嶅姟绔繑鍥炴暟鎹潪鏈夋晥JSON鏁版嵁锛孿n鏁版嵁涓�" + json);
+            }
+        }catch (Exception e){
+            log.error("鍖椾含鍐滄灄--鏈嶅姟绔繑鍥炴暟鎹浆JSON寮傚父锛孿n鏁版嵁涓�" + json ,e);
+        }
+    }
+
+    private void forLogin(Result res){
+        Worker.getInstance().setLogined();
+        BjnlDealer d = SpringContextUtil.getBean(BjnlDealer.class) ;
+        d.logined(res);
+    }
+
+    private void forData(Result res){
+        BjnlDealer d = SpringContextUtil.getBean(BjnlDealer.class) ;
+        d.receiveData(res);
+    }
+
+    private void forControl(Result res){
+        BjnlDealer d = SpringContextUtil.getBean(BjnlDealer.class) ;
+        d.controlRes(res);
+    }
+}

--
Gitblit v1.8.0