From efec12bd4827ddefd9b19ccc0eee3ca1c62908f3 Mon Sep 17 00:00:00 2001
From: jiazx0107@163.com <jiazx0107@163.com>
Date: 星期五, 12 一月 2024 19:09:01 +0800
Subject: [PATCH] 添加手动推送粮情接口,以便第三方接口调用

---
 src/main/resources/application-devGateway.yml                                 |    1 
 src/main/java/com/fzzy/gateway/api/GatewayDeviceReportService.java            |   14 
 src/main/java/com/fzzy/gateway/controller/GatewayDataApi.java                 |  380 ++------------------------
 src/main/java/com/fzzy/gateway/controller/GatewayDeviceController.java        |    4 
 src/main/java/com/fzzy/gateway/hx2023/service/HxGatewayRemoteServiceImpl.java |   26 +
 src/main/java/com/fzzy/Application.java                                       |    3 
 src/main/java/com/fzzy/gateway/GatewayUtils.java                              |   14 +
 src/main/java/com/fzzy/gateway/api/GatewayRemoteService.java                  |    5 
 src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java    |  122 ++++++++
 src/main/java/com/fzzy/gateway/data/BaseResp.java                             |    9 
 src/main/java/com/fzzy/gateway/hx2023/service/ScGatewayTestServiceImpl.java   |  219 +++++++--------
 11 files changed, 323 insertions(+), 474 deletions(-)

diff --git a/src/main/java/com/fzzy/Application.java b/src/main/java/com/fzzy/Application.java
index c691174..036d58f 100644
--- a/src/main/java/com/fzzy/Application.java
+++ b/src/main/java/com/fzzy/Application.java
@@ -53,6 +53,9 @@
     }
 
     public static void main(String[] args) throws Exception {
+
+        System.out.println("----------------Application-----------------------");
+
         System.setProperty("doradoHome", "classpath:dorado-home/");
 
         SpringApplication app = new SpringApplication(Application.class);
diff --git a/src/main/java/com/fzzy/gateway/GatewayUtils.java b/src/main/java/com/fzzy/gateway/GatewayUtils.java
index 4414d4b..7e4df85 100644
--- a/src/main/java/com/fzzy/gateway/GatewayUtils.java
+++ b/src/main/java/com/fzzy/gateway/GatewayUtils.java
@@ -58,6 +58,7 @@
 
         return null;
     }
+
     public static GatewayDevice getCacheByDeviceSIp(String ip) {
         Collection<GatewayDevice> list = allCacheDevice();
         if (null == list || list.isEmpty()) return null;
@@ -124,4 +125,17 @@
     public static Collection<GatewayDevice> listDeviceWeight() {
         return cacheMapDeviceWeight.values();
     }
+
+    public static GatewayDevice getCacheByDepotSysId(String depotSysId) {
+
+        if (null == depotSysId) return null;
+        Collection<GatewayDevice> list = allCacheDevice();
+        if (null == list || list.isEmpty()) return null;
+
+        for (GatewayDevice device : list) {
+            if (null == device.getDepotIdSys()) continue;
+            if (depotSysId.equals(device.getDepotIdSys())) return device;
+        }
+        return null;
+    }
 }
diff --git a/src/main/java/com/fzzy/gateway/api/GatewayDeviceReportService.java b/src/main/java/com/fzzy/gateway/api/GatewayDeviceReportService.java
index 477db5f..68c1303 100644
--- a/src/main/java/com/fzzy/gateway/api/GatewayDeviceReportService.java
+++ b/src/main/java/com/fzzy/gateway/api/GatewayDeviceReportService.java
@@ -1,5 +1,6 @@
 package com.fzzy.gateway.api;
 
+import com.fzzy.async.fzzy40.entity.Fz40Grain;
 import com.fzzy.gateway.data.BaseReqData;
 import com.fzzy.gateway.data.BaseResp;
 import com.fzzy.gateway.entity.GatewayDevice;
@@ -29,5 +30,16 @@
 
     BaseResp reportLprData(BaseReqData reqData);
 
-    BaseResp reportGrainDataByKafka(BaseReqData reqData);
+    BaseResp reportGrainDataByHand(BaseReqData reqData);
+
+
+    /**
+     * 绮儏涓氬姟鏁版嵁杞崲涓猴紝褰撳墠缃戝叧闇�瑕佺殑鎶ユ枃
+     *
+     * @param grainData     绗笁涓蒋浠剁伯鎯呮暟鎹姤鏂�
+     * @param gatewayDevice 缃戝叧涓澶囬厤缃俊鎭�
+     * @return
+     */
+    BaseResp grainData2GatewayApiInfo(Fz40Grain grainData, GatewayDevice gatewayDevice);
+
 }
diff --git a/src/main/java/com/fzzy/gateway/api/GatewayRemoteService.java b/src/main/java/com/fzzy/gateway/api/GatewayRemoteService.java
index 9664524..7e52310 100644
--- a/src/main/java/com/fzzy/gateway/api/GatewayRemoteService.java
+++ b/src/main/java/com/fzzy/gateway/api/GatewayRemoteService.java
@@ -15,12 +15,14 @@
 
     /**
      * 缃戝叧璁惧鍒濆鍖�
+     *
      * @param gatewayConf
      */
     void init(GatewayConf gatewayConf);
 
     /**
      * 缃戝叧璁惧蹇冭烦缁存寔
+     *
      * @param gatewayConf
      */
     void heartbeat(GatewayConf gatewayConf);
