From b14531e3b850fe6d2fa916ba7b88b3e2bd2ff30a Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 11 九月 2024 16:47:48 +0800
Subject: [PATCH] OSD加标签

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java |  100 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 97 insertions(+), 3 deletions(-)

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 a5188d2..e03649d 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
@@ -1,16 +1,31 @@
 package com.ycl.platform.service.impl;
 
 import annotation.DataScope;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ycl.platform.domain.entity.TMonitor;
+import com.ycl.platform.domain.query.DashboardQuery;
+import com.ycl.platform.domain.query.DataCenterQuery;
 import com.ycl.platform.domain.query.HomeQuery;
+import com.ycl.platform.domain.result.HK.FaceDeviceInspectionResult;
+import com.ycl.platform.domain.result.HK.FaceDeviceSamplingResult;
+import com.ycl.platform.domain.result.HK.VehicleDeviceInspectionResult;
+import com.ycl.platform.domain.result.HK.VehicleDeviceSamplingResult;
+import com.ycl.platform.domain.result.UY.VideoOnlineResult;
 import com.ycl.platform.domain.vo.TMonitorVO;
+import com.ycl.platform.domain.vo.screen.MonitorRateVO;
+import com.ycl.platform.domain.vo.screen.MonitorTotalVO;
 import com.ycl.platform.mapper.TMonitorMapper;
 import com.ycl.platform.service.ITMonitorService;
+import com.ycl.system.Result;
+import com.ycl.system.page.PageUtil;
 import com.ycl.system.service.ISysConfigService;
 import com.ycl.utils.StringUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
@@ -31,6 +46,8 @@
     private TMonitorMapper tMonitorMapper;
     @Autowired
     private ISysConfigService configService;
+    @Autowired
+    private MongoTemplate mongoTemplate;
 
     /**
      * 鏌ヨ璁惧璧勪骇
@@ -52,16 +69,75 @@
      */
     @Override
     @DataScope(deptAlias = "d",userAlias = "u")
-    public List<TMonitorVO> selectTMonitorList(TMonitor tMonitor)
-    {
+    public List<TMonitorVO> selectTMonitorList(TMonitorVO tMonitor) {
         List<TMonitorVO> monitors = tMonitorMapper.selectTMonitorList(tMonitor);
-        if (Objects.equals(tMonitor.getRecovery(), 1)) {
+        // 寮傚父璁惧
+        if (Objects.equals(tMonitor.getRecovery(), 1L)) {
             String time = configService.selectConfigByKey("abnormal.equipment.continuous.attention.time");
             if (StringUtils.isBlank(time)) {
                 throw new RuntimeException("璇烽厤缃紓甯歌澶囪繛缁叧娉ㄦ椂闂�");
             }
             List<TMonitorVO> recoveryMonitors = tMonitorMapper.selectRecoveryMonitor(time);
             monitors.addAll(recoveryMonitors);
+        }
+        // 瑙嗛鐩戞帶璁惧
+        if (Objects.equals(tMonitor.getCameraFunType(), "1")) {
+            monitors.forEach(monitor -> {
+                Query query = new Query();
+                query.addCriteria(Criteria.where("deviceId").is(monitor.getSerialNumber())
+                        // .and("mongoCreateTime").is(LocalDate.now())
+                );
+                VideoOnlineResult one = mongoTemplate.findOne(query, VideoOnlineResult.class);
+                if (one != null) {
+                    monitor.setIfmDelay(one.getIfmDelay());
+                    monitor.setSipDelay(one.getSipDelay());
+                    monitor.setVideoDelay(one.getVideoDelay());
+                    monitor.setMongoCreateTime(one.getMongoCreateTime());
+                }
+            });
+        }
+        // 杞﹁締鐩戞帶璁惧
+        if (Objects.equals(tMonitor.getCameraFunType(), "2")) {
+            monitors.forEach(monitor -> {
+                Query query = new Query();
+                query.addCriteria(Criteria.where("externalIndexCode").is(monitor.getSerialNumber())
+                        // .and("mongoCreateTime").is(LocalDate.now())
+                );
+                VehicleDeviceInspectionResult one = mongoTemplate.findOne(query, VehicleDeviceInspectionResult.class);
+                VehicleDeviceSamplingResult two = mongoTemplate.findOne(query, VehicleDeviceSamplingResult.class);
+                if (one != null) {
+                    monitor.setDataCount(one.getDataCount());
+                    monitor.setClockPercent(Objects.nonNull(one.getSnapClock()) ? one.getSnapClock().getClockPercent() : null);
+                    monitor.setMongoCreateTime(one.getMongoCreateTime());
+                }
+                if (two != null) {
+                    monitor.setBigUsefulPercent(Objects.nonNull(two.getBigUseful()) ? two.getBigUseful().getBigUsefulPercent() : null);
+                    monitor.setMajorConPercent(Objects.nonNull(two.getVehDiff()) ? two.getVehDiff().getMajorConPercent() : null);
+                    monitor.setImportantConPercent(Objects.nonNull(two.getVehDiff()) ? two.getVehDiff().getImportantConPercent() : null);
+                    monitor.setMongoCreateTime(two.getMongoCreateTime());
+                }
+            });
+        }
+        // 浜鸿劯鐩戞帶璁惧
+        if (Objects.equals(tMonitor.getCameraFunType(), "3")) {
+            monitors.forEach(monitor -> {
+                Query query = new Query();
+                query.addCriteria(Criteria.where("externalIndexCode").is(monitor.getSerialNumber())
+                        // .and("mongoCreateTime").is(LocalDate.now())
+                );
+                FaceDeviceInspectionResult one = mongoTemplate.findOne(query, FaceDeviceInspectionResult.class);
+                FaceDeviceSamplingResult two = mongoTemplate.findOne(query, FaceDeviceSamplingResult.class);
+                if (one != null) {
+                    monitor.setDataCount(one.getDataCount());
+                    monitor.setClockPercent(Objects.nonNull(one.getSnapClock()) ? one.getSnapClock().getClockPercent() : null);
+                    monitor.setMongoCreateTime(one.getMongoCreateTime());
+                }
+                if (two != null) {
+                    monitor.setBigUsefulPercent(Objects.nonNull(two.getBigUseful())? two.getBigUseful().getBigUsefulPercent() : null);
+                    monitor.setFaceEligPercent(Objects.nonNull(two.getFaceEligibility()) ? two.getFaceEligibility().getFaceEligPercent() : null);
+                    monitor.setMongoCreateTime(two.getMongoCreateTime());
+                }
+            });
         }
         return monitors;
     }
@@ -143,4 +219,22 @@
         }
         return dataMap;
     }
+
+    @Override
+    public List<MonitorTotalVO> monitorTotal(DashboardQuery dashboardQuery) {
+        return baseMapper.monitorTotal(dashboardQuery);
+    }
+
+    @Override
+    public List<MonitorRateVO> monitorRate(DashboardQuery dashboardQuery) {
+        return baseMapper.monitorRate(dashboardQuery);
+    }
+
+
+    @Override
+    public Result assetManagement(DataCenterQuery query) {
+        IPage<TMonitorVO> page = PageUtil.getPage(query, TMonitorVO.class);
+        baseMapper.assetManagement(page, query);
+        return Result.ok().data(page.getRecords()).total(page.getTotal());
+    }
 }

--
Gitblit v1.8.0