From 44cd2d171062c9b07a0eb047cd0ac80d06188e8c Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期三, 16 十月 2024 11:58:18 +0800 Subject: [PATCH] 工单bug,数据中心在线率增加存ping状态 --- ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java | 576 ++++++++++++++++++++++----------------------------------- 1 files changed, 225 insertions(+), 351 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 f7b2e36..f97323d 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.*; @@ -65,19 +67,31 @@ */ @Override public Result videoPointOnlineRate(DataCenterQuery params) { - // 鐢熸垚鏌ヨ - List<String> likeFileds = Arrays.asList("arealayerName", "ipAddr", "deviceName", "deviceId"); + List<String> likeFileds = Arrays.asList("name", "no", "ip"); Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); - - // 鍏堟煡鎬绘暟鍐嶅垎椤� - long total = mongoTemplate.count(query, VideoOnlineResult.class); + //鍒嗛〉鏁伴噺 + 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); + resultList.forEach(item -> { + if (null != item.getPingOnline() && item.getPingOnline()) { + item.setPingOnlineStr("鍦ㄧ嚎"); + } else { + item.setPingOnlineStr("绂荤嚎"); + } + if(1== item.getOnline() ){ + item.setOnlineStr("鍦ㄧ嚎"); + }else if(-1==item.getOnline()){ + item.setOnlineStr("绂荤嚎"); + }else { + item.setOnlineStr("鏈煡"); + } + }); + params.setDeptTag(-1); + params.setDeviceType(1); + // 缁熻璁惧鏁伴噺 + Integer distinctCount = pointMapper.distinctCount(params); - // 缁熻鏁伴噺 - MongoDatabase database = mongoTemplate.getDb(); - MongoCollection<Document> collection = database.getCollection("uy_online"); - long distinctCount = collection.distinct("deviceId", String.class).into(new ArrayList<>()).size(); Date now = new Date(); List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper()) .select(CheckIndexVideo::getSiteOnline) @@ -90,7 +104,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 + "",this.remove0(onlineRate))); + map.put("count", Arrays.asList(distinctCount + "", this.remove0(onlineRate))); map.put("list", resultList); return Result.ok().data(map).total(total); } @@ -103,40 +117,31 @@ */ @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); + resultList.forEach(item -> { + if (null != item.getPingOnline() && item.getPingOnline()) { + item.setPingOnlineStr("鍦ㄧ嚎"); + } else { + item.setPingOnlineStr("绂荤嚎"); + } + if (1 == item.getOnline()) { + item.setOnlineStr("鍦ㄧ嚎"); + } else if (-1 == item.getOnline()) { + item.setOnlineStr("绂荤嚎"); + } else { + item.setOnlineStr("鏈煡"); + } + }); + // 缁熻璁惧鏁伴噺 + params.setDeptTag(1); + params.setDeviceType(1); + Integer distinctCount = pointMapper.distinctCount(params); - // 缁熻鏁伴噺 - MongoDatabase database = mongoTemplate.getDb(); - MongoCollection<Document> collection = database.getCollection("uy_online"); - List<Document> dList = new ArrayList<>(2); - dList.add(new Document("deptTag", new Document("$eq", Boolean.TRUE))); - if (params.getDataType().equals(1)) { - dList.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } - Document filter = new Document("$and", dList); - // 鏋勫缓鑱氬悎绠¢亾 - 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 鍙細浜х敓涓�涓粨鏋� - } Date now = new Date(); List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper()) .select(CheckIndexVideo::getMinistrySiteOnline) @@ -150,7 +155,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 + "", this.remove0(onlineRate))); + map.put("count", Arrays.asList(distinctCount + "", this.remove0(onlineRate))); map.put("list", resultList); return Result.ok().data(map).total(total); } @@ -163,38 +168,30 @@ */ @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"); - - List<Document> dList = new ArrayList<>(2); - dList.add(new Document("importantTag", new Document("$eq", Boolean.TRUE))); - if (params.getDataType().equals(1)) { - dList.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } - Document filter = new Document("$and", dList); - // 鏋勫缓鑱氬悎绠¢亾 - 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); + resultList.forEach(item -> { + if (null != item.getPingOnline() && item.getPingOnline()) { + item.setPingOnlineStr("鍦ㄧ嚎"); + } else { + item.setPingOnlineStr("绂荤嚎"); + } + if (1 == item.getOnline()) { + item.setOnlineStr("鍦ㄧ嚎"); + } else if (-1 == item.getOnline()) { + item.setOnlineStr("绂荤嚎"); + } else { + item.setOnlineStr("鏈煡"); + } + }); Date now = new Date(); List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper()) .select(CheckIndexVideo::getKeySiteOnline) @@ -208,7 +205,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 + "", this.remove0(onlineRate))); + map.put("count", Arrays.asList(distinctCount + "", this.remove0(onlineRate))); map.put("list", resultList); return Result.ok().data(map).total(total); } @@ -221,38 +218,31 @@ */ @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"); - - List<Document> dList = new ArrayList<>(2); - dList.add(new Document("importantCommandImageTag", new Document("$eq", Boolean.TRUE))); - if (params.getDataType().equals(1)) { - dList.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } - Document filter = new Document("$and", dList); - // 鏋勫缓鑱氬悎绠¢亾 - 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); + resultList.forEach(item -> { + if (null != item.getPingOnline() && item.getPingOnline()) { + item.setPingOnlineStr("鍦ㄧ嚎"); + } else { + item.setPingOnlineStr("绂荤嚎"); + } + if (1 == item.getOnline()) { + item.setOnlineStr("鍦ㄧ嚎"); + } else if (-1 == item.getOnline()) { + item.setOnlineStr("绂荤嚎"); + } else { + item.setOnlineStr("鏈煡"); + } + }); Date now = new Date(); List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper()) .select(CheckIndexVideo::getKeyCommandImageOnline) @@ -266,7 +256,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 + "", this.remove0(onlineRate))); + map.put("count", Arrays.asList(distinctCount + "", this.remove0(onlineRate))); map.put("list", resultList); return Result.ok().data(map).total(total); } @@ -292,24 +282,16 @@ List<Document> dList1 = new ArrayList<>(2); dList1.add(new Document("ip.error", new Document("$eq", Boolean.TRUE))); - if (params.getDataType().equals(1)) { - dList1.add(new Document("provinceTag", 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))); - if (params.getDataType().equals(1)) { - dList2.add(new Document("provinceTag", 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))); - if (params.getDataType().equals(1)) { - dList3.add(new Document("provinceTag", 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))); - if (params.getDataType().equals(1)) { - dList4.add(new Document("provinceTag", 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); @@ -374,24 +356,16 @@ List<Document> dList1 = new ArrayList<>(2); dList1.add(new Document("ip.error", new Document("$eq", Boolean.TRUE))); - if (params.getDataType().equals(1)) { - dList1.add(new Document("provinceTag", 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))); - if (params.getDataType().equals(1)) { - dList2.add(new Document("provinceTag", 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))); - if (params.getDataType().equals(1)) { - dList3.add(new Document("provinceTag", 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))); - if (params.getDataType().equals(1)) { - dList4.add(new Document("provinceTag", 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); @@ -443,7 +417,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); @@ -457,24 +430,16 @@ List<Document> dList1 = new ArrayList<>(2); dList1.add(new Document("ip.error", new Document("$eq", Boolean.TRUE))); - if (params.getDataType().equals(1)) { - dList1.add(new Document("provinceTag", 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))); - if (params.getDataType().equals(1)) { - dList2.add(new Document("provinceTag", 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))); - if (params.getDataType().equals(1)) { - dList3.add(new Document("provinceTag", 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))); - if (params.getDataType().equals(1)) { - dList4.add(new Document("provinceTag", 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); @@ -515,7 +480,7 @@ @Override public Result videoAvailabilityRate(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("deviceId", "deviceName"); - Query query = MongoUtil.getQuery(params,"createTime", likeFileds, null); + Query query = MongoUtil.getQuery(params, "createTime", likeFileds, null); long total = mongoTemplate.count(query, RecordMetaDSumResult.class); MongoUtil.setPage(query, params, "createTime"); @@ -528,9 +493,7 @@ List<String> resultCount = status.stream().map(item -> { List<Document> dList = new ArrayList<>(2); dList.add(new Document("recordStatus", new Document("$eq", item))); - if (params.getDataType().equals(1)) { - dList.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList); Document filter = new Document("$and", dList); // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( @@ -577,7 +540,7 @@ @Override public Result deptVideoAvailabilityRate(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("deviceId", "deviceName"); - Query query = MongoUtil.getQuery(params,"createTime", likeFileds, 1); + Query query = MongoUtil.getQuery(params, "createTime", likeFileds, 1); long total = mongoTemplate.count(query, RecordMetaDSumResult.class); MongoUtil.setPage(query, params, "createTime"); @@ -590,10 +553,8 @@ List<String> resultCount = status.stream().map(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))); - if (params.getDataType().equals(1)) { - dList.add(new Document("provinceTag", 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( @@ -640,7 +601,7 @@ @Override public Result videoImportantPointAvailabilityRate(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("deviceId", "deviceName"); - Query query = MongoUtil.getQuery(params,"createTime", likeFileds, 3); + Query query = MongoUtil.getQuery(params, "createTime", likeFileds, 3); long total = mongoTemplate.count(query, RecordMetaDSumResult.class); MongoUtil.setPage(query, params, "createTime"); @@ -654,9 +615,7 @@ 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))); - if (params.getDataType().equals(1)) { - dList.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList); Document filter = new Document("$and", dList); // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( @@ -672,7 +631,7 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount + "%"; + return uniqueDeviceIdCount + ""; }).collect(Collectors.toList()); Date now = new Date(); @@ -728,7 +687,7 @@ @Override public Result videoImportantPointLabelingAccuracy(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("deviceNo", "osdName"); - Query query = MongoUtil.getQuery(params,"checkTime", likeFileds, 3); + Query query = MongoUtil.getQuery(params, "checkTime", likeFileds, 3); long total = mongoTemplate.count(query, OsdCheckResult.class); MongoUtil.setPage(query, params, "checkTime"); @@ -741,27 +700,19 @@ List<Document> dList1 = new ArrayList<>(2); dList1.add(new Document("importantTag", Boolean.TRUE)); dList1.add(new Document("osdNameCorrect", new Document("$eq", 1))); - if (params.getDataType().equals(1)) { - dList1.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + 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))); - if (params.getDataType().equals(1)) { - dList2.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + 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))); - if (params.getDataType().equals(1)) { - dList3.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + 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))); - if (params.getDataType().equals(1)) { - dList4.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList4); Document osdNameFilter = new Document("$and", dList1); Document osdNameErrFilter = new Document("$and", dList2); Document osdTimeFilter = new Document("$and", dList3); @@ -840,7 +791,7 @@ public Result videoImportantPointCheckTimeAccuracy(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("deviceNo", "osdName"); - Query query = MongoUtil.getQuery(params,"checkTime", likeFileds, 3); + Query query = MongoUtil.getQuery(params, "checkTime", likeFileds, 3); long total = mongoTemplate.count(query, OsdCheckResult.class); MongoUtil.setPage(query, params, "checkTime"); @@ -853,15 +804,11 @@ List<Document> dList1 = new ArrayList<>(2); dList1.add(new Document("importantTag", Boolean.TRUE)); dList1.add(new Document("osdTimeCorrect", new Document("$eq", 1))); - if (params.getDataType().equals(1)) { - dList1.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + 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))); - if (params.getDataType().equals(1)) { - dList2.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList2); Document osdTimeFilter = new Document("$and", dList1); Document osdTimeErrFilter = new Document("$and", dList2); List<Document> lists = Arrays.asList(osdTimeFilter, osdTimeErrFilter); @@ -925,27 +872,19 @@ List<Document> dList1 = new ArrayList<>(2); dList1.add(new Document("importantTag", Boolean.TRUE)); dList1.add(new Document("resultType", new Document("$eq", 1))); - if (params.getDataType().equals(1)) { - dList1.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + 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))); - if (params.getDataType().equals(1)) { - dList2.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + 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))); - if (params.getDataType().equals(1)) { - dList3.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + 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))); - if (params.getDataType().equals(1)) { - dList4.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList4); Document normalFilter = new Document("$and", dList1); Document noDataFilter = new Document("$and", dList2); Document trFilter = new Document("$and", dList3); @@ -996,23 +935,35 @@ */ @Override public Result vehiclePointOnlineRate(DataCenterQuery params) { - List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName"); + List<String> likeFileds = Arrays.asList("name", "no", "ip"); Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); - - long total = mongoTemplate.count(query, SnapshotDataMonitorResult.class); + //鍒嗛〉鏁伴噺 + long total = mongoTemplate.count(query, TMonitorResult.class); MongoUtil.setPage(query, params, TIME_FIELD); - List<SnapshotDataMonitorResult> resultList = mongoTemplate.find(query, SnapshotDataMonitorResult.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(); - - Date now = new Date(); + //绯荤粺ping鐨勭粨鏋� + List<TMonitorResult> resultList = mongoTemplate.find(query, TMonitorResult.class); + params.setDeptTag(-1); + params.setDeviceType(2); + // 缁熻璁惧鏁伴噺 + Integer distinctCount = pointMapper.distinctCount(params); + resultList.forEach(item -> { + if (null != item.getPingOnline() && item.getPingOnline()) { + item.setPingOnlineStr("鍦ㄧ嚎"); + } else { + item.setPingOnlineStr("绂荤嚎"); + } + if (1 == item.getOnline()) { + item.setOnlineStr("鍦ㄧ嚎"); + } else if (-1 == item.getOnline()) { + item.setOnlineStr("绂荤嚎"); + } else { + item.setOnlineStr("鏈煡"); + } + }); 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)) + .between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(params.getStartTime()), DateUtils.getDayEnd(params.getEndTime())) .list(); BigDecimal onlineRate = BigDecimal.ZERO; if (CollectionUtils.isNotEmpty(videoList)) { @@ -1047,24 +998,16 @@ List<Document> dList1 = new ArrayList<>(2); dList1.add(new Document("ip.error", new Document("$eq", Boolean.TRUE))); - if (params.getDataType().equals(1)) { - dList1.add(new Document("provinceTag", 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))); - if (params.getDataType().equals(1)) { - dList2.add(new Document("provinceTag", 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))); - if (params.getDataType().equals(1)) { - dList3.add(new Document("provinceTag", 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))); - if (params.getDataType().equals(1)) { - dList4.add(new Document("provinceTag", 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); @@ -1128,24 +1071,16 @@ List<Document> dList1 = new ArrayList<>(2); dList1.add(new Document("lalType", new Document("$eq", 1))); - if (params.getDataType().equals(1)) { - dList1.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList1); List<Document> dList2 = new ArrayList<>(2); dList2.add(new Document("lalType", new Document("$eq", 2))); - if (params.getDataType().equals(1)) { - dList2.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList2); List<Document> dList3 = new ArrayList<>(2); dList3.add(new Document("lalType", new Document("$eq", 3))); - if (params.getDataType().equals(1)) { - dList3.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList3); List<Document> dList4 = new ArrayList<>(2); dList4.add(new Document("lalType", new Document("$eq", 4))); - if (params.getDataType().equals(1)) { - dList4.add(new Document("provinceTag", 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); @@ -1282,19 +1217,13 @@ List<Document> dList1 = new ArrayList<>(2); dList1.add(new Document("snapResult", new Document("$eq", 1))); - if (params.getDataType().equals(1)) { - dList1.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList1); List<Document> dList2 = new ArrayList<>(2); dList2.add(new Document("snapResult", new Document("$eq", 2))); - if (params.getDataType().equals(1)) { - dList2.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList2); List<Document> dList3 = new ArrayList<>(2); dList3.add(new Document("snapResult", new Document("$eq", 4))); - if (params.getDataType().equals(1)) { - dList3.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList3); Document ipErrFilter = new Document("$and", dList1); Document macdzErrFilter = new Document("$and", dList2); Document longitudeErrFilter = new Document("$and", dList3); @@ -1460,24 +1389,16 @@ List<Document> dList1 = new ArrayList<>(2); dList1.add(new Document("resultType", new Document("$eq", 1))); - if (params.getDataType().equals(1)) { - dList1.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList1); List<Document> dList2 = new ArrayList<>(2); dList2.add(new Document("resultType", new Document("$eq", 2))); - if (params.getDataType().equals(1)) { - dList2.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList2); List<Document> dList3 = new ArrayList<>(2); dList3.add(new Document("resultType", new Document("$eq", 3))); - if (params.getDataType().equals(1)) { - dList3.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList3); List<Document> dList4 = new ArrayList<>(2); dList4.add(new Document("resultType", new Document("$eq", 4))); - if (params.getDataType().equals(1)) { - dList4.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList4); Document normalFilter = new Document("$and", dList1); Document noDataFilter = new Document("$and", dList2); Document trFilter = new Document("$and", dList3); @@ -1528,59 +1449,30 @@ */ @Override public Result facePointOnlineRate(DataCenterQuery params) { - List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName"); + List<String> likeFileds = Arrays.asList("name", "no", "ip"); Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); - - long total = mongoTemplate.count(query, SnapshotDataMonitorResult.class); + //鍒嗛〉鏁伴噺 + long total = mongoTemplate.count(query, TMonitorResult.class); MongoUtil.setPage(query, params, TIME_FIELD); - List<SnapshotDataMonitorResult> resultList = mongoTemplate.find(query, SnapshotDataMonitorResult.class); - - // 缁熻鏁伴噺 - 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))); - if (params.getDataType().equals(1)) { - dList1.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } - List<Document> dList2 = new ArrayList<>(2); - dList2.add(new Document("resultType", new Document("$eq", 2))); - if (params.getDataType().equals(1)) { - dList2.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } - List<Document> dList3 = new ArrayList<>(2); - dList3.add(new Document("resultType", new Document("$eq", 3))); - if (params.getDataType().equals(1)) { - dList3.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } - List<Document> dList4 = new ArrayList<>(2); - dList4.add(new Document("resultType", new Document("$eq", 4))); - if (params.getDataType().equals(1)) { - dList4.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } - 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 -> { - // 鏋勫缓鑱氬悎绠¢亾 - 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 鍙細浜х敓涓�涓粨鏋� + List<TMonitorResult> resultList = mongoTemplate.find(query, TMonitorResult.class); + resultList.forEach(item -> { + if (null != item.getPingOnline() && item.getPingOnline()) { + item.setOnlineStr("鍦ㄧ嚎"); + } else { + item.setOnlineStr("绂荤嚎"); } - return uniqueDeviceIdCount + ""; - }).collect(Collectors.toList()); + if (1 == item.getOnline()) { + item.setOnlineStr("鍦ㄧ嚎"); + } else if (-1 == item.getOnline()) { + item.setOnlineStr("绂荤嚎"); + } else { + item.setOnlineStr("鏈煡"); + } + }); + params.setDeptTag(-1); + params.setDeviceType(3); + // 缁熻璁惧鏁伴噺 + Integer distinctCount = pointMapper.distinctCount(params); Date now = new Date(); List<CheckIndexFace> videoList = new LambdaQueryChainWrapper<>(checkIndexFaceService.getBaseMapper()) @@ -1594,6 +1486,8 @@ BigDecimal count = BigDecimal.valueOf(videoList.size()); onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); } + List<String> rList = new ArrayList<>(2); + rList.add(distinctCount + ""); rList.add(this.remove0(onlineRate)); HashMap<String, Object> map = new HashMap<>(); map.put("count", rList); @@ -1622,24 +1516,16 @@ List<Document> dList1 = new ArrayList<>(2); dList1.add(new Document("ip.error", new Document("$eq", Boolean.TRUE))); - if (params.getDataType().equals(1)) { - dList1.add(new Document("provinceTag", 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))); - if (params.getDataType().equals(1)) { - dList2.add(new Document("provinceTag", 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))); - if (params.getDataType().equals(1)) { - dList3.add(new Document("provinceTag", 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))); - if (params.getDataType().equals(1)) { - dList4.add(new Document("provinceTag", 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); @@ -1703,24 +1589,16 @@ List<Document> dList1 = new ArrayList<>(2); dList1.add(new Document("lalType", new Document("$eq", 1))); - if (params.getDataType().equals(1)) { - dList1.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList1); List<Document> dList2 = new ArrayList<>(2); dList2.add(new Document("lalType", new Document("$eq", 2))); - if (params.getDataType().equals(1)) { - dList2.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList2); List<Document> dList3 = new ArrayList<>(2); dList3.add(new Document("lalType", new Document("$eq", 3))); - if (params.getDataType().equals(1)) { - dList3.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList3); List<Document> dList4 = new ArrayList<>(2); dList4.add(new Document("lalType", new Document("$eq", 4))); - if (params.getDataType().equals(1)) { - dList4.add(new Document("provinceTag", 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); @@ -1784,24 +1662,16 @@ List<Document> dList1 = new ArrayList<>(2); dList1.add(new Document("lalType", new Document("$eq", 1))); - if (params.getDataType().equals(1)) { - dList1.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList1); List<Document> dList2 = new ArrayList<>(2); dList2.add(new Document("lalType", new Document("$eq", 2))); - if (params.getDataType().equals(1)) { - dList2.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList2); List<Document> dList3 = new ArrayList<>(2); dList3.add(new Document("lalType", new Document("$eq", 3))); - if (params.getDataType().equals(1)) { - dList3.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList3); List<Document> dList4 = new ArrayList<>(2); dList4.add(new Document("lalType", new Document("$eq", 4))); - if (params.getDataType().equals(1)) { - dList4.add(new Document("provinceTag", 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); @@ -1866,19 +1736,13 @@ List<Document> dList1 = new ArrayList<>(2); dList1.add(new Document("snapResult", new Document("$eq", 1))); - if (params.getDataType().equals(1)) { - dList1.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList1); List<Document> dList2 = new ArrayList<>(2); dList2.add(new Document("snapResult", new Document("$eq", 2))); - if (params.getDataType().equals(1)) { - dList2.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList2); List<Document> dList3 = new ArrayList<>(2); dList3.add(new Document("snapResult", new Document("$eq", 4))); - if (params.getDataType().equals(1)) { - dList3.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList3); Document ipErrFilter = new Document("$and", dList1); Document macdzErrFilter = new Document("$and", dList2); Document longitudeErrFilter = new Document("$and", dList3); @@ -1942,19 +1806,13 @@ List<Document> dList1 = new ArrayList<>(2); dList1.add(new Document("snapResult", new Document("$eq", 1))); - if (params.getDataType().equals(1)) { - dList1.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList1); List<Document> dList2 = new ArrayList<>(2); dList2.add(new Document("snapResult", new Document("$eq", 2))); - if (params.getDataType().equals(1)) { - dList2.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList2); List<Document> dList3 = new ArrayList<>(2); dList3.add(new Document("snapResult", new Document("$eq", 4))); - if (params.getDataType().equals(1)) { - dList3.add(new Document("provinceTag", new Document("$eq", Boolean.TRUE))); - } + setTag(params, dList3); Document ipErrFilter = new Document("$and", dList1); Document macdzErrFilter = new Document("$and", dList2); Document longitudeErrFilter = new Document("$and", dList3); @@ -2031,6 +1889,7 @@ map.put("list", resultList); return Result.ok().data(map).total(total); } + /** * 瑙嗛锛氳棰戝浘鍍忚祫婧愬畨鍏ㄧ鐞� * @@ -2052,6 +1911,7 @@ /** * 鍒犻櫎灏鹃儴鐨�0 + * * @param rate * @return */ @@ -2059,4 +1919,18 @@ 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