package com.ycl.platform.service.impl; import com.ycl.platform.domain.query.DataCenterQuery; import com.ycl.platform.domain.result.HK.*; import com.ycl.platform.domain.result.UY.OneMachineFileResult; import com.ycl.platform.domain.result.UY.RecordMetaDSumResult; import com.ycl.platform.service.DataCenterService; import com.ycl.utils.MongoUtil; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Sort; 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.data.mongodb.core.query.TextCriteria; import org.springframework.stereotype.Service; import java.util.List; import java.util.Objects; /** * 数据中心接口 * * @author:xp * @date:2024/8/2 11:07 */ @Service @RequiredArgsConstructor public class DataCenterServiceImpl implements DataCenterService { private final MongoTemplate mongoTemplate; private final static String TIME_FIELD = "mongoCreateTime"; /** * 视频:点位在线率 * * @param params * @return */ @Override public List videoPointOnlineRate(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 视频:一机一档注册率 * * @param params * @return */ @Override public List videoOneMachineDocumentRegister(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 视频:一机一档合格率 * * @param params * @return */ @Override public List videoOneMachineDocumentQualified(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 视频:档案考核比 * * @param params * @return */ @Override public List videoAssessmentFileRatio(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 视频:录像可用率 * * @param params * @return */ @Override public List videoAvailabilityRate(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, RecordMetaDSumResult.class); return resultList; } /** * 视频:重点点位录像可用率 * * @param params * @return */ @Override public List videoImportantPointAvailabilityRate(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, RecordMetaDSumResult.class); return resultList; } /** * 视频:标注正确率 * * @param params * @return */ // TODO 返回数据对象更换 @Override public List videoLabelingAccuracy(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 视频:重点点位标注正确率 * * @param params * @return */ // TODO 返回数据对象更换 @Override public List videoImportantPointLabelingAccuracy(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 视频:校时正确率 * * @param params * @return */ // TODO 返回数据对象更换 @Override public List videoCheckTimeAccuracy(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 视频:重点点位校时正确率 * * @param params * @return */ // TODO 返回数据对象更换 @Override public List videoImportantPointCheckTimeAccuracy(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 视频:重点点位在线率 * * @param params * @return */ // TODO 返回数据对象更换 @Override public List videoImportantPointOnlineRate(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 视频:重点指挥图像在线率 * * @param params * @return */ // TODO 返回数据对象更换 @Override public List videoImportantPointImageOnlineRate(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 车辆:视图库对接稳定性 * * @param params * @return */ @Override public List vehicleViewDockStable(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, SnapshotDataMonitorResult.class); return resultList; } /** * 车辆:点位在线率 * * @param params * @return */ @Override public List vehiclePointOnlineRate(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, SnapshotDataMonitorResult.class); return resultList; } /** * 车辆:互联网卡口设备目录一致性 * * @param params * @return */ @Override public List vehicleNetDeviceDirectoryConsistency(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 车辆:车辆卡口信息采集准确率 * * @param params * @return */ @Override public List vehicleCollectionConsistency(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, CrossDetailResult.class); return resultList; } /** * 车辆:车辆卡口设备抓拍数据完整性 * * @param params * @return */ @Override public List vehicleCollectionDataIntegrity(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, DataIntegrityMonitoringResult.class); return resultList; } /** * 车辆:车辆卡口设备抓拍数据准确性 * * @param params * @return */ @Override public List vehicleCollectionDataCaptured(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, AttrRecognitionMonitorResult.class); return resultList; } /** * 车辆:车辆卡口设备时钟准确性 * * @param params * @return */ @Override public List vehicleClockAccuracy(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, VehicleDeviceInspectionResult.class); return resultList; } /** * 车辆:车辆卡口设备抓拍数据上传及时性 * * @param params * @return */ @Override public List vehicleTimelyUploadAccuracy(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, SnapshotDelayMonitorResult.class); return resultList; } /** * 车辆:车辆卡口设备url可用性 * * @param params * @return */ @Override public List vehicleUrlAccuracy(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, PicAccessResult.class); return resultList; } /** * 车辆:车辆卡口设备抓拍数据大图可用性 * * @param params * @return */ @Override public List vehicleBigImgAccuracy(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, VehicleDeviceSamplingResult.class); return resultList; } /** * 人脸:视图库对接稳定性 * * @param params * @return */ @Override public List faceViewDockStable(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, SnapshotDataMonitorResult.class); return resultList; } /** * 人脸:点位在线率 * * @param params * @return */ // TODO 更换响应结果 @Override public List facePointOnlineRate(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 人脸:目录一致率 * * @param params * @return */ @Override public List faceDirectoryConsistency(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 人脸:人脸卡口信息采集准确率 * * @param params * @return */ @Override public List faceCollectionConsistency(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, CrossDetailResult.class); return resultList; } /** * 人脸:设备抓拍图片合格性 * * @param params * @return */ @Override public List faceImgQualification(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, MonitoringDetailResult.class); return resultList; } /** * 人脸:设备抓拍图片时钟准确性 * * @param params * @return */ @Override public List faceCapturesImagesAccuracy(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, FaceDeviceInspectionResult.class); return resultList; } /** * 人脸:抓拍人脸数据上传及时性 * * @param params * @return */ @Override public List faceTimelyUpload(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, FaceDeviceInspectionResult.class); return resultList; } /** * 人脸:人脸卡口设备抓拍数据大图可用性 * * @param params * @return */ @Override public List faceAvailabilityOfLargeImg(DataCenterQuery params) { Query query = new Query(); // 全文索引查询 MongoUtil.fullText(query, params.getKeyword()); Criteria criteria = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteria.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } query.addCriteria(criteria); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List resultList = mongoTemplate.find(query, FaceDeviceSamplingResult.class); return resultList; } }