jinpengyong
2020-11-27 72026a58219a4ee7cc41a7b37204da372d16d2aa
设备掉线报警邮件发送
1 files added
2 files modified
58 ■■■■■ changed files
src/main/java/com/moral/mapper/DeviceMapper.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/task/OffLineDevicesTask.java 48 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/DeviceMapper.xml 8 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/mapper/DeviceMapper.java
@@ -40,4 +40,6 @@
    List<Map<String, Object>> getAllByMacList(List<String> list);
    List<Map<String, Object>> getOfflineDevice();
}
src/main/java/com/moral/task/OffLineDevicesTask.java
New file
@@ -0,0 +1,48 @@
package com.moral.task;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import com.moral.mapper.DeviceMapper;
import com.moral.util.AlarmUtils_2;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.xxl.job.core.log.XxlJobLogger;
@Component
public class OffLineDevicesTask {
    private static transient Logger logger = LoggerFactory.getLogger(OffLineAlarmTask.class);
    @Resource
    private DeviceMapper deviceMapper;
    @XxlJob("OffLineDevices")
    public ReturnT OffLineAlarm(String params) {
        List<Map<String, Object>> devices = deviceMapper.getOfflineDevice();
        List<String> list = new ArrayList<>();
        for (Map<String, Object> device : devices) {
            String name = device.get("name").toString();
            String mac = device.get("mac").toString();
            String s = name + "(" + mac + ")";
            list.add(s);
        }
        if (list.size() != 0) {
            try {
                AlarmUtils_2.sendMail("276999030@qq.com", "设备掉线警报!", list.toString() + "设备掉线!");
                return new ReturnT(200, "执行成功!有邮件发送!");
            } catch (Exception e) {
                XxlJobLogger.log("OffLineDevices:" + e.getMessage());
                logger.error(e.getMessage());
                e.printStackTrace();
            }
        }
        return new ReturnT(500, "无掉线设备,不发送邮件");
    }
}
src/main/resources/mapper/DeviceMapper.xml
@@ -301,4 +301,12 @@
        where mac in
        <foreach item="item" collection="list" index="index" open="(" separator="," close=")">#{item}</foreach>
    </select>
    <select id="getOfflineDevice" resultType="java.util.Map">
        SELECT name,mac
        from device
        WHERE state=4 and is_delete=0 and monitor_point_id in
        (SELECT id FROM monitor_point WHERE city_code!=130900 or (city_code=130900 and  organization_id  in (60, 65, 159, 165, 166) and id!=56 and id!=83 and id!=84))
        and mac not in (SELECT mac FROM special_device_config);
    </select>
</mapper>