EnergyTimer.java 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package com.huimv.admin.timer;
  2. import cn.hutool.core.date.DateTime;
  3. import cn.hutool.core.date.DateUtil;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.huimv.admin.common.utils.NumberUtils;
  6. import com.huimv.admin.entity.*;
  7. import com.huimv.admin.mapper.*;
  8. import org.apache.commons.lang.time.DateUtils;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.context.annotation.Configuration;
  11. import org.springframework.scheduling.annotation.EnableScheduling;
  12. import org.springframework.scheduling.annotation.Scheduled;
  13. import java.text.DecimalFormat;
  14. import java.util.Date;
  15. import java.util.List;
  16. @Configuration
  17. @EnableScheduling
  18. public class EnergyTimer {
  19. @Autowired
  20. private EnergyEnvDeviceMapper deviceMapper;
  21. @Autowired
  22. private EnergyDataMapper dataMapper;
  23. @Autowired
  24. private BasePigpenMapper basePigpenMapper;
  25. @Autowired
  26. private EnergyWarningThresholdMapper warningThresholdMapper;
  27. @Autowired
  28. private EnergyWarningInfoMapper infoMapper;
  29. @Autowired
  30. private BaseFarmMapper baseFarmMapper;
  31. // 能耗数据
  32. @Scheduled(cron = "0 0 */1 * * ? ")
  33. // @Scheduled(cron = "0 */1 * * * ? ")
  34. private void getShenChan() throws Exception {
  35. List<EnergyEnvDevice> energyEnvDevices = deviceMapper.selectList(new QueryWrapper<EnergyEnvDevice>().ne("farm_id",26)
  36. .ne("farm_id",29).ne("farm_id",21).ne("farm_id",28).ne("farm_id",27).
  37. ne("farm_id",35).ne("farm_id",33).ne("farm_id",22).ne("farm_id",23)
  38. .ne("farm_id",34) .ne("farm_id",36) .ne("farm_id",37).ne("farm_id",38));
  39. for (EnergyEnvDevice energyEnvDevice : energyEnvDevices) {
  40. QueryWrapper<BasePigpen> basePigpenQueryWrapper = new QueryWrapper<>();
  41. basePigpenQueryWrapper.eq("id", energyEnvDevice.getUnitId()).eq("farm_id", energyEnvDevice.getFarmId());
  42. BasePigpen basePigpen1 = basePigpenMapper.selectOne(basePigpenQueryWrapper);
  43. QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
  44. queryWrapper.eq("id", basePigpen1.getParentId());
  45. BasePigpen basePigpen = basePigpenMapper.selectOne(queryWrapper);
  46. String feed = NumberUtils.getNumFloat2(6.00, 6.50);
  47. String water = NumberUtils.getNumFloat2(0.08, 0.15);
  48. // String gas = NumberUtils.getNum(200, 280, 1);
  49. String gas = "0";
  50. String electricity = NumberUtils.getNumFloat2(1.0, 1.45);
  51. EnergyData energyData = new EnergyData();
  52. energyData.setCreateDate(new Date());
  53. energyData.setFarmId(energyEnvDevice.getFarmId());
  54. energyData.setUnitId(energyEnvDevice.getUnitId());
  55. if (energyEnvDevice.getFarmId() == 23) {
  56. energyData.setFeedValue("0");
  57. } else {
  58. energyData.setFeedValue(feed);
  59. }
  60. energyData.setWaterValue(water);
  61. energyData.setGasValue(gas);
  62. energyData.setElectricityValue(electricity);
  63. if (energyEnvDevice.getFarmId() == 24) {
  64. String feed1 = NumberUtils.getNumFloat2(1.40, 1.50);
  65. String water1 = NumberUtils.getNumFloat2(20.80, 20.84);
  66. String electricity1 = NumberUtils.getNumFloat2(333.30, 333.34);
  67. energyData.setElectricityValue(electricity1);
  68. energyData.setWaterValue(water1);
  69. energyData.setFeedValue(feed1);
  70. }
  71. dataMapper.insert(energyData);
  72. QueryWrapper<EnergyWarningThreshold> wrapper = new QueryWrapper<>();
  73. wrapper.eq("other1", basePigpen.getStageCode()).eq("farm_id", energyEnvDevice.getFarmId());
  74. EnergyWarningThreshold threshold = warningThresholdMapper.selectOne(wrapper);
  75. QueryWrapper<EnergyData> dataQueryWrapper = new QueryWrapper<>();
  76. dataQueryWrapper.eq("farm_id", energyEnvDevice.getFarmId()).eq("unit_id", energyEnvDevice.getUnitId());
  77. DateTime dateTime = DateUtil.beginOfDay(new Date());
  78. dataQueryWrapper.ge("create_date", dateTime);
  79. EnergyData energyData1 = dataMapper.listDataCount(dataQueryWrapper);
  80. if (Float.parseFloat(energyData1.getWaterValue()) + Float.parseFloat(water) > Float.parseFloat(threshold.getMaxWater())) {
  81. float waterCount = Float.parseFloat(energyData1.getWaterValue()) + Float.parseFloat(water);
  82. DecimalFormat df = new DecimalFormat("#.00");
  83. String format = df.format(waterCount);
  84. EnergyWarningInfo warningInfo = new EnergyWarningInfo();
  85. warningInfo.setWarningType(1);
  86. warningInfo.setWarningContent("今日累计用水量" + format + "t,超过阈值");
  87. warningInfo.setUnitName(basePigpen1.getBuildName());
  88. warningInfo.setUnitId(energyEnvDevice.getUnitId());
  89. warningInfo.setDeviceId(energyEnvDevice.getId());
  90. warningInfo.setDate(new Date());
  91. warningInfo.setFarmId(energyEnvDevice.getFarmId());
  92. warningInfo.setUserIds(threshold.getUserIds());
  93. infoMapper.insert(warningInfo);
  94. }
  95. if (Float.parseFloat(energyData1.getElectricityValue()) + Float.parseFloat(electricity) > Float.parseFloat(threshold.getMaxElectricity())) {
  96. float electricityCount = Float.parseFloat(energyData1.getElectricityValue()) + Float.parseFloat(electricity);
  97. DecimalFormat df = new DecimalFormat("#.00");
  98. String format = df.format(electricityCount);
  99. EnergyWarningInfo warningInfo = new EnergyWarningInfo();
  100. warningInfo.setWarningType(2);
  101. warningInfo.setWarningContent("今日累计用电量" + format + "kw/h,超过阈值");
  102. warningInfo.setUnitName(basePigpen1.getBuildName());
  103. warningInfo.setUnitId(energyEnvDevice.getUnitId());
  104. warningInfo.setDeviceId(energyEnvDevice.getId());
  105. warningInfo.setDate(new Date());
  106. warningInfo.setFarmId(energyEnvDevice.getFarmId());
  107. warningInfo.setUserIds(threshold.getUserIds());
  108. infoMapper.insert(warningInfo);
  109. }
  110. if (Float.parseFloat(energyData1.getFeedValue()) + Float.parseFloat(feed) > Float.parseFloat(threshold.getMaxFeed())) {
  111. float feedCount = Float.parseFloat(energyData1.getFeedValue()) + Float.parseFloat(feed);
  112. DecimalFormat df = new DecimalFormat("#.00");
  113. String format = df.format(feedCount);
  114. EnergyWarningInfo warningInfo = new EnergyWarningInfo();
  115. warningInfo.setWarningType(3);
  116. warningInfo.setWarningContent("今日累计用料量" + format + "kg,超过阈值");
  117. warningInfo.setUnitName(basePigpen.getBuildName());
  118. warningInfo.setUnitId(energyEnvDevice.getUnitId());
  119. warningInfo.setDeviceId(energyEnvDevice.getId());
  120. warningInfo.setDate(new Date());
  121. warningInfo.setFarmId(energyEnvDevice.getFarmId());
  122. warningInfo.setUserIds(threshold.getUserIds());
  123. infoMapper.insert(warningInfo);
  124. }
  125. if (Float.parseFloat(energyData1.getGasValue()) + Float.parseFloat(gas) > Float.parseFloat(threshold.getMaxGas())) {
  126. float gasCount = Float.parseFloat(energyData1.getGasValue()) + Float.parseFloat(gas);
  127. DecimalFormat df = new DecimalFormat("#.00");
  128. String format = df.format(gasCount);
  129. EnergyWarningInfo warningInfo = new EnergyWarningInfo();
  130. warningInfo.setWarningType(4);
  131. warningInfo.setWarningContent("今日累计用气量" + format + "m³,超过阈值");
  132. warningInfo.setUnitName(basePigpen.getBuildName());
  133. warningInfo.setUnitId(energyEnvDevice.getUnitId());
  134. warningInfo.setDeviceId(energyEnvDevice.getId());
  135. warningInfo.setDate(new Date());
  136. warningInfo.setFarmId(energyEnvDevice.getFarmId());
  137. warningInfo.setUserIds(threshold.getUserIds());
  138. infoMapper.insert(warningInfo);
  139. }
  140. }
  141. }
  142. }