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