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-common/src/main/java/constant/ApiConstants.java | 3
ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java | 21 +-
ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml | 13 +
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwThreshold.java | 8
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 11 +
ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java | 311 ++++++++++++++++++++++++++++----------------
6 files changed, 233 insertions(+), 134 deletions(-)
diff --git a/ycl-common/src/main/java/constant/ApiConstants.java b/ycl-common/src/main/java/constant/ApiConstants.java
index 272bef7..38baf1d 100644
--- a/ycl-common/src/main/java/constant/ApiConstants.java
+++ b/ycl-common/src/main/java/constant/ApiConstants.java
@@ -22,9 +22,8 @@
public final static Integer HK_SnapCount_ResultType_Null = 2;
//鎶撴媿鏁版嵁閲忕洃娴嬬粨鏋� 鏁版嵁绐侀檷
public final static Integer HK_SnapCount_ResultType_Descent = 3;
-
//璇锋眰鍙傛暟dataType 鏁版嵁閲忓皯
- public final static Integer HK_DataType_ResultType_Low = 4;
+ public final static Integer HK_SnapCount_ResultType_Low = 4;
//缁忕含搴︽娴嬬粨鏋� 姝e父
public final static Integer HK_Info_LayType_Normal = 1;
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwThreshold.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwThreshold.java
index e91c0d9..7f4542f 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwThreshold.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/YwThreshold.java
@@ -49,13 +49,13 @@
@TableField("name")
private String name;
- /** 宸ュ崟闃堝�� */
- @Excel(name = "宸ュ崟闃堝��")
+ /** 鐩存帴涓嬪彂闃堝�� */
+ @Excel(name = "鐩存帴涓嬪彂闃堝��")
@TableField("value")
private String value;
- /** 涓嬪彂闃堝�� */
- @Excel(name = "涓嬪彂闃堝��")
+ /** 寰呬笅鍙戦槇鍊� */
+ @Excel(name = "寰呬笅鍙戦槇鍊�")
@TableField("value_auto")
private String valueAuto;
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);
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
index 9bbd8f9..ae1a348 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -114,11 +114,11 @@
// 鏌ヨ鍑虹櫧鍚嶅崟鍒楄〃
List<String> serialNumbers = workOrderWhiteMapper.selectList().stream().map(WorkOrderWhite::getSerialNumber).collect(Collectors.toList());
// 閬嶅巻宸ュ崟鍒楄〃锛屽垽鏂槸鍚﹀湪鐧藉悕鍗曚腑
- workOrderList.stream().filter(item -> !serialNumbers.contains(item.getSerialNumber()))
+ workOrderList = workOrderList.stream().filter(item -> !serialNumbers.contains(item.getSerialNumber()))
.collect(Collectors.toList());
- workOrderList.stream().filter(item -> {
+ workOrderList = workOrderList.stream().filter(item -> {
return StringUtils.hasText(item.getSerialNumber()) && Objects.nonNull(item.getStatus()) && !CollectionUtils.isEmpty(item.getErrorTypeList());
- });
+ }).collect(Collectors.toList());
if (CollectionUtils.isEmpty(workOrderList)) {
return Boolean.TRUE;
}
@@ -170,7 +170,10 @@
willAddErrorType.add(workOrderErrorType);
}
}
- databaseWorkOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
+ //閬垮厤浠d笅鍙戠殑宸ュ崟鐩存帴鍙樻垚涓嬪彂
+ if(!databaseWorkOrder.getStatus().equals(WorkOrderStatusEnum.WAIT_DISTRIBUTE)) {
+ databaseWorkOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
+ }
databaseWorkOrder.setUpdateTime(now);
willUpdateStatusWorkOrderList.add(databaseWorkOrder);
updateNum++;
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
index bbffadb..2aafe2f 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
@@ -176,9 +176,9 @@
@Override
public void faceCheck(List<FaceDeviceInspectionResult> list) {
Map<String, YwThreshold> thresholdMap = getYwThresholdMap(BusinessTypeEnum.FACE.name());
- //鍑嗗涓嬪彂宸ュ崟闆嗗悎
+ //鍑嗗寰呬笅鍙戝伐鍗曢泦鍚�
List<WorkOrder> distributeList = new ArrayList<>();
- //鍑嗗鑷姩鐢熸垚宸ュ崟闆嗗悎
+ //鍑嗗鐩存帴涓嬪彂宸ュ崟闆嗗悎
List<WorkOrder> workOrderList = new ArrayList<>();
//澶勭悊鎺ュ彛鏁版嵁
for (FaceDeviceInspectionResult result : list) {
@@ -284,6 +284,7 @@
/** 娣诲姞宸ュ崟 */
workOrderService.innerAddWorkOrder(workOrderList);
workOrderService.innerAddWorkOrder(distributeList);
+
}
/**
@@ -317,23 +318,25 @@
v -> {
YwThreshold ywThreshold = thresholds.get(key);
//杞崲绫诲瀷
- T thresholdValue = parseThreshold(ywThreshold.getValueAuto(), value.getClass());
- T thresholdAutoValue = parseThreshold(ywThreshold.getValue(), value.getClass());
+ //寰呭伐鍗曢槇鍊�
+ T thresholdAutoValue = parseThreshold(ywThreshold.getValueAuto(), value.getClass());
+ //鐩存帴涓嬪彂宸ュ崟闃堝��
+ T thresholdValue = parseThreshold(ywThreshold.getValue(), value.getClass());
//姣旇緝澶у皬锛屽姞鍏ュ埌瀵瑰簲寰呭鐞嗛泦鍚�
- if (compareType.compare(v, thresholdAutoValue)) {
- //鑷姩涓嬪彂宸ュ崟
+ if (compareType.compare(v, thresholdValue)) {
+ //杩涘叆宸ュ崟鐩存帴涓嬪彂
workOrder.setSerialNumber(serialNumber);
- workOrder.setStatus(WorkOrderStatusEnum.WAIT_DISTRIBUTE);
+ workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
workOrder.setErrorTypeList(new ArrayList<>());
workOrder.getErrorTypeList().add(errorType);
} else {
workOrder.getErrorTypeList().add(errorType);
}
- } else if (compareType.compare(v, thresholdValue)) {
+ } else if (compareType.compare(v, thresholdAutoValue)) {
//杩涘叆宸ュ崟浠d笅鍙�
workOrder.setSerialNumber(serialNumber);
- workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
+ workOrder.setStatus(WorkOrderStatusEnum.WAIT_DISTRIBUTE);
if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
workOrder.setErrorTypeList(new ArrayList<>());
workOrder.getErrorTypeList().add(errorType);
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
index 80271e0..859b1a5 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -58,14 +58,22 @@
INNER JOIN t_monitor tm ON wo.serial_number = tm.serial_number
INNER JOIN t_work_order_error_type et ON wo.work_order_no = et.work_order_no
INNER JOIN t_yw_unit u ON wo.unit_id = u.id AND u.deleted = 0
- INNER JOIN sys_dict_data da ON da.dict_value = et.error_name AND da.dict_type = 'error_type' <if test="query.errorTypeList != null and query.errorTypeList.size() > 0">AND da.dict_value in <foreach
- collection="query.errorTypeList" open="(" separator="," close=")" item="errorType">#{errorType}</foreach> </if>
+ INNER JOIN sys_dict_data da ON da.dict_value = et.error_name AND da.dict_type = 'error_type'
LEFT JOIN t_work_order_check_img ci ON ci.work_order_no = wo.work_order_no
LEFT JOIN t_yw_people p ON wo.yw_people_id = p.id AND p.deleted = 0
WHERE
wo.deleted = 0 and wo.status != 'WAIT_DISTRIBUTE'
<if test="query.unitId != null">
AND wo.unit_id = #{query.unitId}
+ </if>
+ <if test="query.errorTypeList != null and query.errorTypeList.size() > 0">
+ AND (EXISTS (
+ SELECT 1
+ FROM t_work_order_error_type twoet
+ WHERE twoet.work_order_no = wo.work_order_no
+ AND twoet.error_name in
+ <foreach collection="query.errorTypeList" open="(" separator="," close=")" item="errorType">#{errorType}</foreach>
+ ))
</if>
<if test="query.keyword != null and query.keyword != ''">
AND (wo.work_order_no like concat('%', #{query.keyword}, '%') or tm.name like concat('%', #{query.keyword}, '%') or wo.serial_number like concat('%', #{query.keyword}, '%'))
@@ -136,6 +144,7 @@
wo.id,wo.status, wo.work_order_no,wo.create_time, wo.unit_id, wo.yw_people_id, wo.yw_handle_time, wo.yw_result, wo.yw_check_result, wo.overtime, wo.deduct,
u.unit_name,
p.yw_person_name,
+ yp.serial_number,
yp.province_tag,
yp.important_tag,
yp.important_command_image_tag,
--
Gitblit v1.8.0