瀏覽代碼

定时器

Newspaper 1 年之前
父節點
當前提交
1a42354fd7
共有 23 個文件被更改,包括 336 次插入38 次删除
  1. 1 1
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/user/controller/BizUserController.java
  2. 1 1
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/user/service/BizUserService.java
  3. 8 5
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/user/service/impl/BizUserServiceImpl.java
  4. 1 1
      snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/controller/SysUserController.java
  5. 1 1
      snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/SysUserService.java
  6. 8 5
      snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/impl/SysUserServiceImpl.java
  7. 32 0
      snowy-web-app/src/main/java/vip/xiaonuo/Timer/AiTimer.java
  8. 165 20
      snowy-web-app/src/main/java/vip/xiaonuo/Timer/ProEnergyData.java
  9. 2 3
      snowy-web-app/src/main/java/vip/xiaonuo/Timer/ProEnvData.java
  10. 0 1
      snowy-web-app/src/main/java/vip/xiaonuo/Timer/SendOrgId.java
  11. 70 0
      snowy-web-app/src/main/java/vip/xiaonuo/Timer/WarningTransferTimer.java
  12. 2 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/ai/carCapture/mapper/CarCaptureMapper.java
  13. 3 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/ai/carCapture/mapper/mapping/CarCaptureMapper.xml
  14. 1 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/ai/dirtyCapture/mapper/DirtyCaptureMapper.java
  15. 3 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/ai/dirtyCapture/mapper/mapping/DirtyCaptureMapper.xml
  16. 2 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/ai/personCapture/mapper/PersonCaptureMapper.java
  17. 3 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/ai/personCapture/mapper/mapping/PersonCaptureMapper.xml
  18. 2 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/ai/speciesCapture/mapper/SpeciesCaptureMapper.java
  19. 3 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/ai/speciesCapture/mapper/mapping/SpeciesCaptureMapper.xml
  20. 2 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/energy/energyElectricity/mapper/EnergyElectricityMapper.java
  21. 12 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/energy/energyElectricity/mapper/mapping/EnergyElectricityMapper.xml
  22. 2 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/energy/energyWater/mapper/EnergyWaterMapper.java
  23. 12 0
      snowy-web-app/src/main/java/vip/xiaonuo/modular/energy/energyWater/mapper/mapping/EnergyWaterMapper.xml

+ 1 - 1
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/user/controller/BizUserController.java

@@ -125,7 +125,7 @@ public class BizUserController {
                                      @RequestParam @ApiParam(value = "手机") String phone,
                                      @RequestParam @ApiParam(value = "紧急联系人电话") String emergencyPhone,
                                      @RequestParam @ApiParam(value = "入职日期") String entryDate,
-                                     @RequestParam(value = "avatar",required = false) @ApiParam(value = "员工照片") MultipartFile avatar) throws IOException {
+                                     @RequestParam(value = "avatar",required = false) @ApiParam(value = "员工照片") Object avatar) throws IOException {
         bizUserService.edit(id,empNo,account,name,orgId,departmentId,workLocationId,nickname,gender,homeAddress,detailAddress,idCardNumber,phone,emergencyPhone,entryDate,avatar);
         return CommonResult.ok();
     }

+ 1 - 1
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/user/service/BizUserService.java

