From d864bab0b2104b35e8424084d6174efbc5538f32 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 15 一月 2025 16:28:08 +0800
Subject: [PATCH] 视频考核:优云的数据筛选出视频设备、资产管理、取消海康在线工单

---
 ycl-server/src/main/resources/mapper/zgyw/DynamicColumnMapper.xml                  |    2 
 ycl-server/src/main/java/com/ycl/task/ContractTask.java                            |    1 
 ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java            |    4 +
 ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java      |    2 
 ycl-pojo/src/main/java/com/ycl/platform/domain/query/DataCenterQuery.java          |    3 
 ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java               |    7 +
 ycl-server/src/main/java/com/ycl/platform/controller/YwPointController.java        |    1 
 ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java    |   22 +++++
 ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java |   40 +++++-----
 ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml                        |    6 +
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TMonitor.java                |    3 
 ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java                |    2 
 ycl-server/src/main/java/com/ycl/task/OsdTask.java                                 |   10 ++
 ycl-server/src/main/java/com/ycl/task/VideoTask.java                               |   18 ++++
 ycl-server/src/main/java/com/ycl/task/UYTask.java                                  |    1 
 ycl-common/src/main/java/enumeration/ErrorType.java                                |    2 
 ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml                       |   40 +++++++--
 ycl-server/src/main/java/com/ycl/platform/controller/DataCenterController.java     |   23 +++++
 ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java              |    1 
 19 files changed, 150 insertions(+), 38 deletions(-)

diff --git a/ycl-common/src/main/java/enumeration/ErrorType.java b/ycl-common/src/main/java/enumeration/ErrorType.java
index 0fff84a..50342a9 100644
--- a/ycl-common/src/main/java/enumeration/ErrorType.java
+++ b/ycl-common/src/main/java/enumeration/ErrorType.java
@@ -20,7 +20,7 @@
     DEVICE_OFFLINE("DEVICEOFFLINE", "璁惧绂荤嚎","COMMON",false),
     POINT_INFO_ERROR("POINTINFOERRO", "鐐逛綅淇℃伅閿欒","COMMON",false),
     //瑙嗛
-    CLOCK_SKEW("CLOCKSKEW", "鏃堕挓鍋忓樊","VIDEO",true),
+    CLOCK_SKEW("CLOCKSKEW", "鏃堕挓鍋忓樊","VIDEO",false),
     SIGNAL_LOSS("SIGNALMISS", "淇″彿缂哄け","VIDEO",true),
     SCREEN_COLOR_DEVIATION("SCREENCOLOR", "鐢婚潰鍋忚壊","VIDEO",true),
     SNOW_STORM("SCREENSNOW", "闆姳骞叉壈","VIDEO",true),
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TMonitor.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TMonitor.java
index 94cf46c..00fbaa9 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TMonitor.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/TMonitor.java
@@ -147,7 +147,8 @@
 
     /** 璁惧鍘傚晢锛� 0娴峰悍  1澶у崕  2瀹囪*/
     private Integer deviceType;
-
+    @TableField(exist = false)
     private String username;
+    @TableField(exist = false)
     private String password;
 }
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/DataCenterQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/DataCenterQuery.java
index 4a241b7..3f98a2a 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/DataCenterQuery.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/DataCenterQuery.java
@@ -44,7 +44,8 @@
     private Integer deviceType;
     /** 涓嬫媺妗� */
     private Integer option;
