From 7006d2e6e6c0281e4effc7fc70719af91b0c4982 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 30 九月 2024 12:23:46 +0800
Subject: [PATCH] 工单取图片优化
---
ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java | 619 +++++++++++++++++++++++++++++++++++--------------------
1 files changed, 392 insertions(+), 227 deletions(-)
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
index 39fb39a..2e7fe8a 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
@@ -10,7 +10,9 @@
import com.ycl.platform.domain.entity.*;
import com.ycl.platform.domain.query.DataCenterQuery;
import com.ycl.platform.domain.result.HK.*;
+import com.ycl.platform.domain.result.SYS.TMonitorResult;
import com.ycl.platform.domain.result.UY.*;
+import com.ycl.platform.domain.vo.PointDetailVO;
import com.ycl.platform.mapper.ImageResourceSecurityDetailMapper;
import com.ycl.platform.mapper.YwPointMapper;
import com.ycl.platform.service.*;
@@ -18,6 +20,7 @@
import com.ycl.system.page.PageUtil;
import com.ycl.utils.DateUtils;
import com.ycl.utils.MongoUtil;
+import constant.CheckConstants;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections.CollectionUtils;
import org.bson.Document;
@@ -30,6 +33,7 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.text.DecimalFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -53,6 +57,8 @@
private final static String TIME_FIELD = "mongoCreateTime";
+ private static DecimalFormat DF = new DecimalFormat("#.####");
+
/**
* 瑙嗛锛氱偣浣嶅湪绾跨巼
*
@@ -61,19 +67,18 @@
*/
@Override
public Result videoPointOnlineRate(DataCenterQuery params) {
- // 鐢熸垚鏌ヨ
- List<String> likeFileds = Arrays.asList("arealayerName", "ipAddr", "deviceName", "deviceId");
- Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null);
-
- // 鍏堟煡鎬绘暟鍐嶅垎椤�
- long total = mongoTemplate.count(query, VideoOnlineResult.class);
+ List<String> likeFileds = Arrays.asList("name", "no","ip");
+ Query query = MongoUtil.getQuery(params,TIME_FIELD, likeFileds, null);
+ //鍒嗛〉鏁伴噺
+ long total = mongoTemplate.count(query, TMonitorResult.class);
MongoUtil.setPage(query, params, TIME_FIELD);
- List<VideoOnlineResult> resultList = mongoTemplate.find(query, VideoOnlineResult.class);
+ List<TMonitorResult> resultList = mongoTemplate.find(query, TMonitorResult.class);
- // 缁熻鏁伴噺
- MongoDatabase database = mongoTemplate.getDb();
- MongoCollection<Document> collection = database.getCollection("uy_online");
- long distinctCount = collection.distinct("deviceId", String.class).into(new ArrayList<>()).size();
+ params.setDeptTag(-1);
+ params.setDeviceType(1);
+ // 缁熻璁惧鏁伴噺
+ Integer distinctCount = pointMapper.distinctCount(params);
+
Date now = new Date();
List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper())
.select(CheckIndexVideo::getSiteOnline)
@@ -86,7 +91,7 @@
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
HashMap<String, Object> map = new HashMap<>();
- map.put("count", Arrays.asList(distinctCount + "",onlineRate + "%"));
+ map.put("count", Arrays.asList(distinctCount + "",this.remove0(onlineRate)));
map.put("list", resultList);
return Result.ok().data(map).total(total);
}
@@ -99,38 +104,22 @@
*/
@Override
public Result deptVideoPointOnlineRate(DataCenterQuery params) {
-
- List<String> likeFileds = Arrays.asList("arealayerName", "ipAddr", "deviceName", "deviceId");
- // 鐢熸垚鏌ヨ
- Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, 1);
-
- // 鍏堟煡鎬绘暟鍐嶅垎椤�
- long total = mongoTemplate.count(query, VideoOnlineResult.class);
+ List<String> likeFileds = Arrays.asList("name", "no","ip");
+ Query query = MongoUtil.getQuery(params,TIME_FIELD, likeFileds, null);
+ //鍒嗛〉鏁伴噺
+ long total = mongoTemplate.count(query, TMonitorResult.class);
MongoUtil.setPage(query, params, TIME_FIELD);
- List<VideoOnlineResult> resultList = mongoTemplate.find(query, VideoOnlineResult.class);
+ List<TMonitorResult> resultList = mongoTemplate.find(query, TMonitorResult.class);
- // 缁熻鏁伴噺
- MongoDatabase database = mongoTemplate.getDb();
- MongoCollection<Document> collection = database.getCollection("uy_online");
- Document filter = new Document("deptTag", new Document("$eq", Boolean.TRUE));
- // 鏋勫缓鑱氬悎绠¢亾
- List<Document> pipeline = Arrays.asList(
- // 鍙閮ㄧ骇鐨�
- new Document("$match", filter),
- // $group 鍘婚噸
- new Document("$group", new Document("_id", "$deviceId")),
- new Document("$count", "uniqueDeviceIds")
- );
- // 鎵ц鑱氬悎鏌ヨ骞惰幏鍙栫粨鏋�
- AggregateIterable<Document> result = collection.aggregate(pipeline);
- Integer uniqueDeviceIdCount = 0;
- for (Document doc : result) {
- uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds");
- break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋�
- }
+ // 缁熻璁惧鏁伴噺
+ params.setDeptTag(1);
+ params.setDeviceType(1);
+ Integer distinctCount = pointMapper.distinctCount(params);
+
Date now = new Date();
List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper())
.select(CheckIndexVideo::getMinistrySiteOnline)
+ .eq(params.getDataType().equals(1), CheckIndexVideo::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -140,8 +129,8 @@
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
HashMap<String, Object> map = new HashMap<>();
- map.put("count", Arrays.asList(uniqueDeviceIdCount + "", onlineRate + "%"));
- map.put("list", resultList);
+ map.put("count", Arrays.asList(distinctCount + "", this.remove0(onlineRate)));
+ map.put("list",resultList);
return Result.ok().data(map).total(total);
}
@@ -153,35 +142,21 @@
*/
@Override
public Result videoImportantPointOnlineRate(DataCenterQuery params) {
- List<String> likeFileds = Arrays.asList("arealayerName", "ipAddr", "deviceName", "deviceId");
- Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, 3);
-
- long total = mongoTemplate.count(query, VideoOnlineResult.class);
+ List<String> likeFileds = Arrays.asList("name", "no","ip");
+ Query query = MongoUtil.getQuery(params,TIME_FIELD, likeFileds, null);
+ //鍒嗛〉鏁伴噺
+ long total = mongoTemplate.count(query, TMonitorResult.class);
MongoUtil.setPage(query, params, TIME_FIELD);
- List<VideoOnlineResult> resultList = mongoTemplate.find(query, VideoOnlineResult.class);
-
- // 缁熻鏁伴噺
- MongoDatabase database = mongoTemplate.getDb();
- MongoCollection<Document> collection = database.getCollection("uy_online");
- Document filter = new Document("importantTag", new Document("$eq", Boolean.TRUE));
- // 鏋勫缓鑱氬悎绠¢亾
- List<Document> pipeline = Arrays.asList(
- new Document("$match", filter),
- // $group 鍘婚噸
- new Document("$group", new Document("_id", "$deviceId")),
- new Document("$count", "uniqueDeviceIds")
- );
- // 鎵ц鑱氬悎鏌ヨ骞惰幏鍙栫粨鏋�
- AggregateIterable<Document> result = collection.aggregate(pipeline);
- Integer uniqueDeviceIdCount = 0;
- for (Document doc : result) {
- uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds");
- break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋�
- }
+ List<TMonitorResult> resultList = mongoTemplate.find(query, TMonitorResult.class);
+ params.setDeptTag(3);
+ params.setDeviceType(1);
+ // 缁熻璁惧鏁伴噺
+ Integer distinctCount = pointMapper.distinctCount(params);
Date now = new Date();
List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper())
.select(CheckIndexVideo::getKeySiteOnline)
+ .eq(params.getDataType().equals(1), CheckIndexVideo::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -191,7 +166,7 @@
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
HashMap<String, Object> map = new HashMap<>();
- map.put("count", Arrays.asList(uniqueDeviceIdCount + "", onlineRate + "%"));
+ map.put("count", Arrays.asList(distinctCount + "", this.remove0(onlineRate)));
map.put("list", resultList);
return Result.ok().data(map).total(total);
}
@@ -204,35 +179,22 @@
*/
@Override
public Result videoImportantPointImageOnlineRate(DataCenterQuery params) {
- List<String> likeFileds = Arrays.asList("arealayerName", "ipAddr", "deviceName", "deviceId");
- Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, 4);
-
- long total = mongoTemplate.count(query, VideoOnlineResult.class);
+ List<String> likeFileds = Arrays.asList("name", "no","ip");
+ Query query = MongoUtil.getQuery(params,TIME_FIELD, likeFileds, null);
+ //鍒嗛〉鏁伴噺
+ long total = mongoTemplate.count(query, TMonitorResult.class);
MongoUtil.setPage(query, params, TIME_FIELD);
- List<VideoOnlineResult> resultList = mongoTemplate.find(query, VideoOnlineResult.class);
+ List<TMonitorResult> resultList = mongoTemplate.find(query, TMonitorResult.class);
- // 缁熻鏁伴噺
- MongoDatabase database = mongoTemplate.getDb();
- MongoCollection<Document> collection = database.getCollection("uy_online");
- Document filter = new Document("importantCommandImageTag", new Document("$eq", Boolean.TRUE));
- // 鏋勫缓鑱氬悎绠¢亾
- List<Document> pipeline = Arrays.asList(
- new Document("$match", filter),
- // $group 鍘婚噸
- new Document("$group", new Document("_id", "$deviceId")),
- new Document("$count", "uniqueDeviceIds")
- );
- // 鎵ц鑱氬悎鏌ヨ骞惰幏鍙栫粨鏋�
- AggregateIterable<Document> result = collection.aggregate(pipeline);
- Integer uniqueDeviceIdCount = 0;
- for (Document doc : result) {
- uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds");
- break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋�
- }
+ params.setDeptTag(4);
+ params.setDeviceType(1);
+ // 缁熻璁惧鏁伴噺
+ Integer distinctCount = pointMapper.distinctCount(params);
Date now = new Date();
List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper())
.select(CheckIndexVideo::getKeyCommandImageOnline)
+ .eq(params.getDataType().equals(1), CheckIndexVideo::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -242,7 +204,7 @@
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
HashMap<String, Object> map = new HashMap<>();
- map.put("count", Arrays.asList(uniqueDeviceIdCount + "", onlineRate + "%"));
+ map.put("count", Arrays.asList(distinctCount + "", this.remove0(onlineRate)));
map.put("list", resultList);
return Result.ok().data(map).total(total);
}
@@ -266,10 +228,22 @@
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("uy_monitor_qualify");
- Document ipErrFilter = new Document("ip.error", true);
- Document macdzErrFilter = new Document("macdz.error", true);
- Document latitudeErrFilter = new Document("latitude.error", true);
- Document longitudeErrFilter = new Document("longitude.error", true);
+ List<Document> dList1 = new ArrayList<>(2);
+ dList1.add(new Document("ip.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList1);
+ List<Document> dList2 = new ArrayList<>(2);
+ dList2.add(new Document("macdz.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList2);
+ List<Document> dList3 = new ArrayList<>(2);
+ dList3.add(new Document("latitude.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList3);
+ List<Document> dList4 = new ArrayList<>(2);
+ dList4.add(new Document("longitude.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList4);
+ Document ipErrFilter = new Document("$and", dList1);
+ Document macdzErrFilter = new Document("$and", dList2);
+ Document latitudeErrFilter = new Document("$and", dList3);
+ Document longitudeErrFilter = new Document("$and", dList4);
List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter);
List<String> rList = lists.stream().map(filter -> {
@@ -293,6 +267,7 @@
Date now = new Date();
List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper())
.select(CheckIndexVideo::getMonitorRegistration)
+ .eq(params.getDataType().equals(1), CheckIndexVideo::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -301,7 +276,7 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
- rList.add(onlineRate + "%");
+ rList.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", rList);
map.put("list", resultList);
@@ -327,10 +302,22 @@
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("uy_monitor_qualify");
- Document ipErrFilter = new Document("ip.error", true);
- Document macdzErrFilter = new Document("macdz.error", true);
- Document latitudeErrFilter = new Document("latitude.error", true);
- Document longitudeErrFilter = new Document("longitude.error", true);
+ List<Document> dList1 = new ArrayList<>(2);
+ dList1.add(new Document("ip.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList1);
+ List<Document> dList2 = new ArrayList<>(2);
+ dList2.add(new Document("macdz.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList2);
+ List<Document> dList3 = new ArrayList<>(2);
+ dList3.add(new Document("latitude.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList3);
+ List<Document> dList4 = new ArrayList<>(2);
+ dList4.add(new Document("longitude.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList4);
+ Document ipErrFilter = new Document("$and", dList1);
+ Document macdzErrFilter = new Document("$and", dList2);
+ Document latitudeErrFilter = new Document("$and", dList3);
+ Document longitudeErrFilter = new Document("$and", dList4);
List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter);
List<String> rList = lists.stream().map(filter -> {
@@ -354,6 +341,7 @@
Date now = new Date();
List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper())
.select(CheckIndexVideo::getMonitorQualification)
+ .eq(params.getDataType().equals(1), CheckIndexVideo::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -362,7 +350,7 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
- rList.add(onlineRate + "%");
+ rList.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", rList);
map.put("list", resultList);
@@ -377,7 +365,6 @@
*/
@Override
public Result videoAssessmentFileRatio(DataCenterQuery params) {
- // TODO 鏂板涓�寮犺〃璁板綍姣忔鐨勬。妗堣�冩牳
List<String> likeFileds = Arrays.asList("ip.showValue", "name.showValue", "serialNumber.showValue");
Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null);
@@ -389,10 +376,22 @@
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("uy_monitor_qualify");
- Document ipErrFilter = new Document("ip.error", true);
- Document macdzErrFilter = new Document("macdz.error", true);
- Document latitudeErrFilter = new Document("latitude.error", true);
- Document longitudeErrFilter = new Document("longitude.error", true);
+ List<Document> dList1 = new ArrayList<>(2);
+ dList1.add(new Document("ip.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList1);
+ List<Document> dList2 = new ArrayList<>(2);
+ dList2.add(new Document("macdz.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList2);
+ List<Document> dList3 = new ArrayList<>(2);
+ dList3.add(new Document("latitude.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList3);
+ List<Document> dList4 = new ArrayList<>(2);
+ dList4.add(new Document("longitude.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList4);
+ Document ipErrFilter = new Document("$and", dList1);
+ Document macdzErrFilter = new Document("$and", dList2);
+ Document latitudeErrFilter = new Document("$and", dList3);
+ Document longitudeErrFilter = new Document("$and", dList4);
List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter);
List<String> rList = lists.stream().map(filter -> {
@@ -440,7 +439,10 @@
MongoCollection<Document> collection = database.getCollection("uy_record_meta_d_sum");
List<Integer> status = Arrays.asList(1, 0, -1);
List<String> resultCount = status.stream().map(item -> {
- Document filter = new Document("recordStatus", item);
+ List<Document> dList = new ArrayList<>(2);
+ dList.add(new Document("recordStatus", new Document("$eq", item)));
+ setTag(params, dList);
+ Document filter = new Document("$and", dList);
// 鏋勫缓鑱氬悎绠¢亾
List<Document> pipeline = Arrays.asList(
new Document("$match", filter),
@@ -461,6 +463,7 @@
Date now = new Date();
List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper())
.select(CheckIndexVideo::getVideoAvailable)
+ .eq(params.getDataType().equals(1), CheckIndexVideo::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -469,7 +472,7 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
- resultCount.add(onlineRate + "%");
+ resultCount.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", resultCount);
map.put("list", resultList);
@@ -496,10 +499,11 @@
MongoCollection<Document> collection = database.getCollection("uy_record_meta_d_sum");
List<Integer> status = Arrays.asList(1, 0, -1);
List<String> resultCount = status.stream().map(item -> {
- Document filter = new Document("$and", Arrays.asList(
- new Document("deptTag", new Document("$eq", Boolean.TRUE)),
- new Document("recordStatus", item)
- ));
+ List<Document> dList = new ArrayList<>(4);
+ dList.add(new Document("deptTag", new Document("$eq", Boolean.TRUE)));
+ dList.add(new Document("recordStatus", new Document("$eq", item)));
+ setTag(params,dList);
+ Document filter = new Document("$and", dList);
// 鏋勫缓鑱氬悎绠¢亾
List<Document> pipeline = Arrays.asList(
new Document("$match", filter),
@@ -520,6 +524,7 @@
Date now = new Date();
List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper())
.select(CheckIndexVideo::getMinistryVideoAvailable)
+ .eq(params.getDataType().equals(1), CheckIndexVideo::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -528,7 +533,7 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
- resultCount.add(onlineRate + "%");
+ resultCount.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", resultCount);
map.put("list", resultList);
@@ -555,10 +560,11 @@
MongoCollection<Document> collection = database.getCollection("uy_record_meta_d_sum");
List<Integer> status = Arrays.asList(1, 0, -1);
List<String> resultCount = status.stream().map(item -> {
- Document filter = new Document("$and", Arrays.asList(
- new Document("importantTag", new Document("$eq", Boolean.TRUE)),
- new Document("recordStatus", item)
- ));
+ List<Document> dList = new ArrayList<>(4);
+ dList.add(new Document("importantTag", new Document("$eq", Boolean.TRUE)));
+ dList.add(new Document("recordStatus", new Document("$eq", item)));
+ setTag(params,dList);
+ Document filter = new Document("$and", dList);
// 鏋勫缓鑱氬悎绠¢亾
List<Document> pipeline = Arrays.asList(
new Document("$match", filter),
@@ -573,12 +579,13 @@
uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds");
break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋�
}
- return uniqueDeviceIdCount + "%";
+ return uniqueDeviceIdCount + "";
}).collect(Collectors.toList());
Date now = new Date();
List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper())
.select(CheckIndexVideo::getKeyVideoAvailable)
+ .eq(params.getDataType().equals(1), CheckIndexVideo::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -587,7 +594,7 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
- resultCount.add(onlineRate + "%");
+ resultCount.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", resultCount);
map.put("list", resultList);
@@ -638,11 +645,26 @@
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("osd_check_result");
- Document importantTag = new Document("importantTag", Boolean.TRUE);
- Document osdNameFilter = new Document("$and", Arrays.asList(new Document("osdNameCorrect", 1), importantTag));
- Document osdNameErrFilter = new Document("$and", Arrays.asList(new Document("osdNameCorrect", -1), importantTag));
- Document osdTimeFilter = new Document("$and", Arrays.asList(new Document("osdTimeCorrect", 1), importantTag));
- Document osdTimeErrFilter = new Document("$and", Arrays.asList(new Document("osdTimeCorrect", -1), importantTag));
+ List<Document> dList1 = new ArrayList<>(2);
+ dList1.add(new Document("importantTag", Boolean.TRUE));
+ dList1.add(new Document("osdNameCorrect", new Document("$eq", 1)));
+ setTag(params,dList1);
+ List<Document> dList2 = new ArrayList<>(2);
+ dList2.add(new Document("importantTag", Boolean.TRUE));
+ dList2.add(new Document("osdNameCorrect", new Document("$eq", -1)));
+ setTag(params,dList2);
+ List<Document> dList3 = new ArrayList<>(2);
+ dList3.add(new Document("importantTag", Boolean.TRUE));
+ dList3.add(new Document("osdTimeCorrect", new Document("$eq", 1)));
+ setTag(params,dList3);
+ List<Document> dList4 = new ArrayList<>(2);
+ dList4.add(new Document("importantTag", Boolean.TRUE));
+ dList4.add(new Document("osdTimeCorrect", new Document("$eq", -1)));
+ setTag(params,dList4);
+ Document osdNameFilter = new Document("$and", dList1);
+ Document osdNameErrFilter = new Document("$and", dList2);
+ Document osdTimeFilter = new Document("$and", dList3);
+ Document osdTimeErrFilter = new Document("$and", dList4);
List<Document> lists = Arrays.asList(osdNameFilter, osdNameErrFilter, osdTimeFilter, osdTimeErrFilter);
List<String> rList = lists.stream().map(filter -> {
// 鏋勫缓鑱氬悎绠¢亾
@@ -665,6 +687,7 @@
Date now = new Date();
List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper())
.select(CheckIndexVideo::getKeyAnnotationAccuracy)
+ .eq(params.getDataType().equals(1), CheckIndexVideo::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -673,7 +696,7 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
- rList.add(onlineRate + "%");
+ rList.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", rList);
map.put("list", resultList);
@@ -726,9 +749,16 @@
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("osd_check_result");
- Document importantTag = new Document("importantTag", Boolean.TRUE);
- Document osdTimeFilter = new Document("$and", Arrays.asList(new Document("osdTimeCorrect", 1), importantTag));
- Document osdTimeErrFilter = new Document("$and", Arrays.asList(new Document("osdTimeCorrect", -1), importantTag));
+ List<Document> dList1 = new ArrayList<>(2);
+ dList1.add(new Document("importantTag", Boolean.TRUE));
+ dList1.add(new Document("osdTimeCorrect", new Document("$eq", 1)));
+ setTag(params,dList1);
+ List<Document> dList2 = new ArrayList<>(2);
+ dList2.add(new Document("importantTag", Boolean.TRUE));
+ dList2.add(new Document("osdTimeCorrect", new Document("$eq", -1)));
+ setTag(params,dList2);
+ Document osdTimeFilter = new Document("$and", dList1);
+ Document osdTimeErrFilter = new Document("$and", dList2);
List<Document> lists = Arrays.asList(osdTimeFilter, osdTimeErrFilter);
List<String> rList = lists.stream().map(filter -> {
// 鏋勫缓鑱氬悎绠¢亾
@@ -751,6 +781,7 @@
Date now = new Date();
List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper())
.select(CheckIndexVideo::getKeyTimingAccuracy)
+ .eq(params.getDataType().equals(1), CheckIndexVideo::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -759,7 +790,7 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
- rList.add(onlineRate + "%");
+ rList.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", rList);
map.put("list", resultList);
@@ -786,10 +817,26 @@
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("hk_snapshot_data_monitor");
- Document normalFilter = new Document("resultType", 1);
- Document noDataFilter = new Document("resultType", 2);
- Document trFilter = new Document("resultType", 3);
- Document littleFilter = new Document("resultType", 4);
+ List<Document> dList1 = new ArrayList<>(2);
+ dList1.add(new Document("importantTag", Boolean.TRUE));
+ dList1.add(new Document("resultType", new Document("$eq", 1)));
+ setTag(params,dList1);
+ List<Document> dList2 = new ArrayList<>(2);
+ dList2.add(new Document("importantTag", Boolean.TRUE));
+ dList2.add(new Document("resultType", new Document("$eq", 2)));
+ setTag(params,dList2);
+ List<Document> dList3 = new ArrayList<>(2);
+ dList3.add(new Document("importantTag", Boolean.TRUE));
+ dList3.add(new Document("resultType", new Document("$eq", 3)));
+ setTag(params,dList3);
+ List<Document> dList4 = new ArrayList<>(2);
+ dList4.add(new Document("importantTag", Boolean.TRUE));
+ dList4.add(new Document("resultType", new Document("$eq", 4)));
+ setTag(params,dList4);
+ Document normalFilter = new Document("$and", dList1);
+ Document noDataFilter = new Document("$and", dList2);
+ Document trFilter = new Document("$and", dList3);
+ Document littleFilter = new Document("$and", dList4);
List<Document> lists = Arrays.asList(normalFilter, noDataFilter, trFilter, littleFilter);
List<String> rList = lists.stream().map(filter -> {
// 鏋勫缓鑱氬悎绠¢亾
@@ -812,6 +859,7 @@
Date now = new Date();
List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper())
.select(CheckIndexCar::getViewConnectStability)
+ .eq(params.getDataType().equals(1), CheckIndexCar::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -820,7 +868,7 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
- rList.add(onlineRate + "%");
+ rList.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", rList);
map.put("list", resultList);
@@ -835,21 +883,22 @@
*/
@Override
public Result vehiclePointOnlineRate(DataCenterQuery params) {
- List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName");
- Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null);
-
- long total = mongoTemplate.count(query, SnapshotDataMonitorResult.class);
+ List<String> likeFileds = Arrays.asList("name", "no","ip");
+ Query query = MongoUtil.getQuery(params,TIME_FIELD, likeFileds, null);
+ //鍒嗛〉鏁伴噺
+ long total = mongoTemplate.count(query, TMonitorResult.class);
MongoUtil.setPage(query, params, TIME_FIELD);
- List<SnapshotDataMonitorResult> resultList = mongoTemplate.find(query, SnapshotDataMonitorResult.class);
+ List<TMonitorResult> resultList = mongoTemplate.find(query, TMonitorResult.class);
- // 缁熻鏁伴噺
- MongoDatabase database = mongoTemplate.getDb();
- MongoCollection<Document> collection = database.getCollection("hk_snapshot_data_monitor");
- long distinctCount = collection.distinct("externalIndexCode", String.class).into(new ArrayList<>()).size();
+ params.setDeptTag(-1);
+ params.setDeviceType(2);
+ // 缁熻璁惧鏁伴噺
+ Integer distinctCount = pointMapper.distinctCount(params);
Date now = new Date();
List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper())
.select(CheckIndexCar::getSiteOnline)
+ .eq(params.getDataType().equals(1), CheckIndexCar::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -859,7 +908,7 @@
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
HashMap<String, Object> map = new HashMap<>();
- map.put("count", Arrays.asList(distinctCount + "%", onlineRate + "%"));
+ map.put("count", Arrays.asList(distinctCount + "", this.remove0(onlineRate)));
map.put("list", resultList);
return Result.ok().data(map).total(total);
}
@@ -883,11 +932,22 @@
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("uy_monitor_qualify");
- Document ipErrFilter = new Document("ip.error", true);
- Document macdzErrFilter = new Document("macdz.error", true);
- Document latitudeErrFilter = new Document("latitude.error", true);
- Document longitudeErrFilter = new Document("longitude.error", true);
-
+ List<Document> dList1 = new ArrayList<>(2);
+ dList1.add(new Document("ip.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList1);
+ List<Document> dList2 = new ArrayList<>(2);
+ dList2.add(new Document("macdz.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList2);
+ List<Document> dList3 = new ArrayList<>(2);
+ dList3.add(new Document("latitude.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList3);
+ List<Document> dList4 = new ArrayList<>(2);
+ dList4.add(new Document("longitude.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList4);
+ Document ipErrFilter = new Document("$and", dList1);
+ Document macdzErrFilter = new Document("$and", dList2);
+ Document latitudeErrFilter = new Document("$and", dList3);
+ Document longitudeErrFilter = new Document("$and", dList4);
List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter);
List<String> rList = lists.stream().map(filter -> {
// 鏋勫缓鑱氬悎绠¢亾
@@ -904,12 +964,13 @@
uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds");
break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋�
}
- return uniqueDeviceIdCount + "%";
+ return uniqueDeviceIdCount + "";
}).collect(Collectors.toList());
Date now = new Date();
List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper())
.select(CheckIndexCar::getDeviceDirectoryConsistent)
+ .eq(params.getDataType().equals(1), CheckIndexCar::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -918,7 +979,7 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
- rList.add(onlineRate + "%");
+ rList.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", rList);
map.put("list", resultList);
@@ -944,10 +1005,22 @@
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("hk_cross_detail");
- Document ipErrFilter = new Document("lalType", 1);
- Document macdzErrFilter = new Document("lalType", 2);
- Document latitudeErrFilter = new Document("lalType", 3);
- Document longitudeErrFilter = new Document("lalType", 4);
+ List<Document> dList1 = new ArrayList<>(2);
+ dList1.add(new Document("lalType", new Document("$eq", 1)));
+ setTag(params,dList1);
+ List<Document> dList2 = new ArrayList<>(2);
+ dList2.add(new Document("lalType", new Document("$eq", 2)));
+ setTag(params,dList2);
+ List<Document> dList3 = new ArrayList<>(2);
+ dList3.add(new Document("lalType", new Document("$eq", 3)));
+ setTag(params,dList3);
+ List<Document> dList4 = new ArrayList<>(2);
+ dList4.add(new Document("lalType", new Document("$eq", 4)));
+ setTag(params,dList4);
+ Document ipErrFilter = new Document("$and", dList1);
+ Document macdzErrFilter = new Document("$and", dList2);
+ Document latitudeErrFilter = new Document("$and", dList3);
+ Document longitudeErrFilter = new Document("$and", dList4);
List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter);
List<String> rList = lists.stream().map(filter -> {
@@ -971,6 +1044,7 @@
Date now = new Date();
List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper())
.select(CheckIndexCar::getVehicleInformationCollectionAccuracy)
+ .eq(params.getDataType().equals(1), CheckIndexCar::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -979,7 +1053,7 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
- rList.add(onlineRate + "%");
+ rList.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", rList);
map.put("list", resultList);
@@ -1008,6 +1082,7 @@
Date now = new Date();
List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper())
.select(CheckIndexCar::getVehicleCaptureIntegrity)
+ .eq(params.getDataType().equals(1), CheckIndexCar::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -1018,7 +1093,7 @@
}
HashMap<String, Object> map = new HashMap<>();
- map.put("count", Arrays.asList(onlineRate + "%"));
+ map.put("count", Arrays.asList(this.remove0(onlineRate)));
map.put("list", resultList);
return Result.ok().data(map).total(total);
}
@@ -1041,6 +1116,7 @@
Date now = new Date();
List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper())
.select(CheckIndexCar::getVehicleCaptureAccuracy)
+ .eq(params.getDataType().equals(1), CheckIndexCar::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -1050,7 +1126,7 @@
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
HashMap<String, Object> map = new HashMap<>();
- map.put("count", Arrays.asList(onlineRate + "%"));
+ map.put("count", Arrays.asList(this.remove0(onlineRate)));
map.put("list", resultList);
return Result.ok().data(map).total(total);
}
@@ -1075,9 +1151,18 @@
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("hk_vehicle_device_inspection");
- Document ipErrFilter = new Document("snapResult", 1);
- Document macdzErrFilter = new Document("snapResult", 2);
- Document longitudeErrFilter = new Document("snapResult", 4);
+ List<Document> dList1 = new ArrayList<>(2);
+ dList1.add(new Document("snapResult", new Document("$eq", 1)));
+ setTag(params,dList1);
+ List<Document> dList2 = new ArrayList<>(2);
+ dList2.add(new Document("snapResult", new Document("$eq", 2)));
+ setTag(params,dList2);
+ List<Document> dList3 = new ArrayList<>(2);
+ dList3.add(new Document("snapResult", new Document("$eq", 4)));
+ setTag(params,dList3);
+ Document ipErrFilter = new Document("$and", dList1);
+ Document macdzErrFilter = new Document("$and", dList2);
+ Document longitudeErrFilter = new Document("$and", dList3);
List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, longitudeErrFilter);
List<String> rList = lists.stream().map(filter -> {
@@ -1101,6 +1186,7 @@
Date now = new Date();
List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper())
.select(CheckIndexCar::getVehicleTimingAccuracy)
+ .eq(params.getDataType().equals(1), CheckIndexCar::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -1109,7 +1195,7 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
- rList.add(onlineRate + "%");
+ rList.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", rList);
map.put("list", resultList);
@@ -1135,6 +1221,7 @@
Date now = new Date();
List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper())
.select(CheckIndexCar::getVehicleUploadTimeliness)
+ .eq(params.getDataType().equals(1), CheckIndexCar::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -1144,7 +1231,7 @@
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
HashMap<String, Object> map = new HashMap<>();
- map.put("count", Arrays.asList(onlineRate + "%"));
+ map.put("count", Arrays.asList(this.remove0(onlineRate)));
map.put("list", resultList);
return Result.ok().data(map).total(total);
}
@@ -1168,6 +1255,7 @@
Date now = new Date();
List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper())
.select(CheckIndexCar::getVehicleUrlAvailability)
+ .eq(params.getDataType().equals(1), CheckIndexCar::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -1177,7 +1265,7 @@
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
HashMap<String, Object> map = new HashMap<>();
- map.put("count", Arrays.asList(onlineRate + "%"));
+ map.put("count", Arrays.asList(this.remove0(onlineRate)));
map.put("list", resultList);
return Result.ok().data(map).total(total);
}
@@ -1201,6 +1289,7 @@
Date now = new Date();
List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper())
.select(CheckIndexCar::getVehiclePictureAvailability)
+ .eq(params.getDataType().equals(1), CheckIndexCar::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -1210,7 +1299,7 @@
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
HashMap<String, Object> map = new HashMap<>();
- map.put("count", Arrays.asList(onlineRate + "%"));
+ map.put("count", Arrays.asList(this.remove0(onlineRate)));
map.put("list", resultList);
return Result.ok().data(map).total(total);
}
@@ -1234,10 +1323,22 @@
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("hk_snapshot_data_monitor");
- Document normalFilter = new Document("resultType", 1);
- Document noDataFilter = new Document("resultType", 2);
- Document trFilter = new Document("resultType", 3);
- Document littleFilter = new Document("resultType", 4);
+ List<Document> dList1 = new ArrayList<>(2);
+ dList1.add(new Document("resultType", new Document("$eq", 1)));
+ setTag(params,dList1);
+ List<Document> dList2 = new ArrayList<>(2);
+ dList2.add(new Document("resultType", new Document("$eq", 2)));
+ setTag(params,dList2);
+ List<Document> dList3 = new ArrayList<>(2);
+ dList3.add(new Document("resultType", new Document("$eq", 3)));
+ setTag(params,dList3);
+ List<Document> dList4 = new ArrayList<>(2);
+ dList4.add(new Document("resultType", new Document("$eq", 4)));
+ setTag(params,dList4);
+ Document normalFilter = new Document("$and", dList1);
+ Document noDataFilter = new Document("$and", dList2);
+ Document trFilter = new Document("$and", dList3);
+ Document littleFilter = new Document("$and", dList4);
List<Document> lists = Arrays.asList(normalFilter, noDataFilter, trFilter, littleFilter);
List<String> rList = lists.stream().map(filter -> {
// 鏋勫缓鑱氬悎绠¢亾
@@ -1260,6 +1361,7 @@
Date now = new Date();
List<CheckIndexFace> videoList = new LambdaQueryChainWrapper<>(checkIndexFaceService.getBaseMapper())
.select(CheckIndexFace::getViewConnectStability)
+ .eq(params.getDataType().equals(1), CheckIndexFace::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexFace::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -1268,7 +1370,7 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
- rList.add(onlineRate + "%");
+ rList.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", rList);
map.put("list", resultList);
@@ -1283,43 +1385,22 @@
*/
@Override
public Result facePointOnlineRate(DataCenterQuery params) {
- List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName");
- Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null);
-
- long total = mongoTemplate.count(query, SnapshotDataMonitorResult.class);
+ List<String> likeFileds = Arrays.asList("name", "no","ip");
+ Query query = MongoUtil.getQuery(params,TIME_FIELD, likeFileds, null);
+ //鍒嗛〉鏁伴噺
+ long total = mongoTemplate.count(query, TMonitorResult.class);
MongoUtil.setPage(query, params, TIME_FIELD);
- List<SnapshotDataMonitorResult> resultList = mongoTemplate.find(query, SnapshotDataMonitorResult.class);
+ List<TMonitorResult> resultList = mongoTemplate.find(query, TMonitorResult.class);
- // 缁熻鏁伴噺
- MongoDatabase database = mongoTemplate.getDb();
- MongoCollection<Document> collection = database.getCollection("hk_snapshot_data_monitor");
-
- Document normalFilter = new Document("resultType", 1);
- Document noDataFilter = new Document("resultType", 2);
- Document trFilter = new Document("resultType", 3);
- Document littleFilter = new Document("resultType", 4);
- List<Document> lists = Arrays.asList(normalFilter, noDataFilter, trFilter, littleFilter);
- List<String> rList = lists.stream().map(filter -> {
- // 鏋勫缓鑱氬悎绠¢亾
- List<Document> pipeline = Arrays.asList(
- new Document("$match", filter),
- // $group 鍘婚噸
- new Document("$group", new Document("_id", "$externalIndexCode")),
- new Document("$count", "uniqueDeviceIds")
- );
- // 鎵ц鑱氬悎鏌ヨ骞惰幏鍙栫粨鏋�
- AggregateIterable<Document> result = collection.aggregate(pipeline);
- Integer uniqueDeviceIdCount = 0;
- for (Document doc : result) {
- uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds");
- break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋�
- }
- return uniqueDeviceIdCount + "";
- }).collect(Collectors.toList());
+ params.setDeptTag(-1);
+ params.setDeviceType(3);
+ // 缁熻璁惧鏁伴噺
+ Integer distinctCount = pointMapper.distinctCount(params);
Date now = new Date();
List<CheckIndexFace> videoList = new LambdaQueryChainWrapper<>(checkIndexFaceService.getBaseMapper())
.select(CheckIndexFace::getSiteOnline)
+ .eq(params.getDataType().equals(1), CheckIndexFace::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexFace::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -1328,7 +1409,9 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
- rList.add(onlineRate + "%");
+ List<String> rList = new ArrayList<>(2);
+ rList.add(distinctCount + "");
+ rList.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", rList);
map.put("list", resultList);
@@ -1354,11 +1437,22 @@
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("uy_monitor_qualify");
- Document ipErrFilter = new Document("ip.error", true);
- Document macdzErrFilter = new Document("macdz.error", true);
- Document latitudeErrFilter = new Document("latitude.error", true);
- Document longitudeErrFilter = new Document("longitude.error", true);
-
+ List<Document> dList1 = new ArrayList<>(2);
+ dList1.add(new Document("ip.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList1);
+ List<Document> dList2 = new ArrayList<>(2);
+ dList2.add(new Document("macdz.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList2);
+ List<Document> dList3 = new ArrayList<>(2);
+ dList3.add(new Document("latitude.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList3);
+ List<Document> dList4 = new ArrayList<>(2);
+ dList4.add(new Document("longitude.error", new Document("$eq", Boolean.TRUE)));
+ setTag(params,dList4);
+ Document ipErrFilter = new Document("$and", dList1);
+ Document macdzErrFilter = new Document("$and", dList2);
+ Document latitudeErrFilter = new Document("$and", dList3);
+ Document longitudeErrFilter = new Document("$and", dList4);
List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter);
List<String> rList = lists.stream().map(filter -> {
// 鏋勫缓鑱氬悎绠¢亾
@@ -1381,6 +1475,7 @@
Date now = new Date();
List<CheckIndexFace> videoList = new LambdaQueryChainWrapper<>(checkIndexFaceService.getBaseMapper())
.select(CheckIndexFace::getDeviceDirectoryConsistent)
+ .eq(params.getDataType().equals(1), CheckIndexFace::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexFace::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -1389,7 +1484,7 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
- rList.add(onlineRate + "%");
+ rList.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", rList);
map.put("list", resultList);
@@ -1415,11 +1510,22 @@
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("hk_cross_detail");
- Document ipErrFilter = new Document("lalType", 1);
- Document macdzErrFilter = new Document("lalType", 2);
- Document latitudeErrFilter = new Document("lalType", 3);
- Document longitudeErrFilter = new Document("lalType", 4);
-
+ List<Document> dList1 = new ArrayList<>(2);
+ dList1.add(new Document("lalType", new Document("$eq", 1)));
+ setTag(params,dList1);
+ List<Document> dList2 = new ArrayList<>(2);
+ dList2.add(new Document("lalType", new Document("$eq", 2)));
+ setTag(params,dList2);
+ List<Document> dList3 = new ArrayList<>(2);
+ dList3.add(new Document("lalType", new Document("$eq", 3)));
+ setTag(params,dList3);
+ List<Document> dList4 = new ArrayList<>(2);
+ dList4.add(new Document("lalType", new Document("$eq", 4)));
+ setTag(params,dList4);
+ Document ipErrFilter = new Document("$and", dList1);
+ Document macdzErrFilter = new Document("$and", dList2);
+ Document latitudeErrFilter = new Document("$and", dList3);
+ Document longitudeErrFilter = new Document("$and", dList4);
List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter);
List<String> rList = lists.stream().map(filter -> {
// 鏋勫缓鑱氬悎绠¢亾
@@ -1442,6 +1548,7 @@
Date now = new Date();
List<CheckIndexFace> videoList = new LambdaQueryChainWrapper<>(checkIndexFaceService.getBaseMapper())
.select(CheckIndexFace::getFaceInformationCollectionAccuracy)
+ .eq(params.getDataType().equals(1), CheckIndexFace::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexFace::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -1450,7 +1557,7 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
- rList.add(onlineRate + "%");
+ rList.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", rList);
map.put("list", resultList);
@@ -1476,10 +1583,22 @@
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("hk_monitoring_detail");
- Document ipErrFilter = new Document("lalType", 1);
- Document macdzErrFilter = new Document("lalType", 2);
- Document latitudeErrFilter = new Document("lalType", 3);
- Document longitudeErrFilter = new Document("lalType", 4);
+ List<Document> dList1 = new ArrayList<>(2);
+ dList1.add(new Document("lalType", new Document("$eq", 1)));
+ setTag(params,dList1);
+ List<Document> dList2 = new ArrayList<>(2);
+ dList2.add(new Document("lalType", new Document("$eq", 2)));
+ setTag(params,dList2);
+ List<Document> dList3 = new ArrayList<>(2);
+ dList3.add(new Document("lalType", new Document("$eq", 3)));
+ setTag(params,dList3);
+ List<Document> dList4 = new ArrayList<>(2);
+ dList4.add(new Document("lalType", new Document("$eq", 4)));
+ setTag(params,dList4);
+ Document ipErrFilter = new Document("$and", dList1);
+ Document macdzErrFilter = new Document("$and", dList2);
+ Document latitudeErrFilter = new Document("$and", dList3);
+ Document longitudeErrFilter = new Document("$and", dList4);
List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter);
List<String> rList = lists.stream().map(filter -> {
@@ -1503,6 +1622,7 @@
Date now = new Date();
List<CheckIndexFace> videoList = new LambdaQueryChainWrapper<>(checkIndexFaceService.getBaseMapper())
.select(CheckIndexFace::getFacePictureQualification)
+ .eq(params.getDataType().equals(1), CheckIndexFace::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexFace::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -1511,7 +1631,7 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
- rList.add(onlineRate + "%");
+ rList.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", rList);
map.put("list", resultList);
@@ -1537,9 +1657,18 @@
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("hk_vehicle_device_inspection");
- Document ipErrFilter = new Document("snapResult", 1);
- Document macdzErrFilter = new Document("snapResult", 2);
- Document longitudeErrFilter = new Document("snapResult", 4);
+ List<Document> dList1 = new ArrayList<>(2);
+ dList1.add(new Document("snapResult", new Document("$eq", 1)));
+ setTag(params,dList1);
+ List<Document> dList2 = new ArrayList<>(2);
+ dList2.add(new Document("snapResult", new Document("$eq", 2)));
+ setTag(params,dList2);
+ List<Document> dList3 = new ArrayList<>(2);
+ dList3.add(new Document("snapResult", new Document("$eq", 4)));
+ setTag(params,dList3);
+ Document ipErrFilter = new Document("$and", dList1);
+ Document macdzErrFilter = new Document("$and", dList2);
+ Document longitudeErrFilter = new Document("$and", dList3);
List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, longitudeErrFilter);
List<String> rList = lists.stream().map(filter -> {
@@ -1563,6 +1692,7 @@
Date now = new Date();
List<CheckIndexFace> videoList = new LambdaQueryChainWrapper<>(checkIndexFaceService.getBaseMapper())
.select(CheckIndexFace::getFaceTimingAccuracy)
+ .eq(params.getDataType().equals(1), CheckIndexFace::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexFace::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -1571,7 +1701,7 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
- rList.add(onlineRate + "%");
+ rList.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", rList);
map.put("list", resultList);
@@ -1597,9 +1727,18 @@
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("hk_vehicle_device_inspection");
- Document ipErrFilter = new Document("snapResult", 1);
- Document macdzErrFilter = new Document("snapResult", 2);
- Document longitudeErrFilter = new Document("snapResult", 4);
+ List<Document> dList1 = new ArrayList<>(2);
+ dList1.add(new Document("snapResult", new Document("$eq", 1)));
+ setTag(params,dList1);
+ List<Document> dList2 = new ArrayList<>(2);
+ dList2.add(new Document("snapResult", new Document("$eq", 2)));
+ setTag(params,dList2);
+ List<Document> dList3 = new ArrayList<>(2);
+ dList3.add(new Document("snapResult", new Document("$eq", 4)));
+ setTag(params,dList3);
+ Document ipErrFilter = new Document("$and", dList1);
+ Document macdzErrFilter = new Document("$and", dList2);
+ Document longitudeErrFilter = new Document("$and", dList3);
List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, longitudeErrFilter);
List<String> rList = lists.stream().map(filter -> {
@@ -1623,6 +1762,7 @@
Date now = new Date();
List<CheckIndexFace> videoList = new LambdaQueryChainWrapper<>(checkIndexFaceService.getBaseMapper())
.select(CheckIndexFace::getFaceUploadTimeliness)
+ .eq(params.getDataType().equals(1), CheckIndexFace::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexFace::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -1631,7 +1771,7 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
- rList.add(onlineRate + "%");
+ rList.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", rList);
map.put("list", resultList);
@@ -1657,6 +1797,7 @@
Date now = new Date();
List<CheckIndexFace> videoList = new LambdaQueryChainWrapper<>(checkIndexFaceService.getBaseMapper())
.select(CheckIndexFace::getFacePictureAvailability)
+ .eq(params.getDataType().equals(1), CheckIndexFace::getExamineTag, CheckConstants.Examine_Tag_Province)
.between(CheckIndexFace::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
@@ -1665,8 +1806,9 @@
BigDecimal count = BigDecimal.valueOf(videoList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
+
HashMap<String, Object> map = new HashMap<>();
- map.put("count", Arrays.asList(onlineRate + "%"));
+ map.put("count", Arrays.asList(this.remove0(onlineRate)));
map.put("list", resultList);
return Result.ok().data(map).total(total);
}
@@ -1688,4 +1830,27 @@
return Result.ok().data(map).total(page.getTotal());
}
+
+ /**
+ * 鍒犻櫎灏鹃儴鐨�0
+ * @param rate
+ * @return
+ */
+ private String remove0(BigDecimal rate) {
+ DF.setDecimalSeparatorAlwaysShown(false);
+ return DF.format(rate) + "%";
+ }
+
+ /**
+ * 璁剧疆鏍囩鎼滅储鏉′欢
+ * @param params
+ * @param dList
+ */
+ private void setTag(DataCenterQuery params, List<Document> dList) {
+ if (params.getDataType().equals(1)) {
+ dList.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE)));
+ } else if (params.getDataType().equals(2)) {
+ dList.add(new Document("deptTag", new Document("$eq", Boolean.TRUE)));
+ }
+ }
}
--
Gitblit v1.8.0