@@ -55,7 +55,7 @@ public interface BizUserService extends IService<BizUser> {
      * @author xuyuxiang
      * @date 2022/4/24 21:13
      */
-    void edit(String id, String empNo, String account, String name, String orgId, String departmentId, String workLocationId, String nickname, String gender, String homeAddress, String detailAddress, String idCardNumber, String phone, String emergencyPhone, String entryDate, MultipartFile avatar) throws IOException;
+    void edit(String id, String empNo, String account, String name, String orgId, String departmentId, String workLocationId, String nickname, String gender, String homeAddress, String detailAddress, String idCardNumber, String phone, String emergencyPhone, String entryDate, Object avatar) throws IOException;
 
     /**
      * 删除人员

+ 8 - 5
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/user/service/impl/BizUserServiceImpl.java

@@ -227,7 +227,7 @@ public class BizUserServiceImpl extends ServiceImpl<BizUserMapper, BizUser> impl
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public void edit(String id, String empNo, String account, String name, String orgId, String departmentId, String workLocationId, String nickname, String gender, String homeAddress, String detailAddress, String idCardNumber, String phone, String emergencyPhone, String entryDate, MultipartFile avatar) throws IOException {
+    public void edit(String id, String empNo, String account, String name, String orgId, String departmentId, String workLocationId, String nickname, String gender, String homeAddress, String detailAddress, String idCardNumber, String phone, String emergencyPhone, String entryDate, Object avatar) throws IOException {
         BizUser bizUser = this.queryEntity(id);
         checkParam(id,empNo,account,phone,orgId);
         boolean updateSuperAdminAccount = account.equals(BizBuildInEnum.BUILD_IN_USER_ACCOUNT.getValue()) &&
@@ -259,11 +259,14 @@ public class BizUserServiceImpl extends ServiceImpl<BizUserMapper, BizUser> impl
         bizUser.setEntryDate(entryDate);
 
         if (ObjectUtil.isNotEmpty(avatar)){
-            String imageCom = uploadImage.getImageCom(avatar);
-            if ("上传失败".equals(imageCom)){
-                throw new CommonException("图片上传失败");
+            if (!(avatar instanceof String)){
+                MultipartFile file = (MultipartFile)avatar;
+                String imageCom = uploadImage.getImageCom(file);
+                if ("上传失败".equals(file)){
+                    throw new CommonException("图片上传失败");
+                }
+                bizUser.setAvatar(imageCom);
             }
-            bizUser.setAvatar(imageCom);
         }
 
         this.updateById(bizUser);

+ 1 - 1
snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/controller/SysUserController.java

@@ -124,7 +124,7 @@ public class SysUserController {
                                      @RequestParam @ApiParam(value = "手机") String phone,
                                      @RequestParam @ApiParam(value = "紧急联系人电话") String emergencyPhone,
                                      @RequestParam @ApiParam(value = "入职日期") String entryDate,
-                                     @RequestParam(value = "avatar",required = false) @ApiParam(value = "员工照片") MultipartFile avatar) throws IOException {
+                                     @RequestParam(value = "avatar",required = false) @ApiParam(value = "员工照片") Object avatar) throws IOException {
         sysUserService.edit(id,empNo,account,name,orgId,departmentId,workLocationId,nickname,gender,homeAddress,detailAddress,idCardNumber,phone,emergencyPhone,entryDate,avatar);
         return CommonResult.ok();
     }

+ 1 - 1
snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/SysUserService.java

@@ -73,7 +73,7 @@ public interface SysUserService extends IService<SysUser> {
      * @author xuyuxiang
      * @date 2022/4/24 21:13
      */
-    void edit(String id, String empNo, String account, String name, String orgId, String departmentId, String workLocationId, String nickname, String gender, String homeAddress, String detailAddress, String idCardNumber, String phone, String emergencyPhone, String entryDate, MultipartFile avatar) throws IOException;
+    void edit(String id, String empNo, String account, String name, String orgId, String departmentId, String workLocationId, String nickname, String gender, String homeAddress, String detailAddress, String idCardNumber, String phone, String emergencyPhone, String entryDate, Object avatar) throws IOException;
 
     /**
      * 删除用户

+ 8 - 5
snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/impl/SysUserServiceImpl.java

@@ -301,7 +301,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public void edit(String id, String empNo, String account, String name, String orgId, String departmentId, String workLocationId, String nickname, String gender, String homeAddress, String detailAddress, String idCardNumber, String phone, String emergencyPhone, String entryDate, MultipartFile avatar) throws IOException {
+    public void edit(String id, String empNo, String account, String name, String orgId, String departmentId, String workLocationId, String nickname, String gender, String homeAddress, String detailAddress, String idCardNumber, String phone, String emergencyPhone, String entryDate, Object avatar) throws IOException {
         SysUser sysUser = this.queryEntity(id);
         checkParam(id,empNo,account,phone,orgId);
         boolean updateSuperAdminAccount = account.equals(SysBuildInEnum.BUILD_IN_USER_ACCOUNT.getValue()) &&
@@ -324,11 +324,14 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         sysUser.setEmergencyPhone(emergencyPhone);
         sysUser.setEntryDate(entryDate);
         if (ObjectUtil.isNotEmpty(avatar)){
-            String avatarUrl = uploadImage.getImageCom(avatar);
-            if (avatarUrl.equals("上传失败")){
-                throw new CommonException("图片上传失败!");
+            if (!(avatar instanceof String)){
+                MultipartFile file = (MultipartFile)avatar;
+                String imageCom = uploadImage.getImageCom(file);
+                if ("上传失败".equals(file)){
+                    throw new CommonException("图片上传失败");
+                }
+                sysUser.setAvatar(imageCom);
             }
-            sysUser.setAvatar(avatarUrl);
         }
 
         this.updateById(sysUser);

+ 32 - 0
snowy-web-app/src/main/java/vip/xiaonuo/Timer/AiTimer.java

@@ -0,0 +1,32 @@
+package vip.xiaonuo.Timer;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import vip.xiaonuo.common.timer.CommonTimerTaskRunner;
+import vip.xiaonuo.modular.ai.carCapture.mapper.CarCaptureMapper;
+import vip.xiaonuo.modular.ai.dirtyCapture.mapper.DirtyCaptureMapper;
+import vip.xiaonuo.modular.ai.personCapture.mapper.PersonCaptureMapper;
+import vip.xiaonuo.modular.ai.speciesCapture.mapper.SpeciesCaptureMapper;
+
+@Slf4j
+@Component
+public class AiTimer implements CommonTimerTaskRunner {
+
+    @Autowired
+    private PersonCaptureMapper personCaptureMapper;
+    @Autowired
+    private CarCaptureMapper carCaptureMapper;
+    @Autowired
+    private SpeciesCaptureMapper speciesCaptureMapper;
+    @Autowired
+    private DirtyCaptureMapper dirtyCaptureMapper;
+
+    @Override
+    public void action() {
+        personCaptureMapper.updateTime();
+        carCaptureMapper.updateTime();
+        speciesCaptureMapper.updateTime();
+        dirtyCaptureMapper.updateTime();
+    }
+}

+ 165 - 20
snowy-web-app/src/main/java/vip/xiaonuo/Timer/ProEnergyData.java

@@ -1,18 +1,31 @@
 package vip.xiaonuo.Timer;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
 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.mapper.EnergyDeviceMapper;
 import vip.xiaonuo.modular.energy.energyElectricity.entity.EnergyElectricity;
 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.mapper.EnergyWaterMapper;
 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.List;
 
@@ -26,37 +39,169 @@ public class ProEnergyData implements CommonTimerTaskRunner {
     private EnergyElectricityMapper electricityMapper;
     @Autowired
     private EnergyWaterMapper waterMapper;
+    @Autowired
+    private EnergyThresholdMapper energyThresholdMapper;
+    @Autowired
+    private WarningInfoMapper warningInfoMapper;
+    @Autowired
+    private WarningManagerMapper warningManagerMapper;
+    @Autowired
+    private WarningRemindMapper warningRemindMapper;
+    @Autowired
+    private BaseConfigMapper baseConfigMapper;
 
     @Override
+    @Transactional
     public void action() {
         QueryWrapper<EnergyDevice> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("org_id", "1543842934270394370").eq("delete_flag", "NOT_DELETE")
                 .eq("status", 1);
         List<EnergyDevice> energyDevices = deviceMapper.selectList(queryWrapper);
         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 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);
+                            }
+
+
+                        }
+                    }
+                }
+            }
+
+
+
+
         }
     }
 }

+ 2 - 3
snowy-web-app/src/main/java/vip/xiaonuo/Timer/ProEnvData.java

@@ -98,9 +98,8 @@ public class ProEnvData implements CommonTimerTaskRunner {
                     .eq(WarningRemind::getOrgId, orgId).eq(WarningRemind::getUnitId, pigpenId));
 
             if (ObjectUtil.isNotEmpty(warningRemind)){
-                System.out.println("warningRemind:"+warningRemind);
                 if (warningRemind.getTodayNoRemind() == 1){
-                    return;
+                    continue;
                 }
             }
 
@@ -136,7 +135,7 @@ public class ProEnvData implements CommonTimerTaskRunner {
             EnvThreshold envThreshold = envThresholdMapper.selectOne(new QueryWrapper<EnvThreshold>().lambda().eq(EnvThreshold::getUnitId, pigpenId));
             if (ObjectUtil.isNotEmpty(envThreshold)){
                 if (envThreshold.getIsEnable() == 0){
-                    return;
+                    continue;
                 }
                 if (sea == 1){
                     if ((tem.compareTo(envThreshold.getSpringTemLower()) < 0 )){

+ 0 - 1
snowy-web-app/src/main/java/vip/xiaonuo/Timer/SendOrgId.java

@@ -28,7 +28,6 @@ public class SendOrgId implements CommonTimerTaskRunner {
     private SysOrgMapper orgMapper;
 
     @Override
-//    @Scheduled(cron = "0 0/1 * * * ? ")
     public void action() {
         List<SysOrg> sysOrgs = orgMapper.selectList(new QueryWrapper<SysOrg>()
                 .eq("DELETE_FLAG", "NOT_DELETE").eq("CATEGORY","PASTURE"));

+ 70 - 0
snowy-web-app/src/main/java/vip/xiaonuo/Timer/WarningTransferTimer.java

@@ -0,0 +1,70 @@
+package vip.xiaonuo.Timer;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import io.swagger.models.auth.In;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.common.timer.CommonTimerTaskRunner;
+import vip.xiaonuo.modular.ai.taskInspection.entity.TaskInspection;
+import vip.xiaonuo.modular.ai.taskInspection.mapper.TaskInspectionMapper;
+import vip.xiaonuo.modular.base.baseConfig.entity.BaseConfig;
+import vip.xiaonuo.modular.base.baseConfig.mapper.BaseConfigMapper;
+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.util.Date;
+import java.util.List;
+
+@Slf4j
+@Component
+public class WarningTransferTimer implements CommonTimerTaskRunner {
+    @Autowired
+    private WarningInfoMapper warningInfoMapper;
+    @Autowired
+    private WarningManagerMapper warningManagerMapper;
+    @Autowired
+    private TaskInspectionMapper taskInspectionMapper;
+
+    @Override
+    @Transactional
+    public void action() {
+        List<WarningInfo> warningInfos = warningInfoMapper.selectList(new QueryWrapper<WarningInfo>().lambda().eq(WarningInfo::getWarningStatus, 0));
+        for (WarningInfo warningInfo : warningInfos) {
+            Date warningTime = warningInfo.getWarningTime();
+            Date now = new Date();
+            Integer warningType = null;
+
+            switch (warningInfo.getWarningType()) {
+                case "环控预警":
+                    warningType = 0;
+                    break;
+                case "能耗预警":
+                    warningType = 1;
+                    break;
+                case "饲喂预警":
+                    warningType = 2;
+                    break;
+                case "巡检预警":
+                    warningType = 3;
+                    break;
+            }
+            WarningManager warningManager = warningManagerMapper.selectOne(new QueryWrapper<WarningManager>().lambda().eq(WarningManager::getType, warningType).eq(WarningManager::getOrgId, warningInfo.getOrgId()));
+            if (warningManager != null) {
+                Integer warningUpgradeTime = warningManager.getWarningUpgradeTime();
+                int gap = (int) ((now.getTime() - warningTime.getTime()) / (1000 * 60));
+                if (warningUpgradeTime >= gap) {
+                    String firstManagerId = warningManager.getFirstManagerId();
+                    warningInfo.setWarningNotifierId(firstManagerId);
+                    TaskInspection taskInspection = taskInspectionMapper.selectOne(new QueryWrapper<TaskInspection>().lambda().eq(TaskInspection::getWarningId, warningInfo.getId()));
+                    taskInspection.setNotifierId(firstManagerId);
+                    warningInfoMapper.updateById(warningInfo);
+                    taskInspectionMapper.updateById(taskInspection);
+                }
+            }
+        }
+    }
+}

+ 2 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/ai/carCapture/mapper/CarCaptureMapper.java

@@ -26,4 +26,6 @@ import java.util.List;
  **/
 public interface CarCaptureMapper extends BaseMapper<CarCapture> {
     List<CarCaptureHourVo> listPast(String orgId);
+
+    void updateTime();
 }

+ 3 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/ai/carCapture/mapper/mapping/CarCaptureMapper.xml

@@ -1,6 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="vip.xiaonuo.modular.ai.carCapture.mapper.CarCaptureMapper">
+    <update id="updateTime">
+        UPDATE `car_capture` SET cap_time = DATE_ADD(cap_time, INTERVAL 1 DAY)
+    </update>
 
     <select id="listPast" resultType="vip.xiaonuo.modular.ai.carCapture.entity.vo.CarCaptureHourVo">
         SELECT

+ 1 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/ai/dirtyCapture/mapper/DirtyCaptureMapper.java

@@ -22,4 +22,5 @@ import vip.xiaonuo.modular.ai.dirtyCapture.entity.DirtyCapture;
  * @date  2024/01/06 11:30
  **/
 public interface DirtyCaptureMapper extends BaseMapper<DirtyCapture> {
+    void updateTime();
 }

+ 3 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/ai/dirtyCapture/mapper/mapping/DirtyCaptureMapper.xml

@@ -2,4 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="vip.xiaonuo.modular.ai.dirtyCapture.mapper.DirtyCaptureMapper">
 
+    <update id="updateTime">
+        UPDATE `dirty_capture` SET cap_time = DATE_ADD(cap_time, INTERVAL 1 DAY)
+    </update>
 </mapper>

+ 2 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/ai/personCapture/mapper/PersonCaptureMapper.java

@@ -26,4 +26,6 @@ import java.util.List;
  **/
 public interface PersonCaptureMapper extends BaseMapper<PersonCapture> {
     List<PersonCaptureHourVo> listPast(String orgId);
+
+    void updateTime();
 }

+ 3 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/ai/personCapture/mapper/mapping/PersonCaptureMapper.xml

@@ -1,6 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="vip.xiaonuo.modular.ai.personCapture.mapper.PersonCaptureMapper">
+    <update id="updateTime">
+        UPDATE `person_capture` SET cap_time = DATE_ADD(cap_time, INTERVAL 1 DAY)
+    </update>
 
     <select id="listPast" resultType="vip.xiaonuo.modular.ai.personCapture.entity.vo.PersonCaptureHourVo">
         SELECT

+ 2 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/ai/speciesCapture/mapper/SpeciesCaptureMapper.java

@@ -22,4 +22,6 @@ import vip.xiaonuo.modular.ai.speciesCapture.entity.SpeciesCapture;
  * @date  2024/01/06 11:32
  **/
 public interface SpeciesCaptureMapper extends BaseMapper<SpeciesCapture> {
+
+    void updateTime();
 }

+ 3 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/ai/speciesCapture/mapper/mapping/SpeciesCaptureMapper.xml

@@ -2,4 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="vip.xiaonuo.modular.ai.speciesCapture.mapper.SpeciesCaptureMapper">
 
+    <update id="updateTime">
+        UPDATE `species_capture` SET cap_time = DATE_ADD(cap_time, INTERVAL 1 DAY)
+    </update>
 </mapper>

+ 2 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/energy/energyElectricity/mapper/EnergyElectricityMapper.java

@@ -62,4 +62,6 @@ public interface EnergyElectricityMapper extends BaseMapper<EnergyElectricity> {
     List<EnergyScreenVo> listScreenEnergy(String orgId);
 
     BigDecimal getToday(List<String> pigpenList, String orgId);
+
+    BigDecimal getSevenDayTotal(String orgId,String pigpenId);
 }

+ 12 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/energy/energyElectricity/mapper/mapping/EnergyElectricityMapper.xml

@@ -310,4 +310,16 @@
                 </foreach>
             </if>
     </select>
+
+    <select id="getSevenDayTotal" resultType="java.math.BigDecimal">
+        SELECT
+            COALESCE(ROUND(SUM(electricity_value), 2), 0) AS 'electricityValue'
+        FROM
+            `energy_electricity`
+        WHERE
+            org_id = #{orgId}
+            AND unit_id = #{pigpenId}
+            AND create_date BETWEEN
+                CURDATE() - INTERVAL 6 DAY AND NOW()
+    </select>
 </mapper>

+ 2 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/energy/energyWater/mapper/EnergyWaterMapper.java

@@ -60,4 +60,6 @@ public interface EnergyWaterMapper extends BaseMapper<EnergyWater> {
     List<EnergyWaterListVo> listSevenDay(List<String> pigpenList, String orgId);
 
     BigDecimal getToday(List<String> pigpenList, String orgId);
+
+    BigDecimal getSevenDayTotal(String orgId,String pigpenId);
 }

+ 12 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/energy/energyWater/mapper/mapping/EnergyWaterMapper.xml

@@ -270,4 +270,16 @@
             </foreach>
         </if>
     </select>
+
+    <select id="getSevenDayTotal" resultType="java.math.BigDecimal">
+        SELECT
+            COALESCE(ROUND(SUM(water_value), 2), 0) AS 'waterValue'
+        FROM
+            `energy_water`
+        WHERE
+            org_id = #{orgId}
+            AND unit_id = #{pigpenId}
+            AND create_date BETWEEN
+                CURDATE() - INTERVAL 6 DAY AND NOW()
+    </select>
 </mapper>