From b1c572949997a5d82d9b609163ff280a1c49627d Mon Sep 17 00:00:00 2001
From: vince <757871790@qq.com>
Date: 星期五, 26 四月 2024 14:09:45 +0800
Subject: [PATCH] 粮情协议优化

---
 src/main/java/com/fzzy/protocol/wujia/client/ClientHandler.java             |   31 ++-
 src/main/java/com/fzzy/protocol/bhzn/analysis/AnalysisService.java          |    8 
 src/main/java/com/fzzy/gateway/api/GatewayDeviceReportService.java          |   14 ++
 src/main/java/com/fzzy/gateway/controller/GatewayDeviceController.java      |    4 
 src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java            |    2 
 src/main/java/com/fzzy/protocol/fzzy/analysis/AnalysisGrain.java            |    6 
 src/main/java/com/fzzy/gateway/view/GatewayDevice.view.xml                  |   15 +
 src/main/java/com/fzzy/protocol/fzzy/service/FzzyGatewayGrainService.java   |    2 
 src/main/java/com/fzzy/protocol/wujia/service/WujiaGatewayGrainService.java |   25 ++-
 src/main/java/com/fzzy/api/Constant.java                                    |    3 
 src/main/java/com/fzzy/protocol/fzzy/analysis/AnalysisSystem.java           |    2 
 src/main/java/com/fzzy/protocol/bhzn/service/Bhzn2GatewayGrainService.java  |    2 
 src/main/java/com/fzzy/protocol/youxian1/analysis/AnalysisService.java      |    7 
 src/main/java/com/fzzy/protocol/zldz/analysis/AnalysisGrain.java            |    6 
 src/main/java/com/fzzy/protocol/wujia/analysis/AnalysisService.java         |    7 
 src/main/java/com/fzzy/protocol/xsyg/analysis/AnalysisService.java          |    7 
 src/main/java/com/fzzy/api/data/GatewayDeviceProtocol.java                  |    2 
 src/main/java/com/fzzy/protocol/bhzn/v0/analysis/AnalysisService.java       |    8 
 src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java                   |   42 +++++
 src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java  |  185 ++++++++++++++++++++++++++
 src/main/java/com/fzzy/protocol/youxian0/analysis/AnalysisService.java      |    7 
 21 files changed, 328 insertions(+), 57 deletions(-)

diff --git a/src/main/java/com/fzzy/api/Constant.java b/src/main/java/com/fzzy/api/Constant.java
index 9fb3f23..dfd9eb2 100644
--- a/src/main/java/com/fzzy/api/Constant.java
+++ b/src/main/java/com/fzzy/api/Constant.java
@@ -360,6 +360,8 @@
         device.setStatus(Constant.YN_Y);
         device.setCode("SUCCESS");
         device.setMsg("璁惧涓婄嚎");
+        device.setSn(device.getSn());
+        device.setId(device.getId());
         device.setOnlineTime(new Date());
         contextDeviceMap.put(device.getIp(), device);
         log.info("璁惧涓婄嚎锛�" + ip);
@@ -377,6 +379,7 @@
         device.setStatus(Constant.YN_N);
         device.setCode("ERROR");
         device.setMsg("璁惧绂荤嚎");
+        device.setId(device.getId());
         contextDeviceMap.put(device.getIp(), device);
 
         return device;
diff --git a/src/main/java/com/fzzy/api/data/GatewayDeviceProtocol.java b/src/main/java/com/fzzy/api/data/GatewayDeviceProtocol.java
index 4aba277..dd28c91 100644
--- a/src/main/java/com/fzzy/api/data/GatewayDeviceProtocol.java
+++ b/src/main/java/com/fzzy/api/data/GatewayDeviceProtocol.java
@@ -19,7 +19,7 @@
     GRAIN_YOUXIAN0_2023("GRAIN_YOUXIAN0_2023", "绮儏-娓镐粰涓诲簱鍗忚"),
     GRAIN_YOUXIAN1_2023("GRAIN_YOUXIAN1_2023", "绮儏-娓镐粰鍒嗗簱鍗忚"),
     GRAIN_WUJIA_2023("GRAIN_WUJIA_2023", "绮儏-鍚村绮簱鍗忚"),
-    GRAIN_XSYK_2023("GRAIN_WUJIA_2023", "娌规儏-瑗垮北娌瑰簱鍗忚"),
+    GRAIN_XSYK_2023("GRAIN_XSYK_2023", "娌规儏-瑗垮北娌瑰簱鍗忚"),
     DEVICE_WEIGHT_HTTP("DEVICE_WEIGHT_HTTP", "鍦扮-HTTP鍗忚"),
     DEVICE_WEIGHT_TCP_YH("DEVICE_WEIGHT_TCP_YH", "鍦扮-鑰�鍗嶵CP鍗忚"),
     DEVICE_IDCARD_HTTP("DEVICE_IDCARD_HTTP", "韬唤璇�-HTTP鍗忚"),