@@ -28,6 +30,7 @@
 
     /**
      * 缃戝叧璁惧淇℃伅涓婃姤
+     *
      * @param gatewayConf
      */
     void pushInfo(GatewayConf gatewayConf);
@@ -35,7 +38,9 @@
 
     /**
      * 鑾峰彇褰撳墠缃戝叧涓嬬殑璁惧鍒楄〃锛屽苟涓婃姤璁惧鐘舵��
+     *
      * @param gatewayConf
      */
     void pushDeviceStatus(GatewayConf gatewayConf);
+
 }
diff --git a/src/main/java/com/fzzy/gateway/controller/GatewayDataApi.java b/src/main/java/com/fzzy/gateway/controller/GatewayDataApi.java
index 06ec61d..c4f54fc 100644
--- a/src/main/java/com/fzzy/gateway/controller/GatewayDataApi.java
+++ b/src/main/java/com/fzzy/gateway/controller/GatewayDataApi.java
@@ -1,17 +1,13 @@
 package com.fzzy.gateway.controller;
 
-import com.fzzy.api.data.GatewayDeviceProtocol;
-import com.fzzy.api.data.GatewayDeviceType;
+import com.fzzy.async.fzzy40.entity.Fz40Grain;
 import com.fzzy.gateway.GatewayUtils;
+import com.fzzy.gateway.api.GatewayDeviceReportService;
 import com.fzzy.gateway.api.GatewayRemoteManager;
-import com.fzzy.gateway.api.GatewaySyncLprService;
 import com.fzzy.gateway.data.BaseReqData;
 import com.fzzy.gateway.data.BaseResp;
-import com.fzzy.gateway.entity.GateWayParam;
 import com.fzzy.gateway.entity.GatewayDevice;
-import com.fzzy.gateway.service.GatewayDeviceService;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -19,8 +15,6 @@
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.annotation.Resource;
-import java.util.List;
-import java.util.stream.Collectors;
 
 
 /**
@@ -32,366 +26,54 @@
 public class GatewayDataApi {
 
     @Resource
-    private GatewayDeviceService gatewayDeviceService;
-
-    @Resource
     private GatewayRemoteManager gatewayRemoteManager;
 
 
     /**
-     * 娴嬭瘯鍏ュ彛
+     * 绮儏鏁版嵁鎺ㄩ�侊紝绗笁鏂硅蒋浠跺钩鍙版帹閫佺伯鎯呮暟鎹埌缃戝叧
      *
-     * @param param
+     * @param grainData
      * @return
+     * @throws Exception
      */
