|
@@ -12,6 +12,7 @@ import com.huimv.env.common.mapper.EnvWarningInfoMapper;
|
|
|
import com.huimv.env.common.service.IEnergyElectricityService;
|
|
|
import com.huimv.env.common.service.IEnergyEnvDeviceService;
|
|
|
import com.huimv.env.common.service.IEnergyWaterService;
|
|
|
+import com.huimv.env.common.utils.SendSMS;
|
|
|
import com.huimv.env.device.service.DataService;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.checkerframework.checker.units.qual.A;
|
|
@@ -21,6 +22,7 @@ import org.springframework.stereotype.Service;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -28,38 +30,39 @@ import java.util.List;
|
|
|
public class DataServiceImpl implements DataService {
|
|
|
|
|
|
@Autowired
|
|
|
- private IEnergyElectricityService energyElectricityService ;
|
|
|
+ private IEnergyElectricityService energyElectricityService;
|
|
|
|
|
|
@Autowired
|
|
|
- private IEnergyWaterService energyWaterService ;
|
|
|
+ private IEnergyWaterService energyWaterService;
|
|
|
|
|
|
@Autowired
|
|
|
- private IEnergyEnvDeviceService energyEnvDeviceService ;
|
|
|
+ private IEnergyEnvDeviceService energyEnvDeviceService;
|
|
|
|
|
|
@Autowired
|
|
|
private EnvWarningInfoMapper warningInfoMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public void saveData(String payload, String timestamp, String nodeEui) throws ParseException {
|
|
|
- // 4823290F01000000 01016B13
|
|
|
- nodeEui = nodeEui.substring(nodeEui.length()-8);
|
|
|
+ // 4823290F01000000 01016B13
|
|
|
+ nodeEui = nodeEui.substring(nodeEui.length() - 8);
|
|
|
//6C0008 01 47 00000025
|
|
|
//01 水表 ,02电表
|
|
|
String devType = payload.substring(6, 8);
|
|
|
//电压 除十
|
|
|
- String voltage = String.format("%.1f", (double)Integer.parseInt(payload.substring(8, 10),16)/10.0);
|
|
|
+ String voltage = String.format("%.1f", (double) Integer.parseInt(payload.substring(8, 10), 16) / 10.0);
|
|
|
// 数值
|
|
|
- Integer originalData = Integer.parseInt(payload.substring(10),16);
|
|
|
- System.out.println(originalData +" = originalData");
|
|
|
+ Integer originalData = Integer.parseInt(payload.substring(10), 16);
|
|
|
+ System.out.println(originalData + " = originalData");
|
|
|
EnergyEnvDevice deviceCode = energyEnvDeviceService.getOne(new QueryWrapper<EnergyEnvDevice>().eq("device_code", nodeEui));
|
|
|
- if (ObjectUtil.isNotEmpty(deviceCode)){
|
|
|
+ if (ObjectUtil.isNotEmpty(deviceCode)) {
|
|
|
Integer farmId = deviceCode.getFarmId();
|
|
|
Integer unitId = deviceCode.getUnitId();
|
|
|
//小口径水表
|
|
|
- if ("01".equals(devType) || "02".equals(devType)){
|
|
|
- saveShui(devType,voltage,originalData,timestamp,nodeEui,payload,farmId,unitId,deviceCode.getDeviceName(),deviceCode.getRemark(),deviceCode.getTransformer(),deviceCode.getDifference());
|
|
|
+ if ("01".equals(devType) || "02".equals(devType)) {
|
|
|
+ saveShui(devType, voltage, originalData, timestamp, nodeEui, payload, farmId, unitId, deviceCode.getDeviceName(), deviceCode.getRemark(), deviceCode.getTransformer(), deviceCode.getDifference());
|
|
|
}
|
|
|
- if ("03".equals(devType)){
|
|
|
- saveDian(devType,voltage,originalData,timestamp,nodeEui,payload,farmId,unitId,deviceCode.getDeviceName(),deviceCode.getRemark(),deviceCode.getTransformer(),deviceCode.getDifference());
|
|
|
+ if ("03".equals(devType)) {
|
|
|
+ saveDian(devType, voltage, originalData, timestamp, nodeEui, payload, farmId, unitId, deviceCode.getDeviceName(), deviceCode.getRemark(), deviceCode.getTransformer(), deviceCode.getDifference());
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -76,18 +79,26 @@ public class DataServiceImpl implements DataService {
|
|
|
EnergyEnvDevice envDevice = energyEnvDeviceService.getOne(queryWrapper);
|
|
|
EnvWarningInfo warningInfo = new EnvWarningInfo();
|
|
|
if (ObjectUtil.isNotEmpty(envDevice)) {
|
|
|
+ ArrayList<String> phoneList = new ArrayList<>();
|
|
|
+ String content = "";
|
|
|
if ("01".equals(devType) || "02".equals(devType)) {
|
|
|
warningInfo.setWarningType(1);//shui
|
|
|
warningInfo.setWarningContent("水表" + nodeEui + "离线");
|
|
|
+ content = "水表" + nodeEui + "离线";
|
|
|
} else {
|
|
|
warningInfo.setWarningType(2);
|
|
|
warningInfo.setWarningContent("电表" + nodeEui + "离线");
|
|
|
+ content = "电表" + nodeEui + "离线";
|
|
|
}
|
|
|
warningInfo.setBuildLocation(envDevice.getDeviceName());
|
|
|
warningInfo.setFarmId(envDevice.getFarmId());
|
|
|
warningInfo.setUserNames(envDevice.getRemark());
|
|
|
warningInfo.setDate(new Date(Long.parseLong(timestamp)));
|
|
|
warningInfoMapper.insert(warningInfo);
|
|
|
+
|
|
|
+ phoneList.add("15174571875");
|
|
|
+ SendSMS.sendSMS(phoneList, content);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -103,34 +114,47 @@ public class DataServiceImpl implements DataService {
|
|
|
EnergyEnvDevice envDevice = energyEnvDeviceService.getOne(queryWrapper);
|
|
|
EnvWarningInfo warningInfo = new EnvWarningInfo();
|
|
|
if (ObjectUtil.isNotEmpty(envDevice)) {
|
|
|
+ ArrayList<String> phoneList = new ArrayList<>();
|
|
|
+ String content = "";
|
|
|
if ("01".equals(devType) || "02".equals(devType)) {
|
|
|
warningInfo.setWarningType(1);//shui
|
|
|
warningInfo.setWarningContent("水表" + nodeEui + "在线");
|
|
|
+ content = "水表" + nodeEui + "在线";
|
|
|
} else {
|
|
|
warningInfo.setWarningType(2);
|
|
|
warningInfo.setWarningContent("电表" + nodeEui + "在线");
|
|
|
+ content = "电表" + nodeEui + "在线";
|
|
|
}
|
|
|
warningInfo.setBuildLocation(envDevice.getDeviceName());
|
|
|
warningInfo.setFarmId(envDevice.getFarmId());
|
|
|
warningInfo.setUserNames(envDevice.getRemark());
|
|
|
warningInfo.setDate(new Date(Long.parseLong(timestamp)));
|
|
|
warningInfoMapper.insert(warningInfo);
|
|
|
+
|
|
|
+ phoneList.add("15174571875");
|
|
|
+ SendSMS.sendSMS(phoneList, content);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
- private void saveDian(String devType ,String voltage, Integer originalData, String timestamp, String nodeEui,String payload
|
|
|
- ,Integer farmId,Integer unitId,String unitName,String farmName,int transformer,int difference) throws ParseException {
|
|
|
+ private void saveDian(String devType, String voltage, Integer originalData, String timestamp, String nodeEui, String payload
|
|
|
+ , Integer farmId, Integer unitId, String unitName, String farmName, int transformer, int difference) throws ParseException {
|
|
|
List<EnergyElectricity> one = energyElectricityService.list(new QueryWrapper<EnergyElectricity>().eq("chip_code", nodeEui).orderByDesc("id").last("limit 1"));
|
|
|
- String lastData ="0";
|
|
|
- if (one.size()>0){
|
|
|
- lastData = one.get(0).getOriginalValue();
|
|
|
+ String lastData = "0";
|
|
|
+ Integer str = 0;
|
|
|
+ if (one.size() > 0) {
|
|
|
+ lastData = one.get(0).getOriginalValue();
|
|
|
}
|
|
|
- if (originalData == null){
|
|
|
+ if (originalData == null) {
|
|
|
originalData = 0;
|
|
|
}
|
|
|
+ if (one.size() == 0) {
|
|
|
+ str = 0;
|
|
|
+ } else {
|
|
|
+ str = (originalData - Integer.parseInt(lastData));
|
|
|
+ }
|
|
|
//差值
|
|
|
- Integer str = (originalData - Integer.parseInt(lastData));
|
|
|
+
|
|
|
|
|
|
// 将时间戳字符串解析为Date对象
|
|
|
EnergyElectricity envWater = new EnergyElectricity();
|
|
@@ -139,7 +163,7 @@ public class DataServiceImpl implements DataService {
|
|
|
envWater.setUploadDate(new Date(Long.parseLong(timestamp)));
|
|
|
envWater.setFarmId(farmId);
|
|
|
envWater.setUnitId(unitId);
|
|
|
- envWater.setOriginalValue((originalData-difference)+"");
|
|
|
+ envWater.setOriginalValue((originalData - difference) + "");
|
|
|
envWater.setChipCode(nodeEui);
|
|
|
envWater.setOriginalDate(payload);
|
|
|
envWater.setOther1(unitName);
|
|
@@ -152,33 +176,35 @@ public class DataServiceImpl implements DataService {
|
|
|
bigDecimal = new BigDecimal(one.get(0).getOther3());
|
|
|
}
|
|
|
|
|
|
- if(str <0 ){
|
|
|
- envWater.setElectricityValue( String.format("%.1f", (double)originalData*transformer/10.0));
|
|
|
+ if (str < 0) {
|
|
|
+ envWater.setElectricityValue(String.format("%.1f", (double) originalData * transformer / 10.0));
|
|
|
BigDecimal bigDecimal1 = new BigDecimal(String.format("%.1f", (double) originalData * transformer / 10.0));
|
|
|
envWater.setOther3(bigDecimal.add(bigDecimal1).toString());
|
|
|
- }else if (str == 0){
|
|
|
+ } else if (str == 0) {
|
|
|
envWater.setElectricityValue("0");
|
|
|
envWater.setOther3(bigDecimal.toString());
|
|
|
- }else {
|
|
|
- envWater.setElectricityValue( String.format("%.1f", (double)str*transformer/10.0));
|
|
|
- BigDecimal bigDecimal1 = new BigDecimal(String.format("%.1f", (double)str*transformer/10.0));
|
|
|
+ } else {
|
|
|
+ envWater.setElectricityValue(String.format("%.1f", (double) str * transformer / 10.0));
|
|
|
+ BigDecimal bigDecimal1 = new BigDecimal(String.format("%.1f", (double) str * transformer / 10.0));
|
|
|
envWater.setOther3(bigDecimal.add(bigDecimal1).toString());
|
|
|
}
|
|
|
envWater.setVoltage(voltage);
|
|
|
energyElectricityService.save(envWater);
|
|
|
}
|
|
|
|
|
|
- private void saveShui(String devType ,String voltage, Integer originalData, String timestamp, String nodeEui
|
|
|
- ,String payload,Integer farmId,Integer unitId,String unitName,String farmName,int transformer,int difference) throws ParseException {
|
|
|
+ private void saveShui(String devType, String voltage, Integer originalData, String timestamp, String nodeEui
|
|
|
+ , String payload, Integer farmId, Integer unitId, String unitName, String farmName, int transformer, int difference) throws ParseException {
|
|
|
List<EnergyWater> one = energyWaterService.list(new QueryWrapper<EnergyWater>().eq("chip_code", nodeEui).orderByDesc("id").last("limit 1"));
|
|
|
- String lastData ="0";
|
|
|
+ String lastData = "0";
|
|
|
Integer str = 0;
|
|
|
- if (ObjectUtil.isNotEmpty(one)){
|
|
|
- lastData = one.get(0).getOriginalValue();
|
|
|
- str = (originalData - Integer.parseInt(lastData) -difference);
|
|
|
- if (str <0){
|
|
|
- str = (originalData - Integer.parseInt(lastData));
|
|
|
+ if (ObjectUtil.isNotEmpty(one)) {
|
|
|
+ lastData = one.get(0).getOriginalValue();
|
|
|
+ str = (originalData - Integer.parseInt(lastData) - difference);
|
|
|
+ if (str < 0) {
|
|
|
+ str = (originalData - Integer.parseInt(lastData));
|
|
|
}
|
|
|
+ } else {
|
|
|
+ str = 0;
|
|
|
}
|
|
|
//差值
|
|
|
|
|
@@ -190,7 +216,7 @@ public class DataServiceImpl implements DataService {
|
|
|
envWater.setDeviceType(Integer.parseInt(devType));
|
|
|
envWater.setUploadDate(new Date(Long.parseLong(timestamp)));
|
|
|
envWater.setFarmId(farmId);
|
|
|
- envWater.setOriginalValue((originalData-difference)+"");
|
|
|
+ envWater.setOriginalValue((originalData - difference) + "");
|
|
|
envWater.setChipCode(nodeEui);
|
|
|
envWater.setUnitId(unitId);
|
|
|
envWater.setOther1(unitName);
|
|
@@ -200,16 +226,16 @@ public class DataServiceImpl implements DataService {
|
|
|
if (one.size() > 0) {
|
|
|
bigDecimal = new BigDecimal(one.get(0).getOther3());
|
|
|
}
|
|
|
- if(str <0 ){
|
|
|
- envWater.setWaterValue( String.format("%.1f", (double)originalData*transformer/10.0));
|
|
|
- BigDecimal bigDecimal1 = new BigDecimal(String.format("%.1f", (double)originalData*transformer/10.0));
|
|
|
+ if (str < 0) {
|
|
|
+ envWater.setWaterValue(String.format("%.1f", (double) originalData * transformer / 10.0));
|
|
|
+ BigDecimal bigDecimal1 = new BigDecimal(String.format("%.1f", (double) originalData * transformer / 10.0));
|
|
|
envWater.setOther3(bigDecimal.add(bigDecimal1).toString());
|
|
|
- }else if (str == 0){
|
|
|
+ } else if (str == 0) {
|
|
|
envWater.setWaterValue("0");
|
|
|
envWater.setOther3(bigDecimal.toString());
|
|
|
- }else {
|
|
|
- envWater.setWaterValue( String.format("%.1f", (double)str*transformer/10.0));
|
|
|
- BigDecimal bigDecimal1 = new BigDecimal(String.format("%.1f", (double)str*transformer/10.0));
|
|
|
+ } else {
|
|
|
+ envWater.setWaterValue(String.format("%.1f", (double) str * transformer / 10.0));
|
|
|
+ BigDecimal bigDecimal1 = new BigDecimal(String.format("%.1f", (double) str * transformer / 10.0));
|
|
|
envWater.setOther3(bigDecimal.add(bigDecimal1).toString());
|
|
|
}
|
|
|
|
|
@@ -228,5 +254,4 @@ public class DataServiceImpl implements DataService {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
}
|