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