|
@@ -1,18 +1,31 @@
|
|
package vip.xiaonuo.Timer;
|
|
package vip.xiaonuo.Timer;
|
|
|
|
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
import vip.xiaonuo.common.timer.CommonTimerTaskRunner;
|
|
import vip.xiaonuo.common.timer.CommonTimerTaskRunner;
|
|
|
|
+import vip.xiaonuo.modular.ai.warningRemind.entity.WarningRemind;
|
|
|
|
+import vip.xiaonuo.modular.ai.warningRemind.mapper.WarningRemindMapper;
|
|
|
|
+import vip.xiaonuo.modular.base.baseConfig.entity.BaseConfig;
|
|
|
|
+import vip.xiaonuo.modular.base.baseConfig.mapper.BaseConfigMapper;
|
|
import vip.xiaonuo.modular.energy.energyDevice.entity.EnergyDevice;
|
|
import vip.xiaonuo.modular.energy.energyDevice.entity.EnergyDevice;
|
|
import vip.xiaonuo.modular.energy.energyDevice.mapper.EnergyDeviceMapper;
|
|
import vip.xiaonuo.modular.energy.energyDevice.mapper.EnergyDeviceMapper;
|
|
import vip.xiaonuo.modular.energy.energyElectricity.entity.EnergyElectricity;
|
|
import vip.xiaonuo.modular.energy.energyElectricity.entity.EnergyElectricity;
|
|
import vip.xiaonuo.modular.energy.energyElectricity.mapper.EnergyElectricityMapper;
|
|
import vip.xiaonuo.modular.energy.energyElectricity.mapper.EnergyElectricityMapper;
|
|
|
|
+import vip.xiaonuo.modular.energy.energyThreshold.entity.EnergyThreshold;
|
|
|
|
+import vip.xiaonuo.modular.energy.energyThreshold.mapper.EnergyThresholdMapper;
|
|
import vip.xiaonuo.modular.energy.energyWater.entity.EnergyWater;
|
|
import vip.xiaonuo.modular.energy.energyWater.entity.EnergyWater;
|
|
import vip.xiaonuo.modular.energy.energyWater.mapper.EnergyWaterMapper;
|
|
import vip.xiaonuo.modular.energy.energyWater.mapper.EnergyWaterMapper;
|
|
import vip.xiaonuo.modular.env.envdevice.entity.EnvDevice;
|
|
import vip.xiaonuo.modular.env.envdevice.entity.EnvDevice;
|
|
|
|
+import vip.xiaonuo.modular.warning.warningInfo.entity.WarningInfo;
|
|
|
|
+import vip.xiaonuo.modular.warning.warningInfo.mapper.WarningInfoMapper;
|
|
|
|
+import vip.xiaonuo.modular.warning.warningManager.entity.WarningManager;
|
|
|
|
+import vip.xiaonuo.modular.warning.warningManager.mapper.WarningManagerMapper;
|
|
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
@@ -26,37 +39,169 @@ public class ProEnergyData implements CommonTimerTaskRunner {
|
|
private EnergyElectricityMapper electricityMapper;
|
|
private EnergyElectricityMapper electricityMapper;
|
|
@Autowired
|
|
@Autowired
|
|
private EnergyWaterMapper waterMapper;
|
|
private EnergyWaterMapper waterMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ private EnergyThresholdMapper energyThresholdMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ private WarningInfoMapper warningInfoMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ private WarningManagerMapper warningManagerMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ private WarningRemindMapper warningRemindMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ private BaseConfigMapper baseConfigMapper;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
+ @Transactional
|
|
public void action() {
|
|
public void action() {
|
|
QueryWrapper<EnergyDevice> queryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<EnergyDevice> queryWrapper = new QueryWrapper<>();
|
|
queryWrapper.eq("org_id", "1543842934270394370").eq("delete_flag", "NOT_DELETE")
|
|
queryWrapper.eq("org_id", "1543842934270394370").eq("delete_flag", "NOT_DELETE")
|
|
.eq("status", 1);
|
|
.eq("status", 1);
|
|
List<EnergyDevice> energyDevices = deviceMapper.selectList(queryWrapper);
|
|
List<EnergyDevice> energyDevices = deviceMapper.selectList(queryWrapper);
|
|
for (EnergyDevice energyDevice : energyDevices) {
|
|
for (EnergyDevice energyDevice : energyDevices) {
|
|
|
|
+ Date now = new Date();
|
|
|
|
+ String orgId = energyDevice.getOrgId();
|
|
|
|
+ String pigpenId = energyDevice.getInstallPosition();
|
|
String waterValue = NumberUtils.getNumFloat(5.0, 20.0);
|
|
String waterValue = NumberUtils.getNumFloat(5.0, 20.0);
|
|
String electricityValue = NumberUtils.getNumFloat(10.0, 100.0);
|
|
String electricityValue = NumberUtils.getNumFloat(10.0, 100.0);
|
|
|
|
|
|
- EnergyWater water = new EnergyWater();
|
|
|
|
- water.setOrgId(energyDevice.getOrgId());
|
|
|
|
- water.setUnitId(energyDevice.getInstallPosition());
|
|
|
|
- water.setDeviceCode(energyDevice.getDeviceCode());
|
|
|
|
- water.setCreateDate(new Date());
|
|
|
|
- water.setOriginalDate(new Date());
|
|
|
|
- water.setWaterValue(waterValue);
|
|
|
|
- water.setOriginalValue(waterValue);
|
|
|
|
-
|
|
|
|
- EnergyElectricity electricity = new EnergyElectricity();
|
|
|
|
- electricity.setOrgId(energyDevice.getOrgId());
|
|
|
|
- electricity.setUnitId(energyDevice.getInstallPosition());
|
|
|
|
- electricity.setDeviceCode(energyDevice.getDeviceCode());
|
|
|
|
- electricity.setCreateDate(new Date());
|
|
|
|
- electricity.setOriginalDate(new Date());
|
|
|
|
- electricity.setElectricityValue(electricityValue);
|
|
|
|
- electricity.setOriginalValue(electricityValue);
|
|
|
|
-
|
|
|
|
- electricityMapper.insert(electricity);
|
|
|
|
- waterMapper.insert(water);
|
|
|
|
|
|
+ EnergyWater energyWater = new EnergyWater();
|
|
|
|
+ energyWater.setOrgId(orgId);
|
|
|
|
+ energyWater.setUnitId(pigpenId);
|
|
|
|
+ energyWater.setDeviceCode(energyDevice.getDeviceCode());
|
|
|
|
+ energyWater.setCreateDate(now);
|
|
|
|
+ energyWater.setOriginalDate(now);
|
|
|
|
+ energyWater.setWaterValue(waterValue);
|
|
|
|
+ energyWater.setOriginalValue(waterValue);
|
|
|
|
+
|
|
|
|
+ EnergyElectricity energyElectricity = new EnergyElectricity();
|
|
|
|
+ energyElectricity.setOrgId(orgId);
|
|
|
|
+ energyElectricity.setUnitId(pigpenId);
|
|
|
|
+ energyElectricity.setDeviceCode(energyDevice.getDeviceCode());
|
|
|
|
+ energyElectricity.setCreateDate(now);
|
|
|
|
+ energyElectricity.setOriginalDate(now);
|
|
|
|
+ energyElectricity.setElectricityValue(electricityValue);
|
|
|
|
+ energyElectricity.setOriginalValue(electricityValue);
|
|
|
|
+ electricityMapper.insert(energyElectricity);
|
|
|
|
+ waterMapper.insert(energyWater);
|
|
|
|
+
|
|
|
|
+ BigDecimal water = new BigDecimal(waterValue);
|
|
|
|
+ BigDecimal ele = new BigDecimal(electricityValue);
|
|
|
|
+
|
|
|
|
+ BaseConfig baseConfig = baseConfigMapper.selectOne(new QueryWrapper<BaseConfig>().lambda().eq(BaseConfig::getConfigName, "预警类型").eq(BaseConfig::getParentId, 0));
|
|
|
|
+ BaseConfig envWarning = baseConfigMapper.selectOne(new QueryWrapper<BaseConfig>().lambda().eq(BaseConfig::getConfigName, "能耗预警").eq(BaseConfig::getParentId, baseConfig.getId()));
|
|
|
|
+
|
|
|
|
+ WarningRemind warningRemind = warningRemindMapper.selectOne(new QueryWrapper<WarningRemind>().lambda()
|
|
|
|
+ .eq(WarningRemind::getWarningTypeId, envWarning.getId())
|
|
|
|
+ .eq(WarningRemind::getOrgId, orgId).eq(WarningRemind::getUnitId, pigpenId));
|
|
|
|
+
|
|
|
|
+ if (ObjectUtil.isNotEmpty(warningRemind)){
|
|
|
|
+ if (warningRemind.getTodayNoRemind() != 1){
|
|
|
|
+ EnergyThreshold energyThreshold = energyThresholdMapper.selectOne(new QueryWrapper<EnergyThreshold>().lambda().eq(EnergyThreshold::getOrgId, orgId).eq(EnergyThreshold::getUnitId, pigpenId).eq(EnergyThreshold::getIsEnable,1));
|
|
|
|
+ if (ObjectUtil.isNotEmpty(energyThreshold)){
|
|
|
|
+ WarningManager warningManager = warningManagerMapper.selectOne(new QueryWrapper<WarningManager>().lambda().eq(WarningManager::getOrgId, orgId).eq(WarningManager::getType, 1));
|
|
|
|
+ if (ObjectUtil.isNotEmpty(warningManager)){
|
|
|
|
+ BigDecimal waterLower = energyThreshold.getWaterLower();
|
|
|
|
+ if (water.compareTo(waterLower) < 0){
|
|
|
|
+ WarningInfo warningInfo = new WarningInfo();
|
|
|
|
+ warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
|
|
|
|
+ warningInfo.setWarningContent("用水"+water+"吨低于阈值");
|
|
|
|
+ warningInfo.setUnitId(pigpenId);
|
|
|
|
+ warningInfo.setWarningTime(now);
|
|
|
|
+ warningInfo.setOrgId(orgId);
|
|
|
|
+ warningInfo.setWarningTypeId(envWarning.getId());
|
|
|
|
+ warningInfoMapper.insert(warningInfo);
|
|
|
|
+ }
|
|
|
|
+ BigDecimal waterUpper = energyThreshold.getWaterUpper();
|
|
|
|
+ if (water.compareTo(waterUpper) > 0){
|
|
|
|
+ WarningInfo warningInfo = new WarningInfo();
|
|
|
|
+ warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
|
|
|
|
+ warningInfo.setWarningContent("用水"+water+"吨高于阈值");
|
|
|
|
+ warningInfo.setUnitId(pigpenId);
|
|
|
|
+ warningInfo.setWarningTime(now);
|
|
|
|
+ warningInfo.setOrgId(orgId);
|
|
|
|
+ warningInfo.setWarningTypeId(envWarning.getId());
|
|
|
|
+ warningInfoMapper.insert(warningInfo);
|
|
|
|
+ }
|
|
|
|
+ BigDecimal electricityLower = energyThreshold.getElectricityLower();
|
|
|
|
+ if (ele.compareTo(electricityLower) < 0){
|
|
|
|
+ WarningInfo warningInfo = new WarningInfo();
|
|
|
|
+ warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
|
|
|
|
+ warningInfo.setWarningContent("用电"+ele+"kw·h低于阈值");
|
|
|
|
+ warningInfo.setUnitId(pigpenId);
|
|
|
|
+ warningInfo.setWarningTime(now);
|
|
|
|
+ warningInfo.setOrgId(orgId);
|
|
|
|
+ warningInfo.setWarningTypeId(envWarning.getId());
|
|
|
|
+ warningInfoMapper.insert(warningInfo);
|
|
|
|
+ }
|
|
|
|
+ BigDecimal electricityUpper = energyThreshold.getElectricityUpper();
|
|
|
|
+ if (ele.compareTo(electricityUpper) > 0){
|
|
|
|
+ WarningInfo warningInfo = new WarningInfo();
|
|
|
|
+ warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
|
|
|
|
+ warningInfo.setWarningContent("用电"+ele+"kw·h高于阈值");
|
|
|
|
+ warningInfo.setUnitId(pigpenId);
|
|
|
|
+ warningInfo.setWarningTime(now);
|
|
|
|
+ warningInfo.setOrgId(orgId);
|
|
|
|
+ warningInfo.setWarningTypeId(envWarning.getId());
|
|
|
|
+ warningInfoMapper.insert(warningInfo);
|
|
|
|
+ }
|
|
|
|
+ BigDecimal sevenDayEleTotal = electricityMapper.getSevenDayTotal(orgId, pigpenId);
|
|
|
|
+ BigDecimal sevenDayWaterTotal = waterMapper.getSevenDayTotal(orgId, pigpenId);
|
|
|
|
+
|
|
|
|
+ BigDecimal sevenDayWaterLower = energyThreshold.getSevenDayWaterLower();
|
|
|
|
+ if (sevenDayWaterTotal.compareTo(sevenDayWaterLower) < 0){
|
|
|
|
+ WarningInfo warningInfo = new WarningInfo();
|
|
|
|
+ warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
|
|
|
|
+ warningInfo.setWarningContent("七日用水"+sevenDayWaterTotal+"吨低于阈值");
|
|
|
|
+ warningInfo.setUnitId(pigpenId);
|
|
|
|
+ warningInfo.setWarningTime(now);
|
|
|
|
+ warningInfo.setOrgId(orgId);
|
|
|
|
+ warningInfo.setWarningTypeId(envWarning.getId());
|
|
|
|
+ warningInfoMapper.insert(warningInfo);
|
|
|
|
+ }
|
|
|
|
+ BigDecimal sevenDayWaterUpper = energyThreshold.getSevenDayWaterUpper();
|
|
|
|
+ if (sevenDayWaterTotal.compareTo(sevenDayWaterUpper) > 0){
|
|
|
|
+ WarningInfo warningInfo = new WarningInfo();
|
|
|
|
+ warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
|
|
|
|
+ warningInfo.setWarningContent("七日用水"+sevenDayWaterTotal+"吨高于阈值");
|
|
|
|
+ warningInfo.setUnitId(pigpenId);
|
|
|
|
+ warningInfo.setWarningTime(now);
|
|
|
|
+ warningInfo.setOrgId(orgId);
|
|
|
|
+ warningInfo.setWarningTypeId(envWarning.getId());
|
|
|
|
+ warningInfoMapper.insert(warningInfo);
|
|
|
|
+ }
|
|
|
|
+ BigDecimal sevenDayElectricityLower = energyThreshold.getSevenDayElectricityLower();
|
|
|
|
+ if (sevenDayEleTotal.compareTo(sevenDayElectricityLower) < 0){
|
|
|
|
+ WarningInfo warningInfo = new WarningInfo();
|
|
|
|
+ warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
|
|
|
|
+ warningInfo.setWarningContent("七日用电"+sevenDayEleTotal+"kw·h低于阈值");
|
|
|
|
+ warningInfo.setUnitId(pigpenId);
|
|
|
|
+ warningInfo.setWarningTime(now);
|
|
|
|
+ warningInfo.setOrgId(orgId);
|
|
|
|
+ warningInfo.setWarningTypeId(envWarning.getId());
|
|
|
|
+ warningInfoMapper.insert(warningInfo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ BigDecimal sevenDayElectricityUpper = energyThreshold.getSevenDayElectricityUpper();
|
|
|
|
+ if (sevenDayEleTotal.compareTo(sevenDayElectricityUpper) > 0){
|
|
|
|
+ WarningInfo warningInfo = new WarningInfo();
|
|
|
|
+ warningInfo.setWarningNotifierId(warningManager.getSecondManagerId());
|
|
|
|
+ warningInfo.setWarningContent("七日用电"+sevenDayEleTotal+"kw·h高于阈值");
|
|
|
|
+ warningInfo.setUnitId(pigpenId);
|
|
|
|
+ warningInfo.setWarningTime(now);
|
|
|
|
+ warningInfo.setOrgId(orgId);
|
|
|
|
+ warningInfo.setWarningTypeId(envWarning.getId());
|
|
|
|
+ warningInfoMapper.insert(warningInfo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|