From 3c0eea7f4cd145f505bbbb8a9a2d27fb569d0d2f Mon Sep 17 00:00:00 2001 From: "wenhua.zhou" Date: Tue, 12 Dec 2023 10:17:50 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xydl/schedule/ReportSchedule.java | 2 +- .../xydl/service/impl/MqttServiceImpl.java | 51 +++++++++-------- src/main/java/com/xydl/util/Subscribe.java | 2 +- src/main/resources/application-dev.yml | 51 +++++++++++++++++ src/main/resources/application-prod.yml | 51 +++++++++++++++++ src/main/resources/application.yml | 55 +------------------ 6 files changed, 135 insertions(+), 77 deletions(-) create mode 100644 src/main/resources/application-dev.yml create mode 100644 src/main/resources/application-prod.yml diff --git a/src/main/java/com/xydl/schedule/ReportSchedule.java b/src/main/java/com/xydl/schedule/ReportSchedule.java index cf76d63..d451b13 100644 --- a/src/main/java/com/xydl/schedule/ReportSchedule.java +++ b/src/main/java/com/xydl/schedule/ReportSchedule.java @@ -17,7 +17,7 @@ public class ReportSchedule { @Scheduled(initialDelay = 1000, fixedRate = 1000 * 3600) //通过@Scheduled声明该方法是计划任务,使用fixedRate属性每隔固定时间执行 public void reportRecord() { - log.info("运行定时任务"); + log.info("运行定时转发任务"); mqttServiceimpl.reportRecord(); } diff --git a/src/main/java/com/xydl/service/impl/MqttServiceImpl.java b/src/main/java/com/xydl/service/impl/MqttServiceImpl.java index 486000b..1edb619 100644 --- a/src/main/java/com/xydl/service/impl/MqttServiceImpl.java +++ b/src/main/java/com/xydl/service/impl/MqttServiceImpl.java @@ -37,19 +37,19 @@ public class MqttServiceImpl { String sqlExecuting = operationDBMapper.getSQL(tableName); List dataEqmids = operationDBMapper.getDataEqmids(tableName); - List syncDevIds = operationDBMapper.getSyncRecordDevIds(tableName); - if (dataEqmids.size() != syncDevIds.size()) { - List distinctDevids = dataEqmids.stream().filter(e -> !syncDevIds.contains(e)).collect(Collectors.toList()); - for (Integer devId : distinctDevids) { - String earliestTime = null; - if ("data_eaif_h".equals(tableName)) { - earliestTime = operationDBMapper.getEarliestTime4Eaif(tableName, devId); - } else { - earliestTime = operationDBMapper.getEarliestTime4Other(tableName, devId); - } - operationDBMapper.addEarliestTime(10, tableName, String.valueOf(devId), earliestTime); - } - } +// List syncDevIds = operationDBMapper.getSyncRecordDevIds(tableName); +// if (dataEqmids.size() != syncDevIds.size()) { +// List distinctDevids = dataEqmids.stream().filter(e -> !syncDevIds.contains(e)).collect(Collectors.toList()); +// for (Integer devId : distinctDevids) { +// String earliestTime = null; +// if ("data_eaif_h".equals(tableName)) { +// earliestTime = operationDBMapper.getEarliestTime4Eaif(tableName, devId); +// } else { +// earliestTime = operationDBMapper.getEarliestTime4Other(tableName, devId); +// } +// operationDBMapper.addEarliestTime(10, tableName, String.valueOf(devId), earliestTime); +// } +// } Map devIDLastTimeMap = new HashMap<>(); List> devIDLastTimeMaps = operationDBMapper.getDeviceIDAndtime(tableName); @@ -59,26 +59,33 @@ public class MqttServiceImpl { } } - for (int deviceID : devIDLastTimeMap.keySet()) { - publishData(deviceID,sqlExecuting,devIDLastTimeMap,tableName,fieldMap); + for (int deviceID : dataEqmids) { + String time = ""; + if(devIDLastTimeMap.get(deviceID) !=null){ + time = devIDLastTimeMap.get(deviceID).toString(); + }else{ + time = "2000-01-01 01:00:00"; + } + + publishData(deviceID, time, sqlExecuting, tableName, fieldMap); } } } - public void publishData(int deviceID, String sqlExecuting, Map devIDLastTimeMap, String tableName,Map fieldMap){ - String time = devIDLastTimeMap.get(deviceID).toString(); + //推送单个设备数据 + public void publishData(int deviceID, String time, String sqlExecuting, String tableName, Map fieldMap) { + String devIdSQL = sqlExecuting.replace("%%DEVID%%", String.valueOf(deviceID)); - String newSQL = devIdSQL.replace("%%KEYVALUE%%", "'"+time+"'"); - System.out.println("SQL:"+newSQL); + String newSQL = devIdSQL.replace("%%KEYVALUE%%", "'" + time + "'"); List> dataOfoneDeviceID = operationDBMapper.getData(newSQL); String jsonStringData = FormatUtil.mqttFormatTransform(dataOfoneDeviceID, fieldMap); try { if (mqttUtil.publish2MQTT(jsonStringData)) { - operationDBMapper.updateSyncRecordsTable(tableName, deviceID, (String) devIDLastTimeMap.get(deviceID)); - log.info("表{}设备{}推送成功:{}",tableName,deviceID,jsonStringData); + operationDBMapper.updateSyncRecordsTable(tableName, deviceID, time); + log.info("表{}设备{}推送成功:{}", tableName, deviceID, jsonStringData); } } catch (Exception e) { - log.info("表{}设备{}推送异常:{}", tableName,deviceID,e.getMessage()); + log.info("表{}设备{}推送异常:{}", tableName, deviceID, e.getMessage()); } } diff --git a/src/main/java/com/xydl/util/Subscribe.java b/src/main/java/com/xydl/util/Subscribe.java index 00dc6a6..73670a9 100644 --- a/src/main/java/com/xydl/util/Subscribe.java +++ b/src/main/java/com/xydl/util/Subscribe.java @@ -23,7 +23,7 @@ public class Subscribe { @PostConstruct private void SubscribeMqtt(){ - log.info("开始订阅===subScribe执行一次==={}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); +// log.info("开始订阅===subScribe执行一次==={}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); // mqttUtil.subScribeMQTT(); } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml new file mode 100644 index 0000000..fecb0bf --- /dev/null +++ b/src/main/resources/application-dev.yml @@ -0,0 +1,51 @@ +#端口号 +server: + port: 8098 + + #数据源配置 +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.50.200:3306/mqttcac?characterEncoding=utf-8&serverTimezone=UTC + username: root + password: 123456 + + +mybatis: + configuration: + map-underscore-to-camel-case: true + #mybatis: + #指定mybatis配置文件的位置 + #config-location: classpath:mybatis/mybatis-config.xml + #指定映射文件的位置 +# mapper-locations: classpath:mybatis/mapper/*.xml + +mqtt: + publish: + clientid: publish_client + subscribe: + clientid: subscribe_client + broker: tcp://139.196.211.222:10883 + topic: mqtt/test + username: test + password: AliOS%1688 + qos: 0 + +logging: + level: + root: info + com: + xydl: + controller: + TestControler: info + service: + impl: info + schedule: info + file: +# name: E:\log\mqtt.log + name: /root/log/mqtt.log + + + + + diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml new file mode 100644 index 0000000..4b3db1c --- /dev/null +++ b/src/main/resources/application-prod.yml @@ -0,0 +1,51 @@ +#端口号 +server: + port: 8099 + + #数据源配置 +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://localhost:3306/cac?characterEncoding=utf-8&serverTimezone=UTC + username: root + password: root + + +mybatis: + configuration: + map-underscore-to-camel-case: true + #mybatis: + #指定mybatis配置文件的位置 + #config-location: classpath:mybatis/mybatis-config.xml + #指定映射文件的位置 +# mapper-locations: classpath:mybatis/mapper/*.xml + +mqtt: + publish: + clientid: publish_client + subscribe: + clientid: subscribe_client + broker: tcp://139.196.211.222:10883 + topic: mqtt/test + username: test + password: AliOS%1688 + qos: 0 + +logging: + level: + root: info + com: + xydl: + controller: + TestControler: info + service: + impl: info + schedule: info + file: +# name: E:\log\mqtt.log + name: /root/log/mqtt.log + + + + + diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 9d4df14..caf4dfc 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,54 +1,3 @@ -#端口号 -server: - port: 8098 - - #数据源配置 spring: - datasource: - driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/cac?characterEncoding=utf-8&serverTimezone=UTC - username: root - password: root -# url: jdbc:mysql://192.168.50.200:3306/mqttcac?characterEncoding=utf-8&serverTimezone=UTC -# username: root -# password: 123456 - - -mybatis: - configuration: - map-underscore-to-camel-case: true - #mybatis: - #指定mybatis配置文件的位置 - #config-location: classpath:mybatis/mybatis-config.xml - #指定映射文件的位置 -# mapper-locations: classpath:mybatis/mapper/*.xml - -mqtt: - publish: - clientid: publish_client - subscribe: - clientid: subscribe_client - broker: tcp://139.196.211.222:10883 - topic: mqtt/test - username: test - password: AliOS%1688 - qos: 0 - -logging: - level: - root: info - com: - xydl: - controller: - TestControler: info - service: - impl: info - schedule: info - file: -# name: E:\log\mqtt.log - name: /root/log/mqtt.log - - - - - + profiles: + active: dev \ No newline at end of file