|
@@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.template.common.utils.TimeExchange;
|
|
import com.template.common.utils.TimeExchange;
|
|
|
import com.template.model.Devices;
|
|
import com.template.model.Devices;
|
|
|
|
|
+import com.template.model.RealTimeRecords;
|
|
|
import com.template.model.Records;
|
|
import com.template.model.Records;
|
|
|
import com.template.services.DevicesService;
|
|
import com.template.services.DevicesService;
|
|
|
|
|
+import com.template.services.RealTimeRecordsService;
|
|
|
import com.template.services.RecordsService;
|
|
import com.template.services.RecordsService;
|
|
|
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
|
|
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
|
|
|
import org.eclipse.paho.client.mqttv3.MqttCallback;
|
|
import org.eclipse.paho.client.mqttv3.MqttCallback;
|
|
@@ -44,6 +46,9 @@ public class PushCallback implements MqttCallback {
|
|
|
RecordsService recordsService;
|
|
RecordsService recordsService;
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
|
|
+ RealTimeRecordsService realTimeRecordsService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
DevicesService devicesService;
|
|
DevicesService devicesService;
|
|
|
|
|
|
|
|
|
|
|
|
@@ -94,51 +99,68 @@ public class PushCallback implements MqttCallback {
|
|
|
//01032004b600000121018e000000000000000000000030000000000001000000000000a13f
|
|
//01032004b600000121018e000000000000000000000030000000000001000000000000a13f
|
|
|
List<Records> recordsList=new ArrayList<>();
|
|
List<Records> recordsList=new ArrayList<>();
|
|
|
String[] arr= {"Temperature","Humidity","Light","CO2","Rotate","Air"};
|
|
String[] arr= {"Temperature","Humidity","Light","CO2","Rotate","Air"};
|
|
|
|
|
+ RealTimeRecords realTimeRecords=new RealTimeRecords();
|
|
|
|
|
+ realTimeRecords.setDeviceId(devices.getId());
|
|
|
|
|
+ Date now =new Date();
|
|
|
for(int i=0;i< arr.length;i++){
|
|
for(int i=0;i< arr.length;i++){
|
|
|
Records records=new Records();
|
|
Records records=new Records();
|
|
|
records.setDeviceId(devices.getId());
|
|
records.setDeviceId(devices.getId());
|
|
|
switch (arr[i]){
|
|
switch (arr[i]){
|
|
|
case "Temperature":
|
|
case "Temperature":
|
|
|
records.setType("Temperature");
|
|
records.setType("Temperature");
|
|
|
- records.setValue((double) Integer.parseInt(content.substring(10,14), 16)/100);
|
|
|
|
|
- records.setCreateAt(new Date());
|
|
|
|
|
- records.setUpdateAt(new Date());
|
|
|
|
|
|
|
+ double tem=(double) Integer.parseInt(content.substring(10,14), 16)/100;
|
|
|
|
|
+ records.setValue(tem);
|
|
|
|
|
+ records.setCreateAt(now);
|
|
|
|
|
+ records.setUpdateAt(now);
|
|
|
|
|
+ realTimeRecords.setTemperature(tem);
|
|
|
break;
|
|
break;
|
|
|
case "Humidity":
|
|
case "Humidity":
|
|
|
records.setType("Humidity");
|
|
records.setType("Humidity");
|
|
|
- records.setValue((double) Integer.parseInt(content.substring(6,10), 16)/10);
|
|
|
|
|
- records.setCreateAt(new Date());
|
|
|
|
|
- records.setUpdateAt(new Date());
|
|
|
|
|
|
|
+ double hum=(double) Integer.parseInt(content.substring(6,10), 16)/10;
|
|
|
|
|
+ records.setValue(hum);
|
|
|
|
|
+ records.setCreateAt(now);
|
|
|
|
|
+ records.setUpdateAt(now);
|
|
|
|
|
+ realTimeRecords.setHumidity(hum);
|
|
|
break;
|
|
break;
|
|
|
case "CO2":
|
|
case "CO2":
|
|
|
records.setType("CO2");
|
|
records.setType("CO2");
|
|
|
- records.setValue((double) Integer.parseInt(content.substring(14,18), 16));
|
|
|
|
|
- records.setCreateAt(new Date());
|
|
|
|
|
- records.setUpdateAt(new Date());
|
|
|
|
|
|
|
+ double co= Integer.parseInt(content.substring(14,18), 16);
|
|
|
|
|
+ records.setValue(co);
|
|
|
|
|
+ records.setCreateAt(now);
|
|
|
|
|
+ records.setUpdateAt(now);
|
|
|
|
|
+ realTimeRecords.setCo2(co);
|
|
|
break;
|
|
break;
|
|
|
case "Light":
|
|
case "Light":
|
|
|
records.setType("Light");
|
|
records.setType("Light");
|
|
|
- records.setValue((double) Integer.parseInt(content.substring(18,22), 16));
|
|
|
|
|
- records.setCreateAt(new Date());
|
|
|
|
|
- records.setUpdateAt(new Date());
|
|
|
|
|
|
|
+ double light= Integer.parseInt(content.substring(18,22), 16);
|
|
|
|
|
+ records.setValue(light);
|
|
|
|
|
+ records.setCreateAt(now);
|
|
|
|
|
+ records.setUpdateAt(now);
|
|
|
|
|
+ realTimeRecords.setLight(light);
|
|
|
break;
|
|
break;
|
|
|
case "Rotate":
|
|
case "Rotate":
|
|
|
records.setType("Rotate");
|
|
records.setType("Rotate");
|
|
|
- records.setValue(this.getRandValue(5,95));
|
|
|
|
|
- records.setCreateAt(new Date());
|
|
|
|
|
- records.setUpdateAt(new Date());
|
|
|
|
|
|
|
+ double rotate=this.getRandValue(5,95);
|
|
|
|
|
+ records.setValue(rotate);
|
|
|
|
|
+ records.setCreateAt(now);
|
|
|
|
|
+ records.setUpdateAt(now);
|
|
|
|
|
+ realTimeRecords.setRotate(rotate);
|
|
|
break;
|
|
break;
|
|
|
case "Air":
|
|
case "Air":
|
|
|
records.setType("Air");
|
|
records.setType("Air");
|
|
|
- records.setValue(this.getRandValue(0,95));
|
|
|
|
|
- records.setCreateAt(new Date());
|
|
|
|
|
- records.setUpdateAt(new Date());
|
|
|
|
|
|
|
+ double air=this.getRandValue(5,95);
|
|
|
|
|
+ records.setValue(air);
|
|
|
|
|
+ records.setCreateAt(now);
|
|
|
|
|
+ records.setUpdateAt(now);
|
|
|
|
|
+ realTimeRecords.setAir(air);
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
recordsList.add(records);
|
|
recordsList.add(records);
|
|
|
}
|
|
}
|
|
|
|
|
+ realTimeRecords.setUpdateAt(now);
|
|
|
|
|
+ boolean b=realTimeRecordsService.saveOrUpdate(realTimeRecords);
|
|
|
boolean a=recordsService.saveOrUpdateBatch(recordsList);
|
|
boolean a=recordsService.saveOrUpdateBatch(recordsList);
|
|
|
- log.info("批量导入结果:"+a);
|
|
|
|
|
|
|
+ log.info("更新实时记录:"+b+",批量导入结果:"+a);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public double getRandValue(int min, int max) {
|
|
public double getRandValue(int min, int max) {
|