From 7eea73131d6905b301d0aba348ae62116d8b2240 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期二, 20 八月 2024 16:57:34 +0800
Subject: [PATCH] feat:运行监控展示
---
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/TMonitorVO.java | 42 ++++++++++++++
ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml | 12 ++--
ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java | 79 +++++++++++++++++++++++--
3 files changed, 119 insertions(+), 14 deletions(-)
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/TMonitorVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/TMonitorVO.java
index a916997..45c0ba3 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/TMonitorVO.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/TMonitorVO.java
@@ -5,6 +5,7 @@
import com.ycl.system.entity.BaseEntity;
import lombok.Data;
+import java.time.LocalDate;
import java.util.Date;
import java.util.List;
@@ -220,6 +221,47 @@
private Long deptId;
private String deptName;
+ private Integer provinceTag;
+ private String area;
+ private String error;
+ private String unitName;
+ private LocalDate mongoCreateTime;
+ /**
+ * 褰撴棩鎺ユ敹鍒扮殑褰撴棩鎶撴媿閲�
+ */
+ private Integer dataCount;
+ /**
+ * 鏃堕挓鍑嗙‘鐜�
+ */
+ private Float clockPercent;
+ /**
+ * 澶у浘鍙敤鐜�
+ */
+ private Float bigUsefulPercent;
+ /**
+ * 涓昏灞炴�т竴鑷寸巼
+ */
+ private Float majorConPercent;
+ /**
+ * 閲嶈灞炴�т竴鑷寸巼
+ */
+ private Float importantConPercent;
+ /**
+ * 浜鸿劯鍚堟牸鐜�
+ */
+ private Float faceEligPercent;
+ /**
+ * 鍏抽敭甯ф椂寤�
+ */
+ private Integer ifmDelay;
+ /**
+ * 淇′护鏃跺欢
+ */
+ private Integer sipDelay;
+ /**
+ * 瑙嗛娴佹椂寤�
+ */
+ private Integer videoDelay;
/**
* 鍔ㄦ�佸垪
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 a895a82..b91b2b4 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
@@ -2,14 +2,16 @@
import annotation.DataScope;
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.github.pagehelper.Page;
-import com.github.pagehelper.PageHelper;
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;
@@ -19,9 +21,11 @@
import com.ycl.system.page.PageUtil;
import com.ycl.system.service.ISysConfigService;
import com.ycl.utils.StringUtils;
-import com.ycl.utils.redis.RedisCache;
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;
@@ -43,7 +47,7 @@
@Autowired
private ISysConfigService configService;
@Autowired
- private RedisCache redisCache;
+ private MongoTemplate mongoTemplate;
/**
* 鏌ヨ璁惧璧勪骇
@@ -65,10 +69,10 @@
*/
@Override
@DataScope(deptAlias = "d",userAlias = "u")
- public List<TMonitorVO> selectTMonitorList(TMonitorVO 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("璇烽厤缃紓甯歌澶囪繛缁叧娉ㄦ椂闂�");
@@ -76,6 +80,65 @@
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;
}
diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
index 8bf9143..62aac3b 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -89,12 +89,12 @@
<select id="selectTMonitorList" resultType="com.ycl.platform.domain.vo.TMonitorVO">
select m.id, m.serial_number, name, site_type, mac_addr, ip, camera_fun_type, longitude, latitude,
- camera_capture_area, on_state, civil_code, integrated_device, camera_brand, address, net_working,
- public_security, installed_time, management_unit, mu_contact_info, storage_days
- , monitor_azimuth, scene_photo_addr, model, site_vulgo, camera_type, camera_light_type, encoded_format,
- camera_dept, hybm, lxbm,d.dept_id, d.dept_name 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
+ camera_capture_area, on_state, civil_code, d.dept_id, d.dept_name, d.area, p.province_tag,
+ IF(COUNT(w.id) OVER() > 0, '鏄�', '鍚�') AS error, u.unit_name from t_monitor m
+ left join t_yw_point p on m.serial_number = p.serial_number and p.deleted = 0
+ left join sys_dept d on p.dept_id = d.dept_id and d.del_flag = 0
+ left join t_work_order w on m.serial_number = w.serial_number and w.deleted = 0
+ left join t_yw_unit u on p.unit_id = u.id and u.deleted = 0
<where>
<if test="serialNumber != null and serialNumber != ''">and m.serial_number = #{serialNumber}</if>
<if test="name != null and name != ''">and name like concat('%', #{name}, '%')</if>
--
Gitblit v1.8.0