From 9a4549c0c2dbe44c9568fe56fb4df8d6fbb44d4f Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 19 八月 2024 16:33:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ycl-server/src/main/java/com/ycl/platform/service/UYErrorTypeCheckService.java          |   39 +++
 ycl-server/src/main/java/com/ycl/task/HKTask.java                                       |   64 +++---
 ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformServiceImpl.java         |   17 +
 ycl-server/src/main/java/com/ycl/utils/ip/PingUtil.java                                 |   33 +++
 ycl-server/src/main/resources/mapper/zgyw/PlatformMapper.xml                            |    3 
 ycl-server/src/main/java/com/ycl/platform/mapper/PlatformMapper.java                    |    4 
 ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/MonitorQualifyResult.java      |    4 
 ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java      |   28 ++
 ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java |  138 +++++++++++++
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/PlatformVO.java                       |    5 
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java        |    3 
 ycl-server/src/main/java/com/ycl/platform/service/IYwThresholdService.java              |    5 
 ycl-server/src/main/java/com/ycl/task/UYTask.java                                       |  185 ++++++++++--------
 ycl-common/src/main/java/enumeration/ErrorType.java                                     |   36 +++
 14 files changed, 447 insertions(+), 117 deletions(-)

diff --git a/ycl-common/src/main/java/enumeration/ErrorType.java b/ycl-common/src/main/java/enumeration/ErrorType.java
new file mode 100644
index 0000000..d5dfa8f
--- /dev/null
+++ b/ycl-common/src/main/java/enumeration/ErrorType.java
@@ -0,0 +1,36 @@
+package enumeration;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import lombok.Getter;
+
+/**
+ * @author锛歺p
+ * @date锛�2024/8/19 11:39
+ */
+@Getter
+public enum ErrorType {
+
+    PLATFORM_OFFLINE("PLATFORM_OFFLINE", "骞冲彴绂荤嚎"),
+    DEVICE_OFFLINE("DEVICE_OFFLINE", "璁惧绂荤嚎"),
+    VIDEO_LOSS("VIDEO_LOSS", "褰曞儚缂哄け"),
+    VIDEO_NONE("VIDEO_NONE", "鏃犲綍鍍�"),
+    POINT_INFO_ERROR("POINT_INFO_ERROR", "鐐逛綅淇℃伅閿欒"),
+    SIGNAL_LOSS("SIGNAL_LOSS", "淇″彿缂哄け"),
+    SCREEN_COLOR_DEVIATION("SCREEN_COLOR_DEVIATION", "鐢婚潰鍋忚壊"),
+    SNOW_STORM("SNOW_STORM", "闆姳骞叉壈"),
+    STRIPE_INTERFERENCE("STRIPE_INTERFERENCE", "鏉$汗骞叉壈"),
+    SCREEN_OCCLUSION("SCREEN_OCCLUSION", "鐢婚潰閬尅"),
+    ABNORMAL_CLARITY("ABNORMAL_CLARITY", "娓呮櫚搴﹀紓甯�"),
+    ABNORMAL_BRIGHTNESS("ABNORMAL_BRIGHTNESS", "浜害寮傚父"),
+    UNKNOWN("UNKNOWN", "鏈煡"),
+    ;
+
+    private String value;
+
+    private String desc;
+
+    ErrorType(String value, String desc) {
+        this.value = value;
+        this.desc = desc;
+    }
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/MonitorQualifyResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/MonitorQualifyResult.java
index 6e24c3e..1bc167e 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/MonitorQualifyResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/MonitorQualifyResult.java
@@ -59,6 +59,7 @@
      * 绉熸埛id
      */
     private QualifyResult tenantId;
+
     @Data
     public static class QualifyResult {
         /**
@@ -70,6 +71,9 @@
          * 灞曠ず鍊�
          * */
         private String showValue;
+        /**
+         * 鏁版嵁鍘熷鍊硷紝濡傚浗鏍囩爜绛�
+         */
         private String value;
     }
 }
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/PlatformVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/PlatformVO.java
index a2b62a9..c0c328b 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/PlatformVO.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/PlatformVO.java
@@ -22,6 +22,8 @@
     /** 骞冲彴IP */
     private String platformIP;
 