-    @PostMapping("/test/deviceTest")
-    public @ResponseBody
-    String deviceTest(@RequestBody GateWayParam param) throws Exception {
+    @PostMapping("/push-grain")
+    public @ResponseBody BaseResp pushGrain(@RequestBody Fz40Grain grainData) throws Exception {
 
-        if (StringUtils.isEmpty(param.getBizType())) {
-            return "ERROR:娌℃湁鑾峰彇鍒颁笟鍔$被鍨嬶紝鎵ц澶辫触";
+        BaseResp resp = new BaseResp();
+
+        //鏍规嵁绯荤粺浠撳簱缂栫爜鑾峰彇閰嶇疆璁惧淇℃伅
+        GatewayDevice device = GatewayUtils.getCacheByDepotSysId(grainData.getDepotId());
+
+        if (null == device) {
+            resp.setMsg("缃戝叧涓病鏈夎幏鍙栧埌閰嶇疆鐨勭粓绔澶囦俊鎭�,鏃犳硶鎵ц銆備粨搴撶紪鐮�=" + grainData.getDepotId());
+            resp.setCode(BaseResp.CODE_500);
+            return resp;
         }
 
-        if ("testGrain".equals(param.getBizType())) {
-            return testGrain(param);
+        //鏁版嵁灏佽杞崲
+        GatewayDeviceReportService reportService = gatewayRemoteManager.getDeviceReportService(device.getPushProtocol());
+        if (null == reportService) {
+            log.error("------------绮儏鎺ㄩ�佸け璐ワ紝绯荤粺涓嶅瓨鍦ㄥ綋鍓嶅崗璁墽琛岀被----{}", device.getDeviceName());
+            resp.setMsg("绮儏鎺ㄩ�佸け璐ワ紝绯荤粺涓嶅瓨鍦ㄥ綋鍓嶅崗璁墽琛岀被锛岀綉鍏宠澶�=" + device.getDeviceName());
+            resp.setCode(BaseResp.CODE_500);
+            return resp;
         }
 
-        if ("ajaxTestKafkaGrain".equals(param.getBizType())) {
-            return ajaxTestKafkaGrain(param);
-        }
-
-        if ("ajaxTestWeight".equals(param.getBizType())) {
-            return ajaxTestWeight(param);
-        }
-
-        if ("ajaxTestLpr".equals(param.getBizType())) {
-            return ajaxTestLpr(param);
-        }
-
-        return "SUCCESS";
-    }
-
-
-    /**
-     * 涓嬭鍒嗘満娴嬭瘯鍏ュ彛
-     *
-     * @param param
-     * @return
-     */
-    @PostMapping("/test/IDE")
-    public @ResponseBody
-    String testIDE(@RequestBody GateWayParam param) throws Exception {
-
-        if (StringUtils.isEmpty(param.getBizType())) {
-            return "ERROR:娌℃湁鑾峰彇鍒颁笟鍔$被鍨嬶紝鎵ц澶辫触";
-        }
-
-        //鑾峰彇鍒嗘満閰嶇疆
-        if ("syncConf".equals(param.getBizType())) {
-            return syncConf(param);
-        }
-
-        if ("writeConf".equals(param.getBizType())) {
-            return writeConf(param);
-        }
-
-        if ("initParam".equals(param.getBizType())) {
-            return initCable(param);
-        }
-
-        if ("disconnect".equals(param.getBizType())) {
-            return disconnect(param);
-        }
-
-        if ("transparent".equals(param.getBizType())) {
-            return transparent(param);
-        }
-
-        return "SUCCESS";
-    }
-
-
-    private String transparent(GateWayParam param) {
-
-        String deviceId = param.getDeviceId();
-
-        GatewayDevice device = GatewayUtils.getCacheByDeviceId(deviceId);
+        //鏁版嵁灏佽
+        resp = reportService.grainData2GatewayApiInfo(grainData, device);
 
         BaseReqData reqData = new BaseReqData();
-        reqData.setDeviceId(device.getDeviceId());
         reqData.setProductId(device.getProductId());
         reqData.setDeviceName(device.getDeviceName());
-        reqData.setDevice(device);
-        reqData.setAutoReplay(false);
-
-        BaseResp resp = gatewayRemoteManager.getSyncGrainService(device.getSyncProtocol()).transparent(reqData);
-        if (BaseResp.CODE_200 != resp.getCode()) {
-            return "ERROR锛�" + resp.getMsg();
-        }
-        return "SUCCESS";
-    }
-
-    private String disconnect(GateWayParam param) {
-        String deviceId = param.getDeviceId();
-
-        GatewayDevice device = GatewayUtils.getCacheByDeviceId(deviceId);
-
-        BaseReqData reqData = new BaseReqData();
         reqData.setDeviceId(device.getDeviceId());
-        reqData.setProductId(device.getProductId());
-        reqData.setDeviceName(device.getDeviceName());
+
         reqData.setDevice(device);
-        reqData.setAutoReplay(false);
 
-        BaseResp resp = gatewayRemoteManager.getSyncGrainService(device.getSyncProtocol()).disconnect(reqData);
-        if (BaseResp.CODE_200 != resp.getCode()) {
-            return "ERROR锛�" + resp.getMsg();
-        }
-        return "SUCCESS";
+        //鎵嬪姩鎺ㄩ�佸埌骞冲彴
+        resp = reportService.reportGrainDataByHand(reqData);
+
+
+        return resp;
     }
 
-    private String initCable(GateWayParam param) {
-        String deviceId = param.getDeviceId();
-
-        GatewayDevice device = GatewayUtils.getCacheByDeviceId(deviceId);
-
-        BaseReqData reqData = new BaseReqData();
-        reqData.setDeviceId(device.getDeviceId());
-        reqData.setProductId(device.getProductId());
-        reqData.setDeviceName(device.getDeviceName());
-        reqData.setDevice(device);
-        reqData.setAutoReplay(false);
-
-        BaseResp resp = gatewayRemoteManager.getSyncGrainService(device.getSyncProtocol()).initCable(reqData);
-        if (BaseResp.CODE_200 != resp.getCode()) {
-            return "ERROR锛�" + resp.getMsg();
-        }
-        return "SUCCESS";
-    }
-
-    private String syncConf(GateWayParam param) {
-
-        String deviceId = param.getDeviceId();
-
-        GatewayDevice device = GatewayUtils.getCacheByDeviceId(deviceId);
-
-        BaseReqData reqData = new BaseReqData();
-        reqData.setDeviceId(device.getDeviceId());
-        reqData.setProductId(device.getProductId());
-        reqData.setDeviceName(device.getDeviceName());
-        reqData.setDevice(device);
-        reqData.setAutoReplay(false);
-
-        BaseResp resp = gatewayRemoteManager.getSyncGrainService(device.getSyncProtocol()).syncConf(reqData);
-        if (BaseResp.CODE_200 != resp.getCode()) {
-            return "ERROR锛�" + resp.getMsg();
-        }
-        return "SUCCESS";
-    }
-
-    private String writeConf(GateWayParam param) {
-        String deviceId = param.getDeviceId();
-
-        GatewayDevice device = GatewayUtils.getCacheByDeviceId(deviceId);
-
-        BaseReqData reqData = new BaseReqData();
-        reqData.setDeviceId(device.getDeviceId());
-        reqData.setProductId(device.getProductId());
-        reqData.setDeviceName(device.getDeviceName());
-        reqData.setDevice(device);
-        reqData.setAutoReplay(false);
-
-        BaseResp resp = gatewayRemoteManager.getSyncGrainService(device.getSyncProtocol()).writeConf(reqData);
-        if (BaseResp.CODE_200 != resp.getCode()) {
-            return "ERROR锛�" + resp.getMsg();
-        }
-        return "SUCCESS";
-    }
-
-    /**
-     * 鍒濆鍖栬溅鐗岃瘑鍒�
-     *
-     * @param param
-     * @return
-     */
-    @PostMapping("/control/init-lpr")
-    public @ResponseBody
-    String initLpr(@RequestBody GateWayParam param) throws Exception {
-
-        List<GatewayDevice> list = gatewayDeviceService.listAll();
-
-        if (null == list || list.isEmpty()) {
-            return "ERROR:娌℃湁鑾峰彇鍒拌澶囦俊鎭�";
-        }
-
-        BaseReqData reqData;
-        int i = 0;
-        GatewaySyncLprService syncLprService;
-        for (GatewayDevice device : list) {
-
-            if (!GatewayDeviceType.TYPE_02.getCode().equals(device.getType())) {
-                continue;
-            }
-            reqData = new BaseReqData(device);
-            reqData.setIndex(i);
-            syncLprService = gatewayRemoteManager.getSyncLprService(device.getSyncProtocol());
-            if (null == syncLprService) continue;
-            syncLprService.initLpr(reqData);
-            i++;
-        }
-
-        return "SUCCESS";
-    }
-
-    private String testGrain(GateWayParam param) {
-        String deviceId = param.getDeviceId();
-
-        GatewayDevice device = GatewayUtils.getCacheByDeviceId(deviceId);
-
-        BaseReqData reqData = new BaseReqData();
-        reqData.setDeviceId(device.getDeviceId());
-        reqData.setProductId(device.getProductId());
-        reqData.setDeviceName(device.getDeviceName());
-        reqData.setDevice(device);
-        reqData.setAutoReplay(true);
-
-        if (!GatewayDeviceType.TYPE_07.getCode().equals(device.getType())) {
-            return "ERROR锛氬綋鍓嶈澶囬潪绮儏璁惧涓嶆敮鎸佸綋鍓嶆搷浣�";
-        }
-
-        if (StringUtils.isEmpty(device.getCableRule())) {
-            return "ERROR锛氬綋鍓嶈澶囨病鏈夐厤缃竷绾胯鍒欙紝鏃犳硶鎵ц";
-        }
-
-        BaseResp resp;
-        if (GatewayDeviceProtocol.DEVICE_TEST.getCode().equals(device.getSyncProtocol())) {
-            resp = gatewayRemoteManager.getGatewayTestService(device.getPushProtocol()).testGrain(reqData);
-        } else {
-            reqData.setAutoReplay(false);
-            resp = gatewayRemoteManager.getSyncGrainService(device.getSyncProtocol()).syncGrain(reqData);
-        }
-
-        //鑷姩鎺ㄩ��
-        if (BaseResp.CODE_200 == resp.getCode() && reqData.isAutoReplay()) {
-            reqData.setData(resp.getData());
-            gatewayRemoteManager.getDeviceReportService(device.getPushProtocol()).reportGrainData(reqData);
-        }
-
-        return "SUCCESS";
-    }
-
-
-    /**
-     * 绮儏鎺ㄩ�佹祴璇昁AFKA鏂瑰紡
-     *
-     * @param param
-     * @return
-     */
-    public String ajaxTestKafkaGrain(GateWayParam param) throws Exception {
-        List<GatewayDevice> list = gatewayDeviceService.listAll();
-        if (null == list || list.isEmpty()) {
-            return "ERROR锛氫负鑾峰彇鍒扮郴缁熶腑璁惧閰嶇疆锛屽彇娑堟墽琛�";
-        }
-
-        BaseReqData reqData;
-        BaseResp resp;
-        for (GatewayDevice device : list) {
-            reqData = new BaseReqData();
-            reqData.setDeviceId(param.getDeviceId());
-            reqData.setDayTime(param.getDayTime());
-            reqData.setDevice(device);
-
-            resp = gatewayRemoteManager.getGatewayTestService(device.getPushProtocol()).testGrainKafka(reqData);
-
-            //鑷姩鎺ㄩ��
-            if (BaseResp.CODE_200 == resp.getCode()) {
-                reqData.setData(resp.getData());
-                gatewayRemoteManager.getDeviceReportService(device.getPushProtocol()).reportGrainDataByKafka(reqData);
-            }
-        }
-
-        return "SUCCESS";
-    }
-
-    /**
-     * 鍦扮鎺ㄩ�佹祴璇�
-     *
-     * @param param
-     * @return
-     */
-    public String ajaxTestWeight(GateWayParam param) throws Exception {
-
-        double weight = param.getWeight();
-
-        List<GatewayDevice> list = gatewayDeviceService.listAll();
-        if (list == null || list.size() <= 0) {
-            return "ERROR锛氭病鏈夐厤缃澶囦俊鎭紝鎵ц澶辫触";
-        }
-
-        List<GatewayDevice> weights = list.stream().filter(s -> (GatewayDeviceType.TYPE_01.getCode().equals(s.getType()))).collect(Collectors.toList());
-        if (weights == null || weights.size() <= 0) {
-            return "ERROR锛欵RROR锛氭病鏈夐厤缃澶囦俊鎭紝鎵ц澶辫触";
-        }
-
-        BaseReqData reqData;
-        BaseResp resp;
-        for (GatewayDevice device : weights) {
-            reqData = new BaseReqData();
-            reqData.setDeviceId(device.getDeviceId());
-            reqData.setProductId(device.getProductId());
-            reqData.setDeviceName(device.getDeviceName());
-            reqData.setDevice(device);
-            reqData.setAutoReplay(true);
-            reqData.setWeight(weight);
-            resp = gatewayRemoteManager.getGatewayTestService(device.getPushProtocol()).testWeight(reqData);
-
-            //鑷姩鎺ㄩ��
-            if (BaseResp.CODE_200 == resp.getCode() && reqData.isAutoReplay()) {
-                reqData.setData(resp.getData());
-                gatewayRemoteManager.getDeviceReportService(device.getPushProtocol()).reportWeightData(reqData);
-            }
-        }
-        return "SUCCESS";
-    }
-
-    /**
-     * 鍦扮鎺ㄩ�佹祴璇�
-     *
-     * @return
-     */
-    public String ajaxTestLpr(GateWayParam param) throws Exception {
-
-        String carNumber = param.getCarNumber();
-
-        List<GatewayDevice> list = gatewayDeviceService.listAll();
-        if (list == null || list.size() <= 0) {
-            log.error("ERROR锛氭病鏈夐厤缃澶囦俊鎭紝鎵ц澶辫触");
-            return "ERROR锛氭病鏈夐厤缃澶囦俊鎭紝鎵ц澶辫触";
-        }
-        List<GatewayDevice> weights = list.stream().filter(s -> (GatewayDeviceType.TYPE_02.getCode().equals(s.getType()))).collect(Collectors.toList());
-        if (weights == null || weights.size() <= 0) {
-            log.error("ERROR锛氭病鏈夐厤缃澶囦俊鎭紝鎵ц澶辫触");
-            return "ERROR锛氭病鏈夐厤缃澶囦俊鎭紝鎵ц澶辫触";
-        }
-
-        BaseReqData reqData;
-        BaseResp resp;
-        for (GatewayDevice device : weights) {
-            reqData = new BaseReqData();
-            reqData.setDeviceId(device.getDeviceId());
-            reqData.setProductId(device.getProductId());
-            reqData.setDeviceName(device.getDeviceName());
-            reqData.setDevice(device);
-            reqData.setAutoReplay(true);
-            reqData.setCarNumber(carNumber);
-            resp = gatewayRemoteManager.getGatewayTestService(device.getPushProtocol()).testLpr(reqData);
-
-            //鑷姩鎺ㄩ��
-            if (BaseResp.CODE_200 == resp.getCode() && reqData.isAutoReplay()) {
-                reqData.setData(resp.getData());
-                gatewayRemoteManager.getDeviceReportService(device.getPushProtocol()).reportLprData(reqData);
-            }
-        }
-        return "SUCCESS";
-    }
 }
diff --git a/src/main/java/com/fzzy/gateway/controller/GatewayDeviceController.java b/src/main/java/com/fzzy/gateway/controller/GatewayDeviceController.java
index 14f9580..8b6907e 100644
--- a/src/main/java/com/fzzy/gateway/controller/GatewayDeviceController.java
+++ b/src/main/java/com/fzzy/gateway/controller/GatewayDeviceController.java
@@ -303,16 +303,18 @@
             }
             reqData = new BaseReqData();
             reqData.setProductId(device.getProductId());
+            reqData.setDeviceName(device.getDeviceName());
             reqData.setDeviceId(param.getDeviceId());
             reqData.setDayTime(param.getDayTime());
             reqData.setDevice(device);
 
+            //鑾峰彇鍒�
             resp = gatewayRemoteManager.getGatewayTestService(device.getPushProtocol()).testGrainKafka(reqData);
 
             //鑷姩鎺ㄩ��
             if (BaseResp.CODE_200 == resp.getCode()) {
                 reqData.setData(resp.getData());
-                gatewayRemoteManager.getDeviceReportService(device.getPushProtocol()).reportGrainDataByKafka(reqData);
+                gatewayRemoteManager.getDeviceReportService(device.getPushProtocol()).reportGrainDataByHand(reqData);
             }
         }
 
