|
@@ -15,6 +15,8 @@ import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.data.redis.core.SetOperations;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.sql.Date;
|
|
|
+import java.sql.Timestamp;
|
|
|
import java.text.ParseException;
|
|
|
import java.util.Map;
|
|
|
import java.util.Set;
|
|
@@ -59,13 +61,16 @@ public class DeviceListener {
|
|
|
//获取牧场id
|
|
|
String farmId = deviceService.getFarmIdByDeviceCode(deviceCode);
|
|
|
String todayDateText = new DateUtil().getTodayDateText();
|
|
|
+ Date todayDate = new Date(new java.util.Date().getTime());
|
|
|
+ Timestamp nowTimestamp = new Timestamp(new java.util.Date().getTime());
|
|
|
+
|
|
|
//判断该设备编号是否存在缓存在线集合当中;
|
|
|
if (cacheService.isExistDeviceOnlineSet(farmId, deviceCode, todayDateText)) {
|
|
|
//Step1:更新设备注册表[设置活动状态为1,设置活动状态更新时间]
|
|
|
//Step2:更新在线统计[心跳数+1,心跳第一次上传时间,心跳最后一次时间],预先判断该数据是否存在,如果不存在要先添加记录,如果存在就修改数据
|
|
|
|
|
|
//# 更新设备注册表 #
|
|
|
- deviceService.updateDeviceRegister(farmId, deviceCode);
|
|
|
+ deviceService.updateDeviceRegister(farmId, deviceCode,nowTimestamp);
|
|
|
|
|
|
//# 更新在线统计 #
|
|
|
deviceService.updateDeviceOnline(farmId, deviceCode);
|
|
@@ -75,15 +80,15 @@ public class DeviceListener {
|
|
|
//Step3:更新在线统计[],预先判断该数据是否存在,如果不存在要先添加记录,如果存在就修改数据
|
|
|
//Step4:将新设备编号加入缓存[]
|
|
|
|
|
|
- //# 更新总状态表 #
|
|
|
- deviceService.updateDeviceAllStatus(farmId, deviceCode);
|
|
|
-
|
|
|
//# 更新设备注册表 #
|
|
|
- deviceService.updateDeviceRegister(farmId, deviceCode);
|
|
|
+ deviceService.updateDeviceRegister(farmId, deviceCode,nowTimestamp);
|
|
|
|
|
|
- //# 更新在线统计 #
|
|
|
+ //# 更新在线统计 #【重写】
|
|
|
deviceService.updateDeviceOnline(farmId, deviceCode);
|
|
|
|
|
|
+ //# 更新总状态表 # 【重写】
|
|
|
+ deviceService.updateDeviceAllStatus(farmId, deviceCode);
|
|
|
+
|
|
|
//# 将新设备编号加入在线缓存 #
|
|
|
cacheService.putDeviceToOnline(farmId, deviceCode,todayDateText);
|
|
|
}
|
|
@@ -104,39 +109,39 @@ public class DeviceListener {
|
|
|
// deviceService.updateFarmDeviceStatus(deviceCode);
|
|
|
}
|
|
|
|
|
|
- private void test1(String farmId, String deviceCode) {
|
|
|
-// String deviceCode = "202007239999869";
|
|
|
-//// Map map = new HashMap<>();
|
|
|
-//// map.put("name","栋舍");
|
|
|
-//// map.put("id","001");
|
|
|
-//// System.out.println("map>>"+map.toString());
|
|
|
-// String deviceRegHashKey = "device_register_"+deviceCode;
|
|
|
-// //为hash结构设置多个键值对(hmset)
|
|
|
-//// redisTemplate.opsForHash().putAll(deviceRegHashKey, map);
|
|
|
+// private void test1(String farmId, String deviceCode) {
|
|
|
+//// String deviceCode = "202007239999869";
|
|
|
+////// Map map = new HashMap<>();
|
|
|
+////// map.put("name","栋舍");
|
|
|
+////// map.put("id","001");
|
|
|
+////// System.out.println("map>>"+map.toString());
|
|
|
+//// String deviceRegHashKey = "device_register_"+deviceCode;
|
|
|
+//// //为hash结构设置多个键值对(hmset)
|
|
|
+////// redisTemplate.opsForHash().putAll(deviceRegHashKey, map);
|
|
|
+////
|
|
|
+////
|
|
|
+////// Object actObj = redisTemplate.opsForHash().get(deviceCode, "act");
|
|
|
+////// System.out.println("actObj>>"+actObj);
|
|
|
+//// Object nameObj = redisTemplate.opsForHash().get(deviceRegHashKey,"name");
|
|
|
+//// System.out.println("nameObj>>"+nameObj.toString());
|
|
|
//
|
|
|
+//// System.out.println("test1()");
|
|
|
+//// redisTemplate.opsForSet().add("testSet", "java");
|
|
|
+////
|
|
|
+//// //定义一个set集合并设置集合值
|
|
|
+//// SetOperations<String, String> set = redisTemplate.opsForSet();
|
|
|
+//// set.add("set1","22");
|
|
|
+//// set.add("set1","33");
|
|
|
+//// set.add("set1","44");
|
|
|
+//// // 通过key获取set集合中的对象值
|
|
|
+//// Set<String> resultSet = redisTemplate.opsForSet().members("set1");
|
|
|
+//// System.out.println("resultSet>>"+resultSet);
|
|
|
+// SetOperations<String, String> set = redisTemplate.opsForSet();
|
|
|
+// set.add(BizConst.SET_FARM_DEVICE_ONLINE_PREFIX + farmId, deviceCode);
|
|
|
//
|
|
|
-//// Object actObj = redisTemplate.opsForHash().get(deviceCode, "act");
|
|
|
-//// System.out.println("actObj>>"+actObj);
|
|
|
-// Object nameObj = redisTemplate.opsForHash().get(deviceRegHashKey,"name");
|
|
|
-// System.out.println("nameObj>>"+nameObj.toString());
|
|
|
-
|
|
|
-// System.out.println("test1()");
|
|
|
-// redisTemplate.opsForSet().add("testSet", "java");
|
|
|
-//
|
|
|
-// //定义一个set集合并设置集合值
|
|
|
-// SetOperations<String, String> set = redisTemplate.opsForSet();
|
|
|
-// set.add("set1","22");
|
|
|
-// set.add("set1","33");
|
|
|
-// set.add("set1","44");
|
|
|
-// // 通过key获取set集合中的对象值
|
|
|
-// Set<String> resultSet = redisTemplate.opsForSet().members("set1");
|
|
|
-// System.out.println("resultSet>>"+resultSet);
|
|
|
- SetOperations<String, String> set = redisTemplate.opsForSet();
|
|
|
- set.add(BizConst.SET_FARM_DEVICE_ONLINE_PREFIX + farmId, deviceCode);
|
|
|
-
|
|
|
- Set<String> resultSet = redisTemplate.opsForSet().members(BizConst.SET_FARM_DEVICE_ONLINE_PREFIX + farmId);
|
|
|
- System.out.println(BizConst.SET_FARM_DEVICE_ONLINE_PREFIX + farmId + " >>" + resultSet);
|
|
|
- }
|
|
|
+// Set<String> resultSet = redisTemplate.opsForSet().members(BizConst.SET_FARM_DEVICE_ONLINE_PREFIX + farmId);
|
|
|
+// System.out.println(BizConst.SET_FARM_DEVICE_ONLINE_PREFIX + farmId + " >>" + resultSet);
|
|
|
+// }
|
|
|
|
|
|
/**
|
|
|
* @Method : processDeviceTemp
|
|
@@ -177,30 +182,32 @@ public class DeviceListener {
|
|
|
// (C)更新在线统计;
|
|
|
// (D)将设备好加入到在线缓存集合当中;
|
|
|
String todayDateText = new DateUtil().getTodayDateText();
|
|
|
+ Date todayDate = new Date(new java.util.Date().getTime());
|
|
|
+ Timestamp nowTimestamp = new Timestamp(new java.util.Date().getTime());
|
|
|
//判断该设备编号是否存在牧场缓存在线集合当中;
|
|
|
if (cacheService.isExistDeviceOnlineSet(farmId, deviceCode,todayDateText)) {
|
|
|
- System.out.println("## ++++");
|
|
|
+// System.out.println("## ++++");
|
|
|
//# 更新在线统计 #
|
|
|
deviceService.updateDeviceOnlineWithEnvtemp(farmId, deviceCode);
|
|
|
- System.out.println("## ++++1");
|
|
|
+// System.out.println("## ++++1");
|
|
|
//# 更新设备注册表 #
|
|
|
- deviceService.updateDeviceRegister(farmId, deviceCode);
|
|
|
- System.out.println("## ++++2");
|
|
|
+ deviceService.updateDeviceRegister(farmId, deviceCode,nowTimestamp);
|
|
|
+// System.out.println("## ++++2");
|
|
|
} else {
|
|
|
//Step1:更新总状态表[device_online+1,device_offline-1,device_rate],预先判断该数据是否存在,如果不存在要先添加记录,如果存在就修改数据
|
|
|
//Step2:更新设备注册表[active_status=1,active_time=当前时间]
|
|
|
//Step3:更新在线统计[],预先判断该数据是否存在,如果不存在要先添加记录,如果存在就修改数据
|
|
|
//Step4:将新设备编号加入缓存
|
|
|
- System.out.println("## ----");
|
|
|
+// System.out.println("## ----");
|
|
|
//# 更新总状态表 #
|
|
|
deviceService.updateEnvtempOfDeviceAllStatus(farmId, deviceCode);
|
|
|
- System.out.println("## ----1");
|
|
|
+// System.out.println("## ----1");
|
|
|
//# 更新设备注册表 #
|
|
|
- deviceService.updateDeviceRegister(farmId, deviceCode);
|
|
|
- System.out.println("## ----2");
|
|
|
+ deviceService.updateDeviceRegister(farmId, deviceCode,nowTimestamp);
|
|
|
+// System.out.println("## ----2");
|
|
|
//# 更新在线统计 #
|
|
|
deviceService.updateDeviceOnlineWithEnvtemp(farmId, deviceCode);
|
|
|
- System.out.println("## ----3");
|
|
|
+// System.out.println("## ----3");
|
|
|
//# 将新设备编号加入在线缓存 #
|
|
|
cacheService.putDeviceToOnline(farmId, deviceCode, todayDateText);
|
|
|
System.out.println("## END");
|