diff --git a/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java b/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java
index 53a6984..22d9e30 100644
--- a/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java
+++ b/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java
@@ -6,6 +6,8 @@
 import com.fzzy.api.utils.DateUtil;
 import com.fzzy.data.ConfigData;
 import com.fzzy.gateway.api.GatewayRemoteManager;
+import com.fzzy.gateway.api.GatewayRemoteService;
+import com.fzzy.gateway.api.GatewaySyncGranService;
 import com.fzzy.gateway.data.BaseReqData;
 import com.fzzy.gateway.data.BaseResp;
 import com.fzzy.gateway.data.WeatherWebDto;
@@ -96,8 +98,46 @@
                 gatewayRemoteManager.getDeviceReportService(device.getPushProtocol()).reportGrainDataByHand(reqData);
             }
         }
-
     }
+
+
+
+    /**
+     * <p>
+     * 绮儏姣忓ぉ8鐐归噰闆嗙伯鎯�
+     */
+    @Scheduled(cron = "0 32 7 ? * *")
+    public void scheduledGrain2() {
+        //鑾峰彇璁惧閰嶇疆锛屽彧閽堝绮儏璁惧杩涜鎵ц
+        log.info("瀹氭椂绮儏閲囬泦kafka鎺ㄩ��");
+        List<GatewayDevice> list = gatewayDeviceTestPR.listAll();
+
+        if (null == list || list.isEmpty()) {
+            log.error("涓鸿幏鍙栧埌绯荤粺涓澶囬厤缃紝鍙栨秷鎵ц\"");
+            return ;
+        }
+        BaseReqData reqData = new BaseReqData();
+        BaseResp resp;
+        for (GatewayDevice device : list) {
+            try{
+                //濡傛灉涓嶆槸绮儏鍒嗘満璺宠繃
+                if (!GatewayDeviceType.TYPE_07.getCode().equals(device.getType())) {
+                    continue;
+                }
+                reqData.setDeviceId(device.getDeviceId());
+                reqData.setProductId(device.getProductId());
+                reqData.setDeviceName(device.getDeviceName());
+                reqData.setDevice(device);
+                reqData.setAutoReplay(true);
+                GatewaySyncGranService syncGrainService = gatewayRemoteManager.getSyncGrainService(device.getSyncProtocol());
+                 resp = syncGrainService.syncGrain(reqData);
+                log.info("鍛戒护鍙戦�佺粨鏋滐細"+resp.toString());
+            }catch (Exception e){
+                log.error(e.getMessage(),e);
+            }
+        }
+    }
+
     /**
      * <p>
      * 姣忛棿闅�3绉掓墽琛屼竴娆′簨浠�
diff --git a/src/main/java/com/fzzy/gateway/api/GatewayDeviceReportService.java b/src/main/java/com/fzzy/gateway/api/GatewayDeviceReportService.java
index 68c1303..c33df4c 100644
--- a/src/main/java/com/fzzy/gateway/api/GatewayDeviceReportService.java
+++ b/src/main/java/com/fzzy/gateway/api/GatewayDeviceReportService.java
@@ -4,6 +4,7 @@
 import com.fzzy.gateway.data.BaseReqData;
 import com.fzzy.gateway.data.BaseResp;
 import com.fzzy.gateway.entity.GatewayDevice;
+import com.fzzy.gateway.hx2023.data.GrainData;
 import com.fzzy.gateway.hx2023.data.KafaGrainData;
 
 
@@ -26,11 +27,15 @@
      */
     BaseResp reportGrainData(BaseReqData reqData);
 
+
+    BaseResp reportGrainDataByKafka(BaseReqData reqData);
+
     BaseResp reportWeightData(BaseReqData reqData);
 
     BaseResp reportLprData(BaseReqData reqData);
 
     BaseResp reportGrainDataByHand(BaseReqData reqData);
+
 
 
     /**
@@ -42,4 +47,13 @@
      */
     BaseResp grainData2GatewayApiInfo(Fz40Grain grainData, GatewayDevice gatewayDevice);
 
+
+    /**
+     * 绮儏涓氬姟鏁版嵁杞崲涓猴紝褰撳墠缃戝叧闇�瑕佺殑鎶ユ枃
+     * @param grainData     绗笁涓蒋浠剁伯鎯呮暟鎹姤鏂�
+     * @param gatewayDevice 缃戝叧涓澶囬厤缃俊鎭�
+     * @return
+     */
+
+    BaseResp grainData2GatewayApiInfoKafka(GrainData grainData, GatewayDevice device);
 }
diff --git a/src/main/java/com/fzzy/gateway/controller/GatewayDeviceController.java b/src/main/java/com/fzzy/gateway/controller/GatewayDeviceController.java
index 2d7bc1e..135bebb 100644
--- a/src/main/java/com/fzzy/gateway/controller/GatewayDeviceController.java
+++ b/src/main/java/com/fzzy/gateway/controller/GatewayDeviceController.java
@@ -55,7 +55,9 @@
         if ("testGrain".equals(param.getBizType())) {
             return testGrain(param);
         }