diff --git a/src/main/java/com/fzzy/gateway/data/BaseResp.java b/src/main/java/com/fzzy/gateway/data/BaseResp.java
index b9b15e2..02ef7f2 100644
--- a/src/main/java/com/fzzy/gateway/data/BaseResp.java
+++ b/src/main/java/com/fzzy/gateway/data/BaseResp.java
@@ -6,13 +6,18 @@
 public class BaseResp {
 
     public static int CODE_200 = 200;
-    public static int CODE_50 = 500;
+    public static int CODE_500 = 500;
 
     private int code = CODE_200;
 
     private String msg = "鎴愬姛";
 
     private String data;
+
+    /**
+     * 灏佽闇�瑕佺殑鏁版嵁
+     */
+    private Object obj;
 
 
     public BaseResp() {
@@ -22,7 +27,7 @@
         this.data = data;
     }
 
-    public BaseResp(int code,String msg) {
+    public BaseResp(int code, String msg) {
         this.msg = msg;
         this.code = code;
     }
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 84afea1..b21e3ff 100644
--- a/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
+++ b/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java
@@ -2,24 +2,25 @@
 
 import com.alibaba.fastjson2.JSONObject;
 import com.fzzy.api.data.PushProtocol;
+import com.fzzy.async.fzzy40.entity.Fz40Grain;
 import com.fzzy.data.ConfigData;
 import com.fzzy.gateway.api.GatewayDeviceReportService;
 import com.fzzy.gateway.data.BaseReqData;
 import com.fzzy.gateway.data.BaseResp;
 import com.fzzy.gateway.entity.GatewayDevice;
 import com.fzzy.gateway.hx2023.ScConstant;
-import com.fzzy.gateway.hx2023.data.LprData;
-import com.fzzy.gateway.hx2023.data.WebSocketPacket;
-import com.fzzy.gateway.hx2023.data.WebSocketPacketHeader;
-import com.fzzy.gateway.hx2023.data.WeightInfo;
+import com.fzzy.gateway.hx2023.data.*;
 import com.fzzy.gateway.hx2023.kafka.KafkaDeviceReportService;
 import com.fzzy.mqtt.MqttGatewayService;
 import jdk.nashorn.internal.runtime.regexp.joni.Config;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.time.DateFormatUtils;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
 
 @Slf4j
 @Component
@@ -144,7 +145,7 @@
     }
 
     @Override
-    public BaseResp reportGrainDataByKafka(BaseReqData reqData) {
+    public BaseResp reportGrainDataByHand(BaseReqData reqData) {
         String topic = ScConstant.TOPIC_ZLJ_GRAIN_TEMPERATURE;
 
         //濡傛灉鏄祴璇曟ā寮忎笉鎵ц鎺ㄩ��
@@ -160,4 +161,115 @@
         kafkaDeviceReportService.publishWithTopic(reqData.getData(), topic);
         return new BaseResp();
     }
+
+    @Override
+    public BaseResp grainData2GatewayApiInfo(Fz40Grain grainData, GatewayDevice device) {
+
+        BaseResp resp = new BaseResp();
+
+        KafaGrainData result = new KafaGrainData();
+
+        result.setMessageId(ScConstant.getMessageId());
+        result.setMessgeId(result.getMessageId());
+        result.setDeviceID(device.getDeviceId());
+        result.setAvgTemperature(grainData.getTempAve() + "");
+        result.setMinTemperature(grainData.getTempMin() + "");
+        result.setMaxTemperature(grainData.getTempMax() + "");
+        result.setCollectTime(DateFormatUtils.format(grainData.getReceiveDate(), "yyyy-MM-dd HH:mm:ss"));
+
+        //灞�-琛�-鍒�
+        String[] attrCable = grainData.getCable().split("-");
+        if (StringUtils.isNotEmpty(grainData.getCableCir())) {
+            return grainData2GatewayApiInfo2(grainData, device);
+        }
+
+        //灞傝鍒�
+        int cableZ = Integer.valueOf(attrCable[0]);
+        int cableY = Integer.valueOf(attrCable[1]);
+        int cableX = Integer.valueOf(attrCable[2]);
+
+        //娓╁害闆嗗悎
+        String[] attr = grainData.getPoints().split(",");
+
+        //鏍瑰彿
+        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.length; 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[i];
+
+
+            //濡傛灉鏄紓甯稿��,鎵ц璋冩暣鏁版嵁 TODO
+            if (Double.valueOf(curTemp) < -99.9) {
+
+                curTemp = grainData.getTempAve() + "";
+
+            } 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();
+        grainTH.setHumidity(grainData.getHumidityIn() + "");
+        grainTH.setTemperature(grainData.getTempIn() + "");
+        grainTH.setAirHumidity(grainData.getHumidityOut() + "");
+        grainTH.setAirTemperature(grainData.getTempOut() + "");
+
+        List<KafkaGrainTH> temperatureAndhumidity = new ArrayList<>();
+        temperatureAndhumidity.add(grainTH);
+
+        trhInfo.put("temperatureAndhumidity", temperatureAndhumidity);
+        //trhInfo.put("temperatureAndhumidity",grainTH);
+
+        JSONObject params = new JSONObject();
+        params.put("TRHInfo", trhInfo);
+
+        result.setParams(params);
+
+
+        //resp.setObj(result);
+
+        resp.setData(JSONObject.toJSONString(result));
+
+        return resp;
+    }
+
+    private BaseResp grainData2GatewayApiInfo2(Fz40Grain grainData, GatewayDevice device) {
+        BaseResp resp = new BaseResp();
+        resp.setCode(BaseResp.CODE_500);
+        resp.setMsg("绛掍粨瑙f瀽鏆傛湭瀹炵幇");
+        return resp;
+    }
+
 }
diff --git a/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewayRemoteServiceImpl.java b/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewayRemoteServiceImpl.java
index fd081d6..c85f7c6 100644
--- a/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewayRemoteServiceImpl.java
+++ b/src/main/java/com/fzzy/gateway/hx2023/service/HxGatewayRemoteServiceImpl.java
@@ -6,6 +6,7 @@
 import com.fzzy.api.data.PushProtocol;
 import com.fzzy.api.utils.ContextUtil;
 import com.fzzy.api.view.repository.ApiLogRep;
+import com.fzzy.data.ConfigData;
 import com.fzzy.gateway.GatewayUtils;
 import com.fzzy.gateway.api.GatewayRemoteService;
 import com.fzzy.gateway.data.BaseResp;
@@ -47,6 +48,8 @@
     private GatewayConfService gatewayConfService;
     @Resource
     private KafkaDeviceReportService kafkaDeviceReportService;
+    @Resource
+    private ConfigData configData;
 
 
     @Override
@@ -135,8 +138,18 @@
 
             String messageInfo = JSONObject.toJSONString(heartBeatData);
 
-            kafkaDeviceReportService.publishWithTopic(messageInfo, topic);
+            //濡傛灉鏄祴璇曟ā寮忎笉鎵ц鎺ㄩ��
+            if (configData.getActive().indexOf("dev") >= 0) {
 
+                log.info("----------------------------鎺ㄩ�並AFKA淇℃伅锛屾敞锛氳皟璇曟ā寮忎笉鎺ㄩ��---------------------------");
+                log.info("-----TOPIC-----{}", topic);
+                log.info("-----Message-----{}", messageInfo);
+
+                return;
+            }
+
+
+            kafkaDeviceReportService.publishWithTopic(messageInfo, topic);
 
         } catch (Exception e) {
             log.error("------缃戝叧蹇冭烦鎺ュ彛--鎵ц澶辫触-----{}", e);
@@ -188,6 +201,17 @@
             }
 
             messageInfo = JSONObject.toJSONString(statusData);