+    private Integer parentId;
+
     /** 骞冲彴鑱旂郴浜� */
     private String platformContact;
 
@@ -43,6 +45,9 @@
     /** 淇敼鏃堕棿 */
     private Date updateTime;
 
+    /** 瀛愮骇鏁伴噺 */
+    private Integer childNum;
+
     public static PlatformVO getVoByEntity(@NonNull Platform entity, PlatformVO vo) {
         if(vo == null) {
             vo = new PlatformVO();
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/PlatformMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/PlatformMapper.java
index 4e8651a..a7ff1d3 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/PlatformMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/PlatformMapper.java
@@ -9,6 +9,8 @@
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 骞冲彴杩愯鐩戞帶 Mapper 鎺ュ彛
  *
@@ -28,6 +30,6 @@
     /**
     *  鍒嗛〉
     */
-    IPage getPage(IPage page, @Param("query") PlatformQuery query);
+    List<PlatformVO> getPage(@Param("query") PlatformQuery query);
 
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/IYwThresholdService.java b/ycl-server/src/main/java/com/ycl/platform/service/IYwThresholdService.java
index dcb6491..d8cbad3 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/IYwThresholdService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/IYwThresholdService.java
@@ -78,4 +78,9 @@
      * 鍒ゆ柇瑙嗛闃堝�兼潯浠�
      */
     public void videoCheck(List list);
+
+    /**
+     * 闃堝�兼棤娉曞垽鏂殑锛屾牎楠屾晠闅滅被鍨嬬敓鎴愬伐鍗曘�備紭浜�
+     */
+    public void errorTypeCheckUY(List list);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/UYErrorTypeCheckService.java b/ycl-server/src/main/java/com/ycl/platform/service/UYErrorTypeCheckService.java
new file mode 100644
index 0000000..273fd41
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/platform/service/UYErrorTypeCheckService.java
@@ -0,0 +1,39 @@
+package com.ycl.platform.service;
+
+import com.ycl.platform.domain.result.UY.*;
+
+import java.util.List;
+
+/**
+ * 浼樹簯鏁呴殰妫�娴�
+ *
+ * @author锛歺p
+ * @date锛�2024/8/19 13:41
+ */
+public interface UYErrorTypeCheckService {
+
+    /**
+     * 鍥惧儚妫�娴�
+     */
+    void imageDetectionCheck(List<ImageDetectionResult> dataList);
+
+    /**
+     * 涓�鏈轰竴妗e悎鏍肩巼銆佷竴鏈轰竴妗f敞鍐岀巼
+     */
+    void monitorQualifyCheck(List<MonitorQualifyResult> dataList);
+
+    /**
+     * 鐐逛綅鍦ㄧ嚎鐜�
+     */
+    void videoOnlineCheck(List<VideoOnlineResult> dataList);
+
+    /**
+     * 褰曞儚鍙敤
+     */
+    void recordMetaDSumCheck(List<RecordMetaDSumResult> dataList);
+
+//    /**
+//     * 瑙嗛鏍囨敞
+//     */
+//    void osdMonitorCheck(List<OsdMonitorResult> dataList);
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformServiceImpl.java
index a755dc6..b1bb3f9 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformServiceImpl.java
@@ -1,6 +1,7 @@
 package com.ycl.platform.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ycl.platform.domain.entity.Platform;
 import com.ycl.platform.domain.form.PlatformForm;
@@ -18,6 +19,7 @@
 import org.springframework.util.Assert;
 import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -107,9 +109,18 @@
      */
     @Override
     public Result page(PlatformQuery query) {
-        IPage<PlatformVO> page = PageUtil.getPage(query, PlatformVO.class);
-        baseMapper.getPage(page, query);
-        return Result.ok().data(page.getRecords()).total(page.getTotal());
+        List<PlatformVO> list = baseMapper.getPage(query);
+        List<PlatformVO> parentList = list.stream().filter(item -> item.getParentId() == 0).collect(Collectors.toList());
+        List<PlatformVO> resultList = new ArrayList<>(4);
+        for (PlatformVO parent : parentList) {
+            List<PlatformVO> childList = list.stream().filter(item -> item.getParentId().equals(parent.getId())).collect(Collectors.toList());
+
+            parent.setChildNum(childList.size());
+            resultList.add(parent);
+            resultList.addAll(childList);
+        }
+        // 鍓嶇涓嶇敤灞曠ず鍒嗛〉
+        return Result.ok().data(resultList).total(0);
     }
 
     /**
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java
new file mode 100644
index 0000000..d48d425
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java
@@ -0,0 +1,138 @@
+package com.ycl.platform.service.impl;
+
+import com.ycl.platform.domain.entity.WorkOrder;
+import com.ycl.platform.domain.result.UY.*;
+import com.ycl.platform.service.UYErrorTypeCheckService;
+import com.ycl.platform.service.WorkOrderService;
+import com.ycl.utils.uuid.IdUtils;
+import enumeration.ErrorType;
+import enumeration.general.WorkOrderStatusEnum;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author锛歺p
+ * @date锛�2024/8/19 13:46
+ */
+@Service
+@RequiredArgsConstructor
+public class UYErrorTypeCheckServiceImpl implements UYErrorTypeCheckService {
+
+    private final WorkOrderService workOrderService;
+
+    /**
+     * 鍥惧儚妫�娴嬬敓鎴愬伐鍗�
+     *
+     * @param dataList
+     */
+    @Override
+    public void imageDetectionCheck(List<ImageDetectionResult> dataList) {
+        List<WorkOrder> workOrderList = dataList.stream().map(item -> {
+            WorkOrder workOrder = new WorkOrder();
+            // 淇″彿缂哄け
+            if (0 == item.getSigna1()) {
+                this.genWorkOrder(workOrder, ErrorType.SIGNAL_LOSS, item.getDeviceId());
+            }
+            // 鐢婚潰鍋忚壊
+            if (0 == item.getColor()) {
+                this.genWorkOrder(workOrder, ErrorType.SCREEN_COLOR_DEVIATION, item.getDeviceId());
+            }
+            // 闆姳骞叉壈
+            if (0 == item.getSnow()) {
+                this.genWorkOrder(workOrder, ErrorType.SNOW_STORM, item.getDeviceId());
+            }
+            // 鏉$汗骞叉壈
+            if (0 == item.getStripe()) {
+                this.genWorkOrder(workOrder, ErrorType.STRIPE_INTERFERENCE, item.getDeviceId());
+            }
+            // 鐢婚潰閬尅
+            if (0 == item.getShade()) {
+                this.genWorkOrder(workOrder, ErrorType.SCREEN_OCCLUSION, item.getDeviceId());
+            }
+            // 娓呮櫚搴﹀紓甯�
+            if (0 == item.getBlur()) {
+                this.genWorkOrder(workOrder, ErrorType.ABNORMAL_CLARITY, item.getDeviceId());
+            }
+            // 浜害寮傚父
+            if (0 == item.getLight()) {
+                this.genWorkOrder(workOrder, ErrorType.ABNORMAL_BRIGHTNESS, item.getDeviceId());
+            }
+            return workOrder;
+        }).collect(Collectors.toList());
+        workOrderService.innerAddWorkOrder(workOrderList);
+    }
+
+    /**
+     * 鐐逛綅淇℃伅寮傚父
+     *
+     * @param dataList
+     */
+    @Override
+    public void monitorQualifyCheck(List<MonitorQualifyResult> dataList) {
+        List<WorkOrder> workOrderList = dataList.stream().map(item -> {
+            WorkOrder workOrder = new WorkOrder();
+            if (item.getSerialNumber().getError()
+                    || item.getCivilCode().getError()
+                    || item.getIntegrated_device().getError()
+                    || item.getIp().getError()
+                    || item.getJkdwlx().getError()
+                    || item.getLatitude().getError()
+                    || item.getLongitude().getError()
+                    || item.getMacdz().getError()
+                    || item.getSbzt().getError()
+                    || item.getName().getError()
+                    || item.getSxjcjqy().getError()
+                    || item.getSxjgnlx().getError()) {
+                this.genWorkOrder(workOrder, ErrorType.POINT_INFO_ERROR, item.getSerialNumber().getValue());
+            }
+            return workOrder;
+        }).collect(Collectors.toList());
+        workOrderService.innerAddWorkOrder(workOrderList);
+    }
+
+    @Override
+    public void videoOnlineCheck(List<VideoOnlineResult> dataList) {
+        List<WorkOrder> workOrderList = dataList.stream().map(item -> {
+            WorkOrder workOrder = new WorkOrder();
+            if (-1 == item.getStatus()) {
+                this.genWorkOrder(workOrder, ErrorType.DEVICE_OFFLINE, item.getDeviceId());
+            } else if (0 == item.getStatus()) {
+                this.genWorkOrder(workOrder, ErrorType.UNKNOWN, item.getDeviceId());
+            }
+            return workOrder;
+        }).collect(Collectors.toList());
+        workOrderService.innerAddWorkOrder(workOrderList);
+    }
+
+    @Override
+    public void recordMetaDSumCheck(List<RecordMetaDSumResult> dataList) {
+        List<WorkOrder> workOrderList = dataList.stream().map(item -> {
+            WorkOrder workOrder = new WorkOrder();
+            if (0 == item.getRecordStatus()) {
+                this.genWorkOrder(workOrder, ErrorType.VIDEO_LOSS, item.getDeviceId());
+            } else if (-1 == item.getRecordStatus()) {
+                this.genWorkOrder(workOrder, ErrorType.VIDEO_NONE, item.getDeviceId());
+            }
+            return workOrder;
+        }).collect(Collectors.toList());
+        workOrderService.innerAddWorkOrder(workOrderList);
+    }
+
+
+    /**
+     * 宸ュ崟淇℃伅
+     *
+     * @param workOrder
+     * @param errorType 鏁呴殰绫诲瀷
+     * @param serialNumber 鍥芥爣鐮�
+     */
+    private void genWorkOrder(WorkOrder workOrder, ErrorType errorType, String serialNumber) {
+        workOrder.setWorkOrderNo(IdUtils.timeAddRandomNO(5));
+        workOrder.setErrorType(errorType.getValue());
+        workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
+        workOrder.setSerialNumber(serialNumber);
+    }
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
index b2fbbba..66e3094 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -93,6 +93,7 @@
         Map<String, WorkOrder> mapping = inDatabaseWorkOrderList.stream().collect((Collectors.toMap(WorkOrder::getSerialNumber, workOrder -> workOrder)));
         List<WorkOrder> waitAddList = new ArrayList<>(48);
         Integer updateNum = 0;
+        // TODO 鏌ヨ鏄惁鎶ュ杩囷紝鏇存柊鏁呴殰绫诲瀷
         for (WorkOrder workOrder : workOrderList) {
             WorkOrder databaseWorkOrder = mapping.get(workOrder.getSerialNumber());
             if (Objects.nonNull(databaseWorkOrder)) {
@@ -112,6 +113,8 @@
                     // 鍚屾椂鏂板涓�涓繍缁村鐞嗕俊鎭紝琛ㄦ槑姝ゅ伐鍗曡璋冩暣 TODO
                 }
             } else {
+                workOrder.setCreateTime(new Date());
+                workOrder.setUpdateTime(new Date());
                 waitAddList.add(workOrder);
             }
         }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
index c03051e..34df3f5 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
@@ -9,6 +9,7 @@
 import com.ycl.platform.mapper.YwThresholdMapper;
 import com.ycl.platform.service.IYwThresholdService;
 import com.ycl.platform.service.WorkOrderService;
+import com.ycl.utils.ip.PingUtil;
 import constant.YwThreadConstants;
 import enumeration.CompareType;
 import enumeration.general.BusinessTypeEnum;
@@ -16,6 +17,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 import utils.DateUtils;
 
 import java.util.*;
@@ -117,6 +119,32 @@
 
     }
 
+    @Override
+    public void errorTypeCheckUY(List list) {
+        // 骞冲彴绂荤嚎鏁呴殰妫�娴�
+        if (CollectionUtils.isEmpty(list)) {
+            Boolean ping = PingUtil.ping("", 5);
+            if (! ping) {
+
+            }
+        }
+        // 璁惧绂荤嚎鏁呴殰妫�娴�
+
+        // 淇″彿缂哄け鏁呴殰妫�娴�
+
+        // 鐢婚潰鍋忚壊鏁呴殰妫�娴�
+
+        // 闆姳骞叉壈鏁呴殰妫�娴�
+
+        // 鏉$汗骞叉壈鏁呴殰妫�娴�
+
+        // 鐢婚潰閬尅鏁呴殰妫�娴�
+
+        // 娓呮櫚搴﹀紓甯告娴�
+
+        // 浜害寮傚父鏁呴殰妫�娴�
+    }
+
     /**
      * 鍒ゆ柇浜鸿劯闃堝�兼槸鍚︽弧瓒充笅鍙戞潯浠�
      *
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 79123b7..00b346a 100644
--- a/ycl-server/src/main/java/com/ycl/task/HKTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/HKTask.java
@@ -43,42 +43,46 @@
     //杞﹁締璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉
     public void vehicleDeviceInspectionTask() {
         log.info("寮�濮嬫墽琛岃溅杈嗚澶囧叏妫�鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾");
-        VehicleDeviceInspectionParam param = new VehicleDeviceInspectionParam();
-        param.setPageNo(ApiConstants.PageNo);
-        param.setPageSize(ApiConstants.HKPageSize);
-        param.setDate(DateUtils.getDate());
-        param.setDataType(ApiConstants.HK_DataType_CAR);
-        List<VehicleDeviceInspectionResult> list = HkApiUtil.sendAPI("/api/dqd/service/rs/v2/data/vehFullAmount/query", param, VehicleDeviceInspectionResult.class);
-        if (!CollectionUtils.isEmpty(list)) {
-            //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
-            Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
-            DeleteResult result = mongoTemplate.remove(query, VehicleDeviceInspectionResult.class);
-            //瀛樻斁鍦╩ongo涓�
-            mongoTemplate.insertAll(list);
-            //鍚屾鐨勬暟鎹繘琛屽伐鍗曢槇鍊煎鐞�
-            ywThresholdService.carCheck(list);
-        }
+//        VehicleDeviceInspectionParam param = new VehicleDeviceInspectionParam();
+//        param.setPageNo(ApiConstants.PageNo);
+//        param.setPageSize(ApiConstants.HKPageSize);
+//        param.setDate(DateUtils.getDate());
+//        param.setDataType(ApiConstants.HK_DataType_CAR);
+//        List<VehicleDeviceInspectionResult> list = HkApiUtil.sendAPI("/api/dqd/service/rs/v2/data/vehFullAmount/query", param, VehicleDeviceInspectionResult.class);
+//        if (!CollectionUtils.isEmpty(list)) {
+//            //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
+//            Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+//            DeleteResult result = mongoTemplate.remove(query, VehicleDeviceInspectionResult.class);
+//            //瀛樻斁鍦╩ongo涓�
+//            mongoTemplate.insertAll(list);
+//            //鍚屾鐨勬暟鎹繘琛屽伐鍗曢槇鍊煎鐞�
+//            ywThresholdService.carCheck(list);
+//        }
+        Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date())));
+        ywThresholdService.carCheck(mongoTemplate.find(query, VehicleDeviceInspectionResult.class));
         log.info("缁撴潫杞﹁締璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾");
     }
 
     //浜鸿劯璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉
     public void faceDeviceInspectionTask() {
         log.info("寮�濮嬫墽琛屼汉鑴歌澶囧叏妫�鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾");
-        FaceDeviceInspectionParam param = new FaceDeviceInspectionParam();
-        param.setPageNo(ApiConstants.PageNo);
-        param.setPageSize(ApiConstants.HKPageSize);
-        param.setDate(DateUtils.getDate());
-        List<FaceDeviceInspectionResult> list = HkApiUtil.sendAPI("/api/dqd/service/rs/v2/data/faceFullAmount/query", param, FaceDeviceInspectionResult.class);
-        if (!CollectionUtils.isEmpty(list)) {
-            //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
-            Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
-            DeleteResult result = mongoTemplate.remove(query, FaceDeviceInspectionResult.class);
-            //瀛樻斁鍦╩ongo涓�
-            mongoTemplate.insertAll(list);
-            //鍚屾鐨勬暟鎹繘琛屽伐鍗曢槇鍊煎鐞�
-            //TODO:鍙兘鏈夐噸澶嶅伐鍗�
-            ywThresholdService.faceCheck(list);
-        }
+//        FaceDeviceInspectionParam param = new FaceDeviceInspectionParam();
+//        param.setPageNo(ApiConstants.PageNo);
+//        param.setPageSize(ApiConstants.HKPageSize);
+//        param.setDate(DateUtils.getDate());
+//        List<FaceDeviceInspectionResult> list = HkApiUtil.sendAPI("/api/dqd/service/rs/v2/data/faceFullAmount/query", param, FaceDeviceInspectionResult.class);
+//        if (!CollectionUtils.isEmpty(list)) {
+//            //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
+//            Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
+//            DeleteResult result = mongoTemplate.remove(query, FaceDeviceInspectionResult.class);
+//            //瀛樻斁鍦╩ongo涓�
+//            mongoTemplate.insertAll(list);
+//            //鍚屾鐨勬暟鎹繘琛屽伐鍗曢槇鍊煎鐞�
+//            //TODO:鍙兘鏈夐噸澶嶅伐鍗�
+//            ywThresholdService.faceCheck(list);
+//        }
+        Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date())));
+        ywThresholdService.faceCheck(mongoTemplate.find(query, FaceDeviceInspectionResult.class));
         log.info("缁撴潫浜鸿劯璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾");
     }
 
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 1c0d8af..1313214 100644
--- a/ycl-server/src/main/java/com/ycl/task/UYTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -4,12 +4,14 @@
 import com.mongodb.client.result.DeleteResult;
 import com.ycl.feign.UYClient;
 import com.ycl.platform.domain.param.UY.*;
+import com.ycl.platform.domain.result.HK.FaceDeviceInspectionResult;
 import com.ycl.platform.domain.result.UY.OneMachineFileResult;
 import com.ycl.platform.domain.result.UY.OsdMonitorResult;
 import com.ycl.platform.domain.result.UY.RecordMetaDSumResult;
 import com.ycl.platform.domain.result.UY.*;
 import com.ycl.platform.service.ITMonitorService;
 import com.ycl.platform.service.IYwThresholdService;
+import com.ycl.platform.service.UYErrorTypeCheckService;
 import com.ycl.utils.DateUtils;
 import constant.ApiConstants;
 import lombok.extern.slf4j.Slf4j;
@@ -43,6 +45,9 @@
     private IYwThresholdService ywThresholdService;
     @Autowired
     private ITMonitorService monitorService;
+    @Autowired
+    private UYErrorTypeCheckService uyErrorTypeCheckService;
+
     @Value("${youYun.tenantId}")
     private String tenantId;
     @Value("${youYun.apikey}")
@@ -57,37 +62,41 @@
     // 鍥惧儚妫�娴�
     public void imageDetection() {
         log.info("寮�濮嬫墽琛屽浘鍍忔娴嬫暟鎹悓姝�");
-        ImageDetectionParam param = new ImageDetectionParam();
-        param.setPageNum(ApiConstants.PageNo);
-        param.setPageSize(ApiConstants.PageSize);
-        param.setArealayerno(ApiConstants.AreaNo);
-        JSONObject jsonObject = uyClient.imageDetection(param);
-        if (jsonObject != null) {
-            log.info("鏁版嵁鏍煎紡" + jsonObject);
-            Integer statusCode = jsonObject.getInteger("statusCode");
-            if (ApiConstants.UYSuccessCode.equals(statusCode)) {
-                JSONObject data = jsonObject.getJSONObject("data");
-                if (data != null) {
-                    List<ImageDetectionResult> records = data.getList("records", ImageDetectionResult.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, QueryVqdResult.class);
-                        //瀛樻斁鍦╩ongo涓�
-                        mongoTemplate.insertAll(records);
-                    } else {
-                        log.error("鍥惧儚鐩戞祴鏁版嵁涓虹┖{}", data);
-                    }
-                } else {
-                    log.error("鍥惧儚鐩戞祴鏁版嵁涓虹┖{}", jsonObject);
-                }
-            } else {
-                log.error("鍥惧儚鐩戞祴璇锋眰澶辫触{}", jsonObject);
-            }
-        } else {
-            log.error("鍥惧儚鐩戞祴鏁版嵁涓虹┖");
-        }
+//        ImageDetectionParam param = new ImageDetectionParam();
+//        param.setPageNum(ApiConstants.PageNo);
+//        param.setPageSize(ApiConstants.PageSize);
+//        param.setArealayerno(ApiConstants.AreaNo);
+//        JSONObject jsonObject = uyClient.imageDetection(param);
+//        if (jsonObject != null) {
+//            log.info("鏁版嵁鏍煎紡" + jsonObject);
+//            Integer statusCode = jsonObject.getInteger("statusCode");
+//            if (ApiConstants.UYSuccessCode.equals(statusCode)) {
+//                JSONObject data = jsonObject.getJSONObject("data");
+//                if (data != null) {
+//                    List<ImageDetectionResult> records = data.getList("records", ImageDetectionResult.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, ImageDetectionResult.class);
+//                        //瀛樻斁鍦╩ongo涓�
+//                        mongoTemplate.insertAll(records);
+//                        // 宸ュ崟鐢熸垚
+//                        uyErrorTypeCheckService.imageDetectionCheck(records);
+//                    } else {
+//                        log.error("鍥惧儚鐩戞祴鏁版嵁涓虹┖{}", data);
+//                    }
+//                } else {
+//                    log.error("鍥惧儚鐩戞祴鏁版嵁涓虹┖{}", jsonObject);
+//                }
+//            } else {
+//                log.error("鍥惧儚鐩戞祴璇锋眰澶辫触{}", jsonObject);
+//            }
+//        } else {
+//            log.error("鍥惧儚鐩戞祴鏁版嵁涓虹┖");
+//        }
+        Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date())));
+        uyErrorTypeCheckService.imageDetectionCheck(mongoTemplate.find(query, ImageDetectionResult.class));
         log.info("缁撴潫鎵ц鍥惧儚鐩戞祴鏁版嵁鍚屾");
     }
 
@@ -97,33 +106,37 @@
         // 涓�鏈轰竴妗f敞鍐岀巼
         // 妗f鑰冩牳姣�
         log.info("寮�濮嬫墽琛屼竴鏈轰竴妗e悎鏍肩巼鏁版嵁鍚屾");
-        MonitorQualifyParam param = new MonitorQualifyParam();
-        param.setPageNum(ApiConstants.PageNo);
-        param.setPageSize(ApiConstants.PageSize);
-        JSONObject jsonObject = uyClient.monitorQualify(param);
-        if (jsonObject != null) {
-            String code = jsonObject.getString("code");
-            if (ApiConstants.UYSuccessCodeStr.equals(code)) {
-                JSONObject data = jsonObject.getJSONObject("data");
-                if (data != null) {
-                    List<MonitorQualifyResult> records = data.getList("records", MonitorQualifyResult.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, MonitorQualifyResult.class);
-                        //瀛樻斁鍦╩ongo涓�
-                        mongoTemplate.insertAll(records);
-                    } else {
-                        log.error("涓�鏈轰竴妗e悎鏍肩巼鏁版嵁涓虹┖{}", data);
-                    }
-                }
-            } else {
-                log.error("涓�鏈轰竴妗e悎鏍肩巼鏁版嵁涓虹┖{}", jsonObject);
-            }
-        } else {
-            log.error("涓�鏈轰竴妗e悎鏍肩巼鏁版嵁涓虹┖");
-        }
+//        MonitorQualifyParam param = new MonitorQualifyParam();
+//        param.setPageNum(ApiConstants.PageNo);
+//        param.setPageSize(ApiConstants.PageSize);
+//        JSONObject jsonObject = uyClient.monitorQualify(param);
+//        if (jsonObject != null) {
+//            String code = jsonObject.getString("code");
+//            if (ApiConstants.UYSuccessCodeStr.equals(code)) {
+//                JSONObject data = jsonObject.getJSONObject("data");
+//                if (data != null) {
+//                    List<MonitorQualifyResult> records = data.getList("records", MonitorQualifyResult.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, MonitorQualifyResult.class);
+//                        //瀛樻斁鍦╩ongo涓�
+//                        mongoTemplate.insertAll(records);
+//                        // 宸ュ崟鐢熸垚
+//                        uyErrorTypeCheckService.monitorQualifyCheck(records);
+//                    } else {
+//                        log.error("涓�鏈轰竴妗e悎鏍肩巼鏁版嵁涓虹┖{}", data);
+//                    }
+//                }
+//            } else {
+//                log.error("涓�鏈轰竴妗e悎鏍肩巼鏁版嵁涓虹┖{}", jsonObject);
+//            }
+//        } else {
+//            log.error("涓�鏈轰竴妗e悎鏍肩巼鏁版嵁涓虹┖");
+//        }
+        Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date())));
+        uyErrorTypeCheckService.monitorQualifyCheck(mongoTemplate.find(query, MonitorQualifyResult.class));
         log.info("缁撴潫涓�鏈轰竴妗e悎鏍肩巼鏁版嵁鍚屾");
     }
 
@@ -151,6 +164,8 @@
                         DeleteResult result = mongoTemplate.remove(query, VideoOnlineResult.class);
                         //瀛樻斁鍦╩ongo涓�
                         mongoTemplate.insertAll(records);
+                        // 宸ュ崟鐢熸垚
+                        uyErrorTypeCheckService.videoOnlineCheck(records);
                     } else {
                         log.error("鐐逛綅鍦ㄧ嚎缁撴灉鏁版嵁涓虹┖{}", data);
                     }
@@ -163,6 +178,8 @@
         } else {
             log.error("鐐逛綅鍦ㄧ嚎缁撴灉鏁版嵁涓虹┖");
         }
+        Query query = new Query(Criteria.where("mongoCreateTime").lt(DateUtils.getDayEnd(new Date())));
+        uyErrorTypeCheckService.videoOnlineCheck(mongoTemplate.find(query, VideoOnlineResult.class));
         log.info("缁撴潫鎵ц鐐逛綅鍦ㄧ嚎鏁版嵁鍚屾");
     }
 
@@ -170,30 +187,34 @@
     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);
-                    //瀛樻斁鍦╩ongo涓�
-                    mongoTemplate.insertAll(records);
-                }
-            } else {
-                log.error("褰曞儚鍙敤鏁版嵁涓虹┖{}", jsonObject);
-            }
-        }
+//        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);
+//                    //瀛樻斁鍦╩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/utils/ip/PingUtil.java b/ycl-server/src/main/java/com/ycl/utils/ip/PingUtil.java
new file mode 100644
index 0000000..17be5a2
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/utils/ip/PingUtil.java
@@ -0,0 +1,33 @@
+package com.ycl.utils.ip;
+
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.IOException;
+import java.net.InetAddress;
+
+/**
+ * ping
+ *
+ * @author锛歺p
+ * @date锛�2024/8/19 11:11
+ */
+@Slf4j
+public class PingUtil {
+
+    /**
+     * ping
+     *
+     * @param ip 鐩爣ip鍦板潃
+     * @param timeoutSed 瓒呮椂鏃堕棿
+     * @return 鏄惁鍦ㄧ嚎
+     */
+    public static Boolean ping(String ip, Integer timeoutSed) {
+        try {
+            return InetAddress.getByName(ip).isReachable(timeoutSed * 1000);
+        } catch (IOException e) {
+            log.error("鏈煡鐨処P鍦板潃");
+            return Boolean.FALSE;
+        }
+    }
+
+}
diff --git a/ycl-server/src/main/resources/mapper/zgyw/PlatformMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/PlatformMapper.xml
index c7f08b3..5102e2b 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/PlatformMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/PlatformMapper.xml
@@ -44,7 +44,8 @@
             TP.remark,
             TP.create_time,
             TP.update_time,
-            TP.id
+            TP.id,
+            TP.parent_id
         FROM
             t_platform TP
         WHERE

--
Gitblit v1.8.0