From 25163bd6852fdc8ace11fd5c3f60260b7e25798e Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期五, 13 九月 2024 16:43:34 +0800 Subject: [PATCH] 异常恢复监控 --- ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java | 103 +++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 82 insertions(+), 21 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 a895a82..03aae29 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,15 +21,15 @@ 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; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.time.LocalDate; +import java.util.*; /** * 璁惧璧勪骇Service涓氬姟灞傚鐞� @@ -43,7 +45,7 @@ @Autowired private ISysConfigService configService; @Autowired - private RedisCache redisCache; + private MongoTemplate mongoTemplate; /** * 鏌ヨ璁惧璧勪骇 @@ -65,16 +67,74 @@ */ @Override @DataScope(deptAlias = "d",userAlias = "u") - public List<TMonitorVO> selectTMonitorList(TMonitorVO tMonitor) - { - List<TMonitorVO> monitors = tMonitorMapper.selectTMonitorList(tMonitor); - if (Objects.equals(tMonitor.getRecovery(), 1)) { + public List<TMonitorVO> selectTMonitorList(TMonitorVO tMonitor) { + // 寮傚父鎭㈠鐩戞帶 + 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); + tMonitor.setTime(time); + } + List<TMonitorVO> monitors = tMonitorMapper.selectTMonitorList(tMonitor); + // 瑙嗛鐩戞帶璁惧 + 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; } @@ -129,14 +189,16 @@ @Override @DataScope(deptAlias = "d",userAlias = "u") - public Map<String, String> getVideoCount(TMonitor tMonitor) { + public Map<String, String> getVideoCount(TMonitorVO tMonitor) { return tMonitorMapper.getVideoCount(tMonitor); } @Override - public Map<String, String> recoveryException() { - String time = configService.selectConfigByKey("abnormal.equipment.continuous.attention.time"); - return tMonitorMapper.recoveryException(time); + @DataScope(deptAlias = "d",userAlias = "u") + public Map<String, String> recoveryException(TMonitorVO monitor) { +// String time = configService.selectConfigByKey("abnormal.equipment.continuous.attention.time"); +// monitor.setTime(time); + return tMonitorMapper.recoveryException(monitor); } @Override @@ -159,8 +221,7 @@ @Override public List<MonitorTotalVO> monitorTotal(DashboardQuery dashboardQuery) { - List<MonitorTotalVO> list = baseMapper.monitorTotal(dashboardQuery); - return list; + return baseMapper.monitorTotal(dashboardQuery); } @Override -- Gitblit v1.8.0