fuliqi
2024-10-15 35d325f87d78d942d78a538dd36d5317f0876313
ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
@@ -10,6 +10,7 @@
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;
@@ -66,11 +67,21 @@
     */
    @Override
    public Result videoPointOnlineRate(DataCenterQuery params) {
        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<TMonitorResult> resultList = mongoTemplate.find(query, TMonitorResult.class);
        resultList.forEach(item->{
            if(null != item.getPingOnline() && item.getPingOnline()){
                item.setPingOnlineStr("在线");
            }else {
                item.setPingOnlineStr("离线");
            }
        });
        params.setDeptTag(-1);
        params.setDeviceType(1);
        IPage<PointDetailVO> page = PageUtil.getPage(params, PointDetailVO.class);
        pointMapper.dataCenterPage(page, params);
        // 统计设备数量
        Integer distinctCount = pointMapper.distinctCount(params);
@@ -87,8 +98,8 @@
        }
        HashMap<String, Object> map = new HashMap<>();
        map.put("count", Arrays.asList(distinctCount + "",this.remove0(onlineRate)));
        map.put("list", page.getRecords());
        return Result.ok().data(map).total(page.getTotal());
        map.put("list", resultList);
        return Result.ok().data(map).total(total);
    }
    /**
@@ -99,12 +110,22 @@
     */
    @Override
    public Result deptVideoPointOnlineRate(DataCenterQuery params) {
        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<TMonitorResult> resultList = mongoTemplate.find(query, TMonitorResult.class);
        resultList.forEach(item->{
            if(null != item.getPingOnline() && item.getPingOnline()){
                item.setPingOnlineStr("在线");
            }else {
                item.setPingOnlineStr("离线");
            }
        });
        // 统计设备数量
        params.setDeptTag(1);
        params.setDeviceType(1);
        IPage<PointDetailVO> page = PageUtil.getPage(params, PointDetailVO.class);
        pointMapper.dataCenterPage(page, params);
        // 统计设备数量
        Integer distinctCount = pointMapper.distinctCount(params);
        Date now = new Date();
@@ -121,8 +142,8 @@
        }
        HashMap<String, Object> map = new HashMap<>();
        map.put("count", Arrays.asList(distinctCount + "", this.remove0(onlineRate)));
        map.put("list", page.getRecords());
        return Result.ok().data(map).total(page.getTotal());
        map.put("list",resultList);
        return Result.ok().data(map).total(total);
    }
    /**
@@ -133,14 +154,23 @@
     */
    @Override
    public Result videoImportantPointOnlineRate(DataCenterQuery params) {
        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<TMonitorResult> resultList = mongoTemplate.find(query, TMonitorResult.class);
        params.setDeptTag(3);
        params.setDeviceType(1);
        IPage<PointDetailVO> page = PageUtil.getPage(params, PointDetailVO.class);
        pointMapper.dataCenterPage(page, params);
        // 统计设备数量
        Integer distinctCount = pointMapper.distinctCount(params);
        resultList.forEach(item->{
            if(null != item.getPingOnline() && item.getPingOnline()){
                item.setPingOnlineStr("在线");
            }else {
                item.setPingOnlineStr("离线");
            }
        });
        Date now = new Date();
        List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper())
                .select(CheckIndexVideo::getKeySiteOnline)
@@ -155,8 +185,8 @@
        }
        HashMap<String, Object> map = new HashMap<>();
        map.put("count", Arrays.asList(distinctCount + "", this.remove0(onlineRate)));
        map.put("list", page.getRecords());
        return Result.ok().data(map).total(page.getTotal());
        map.put("list", resultList);
        return Result.ok().data(map).total(total);
    }
    /**
@@ -167,14 +197,24 @@
     */
    @Override
    public Result videoImportantPointImageOnlineRate(DataCenterQuery params) {
        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<TMonitorResult> resultList = mongoTemplate.find(query, TMonitorResult.class);
        params.setDeptTag(4);
        params.setDeviceType(1);
        IPage<PointDetailVO> page = PageUtil.getPage(params, PointDetailVO.class);
        pointMapper.dataCenterPage(page, params);
        // 统计设备数量
        Integer distinctCount = pointMapper.distinctCount(params);
        resultList.forEach(item->{
            if(null != item.getPingOnline() && item.getPingOnline()){
                item.setPingOnlineStr("在线");
            }else {
                item.setPingOnlineStr("离线");
            }
        });
        Date now = new Date();
        List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper())
                .select(CheckIndexVideo::getKeyCommandImageOnline)
