From d3e48589ea2719cdde41b87fc1ad80f4ee509bac Mon Sep 17 00:00:00 2001 From: vince <757871790@qq.com> Date: 星期五, 13 十二月 2024 10:29:56 +0800 Subject: [PATCH] 优化测温协议 --- src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java | 194 ++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 177 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java b/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java index 379583d..44e2b19 100644 --- a/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java +++ b/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java @@ -1,26 +1,28 @@ package com.fzzy.gateway; import com.alibaba.fastjson.JSON; -import com.fzzy.api.data.ApiParam; -import com.fzzy.api.entity.ApiConfs; -import com.fzzy.api.service.*; -import com.fzzy.api.utils.ContextUtil; -import com.fzzy.api.utils.RedisUtil; +import com.fzzy.api.data.GatewayDeviceProtocol; +import com.fzzy.api.data.GatewayDeviceType; +import com.fzzy.api.utils.DateUtil; +import com.fzzy.data.ConfigData; import com.fzzy.gateway.api.GatewayRemoteManager; +import com.fzzy.gateway.api.GatewayRemoteService; +import com.fzzy.gateway.api.GatewaySyncGranService; +import com.fzzy.gateway.data.BaseReqData; +import com.fzzy.gateway.data.BaseResp; import com.fzzy.gateway.data.WeatherWebDto; import com.fzzy.gateway.entity.GatewayConf; +import com.fzzy.gateway.entity.GatewayDevice; import com.fzzy.gateway.service.GatewayConfService; +import com.fzzy.gateway.service.GatewayDeviceTestPR; import com.fzzy.gateway.util.GatewayHttpUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.time.DateUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.Date; -import java.util.List; +import java.util.*; /** * 缃戝叧鐩稿叧鐨勫畾鏃跺櫒 @@ -29,7 +31,7 @@ @Component(GatewayTimerScheduled.BEAN_ID) public class GatewayTimerScheduled { - public static String DEFAULT_URL = "https://v0.yiketianqi.com/api?unescape=1&version=v61&appid={appId}&appsecret={appsecret}&cityid={cityid}"; + public static String DEFAULT_URL = "https://v1.yiketianqi.com/api?unescape=1&version=v61&appid={appId}&appsecret={appsecret}&cityid={cityid}"; public static String DEFAULT_APP_ID = "49421971"; public static String DEFAULT_APP_SECRET = "JmJE48Fv"; public static String DEFAULT_CITYID = "101270101";//鎴愰兘 @@ -39,22 +41,122 @@ @Resource private GatewayConfService confService; - @Resource private GatewayRemoteManager gatewayRemoteManager; + @Resource + private ConfigData configData; + @Resource + private GatewayDeviceTestPR gatewayDeviceTestPR; /** * <p> * 鍥哄畾鏃堕棿锛氭瘡闂撮殧10鍒嗛挓鎵ц涓�娆� */ - @Scheduled(cron = "0 0/10 * * * ? ") + @Scheduled(cron = "0 0/10 * * * ?") public void scheduled() { //缃戝叧鐨勫績璺虫墽琛� doHeartbeat(); } + /** + * <p> + * 绮儏姣忓ぉ11鐐圭┛涓婂尯 + */ +// @Scheduled(cron = "0 0 11 * * ?") + public void scheduledGrain() { + //鑾峰彇璁惧閰嶇疆锛屽彧閽堝绮儏璁惧杩涜鎵ц + log.info("瀹氭椂kafka绮儏鎺ㄩ��"); + List<GatewayDevice> list = gatewayDeviceTestPR.listAll(); + + if (null == list || list.isEmpty()) { + log.error("涓鸿幏鍙栧埌绯荤粺涓澶囬厤缃紝鍙栨秷鎵ц\""); + return ; + } + BaseReqData reqData; + BaseResp resp; + for (GatewayDevice device : list) { + + //濡傛灉涓嶆槸绮儏鍒嗘満璺宠繃 + if (!GatewayDeviceType.TYPE_07.getCode().equals(device.getType())) { + continue; + } + reqData = new BaseReqData(); + reqData.setProductId(device.getProductId()); + reqData.setDeviceName(device.getDeviceName()); + reqData.setDeviceId(device.getDeviceId()); + reqData.setDayTime(new Date()); + reqData.setDevice(device); + + //鑾峰彇鍒� + resp = gatewayRemoteManager.getGatewayTestService(device.getPushProtocol()).testGrainKafka(reqData); + log.info("resp = "+resp.toString()); + //鑷姩鎺ㄩ�� + if (BaseResp.CODE_200 == resp.getCode()) { + reqData.setData(resp.getData()); + gatewayRemoteManager.getDeviceReportService(device.getPushProtocol()).reportGrainDataByHand(reqData); + } + } + } + + + + /** + * <p> + * 绮儏姣忓ぉ8鐐归噰闆嗙伯鎯� + * + */ +// @Scheduled(cron = "0 30 5 ? * *") +// @Scheduled(cron = "0 32 11 ? * 1,4") + @Scheduled(cron = "0 32 11 ? * *") + public void scheduledGrain2() { + //鑾峰彇璁惧閰嶇疆锛屽彧閽堝绮儏璁惧杩涜鎵ц + log.info("瀹氭椂绮儏閲囬泦kafka鎺ㄩ��"); + List<GatewayDevice> list = gatewayDeviceTestPR.listAll(); + + if (null == list || list.isEmpty()) { + log.error("涓鸿幏鍙栧埌绯荤粺涓澶囬厤缃紝鍙栨秷鎵ц\""); + return ; + } + BaseReqData reqData = new BaseReqData(); + BaseResp resp; + for (GatewayDevice device : list) { + try{ + //濡傛灉涓嶆槸绮儏鍒嗘満璺宠繃 + if (!GatewayDeviceType.TYPE_07.getCode().equals(device.getType())) { + continue; + } + reqData.setDeviceId(device.getDeviceId()); + reqData.setProductId(device.getProductId()); + reqData.setDeviceName(device.getDeviceName()); + reqData.setDevice(device); + reqData.setAutoReplay(true); + GatewaySyncGranService syncGrainService = gatewayRemoteManager.getSyncGrainService(device.getSyncProtocol()); + resp = syncGrainService.syncGrain(reqData); + log.info("鍛戒护鍙戦�佺粨鏋滐細"+resp.toString()); + Thread.sleep(30000); + }catch (Exception e){ + log.error(e.getMessage(),e); + } + } + } + + /** + * <p> + * 姣忛棿闅�3绉掓墽琛屼竴娆′簨浠� + */ + @Scheduled(cron = "0/3 * * * * ?") + public void scheduled3() { + try{ + //鎵цHTTP鍦扮璇锋眰 + exeHttpWeightReq(); + }catch (Exception e){ + log.error(e.getMessage(),e); + } + + } + /** * 姣忛棿闅�30鍒嗛挓鎵ц涓�娆� @@ -69,12 +171,29 @@ public void doWeatherExe() { try { - String url = DEFAULT_URL; + String url = configData.getWeatherPath(); + + if (null == url) { + url = DEFAULT_URL; + } + Map<String ,String> parameMap = new HashMap<>(); + parameMap.put("unescape","1"); + parameMap.put("version","v61"); + parameMap.put("appid",DEFAULT_APP_ID); + parameMap.put("appsecret",DEFAULT_APP_SECRET); + parameMap.put("cityid",DEFAULT_CITYID); url = url.replace("{appId}", DEFAULT_APP_ID).replace("{appsecret}", DEFAULT_APP_SECRET).replace("{cityid}", DEFAULT_CITYID); + url = url.replace("{appId}", DEFAULT_APP_ID).replace("{appsecret}", DEFAULT_APP_SECRET); - log.debug("------姘旇薄URL---{}",url); - String result = GatewayHttpUtil.doGet(url, null); + if (StringUtils.isNotEmpty(configData.getCityId())) { + url = url.replace("{cityid}", configData.getCityId()); + } else { + url = url.replace("{cityid}", DEFAULT_CITYID); + } + + log.debug("------姘旇薄璇锋眰淇℃伅URL---{}", url); + String result = GatewayHttpUtil.doGet(url,parameMap); if (null == result) { log.error("褰撳墠澶栫綉鑾峰彇姘旇薄淇℃伅澶辫触鈥︹��"); @@ -89,10 +208,10 @@ WeatherWebDto.contextMap.put("default", dto); - log.info("===========================绯荤粺瀹氭椂鑾疯幏鍙栨皵璞′俊鎭�===={}==================",dto); + log.info("===========================绯荤粺瀹氭椂鑾疯幏鍙栨皵璞′俊鎭�===={}==================", dto); } catch (Exception e) { - + log.error(e.getMessage(),e); } } @@ -114,4 +233,45 @@ } } + + /** + * 鎵ц鍦扮HTTP璇锋眰鍗忚 + */ + private void exeHttpWeightReq() { + //鑾峰彇璁惧 + Collection<GatewayDevice> list = GatewayUtils.listDeviceWeight(); + + if (null == list || list.isEmpty()) return; + + BaseReqData reqData; + for (GatewayDevice device : list) { + if (!GatewayDeviceProtocol.DEVICE_WEIGHT_HTTP.getCode().equals(device.getSyncProtocol())) { + continue; + } + reqData = new BaseReqData(); + reqData.setDevice(device); + reqData.setDeviceName(device.getDeviceName()); + reqData.setProductId(device.getProductId()); + reqData.setDeviceId(device.getDeviceId()); + gatewayRemoteManager.getSyncWeightService(device.getSyncProtocol()).syncWeightInfo(reqData); + } + } + + public static void main(String[] args) { + try { + Map<String ,String> parameMap = new HashMap<>(); + parameMap.put("unescape","1"); + parameMap.put("version","v61"); + parameMap.put("appid","49421971"); + parameMap.put("appsecret","JmJE48Fv"); + parameMap.put("cityid","101270101"); + String result = GatewayHttpUtil.doGet("https://v1.yiketianqi.com/api?unescape=1&version=v61&appid=49421971&appsecret=JmJE48Fv&cityid=101270101", parameMap); + + + System.out.println(result); + }catch (Exception e){ + e.printStackTrace(); + } + + } } -- Gitblit v1.9.3