From d6f915ecc8ee7efd5fcd3a205b57ef490b918fa5 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期三, 21 八月 2024 14:27:59 +0800
Subject: [PATCH] feat:数据中心数字增加中文字段
---
ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java | 171 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 159 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..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
@@ -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,53 @@
{
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) {
+ List<MonitorTotalVO> list = baseMapper.monitorTotal(dashboardQuery);
+ return list;
+ }
+
+ @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