-
+        if ("testGrain".equals(param.getBizType())) {
+            return testGrain(param);
+        }
         if ("ajaxTestKafkaGrain".equals(param.getBizType())) {
             return ajaxTestKafkaGrain(param);
         }
diff --git a/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java b/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
index c163ba9..19ce2cf 100644
--- a/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
+++ b/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
@@ -1,5 +1,6 @@
 package com.fzzy.gateway.hx2023.service;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.fzzy.api.data.DepotType;
 import com.fzzy.api.data.PushProtocol;
@@ -22,6 +23,7 @@
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 @Slf4j
@@ -62,6 +64,21 @@
         log.info("-----TOPIC-----{}", topic);
         log.info("-----Message-----{}", reqData.getData());
 
+        return new BaseResp();
+    }
+    @Override
+    public BaseResp reportGrainDataByKafka(BaseReqData reqData) {
+        String topic = ScConstant.TOPIC_ZLJ_GRAIN_TEMPERATURE;
+        //濡傛灉鏄祴璇曟ā寮忎笉鎵ц鎺ㄩ��
+        if (configData.getActive().indexOf("dev") >= 0) {
+            log.info("----------------------------鎺ㄩ�並AFKA绮儏淇℃伅锛屾敞锛氳皟璇曟ā寮忎笉鎺ㄩ��---------------------------");
+            log.info("-----TOPIC-----{}", topic);
+            log.info("-----Message-----{}", reqData.getData());
+
+            return new BaseResp();
+        }
+
+        kafkaDeviceReportService.publishWithTopic(reqData.getData(), topic);
         return new BaseResp();
     }
 
@@ -531,4 +548,172 @@
         return resp;
     }
 
+
+
+
+    //  ----------------------------------------------------
+
+    @Override
+    public BaseResp grainData2GatewayApiInfoKafka(GrainData grainData, GatewayDevice device) {
+
+        BaseResp resp = new BaseResp();
+
+        GrainCableData cableData = GatewayUtils.getCableData(device);
+
+        if (null == device.getDepotType()) device.setDepotType(DepotType.TYPE_01.getCode());
+
+//        //琛ㄧず绛掍粨
+//        if (DepotType.TYPE_02.getCode().equals(device.getDepotType()) || DepotType.TYPE_04.getCode().equals(device.getDepotType())) {
+//            return grainData2GatewayApiInfo2(grainData, device, cableData);
+//        }
+//
+//        //琛ㄧず涓虹瓛浠撳寘鎷补缃愪粨
+//        if (DepotType.TYPE_03.getCode().equals(device.getDepotType())) {
+//            return grainData2GatewayApiInfo3(grainData, device, cableData);
+//        }
+        GrainOutPut output = JSONObject.parseObject(grainData.getOutput(),GrainOutPut.class);
+        KafaGrainData result = new KafaGrainData();
+        result.setMessageId(ScConstant.getMessageId());
+        result.setMessgeId(result.getMessageId());
+        result.setDeviceID(device.getDeviceId());
+        result.setAvgTemperature(output.getAvgTemperature());
+        result.setMinTemperature(output.getMinTemperature());
+        result.setMaxTemperature(output.getMaxTemperature() );
+        result.setCollectTime(DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
+
+        //灞傝鍒�
+        int cableZ = cableData.getCableZ();
+        int cableY = cableData.getCableY();
+        int cableX = cableData.getCableX();
+
+        //娓╁害闆嗗悎
+        List<GrainTemp> attr = output.getTemperature();
+
+        //鏍瑰彿
+        int cableNum = 1, position = 0;
+        String curTemp;
+        List<KafkaGrainDataDetail1> temperature = new ArrayList<>();
+
+        int x = 0, y = 0, z = 0;
+        for (int i = 0; i < attr.size(); i++) {
+            position = i;
+            z = i % cableZ + 1;
+            x = i / (cableZ * cableY);
+            y = x * (cableZ * cableY);
+            y = (i - y) / cableZ;
+            // 鍊掕浆X杞�
+            x = cableX - 1 - x;
+            //鏍瑰彿
+            cableNum = (i / cableZ) + 1;
+            curTemp = attr.get(i).getTemperature();
+
+
+            //濡傛灉鏄紓甯稿��,鎵ц璋冩暣鏁版嵁 TODO
+            if (Double.valueOf(curTemp) < -99.9) {
+
+                curTemp = output.getAvgTemperature();
+
+            } else {
+                //鍒ゆ柇鏈�澶�
+                if (curTemp.equals(result.getMaxTemperature())) {
+                    result.setMaxX(x + "");
+                    result.setMaxY(y + "");
+                    result.setMaxZ(position + "");
+                }
+                //鍒ゆ柇鏈�灏�
+                if (curTemp.equals(result.getMinTemperature())) {
+                    result.setMinX(x + "");
+                    result.setMinY(y + "");
+                    result.setMinZ(position + "");
+                }
+            }
+
+            temperature.add(new KafkaGrainDataDetail1(cableNum + "", z + "", curTemp, position + "", x + "", y + ""));
+        }
+
+        //绮俯淇℃伅
+        JSONObject trhInfo = new JSONObject();
+        // TRHInfo trhInfo = new TRHInfo();
+        trhInfo.put("temperature", temperature);
+
+
+        //浠撴俯搴︿俊鎭�
+        KafkaGrainTH grainTH = new KafkaGrainTH();
+        List<GrainTH> ths= output.getTemperatureAndhumidity();
+        grainTH.setHumidity(ths.get(0).getHumidity());
+        grainTH.setTemperature(ths.get(0).getTemperature() );
+
+        GrainWeather weather = JSON.parseObject(grainData.getWeatherStation(),GrainWeather.class);
+        grainTH.setAirHumidity(weather.getHumidity());
+        grainTH.setAirTemperature(weather.getTemperature() );
+
+        List<KafkaGrainTH> temperatureAndhumidity = new ArrayList<>();
+        temperatureAndhumidity.add(grainTH);
+
+        trhInfo.put("temperatureAndhumidity", temperatureAndhumidity);
+
+
+        JSONObject params = new JSONObject();
+        params.put("TRHInfo", trhInfo);
+
+        result.setParams(params);
+
+
+        resp.setData(JSONObject.toJSONString(result));
+
+        return resp;
+    }
+
+
+
+    /**
+     * 鑾峰彇褰撶偣鎵�鍦ㄥ湀
+     *
+     * @param cableNum
+     * @param cableData
+     * @return
+     */
+    private int getCirCleKafka(int position, int cableNum, GrainCableData cableData) {
+
+        int num1 = 1, num2 = 2;
+        String[] attCable = cableData.getCableRule().split("-");
+
+        if (cableData.getTotalCircle() == 1) return 1;
+
+        if (cableData.getTotalCircle() == 2) {
+            num1 = Integer.valueOf(attCable[0]);
+
+            if (cableNum <= num1) return 1;
+
+            return 2;
+        }
+
+        if (cableData.getTotalCircle() == 3) {
+            num1 = Integer.valueOf(attCable[0]);
+            num2 = num1 + Integer.valueOf(attCable[1]);
+            if (cableNum <= num1) return 1;
+
+            if (cableNum <= num2) return 2;
+
+            return 3;
+        }
+
+        if (cableData.getTotalCircle() == 4) {
+            num1 = Integer.valueOf(attCable[0]);
+            num2 = num1 + Integer.valueOf(attCable[1]);
+            if (cableNum <= num1) return 1;
+
+            if (cableNum <= num2) return 2;
+
+            num2 = num1 + Integer.valueOf(attCable[1]) + Integer.valueOf(attCable[2]);
+
+            if (cableNum <= num2) return 3;
+
+            return 4;
+        }
+
+        return 1;
+    }
+
+
 }