@@ -189,8 +229,8 @@
        }
        HashMap<String, Object> map = new HashMap<>();
        map.put("count", Arrays.asList(distinctCount + "", this.remove0(onlineRate)));
        map.put("list", page.getRecords());
        return Result.ok().data(map).total(page.getTotal());
        map.put("list", resultList);
        return Result.ok().data(map).total(total);
    }
    /**
@@ -214,24 +254,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);
@@ -296,24 +328,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);
@@ -365,7 +389,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);
@@ -379,24 +402,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);
@@ -450,9 +465,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(
@@ -513,9 +526,7 @@
            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)));
            }
            setTag(params,dList);
            Document filter = new Document("$and", dList);
            // 构建聚合管道
            List<Document> pipeline = Arrays.asList(
@@ -576,11 +587,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)));
            }else if(params.getDataType().equals(2)){
                dList.add(new Document("deptTag", new Document("$eq", Boolean.TRUE)));
            }
            setTag(params,dList);
            Document filter = new Document("$and", dList);
            // 构建聚合管道
            List<Document> pipeline = Arrays.asList(
@@ -665,27 +672,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);
@@ -777,15 +776,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);
@@ -849,27 +844,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);
@@ -920,19 +907,29 @@
     */
    @Override
    public Result vehiclePointOnlineRate(DataCenterQuery params) {
        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);
        //系统ping的结果
        List<TMonitorResult> resultList = mongoTemplate.find(query, TMonitorResult.class);
        //TODO:优云在线结果
        params.setDeptTag(-1);
        params.setDeviceType(2);
        IPage<PointDetailVO> page = PageUtil.getPage(params, PointDetailVO.class);
        pointMapper.dataCenterPage(page, params);
        // 统计设备数量
        Integer distinctCount = pointMapper.distinctCount(params);
        Date now = new Date();
        resultList.forEach(item->{
            if(null != item.getPingOnline() && item.getPingOnline()){
                item.setPingOnlineStr("在线");
            }else {
                item.setPingOnlineStr("离线");
            }
        });
        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)) {
@@ -942,8 +939,8 @@
        }
        HashMap<String, Object> map = new HashMap<>();
        map.put("count", Arrays.asList(distinctCount + "", this.remove0(onlineRate)));
        map.put("list", page.getRecords());
        return Result.ok().data(map).total(page.getTotal());
        map.put("list", resultList);
        return Result.ok().data(map).total(total);
    }
    /**
@@ -967,24 +964,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);
@@ -1048,24 +1037,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);
@@ -1202,19 +1183,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);
@@ -1380,24 +1355,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);
@@ -1448,11 +1415,21 @@
     */
    @Override
    public Result facePointOnlineRate(DataCenterQuery params) {
        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<TMonitorResult> resultList = mongoTemplate.find(query, TMonitorResult.class);
        resultList.forEach(item->{
            if(null != item.getPingOnline() && item.getPingOnline()){
                item.setOnlineStr("在线");
            }else {
                item.setOnlineStr("离线");
            }
        });
        params.setDeptTag(-1);
        params.setDeviceType(3);
        IPage<PointDetailVO> page = PageUtil.getPage(params, PointDetailVO.class);
        pointMapper.dataCenterPage(page, params);
        // 统计设备数量
        Integer distinctCount = pointMapper.distinctCount(params);
@@ -1473,8 +1450,8 @@
        rList.add(this.remove0(onlineRate));
        HashMap<String, Object> map = new HashMap<>();
        map.put("count", rList);
        map.put("list", page.getRecords());
        return Result.ok().data(map).total(page.getTotal());
        map.put("list", resultList);
        return Result.ok().data(map).total(total);
    }
    /**
@@ -1498,24 +1475,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);
@@ -1579,24 +1548,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);
@@ -1660,24 +1621,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);
@@ -1742,19 +1695,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);
@@ -1818,19 +1765,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);
@@ -1935,4 +1876,17 @@
        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)));
        }
    }
}