From 44bfab8ff28cbeb54686f9398699615324ca879b Mon Sep 17 00:00:00 2001 From: 沈斌 <bluelazysb@hotmail.com> Date: Mon, 20 Nov 2017 12:49:05 +0800 Subject: [PATCH] test --- src/main/java/com/moral/monitor/listener/quartz/StopStateCheck.java | 85 +++++++++++++++++++++++++++++++++++------- 1 files changed, 70 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/moral/monitor/listener/quartz/StopStateCheck.java b/src/main/java/com/moral/monitor/listener/quartz/StopStateCheck.java index 434f45b..88ae8b9 100644 --- a/src/main/java/com/moral/monitor/listener/quartz/StopStateCheck.java +++ b/src/main/java/com/moral/monitor/listener/quartz/StopStateCheck.java @@ -1,18 +1,31 @@ package com.moral.monitor.listener.quartz; -import com.moral.monitor.dao.JobDao; -import com.moral.monitor.entity.Equipment; -import com.moral.monitor.entity.Logger; - -import javax.annotation.Resource; -import java.util.Calendar; import java.util.Date; import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.data.redis.core.RedisTemplate; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.moral.monitor.dao.JobDao; +import com.moral.monitor.entity.Equipment; +import com.moral.monitor.util.RedisUtil; public class StopStateCheck { @Resource JobDao jobDao; + + @Resource + RedisTemplate<String, String> redisTemplate; + + private int waits = 30000; public void check() { @@ -20,19 +33,61 @@ for (int i = 0; i < equipmentList.size(); i++) { Equipment equipment = equipmentList.get(i); String mac = equipment.getMac(); - Logger logger = jobDao.getLoggerByMac(mac); - if(logger != null) { - Date time = logger.getTime(); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(time); - calendar.add(Calendar.MINUTE, 10); - Date date = new Date(); - if(calendar.getTime().getTime() < date.getTime()) { + String static_equ_json = RedisUtil.get(redisTemplate, "static_equ_" + mac); + //���������������null��������������������������������������������������� + if(StringUtils.isEmpty(static_equ_json)) { + //��������������������������� + jobDao.updateStateByMac(mac, 4); + continue; + } + Map<String,String> seJSON = JSON.parseObject(static_equ_json,new TypeReference<Map<String,String>>() {}); + if(!seJSON.isEmpty()) { + String orgId = seJSON.get("orgId"); + String areaCode = seJSON.get("areaCode"); + String monitorpointId = seJSON.get("monitorpointId"); + + String key = "state_" + orgId + "_" + areaCode + "_" + monitorpointId + "_" + mac; + String state_json = RedisUtil.get(redisTemplate, key); + + //������������state���null��������������������������������������������������� + if(StringUtils.isEmpty(state_json)) { + //��������������������������� + jobDao.updateStateByMac(mac, 4); + continue; + } + Map<String,String> stateJSON = JSON.parseObject(state_json,new TypeReference<Map<String,String>>() {}); + if(!stateJSON.isEmpty()) { + Long time = Long.parseLong(stateJSON.get("time")); + if(time + waits < new Date().getTime()) { + jobDao.updateStateByMac(mac, 4); + } + } + else { jobDao.updateStateByMac(mac, 4); } - } else { + } + else { jobDao.updateStateByMac(mac, 4); } } + +// List<Equipment> equipmentList = jobDao.getAllEquipment(); +// for (int i = 0; i < equipmentList.size(); i++) { +// Equipment equipment = equipmentList.get(i); +// String mac = equipment.getMac(); +// Logger logger = jobDao.getLoggerByMac(mac); +// if(logger != null) { +// Date time = logger.getTime(); +// Calendar calendar = Calendar.getInstance(); +// calendar.setTime(time); +// calendar.add(Calendar.MINUTE, 10); +// Date date = new Date(); +// if(calendar.getTime().getTime() < date.getTime()) { +// jobDao.updateStateByMac(mac, 4); +// } +// } else { +// jobDao.updateStateByMac(mac, 4); +// } +// } } } -- Gitblit v1.8.0