+
+            //濡傛灉鏄祴璇曟ā寮忎笉鎵ц鎺ㄩ��
+            if (configData.getActive().indexOf("dev") >= 0) {
+
+                log.info("----------------------------鎺ㄩ�並AFKA淇℃伅锛屾敞锛氳皟璇曟ā寮忎笉鎺ㄩ��---------------------------");
+                log.info("-----TOPIC-----{}", topic);
+                log.info("-----Message-----{}", messageInfo);
+
+                return;
+            }
+
             //鎺ㄩ�佽澶囩姸鎬�
             kafkaDeviceReportService.publishWithTopic(messageInfo, topic);
 
diff --git a/src/main/java/com/fzzy/gateway/hx2023/service/ScGatewayTestServiceImpl.java b/src/main/java/com/fzzy/gateway/hx2023/service/ScGatewayTestServiceImpl.java
index 2b1a156..b2bbc4b 100644
--- a/src/main/java/com/fzzy/gateway/hx2023/service/ScGatewayTestServiceImpl.java
+++ b/src/main/java/com/fzzy/gateway/hx2023/service/ScGatewayTestServiceImpl.java
@@ -31,6 +31,9 @@
     @Resource
     private Fzzy40CommonService fzzy40CommonService;
 
+    @Resource
+    private DeviceReportServiceImpl deviceReportService;
+
     @Override
     public String getProtocol() {
         return PushProtocol.GATEWAY_SC_2023.getCode();
@@ -66,133 +69,121 @@
 
         if (StringUtils.isEmpty(depotIdSys)) {
             log.error("--------璁惧--{}-鏈厤缃郴缁熺浉鍏充粨搴撶紪鐮侊紝鏃犳硶鎵ц褰撳墠鎿嶄綔", device.getDeviceName());
-            return new BaseResp(BaseResp.CODE_50, "鏈厤缃郴缁熺浉鍏充粨搴撶紪鐮侊紝鏃犳硶鎵ц褰撳墠鎿嶄綔");
+            return new BaseResp(BaseResp.CODE_500, "鏈厤缃郴缁熺浉鍏充粨搴撶紪鐮侊紝鏃犳硶鎵ц褰撳墠鎿嶄綔");
         }
 
         List<Fz40Grain> listGrain = fzzy40CommonService.listGrain(depotIdSys, start, end);
         if (null == listGrain || listGrain.isEmpty()) {
             log.error("---------璁惧-{}-绯荤粺浠撳簱缂栫爜-{}-鏈悓姝ュ埌绮儏淇℃伅锛岃纭褰撳墠鏉′欢涓嬫槸鍚︽湁鏁版嵁", device.getDeviceName(), device.getDepotIdSys());
-            return new BaseResp(BaseResp.CODE_50, "鏈悓姝ュ埌绮儏淇℃伅锛岃纭褰撳墠鏉′欢涓嬫槸鍚︽湁鏁版嵁");
+            return new BaseResp(BaseResp.CODE_500, "鏈悓姝ュ埌绮儏淇℃伅锛岃纭褰撳墠鏉′欢涓嬫槸鍚︽湁鏁版嵁");
         }
 
         //鑾峰彇绗竴鏉℃暟鎹墽琛屾帹閫�
         Fz40Grain lastData = listGrain.get(0);
-        KafaGrainData pushData = this.lastData2PushData(lastData, device);
 
-        return new BaseResp(JSONObject.toJSONString(pushData));
+        return deviceReportService.grainData2GatewayApiInfo(lastData,device);
     }
 
