From b5df1cee65f3e9dcf554efcd3f1642a8c79d1e76 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 30 九月 2024 02:12:24 +0800
Subject: [PATCH] 点位监测更换对象+存入mongo+提取utils
---
ycl-pojo/src/main/java/com/ycl/platform/domain/result/SYS/TMonitorResult.java | 14 +
ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java | 2
ycl-server/src/main/java/com/ycl/task/MonitorTask.java | 22 +-
ycl-server/src/main/java/com/ycl/task/UYTask.java | 104 +++++++++-------
ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java | 84 ++++++++++++++
ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java | 105 ++++-------------
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml | 10
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/OnlineThreadVO.java | 4
8 files changed, 199 insertions(+), 146 deletions(-)
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/SYS/TMonitorResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/SYS/TMonitorResult.java
index 329fa99..5f39dbe 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/SYS/TMonitorResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/SYS/TMonitorResult.java
@@ -1,6 +1,7 @@
package com.ycl.platform.domain.result.SYS;
+import com.ycl.platform.domain.entity.WorkOrder;
import com.ycl.platform.domain.result.BaseResult;
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;
@@ -11,14 +12,19 @@
@Data
@Document(collection = "t_monitor_online")
public class TMonitorResult extends BaseResult {
- /**
- * 閮ㄩ棬id
- */
+ /*** 閮ㄩ棬id*/
private Integer deptId;
- /** 鍦ㄧ嚎 */
+ /*** 閮ㄩ棬id*/
+ private String ip;
+ /** 鏈�杩戠洃娴嬪湪绾跨姸鎬� */
private Boolean online;
+ /** 褰撴棩鐩戞祴娆℃暟 */
+ private Integer checkCount;
+ /** 褰撴棩绂荤嚎 */
+ private Integer offLineCount;
/** 璁惧绫诲瀷 */
private String monitorType;
/** 璁惧鍚� */
private String name;
+ private WorkOrder workOrder;
}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/OnlineThreadVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/OnlineThreadVO.java
index c952333..3154ec3 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/OnlineThreadVO.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/OnlineThreadVO.java
@@ -17,5 +17,9 @@
private String ip;
private WorkOrder workOrder;
+ /** 褰撴棩鐩戞祴娆℃暟 */
+ private Integer checkCount;
+ /** 褰撴棩绂荤嚎 */
+ private Integer offLineCount;
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
index dae63c3..a8b4676 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
@@ -159,7 +159,7 @@
*
* @return
*/
- List<TMonitor> getDistinctIP();
+ List<TMonitorResult> getDistinctIP();
/**
* 鏍规嵁ip淇敼鐐逛綅琛ㄧ殑鏄惁鍦ㄧ嚎瀛楁
diff --git a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
index eb38895..f09bb64 100644
--- a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
@@ -61,18 +61,18 @@
@Autowired
private RedisTemplate redisTemplate;
- //鍚屾鐐逛綅鍦ㄧ嚎鐜囧埌mongo
+ //鍚屾鐐逛綅鍦ㄧ嚎鐜囧埌mongo(寮冪敤)
public void siteOnline() {
- log.info("寮�濮嬪悓姝ョ偣浣嶅湪绾跨巼鍒癿ongo");
- List<TMonitorResult> tMonitorResults = monitorMapper.selectMonitorResult(null);
- if (!CollectionUtils.isEmpty(tMonitorResults)) {
- //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
- Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
- DeleteResult result = mongoTemplate.remove(query, TMonitorResult.class);
- //瀛樻斁鍦╩ongo涓�
- mongoTemplate.insertAll(tMonitorResults);
- log.info("缁撴潫鍚屾鐐逛綅鍦ㄧ嚎鐜囧埌mongo");
- }
+// log.info("寮�濮嬪悓姝ョ偣浣嶅湪绾跨巼鍒癿ongo");
+// List<TMonitorResult> tMonitorResults = monitorMapper.selectMonitorResult(null);
+// if (!CollectionUtils.isEmpty(tMonitorResults)) {
+// //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
+// Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+// DeleteResult result = mongoTemplate.remove(query, TMonitorResult.class);
+// //瀛樻斁鍦╩ongo涓�
+// mongoTemplate.insertAll(tMonitorResults);
+// log.info("缁撴潫鍚屾鐐逛綅鍦ㄧ嚎鐜囧埌mongo");
+// }
}
//鍚屾mongodb涓�鏈轰竴妗e埌鏁版嵁搴�
diff --git a/ycl-server/src/main/java/com/ycl/task/UYTask.java b/ycl-server/src/main/java/com/ycl/task/UYTask.java
index 39d0d29..5504f50 100644
--- a/ycl-server/src/main/java/com/ycl/task/UYTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -7,9 +7,11 @@
import com.ycl.platform.domain.entity.WorkOrder;
import com.ycl.platform.domain.entity.YwPoint;
import com.ycl.platform.domain.param.UY.*;
+import com.ycl.platform.domain.result.SYS.TMonitorResult;
import com.ycl.platform.domain.result.UY.RecordMetaDSumResult;
import com.ycl.platform.domain.result.UY.*;
import com.ycl.platform.domain.vo.OnlineThreadVO;
+import com.ycl.platform.domain.vo.TMonitorVO;
import com.ycl.platform.domain.vo.UpdateOnlineVO;
import com.ycl.platform.mapper.TMonitorMapper;
import com.ycl.platform.service.UYErrorTypeCheckService;
@@ -18,6 +20,7 @@
import com.ycl.system.domain.SysConfig;
import com.ycl.system.mapper.SysConfigMapper;
import com.ycl.thread.OnlineCheckThread;
+import com.ycl.utils.CheckPointUtil;
import com.ycl.utils.DateUtils;
import com.ycl.utils.http.HttpUtils;
import com.ycl.utils.http.SelfHttpUtil;
@@ -55,11 +58,9 @@
private final UYErrorTypeCheckService uyErrorTypeCheckService;
private final YwPointService pointService;
private final TMonitorMapper monitorMapper;
- private final SelfHttpUtil selfHttpUtil;
- private final RedisTemplate redisTemplate;
private final WorkOrderService workOrderService;
private final SysConfigMapper sysConfigMapper;
-
+ private final CheckPointUtil checkPointUtil;
@Value("${youYun.tenantId}")
private String tenantId;
@Value("${youYun.apikey}")
@@ -190,15 +191,15 @@
log.error("璇烽厤缃绾挎鏁帮紝姝ゆ璁剧疆涓洪粯璁ゅ��2");
}
// 鍏堟煡鍑鸿澶嘔P闆嗗悎
- List<TMonitor> monitorList = monitorMapper.getDistinctIP();
- List<Future<OnlineThreadVO>> futureList = new ArrayList<>(48);
- List<OnlineThreadVO> dataList = new ArrayList<>(48);
- for (TMonitor monitor : monitorList) {
- OnlineCheckThread thread = new OnlineCheckThread(monitor, redisTemplate, selfHttpUtil, times);
- Future<OnlineThreadVO> future = executorService.submit(thread);
+ List<TMonitorResult> monitorList = monitorMapper.getDistinctIP();
+ List<Future<TMonitorResult>> futureList = new ArrayList<>(48);
+ List<TMonitorResult> dataList = new ArrayList<>(48);
+ for (TMonitorResult monitor : monitorList) {
+ OnlineCheckThread thread = new OnlineCheckThread(monitor,checkPointUtil,times);
+ Future<TMonitorResult> future = executorService.submit(thread);
futureList.add(future);
}
- for (Future<OnlineThreadVO> future : futureList) {
+ for (Future<TMonitorResult> future : futureList) {
dataList.add(future.get()); // get鏂规硶浼氶樆濉烇紝鐭ラ亾鎷垮埌缁撴灉鎵嶇户缁墽琛宖or
}
@@ -216,16 +217,25 @@
// 宸ュ崟
List<WorkOrder> workOrderList = dataList.stream()
.filter(item -> Objects.nonNull(item.getWorkOrder()))
- .map(OnlineThreadVO::getWorkOrder)
+ .map(TMonitorResult::getWorkOrder)
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(workOrderList)) {
return;
}
workOrderService.innerAddWorkOrder(workOrderList);
+ //瀛樻斁鍒癿ongo
+ if (!CollectionUtils.isEmpty(dataList)) {
+ //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
+ Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+ DeleteResult result = mongoTemplate.remove(query, TMonitorResult.class);
+ //瀛樻斁鍦╩ongo涓�
+ mongoTemplate.insertAll(dataList);
+ log.info("缁撴潫鍚屾鐐逛綅鍦ㄧ嚎鐜囧埌mongo");
+ }
log.info("鐐逛綅鍦ㄧ嚎鐩戞祴瀹屾垚");
}
- //鐐逛綅鍦ㄧ嚎鐜�
+ //锛堝純鐢級鐐逛綅鍦ㄧ嚎鐜�
public void videoOnlineTask() {
//瑙嗛鍥惧儚璐ㄩ噺
log.info("寮�濮嬫墽琛岀偣浣嶅湪绾挎暟鎹悓姝�");
@@ -273,41 +283,41 @@
public void recordMetaDSumTask() {
//褰曞儚鍙敤鐜�
log.info("寮�濮嬫墽琛屽綍鍍忓彲鐢ㄦ暟鎹悓姝�");
-// RecordMetaDSumParam param = new RecordMetaDSumParam();
-// param.setTenantId(tenantId);
-// Calendar instance = Calendar.getInstance();
-// instance.setTime(new Date());
-// instance.add(Calendar.DAY_OF_MONTH, -1);
-// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-// String yesterday = format.format(instance.getTime());
-// param.setStatTime(yesterday);
-// JSONObject jsonObject = uyClient.recordMetaDSumList(param);
-// if (jsonObject != null) {
-// if (ApiConstants.UYSuccessCodeStr.equals(jsonObject.getString("code"))) {
-// List<RecordMetaDSumResult> records = jsonObject.getList("data", RecordMetaDSumResult.class);
-// if (!CollectionUtils.isEmpty(records)) {
-// //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
-// Query query = new Query(Criteria
-// .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
-// DeleteResult result = mongoTemplate.remove(query, RecordMetaDSumResult.class);
-// records.stream().forEach(item -> {
-// if (Objects.nonNull(item.getDeviceId())) {
-// item.setNo(item.getDeviceId());
-// }
-// });
-// pointService.setDeviceTagByGB(records);
-// //瀛樻斁鍦╩ongo涓�
-// mongoTemplate.insertAll(records);
-// // 宸ュ崟鐢熸垚
-// uyErrorTypeCheckService.recordMetaDSumCheck(records);
-// }
-// } else {
-// log.error("褰曞儚鍙敤鏁版嵁涓虹┖{}", jsonObject);
-// }
-// }
-// 鏈湴娴嬭瘯
- Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date())));
- uyErrorTypeCheckService.recordMetaDSumCheck(mongoTemplate.find(query, RecordMetaDSumResult.class));
+ RecordMetaDSumParam param = new RecordMetaDSumParam();
+ param.setTenantId(tenantId);
+ Calendar instance = Calendar.getInstance();
+ instance.setTime(new Date());
+ instance.add(Calendar.DAY_OF_MONTH, -1);
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+ String yesterday = format.format(instance.getTime());
+ param.setStatTime(yesterday);
+ JSONObject jsonObject = uyClient.recordMetaDSumList(param);
+ if (jsonObject != null) {
+ if (ApiConstants.UYSuccessCodeStr.equals(jsonObject.getString("code"))) {
+ List<RecordMetaDSumResult> records = jsonObject.getList("data", RecordMetaDSumResult.class);
+ if (!CollectionUtils.isEmpty(records)) {
+ //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
+ Query query = new Query(Criteria
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+ DeleteResult result = mongoTemplate.remove(query, RecordMetaDSumResult.class);
+ records.stream().forEach(item -> {
+ if (Objects.nonNull(item.getDeviceId())) {
+ item.setNo(item.getDeviceId());
+ }
+ });
+ pointService.setDeviceTagByGB(records);
+ //瀛樻斁鍦╩ongo涓�
+ mongoTemplate.insertAll(records);
+ // 宸ュ崟鐢熸垚
+ uyErrorTypeCheckService.recordMetaDSumCheck(records);
+ }
+ } else {
+ log.error("褰曞儚鍙敤鏁版嵁涓虹┖{}", jsonObject);
+ }
+ }
+ // 鏈湴娴嬭瘯
+// Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date())));
+// uyErrorTypeCheckService.recordMetaDSumCheck(mongoTemplate.find(query, RecordMetaDSumResult.class));
log.info("缁撴潫鎵ц褰曞儚鍙敤鏁版嵁鍚屾");
}
diff --git a/ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java b/ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java
index a3c762d..5228eae 100644
--- a/ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java
+++ b/ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java
@@ -1,9 +1,9 @@
package com.ycl.thread;
-import com.ycl.platform.domain.entity.TMonitor;
import com.ycl.platform.domain.entity.WorkOrder;
+import com.ycl.platform.domain.result.SYS.TMonitorResult;
import com.ycl.platform.domain.vo.OnlineThreadVO;
-import com.ycl.platform.domain.vo.UpdateOnlineVO;
+import com.ycl.utils.CheckPointUtil;
import com.ycl.utils.http.SelfHttpUtil;
import constant.RedisConstant;
import enumeration.ErrorType;
@@ -12,13 +12,11 @@
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
+import org.springframework.util.CollectionUtils;
import java.io.IOException;
import java.net.InetAddress;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
import java.util.concurrent.Callable;
/**
@@ -26,20 +24,14 @@
* @date锛�2024/9/10 11:43
*/
@Slf4j
-public class OnlineCheckThread implements Callable<OnlineThreadVO> {
+public class OnlineCheckThread implements Callable<TMonitorResult> {
- private TMonitor monitor;
-
- private RedisTemplate redisTemplate;
-
- private SelfHttpUtil selfHttpUtil;
-
+ private TMonitorResult monitor;
+ private CheckPointUtil checkPointUtil;
private Integer times;
-
- public OnlineCheckThread(TMonitor monitor, RedisTemplate redisTemplate, SelfHttpUtil selfHttpUtil, Integer times) {
+ public OnlineCheckThread(TMonitorResult monitor, CheckPointUtil checkPointUtil,Integer times) {
this.monitor = monitor;
- this.redisTemplate = redisTemplate;
- this.selfHttpUtil = selfHttpUtil;
+ this.checkPointUtil = checkPointUtil;
this.times = times;
}
@@ -51,79 +43,36 @@
this.times = times;
}
- public SelfHttpUtil getSelfHttpUtil() {
- return selfHttpUtil;
- }
-
- public void setSelfHttpUtil(SelfHttpUtil selfHttpUtil) {
- this.selfHttpUtil = selfHttpUtil;
- }
-
- public TMonitor getMonitor() {
+ public TMonitorResult getMonitor() {
return monitor;
}
- public void setMonitor(TMonitor monitor) {
+ public void setMonitor(TMonitorResult monitor) {
this.monitor = monitor;
}
- public RedisTemplate getRedisTemplate() {
- return redisTemplate;
+ public CheckPointUtil getCheckPointUtil() {
+ return checkPointUtil;
}
- public void setRedisTemplate(RedisTemplate redisTemplate) {
- this.redisTemplate = redisTemplate;
+ public void setCheckPointUtil(CheckPointUtil checkPointUtil) {
+ this.checkPointUtil = checkPointUtil;
}
@Override
- public OnlineThreadVO call() throws Exception {
- // 鍏堟娴嬭兘鍚﹁闂ip鐨勭綉椤�
- ResponseEntity<Object> res = null;
- OnlineThreadVO vo = new OnlineThreadVO();
- vo.setIp(monitor.getIp());
- log.info("鐩戞祴IP锛�" + monitor.getIp());
- String prefix = "http://";
- if ("127.0.0.1".equals(monitor.getIp())) {
- vo.setOnline(Boolean.FALSE);
- return vo;
+ public TMonitorResult call() throws Exception {
+ TMonitorResult result = checkPointUtil.check(monitor);
+ // 涓�澶╁唴鐩戞祴鍒扮绾�1娆′互涓婏紝鐢熸垚宸ュ崟
+ if (result.getOffLineCount() >= times) {
+ WorkOrder workOrder = new WorkOrder();
+ workOrder.setSerialNumber(result.getNo());
+ List<String> errList = new ArrayList<>();
+ errList.add(ErrorType.DEVICE_OFFLINE.getValue());
+ workOrder.setErrorTypeList(errList);
+ workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
+ result.setWorkOrder(workOrder);
}
- try {
- res = selfHttpUtil.get(prefix + monitor.getIp(), null, null);
- vo.setOnline(Objects.nonNull(res) && HttpStatus.OK == res.getStatusCode());
- } catch (Exception e) {
- vo.setOnline(Boolean.FALSE);
- }
-
- // 濡傛灉http寰楀埌鐨勪笉鍦ㄧ嚎锛岄偅涔堝啀ping涓�涓�
- boolean reachable = false;
- if (!vo.getOnline()) {
- try {
- reachable = InetAddress.getByName(monitor.getIp()).isReachable(3000);
- } catch (IOException e) {
- e.printStackTrace();
- }
- vo.setOnline(reachable);
- }
- if (!vo.getOnline()) {
- Integer outLineTimes = (Integer) redisTemplate.opsForHash().get(RedisConstant.ONLINE_KEY, monitor.getIp());
- if (Objects.isNull(outLineTimes)) {
- outLineTimes = 1;
- } else {
- outLineTimes += 1;
- }
- redisTemplate.opsForHash().put(RedisConstant.ONLINE_KEY, monitor.getIp(), outLineTimes);
- // 涓�澶╁唴鐩戞祴鍒扮绾�1娆′互涓婏紝鐢熸垚宸ュ崟
- if (outLineTimes >= times) {
- WorkOrder workOrder = new WorkOrder();
- workOrder.setSerialNumber(monitor.getSerialNumber());
- List<String> errList = new ArrayList<>();
- errList.add(ErrorType.DEVICE_OFFLINE.getValue());
- workOrder.setErrorTypeList(errList);
- workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
- vo.setWorkOrder(workOrder);
- }
- }
- return vo;
+ return result;
}
}
diff --git a/ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java b/ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java
new file mode 100644
index 0000000..e74f2c9
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java
@@ -0,0 +1,84 @@
+package com.ycl.utils;
+
+import com.ycl.platform.domain.result.SYS.TMonitorResult;
+import com.ycl.utils.http.SelfHttpUtil;
+import constant.RedisConstant;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.http.*;
+import org.springframework.lang.Nullable;
+import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+
+import java.io.IOException;
+import java.net.InetAddress;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * @author xp
+ * @date 2022/11/16
+ */
+@Component
+@RequiredArgsConstructor
+@Slf4j
+public class CheckPointUtil {
+
+ private final RedisTemplate redisTemplate;
+
+ private final SelfHttpUtil selfHttpUtil;
+
+ /**
+ * 鐩戞祴鐐逛綅鍦ㄧ嚎宸ュ叿绫�
+ * @return
+ */
+ public TMonitorResult check(TMonitorResult monitor) {
+ // 鍏堟娴嬭兘鍚﹁闂ip鐨勭綉椤�
+ ResponseEntity<Object> res = null;
+ log.info("鐩戞祴IP锛�" + monitor.getIp());
+ String prefix = "http://";
+ if ("127.0.0.1".equals(monitor.getIp())) {
+ monitor.setOnline(Boolean.FALSE);
+ return monitor;
+ }
+ try {
+ res = selfHttpUtil.get(prefix + monitor.getIp(), null, null);
+ monitor.setOnline(Objects.nonNull(res) && HttpStatus.OK == res.getStatusCode());
+ } catch (Exception e) {
+ monitor.setOnline(Boolean.FALSE);
+ }
+
+ // 濡傛灉http寰楀埌鐨勪笉鍦ㄧ嚎锛岄偅涔堝啀ping涓�涓�
+ boolean reachable = false;
+ Integer checkTimes = 1;
+ Integer offLineTimes = 0;
+ Map<String, Object> map = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstant.ONLINE_KEY, monitor.getIp());
+ if (!CollectionUtils.isEmpty(map)) {
+ checkTimes = (Integer) map.get("checkTimes") + 1;
+ offLineTimes = (Integer) map.get("offLineTimes");
+ } else {
+ map = new HashMap<>();
+ }
+ if (!monitor.getOnline()) {
+ try {
+ reachable = InetAddress.getByName(monitor.getIp()).isReachable(3000);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ monitor.setOnline(reachable);
+ }
+ if (!monitor.getOnline()) {
+ offLineTimes++;
+ }
+ map.put("checkTimes", checkTimes);
+ map.put("offLineTimes", offLineTimes);
+ redisTemplate.opsForHash().put(RedisConstant.ONLINE_KEY, monitor.getIp(), map);
+ monitor.setCheckCount(checkTimes);
+ monitor.setOffLineCount(offLineTimes);
+ return monitor;
+ }
+}
diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
index 93f3d4a..1c325c0 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -637,11 +637,11 @@
serial_number in <foreach collection="gbList" open="(" separator="," close=")" item="no">#{no}</foreach>
</select>
- <select id="getDistinctIP" resultType="com.ycl.platform.domain.entity.TMonitor">
- SELECT
- DISTINCT ip, serial_number
- FROM
- t_monitor
+ <select id="getDistinctIP" resultType="com.ycl.platform.domain.result.SYS.TMonitorResult">
+ select DISTINCT m.id, m.ip,m.serial_number as no,m.name,m.camera_fun_type as monitorType,d.dept_id,p.province_tag,p.important_tag,p.important_command_image_tag,p.dept_tag,p.online
+ from t_monitor m
+ left join t_yw_point p on m.serial_number = p.serial_number
+ left join sys_dept d on p.dept_id = d.dept_id
</select>
<update id="updateOnline">
--
Gitblit v1.8.0