-
+    /** 鑰冩牳鐘舵�� */
+    private Integer examineStatus;
     public void setTime() {
         if (Objects.nonNull(this.date)) {
             this.startTime = DateUtils.getDayStart(this.date);
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/DataCenterController.java b/ycl-server/src/main/java/com/ycl/platform/controller/DataCenterController.java
index fd10c35..e1cd357 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/DataCenterController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/DataCenterController.java
@@ -1,10 +1,12 @@
 package com.ycl.platform.controller;
 
+import annotation.Log;
 import com.ycl.platform.domain.query.DataCenterQuery;
 import com.ycl.platform.service.DataCenterService;
 import com.ycl.platform.service.ITMonitorService;
 import com.ycl.platform.service.PlatformOnlineService;
 import com.ycl.system.Result;
+import enumeration.BusinessType;
 import io.swagger.annotations.ApiOperation;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.RequiredArgsConstructor;
@@ -39,7 +41,26 @@
         query.setTime();
         return monitorService.assetManagement(query);
     }
-
+    /**
+     * 璧勪骇绠$悊缁熻
+     *
+     * @param query
+     * @return
+     */
+    @GetMapping("/assetManagement/count")
+    @ApiOperation(value = "璧勪骇绠$悊缁熻", notes = "璧勪骇绠$悊缁熻")
+    @PreAuthorize("@ss.hasPermi('assetManagement:page')")
+    public Result assetManagementCount(DataCenterQuery query) {
+        query.setTime();
+        return monitorService.assetManagementCount(query);
+    }
+    @DeleteMapping("/assetManagement/clear")
+    @ApiOperation(value = "娓呯悊涓�鏈轰竴妗�", notes = "娓呯悊涓�鏈轰竴妗�")
+    @PreAuthorize("@ss.hasPermi('point:remove')")
+    @Log(title = "娓呯悊涓�鏈轰竴妗�", businessType = BusinessType.DELETE)
+    public Result clear() {
+        return monitorService.clearMonitor();
+    }
     /**
      * 骞冲彴鍦ㄧ嚎鐜�
      *
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java b/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
index 0be073f..c3e52a4 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
@@ -101,6 +101,7 @@
     @DeleteMapping("/{id}")
     @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎")
     @PreAuthorize("@ss.hasPermi('work:order:remove')")
+    @Log(title = "鍒犻櫎宸ュ崟", businessType = BusinessType.DELETE)
     public Result removeById(@PathVariable("id") String id) {
         return workOrderService.removeById(id);
     }
@@ -205,6 +206,7 @@
     @DeleteMapping("/batchDelete")
     @PreAuthorize("@ss.hasPermi('work:order:delete')")
     @ApiOperation(value = "鎵归噺鍒犻櫎宸ュ崟", notes = "鎵归噺鍒犻櫎宸ュ崟")
+    @Log(title = "鎵归噺鍒犻櫎宸ュ崟", businessType = BusinessType.DELETE)
     public Result batchDeleteWorkOrder(@RequestBody List<String> workOrderNos) {
         return workOrderService.batchDeleteWorkOrder(workOrderNos);
     }
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/YwPointController.java b/ycl-server/src/main/java/com/ycl/platform/controller/YwPointController.java
index 5cbd808..f7fce50 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/YwPointController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/YwPointController.java
@@ -143,4 +143,5 @@
         return ywPointService.importData(file, unitId, start, end, needUpdateUnit);
     }
 
+
 }
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 62b512e..4137721 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
@@ -185,4 +185,11 @@
     List<TMonitorExp> exportTMonitorList(TMonitorVO tMonitor);
 
     List<TMonitorResult> getByIp(@Param("ipList")List<String> ips);
+
+    void clearMonitor();
+
+    List<String> getVideoIds();
+
+    Map<String, String> assetManagementCount();
+
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java
index a08b230..7cb2a2d 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java
@@ -119,4 +119,6 @@
     List<YwPointVO> selectToCount(Short examineCategory, Short examineTag);
 
     void myUpdateById(YwPoint entity);
+
+    void clearMonitor();
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java b/ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java
index 3b8a84b..15fbd8b 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java
@@ -130,4 +130,8 @@
     Map<String, Object> videoHome(HomeQuery monitorQuery) throws ParseException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException;
 
     void export(HttpServletResponse response, TMonitorVO tMonitor);
+
+    Result clearMonitor();
+
+    Result assetManagementCount(DataCenterQuery query);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java b/ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java
index 53239d6..f0185dc 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java
@@ -164,4 +164,5 @@
      * @author
      */
     YwPoint selectBySerialNumber(String serialNumber);
+
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
index 8aaa8bf..3cc7abe 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
@@ -33,6 +33,7 @@
 import com.ycl.platform.mapper.DynamicColumnMapper;
 import com.ycl.platform.mapper.TMonitorMapper;
 import com.ycl.platform.mapper.WorkOrderMapper;
+import com.ycl.platform.mapper.YwPointMapper;
 import com.ycl.platform.service.ITMonitorService;
 import com.ycl.system.Result;
 import com.ycl.system.entity.SysDictData;
@@ -57,6 +58,7 @@
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import pojo.ExcelExp;
 import utils.poi.ExcelUtilManySheet;
@@ -89,6 +91,8 @@
 public class TMonitorServiceImpl extends ServiceImpl<TMonitorMapper, TMonitor> implements ITMonitorService {
     @Autowired
     private TMonitorMapper tMonitorMapper;
+    @Autowired
+    private YwPointMapper pointMapper;
     @Autowired
     private ISysConfigService configService;
     @Autowired
@@ -1084,6 +1088,24 @@
         util.exportExcel(response, monitors, sheetName);
     }
 
+    /**
+     * 娓呯悊涓�鏈轰竴妗�
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result clearMonitor() {
+      tMonitorMapper.clearMonitor();
+      pointMapper.clearMonitor();
+      return Result.ok();
+    }
+
+    @Override
+    public Result assetManagementCount(DataCenterQuery query) {
+        Map<String, String> map =tMonitorMapper.assetManagementCount();
+        return Result.ok().data(map);
+    }
+
 
     //棣栭〉杞﹁締鎶ヨ〃
     @Override
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 440e2a7..8a19b35 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
@@ -228,16 +228,16 @@
                 check(YwThreadConstants.Face_FailPercent, failPercent, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.MODELING_FAIL.getValue());
             }
             // 鐐逛綅鍦ㄧ嚎鐜�
-            if (2 == result.getSnapResult()) {
-                workOrder.setSerialNumber(result.getExternalIndexCode());
-                workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
-                if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
-                    workOrder.setErrorTypeList(new ArrayList<>());
-                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
-                } else {
-                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
-                }
-            }
+//            if (2 == result.getSnapResult()) {
+//                workOrder.setSerialNumber(result.getExternalIndexCode());
+//                workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
+//                if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
+//                    workOrder.setErrorTypeList(new ArrayList<>());
+//                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
+//                } else {
+//                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
+//                }
+//            }
             if (WorkOrderStatusEnum.WAIT_DISTRIBUTE.equals(workOrder.getStatus())) {
                 workOrderList.add(workOrder);
             } else if (WorkOrderStatusEnum.DISTRIBUTED.equals(workOrder.getStatus())) {
@@ -299,16 +299,16 @@
                 check(YwThreadConstants.Car_NoIntegrityCount, integrityRate, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.CAR_SIX.getValue());
             }
             // 鐐逛綅鍦ㄧ嚎鐜�
-            if (2 == result.getSnapResult()) {
-                workOrder.setSerialNumber(result.getExternalIndexCode());
-                workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
-                if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
-                    workOrder.setErrorTypeList(new ArrayList<>());
-                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
-                } else {
-                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
-                }
-            }
+//            if (2 == result.getSnapResult()) {
+//                workOrder.setSerialNumber(result.getExternalIndexCode());
+//                workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
+//                if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
+//                    workOrder.setErrorTypeList(new ArrayList<>());
+//                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
+//                } else {
+//                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
+//                }
+//            }
             if (WorkOrderStatusEnum.WAIT_DISTRIBUTE.equals(workOrder.getStatus())) {
                 workOrderList.add(workOrder);
             } else if (WorkOrderStatusEnum.DISTRIBUTED.equals(workOrder.getStatus())) {
diff --git a/ycl-server/src/main/java/com/ycl/task/ContractTask.java b/ycl-server/src/main/java/com/ycl/task/ContractTask.java
index a31b5e5..d3a5c7c 100644
--- a/ycl-server/src/main/java/com/ycl/task/ContractTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/ContractTask.java
@@ -194,7 +194,6 @@
         LocalDateTime endTime = LocalDateTime.now();
         // 璁$畻30澶╁墠鐨勬棩鏈�
         LocalDateTime startTime = endTime.minusDays(30);
-        //闇�瑕佹煡瀹℃牳閫氳繃閭f潯璁板綍鐨勬椂闂�
         List<WorkOrderVO> workOrders = workOrderMapper.selectPassOrder(startTime, endTime, WorkOrderStatusEnum.AUDITING_SUCCESS.getValue(), "瀹℃牳閫氳繃");
         for (WorkOrderVO workOrder : workOrders) {
             //妫�娴嬫槸鍚︽姤澶囪繃
diff --git a/ycl-server/src/main/java/com/ycl/task/OsdTask.java b/ycl-server/src/main/java/com/ycl/task/OsdTask.java
index 9971b41..2fab0ee 100644
--- a/ycl-server/src/main/java/com/ycl/task/OsdTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/OsdTask.java
@@ -62,6 +62,7 @@
     public String YSPassword;
     /**
      * 閫氳繃鏌ongoDB姣忔棩涓�鏈轰竴妗f暟鎹幏鍙栬澶噄p
+     * 绛涢�夎棰戣澶�
      * 閫氳繃璁惧ip銆佸搧鐗岃皟鐢ㄤ笉鍚宎pi鑾峰彇osd淇℃伅
      * 姣斿mongoDB涓�鏈轰竴妗d俊鎭紝鏁寸悊鎴恟esult瀛樺叆mongo
      * 鍚屾鍝佺墝鍒癿ysql
@@ -94,8 +95,13 @@
                     new ThreadPoolExecutor.CallerRunsPolicy()
             );
             List<TMonitor> monitors = monitorMapper.selectByNumbers(serialNumbers);
-            //杩囨护ip
-            monitors = monitors.stream().filter(monitor -> !StringUtils.isEmpty(monitor.getIp()) && !"127.0.0.1".equals(monitor.getIp())).collect(Collectors.toList());
+            //杩囨护鎺夋棤鏁坕p骞剁瓫閫夊嚭瑙嗛璁惧
+            monitors = monitors.stream()
+                    .filter(monitor -> !StringUtils.isEmpty(monitor.getIp()) &&
+                            !"127.0.0.1".equals(monitor.getIp()) &&
+                            monitor.getCameraFunType()!=null &&
+                            monitor.getCameraFunType().contains("1"))
+                    .collect(Collectors.toList());
             List<Future<OSDResult>> futureList = new ArrayList<>(48);
             List<OSDResult> osdResultList = new ArrayList<>();
             for (TMonitor monitor : monitors) {
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 40c57fc..d75304f 100644
--- a/ycl-server/src/main/java/com/ycl/task/UYTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -339,7 +339,6 @@
                                 item.setNo(item.getDeviceId());
                             }
                         });
-                        //璨屼技杩欓噷鍙互蹇界暐鐪佸巺鏍囩鍥犱负椤圭洰灞曠ず鐨勫悗闈ing鐨勬椂鍊欏瓨鐨勬暟鎹�
                         pointService.setDeviceTagByGB(records,CheckConstants.Rule_Category_Video);
                         //瀛樻斁鍦╩ongo涓�
                         mongoTemplate.insertAll(records);
diff --git a/ycl-server/src/main/java/com/ycl/task/VideoTask.java b/ycl-server/src/main/java/com/ycl/task/VideoTask.java
index dc3b8b8..bb99e10 100644
--- a/ycl-server/src/main/java/com/ycl/task/VideoTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/VideoTask.java
@@ -20,6 +20,7 @@
 import constant.CheckConstants;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
@@ -33,6 +34,7 @@
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 瑙嗛璁$畻鑰冩牳鎸囨爣浠诲姟
@@ -64,6 +66,11 @@
         query.addCriteria(Criteria
                 .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
         List<VideoOnlineResult> results = mongoTemplate.find(query, VideoOnlineResult.class);
+        //浼樹簯涓婃湁杞﹁締鍜屼汉鑴哥殑璁惧鏁版嵁锛岄渶瑕佽繃婊ゅ嚭瑙嗛璁惧
+        List<String> videoIds = monitorMapper.getVideoIds();
+        if(!CollectionUtils.isEmpty(results)){
+            results = results.stream().filter(result -> videoIds.contains(result.getNo())).collect(Collectors.toList());
+        }
         CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Video_SiteOnline);
         calculator.calculate(results);
         log.info("缁撴潫璁$畻鐐逛綅鍦ㄧ嚎鐜�");
@@ -78,6 +85,11 @@
                 .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
 
         List<RecordMetaDSumResult> results = mongoTemplate.find(query, RecordMetaDSumResult.class);
+        //浼樹簯涓婃湁杞﹁締鍜屼汉鑴哥殑璁惧鏁版嵁锛岄渶瑕佽繃婊ゅ嚭瑙嗛璁惧
+        List<String> videoIds = monitorMapper.getVideoIds();
+        if(!CollectionUtils.isEmpty(results)){
+            results = results.stream().filter(result -> videoIds.contains(result.getNo())).collect(Collectors.toList());
+        }
         CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Video_Usability);
         calculator.calculate(results);
         log.info("缁撴潫璁$畻褰曞儚鍙敤鐜囧拰閲嶇偣褰曞儚鍙敤鐜�");
@@ -126,6 +138,12 @@
         query.addCriteria(Criteria
                 .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
         List<OsdCheckResult> results = mongoTemplate.find(query, OsdCheckResult.class);
+
+        //浼樹簯涓婃湁杞﹁締鍜屼汉鑴哥殑璁惧鏁版嵁锛岄渶瑕佽繃婊ゅ嚭瑙嗛璁惧
+        List<String> videoIds = monitorMapper.getVideoIds();
+        if(!CollectionUtils.isEmpty(results)){
+            results = results.stream().filter(result -> videoIds.contains(result.getNo())).collect(Collectors.toList());
+        }
         CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Video_OsdTime);
         calculator.calculate(results);
         log.info("缁撴潫璁$畻Osd鏍囨敞銆佹椂闂村噯纭巼");
diff --git a/ycl-server/src/main/resources/mapper/zgyw/DynamicColumnMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/DynamicColumnMapper.xml
index c640b36..3a5bce8 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/DynamicColumnMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/DynamicColumnMapper.xml
@@ -84,7 +84,7 @@
         *
         FROM
         t_dynamic_column_value dcv
-        LEFT JOIN t_dynamic_column dc ON dc.id = dcv.dynamic_column_id AND dc.table_name = #{tableName}
+        INNER JOIN t_dynamic_column dc ON dc.id = dcv.dynamic_column_id AND dc.table_name = #{tableName}
         WHERE
         dcv.ref_id in
         <foreach collection="ids" item="id" separator="," open="(" close=")">
diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
index 9ff1133..2c6604a 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -92,7 +92,7 @@
     <select id="selectByNumbers" resultType="com.ycl.platform.domain.entity.TMonitor">
         select m.*,p.username,p.password
         from t_monitor m left join t_yw_point p on m.serial_number = p.serial_number
-        where serial_number in
+        where m.serial_number in
         <foreach collection="numbers" separator="," open="(" close=")" item="number">
             #{number}
         </foreach>
@@ -417,7 +417,16 @@
             ${params.dataScope}
         </where>
     </select>
-
+    <select id="assetManagementCount" resultType="java.util.Map">
+        SELECT count(*) AS total,
+        IFNULL(SUM(IF((m.camera_fun_type like '%1%'), 1, 0)), 0) AS video,
+        IFNULL(SUM(IF((m.camera_fun_type like '%2%'), 1, 0)), 0) AS face,
+        IFNULL(SUM(IF((m.camera_fun_type like '%3%'), 1, 0)), 0) AS car,
+        IFNULL(SUM(IF((p.examine_status = 1), 1, 0)), 0) as examine,
+        IFNULL(SUM(IF((p.examine_status = 0), 1, 0)), 0) as notExamine
+        FROM t_monitor m
+        left join t_yw_point p on m.serial_number = p.serial_number
+    </select>
     <select id="recoveryException" resultType="java.util.Map">
         SELECT count(*) AS totalPosts,
         IFNULL(SUM(IF((p.online = 1 and p.ping_online = 1), 1, 0)), 0) AS totalMembers,
@@ -609,16 +618,16 @@
                tm.camera_fun_type,
                tm.longitude,
                tm.latitude,
-               tm.camera_capture_area,
-               tm.on_state,
+               d.dept_name as camera_capture_area,
+               yp.examine_status as on_state,
                tm.civil_code,
                tm.integrated_device,
                tm.camera_brand,
                tm.address,
                tm.net_working,
                tm.public_security,
-               tm.installed_time,
-               tm.management_unit,
+               yp.create_time as installed_time,
+               u.unit_name as management_unit,
                tm.mu_contact_info,
                tm.storage_days,
                tm.monitor_azimuth,
@@ -628,15 +637,18 @@
                tm.camera_type,
                tm.camera_light_type,
                tm.encoded_format,
-               tm.camera_dept,
-               tm.hybm,
-               tm.lxbm
+               tm.camera_dept
         FROM
             t_monitor tm
                 INNER JOIN t_yw_point yp ON yp.serial_number = tm.serial_number
+                left join sys_dept d on yp.dept_id = d.dept_id and d.del_flag = 0
+                left join t_yw_unit u on yp.unit_id = u.id and u.deleted = 0
         <where>
             <if test="query.keyword != null and query.keyword != ''">
                 AND tm.name like concat('%', #{query.keyword}, '%')
+            </if>
+            <if test="query.examineStatus != null">
+                AND yp.examine_status = #{query.examineStatus}
             </if>
             <if test="query.startTIme != null and query.endTime != null">
                 AND yp.create_time between #{query.startTime} and #{query.endTime}
@@ -708,4 +720,14 @@
             #{ip}
         </foreach>
     </select>
+    <!-- 娓呯悊涓�鏈轰竴妗� -->
+    <delete id="clearMonitor">
+        delete m from t_monitor m left join t_yw_point p on m.serial_number = p.serial_number
+        where p.examine_status != 1
+    </delete>
+
+    <select id ="getVideoIds" resultType="java.lang.String">
+        select serial_number from t_monitor
+        where camera_fun_type like '%1%'
+    </select>
 </mapper>
diff --git a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
index 7e7de1c..74a5004 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
@@ -303,4 +303,10 @@
         </set>
         where id =#{id}
     </update>
+
+    <!-- 娓呯悊涓�鏈轰竴妗� -->
+    <delete id="clearMonitor">
+        delete from t_yw_point p
+        where p.examine_status != 1
+    </delete>
 </mapper>

--
Gitblit v1.8.0