-    /**
-     * 灏嗙伯鎯呮暟鎹浆鎹负鎺ㄩ�侀渶瑕佺殑鏁版嵁鏍煎紡
-     *
-     * @param grainData
-     * @return
-     */
-    private KafaGrainData lastData2PushData(Fz40Grain grainData, GatewayDevice device) {
-        KafaGrainData result = new KafaGrainData();
+//    /**
+//     * 灏嗙伯鎯呮暟鎹浆鎹负鎺ㄩ�侀渶瑕佺殑鏁版嵁鏍煎紡
+//     *
+//     * @param grainData
+//     * @return
+//     */
+//    private KafaGrainData lastData2PushData(Fz40Grain grainData, GatewayDevice device) {
+//        KafaGrainData result = new KafaGrainData();
+//
+//        result.setMessageId(ScConstant.getMessageId());
+//        result.setMessgeId(result.getMessageId());
+//        result.setDeviceID(device.getDeviceId());
+//        result.setAvgTemperature(grainData.getTempAve() + "");
+//        result.setMinTemperature(grainData.getTempMin() + "");
+//        result.setMaxTemperature(grainData.getTempMax() + "");
+//        result.setCollectTime(DateFormatUtils.format(grainData.getReceiveDate(), "yyyy-MM-dd HH:mm:ss"));
+//
+//        //灞�-琛�-鍒�
+//        String[] attrCable = grainData.getCable().split("-");
+//        if (StringUtils.isNotEmpty(grainData.getCableCir())) {
+//            return lastData2PushData2(grainData, device);
+//        }
+//
+//        //灞傝鍒�
+//        int cableZ = Integer.valueOf(attrCable[0]);
+//        int cableY = Integer.valueOf(attrCable[1]);
+//        int cableX = Integer.valueOf(attrCable[2]);
+//
+//        //娓╁害闆嗗悎
+//        String[] attr = grainData.getPoints().split(",");
+//
+//        //鏍瑰彿
+//        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.length; 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[i];
+//
+//
+//            //濡傛灉鏄紓甯稿��,鎵ц璋冩暣鏁版嵁 TODO
+//            if (Double.valueOf(curTemp) < -99.9) {
+//
+//                curTemp = grainData.getTempAve() + "";
+//
+//            } 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();
+//        grainTH.setHumidity(grainData.getHumidityIn() + "");
+//        grainTH.setTemperature(grainData.getTempIn() + "");
+//        grainTH.setAirHumidity(grainData.getHumidityOut() + "");
+//        grainTH.setAirTemperature(grainData.getTempOut() + "");
+//
+//        List<KafkaGrainTH> temperatureAndhumidity = new ArrayList<>();
+//        temperatureAndhumidity.add(grainTH);
+//
+//        trhInfo.put("temperatureAndhumidity", temperatureAndhumidity);
+//        //trhInfo.put("temperatureAndhumidity",grainTH);
+//
+//        JSONObject params = new JSONObject();
+//        params.put("TRHInfo", trhInfo);
+//
+//        result.setParams(params);
+//
+//        return result;
+//    }
 
-        result.setMessageId(ScConstant.getMessageId());
-        result.setMessgeId(result.getMessageId());
-        result.setDeviceID(device.getDeviceId());
-        result.setAvgTemperature(grainData.getTempAve() + "");
-        result.setMinTemperature(grainData.getTempMin() + "");
-        result.setMaxTemperature(grainData.getTempMax() + "");
-        result.setCollectTime(DateFormatUtils.format(grainData.getReceiveDate(), "yyyy-MM-dd HH:mm:ss"));
-
-        //灞�-琛�-鍒�
-        String[] attrCable = grainData.getCable().split("-");
-        if (StringUtils.isNotEmpty(grainData.getCableCir())) {
-            return lastData2PushData2(grainData, device);
-        }
-
-        //灞傝鍒�
-        int cableZ = Integer.valueOf(attrCable[0]);
-        int cableY = Integer.valueOf(attrCable[1]);
-        int cableX = Integer.valueOf(attrCable[2]);
-
-        //娓╁害闆嗗悎
-        String[] attr = grainData.getPoints().split(",");
-
-        //鏍瑰彿
-        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.length; 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[i];
-
-
-            //濡傛灉鏄紓甯稿��,鎵ц璋冩暣鏁版嵁 TODO
-            if (Double.valueOf(curTemp) < -99.9) {
-
-                curTemp = grainData.getTempAve() + "";
-
-            } 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();
-        grainTH.setHumidity(grainData.getHumidityIn() + "");
-        grainTH.setTemperature(grainData.getTempIn() + "");
-        grainTH.setAirHumidity(grainData.getHumidityOut() + "");
-        grainTH.setAirTemperature(grainData.getTempOut() + "");
-
-        List<KafkaGrainTH> temperatureAndhumidity = new ArrayList<>();
-        temperatureAndhumidity.add(grainTH);
-
-        trhInfo.put("temperatureAndhumidity", temperatureAndhumidity);
-        //trhInfo.put("temperatureAndhumidity",grainTH);
-
-        JSONObject params = new JSONObject();
-        params.put("TRHInfo", trhInfo);
-
-        result.setParams(params);
-
-        return result;
-    }
-
-    /**
-     * 閽堝绛掍粨  TODO -----
-     *
-     * @param lastData
-     * @param device
-     * @return
-     */
-    private KafaGrainData lastData2PushData2(Fz40Grain lastData, GatewayDevice device) {
-
-        return null;
-    }
 
 
     @Override
diff --git a/src/main/resources/application-devGateway.yml b/src/main/resources/application-devGateway.yml
index 3d07a98..7ba4ef8 100644
--- a/src/main/resources/application-devGateway.yml
+++ b/src/main/resources/application-devGateway.yml
@@ -12,7 +12,6 @@
     #娆℃暟鎹簮
     secondary:
       url: jdbc:mysql://127.0.0.1:3306/igds_5012?useUnicode=true&useSSL=false&characterEncoding=utf-8
-
       username: root
       password: Abc123..
       driver-class-name: com.mysql.jdbc.Driver

--
Gitblit v1.9.3