fuliqi
2024-10-31 913d47be5fa05c33a958a00b9a85126d817e3f06
ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
@@ -456,9 +456,10 @@
                List<TMonitorResult> onlines = onlineList.stream().filter(tMonitorResult -> tMonitorResult.getMongoCreateTime().minusDays(1).equals(parseTime)).collect(Collectors.toList());
                if (!CollectionUtils.isEmpty(onlines)) {
                    videoExp.setTotal(onlines.size());
                    videoExp.setOnline(Integer.valueOf(onlines.stream()
                            .filter(TMonitorResult::getPingOnline)
                            .count() + ""));
                    long count = onlines.stream()
                            .filter(item -> ApiConstants.UY_OnlineSite_Online.equals(item.getOnline()))
                            .count();
                    videoExp.setOnline(Integer.valueOf(count+""));
                    videoExp.setOffline(videoExp.getTotal() - videoExp.getOnline());
                }
                //设置存储情况
@@ -809,7 +810,7 @@
                new Document("$group", new Document("_id", "$mongoCreateTime")
                        .append("onlineCount", new Document("$sum",
                                new Document("$cond", Arrays.asList(
                                        new Document("$eq", Arrays.asList("$online", Boolean.TRUE)),
                                        new Document("$eq", Arrays.asList("$online",ApiConstants.UY_OnlineSite_Online)),
                                        1,
                                        0
                                ))
@@ -879,8 +880,6 @@
        matchConditions.add(new Document("dataType", new Document("$eq", ApiConstants.HK_DataType_CAR)));
        if (examineTag != null && examineTag.equals(1)) {
            matchConditions.add(new Document("provinceTag", true));
        } else if (examineTag != null && examineTag.equals(2)) {
            matchConditions.add(new Document("deptTag", true));
        }
        // 构建聚合管道
        List<Document> pipeline = Arrays.asList(
@@ -889,7 +888,6 @@
                        .append("dataCount", new Document("$sum", "$dataCount"))
                )
        );
        // 执行聚合查询并获取结果
        AggregateIterable<Document> result = collection.aggregate(pipeline);
        for (Document doc : result) {
@@ -899,7 +897,7 @@
            results.add(homecarVO);
        }
        //mongo查点位在线
        //TODO:在线修改,需要把检测海康优云检测的结果存入mongo,mongo查点位在线
        MongoCollection<Document> onlineCollection = database.getCollection("t_monitor_online");
        // 构建基本的$match条件
        List<Document> onlineMatch = new ArrayList<>();
@@ -907,8 +905,6 @@
        onlineMatch.add(new Document("monitorType", new Document("$regex", "2")));
        if (examineTag != null && examineTag.equals(1)) {
            onlineMatch.add(new Document("provinceTag", true));
        } else if (examineTag != null && examineTag.equals(2)) {
            onlineMatch.add(new Document("deptTag", true));
        }
        // 构建聚合管道
        List<Document> onlinePipeline = Arrays.asList(
@@ -916,7 +912,7 @@
                new Document("$group", new Document("_id", "$mongoCreateTime")
                        .append("onlineCount", new Document("$sum",
                                new Document("$cond", Arrays.asList(
                                        new Document("$eq", Arrays.asList("$online", Boolean.TRUE)),
                                        new Document("$eq", Arrays.asList("$online",ApiConstants.UY_OnlineSite_Online)),
                                        1,
                                        0
                                ))
@@ -994,8 +990,6 @@
        matchConditions.add(new Document("dataType", new Document("$eq", ApiConstants.HK_DataType_FACE)));
        if (examineTag != null && examineTag.equals(1)) {
            matchConditions.add(new Document("provinceTag", true));
        } else if (examineTag != null && examineTag.equals(2)) {
            matchConditions.add(new Document("deptTag", true));
        }
        // 构建聚合管道
        List<Document> pipeline = Arrays.asList(
@@ -1022,8 +1016,6 @@
        onlineMatch.add(new Document("monitorType", new Document("$regex", "3")));
        if (examineTag != null && examineTag.equals(1)) {
            onlineMatch.add(new Document("provinceTag", true));
        } else if (examineTag != null && examineTag.equals(2)) {
            onlineMatch.add(new Document("deptTag", true));
        }
        // 构建聚合管道
        List<Document> onlinePipeline = Arrays.asList(
@@ -1031,7 +1023,7 @@
                new Document("$group", new Document("_id", "$mongoCreateTime")
                        .append("onlineCount", new Document("$sum",
                                new Document("$cond", Arrays.asList(
                                        new Document("$eq", Arrays.asList("$online", Boolean.TRUE)),
                                        new Document("$eq", Arrays.asList("$online", ApiConstants.UY_OnlineSite_Online)),
                                        1,
                                        0
                                ))
@@ -1108,7 +1100,13 @@
        for (TMonitorResult monitorResult : onlineResult) {
            int dayOfMonth = monitorResult.getMongoCreateTime().getDayOfMonth();
            String online = "";
            online += monitorResult.getPingOnline() ? "在线" : "离线";
            if(ApiConstants.UY_OnlineSite_Online.equals(monitorResult.getOnline())){
                online +="在线";
            }else if(ApiConstants.UY_OnlineSite_Offline.equals(monitorResult.getOnline())){
                online +="离线";
            }else {
                online +="未知";
            }
            //反射赋值,字段统一定义为day+1,2,3...
            Field field = videoDailyExp.getClass().getDeclaredField("day" + dayOfMonth);
            field.setAccessible(true);