diff --git a/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java b/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java
index 7b7b5f4..067e3d9 100644
--- a/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java
+++ b/src/main/java/com/fzzy/gateway/service/GatewayDeviceService.java
@@ -158,7 +158,7 @@
             device.setPort(commonDevice.getPort());
             device.setOnlineTime(new Date());
             device.setStatus(Constant.YN_Y);
-
+            device.setDeviceSn(commonDevice.getSn());
             GatewayUtils.add2Cache(device);
         }
     }
diff --git a/src/main/java/com/fzzy/gateway/view/GatewayDevice.view.xml b/src/main/java/com/fzzy/gateway/view/GatewayDevice.view.xml
index f2cdce0..b3b0d1b 100644
--- a/src/main/java/com/fzzy/gateway/view/GatewayDevice.view.xml
+++ b/src/main/java/com/fzzy/gateway/view/GatewayDevice.view.xml
@@ -265,12 +265,15 @@
         <Property name="exClassName">toolbar-button-push</Property>
       </ToolBarButton>
       <ToolBarButton>
-        <ClientEvent name="onClick">var data = view.get(&quot;#dsMain.data:#&quot;);&#xD;
-var param = {&#xD;
-	deviceId:data.get(&quot;deviceId&quot;),&#xD;
-	bizType:&quot;testGrain&quot;&#xD;
-}&#xD;
-testDevice(param);</ClientEvent>
+        <ClientEvent name="onClick">$confirm(&quot;纭娴嬭瘯绮儏锛�&quot;,function(){&#xD;
+	var data = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+	var param = {&#xD;
+		deviceId:data.get(&quot;deviceId&quot;),&#xD;
+		bizType:&quot;testGrain&quot;&#xD;
+	}&#xD;
+testDevice(param);&#xD;
+});&#xD;
+</ClientEvent>
         <Property name="caption">绮儏璋冭瘯</Property>
         <Property name="iconClass">fa fa-wrench</Property>
         <Property name="exClassName">toolbar-button-push</Property>
diff --git a/src/main/java/com/fzzy/protocol/bhzn/analysis/AnalysisService.java b/src/main/java/com/fzzy/protocol/bhzn/analysis/AnalysisService.java
index 28668ed..780ef00 100644
--- a/src/main/java/com/fzzy/protocol/bhzn/analysis/AnalysisService.java
+++ b/src/main/java/com/fzzy/protocol/bhzn/analysis/AnalysisService.java
@@ -392,7 +392,7 @@
         grain.setProperties(properties);
         reqData.setData(JSONObject.toJSONString(grain));
 
-        doPushGrain(reqData);
+        doPushGrain(reqData,grain);
     }
 
     /**
@@ -537,10 +537,10 @@
 
         reqData.setData(JSONObject.toJSONString(grain));
 
-        doPushGrain(reqData);
+        doPushGrain(reqData,grain);
     }
 
-    private void doPushGrain(BaseReqData reqData) {
+    private void doPushGrain(BaseReqData reqData,GrainData grainData) {
 
         GatewayDeviceReportService reportService = gatewayRemoteManager.getDeviceReportService(reqData.getDevice().getPushProtocol());
         if (null == reportService) {
@@ -548,6 +548,8 @@
             return;
         }
         reportService.reportGrainData(reqData);
+        reqData.setData(reportService.grainData2GatewayApiInfoKafka(grainData,reqData.getDevice()).getData());
+        reportService.reportGrainDataByKafka(reqData);
     }
 
 
diff --git a/src/main/java/com/fzzy/protocol/bhzn/service/Bhzn2GatewayGrainService.java b/src/main/java/com/fzzy/protocol/bhzn/service/Bhzn2GatewayGrainService.java
index 240c90a..a6c3c6d 100644
--- a/src/main/java/com/fzzy/protocol/bhzn/service/Bhzn2GatewayGrainService.java
+++ b/src/main/java/com/fzzy/protocol/bhzn/service/Bhzn2GatewayGrainService.java
@@ -35,7 +35,7 @@
         GatewayDevice device = reqData.getDevice();
 
         //鑾峰彇杩炴帴涓殑璁惧淇℃伅
-        ApiCommonDevice apiCommonDevice = Constant.getCommonDeviceCache(device.getIp());
+        ApiCommonDevice apiCommonDevice = Constant.getCommonDeviceCacheByIp(device.getIp());
 
         if (null == apiCommonDevice) {
             resp.setCode(500);
diff --git a/src/main/java/com/fzzy/protocol/bhzn/v0/analysis/AnalysisService.java b/src/main/java/com/fzzy/protocol/bhzn/v0/analysis/AnalysisService.java
index ea1fca7..916166d 100644
--- a/src/main/java/com/fzzy/protocol/bhzn/v0/analysis/AnalysisService.java
+++ b/src/main/java/com/fzzy/protocol/bhzn/v0/analysis/AnalysisService.java
@@ -367,7 +367,7 @@
 
         reqData.setData(JSONObject.toJSONString(grain));
 
-        doPushGrain(reqData);
+        doPushGrain(reqData,grain);
     }
 
     /**
@@ -504,10 +504,10 @@
 
         reqData.setData(JSONObject.toJSONString(grain));
 
-        doPushGrain(reqData);
+        doPushGrain(reqData,grain);
     }
 
-    private void doPushGrain(BaseReqData reqData) {
+    private void doPushGrain(BaseReqData reqData,GrainData grainData) {
 
         GatewayDeviceReportService reportService = gatewayRemoteManager.getDeviceReportService(reqData.getDevice().getPushProtocol());
         if (null == reportService) {
@@ -515,6 +515,8 @@
             return;
         }
         reportService.reportGrainData(reqData);
+        reqData.setData(reportService.grainData2GatewayApiInfoKafka(grainData,reqData.getDevice()).getData());
+        reportService.reportGrainDataByKafka(reqData);
     }
 
 
diff --git a/src/main/java/com/fzzy/protocol/fzzy/analysis/AnalysisGrain.java b/src/main/java/com/fzzy/protocol/fzzy/analysis/AnalysisGrain.java
index fb85434..58582b3 100644
--- a/src/main/java/com/fzzy/protocol/fzzy/analysis/AnalysisGrain.java
+++ b/src/main/java/com/fzzy/protocol/fzzy/analysis/AnalysisGrain.java
@@ -199,10 +199,10 @@
         log.info("---绮儏鏈烘灏佽瀹屾垚----寮�濮嬫墽琛屾帹閫�");
 
         reqData.setData(JSONObject.toJSONString(grain));
-        doPushGrain(reqData);
+        doPushGrain(reqData,grain);
     }
 
-    private void doPushGrain(BaseReqData reqData) {
+    private void doPushGrain(BaseReqData reqData,GrainData grainData) {
 
         GatewayDeviceReportService reportService = gatewayRemoteManager.getDeviceReportService(reqData.getDevice().getPushProtocol());
         if (null == reportService) {
@@ -210,6 +210,8 @@
             return;
         }
         reportService.reportGrainData(reqData);
+        reqData.setData(reportService.grainData2GatewayApiInfoKafka(grainData,reqData.getDevice()).getData());
+        reportService.reportGrainDataByKafka(reqData);
     }
 
     private void returnMsg(ApiCommonDevice ser) {
diff --git a/src/main/java/com/fzzy/protocol/fzzy/analysis/AnalysisSystem.java b/src/main/java/com/fzzy/protocol/fzzy/analysis/AnalysisSystem.java
index 16a7fab..744920c 100644
--- a/src/main/java/com/fzzy/protocol/fzzy/analysis/AnalysisSystem.java
+++ b/src/main/java/com/fzzy/protocol/fzzy/analysis/AnalysisSystem.java
@@ -44,7 +44,7 @@
         device.setIp(reMessage.getIp());
         device.setPort(reMessage.getPort());
         device.setSn(reMessage.getSn());
-        device.setId(reMessage.getIedId());
+        device.setId(d.getId());
         device.setOnlineTime(new Date());
         device.setCode("SUCCESS");
         Constant.updateCache(device);
diff --git a/src/main/java/com/fzzy/protocol/fzzy/service/FzzyGatewayGrainService.java b/src/main/java/com/fzzy/protocol/fzzy/service/FzzyGatewayGrainService.java
index c97e274..0bbbc86 100644
--- a/src/main/java/com/fzzy/protocol/fzzy/service/FzzyGatewayGrainService.java
+++ b/src/main/java/com/fzzy/protocol/fzzy/service/FzzyGatewayGrainService.java
@@ -40,7 +40,7 @@
         if (null == apiCommonDevice) {
             resp.setCode(500);
             resp.setMsg("绯荤粺鏈幏鍙栧埌涓嬭杩炴帴璁惧淇℃伅锛屾棤娉曟墽琛�");
-            log.error("----------------绯荤粺鏈幏鍙栧埌涓嬭杩炴帴璁惧淇℃伅,鏃犳硶鎵ц---------");
+            log.error("----------------绯荤粺鏈幏鍙栧埌涓嬭杩炴帴璁惧淇℃伅,鏃犳硶鎵ц---------"+device.toString());
             return resp;
         }
 
diff --git a/src/main/java/com/fzzy/protocol/wujia/analysis/AnalysisService.java b/src/main/java/com/fzzy/protocol/wujia/analysis/AnalysisService.java
index 5c2e562..1f30819 100644
--- a/src/main/java/com/fzzy/protocol/wujia/analysis/AnalysisService.java
+++ b/src/main/java/com/fzzy/protocol/wujia/analysis/AnalysisService.java
@@ -223,17 +223,18 @@
 
         reqData.setData(JSONObject.toJSONString(grain));
 
-        doPushGrain(reqData);
+        doPushGrain(reqData,grain);
     }
 
-    private void doPushGrain(BaseReqData reqData) {
+    private void doPushGrain(BaseReqData reqData,GrainData grainData) {
 
         GatewayDeviceReportService reportService = gatewayRemoteManager.getDeviceReportService(reqData.getDevice().getPushProtocol());
         if (null == reportService) {
             log.error("------------绮儏鎺ㄩ�佸け璐ワ紝绯荤粺涓嶅瓨鍦ㄥ綋鍓嶅崗璁墽琛岀被----{}", reqData.getDevice().getDeviceName());
             return;
         }
-
         reportService.reportGrainData(reqData);
+        reqData.setData(reportService.grainData2GatewayApiInfoKafka(grainData,reqData.getDevice()).getData());
+        reportService.reportGrainDataByKafka(reqData);
     }
 }
diff --git a/src/main/java/com/fzzy/protocol/wujia/client/ClientHandler.java b/src/main/java/com/fzzy/protocol/wujia/client/ClientHandler.java
index 3fc685b..830878b 100644
--- a/src/main/java/com/fzzy/protocol/wujia/client/ClientHandler.java
+++ b/src/main/java/com/fzzy/protocol/wujia/client/ClientHandler.java
@@ -2,8 +2,7 @@
 
 import com.fzzy.api.utils.BytesUtil;
 import com.fzzy.api.utils.SpringUtil;
-import com.fzzy.protocol.youxian0.analysis.AnalysisService;
-import com.fzzy.protocol.youxian0.client.ClientEngine;
+import com.fzzy.protocol.wujia.analysis.AnalysisService;
 import io.netty.channel.ChannelHandlerContext;
 import io.netty.channel.SimpleChannelInboundHandler;
 import lombok.extern.slf4j.Slf4j;
@@ -16,6 +15,7 @@
 
     private AnalysisService analysisService;
 
+    private static String msgStr = "";
     @Override
     public void channelActive(ChannelHandlerContext ctx) {
         InetSocketAddress socketAddress = (InetSocketAddress) ctx.channel()
@@ -32,7 +32,7 @@
         InetSocketAddress socketAddress = (InetSocketAddress) ctx.channel().remoteAddress();
 
         log.info("杩炴帴缁堢鎺夌嚎锛孖P={},port={}", socketAddress.getAddress(), socketAddress.getPort());
-        ClientEngine.defaultChannel = null;
+        //ClientEngine.defaultChannel = null;
 
     }
 
@@ -45,16 +45,25 @@
         String strMsg = BytesUtil.bytesToString(bytes);
 
         log.info("缁堢杩斿洖淇℃伅锛孖P={},port={}锛宮sg={}", socketAddress.getAddress(), socketAddress.getPort(), strMsg);
+        msgStr+= strMsg;
 
-        if (null == analysisService) {
-            analysisService = SpringUtil.getBean(AnalysisService.class);
+        if(msgStr.endsWith("AABBCC")){
+
+            log.info("娑堟伅鎺ユ敹瀹屾暣寮�濮嬭В鏋愶紝IP={},port={}锛宮sg={}", socketAddress.getAddress(), socketAddress.getPort(), msgStr);
+
+            if (null == analysisService) {
+                analysisService = SpringUtil.getBean(AnalysisService.class);
+            }
+            try{
+                analysisService.analysis(socketAddress.getAddress(), socketAddress.getPort(), msgStr);
+            }catch (Exception e){
+                log.error(e.getMessage(),e);
+            }
+            msgStr = "";
+        }else{
+            log.info("娑堟伅涓嶅畬鏁达紝绛夊緟娑堟伅瀹屾暣锛孖P={},port={}锛宮sg={}", socketAddress.getAddress(), socketAddress.getPort(), strMsg);
+
         }
-
-       try{
-           analysisService.analysis(socketAddress.getAddress(), socketAddress.getPort(), strMsg);
-       }catch (Exception e){
-           log.error(e.getMessage(),e);
-       }
 
     }
 
diff --git a/src/main/java/com/fzzy/protocol/wujia/service/WujiaGatewayGrainService.java b/src/main/java/com/fzzy/protocol/wujia/service/WujiaGatewayGrainService.java
index 2f9b014..b9d5425 100644
--- a/src/main/java/com/fzzy/protocol/wujia/service/WujiaGatewayGrainService.java
+++ b/src/main/java/com/fzzy/protocol/wujia/service/WujiaGatewayGrainService.java
@@ -36,20 +36,23 @@
 
 
     static {
-        depotGrainCmdMap.put("KEY_1", "FC0101010314030100BDDB");
-        depotGrainCmdMap.put("KEY_2", "FC0102040318030200BDDB");
-        depotGrainCmdMap.put("KEY_3", "FC0203010318040100BDDB");
-        depotGrainCmdMap.put("KEY_4", "FC0304010318040100BDDB");
-        depotGrainCmdMap.put("KEY_5", "FC0305040318040200BDDB");
-        depotGrainCmdMap.put("KEY_6", "FC0406010210030100BDDB");
-        depotGrainCmdMap.put("KEY_7", "FC0407030314030200BDDB");
-        depotGrainCmdMap.put("KEY_8", "FC0408060314030300BDDB");
-        depotGrainCmdMap.put("KEY_9", "FC050901042A040100BDDB");
-        depotGrainCmdMap.put("KEY_10", "FC050A010324040100BDDB");
-        depotGrainCmdMap.put("KEY_11", "FC060B04042A040200BDDB");
+        depotGrainCmdMap.put("KEY_1",  "FC01010103140301EBBDDB");
+        depotGrainCmdMap.put("KEY_2",  "FC01020403180302EBBDDB");
+        depotGrainCmdMap.put("KEY_3",  "FC02030103180401EBBDDB");
+        depotGrainCmdMap.put("KEY_4",  "FC03040103180401EBBDDB");
+        depotGrainCmdMap.put("KEY_5",  "FC03050403180402EBBDDB");
+        depotGrainCmdMap.put("KEY_6",  "FC04060102100301EBBDDB");
+        depotGrainCmdMap.put("KEY_7",  "FC04070303140302EBBDDB");
+        depotGrainCmdMap.put("KEY_8",  "FC04080603140303EBBDDB");
+        depotGrainCmdMap.put("KEY_9",  "FC050901042A0401EBBDDB");
+        depotGrainCmdMap.put("KEY_10", "FC050A0103240401EBBDDB");
+        depotGrainCmdMap.put("KEY_11", "FC060B04042A0402EBBDDB");
     }
 
     /**
+     *      FC 64 01 01 00 09 01 1A 10 BD DB
+     *      FC 01 01 01 03 14 03 01 EB BD DB
+     *
      * 1浠擄細 FC 01 01 01 03 14 03 01 00 BD DB
      * 2浠擄細 FC 01 02 04 03 18 03 02 00 BD DB
      * 3浠擄細 FC 02 03 01 03 18 04 01 00 BD DB
diff --git a/src/main/java/com/fzzy/protocol/xsyg/analysis/AnalysisService.java b/src/main/java/com/fzzy/protocol/xsyg/analysis/AnalysisService.java
index 6e19b30..42a20ae 100644
--- a/src/main/java/com/fzzy/protocol/xsyg/analysis/AnalysisService.java
+++ b/src/main/java/com/fzzy/protocol/xsyg/analysis/AnalysisService.java
@@ -197,17 +197,18 @@
 
         reqData.setData(JSONObject.toJSONString(grain));
 
-        doPushGrain(reqData);
+        doPushGrain(reqData,grain);
     }
 
-    private void doPushGrain(BaseReqData reqData) {
+    private void doPushGrain(BaseReqData reqData,GrainData grainData) {
 
         GatewayDeviceReportService reportService = gatewayRemoteManager.getDeviceReportService(reqData.getDevice().getPushProtocol());
         if (null == reportService) {
             log.error("------------绮儏鎺ㄩ�佸け璐ワ紝绯荤粺涓嶅瓨鍦ㄥ綋鍓嶅崗璁墽琛岀被----{}", reqData.getDevice().getDeviceName());
             return;
         }
-
         reportService.reportGrainData(reqData);
+        reqData.setData(reportService.grainData2GatewayApiInfoKafka(grainData,reqData.getDevice()).getData());
+        reportService.reportGrainDataByKafka(reqData);
     }
 }
diff --git a/src/main/java/com/fzzy/protocol/youxian0/analysis/AnalysisService.java b/src/main/java/com/fzzy/protocol/youxian0/analysis/AnalysisService.java
index 0f3d8ce..4eae202 100644
--- a/src/main/java/com/fzzy/protocol/youxian0/analysis/AnalysisService.java
+++ b/src/main/java/com/fzzy/protocol/youxian0/analysis/AnalysisService.java
@@ -338,18 +338,19 @@
 
         reqData.setData(JSONObject.toJSONString(grain));
 
-        doPushGrain(reqData);
+        doPushGrain(reqData,grain);
     }
 
-    private void doPushGrain(BaseReqData reqData) {
+    private void doPushGrain(BaseReqData reqData,GrainData grainData) {
 
         GatewayDeviceReportService reportService = gatewayRemoteManager.getDeviceReportService(reqData.getDevice().getPushProtocol());
         if (null == reportService) {
             log.error("------------绮儏鎺ㄩ�佸け璐ワ紝绯荤粺涓嶅瓨鍦ㄥ綋鍓嶅崗璁墽琛岀被----{}", reqData.getDevice().getDeviceName());
             return;
         }
-
         reportService.reportGrainData(reqData);
+        reqData.setData(reportService.grainData2GatewayApiInfoKafka(grainData,reqData.getDevice()).getData());
+        reportService.reportGrainDataByKafka(reqData);
     }
 
     private synchronized  void add2GrainMap(GrainRoot grainRoot) {
diff --git a/src/main/java/com/fzzy/protocol/youxian1/analysis/AnalysisService.java b/src/main/java/com/fzzy/protocol/youxian1/analysis/AnalysisService.java
index eecfd5a..74b4179 100644
--- a/src/main/java/com/fzzy/protocol/youxian1/analysis/AnalysisService.java
+++ b/src/main/java/com/fzzy/protocol/youxian1/analysis/AnalysisService.java
@@ -295,19 +295,20 @@
 
         reqData.setData(JSONObject.toJSONString(grain));
 
-        doPushGrain(reqData);
+        doPushGrain(reqData,grain);
     }
 
 
-    private void doPushGrain(BaseReqData reqData) {
+    private void doPushGrain(BaseReqData reqData,GrainData grainData) {
 
         GatewayDeviceReportService reportService = gatewayRemoteManager.getDeviceReportService(reqData.getDevice().getPushProtocol());
         if (null == reportService) {
             log.error("------------绮儏鎺ㄩ�佸け璐ワ紝绯荤粺涓嶅瓨鍦ㄥ綋鍓嶅崗璁墽琛岀被----{}", reqData.getDevice().getDeviceName());
             return;
         }
-
         reportService.reportGrainData(reqData);
+        reqData.setData(reportService.grainData2GatewayApiInfoKafka(grainData,reqData.getDevice()).getData());
+        reportService.reportGrainDataByKafka(reqData);
     }
 
 
diff --git a/src/main/java/com/fzzy/protocol/zldz/analysis/AnalysisGrain.java b/src/main/java/com/fzzy/protocol/zldz/analysis/AnalysisGrain.java
index a497bde..0ac790d 100644
--- a/src/main/java/com/fzzy/protocol/zldz/analysis/AnalysisGrain.java
+++ b/src/main/java/com/fzzy/protocol/zldz/analysis/AnalysisGrain.java
@@ -482,10 +482,10 @@
 
         reqData.setData(JSONObject.toJSONString(grain));
 
-        doPushGrain(reqData);
+        doPushGrain(reqData,grain);
     }
 
-    private void doPushGrain(BaseReqData reqData) {
+    private void doPushGrain(BaseReqData reqData,GrainData grainData) {
 
         GatewayDeviceReportService reportService = gatewayRemoteManager.getDeviceReportService(reqData.getDevice().getPushProtocol());
         if (null == reportService) {
@@ -493,6 +493,8 @@
             return;
         }
         reportService.reportGrainData(reqData);
+        reqData.setData(reportService.grainData2GatewayApiInfoKafka(grainData,reqData.getDevice()).getData());
+        reportService.reportGrainDataByKafka(reqData);
     }
 
 

--
Gitblit v1.9.3