From cd24a045bd9ee29505ddc9760d25f5d4037f4f0c Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期四, 05 九月 2024 21:55:28 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ycl-server/src/main/java/com/ycl/task/HKTask.java | 86 +++++ ycl-pojo/src/main/java/com/ycl/platform/domain/result/BaseResult.java | 30 ++ ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java | 3 ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java | 8 ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java | 574 +++++++++++++++++++++++++++++-------- ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckTagVO.java | 37 ++ ycl-server/src/main/java/com/ycl/utils/MongoUtil.java | 33 + ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml | 13 ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java | 9 ycl-server/src/main/java/com/ycl/task/UYTask.java | 47 +- ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java | 32 ++ ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml | 9 ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java | 18 + 13 files changed, 731 insertions(+), 168 deletions(-) diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java index 6137eef..37d256b 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/YwPointForm.java @@ -49,6 +49,9 @@ @ApiModelProperty("閲嶇偣鎸囨尌鍥惧儚鏍囩") private Boolean importantCommandImageTag; + @ApiModelProperty("閮ㄧ骇鏍囩") + private Boolean deptTag; + @ApiModelProperty("杩愮淮鐘舵��") private String status; diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/BaseResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/BaseResult.java index ce6f3d4..bbc1af6 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/BaseResult.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/BaseResult.java @@ -17,4 +17,34 @@ */ @CreatedDate private LocalDate mongoCreateTime; + + /** + * 鍥芥爣鐮� + */ + private String no; + + /** + * 鐪佸巺 + */ + private Boolean provinceTag; + + /** + * 閮ㄧ骇 + */ + private Boolean deptTag; + + /** + * 閲嶇偣 + */ + private Boolean importantTag; + + /** + * 閲嶇偣鎸囨尌鍥惧儚 + */ + private Boolean importantCommandImageTag; + + /** + * 鏂拌澶� + */ + private Boolean newDevice; } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckTagVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckTagVO.java new file mode 100644 index 0000000..e6f6d0a --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CheckTagVO.java @@ -0,0 +1,37 @@ +package com.ycl.platform.domain.vo; + +import lombok.Data; + +/** + * @author锛歺p + * @date锛�2024/9/5 12:08 + */ +@Data +public class CheckTagVO { + + /** + * 璁惧缂栧彿 + */ + private String no; + + /** + * 鐪佸巺 + */ + private Boolean provinceTag; + + /** + * 閮ㄧ骇 + */ + private Boolean deptTag; + + /** + * 閲嶇偣 + */ + private Boolean importantTag; + + /** + * 閲嶇偣鎸囨尌鍥惧儚 + */ + private Boolean importantCommandImageTag; + +} diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java index 0f5bf2e..15f93ef 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java @@ -140,4 +140,12 @@ int batchUpdateDeviceType(@Param("numbers") List<String> list,@Param("deviceType") Integer deviceType); List<TMonitor> selectByNumbers(@Param("numbers")List<String> numbers); + + /** + * 鍥芥爣鐮佹煡鍥芥爣鐮� + * + * @param gbList + * @return + */ + List<String> getGBbyGB(@Param("gbList") List<String> gbList); } diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java index f95bd46..9ec669c 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java @@ -6,6 +6,7 @@ import com.ycl.platform.domain.entity.ReportAuditingRecord; import com.ycl.platform.domain.entity.YwPoint; import com.ycl.platform.domain.query.YwPointQuery; +import com.ycl.platform.domain.vo.CheckTagVO; import com.ycl.platform.domain.vo.ReportAuditingRecordVO; import com.ycl.platform.domain.vo.YwPointVO; import com.ycl.platform.domain.excel.PointExport; @@ -104,4 +105,12 @@ * @return */ ReportAuditingRecordVO getReportResult(@Param("serialNumber") String serialNumber, @Param("reportType") String reportType); + + /** + * 閫氳繃鍥芥爣鑾峰彇鏍囩淇℃伅 + * + * @param gbList + * @return + */ + List<CheckTagVO> getTagsByGB(@Param("gbList") List<String> gbList); } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java b/ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java index 02d6b0c..b3c786f 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/YwPointService.java @@ -6,6 +6,8 @@ import com.ycl.platform.domain.form.BatchEditPointForm; import com.ycl.platform.domain.form.YwPointForm; import com.ycl.platform.domain.query.YwPointQuery; +import com.ycl.platform.domain.result.BaseResult; +import com.ycl.platform.domain.vo.CheckTagVO; import com.ycl.platform.domain.vo.ReportAuditingRecordVO; import com.ycl.system.Result; import jakarta.servlet.http.HttpServletResponse; @@ -131,4 +133,20 @@ * @return */ ReportAuditingRecordVO getReportResult(String serialNumber, String reportType); + + /** + * 鏍规嵁鍥芥爣璁剧疆tag + * + * @param dataList 鏁版嵁 + * @return + */ + <T extends BaseResult> void setDeviceTagByGB(List<T> dataList); + + /** + * 鏍规嵁鍥芥爣璁剧疆鏄惁鏂扮偣浣� + * + * @param dataList 鏁版嵁 + * @return + */ + <T extends BaseResult> void setNew(List<T> dataList); } 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 f40c430..39fb39a 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 @@ -1,22 +1,22 @@ package com.ycl.platform.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.mongodb.client.AggregateIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; -import com.ycl.platform.domain.entity.ImageResourceSecurityDetail; -import com.ycl.platform.domain.entity.YwPoint; +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.UY.*; import com.ycl.platform.mapper.ImageResourceSecurityDetailMapper; import com.ycl.platform.mapper.YwPointMapper; -import com.ycl.platform.service.DataCenterService; -import com.ycl.platform.service.YwPointService; +import com.ycl.platform.service.*; import com.ycl.system.Result; import com.ycl.system.page.PageUtil; +import com.ycl.utils.DateUtils; import com.ycl.utils.MongoUtil; import lombok.RequiredArgsConstructor; import org.apache.commons.collections.CollectionUtils; @@ -28,6 +28,8 @@ import org.springframework.data.mongodb.core.query.TextCriteria; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; import java.util.stream.Collectors; @@ -44,6 +46,9 @@ private final MongoTemplate mongoTemplate; private final ImageResourceSecurityDetailMapper securityDetailMapper; private final YwPointMapper pointMapper; + private final ICheckIndexVideoService checkIndexVideoService; + private final ICheckIndexCarService checkIndexCarService; + private final ICheckIndexFaceService checkIndexFaceService; private final static String TIME_FIELD = "mongoCreateTime"; @@ -58,7 +63,7 @@ public Result videoPointOnlineRate(DataCenterQuery params) { // 鐢熸垚鏌ヨ List<String> likeFileds = Arrays.asList("arealayerName", "ipAddr", "deviceName", "deviceId"); - Query query = MongoUtil.getQuery(params, "deviceId", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); // 鍏堟煡鎬绘暟鍐嶅垎椤� long total = mongoTemplate.count(query, VideoOnlineResult.class); @@ -69,9 +74,19 @@ 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) + .between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexVideo::getSiteOnline).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } HashMap<String, Object> map = new HashMap<>(); - map.put("count", Arrays.asList(distinctCount)); + map.put("count", Arrays.asList(distinctCount + "",onlineRate + "%")); map.put("list", resultList); return Result.ok().data(map).total(total); } @@ -84,11 +99,10 @@ */ @Override public Result deptVideoPointOnlineRate(DataCenterQuery params) { - // 鍏堟煡鍑洪儴绾х偣浣嶇殑鍥芥爣 - List<String> deptGBList = pointMapper.getDeptPointGB(0); + List<String> likeFileds = Arrays.asList("arealayerName", "ipAddr", "deviceName", "deviceId"); // 鐢熸垚鏌ヨ - Query query = MongoUtil.getQuery(params, "deviceId", TIME_FIELD, likeFileds, deptGBList); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, 1); // 鍏堟煡鎬绘暟鍐嶅垎椤� long total = mongoTemplate.count(query, VideoOnlineResult.class); @@ -98,7 +112,7 @@ // 缁熻鏁伴噺 MongoDatabase database = mongoTemplate.getDb(); MongoCollection<Document> collection = database.getCollection("uy_online"); - Document filter = new Document("deviceId", new Document("$in", deptGBList)); + Document filter = new Document("deptTag", new Document("$eq", Boolean.TRUE)); // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( // 鍙閮ㄧ骇鐨� @@ -114,9 +128,19 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - + Date now = new Date(); + List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper()) + .select(CheckIndexVideo::getMinistrySiteOnline) + .between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexVideo::getMinistrySiteOnline).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } HashMap<String, Object> map = new HashMap<>(); - map.put("count", Arrays.asList(uniqueDeviceIdCount)); + map.put("count", Arrays.asList(uniqueDeviceIdCount + "", onlineRate + "%")); map.put("list", resultList); return Result.ok().data(map).total(total); } @@ -129,10 +153,8 @@ */ @Override public Result videoImportantPointOnlineRate(DataCenterQuery params) { - // 鍏堟煡鍑洪噸鐐圭偣浣嶇殑鍥芥爣 - List<String> deptGBList = pointMapper.getDeptPointGB(1); List<String> likeFileds = Arrays.asList("arealayerName", "ipAddr", "deviceName", "deviceId"); - Query query = MongoUtil.getQuery(params, "deviceId", TIME_FIELD, likeFileds, deptGBList); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, 3); long total = mongoTemplate.count(query, VideoOnlineResult.class); MongoUtil.setPage(query, params, TIME_FIELD); @@ -141,7 +163,7 @@ // 缁熻鏁伴噺 MongoDatabase database = mongoTemplate.getDb(); MongoCollection<Document> collection = database.getCollection("uy_online"); - Document filter = new Document("deviceId", new Document("$in", deptGBList)); + Document filter = new Document("importantTag", new Document("$eq", Boolean.TRUE)); // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", filter), @@ -157,13 +179,19 @@ break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } -// long nonNetwork = mongoTemplate.count(new Query().addCriteria(Criteria.where("LWSX").is("0")), VideoOnlineResult.class); -// long network = mongoTemplate.count(new Query().addCriteria(Criteria.where("LWSX").is("1")), VideoOnlineResult.class); -// long video = mongoTemplate.count(new Query().addCriteria(Criteria.where("SXJGNLX").regex(".*1.*")), VideoOnlineResult.class); -// long car = mongoTemplate.count(new Query().addCriteria(Criteria.where("SXJGNLX").regex(".*2.*")), VideoOnlineResult.class); -// long face = mongoTemplate.count(new Query().addCriteria(Criteria.where("SXJGNLX").regex(".*3.*")), VideoOnlineResult.class); + Date now = new Date(); + List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper()) + .select(CheckIndexVideo::getKeySiteOnline) + .between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexVideo::getKeySiteOnline).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } HashMap<String, Object> map = new HashMap<>(); - map.put("count", Arrays.asList(uniqueDeviceIdCount)); + map.put("count", Arrays.asList(uniqueDeviceIdCount + "", onlineRate + "%")); map.put("list", resultList); return Result.ok().data(map).total(total); } @@ -176,10 +204,8 @@ */ @Override public Result videoImportantPointImageOnlineRate(DataCenterQuery params) { - // 鍏堟煡鍑洪噸鐐规寚鎸ュ浘鍍忕偣浣嶇殑鍥芥爣 - List<String> deptGBList = pointMapper.getDeptPointGB(2); List<String> likeFileds = Arrays.asList("arealayerName", "ipAddr", "deviceName", "deviceId"); - Query query = MongoUtil.getQuery(params, "deviceId", TIME_FIELD, likeFileds, deptGBList); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, 4); long total = mongoTemplate.count(query, VideoOnlineResult.class); MongoUtil.setPage(query, params, TIME_FIELD); @@ -188,7 +214,7 @@ // 缁熻鏁伴噺 MongoDatabase database = mongoTemplate.getDb(); MongoCollection<Document> collection = database.getCollection("uy_online"); - Document filter = new Document("deviceId", new Document("$in", deptGBList)); + Document filter = new Document("importantCommandImageTag", new Document("$eq", Boolean.TRUE)); // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", filter), @@ -204,14 +230,19 @@ break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } -// // 缁熻鏁� -// long nonNetwork = mongoTemplate.count(new Query().addCriteria(Criteria.where("LWSX").is("0")), VideoOnlineResult.class); -// long network = mongoTemplate.count(new Query().addCriteria(Criteria.where("LWSX").is("1")), VideoOnlineResult.class); -// long video = mongoTemplate.count(new Query().addCriteria(Criteria.where("SXJGNLX").regex(".*1.*")), VideoOnlineResult.class); -// long car = mongoTemplate.count(new Query().addCriteria(Criteria.where("SXJGNLX").regex(".*2.*")), VideoOnlineResult.class); -// long face = mongoTemplate.count(new Query().addCriteria(Criteria.where("SXJGNLX").regex(".*3.*")), VideoOnlineResult.class); + Date now = new Date(); + List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper()) + .select(CheckIndexVideo::getKeyCommandImageOnline) + .between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexVideo::getKeyCommandImageOnline).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } HashMap<String, Object> map = new HashMap<>(); - map.put("count", Arrays.asList(uniqueDeviceIdCount)); + map.put("count", Arrays.asList(uniqueDeviceIdCount + "", onlineRate + "%")); map.put("list", resultList); return Result.ok().data(map).total(total); } @@ -225,7 +256,7 @@ @Override public Result videoOneMachineDocumentRegister(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("ip.showValue", "name.showValue", "serialNumber.showValue"); - Query query = MongoUtil.getQuery(params, "serialNumber.showValue", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, MonitorQualifyResult.class); MongoUtil.setPage(query, params, TIME_FIELD); @@ -241,7 +272,7 @@ Document longitudeErrFilter = new Document("longitude.error", true); List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter); - List<Integer> rList = lists.stream().map(filter -> { + List<String> rList = lists.stream().map(filter -> { // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", filter), @@ -256,9 +287,21 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + ""; }).collect(Collectors.toList()); + Date now = new Date(); + List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper()) + .select(CheckIndexVideo::getMonitorRegistration) + .between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexVideo::getMonitorRegistration).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + rList.add(onlineRate + "%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", rList); map.put("list", resultList); @@ -274,7 +317,7 @@ @Override public Result videoOneMachineDocumentQualified(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("ip.showValue", "name.showValue", "serialNumber.showValue"); - Query query = MongoUtil.getQuery(params, "serialNumber.showValue", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, MonitorQualifyResult.class); MongoUtil.setPage(query, params, TIME_FIELD); @@ -290,7 +333,7 @@ Document longitudeErrFilter = new Document("longitude.error", true); List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter); - List<Integer> rList = lists.stream().map(filter -> { + List<String> rList = lists.stream().map(filter -> { // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", filter), @@ -305,9 +348,21 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + ""; }).collect(Collectors.toList()); + Date now = new Date(); + List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper()) + .select(CheckIndexVideo::getMonitorQualification) + .between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexVideo::getMonitorQualification).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + rList.add(onlineRate + "%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", rList); map.put("list", resultList); @@ -324,7 +379,7 @@ public Result videoAssessmentFileRatio(DataCenterQuery params) { // TODO 鏂板涓�寮犺〃璁板綍姣忔鐨勬。妗堣�冩牳 List<String> likeFileds = Arrays.asList("ip.showValue", "name.showValue", "serialNumber.showValue"); - Query query = MongoUtil.getQuery(params, "serialNumber.showValue", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, MonitorQualifyResult.class); MongoUtil.setPage(query, params, TIME_FIELD); @@ -340,7 +395,7 @@ Document longitudeErrFilter = new Document("longitude.error", true); List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter); - List<Integer> rList = lists.stream().map(filter -> { + List<String> rList = lists.stream().map(filter -> { // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", filter), @@ -355,9 +410,10 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + ""; }).collect(Collectors.toList()); + rList.add("0%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", rList); map.put("list", resultList); @@ -373,7 +429,7 @@ @Override public Result videoAvailabilityRate(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("deviceId", "deviceName"); - Query query = MongoUtil.getQuery(params, "deviceId", "createTime", likeFileds, null); + Query query = MongoUtil.getQuery(params,"createTime", likeFileds, null); long total = mongoTemplate.count(query, RecordMetaDSumResult.class); MongoUtil.setPage(query, params, "createTime"); @@ -383,7 +439,7 @@ MongoDatabase database = mongoTemplate.getDb(); MongoCollection<Document> collection = database.getCollection("uy_record_meta_d_sum"); List<Integer> status = Arrays.asList(1, 0, -1); - List<Integer> resultCount = status.stream().map(item -> { + List<String> resultCount = status.stream().map(item -> { Document filter = new Document("recordStatus", item); // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( @@ -399,10 +455,21 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + ""; }).collect(Collectors.toList()); - + Date now = new Date(); + List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper()) + .select(CheckIndexVideo::getVideoAvailable) + .between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexVideo::getVideoAvailable).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + resultCount.add(onlineRate + "%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", resultCount); map.put("list", resultList); @@ -417,10 +484,8 @@ */ @Override public Result deptVideoAvailabilityRate(DataCenterQuery params) { - - List<String> deptGBList = pointMapper.getDeptPointGB(0); List<String> likeFileds = Arrays.asList("deviceId", "deviceName"); - Query query = MongoUtil.getQuery(params, "deviceId", "createTime", likeFileds, deptGBList); + Query query = MongoUtil.getQuery(params,"createTime", likeFileds, 1); long total = mongoTemplate.count(query, RecordMetaDSumResult.class); MongoUtil.setPage(query, params, "createTime"); @@ -430,9 +495,9 @@ MongoDatabase database = mongoTemplate.getDb(); MongoCollection<Document> collection = database.getCollection("uy_record_meta_d_sum"); List<Integer> status = Arrays.asList(1, 0, -1); - List<Integer> resultCount = status.stream().map(item -> { + List<String> resultCount = status.stream().map(item -> { Document filter = new Document("$and", Arrays.asList( - new Document("deviceId", new Document("$in", deptGBList)), // $in 鏉′欢 + new Document("deptTag", new Document("$eq", Boolean.TRUE)), new Document("recordStatus", item) )); // 鏋勫缓鑱氬悎绠¢亾 @@ -449,10 +514,21 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + ""; }).collect(Collectors.toList()); - + Date now = new Date(); + List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper()) + .select(CheckIndexVideo::getMinistryVideoAvailable) + .between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexVideo::getMinistryVideoAvailable).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + resultCount.add(onlineRate + "%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", resultCount); map.put("list", resultList); @@ -467,10 +543,8 @@ */ @Override public Result videoImportantPointAvailabilityRate(DataCenterQuery params) { - - List<String> deptGBList = pointMapper.getDeptPointGB(1); List<String> likeFileds = Arrays.asList("deviceId", "deviceName"); - Query query = MongoUtil.getQuery(params, "deviceId", "createTime", likeFileds, deptGBList); + Query query = MongoUtil.getQuery(params,"createTime", likeFileds, 3); long total = mongoTemplate.count(query, RecordMetaDSumResult.class); MongoUtil.setPage(query, params, "createTime"); @@ -480,9 +554,9 @@ MongoDatabase database = mongoTemplate.getDb(); MongoCollection<Document> collection = database.getCollection("uy_record_meta_d_sum"); List<Integer> status = Arrays.asList(1, 0, -1); - List<Integer> resultCount = status.stream().map(item -> { + List<String> resultCount = status.stream().map(item -> { Document filter = new Document("$and", Arrays.asList( - new Document("deviceId", new Document("$in", deptGBList)), // $in 鏉′欢 + new Document("importantTag", new Document("$eq", Boolean.TRUE)), new Document("recordStatus", item) )); // 鏋勫缓鑱氬悎绠¢亾 @@ -499,9 +573,21 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + "%"; }).collect(Collectors.toList()); + Date now = new Date(); + List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper()) + .select(CheckIndexVideo::getKeyVideoAvailable) + .between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexVideo::getKeyVideoAvailable).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + resultCount.add(onlineRate + "%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", resultCount); map.put("list", resultList); @@ -517,7 +603,7 @@ @Override public Result videoLabelingAccuracy(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("deviceId", "deviceName"); - Query query = MongoUtil.getQuery(params, "deviceId", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, RecordMetaDSumResult.class); List<RecordMetaDSumResult> resultList = mongoTemplate.find(query, RecordMetaDSumResult.class); @@ -541,10 +627,8 @@ */ @Override public Result videoImportantPointLabelingAccuracy(DataCenterQuery params) { - - List<String> deptGBList = pointMapper.getDeptPointGB(1); List<String> likeFileds = Arrays.asList("deviceNo", "osdName"); - Query query = MongoUtil.getQuery(params, "deviceNo", "checkTime", likeFileds, deptGBList); + Query query = MongoUtil.getQuery(params,"checkTime", likeFileds, 3); long total = mongoTemplate.count(query, OsdCheckResult.class); MongoUtil.setPage(query, params, "checkTime"); @@ -554,12 +638,13 @@ MongoDatabase database = mongoTemplate.getDb(); MongoCollection<Document> collection = database.getCollection("osd_check_result"); - Document osdNameFilter = new Document("osdNameCorrect", 1); - Document osdNameErrFilter = new Document("osdNameCorrect", -1); - Document osdTimeFilter = new Document("osdTimeCorrect", 1); - Document osdTimeErrFilter = new Document("osdTimeCorrect", -1); + Document importantTag = new Document("importantTag", Boolean.TRUE); + Document osdNameFilter = new Document("$and", Arrays.asList(new Document("osdNameCorrect", 1), importantTag)); + Document osdNameErrFilter = new Document("$and", Arrays.asList(new Document("osdNameCorrect", -1), importantTag)); + Document osdTimeFilter = new Document("$and", Arrays.asList(new Document("osdTimeCorrect", 1), importantTag)); + Document osdTimeErrFilter = new Document("$and", Arrays.asList(new Document("osdTimeCorrect", -1), importantTag)); List<Document> lists = Arrays.asList(osdNameFilter, osdNameErrFilter, osdTimeFilter, osdTimeErrFilter); - List<Integer> rList = lists.stream().map(filter -> { + List<String> rList = lists.stream().map(filter -> { // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", filter), @@ -574,10 +659,21 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + ""; }).collect(Collectors.toList()); - + Date now = new Date(); + List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper()) + .select(CheckIndexVideo::getKeyAnnotationAccuracy) + .between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexVideo::getKeyAnnotationAccuracy).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + rList.add(onlineRate + "%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", rList); map.put("list", resultList); @@ -594,7 +690,7 @@ public Result videoCheckTimeAccuracy(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("deviceId"); - Query query = MongoUtil.getQuery(params, "deviceId", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, OneMachineFileResult.class); List<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); @@ -619,9 +715,8 @@ @Override public Result videoImportantPointCheckTimeAccuracy(DataCenterQuery params) { - List<String> deptGBList = pointMapper.getDeptPointGB(1); List<String> likeFileds = Arrays.asList("deviceNo", "osdName"); - Query query = MongoUtil.getQuery(params, "deviceNo", "checkTime", likeFileds, deptGBList); + Query query = MongoUtil.getQuery(params,"checkTime", likeFileds, 3); long total = mongoTemplate.count(query, OsdCheckResult.class); MongoUtil.setPage(query, params, "checkTime"); @@ -631,10 +726,11 @@ MongoDatabase database = mongoTemplate.getDb(); MongoCollection<Document> collection = database.getCollection("osd_check_result"); - Document osdTimeFilter = new Document("osdTimeCorrect", 1); - Document osdTimeErrFilter = new Document("osdTimeCorrect", -1); + Document importantTag = new Document("importantTag", Boolean.TRUE); + Document osdTimeFilter = new Document("$and", Arrays.asList(new Document("osdTimeCorrect", 1), importantTag)); + Document osdTimeErrFilter = new Document("$and", Arrays.asList(new Document("osdTimeCorrect", -1), importantTag)); List<Document> lists = Arrays.asList(osdTimeFilter, osdTimeErrFilter); - List<Integer> rList = lists.stream().map(filter -> { + List<String> rList = lists.stream().map(filter -> { // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", filter), @@ -649,9 +745,21 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + ""; }).collect(Collectors.toList()); + Date now = new Date(); + List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper()) + .select(CheckIndexVideo::getKeyTimingAccuracy) + .between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexVideo::getKeyTimingAccuracy).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + rList.add(onlineRate + "%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", rList); map.put("list", resultList); @@ -668,7 +776,7 @@ @Override public Result vehicleViewDockStable(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName"); - Query query = MongoUtil.getQuery(params, "externalIndexCode", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, SnapshotDataMonitorResult.class); MongoUtil.setPage(query, params, TIME_FIELD); @@ -683,7 +791,7 @@ Document trFilter = new Document("resultType", 3); Document littleFilter = new Document("resultType", 4); List<Document> lists = Arrays.asList(normalFilter, noDataFilter, trFilter, littleFilter); - List<Integer> rList = lists.stream().map(filter -> { + List<String> rList = lists.stream().map(filter -> { // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", filter), @@ -698,9 +806,21 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + ""; }).collect(Collectors.toList()); + Date now = new Date(); + List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper()) + .select(CheckIndexCar::getViewConnectStability) + .between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .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()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + rList.add(onlineRate + "%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", rList); map.put("list", resultList); @@ -716,7 +836,7 @@ @Override public Result vehiclePointOnlineRate(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName"); - Query query = MongoUtil.getQuery(params, "externalIndexCode", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, SnapshotDataMonitorResult.class); MongoUtil.setPage(query, params, TIME_FIELD); @@ -727,8 +847,19 @@ MongoCollection<Document> collection = database.getCollection("hk_snapshot_data_monitor"); long distinctCount = collection.distinct("externalIndexCode", String.class).into(new ArrayList<>()).size(); + Date now = new Date(); + List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper()) + .select(CheckIndexCar::getSiteOnline) + .between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexCar::getSiteOnline).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } HashMap<String, Object> map = new HashMap<>(); - map.put("count", Arrays.asList(distinctCount)); + map.put("count", Arrays.asList(distinctCount + "%", onlineRate + "%")); map.put("list", resultList); return Result.ok().data(map).total(total); } @@ -742,7 +873,7 @@ @Override public Result vehicleNetDeviceDirectoryConsistency(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("ip.showValue", "name.showValue", "serialNumber.showValue"); - Query query = MongoUtil.getQuery(params, "externalIndexCode", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, MonitorQualifyResult.class); MongoUtil.setPage(query, params, TIME_FIELD); @@ -758,7 +889,7 @@ Document longitudeErrFilter = new Document("longitude.error", true); List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter); - List<Integer> rList = lists.stream().map(filter -> { + List<String> rList = lists.stream().map(filter -> { // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", filter), @@ -773,9 +904,21 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + "%"; }).collect(Collectors.toList()); + Date now = new Date(); + List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper()) + .select(CheckIndexCar::getDeviceDirectoryConsistent) + .between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexCar::getDeviceDirectoryConsistent).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + rList.add(onlineRate + "%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", rList); map.put("list", resultList); @@ -791,7 +934,7 @@ @Override public Result vehicleCollectionConsistency(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("externalIndexCode", "crossName"); - Query query = MongoUtil.getQuery(params, "externalIndexCode", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, CrossDetailResult.class); MongoUtil.setPage(query, params, TIME_FIELD); @@ -807,7 +950,7 @@ Document longitudeErrFilter = new Document("lalType", 4); List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter); - List<Integer> rList = lists.stream().map(filter -> { + List<String> rList = lists.stream().map(filter -> { // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", filter), @@ -822,9 +965,21 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + ""; }).collect(Collectors.toList()); + Date now = new Date(); + List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper()) + .select(CheckIndexCar::getVehicleInformationCollectionAccuracy) + .between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexCar::getVehicleInformationCollectionAccuracy).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + rList.add(onlineRate + "%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", rList); map.put("list", resultList); @@ -840,7 +995,7 @@ @Override public Result vehicleCollectionDataIntegrity(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName"); - Query query = MongoUtil.getQuery(params, "externalIndexCode", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, DataIntegrityMonitoringResult.class); MongoUtil.setPage(query, params, TIME_FIELD); @@ -850,8 +1005,20 @@ MongoDatabase database = mongoTemplate.getDb(); MongoCollection<Document> collection = database.getCollection("hk_data_integrity_monitoring"); + Date now = new Date(); + List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper()) + .select(CheckIndexCar::getVehicleCaptureIntegrity) + .between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexCar::getVehicleCaptureIntegrity).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + HashMap<String, Object> map = new HashMap<>(); - map.put("count", CollectionUtils.EMPTY_COLLECTION); + map.put("count", Arrays.asList(onlineRate + "%")); map.put("list", resultList); return Result.ok().data(map).total(total); } @@ -865,14 +1032,25 @@ @Override public Result vehicleCollectionDataCaptured(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName"); - Query query = MongoUtil.getQuery(params, "externalIndexCode", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, AttrRecognitionMonitorResult.class); MongoUtil.setPage(query, params, TIME_FIELD); List<AttrRecognitionMonitorResult> resultList = mongoTemplate.find(query, AttrRecognitionMonitorResult.class); - // 缁熻鏁� + + Date now = new Date(); + List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper()) + .select(CheckIndexCar::getVehicleCaptureAccuracy) + .between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexCar::getVehicleCaptureAccuracy).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } HashMap<String, Object> map = new HashMap<>(); - map.put("count", CollectionUtils.EMPTY_COLLECTION); + map.put("count", Arrays.asList(onlineRate + "%")); map.put("list", resultList); return Result.ok().data(map).total(total); } @@ -886,7 +1064,7 @@ @Override public Result vehicleClockAccuracy(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName"); - Query query = MongoUtil.getQuery(params, "externalIndexCode", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, VehicleDeviceInspectionResult.class); MongoUtil.setPage(query, params, TIME_FIELD); @@ -902,7 +1080,7 @@ Document longitudeErrFilter = new Document("snapResult", 4); List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, longitudeErrFilter); - List<Integer> rList = lists.stream().map(filter -> { + List<String> rList = lists.stream().map(filter -> { // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", filter), @@ -917,9 +1095,21 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + ""; }).collect(Collectors.toList()); + Date now = new Date(); + List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper()) + .select(CheckIndexCar::getVehicleTimingAccuracy) + .between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexCar::getVehicleTimingAccuracy).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + rList.add(onlineRate + "%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", rList); map.put("list", resultList); @@ -935,14 +1125,26 @@ @Override public Result vehicleTimelyUploadAccuracy(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName"); - Query query = MongoUtil.getQuery(params, "externalIndexCode", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, SnapshotDelayMonitorResult.class); MongoUtil.setPage(query, params, TIME_FIELD); List<SnapshotDelayMonitorResult> resultList = mongoTemplate.find(query, SnapshotDelayMonitorResult.class); + // 缁熻鏁� + Date now = new Date(); + List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper()) + .select(CheckIndexCar::getVehicleUploadTimeliness) + .between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexCar::getVehicleUploadTimeliness).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } HashMap<String, Object> map = new HashMap<>(); - map.put("count", CollectionUtils.EMPTY_COLLECTION); + map.put("count", Arrays.asList(onlineRate + "%")); map.put("list", resultList); return Result.ok().data(map).total(total); } @@ -956,14 +1158,26 @@ @Override public Result vehicleUrlAccuracy(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName"); - Query query = MongoUtil.getQuery(params, "externalIndexCode", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, PicAccessResult.class); MongoUtil.setPage(query, params, TIME_FIELD); List<PicAccessResult> resultList = mongoTemplate.find(query, PicAccessResult.class); + // 缁熻鏁� + Date now = new Date(); + List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper()) + .select(CheckIndexCar::getVehicleUrlAvailability) + .between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexCar::getVehicleUrlAvailability).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } HashMap<String, Object> map = new HashMap<>(); - map.put("count", CollectionUtils.EMPTY_COLLECTION); + map.put("count", Arrays.asList(onlineRate + "%")); map.put("list", resultList); return Result.ok().data(map).total(total); } @@ -977,14 +1191,26 @@ @Override public Result vehicleBigImgAccuracy(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName"); - Query query = MongoUtil.getQuery(params, "externalIndexCode", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, VehicleDeviceSamplingResult.class); MongoUtil.setPage(query, params, TIME_FIELD); List<VehicleDeviceSamplingResult> resultList = mongoTemplate.find(query, VehicleDeviceSamplingResult.class); + // 缁熻鏁� + Date now = new Date(); + List<CheckIndexCar> videoList = new LambdaQueryChainWrapper<>(checkIndexCarService.getBaseMapper()) + .select(CheckIndexCar::getVehiclePictureAvailability) + .between(CheckIndexCar::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexCar::getVehiclePictureAvailability).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } HashMap<String, Object> map = new HashMap<>(); - map.put("count", CollectionUtils.EMPTY_COLLECTION); + map.put("count", Arrays.asList(onlineRate + "%")); map.put("list", resultList); return Result.ok().data(map).total(total); } @@ -998,7 +1224,7 @@ @Override public Result faceViewDockStable(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName"); - Query query = MongoUtil.getQuery(params, "externalIndexCode", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, SnapshotDataMonitorResult.class); MongoUtil.setPage(query, params, TIME_FIELD); @@ -1013,7 +1239,7 @@ Document trFilter = new Document("resultType", 3); Document littleFilter = new Document("resultType", 4); List<Document> lists = Arrays.asList(normalFilter, noDataFilter, trFilter, littleFilter); - List<Integer> rList = lists.stream().map(filter -> { + List<String> rList = lists.stream().map(filter -> { // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", filter), @@ -1028,9 +1254,21 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + ""; }).collect(Collectors.toList()); + Date now = new Date(); + List<CheckIndexFace> videoList = new LambdaQueryChainWrapper<>(checkIndexFaceService.getBaseMapper()) + .select(CheckIndexFace::getViewConnectStability) + .between(CheckIndexFace::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexFace::getViewConnectStability).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + rList.add(onlineRate + "%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", rList); map.put("list", resultList); @@ -1046,7 +1284,7 @@ @Override public Result facePointOnlineRate(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName"); - Query query = MongoUtil.getQuery(params, "externalIndexCode", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, SnapshotDataMonitorResult.class); MongoUtil.setPage(query, params, TIME_FIELD); @@ -1061,7 +1299,7 @@ Document trFilter = new Document("resultType", 3); Document littleFilter = new Document("resultType", 4); List<Document> lists = Arrays.asList(normalFilter, noDataFilter, trFilter, littleFilter); - List<Integer> rList = lists.stream().map(filter -> { + List<String> rList = lists.stream().map(filter -> { // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", filter), @@ -1076,9 +1314,21 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + ""; }).collect(Collectors.toList()); + Date now = new Date(); + List<CheckIndexFace> videoList = new LambdaQueryChainWrapper<>(checkIndexFaceService.getBaseMapper()) + .select(CheckIndexFace::getSiteOnline) + .between(CheckIndexFace::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexFace::getSiteOnline).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + rList.add(onlineRate + "%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", rList); map.put("list", resultList); @@ -1094,7 +1344,7 @@ @Override public Result faceDirectoryConsistency(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("serialNumber.showValue", "ip.showValue", "name.showValue"); - Query query = MongoUtil.getQuery(params, "serialNumber.showValue", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, MonitorQualifyResult.class); MongoUtil.setPage(query, params, TIME_FIELD); @@ -1110,7 +1360,7 @@ Document longitudeErrFilter = new Document("longitude.error", true); List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter); - List<Integer> rList = lists.stream().map(filter -> { + List<String> rList = lists.stream().map(filter -> { // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", filter), @@ -1125,9 +1375,21 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + ""; }).collect(Collectors.toList()); + Date now = new Date(); + List<CheckIndexFace> videoList = new LambdaQueryChainWrapper<>(checkIndexFaceService.getBaseMapper()) + .select(CheckIndexFace::getDeviceDirectoryConsistent) + .between(CheckIndexFace::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexFace::getDeviceDirectoryConsistent).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + rList.add(onlineRate + "%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", rList); map.put("list", resultList); @@ -1143,7 +1405,7 @@ @Override public Result faceCollectionConsistency(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("externalIndexCode", "crossName"); - Query query = MongoUtil.getQuery(params, "externalIndexCode", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, CrossDetailResult.class); MongoUtil.setPage(query, params, TIME_FIELD); @@ -1159,7 +1421,7 @@ Document longitudeErrFilter = new Document("lalType", 4); List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter); - List<Integer> rList = lists.stream().map(filter -> { + List<String> rList = lists.stream().map(filter -> { // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", filter), @@ -1174,9 +1436,21 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + ""; }).collect(Collectors.toList()); + Date now = new Date(); + List<CheckIndexFace> videoList = new LambdaQueryChainWrapper<>(checkIndexFaceService.getBaseMapper()) + .select(CheckIndexFace::getFaceInformationCollectionAccuracy) + .between(CheckIndexFace::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexFace::getFaceInformationCollectionAccuracy).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + rList.add(onlineRate + "%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", rList); map.put("list", resultList); @@ -1192,7 +1466,7 @@ @Override public Result faceImgQualification(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("externalIndexCode", "cameraName"); - Query query = MongoUtil.getQuery(params, "externalIndexCode", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, MonitoringDetailResult.class); MongoUtil.setPage(query, params, TIME_FIELD); @@ -1208,7 +1482,7 @@ Document longitudeErrFilter = new Document("lalType", 4); List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter); - List<Integer> rList = lists.stream().map(filter -> { + List<String> rList = lists.stream().map(filter -> { // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", filter), @@ -1223,9 +1497,21 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + ""; }).collect(Collectors.toList()); + Date now = new Date(); + List<CheckIndexFace> videoList = new LambdaQueryChainWrapper<>(checkIndexFaceService.getBaseMapper()) + .select(CheckIndexFace::getFacePictureQualification) + .between(CheckIndexFace::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexFace::getFacePictureQualification).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + rList.add(onlineRate + "%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", rList); map.put("list", resultList); @@ -1241,7 +1527,7 @@ @Override public Result faceCapturesImagesAccuracy(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName"); - Query query = MongoUtil.getQuery(params, "externalIndexCode", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, FaceDeviceInspectionResult.class); MongoUtil.setPage(query, params, TIME_FIELD); @@ -1256,7 +1542,7 @@ Document longitudeErrFilter = new Document("snapResult", 4); List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, longitudeErrFilter); - List<Integer> rList = lists.stream().map(filter -> { + List<String> rList = lists.stream().map(filter -> { // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", filter), @@ -1271,9 +1557,21 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + ""; }).collect(Collectors.toList()); + Date now = new Date(); + List<CheckIndexFace> videoList = new LambdaQueryChainWrapper<>(checkIndexFaceService.getBaseMapper()) + .select(CheckIndexFace::getFaceTimingAccuracy) + .between(CheckIndexFace::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexFace::getFaceTimingAccuracy).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + rList.add(onlineRate + "%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", rList); map.put("list", resultList); @@ -1289,7 +1587,7 @@ @Override public Result faceTimelyUpload(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName"); - Query query = MongoUtil.getQuery(params, "externalIndexCode", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, FaceDeviceInspectionResult.class); MongoUtil.setPage(query, params, TIME_FIELD); @@ -1304,7 +1602,7 @@ Document longitudeErrFilter = new Document("snapResult", 4); List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, longitudeErrFilter); - List<Integer> rList = lists.stream().map(filter -> { + List<String> rList = lists.stream().map(filter -> { // 鏋勫缓鑱氬悎绠¢亾 List<Document> pipeline = Arrays.asList( new Document("$match", filter), @@ -1319,9 +1617,21 @@ uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - return uniqueDeviceIdCount; + return uniqueDeviceIdCount + ""; }).collect(Collectors.toList()); + Date now = new Date(); + List<CheckIndexFace> videoList = new LambdaQueryChainWrapper<>(checkIndexFaceService.getBaseMapper()) + .select(CheckIndexFace::getFaceUploadTimeliness) + .between(CheckIndexFace::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexFace::getFaceUploadTimeliness).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + rList.add(onlineRate + "%"); HashMap<String, Object> map = new HashMap<>(); map.put("count", rList); map.put("list", resultList); @@ -1337,14 +1647,26 @@ @Override public Result faceAvailabilityOfLargeImg(DataCenterQuery params) { List<String> likeFileds = Arrays.asList("externalIndexCode", "deviceName"); - Query query = MongoUtil.getQuery(params, "externalIndexCode", TIME_FIELD, likeFileds, null); + Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); long total = mongoTemplate.count(query, FaceDeviceSamplingResult.class); MongoUtil.setPage(query, params, TIME_FIELD); List<FaceDeviceSamplingResult> resultList = mongoTemplate.find(query, FaceDeviceSamplingResult.class); + // 缁熻鏁� + Date now = new Date(); + List<CheckIndexFace> videoList = new LambdaQueryChainWrapper<>(checkIndexFaceService.getBaseMapper()) + .select(CheckIndexFace::getFacePictureAvailability) + .between(CheckIndexFace::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) + .list(); + BigDecimal onlineRate = BigDecimal.ZERO; + if (CollectionUtils.isNotEmpty(videoList)) { + BigDecimal sum = videoList.stream().map(CheckIndexFace::getFacePictureAvailability).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal count = BigDecimal.valueOf(videoList.size()); + onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } HashMap<String, Object> map = new HashMap<>(); - map.put("count", CollectionUtils.EMPTY_COLLECTION); + map.put("count", Arrays.asList(onlineRate + "%")); map.put("list", resultList); return Result.ok().data(map).total(total); } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java index 95a973d..43f2843 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java @@ -13,8 +13,11 @@ import com.ycl.platform.domain.form.BatchEditPointForm; import com.ycl.platform.domain.form.YwPointForm; import com.ycl.platform.domain.query.YwPointQuery; +import com.ycl.platform.domain.result.BaseResult; +import com.ycl.platform.domain.vo.CheckTagVO; import com.ycl.platform.domain.vo.ReportAuditingRecordVO; import com.ycl.platform.domain.vo.YwPointVO; +import com.ycl.platform.mapper.TMonitorMapper; import com.ycl.platform.mapper.YwPeopleMapper; import com.ycl.platform.mapper.YwPointMapper; import com.ycl.platform.service.YwPointService; @@ -32,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; @@ -51,8 +55,7 @@ public class YwPointServiceImpl extends ServiceImpl<YwPointMapper, YwPoint> implements YwPointService { private final SysDeptMapper sysDeptMapper; - private final YwUnitService unitService; - private final YwPeopleMapper ywPeopleMapper; + private final TMonitorMapper monitorMapper; private static final ExecutorService executorService = new ThreadPoolExecutor(8, 24, @@ -310,4 +313,29 @@ log.error("鎬诲叡鑰楁椂锛�" + (endTime.getTime() - startTime.getTime())); } + @Override + public <T extends BaseResult> void setDeviceTagByGB(List<T> dataList) { + List<String> gbList = dataList.stream().map(BaseResult::getNo).collect(Collectors.toList()); + List<CheckTagVO> pointList = baseMapper.getTagsByGB(gbList); + Map<String, CheckTagVO> pointMap = pointList.stream().collect(Collectors.toMap(CheckTagVO::getNo, item -> item)); + for (BaseResult data : dataList) { + CheckTagVO tag = pointMap.get(data.getNo()); + if (Objects.nonNull(tag)) { + BeanUtils.copyProperties(tag, data); + } + } + } + + @Override + public <T extends BaseResult> void setNew(List<T> dataList) { + List<String> gbList = dataList.stream().map(BaseResult::getNo).collect(Collectors.toList()); + Map<String, BaseResult> pointMap = dataList.stream().collect(Collectors.toMap(BaseResult::getNo, item -> item)); + List<String> dbGBList = monitorMapper.getGBbyGB(gbList); + for (String gb : dbGBList) { + BaseResult data = pointMap.get(gb); + if (Objects.nonNull(data)) { + data.setNewDevice(Boolean.TRUE); + } + } + } } diff --git a/ycl-server/src/main/java/com/ycl/task/HKTask.java b/ycl-server/src/main/java/com/ycl/task/HKTask.java index d310a07..85c3811 100644 --- a/ycl-server/src/main/java/com/ycl/task/HKTask.java +++ b/ycl-server/src/main/java/com/ycl/task/HKTask.java @@ -3,16 +3,11 @@ import com.alibaba.fastjson2.JSONObject; import com.mongodb.client.result.DeleteResult; import com.ycl.feign.HkApiUtil; -import com.ycl.feign.HkApiUtil; import com.ycl.platform.domain.param.HK.*; import com.ycl.platform.domain.result.HK.*; -import com.ycl.platform.service.ICheckIndexCarService; -import com.ycl.platform.service.ICheckIndexFaceService; -import com.ycl.platform.service.ICheckIndexVideoService; -import com.ycl.platform.service.IYwThresholdService; +import com.ycl.platform.service.*; import com.ycl.utils.DateUtils; import constant.ApiConstants; -import com.ycl.feign.HKClient; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -24,6 +19,7 @@ import java.util.Date; import java.util.List; +import java.util.Objects; //娴峰悍瀵规帴鏁版嵁浠诲姟 @Slf4j @@ -41,11 +37,7 @@ @Autowired private IYwThresholdService ywThresholdService; @Autowired - private ICheckIndexFaceService checkIndexFaceService; - @Autowired - private ICheckIndexCarService checkIndexCarService; - @Autowired - private ICheckIndexVideoService checkIndexVideoService; + private YwPointService pointService; //杞﹁締璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉 public void vehicleDeviceInspectionTask() { @@ -60,6 +52,12 @@ //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); DeleteResult result = mongoTemplate.remove(query, VehicleDeviceInspectionResult.class); + list.stream().forEach(item -> { + if (Objects.nonNull(item.getExternalIndexCode())) { + item.setNo(item.getExternalIndexCode()); + } + }); + pointService.setDeviceTagByGB(list); //瀛樻斁鍦╩ongo涓� mongoTemplate.insertAll(list); //鍚屾鐨勬暟鎹繘琛屽伐鍗曢槇鍊煎鐞� @@ -83,6 +81,12 @@ //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); DeleteResult result = mongoTemplate.remove(query, FaceDeviceInspectionResult.class); + list.stream().forEach(item -> { + if (Objects.nonNull(item.getExternalIndexCode())) { + item.setNo(item.getExternalIndexCode()); + } + }); + pointService.setDeviceTagByGB(list); //瀛樻斁鍦╩ongo涓� mongoTemplate.insertAll(list); //鍚屾鐨勬暟鎹繘琛屽伐鍗曢槇鍊煎鐞� @@ -110,6 +114,12 @@ .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())) .and("dataType").is(ApiConstants.HK_DataType_CAR)); DeleteResult result = mongoTemplate.remove(query, SnapshotDataMonitorResult.class); + carList.stream().forEach(item -> { + if (Objects.nonNull(item.getExternalIndexCode())) { + item.setNo(item.getExternalIndexCode()); + } + }); + pointService.setDeviceTagByGB(carList); //瀛樻斁鍦╩ongo涓� carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_CAR)); mongoTemplate.insertAll(carList); @@ -129,6 +139,12 @@ .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())) .and("dataType").is(ApiConstants.HK_DataType_FACE)); DeleteResult result = mongoTemplate.remove(query, SnapshotDataMonitorResult.class); + faceList.stream().forEach(item -> { + if (Objects.nonNull(item.getExternalIndexCode())) { + item.setNo(item.getExternalIndexCode()); + } + }); + pointService.setDeviceTagByGB(faceList); //瀛樻斁鍦╩ongo涓� faceList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_FACE)); mongoTemplate.insertAll(faceList); @@ -150,6 +166,12 @@ Query query = new Query(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); DeleteResult result = mongoTemplate.remove(query, MonitoringDetailResult.class); + faceList.stream().forEach(item -> { + if (Objects.nonNull(item.getExternalIndexCode())) { + item.setNo(item.getExternalIndexCode()); + } + }); + pointService.setDeviceTagByGB(faceList); //瀛樻斁鍦╩ongo涓� mongoTemplate.insertAll(faceList); } @@ -170,6 +192,12 @@ Query query = new Query(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); DeleteResult result = mongoTemplate.remove(query, CrossDetailResult.class); + faceList.stream().forEach(item -> { + if (Objects.nonNull(item.getExternalIndexCode())) { + item.setNo(item.getExternalIndexCode()); + } + }); + pointService.setDeviceTagByGB(faceList); //瀛樻斁鍦╩ongo涓� mongoTemplate.insertAll(faceList); } @@ -192,6 +220,12 @@ Query query = new Query(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); DeleteResult result = mongoTemplate.remove(query, DataIntegrityMonitoringResult.class); + faceList.stream().forEach(item -> { + if (Objects.nonNull(item.getExternalIndexCode())) { + item.setNo(item.getExternalIndexCode()); + } + }); + pointService.setDeviceTagByGB(faceList); //瀛樻斁鍦╩ongo涓� mongoTemplate.insertAll(faceList); } @@ -214,6 +248,12 @@ Query query = new Query(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); DeleteResult result = mongoTemplate.remove(query, AttrRecognitionMonitorResult.class); + faceList.stream().forEach(item -> { + if (Objects.nonNull(item.getExternalIndexCode())) { + item.setNo(item.getExternalIndexCode()); + } + }); + pointService.setDeviceTagByGB(faceList); //瀛樻斁鍦╩ongo涓� mongoTemplate.insertAll(faceList); } @@ -241,6 +281,12 @@ DeleteResult result = mongoTemplate.remove(query, SnapshotDelayMonitorResult.class); //瀛樻斁鍦╩ongo涓� carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_CAR)); + carList.stream().forEach(item -> { + if (Objects.nonNull(item.getExternalIndexCode())) { + item.setNo(item.getExternalIndexCode()); + } + }); + pointService.setDeviceTagByGB(carList); mongoTemplate.insertAll(carList); } @@ -281,6 +327,12 @@ Query query = new Query(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); DeleteResult result = mongoTemplate.remove(query, PicAccessResult.class); + faceList.stream().forEach(item -> { + if (Objects.nonNull(item.getExternalIndexCode())) { + item.setNo(item.getExternalIndexCode()); + } + }); + pointService.setDeviceTagByGB(faceList); //瀛樻斁鍦╩ongo涓� mongoTemplate.insertAll(faceList); } @@ -303,6 +355,12 @@ Query query = new Query(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); DeleteResult result = mongoTemplate.remove(query, VehicleDeviceSamplingResult.class); + faceList.stream().forEach(item -> { + if (Objects.nonNull(item.getExternalIndexCode())) { + item.setNo(item.getExternalIndexCode()); + } + }); + pointService.setDeviceTagByGB(faceList); //瀛樻斁鍦╩ongo涓� mongoTemplate.insertAll(faceList); } @@ -324,6 +382,12 @@ Query query = new Query(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); DeleteResult result = mongoTemplate.remove(query, FaceDeviceSamplingResult.class); + faceList.stream().forEach(item -> { + if (Objects.nonNull(item.getExternalIndexCode())) { + item.setNo(item.getExternalIndexCode()); + } + }); + pointService.setDeviceTagByGB(faceList); //瀛樻斁鍦╩ongo涓� mongoTemplate.insertAll(faceList); } diff --git a/ycl-server/src/main/java/com/ycl/task/UYTask.java b/ycl-server/src/main/java/com/ycl/task/UYTask.java index 0554404..e75cd04 100644 --- a/ycl-server/src/main/java/com/ycl/task/UYTask.java +++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java @@ -4,49 +4,37 @@ import com.mongodb.client.result.DeleteResult; import com.ycl.feign.UYClient; import com.ycl.platform.domain.param.UY.*; -import com.ycl.platform.domain.result.HK.FaceDeviceInspectionResult; -import com.ycl.platform.domain.result.UY.OneMachineFileResult; -import com.ycl.platform.domain.result.UY.OsdMonitorResult; import com.ycl.platform.domain.result.UY.RecordMetaDSumResult; import com.ycl.platform.domain.result.UY.*; -import com.ycl.platform.service.ITMonitorService; -import com.ycl.platform.service.IYwThresholdService; import com.ycl.platform.service.UYErrorTypeCheckService; +import com.ycl.platform.service.YwPointService; import com.ycl.utils.DateUtils; import constant.ApiConstants; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; -import org.springframework.format.annotation.DateTimeFormat; -import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; import java.text.SimpleDateFormat; -import java.time.LocalDate; -import java.time.LocalDateTime; import java.util.Calendar; import java.util.Date; import java.util.List; +import java.util.Objects; //浼樹簯瀵规帴鏁版嵁浠诲姟 @Slf4j @Component("UYTask") +@RequiredArgsConstructor public class UYTask { - @Autowired - private MongoTemplate mongoTemplate; - @Autowired - private UYClient uyClient; - @Autowired - private IYwThresholdService ywThresholdService; - @Autowired - private ITMonitorService monitorService; - @Autowired - private UYErrorTypeCheckService uyErrorTypeCheckService; + private final MongoTemplate mongoTemplate; + private final UYClient uyClient; + private final UYErrorTypeCheckService uyErrorTypeCheckService; + private final YwPointService pointService; @Value("${youYun.tenantId}") private String tenantId; @@ -79,6 +67,12 @@ Query query = new Query(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); DeleteResult result = mongoTemplate.remove(query, ImageDetectionResult.class); + records.stream().forEach(item -> { + if (Objects.nonNull(item.getDeviceId())) { + item.setNo(item.getDeviceId()); + } + }); + pointService.setDeviceTagByGB(records); //瀛樻斁鍦╩ongo涓� mongoTemplate.insertAll(records); // 宸ュ崟鐢熸垚 @@ -122,6 +116,13 @@ Query query = new Query(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); DeleteResult result = mongoTemplate.remove(query, MonitorQualifyResult.class); + records.stream().forEach(item -> { + if (Objects.nonNull(item.getSerialNumber())) { + item.setNo(item.getSerialNumber().getShowValue()); + } + }); + pointService.setDeviceTagByGB(records); + pointService.setNew(records); //瀛樻斁鍦╩ongo涓� mongoTemplate.insertAll(records); // 宸ュ崟鐢熸垚 @@ -207,6 +208,12 @@ Query query = new Query(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); DeleteResult result = mongoTemplate.remove(query, RecordMetaDSumResult.class); + records.stream().forEach(item -> { + if (Objects.nonNull(item.getDeviceId())) { + item.setNo(item.getDeviceId()); + } + }); + pointService.setDeviceTagByGB(records); //瀛樻斁鍦╩ongo涓� mongoTemplate.insertAll(records); // 宸ュ崟鐢熸垚 diff --git a/ycl-server/src/main/java/com/ycl/utils/MongoUtil.java b/ycl-server/src/main/java/com/ycl/utils/MongoUtil.java index 316516c..dfff3aa 100644 --- a/ycl-server/src/main/java/com/ycl/utils/MongoUtil.java +++ b/ycl-server/src/main/java/com/ycl/utils/MongoUtil.java @@ -28,12 +28,11 @@ * 鏋勯�犳暟鎹腑蹇冩悳绱㈢殑鏉′欢 * * @param params 鏁版嵁涓績璇锋眰鍙傛暟 - * @param gbFiled 鍥芥爣鐮佸瓧娈垫槸鍝竴涓� * @param timeFiled 鏃堕棿瀛楁鏄摢涓�涓� - * @param gbList 鍥芥爣鐮� + * @param dataAuth 鐐逛綅绫诲瀷锛歯ull 鎵�鏈� 1 閮ㄧ骇 2 鐪佸巺 3 閲嶇偣 4 閲嶇偣鎸囨尌 5 鏄惁鏂拌澶� * @param likeFileds 浣跨敤like鏌ヨ鐨勫瓧娈� */ - public static Query getQuery(DataCenterQuery params, String gbFiled, String timeFiled, List<String> likeFileds, List<String> gbList) { + public static Query getQuery(DataCenterQuery params, String timeFiled, List<String> likeFileds, Integer dataAuth) { // 鍏抽敭瀛� List<Criteria> likeList = null; if (StringUtils.hasText(params.getKeyword()) && !CollectionUtils.isEmpty(likeFileds)) { @@ -50,10 +49,28 @@ or.orOperator(likeList); } - Criteria in = null; + Criteria tag = null; // in - if (! CollectionUtils.isEmpty(gbList)) { - in = Criteria.where(gbFiled).in(gbList); + if (Objects.nonNull(dataAuth)) { + switch (dataAuth) { + case 1: + tag = Criteria.where("deptTag").is(Boolean.TRUE); + break; + case 2: + tag = Criteria.where("provinceTag").is(Boolean.TRUE); + break; + case 3: + tag = Criteria.where("importantTag").is(Boolean.TRUE); + break; + case 4: + tag = Criteria.where("importantCommandImageTag").is(Boolean.TRUE); + break; + case 5: + tag = Criteria.where("newDevice").is(Boolean.TRUE); + break; + default: + break; + } } // 鏃堕棿 @@ -63,8 +80,8 @@ Criteria and = new Criteria(); List<Criteria> qList = new ArrayList<>(3); qList.add(time); - if (Objects.nonNull(in)) { - qList.add(in); + if (Objects.nonNull(tag)) { + qList.add(tag); } if (Objects.nonNull(or)) { qList.add(or); diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml index 0242e06..7d526d8 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml @@ -573,4 +573,13 @@ <delete id="deleteAll"> delete from t_monitor </delete> + + <select id="getGBbyGB" resultType="string"> + SELECT + DISTINCT serial_number + FROM + t_monitor + WHERE + deleted = 0 AND serial_number in <foreach collection="gbList" open="(" separator="," close=")" item="no">#{no}</foreach> + </select> </mapper> diff --git a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml index a4e932f..e5dfe33 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml @@ -90,7 +90,7 @@ SELECT m.name as pointName, m.serial_number, - m.ip, + m.ip as pointIp, yu.unit_name, yp.start_time, yp.end_time, @@ -214,4 +214,15 @@ limit 1 </select> + <select id="getTagsByGB" resultType="com.ycl.platform.domain.vo.CheckTagVO"> + SELECT + serial_number as no, province_tag, important_tag, important_command_image_tag, dept_tag + FROM + t_yw_point + WHERE + deleted = 0 AND serial_number in <foreach collection="gbList" open="(" separator="," close=")" item="no">#{no}</foreach> + GROUP BY + serial_number, province_tag, important_tag, important_command_image_tag, dept_tag + </select> + </mapper> -- Gitblit v1.8.0