From 236cf59aae727d304487676413c4337f73b16e67 Mon Sep 17 00:00:00 2001 From: vince <757871790@qq.com> Date: 星期二, 16 一月 2024 12:14:19 +0800 Subject: [PATCH] Merge remote-tracking branch 'orgin/igds-api-gateway' into igds-api-gateway --- 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 | 390 ++------------------------- 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, 332 insertions(+), 475 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..beec7a3 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,62 @@ public class GatewayDataApi { @Resource - private GatewayDeviceService gatewayDeviceService; - - @Resource private GatewayRemoteManager gatewayRemoteManager; /** - * 娴嬭瘯鍏ュ彛 + * 绮儏鏁版嵁鎺ㄩ�侊紝绗笁鏂硅蒋浠跺钩鍙版帹閫佺伯鎯呮暟鎹埌缃戝叧 * - * @param param + * @param grainData * @return + * @throws Exception */ - @PostMapping("/test/deviceTest") + @PostMapping("/push-grain") public @ResponseBody - String deviceTest(@RequestBody GateWayParam param) throws Exception { + BaseResp pushGrain(@RequestBody Fz40Grain grainData) { - if (StringUtils.isEmpty(param.getBizType())) { - return "ERROR:娌℃湁鑾峰彇鍒颁笟鍔$被鍨嬶紝鎵ц澶辫触"; - } + BaseResp resp = new BaseResp(); + try { - if ("testGrain".equals(param.getBizType())) { - return testGrain(param); - } + log.info("----------涓诲姩鎺ㄩ�佺伯鎯呮帴鍙f墽琛�----{}",grainData); - if ("ajaxTestKafkaGrain".equals(param.getBizType())) { - return ajaxTestKafkaGrain(param); - } + //鏍规嵁绯荤粺浠撳簱缂栫爜鑾峰彇閰嶇疆璁惧淇℃伅 + GatewayDevice device = GatewayUtils.getCacheByDepotSysId(grainData.getDepotId()); - 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); - - 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"; - } - - 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; + if (null == device) { + resp.setMsg("缃戝叧涓病鏈夎幏鍙栧埌閰嶇疆鐨勭粓绔澶囦俊鎭�,鏃犳硶鎵ц銆備粨搴撶紪鐮�=" + grainData.getDepotId()); + resp.setCode(BaseResp.CODE_500); + return resp; } - reqData = new BaseReqData(device); - reqData.setIndex(i); - syncLprService = gatewayRemoteManager.getSyncLprService(device.getSyncProtocol()); - if (null == syncLprService) continue; - syncLprService.initLpr(reqData); - i++; - } - return "SUCCESS"; - } + //鏁版嵁灏佽杞崲 + GatewayDeviceReportService reportService = gatewayRemoteManager.getDeviceReportService(device.getPushProtocol()); + if (null == reportService) { + log.error("------------绮儏鎺ㄩ�佸け璐ワ紝绯荤粺涓嶅瓨鍦ㄥ綋鍓嶅崗璁墽琛岀被----{}", device.getDeviceName()); + resp.setMsg("绮儏鎺ㄩ�佸け璐ワ紝绯荤粺涓嶅瓨鍦ㄥ綋鍓嶅崗璁墽琛岀被锛岀綉鍏宠澶�=" + device.getDeviceName()); + resp.setCode(BaseResp.CODE_500); + return resp; + } - private String testGrain(GateWayParam param) { - String deviceId = param.getDeviceId(); + //鏁版嵁灏佽 + resp = reportService.grainData2GatewayApiInfo(grainData, device); - GatewayDevice device = GatewayUtils.getCacheByDeviceId(deviceId); + BaseReqData reqData = new BaseReqData(); + reqData.setProductId(device.getProductId()); + reqData.setDeviceName(device.getDeviceName()); + reqData.setDeviceId(device.getDeviceId()); - 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.setDevice(device); reqData.setData(resp.getData()); - gatewayRemoteManager.getDeviceReportService(device.getPushProtocol()).reportGrainData(reqData); + + //鎵嬪姩鎺ㄩ�佸埌骞冲彴 + resp = reportService.reportGrainDataByHand(reqData); + + } catch (Exception e) { + log.error("-----------鎵嬪姩鎺ㄩ�佺伯鎯呮暟鎹墽琛屽紓甯�---{}", e); + resp.setCode(BaseResp.CODE_500); + resp.setMsg("鎵ц寮傚父:" + e.getMessage()); } - - 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"; + return resp; } } 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