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 | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 158 insertions(+), 12 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 32d6e38..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,28 +1,57 @@ package com.ycl.platform.service.impl; -import com.ycl.platform.entity.TMonitor; +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; import java.util.List; +import java.util.Map; +import java.util.Objects; /** * 璁惧璧勪骇Service涓氬姟灞傚鐞� - * + * * @author ruoyi * @date 2024-03-04 */ @Service -public class TMonitorServiceImpl implements ITMonitorService +public class TMonitorServiceImpl extends ServiceImpl<TMonitorMapper, TMonitor> implements ITMonitorService { @Autowired private TMonitorMapper tMonitorMapper; + @Autowired + private ISysConfigService configService; + @Autowired + private MongoTemplate mongoTemplate; /** * 鏌ヨ璁惧璧勪骇 - * + * * @param id 璁惧璧勪骇涓婚敭 * @return 璁惧璧勪骇 */ @@ -34,19 +63,88 @@ /** * 鏌ヨ璁惧璧勪骇鍒楄〃 - * + * * @param tMonitor 璁惧璧勪骇 * @return 璁惧璧勪骇 */ @Override - public List<TMonitor> selectTMonitorList(TMonitor tMonitor) - { - return tMonitorMapper.selectTMonitorList(tMonitor); + @DataScope(deptAlias = "d",userAlias = "u") + public List<TMonitorVO> selectTMonitorList(TMonitorVO tMonitor) { + List<TMonitorVO> monitors = tMonitorMapper.selectTMonitorList(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); + } + // 瑙嗛鐩戞帶璁惧 + 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; } /** * 鏂板璁惧璧勪骇 - * + * * @param tMonitor 璁惧璧勪骇 * @return 缁撴灉 */ @@ -58,7 +156,7 @@ /** * 淇敼璁惧璧勪骇 - * + * * @param tMonitor 璁惧璧勪骇 * @return 缁撴灉 */ @@ -70,7 +168,7 @@ /** * 鎵归噺鍒犻櫎璁惧璧勪骇 - * + * * @param ids 闇�瑕佸垹闄ょ殑璁惧璧勪骇涓婚敭 * @return 缁撴灉 */ @@ -82,7 +180,7 @@ /** * 鍒犻櫎璁惧璧勪骇淇℃伅 - * + * * @param id 璁惧璧勪骇涓婚敭 * @return 缁撴灉 */ @@ -91,4 +189,52 @@ { return tMonitorMapper.deleteTMonitorById(id); } + + @Override + @DataScope(deptAlias = "d",userAlias = "u") + public Map<String, String> getVideoCount(TMonitor tMonitor) { + return tMonitorMapper.getVideoCount(tMonitor); + } + + @Override + public Map<String, String> recoveryException() { + String time = configService.selectConfigByKey("abnormal.equipment.continuous.attention.time"); + return tMonitorMapper.recoveryException(time); + } + + @Override + public Map<String, Object> home(HomeQuery monitorQuery) { + Map<String, Object> dataMap = new HashMap<>(); + Map<String, Object> monthMap1 = new HashMap<>(); + Map<String, Object> monthMap2 = new HashMap<>(); + List<Map<String, Object>> home = baseMapper.home(monitorQuery); + if (ObjectUtils.isNotEmpty(home)) { + for (Map<String, Object> map : home) { + monthMap1.put(map.get("months").toString(), map.get("num1")); + monthMap2.put(map.get("months").toString(), map.get("num2")); + } + dataMap.put("name", home.get(0).get("name")); + dataMap.put("state", monthMap1); + dataMap.put("state2", monthMap2); + } + 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