完善逻辑

main
wenhua.zhou 2 years ago
parent 3c0eea7f4c
commit d62480e4c6

@ -9,7 +9,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
@Controller @Controller
@Slf4j @Slf4j
public class TestController { public class TestController {
// private static final Logger logger = LoggerFactory.getLogger(TestController.class);
@RequestMapping("/test") @RequestMapping("/test")
@ResponseBody @ResponseBody

@ -11,7 +11,6 @@ import org.springframework.stereotype.Component;
@Component @Component
@Slf4j @Slf4j
public class ReportSchedule { public class ReportSchedule {
// private static final Logger logger = LoggerFactory.getLogger(ReportSchedule.class);
@Autowired @Autowired
MqttServiceImpl mqttServiceimpl; MqttServiceImpl mqttServiceimpl;

@ -15,7 +15,6 @@ import java.util.stream.Collectors;
@Service @Service
@Slf4j @Slf4j
public class MqttServiceImpl { public class MqttServiceImpl {
// private static final Logger logger = LoggerFactory.getLogger(MqttServiceImpl.class);
@Autowired @Autowired
OperationDB operationDBMapper; OperationDB operationDBMapper;
@ -27,30 +26,9 @@ public class MqttServiceImpl {
public void reportRecord() { public void reportRecord() {
List<String> allTableNames = operationDBMapper.getAllTable(); List<String> allTableNames = operationDBMapper.getAllTable();
for (String tableName : allTableNames) { for (String tableName : allTableNames) {
Map<String, String> fieldMap = new HashMap<>(); Map<String,String> fieldMap = getTableFieldMap(tableName);
List<Map<String, String>> fieldMaps = operationDBMapper.getFieldMap(tableName);
for (Map<String, String> map : fieldMaps) {
for (String key : map.keySet()) {
fieldMap.put(map.get("field_name"), map.get("dest_field_name"));
}
}
String sqlExecuting = operationDBMapper.getSQL(tableName); String sqlExecuting = operationDBMapper.getSQL(tableName);
List<Integer> dataEqmids = operationDBMapper.getDataEqmids(tableName); List<Integer> dataEqmids = operationDBMapper.getDataEqmids(tableName);
// List<Integer> syncDevIds = operationDBMapper.getSyncRecordDevIds(tableName);
// if (dataEqmids.size() != syncDevIds.size()) {
// List<Integer> 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<Integer, Object> devIDLastTimeMap = new HashMap<>(); Map<Integer, Object> devIDLastTimeMap = new HashMap<>();
List<Map<String, Object>> devIDLastTimeMaps = operationDBMapper.getDeviceIDAndtime(tableName); List<Map<String, Object>> devIDLastTimeMaps = operationDBMapper.getDeviceIDAndtime(tableName);
for (Map<String, Object> map : devIDLastTimeMaps) { for (Map<String, Object> map : devIDLastTimeMaps) {
@ -58,20 +36,31 @@ public class MqttServiceImpl {
devIDLastTimeMap.put(Integer.parseInt((String) map.get("devid_val")), map.get("field_val2")); devIDLastTimeMap.put(Integer.parseInt((String) map.get("devid_val")), map.get("field_val2"));
} }
} }
for (int deviceID : dataEqmids) { for (int deviceID : dataEqmids) {
String time = ""; String time = "";
if(devIDLastTimeMap.get(deviceID) !=null){ if(devIDLastTimeMap.get(deviceID) !=null){
time = devIDLastTimeMap.get(deviceID).toString(); time = devIDLastTimeMap.get(deviceID).toString();
}else{ }else{
time = "2000-01-01 01:00:00"; time = "2000-01-01 01:00:00";
operationDBMapper.addEarliestTime(10, tableName, String.valueOf(deviceID), time);
} }
publishData(deviceID, time, sqlExecuting, tableName, fieldMap); publishData(deviceID, time, sqlExecuting, tableName, fieldMap);
} }
} }
} }
//单个表的字段映射
public Map<String,String> getTableFieldMap(String tableName){
Map<String, String> fieldMap = new HashMap<>();
List<Map<String, String>> fieldMaps = operationDBMapper.getFieldMap(tableName);
for (Map<String, String> map : fieldMaps) {
for (String key : map.keySet()) {
fieldMap.put(map.get("field_name"), map.get("dest_field_name"));
}
}
return fieldMap;
}
//推送单个设备数据 //推送单个设备数据
public void publishData(int deviceID, String time, String sqlExecuting, String tableName, Map<String, String> fieldMap) { public void publishData(int deviceID, String time, String sqlExecuting, String tableName, Map<String, String> fieldMap) {
@ -81,6 +70,7 @@ public class MqttServiceImpl {
String jsonStringData = FormatUtil.mqttFormatTransform(dataOfoneDeviceID, fieldMap); String jsonStringData = FormatUtil.mqttFormatTransform(dataOfoneDeviceID, fieldMap);
try { try {
if (mqttUtil.publish2MQTT(jsonStringData)) { if (mqttUtil.publish2MQTT(jsonStringData)) {
//insert
operationDBMapper.updateSyncRecordsTable(tableName, deviceID, time); operationDBMapper.updateSyncRecordsTable(tableName, deviceID, time);
log.info("表{}设备{}推送成功:{}", tableName, deviceID, jsonStringData); log.info("表{}设备{}推送成功:{}", tableName, deviceID, jsonStringData);
} }

@ -45,10 +45,5 @@ public class FormatUtil {
} }
// public static void main(String[] args) {
// System.out.println(Timestamp.valueOf("2022-05-01 12:11:00").getTime());
// System.out.println(new Timestamp(new Date(Timestamp.valueOf("2022-05-01 12:11:00").getTime()).getTime()));
// }
} }

@ -1,11 +1,8 @@
package com.xydl.util; package com.xydl.util;
import com.xydl.service.impl.MqttServiceImpl;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.*; import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -15,7 +12,6 @@ import java.util.Date;
@Component @Component
@Slf4j @Slf4j
public class MqttUtil { public class MqttUtil {
// private static final Logger logger = LoggerFactory.getLogger(MqttServiceImpl.class);
@Value("${mqtt.broker}") @Value("${mqtt.broker}")
private String broker; private String broker;
@ -41,16 +37,8 @@ public class MqttUtil {
public boolean publish2MQTT(String content){ public boolean publish2MQTT(String content){
// String broker = "tcp://139.196.211.222:10883";
// String topic = "mqtt/test";
// String content = "Hello MQTT";
// int qos = 0;
// String username = "test";
// String password = "AliOS%1688";
String clientid = "publish_client";
MqttClient client; MqttClient client;
MqttDeliveryToken token; MqttDeliveryToken token;
// System.out.println("broker: "+broker);
try { try {
client = new MqttClient(broker, publishClientid, new MemoryPersistence()); client = new MqttClient(broker, publishClientid, new MemoryPersistence());
} catch (MqttException e) { } catch (MqttException e) {

@ -14,7 +14,6 @@ import java.util.Date;
@Component @Component
@Slf4j @Slf4j
public class Subscribe { public class Subscribe {
// private static final Logger logger = LoggerFactory.getLogger(MqttServiceImpl.class);
@Autowired @Autowired
MqttUtil mqttUtil; MqttUtil mqttUtil;

Loading…
Cancel
Save