package com.moral.task; import com.alibaba.fastjson.JSON; import com.moral.entity.Device; import com.moral.service.DeviceAdjustValueService; import com.moral.service.DeviceAdjustValueTimingService; import com.moral.service.DeviceService; import com.moral.util.AlarmUtils_2; import com.moral.util.LengthOfTimeUtils; import com.moral.util.RedisUtils; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.log.XxlJobLogger; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @Component public class OffLineAlarmTask { private static transient Logger logger = LoggerFactory.getLogger(OffLineAlarmTask.class); @Resource RedisUtils redisUtils; @XxlJob("OffLineAlarm") public ReturnT OffLineAlarm(String params) { try { int dataToLianyunquGovernment = Integer.parseInt(redisUtils.get("dataToLianyunquGovernment").toString()); int dataToChangShu = Integer.parseInt(redisUtils.get("dataToChangShu").toString()); int dataToLongTeng = Integer.parseInt(redisUtils.get("dataToLongTeng").toString()); int dataToJinTanNewMaterials = Integer.parseInt(redisUtils.get("dataToJinTanNewMaterials").toString()); int nowTime = LengthOfTimeUtils.getSecondTimestampTwo(new Date()); List programList = new ArrayList<>(); if (nowTime - dataToLianyunquGovernment > 1200){ programList.add("dataToLianyunquGovernment"); } if (nowTime - dataToChangShu > 7200){ programList.add("dataToChangShu"); } if (nowTime - dataToLongTeng > 600){ programList.add("dataToLongTeng"); } if (nowTime - dataToJinTanNewMaterials > 300){ programList.add("dataToJinTanNewMaterials"); } if (!programList.isEmpty()){ AlarmUtils_2.sendMail("357328213@qq.com,1vv_zkk6ji3kln@dingtalk.com","程序掉线警报!",programList.toString()+"程序可能离线了!"); ReturnT returnT = new ReturnT(200, "执行成功!有邮件发送!"); return returnT; } ReturnT returnT = new ReturnT(200, "执行成功!无邮件发送"); return returnT; }catch (Exception e){ XxlJobLogger.log("OffLineAlarmException:" + e.getMessage()); logger.error(e.getMessage()); e.printStackTrace(); } ReturnT returnT = new ReturnT(500, "执行失败!"); return returnT; } }