|
@@ -152,6 +152,7 @@ public class PushCallback implements MqttCallbackExtended {
|
|
|
} else if (ObjectUtil.isNotEmpty(jsonObject.get("sensor"))) {
|
|
|
log.info("开始处理传感器数据!");
|
|
|
IEnvDeviceService deviceService = SpringUtil.getBean(IEnvDeviceService.class);
|
|
|
+ IEnvDeviceChipService chipService = SpringUtil.getBean(IEnvDeviceChipService.class);
|
|
|
EnvDevice device = deviceService.getOne(new QueryWrapper<EnvDevice>().eq("device_type", 1).eq("device_code", chip));
|
|
|
BigDecimal big = BigDecimal.valueOf(10);
|
|
|
Map map = (Map) jsonObject.get("sensor");
|
|
@@ -178,16 +179,35 @@ public class PushCallback implements MqttCallbackExtended {
|
|
|
Map waterMeter = (Map) map.get("water_meter");
|
|
|
JSONArray jsonArray2 = (JSONArray) waterMeter.get("data");
|
|
|
IEnergyWaterService waterService = SpringUtil.getBean(IEnergyWaterService.class);
|
|
|
+ QueryWrapper<EnvDeviceChip> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("device_code", device.getDeviceCode()).eq("chip_type", 3);
|
|
|
+ List<EnvDeviceChip> chips = chipService.list(queryWrapper);
|
|
|
// IEnvDeviceChipService chipService = SpringUtil.getBean(IEnvDeviceChipService.class);
|
|
|
for (int i = 0; i < jsonArray2.size(); i++) {
|
|
|
+ QueryWrapper<EnergyWater> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.eq("farm_id", device.getFarmId()).orderByDesc("id").eq("chip_code", chips.get(i).getChipCode())
|
|
|
+ .last(" limit 1");
|
|
|
+ EnergyWater water1 = waterService.getOne(queryWrapper1);
|
|
|
+ EnergyWater water = new EnergyWater();
|
|
|
BigDecimal data2 = new BigDecimal(Integer.parseInt(jsonArray2.get(i).toString()));
|
|
|
BigDecimal waterMeter2 = data2.divide(big);
|
|
|
- EnergyWater water = new EnergyWater();
|
|
|
- water.setWaterValue(waterMeter2.toString());
|
|
|
+ if (ObjectUtil.isNotEmpty(water1)) {
|
|
|
+ if ("".equals(water1.getOriginalValue()) || water1.getOriginalValue() == null) {
|
|
|
+ water.setOriginalValue(waterMeter2.toString());
|
|
|
+ water.setWaterValue(waterMeter2.toString());
|
|
|
+ } else {
|
|
|
+ water.setOriginalValue(waterMeter2.toString());
|
|
|
+ BigDecimal bd = new BigDecimal(water1.getOriginalValue());
|
|
|
+ water.setWaterValue(waterMeter2.subtract(bd).toString());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ water.setWaterValue(waterMeter2.toString());
|
|
|
+ water.setOriginalValue(waterMeter2.toString());
|
|
|
+ }
|
|
|
water.setCreateDate(new Date());
|
|
|
water.setFarmId(device.getFarmId());
|
|
|
water.setUnitId(device.getUnitId());
|
|
|
- water.setChipCode(device.getDeviceCode());
|
|
|
+ water.setChipCode(chips.get(i).getChipCode());
|
|
|
waterService.save(water);
|
|
|
}
|
|
|
log.info("水表处理完成!");
|
|
@@ -195,41 +215,69 @@ public class PushCallback implements MqttCallbackExtended {
|
|
|
//电表的值
|
|
|
Map elect = (Map) map.get("electr_meter");
|
|
|
JSONArray jsonArray3 = (JSONArray) elect.get("data");
|
|
|
- BigDecimal data2 = new BigDecimal(Integer.parseInt(jsonArray3.get(0).toString()));
|
|
|
- BigDecimal elect2 = data2.divide(big);
|
|
|
IEnergyElectricityService electricityService = SpringUtil.getBean(IEnergyElectricityService.class);
|
|
|
- EnergyElectricity electricity = new EnergyElectricity();
|
|
|
- electricity.setCreateDate(new Date());
|
|
|
- electricity.setElectricityValue(elect2.toString());
|
|
|
- electricity.setUnitId(device.getUnitId());
|
|
|
- electricity.setFarmId(device.getFarmId());
|
|
|
- electricityService.save(electricity);
|
|
|
+
|
|
|
+ QueryWrapper<EnvDeviceChip> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.eq("device_code", device.getDeviceCode()).eq("chip_type", 4);
|
|
|
+ List<EnvDeviceChip> chips2 = chipService.list(queryWrapper1);
|
|
|
+
|
|
|
+ for (EnvDeviceChip deviceChip : chips2) {
|
|
|
+ QueryWrapper<EnergyElectricity> queryWrapper2 = new QueryWrapper<>();
|
|
|
+ queryWrapper2.eq("farm_id", device.getFarmId()).orderByDesc("id").eq("chip_code", deviceChip.getChipCode())
|
|
|
+ .last(" limit 1");
|
|
|
+ EnergyElectricity water1 = electricityService.getOne(queryWrapper2);
|
|
|
+ EnergyElectricity electricity = new EnergyElectricity();
|
|
|
+ BigDecimal data2 = new BigDecimal(Integer.parseInt(jsonArray3.get(0).toString()));
|
|
|
+ BigDecimal elect2 = data2.divide(big);
|
|
|
+ if (ObjectUtil.isNotEmpty(water1)) {
|
|
|
+ if ("".equals(water1.getOriginalValue()) || water1.getOriginalValue() == null) {
|
|
|
+ electricity.setOriginalValue(elect2.toString());
|
|
|
+ electricity.setElectricityValue(elect2.toString());
|
|
|
+ } else {
|
|
|
+ electricity.setOriginalValue(elect2.toString());
|
|
|
+ BigDecimal bd = new BigDecimal(water1.getOriginalValue());
|
|
|
+ electricity.setElectricityValue(elect2.subtract(bd).toString());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ electricity.setElectricityValue(elect2.toString());
|
|
|
+ electricity.setOriginalValue(elect2.toString());
|
|
|
+ }
|
|
|
+ electricity.setCreateDate(new Date());
|
|
|
+ electricity.setUnitId(device.getUnitId());
|
|
|
+ electricity.setFarmId(device.getFarmId());
|
|
|
+ electricity.setChipCode(deviceChip.getChipCode());
|
|
|
+ electricityService.save(electricity);
|
|
|
+ }
|
|
|
+
|
|
|
log.info("电表处理完成!");
|
|
|
|
|
|
+
|
|
|
//水压的值
|
|
|
BigDecimal big2 = BigDecimal.valueOf(100);
|
|
|
Map waterPress = (Map) map.get("water_press");
|
|
|
JSONArray jsonArray4 = (JSONArray) waterPress.get("data");
|
|
|
+ QueryWrapper<EnvDeviceChip> queryWrapper2 = new QueryWrapper<>();
|
|
|
+ queryWrapper2.eq("device_code", device.getDeviceCode()).eq("chip_type", 5);
|
|
|
+ List<EnvDeviceChip> chips3 = chipService.list(queryWrapper2);
|
|
|
+
|
|
|
IEnergyWaterPressureService pressureService = SpringUtil.getBean(IEnergyWaterPressureService.class);
|
|
|
for (int i = 0; i < jsonArray4.size(); i++) {
|
|
|
+ EnergyWaterPressure waterPressure = new EnergyWaterPressure();
|
|
|
BigDecimal data3 = new BigDecimal(Integer.parseInt(jsonArray4.get(i).toString()));
|
|
|
BigDecimal waterMeter2 = data3.divide(big2);
|
|
|
- EnergyWaterPressure waterPressure = new EnergyWaterPressure();
|
|
|
waterPressure.setWaterValue(waterMeter2.toString());
|
|
|
waterPressure.setFarmId(device.getFarmId());
|
|
|
waterPressure.setUnitId(device.getUnitId());
|
|
|
- waterPressure.setChipCode(device.getDeviceCode());
|
|
|
+ waterPressure.setChipCode(chips3.get(i).getChipCode());
|
|
|
waterPressure.setCreateDate(LocalDateTime.now());
|
|
|
pressureService.save(waterPressure);
|
|
|
+ log.info("水压处理完成!");
|
|
|
}
|
|
|
- log.info("水压处理完成!");
|
|
|
|
|
|
}
|
|
|
|
|
|
+ System.out.println("数据处理完成!");
|
|
|
}
|
|
|
|
|
|
- System.out.println("数据处理完成!");
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}
|