From 746a85a842adc99322b364d1c564a624dce62429 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 30 十月 2024 23:01:49 +0800
Subject: [PATCH] 工单阈值bug、工单分页故障查询bug、工单未进入下发表bug
---
ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java | 311 +++++++++++++++++++++++++++++++++------------------
1 files changed, 198 insertions(+), 113 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 fb05624..0c7bf7f 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
@@ -15,6 +15,7 @@
import com.ycl.platform.domain.result.UY.*;
import com.ycl.platform.domain.vo.DataCenter.MonitorQualifyResultVO;
import com.ycl.platform.domain.vo.PointDetailVO;
+import com.ycl.platform.domain.vo.home.HomeFaceVO;
import com.ycl.platform.mapper.ImageResourceSecurityDetailMapper;
import com.ycl.platform.mapper.YwPointMapper;
import com.ycl.platform.service.*;
@@ -41,6 +42,7 @@
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.*;
+import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
@@ -609,10 +611,8 @@
setTag(params,dList2);
Document qualifyFilter = new Document("$and",dList2);
//涓嶅悎鏍兼暟
- Document mongoCreateTimeRange = new Document()
- .append("$gte", params.getStartTime())
- .append("$lt", params.getEndTime());
- Document mongoCreateTime = new Document("mongoCreateTime", mongoCreateTimeRange);
+ List<Document> dList3 = new ArrayList<>(2);
+ setTag(params,dList3);
List<Document> errorConditions = new ArrayList<>();
errorConditions.add(new Document("serialNumber.error", new Document("$eq", Boolean.TRUE)));
errorConditions.add(new Document("name.error", new Document("$eq", Boolean.TRUE)));
@@ -627,7 +627,8 @@
errorConditions.add(new Document("sxjcjqy.error", new Document("$eq", Boolean.TRUE)));
errorConditions.add(new Document("sxjgnlx.error", new Document("$eq", Boolean.TRUE)));
Document errorFilter = new Document("$or", errorConditions);
- Document unQualifyFilter = new Document("$and", Arrays.asList(mongoCreateTime, errorFilter));
+ dList3.add(errorFilter);
+ Document unQualifyFilter = new Document("$and", dList3);
List<Document> lists = Arrays.asList(totalFilter, qualifyFilter, unQualifyFilter);
List<String> rList = lists.stream().map(filter -> {
@@ -1065,11 +1066,10 @@
setTag(params, dList1);
Document osdCorrectFilter = new Document("$and", dList1);
//寮傚父鏁�
+ List<Document> dList2 = new ArrayList<>(2);
+ setTag(params,dList2);
Document importantTagCondition = new Document("importantTag", Boolean.TRUE);
- Document mongoCreateTimeRange = new Document()
- .append("$gte", params.getStartTime())
- .append("$lt", params.getEndTime());
- Document mongoCreateTime = new Document("mongoCreateTime", mongoCreateTimeRange);
+ dList2.add(importantTagCondition);
List<Document> errorConditions = new ArrayList<>();
errorConditions.add(new Document("osdNameCorrect", new Document("$eq", -1)));
errorConditions.add(new Document("osdTimeCorrect", new Document("$eq", -1)));
@@ -1077,8 +1077,12 @@
errorConditions.add(new Document("osdCityCorrect", new Document("$eq", -1)));
errorConditions.add(new Document("osdPartCorrect", new Document("$eq", -1)));
Document errorFilter = new Document("$or", errorConditions);
- Document osdErrorFilter = new Document("$and", Arrays.asList(importantTagCondition,mongoCreateTime, errorFilter));
+ dList2.add(errorFilter);
+ Document osdErrorFilter = new Document("$and", dList2);
//TODO锛氭湭鐭ユ暟 鏂板0鐨勭姸鎬�
+ List<Document> dList3 = new ArrayList<>(2);
+ setTag(params,dList3);
+ dList3.add(importantTagCondition);
List<Document> unknownConditions = new ArrayList<>();
unknownConditions.add(new Document("osdNameCorrect", new Document("$eq", 0)));
unknownConditions.add(new Document("osdTimeCorrect", new Document("$eq", 0)));
@@ -1087,7 +1091,8 @@
unknownConditions.add(new Document("osdPartCorrect", new Document("$eq", 0)));
// 浣跨敤$or閫昏緫缁勫悎鍓╀綑鐨勬潯浠�
Document unknownFilter = new Document("$or", unknownConditions);
- Document osdUnknownFilter = new Document("$and", Arrays.asList(importantTagCondition, mongoCreateTime,unknownFilter));
+ dList3.add(unknownFilter);
+ Document osdUnknownFilter = new Document("$and", dList3);
List<Document> lists = Arrays.asList(osdFilter, osdCorrectFilter, osdErrorFilter,osdUnknownFilter);
List<String> rList = lists.stream().map(filter -> {
@@ -1200,11 +1205,10 @@
setTag(params, dList1);
Document osdCorrectFilter = new Document("$and", dList1);
//寮傚父鏁�
+ List<Document> dList2 = new ArrayList<>(2);
+ setTag(params,dList2);
Document importantTagCondition = new Document("importantTag", Boolean.TRUE);
- Document mongoCreateTimeRange = new Document()
- .append("$gte", params.getStartTime())
- .append("$lt", params.getEndTime());
- Document mongoCreateTime = new Document("mongoCreateTime", mongoCreateTimeRange);
+ dList2.add(importantTagCondition);
List<Document> errorConditions = new ArrayList<>();
errorConditions.add(new Document("osdNameCorrect", new Document("$eq", -1)));
errorConditions.add(new Document("osdTimeCorrect", new Document("$eq", -1)));
@@ -1212,8 +1216,12 @@
errorConditions.add(new Document("osdCityCorrect", new Document("$eq", -1)));
errorConditions.add(new Document("osdPartCorrect", new Document("$eq", -1)));
Document errorFilter = new Document("$or", errorConditions);
- Document osdErrorFilter = new Document("$and", Arrays.asList(importantTagCondition,mongoCreateTime, errorFilter));
+ dList2.add(errorFilter);
+ Document osdErrorFilter = new Document("$and", dList2);
//TODO锛氭湭鐭ユ暟 鏂板0鐨勭姸鎬�
+ List<Document> dList3 = new ArrayList<>(2);
+ setTag(params,dList3);
+ dList3.add(importantTagCondition);
List<Document> unknownConditions = new ArrayList<>();
unknownConditions.add(new Document("osdNameCorrect", new Document("$eq", 0)));
unknownConditions.add(new Document("osdTimeCorrect", new Document("$eq", 0)));
@@ -1222,7 +1230,8 @@
unknownConditions.add(new Document("osdPartCorrect", new Document("$eq", 0)));
// 浣跨敤$or閫昏緫缁勫悎鍓╀綑鐨勬潯浠�
Document unknownFilter = new Document("$or", unknownConditions);
- Document osdUnknownFilter = new Document("$and", Arrays.asList(importantTagCondition, mongoCreateTime,unknownFilter));
+ dList3.add(unknownFilter);
+ Document osdUnknownFilter = new Document("$and", dList3);
List<Document> lists = Arrays.asList(osdFilter, osdCorrectFilter, osdErrorFilter,osdUnknownFilter);
List<String> rList = lists.stream().map(filter -> {
@@ -1273,36 +1282,39 @@
public Result vehicleViewDockStable(DataCenterQuery params) {
List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName");
Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null);
-
+ //鍔燚ataType涓鸿溅杈�
+ query.addCriteria(Criteria.where("dataType").is(ApiConstants.HK_DataType_CAR));
+ if(params.getOption()!=null){
+ if(ApiConstants.HK_SnapCount_ResultType_Normal.equals(params.getOption())) {
+ query.addCriteria(Criteria.where("resultType").is(ApiConstants.HK_SnapCount_ResultType_Normal));
+ }else if(ApiConstants.HK_SnapCount_ResultType_Null.equals(params.getOption())){
+ query.addCriteria(Criteria.where("resultType").is(ApiConstants.HK_SnapCount_ResultType_Null));
+ }else if(ApiConstants.HK_SnapCount_ResultType_Descent.equals(params.getOption())){
+ query.addCriteria(Criteria.where("resultType").is(ApiConstants.HK_SnapCount_ResultType_Descent));
+ }else if(ApiConstants.HK_SnapCount_ResultType_Low.equals(params.getOption())){
+ query.addCriteria(Criteria.where("resultType").is(ApiConstants.HK_SnapCount_ResultType_Low));
+ }
+ }
long total = mongoTemplate.count(query, SnapshotDataMonitorResult.class);
MongoUtil.setPage(query, params, TIME_FIELD);
List<SnapshotDataMonitorResult> resultList = mongoTemplate.find(query, SnapshotDataMonitorResult.class);
-
+ resultList.forEach(item ->item.setResultTypeText(item.getResultTypeText()));
// 缁熻鏁伴噺
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("hk_snapshot_data_monitor");
- 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)));
+ dList2.add(new Document("resultType", new Document("$eq", 1)));
+ dList2.add(new Document("dataType", new Document("$eq", ApiConstants.HK_DataType_CAR)));
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)));
+ dList3.add(new Document("resultType", new Document("$eq", 2)));
+ dList3.add(new Document("dataType", new Document("$eq", ApiConstants.HK_DataType_CAR)));
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<Document> lists = Arrays.asList(noDataFilter, trFilter);
List<String> rList = lists.stream().map(filter -> {
// 鏋勫缓鑱氬悎绠¢亾
List<Document> pipeline = Arrays.asList(
@@ -1320,17 +1332,32 @@
}
return uniqueDeviceIdCount + "";
}).collect(Collectors.toList());
-
- Date now = new Date();
- List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper())
+ // 鏋勫缓鍩烘湰鐨�$match鏉′欢
+ List<Document> matchConditions = new ArrayList<>();
+ setTag(params, matchConditions);
+ matchConditions.add(new Document("dataType", new Document("$eq", ApiConstants.HK_DataType_CAR)));
+ List<Document> pipeline = Arrays.asList(
+ new Document("$match", new Document("$and", matchConditions)),
+ new Document("$group", new Document("_id", "$mongoCreateTime")
+ .append("dataCount", new Document("$sum", "$dataCount"))
+ ));
+ // 鎵ц鑱氬悎鏌ヨ骞惰幏鍙栫粨鏋�
+ AggregateIterable<Document> result = collection.aggregate(pipeline);
+ int dataCount = 0;
+ for (Document doc : result) {
+ dataCount = doc.getInteger("dataCount");
+ }
+ rList.add(0,dataCount+"");
+ List<CheckIndexCar> carList = 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))
+ .eq(params.getDataType().equals(2), CheckIndexCar::getExamineTag, CheckConstants.Examine_Tag_Dept)
+ .between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(params.getStartTime()), DateUtils.getDayEnd(params.getEndTime()))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
- if (CollectionUtils.isNotEmpty(videoList)) {
- BigDecimal sum = videoList.stream().map(CheckIndexCar::getViewConnectStability).reduce(BigDecimal.ZERO, BigDecimal::add);
- BigDecimal count = BigDecimal.valueOf(videoList.size());
+ if (CollectionUtils.isNotEmpty(carList)) {
+ BigDecimal sum = carList.stream().map(CheckIndexCar::getViewConnectStability).reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal count = BigDecimal.valueOf(carList.size());
onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
}
rList.add(this.remove0(onlineRate));
@@ -1445,33 +1472,45 @@
@Override
public Result vehicleNetDeviceDirectoryConsistency(DataCenterQuery params) {
List<String> likeFileds = Arrays.asList("ip.showValue", "name.showValue", "serialNumber.showValue");
- Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null);
-
+ List<Criteria> andCriteria = MongoUtil.getAndCriteria(params, TIME_FIELD, likeFileds, null);
+ // 1/2/3 瑙嗛/杞﹁締/浜鸿劯
+ Pattern pattern = Pattern.compile(".*2.*");
+ andCriteria.add(Criteria.where("sxjgnlx.value").regex(pattern));
+ Query query = new Query();
+ Criteria and = new Criteria();
+ if(params.getOption()!=null){
+ if(params.getOption() ==1){
+ andCriteria.add(Criteria.where("newDevice").is(Boolean.TRUE));
+ }else if(params.getOption() ==-1){
+ andCriteria.add(Criteria.where("newDevice").is(Boolean.FALSE));
+ }
+ }
+ and.andOperator(andCriteria);
+ query = Query.query(and);
long total = mongoTemplate.count(query, MonitorQualifyResult.class);
MongoUtil.setPage(query, params, TIME_FIELD);
List<MonitorQualifyResult> resultList = mongoTemplate.find(query, MonitorQualifyResult.class);
-
- // 缁熻鏁伴噺
+ List<MonitorQualifyResultVO> resultVOS = new ArrayList<>();
+ for (MonitorQualifyResult result : resultList) {
+ MonitorQualifyResultVO vo = MonitorQualifyResult.getVO(result);
+ resultVOS.add(vo);
+ }
+ //缁熻鏁伴噺
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("uy_monitor_qualify");
-
+ //鎬绘暟
List<Document> dList1 = new ArrayList<>(2);
- dList1.add(new Document("ip.error", new Document("$eq", Boolean.TRUE)));
setTag(params, dList1);
+ dList1.add(new Document("sxjgnlx.value", new Document("$regex", ".*2.*")));
+ Document totalFilter = new Document("$and",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);
+ dList2.add(new Document("sxjgnlx.value", new Document("$regex", ".*2.*")));
+ dList2.add(new Document("newDevice",Boolean.TRUE));
+ Document newFilter = new Document("$and",dList2);
+
+ List<Document> lists = Arrays.asList(totalFilter, newFilter);
List<String> rList = lists.stream().map(filter -> {
// 鏋勫缓鑱氬悎绠¢亾
List<Document> pipeline = Arrays.asList(
@@ -1490,11 +1529,11 @@
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))
+ .eq(params.getDataType().equals(2), CheckIndexCar::getExamineTag, CheckConstants.Examine_Tag_Dept)
+ .between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(params.getStartTime()), DateUtils.getDayEnd(params.getEndTime()))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
if (CollectionUtils.isNotEmpty(videoList)) {
@@ -1505,7 +1544,7 @@
rList.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", rList);
- map.put("list", resultList);
+ map.put("list", resultVOS);
return Result.ok().data(map).total(total);
}
@@ -1518,7 +1557,19 @@
@Override
public Result vehicleCollectionConsistency(DataCenterQuery params) {
List<String> likeFileds = Arrays.asList("externalIndexCode", "crossName");
- Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null);
+ List<Criteria> andCriteria = MongoUtil.getAndCriteria(params, TIME_FIELD, likeFileds, null);
+ Query query = new Query();
+ Criteria and = new Criteria();
+ and.andOperator(andCriteria);
+ query = Query.query(and);
+ if(params.getOption()!=null){
+ if(params.getOption() ==1){
+ query.addCriteria(Criteria.where("lalType").is(ApiConstants.HK_Info_LayType_Normal));
+ query.addCriteria(Criteria.where("gbCodeType").is(ApiConstants.HK_Info_GbCodeType_Normal));
+ }else if(params.getOption() !=-1){
+
+ }
+ }
long total = mongoTemplate.count(query, CrossDetailResult.class);
MongoUtil.setPage(query, params, TIME_FIELD);
@@ -1529,23 +1580,23 @@
MongoCollection<Document> collection = database.getCollection("hk_cross_detail");
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)));
+ dList2.add(new Document("lalType", new Document("$eq", 1)));
+ dList2.add(new Document("gbCodeType", new Document("$eq", 1)));
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> errorConditions = new ArrayList<>();
+ errorConditions.add(new Document("lalType",new Document("$eq",-1)));
+ errorConditions.add(new Document("gbCodeType",new Document("$eq",-1)));
+ Document errorDoc = new Document("$or",errorConditions);
+ dList3.add(errorDoc);
+ Document totalFilter = new Document("$and", dList1);
+ Document correctFilter = new Document("$and", dList2);
+ Document errorFilter = new Document("$and", dList3);
- List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter);
+ List<Document> lists = Arrays.asList(totalFilter, correctFilter, errorFilter);
List<String> rList = lists.stream().map(filter -> {
// 鏋勫缓鑱氬悎绠¢亾
List<Document> pipeline = Arrays.asList(
@@ -1564,11 +1615,11 @@
return uniqueDeviceIdCount + "";
}).collect(Collectors.toList());
- 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))
+ .eq(params.getDataType().equals(2), CheckIndexCar::getExamineTag, CheckConstants.Examine_Tag_Dept)
+ .between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(params.getStartTime()), DateUtils.getDayEnd(params.getEndTime()))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
if (CollectionUtils.isNotEmpty(videoList)) {
@@ -1837,32 +1888,39 @@
public Result faceViewDockStable(DataCenterQuery params) {
List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName");
Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null);
-
+ //鍔燚ataType涓鸿溅杈�
+ query.addCriteria(Criteria.where("dataType").is(ApiConstants.HK_DataType_FACE));
+ if(params.getOption()!=null){
+ if(ApiConstants.HK_SnapCount_ResultType_Normal.equals(params.getOption())) {
+ query.addCriteria(Criteria.where("resultType").is(ApiConstants.HK_SnapCount_ResultType_Normal));
+ }else if(ApiConstants.HK_SnapCount_ResultType_Null.equals(params.getOption())){
+ query.addCriteria(Criteria.where("resultType").is(ApiConstants.HK_SnapCount_ResultType_Null));
+ }else if(ApiConstants.HK_SnapCount_ResultType_Descent.equals(params.getOption())){
+ query.addCriteria(Criteria.where("resultType").is(ApiConstants.HK_SnapCount_ResultType_Descent));
+ }else if(ApiConstants.HK_SnapCount_ResultType_Low.equals(params.getOption())){
+ query.addCriteria(Criteria.where("resultType").is(ApiConstants.HK_SnapCount_ResultType_Low));
+ }
+ }
long total = mongoTemplate.count(query, SnapshotDataMonitorResult.class);
MongoUtil.setPage(query, params, TIME_FIELD);
List<SnapshotDataMonitorResult> resultList = mongoTemplate.find(query, SnapshotDataMonitorResult.class);
-
+ resultList.forEach(item ->item.setResultTypeText(item.getResultTypeText()));
// 缁熻鏁伴噺
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("hk_snapshot_data_monitor");
- 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)));
+ dList2.add(new Document("resultType", new Document("$eq", 1)));
+ dList2.add(new Document("dataType", new Document("$eq", ApiConstants.HK_DataType_CAR)));
setTag(params, dList2);
List<Document> dList3 = new ArrayList<>(2);
- dList3.add(new Document("resultType", new Document("$eq", 3)));
+ dList3.add(new Document("resultType", new Document("$eq", 2)));
+ dList3.add(new Document("dataType", new Document("$eq", ApiConstants.HK_DataType_CAR)));
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<Document> lists = Arrays.asList(noDataFilter, trFilter);
List<String> rList = lists.stream().map(filter -> {
// 鏋勫缓鑱氬悎绠¢亾
List<Document> pipeline = Arrays.asList(
@@ -1880,12 +1938,27 @@
}
return uniqueDeviceIdCount + "";
}).collect(Collectors.toList());
-
- Date now = new Date();
+ // 鏋勫缓鍩烘湰鐨�$match鏉′欢
+ List<Document> matchConditions = new ArrayList<>();
+ setTag(params, matchConditions);
+ matchConditions.add(new Document("dataType", new Document("$eq", ApiConstants.HK_DataType_FACE)));
+ List<Document> pipeline = Arrays.asList(
+ new Document("$match", new Document("$and", matchConditions)),
+ new Document("$group", new Document("_id", "$mongoCreateTime")
+ .append("dataCount", new Document("$sum", "$dataCount"))
+ ));
+ // 鎵ц鑱氬悎鏌ヨ骞惰幏鍙栫粨鏋�
+ AggregateIterable<Document> result = collection.aggregate(pipeline);
+ int dataCount = 0;
+ for (Document doc : result) {
+ dataCount = doc.getInteger("dataCount");
+ }
+ rList.add(0,dataCount+"");
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))
+ .eq(params.getDataType().equals(2), CheckIndexFace::getExamineTag, CheckConstants.Examine_Tag_Dept)
+ .between(CheckIndexFace::getCreateTime, DateUtils.getDayStart(params.getStartTime()), DateUtils.getDayEnd(params.getEndTime()))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
if (CollectionUtils.isNotEmpty(videoList)) {
@@ -2003,34 +2076,46 @@
*/
@Override
public Result faceDirectoryConsistency(DataCenterQuery params) {
- List<String> likeFileds = Arrays.asList("serialNumber.showValue", "ip.showValue", "name.showValue");
- Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null);
-
+ List<String> likeFileds = Arrays.asList("ip.showValue", "name.showValue", "serialNumber.showValue");
+ List<Criteria> andCriteria = MongoUtil.getAndCriteria(params, TIME_FIELD, likeFileds, null);
+ // 1/2/3 瑙嗛/杞﹁締/浜鸿劯
+ Pattern pattern = Pattern.compile(".*3.*");
+ andCriteria.add(Criteria.where("sxjgnlx.value").regex(pattern));
+ Query query = new Query();
+ Criteria and = new Criteria();
+ if(params.getOption()!=null){
+ if(params.getOption() ==1){
+ andCriteria.add(Criteria.where("newDevice").is(Boolean.TRUE));
+ }else if(params.getOption() ==-1){
+ andCriteria.add(Criteria.where("newDevice").is(Boolean.FALSE));
+ }
+ }
+ and.andOperator(andCriteria);
+ query = Query.query(and);
long total = mongoTemplate.count(query, MonitorQualifyResult.class);
MongoUtil.setPage(query, params, TIME_FIELD);
List<MonitorQualifyResult> resultList = mongoTemplate.find(query, MonitorQualifyResult.class);
-
+ List<MonitorQualifyResultVO> resultVOS = new ArrayList<>();
+ for (MonitorQualifyResult result : resultList) {
+ MonitorQualifyResultVO vo = MonitorQualifyResult.getVO(result);
+ resultVOS.add(vo);
+ }
// 缁熻鏁伴噺
MongoDatabase database = mongoTemplate.getDb();
MongoCollection<Document> collection = database.getCollection("uy_monitor_qualify");
-
+ //鎬绘暟
List<Document> dList1 = new ArrayList<>(2);
- dList1.add(new Document("ip.error", new Document("$eq", Boolean.TRUE)));
setTag(params, dList1);
+ dList1.add(new Document("sxjgnlx.value", new Document("$regex", ".*3.*")));
+ Document totalFilter = new Document("$and",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);
+ dList2.add(new Document("sxjgnlx.value", new Document("$regex", ".*3.*")));
+ dList2.add(new Document("newDevice",Boolean.TRUE));
+ Document newFilter = new Document("$and",dList2);
+
+ List<Document> lists = Arrays.asList(totalFilter, newFilter);
List<String> rList = lists.stream().map(filter -> {
// 鏋勫缓鑱氬悎绠¢亾
List<Document> pipeline = Arrays.asList(
@@ -2049,11 +2134,11 @@
return uniqueDeviceIdCount + "";
}).collect(Collectors.toList());
- 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))
+ .eq(params.getDataType().equals(2), CheckIndexFace::getExamineTag, CheckConstants.Examine_Tag_Dept)
+ .between(CheckIndexFace::getCreateTime, DateUtils.getDayStart(params.getStartTime()), DateUtils.getDayEnd(params.getEndTime()))
.list();
BigDecimal onlineRate = BigDecimal.ZERO;
if (CollectionUtils.isNotEmpty(videoList)) {
@@ -2064,7 +2149,7 @@
rList.add(this.remove0(onlineRate));
HashMap<String, Object> map = new HashMap<>();
map.put("count", rList);
- map.put("list", resultList);
+ map.put("list", resultVOS);
return Result.ok().data(map).total(total);
}
--
Gitblit v1.8.0