From 642e72cfc130d1871d959552d791ecab52493949 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 09 十二月 2024 02:19:33 +0800
Subject: [PATCH] mysql online拆分

---
 ycl-server/src/main/java/com/ycl/task/HKTask.java |   53 ++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 44 insertions(+), 9 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/task/HKTask.java b/ycl-server/src/main/java/com/ycl/task/HKTask.java
index 10815fd..86ca9cd 100644
--- a/ycl-server/src/main/java/com/ycl/task/HKTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/HKTask.java
@@ -1,10 +1,16 @@
 package com.ycl.task;
 
 import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.mongodb.client.result.DeleteResult;
 import com.ycl.feign.HkApiUtil;
+import com.ycl.platform.domain.entity.TMonitor;
 import com.ycl.platform.domain.param.HK.*;
 import com.ycl.platform.domain.result.HK.*;
+import com.ycl.platform.domain.result.UY.VideoOnlineResult;
+import com.ycl.platform.domain.vo.UpdateOnlineVO;
+import com.ycl.platform.mapper.TMonitorMapper;
+import com.ycl.platform.mapper.WorkOrderMapper;
 import com.ycl.platform.service.*;
 import com.ycl.utils.DateUtils;
 import constant.ApiConstants;
@@ -18,9 +24,9 @@
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 //娴峰悍瀵规帴鏁版嵁浠诲姟
 @Slf4j
@@ -39,7 +45,10 @@
     private IYwThresholdService ywThresholdService;
     @Autowired
     private YwPointService pointService;
-
+    @Autowired
+    private TMonitorMapper monitorMapper;
+    @Autowired
+    private UYErrorTypeCheckService uyErrorTypeCheckService;
     //杞﹁締璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉
     public void vehicleDeviceInspectionTask() {
         log.info("寮�濮嬫墽琛岃溅杈嗚澶囧叏妫�鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾");
@@ -124,8 +133,6 @@
             //瀛樻斁鍦╩ongo涓�
             carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_CAR));
             mongoTemplate.insertAll(carList);
-            //TODO锛氭洿鏂皃oint琛ㄥ湪绾跨姸鎬侊紙鏈夋姄鎷嶉噺瑙嗕綔鍦ㄧ嚎锛�
-            //宸ュ崟
         }
 
         /** 浜鸿劯鏁版嵁 */
@@ -151,10 +158,38 @@
             //瀛樻斁鍦╩ongo涓�
             faceList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_FACE));
             mongoTemplate.insertAll(faceList);
-            //TODO:鏇存柊point琛ㄥ湪绾跨姸鎬侊紙鏈夋姄鎷嶉噺瑙嗕綔鍦ㄧ嚎锛�
-            //宸ュ崟
         }
-
+        //淇敼online鐘舵�佷互鍙婄敓鎴愬伐鍗�
+        List<SnapshotDataMonitorResult> totalResult =new ArrayList<>();
+        totalResult.addAll(carList);
+        totalResult.addAll(faceList);
+        if(!CollectionUtils.isEmpty(totalResult)) {
+            List<String> numbers = totalResult.stream().map(SnapshotDataMonitorResult::getExternalIndexCode).collect(Collectors.toList());
+            Map<String, TMonitor> map = monitorMapper.selectList(new QueryWrapper<TMonitor>().in("serial_number", numbers))
+                    .stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity()));
+            Date now = new Date();
+            totalResult.forEach(item->{
+                TMonitor monitor = map.get(item.getExternalIndexCode());
+                item.setIp(monitor.getIp());
+            });
+            List<UpdateOnlineVO> willUpdateList = totalResult.stream().map(item -> {
+                UpdateOnlineVO vo = new UpdateOnlineVO();
+                vo.setOnline(item.getDataCount()>0?1:-1);
+                vo.setIp(map.get(item.getExternalIndexCode()).getIp());
+                vo.setUpdateTime(now);
+                return vo;
+            }).collect(Collectors.toList());
+            monitorMapper.updateOnlineFromUyOrHk(willUpdateList);
+            //绂荤嚎鐢熸垚宸ュ崟,涓�涓猧p鍙敓鎴愪竴涓伐鍗�
+            List<SnapshotDataMonitorResult> workOrders = new ArrayList<>(totalResult.stream()
+                    .filter(item -> ApiConstants.UY_OnlineSite_Offline.equals(item.getDataCount()>0?1:-1))
+                    .collect(Collectors.toMap(
+                            SnapshotDataMonitorResult::getIp,
+                            Function.identity(),
+                            (existing, replacement) -> existing // 濡傛灉閬囧埌鐩稿悓鐨� IP锛屼繚鐣欑涓�涓紙existing锛�
+                    )).values());
+            uyErrorTypeCheckService.hkOnlineCheck(workOrders);
+        }
         log.info("缁撴潫鎶撴媿鏁版嵁閲忔娴嬬粨鏋滄暟鎹悓姝�");
     }
 

--
Gitblit v1.8.0