ycl-pojo/src/main/java/com/ycl/platform/base/AbsQuery.java
@@ -18,4 +18,12 @@ @ApiModelProperty(value = "每页条数", required = true) private Long pageSize = 10L; /** * 获取mongo分页skip跳过的条数 * * @return */ public Long getSkipNum() { return (pageNum - 1) * pageSize; } } ycl-pojo/src/main/java/com/ycl/platform/domain/query/HomeQuery.java
New file @@ -0,0 +1,31 @@ package com.ycl.platform.domain.query; import lombok.Data; import java.util.Date; import java.util.List; /** * @author gonghl * @since 2024/8/1 下午 6:08 */ @Data public class HomeQuery { /** * 单位id */ private Integer unitId; /** * 日期范围 */ private List<Date> dateRange; /** * 日期类型 */ private String dateType; } ycl-server/src/main/java/com/ycl/platform/controller/DataCenterController.java
@@ -1,7 +1,17 @@ package com.ycl.platform.controller; 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.system.Result; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * 数据中心接口 @@ -9,10 +19,352 @@ * @author:xp * @date:2024/8/1 16:40 */ @RequiredArgsConstructor @RestController @RequestMapping("/data/center") public class DataCenterController { private final DataCenterService dataCenterService; /** * 视频:点位在线率 * * @param query * @return */ @GetMapping("/videoPointOnlineRate") public Result videoPointOnlineRate(DataCenterQuery query) { return Result.ok().data(dataCenterService.videoPointOnlineRate(query)); } /** * 视频:一机一档注册率 * * @param query * @return */ @GetMapping("/videoOneMachineDocumentRegister") public Result videoOneMachineDocumentRegister(DataCenterQuery query) { return Result.ok().data(dataCenterService.videoOneMachineDocumentRegister(query)); } /** * 视频:一机一档合格率 * * @param query * @return */ @GetMapping("/videoOneMachineDocumentQualified") public Result videoOneMachineDocumentQualified(DataCenterQuery query) { return Result.ok().data(dataCenterService.videoOneMachineDocumentQualified(query)); } /** * 视频:档案考核比 * * @param query * @return */ @GetMapping("/videoAssessmentFileRatio") public Result videoAssessmentFileRatio(DataCenterQuery query) { return Result.ok().data(dataCenterService.videoAssessmentFileRatio(query)); } /** * 视频:录像可用率 * * @param query * @return */ @GetMapping("/videoAvailabilityRate") public Result videoAvailabilityRate(DataCenterQuery query) { return Result.ok().data(dataCenterService.videoAvailabilityRate(query)); } /** * 视频:重点点位录像可用率 * * @param query * @return */ @GetMapping("/videoImportantPointAvailabilityRate") public Result videoImportantPointAvailabilityRate(DataCenterQuery query) { return Result.ok().data(dataCenterService.videoImportantPointAvailabilityRate(query)); } /** * 视频:标注正确率 * * @param query * @return */ @GetMapping("/videoLabelingAccuracy") public Result videoLabelingAccuracy(DataCenterQuery query) { return Result.ok().data(dataCenterService.videoLabelingAccuracy(query)); } /** * 视频:重点点位标注正确率 * * @param query * @return */ @GetMapping("/videoImportantPointLabelingAccuracy") public Result videoImportantPointLabelingAccuracy(DataCenterQuery query) { return Result.ok().data(dataCenterService.videoImportantPointLabelingAccuracy(query)); } /** * 视频:校时正确率 * * @param query * @return */ @GetMapping("/videoCheckTimeAccuracy") public Result videoCheckTimeAccuracy(DataCenterQuery query) { return Result.ok().data(dataCenterService.videoCheckTimeAccuracy(query)); } /** * 视频:重点点位校时正确率 * * @param query * @return */ @GetMapping("/videoImportantPointCheckTimeAccuracy") public Result videoImportantPointCheckTimeAccuracy(DataCenterQuery query) { return Result.ok().data(dataCenterService.videoImportantPointCheckTimeAccuracy(query)); } /** * 视频:重点点位在线率 * * @param query * @return */ @GetMapping("/videoImportantPointOnlineRate") public Result videoImportantPointOnlineRate(DataCenterQuery query) { return Result.ok().data(dataCenterService.videoImportantPointOnlineRate(query)); } /** * 视频:重点指挥图像在线率 * * @param query * @return */ @GetMapping("/videoImportantPointImageOnlineRate") public Result videoImportantPointImageOnlineRate(DataCenterQuery query) { return Result.ok().data(dataCenterService.videoImportantPointImageOnlineRate(query)); } /** * 车辆:视图库对接稳定性 * * @param query * @return */ @GetMapping("/vehicleViewDockStable") public Result vehicleViewDockStable(DataCenterQuery query) { return Result.ok().data(dataCenterService.vehicleViewDockStable(query)); } /** * 车辆:点位在线率 * * @param query * @return */ @GetMapping("/vehiclePointOnlineRate") public Result vehiclePointOnlineRate(DataCenterQuery query) { return Result.ok().data(dataCenterService.vehiclePointOnlineRate(query)); } /** * 车辆:互联网卡口设备目录一致性 * * @param query * @return */ @GetMapping("/vehicleNetDeviceDirectoryConsistency") public Result vehicleNetDeviceDirectoryConsistency(DataCenterQuery query) { return Result.ok().data(dataCenterService.vehicleNetDeviceDirectoryConsistency(query)); } /** * 车辆:车辆卡口信息采集准确率 * * @param query * @return */ @GetMapping("/vehicleCollectionConsistency") public Result vehicleCollectionConsistency(DataCenterQuery query) { return Result.ok().data(dataCenterService.vehicleCollectionConsistency(query)); } /** * 车辆:车辆卡口设备抓拍数据完整性 * * @param query * @return */ @GetMapping("/vehicleCollectionDataIntegrity") public Result vehicleCollectionDataIntegrity(DataCenterQuery query) { return Result.ok().data(dataCenterService.vehicleCollectionDataIntegrity(query)); } /** * 车辆:车辆卡口设备抓拍数据准确性 * * @param query * @return */ @GetMapping("/vehicleCollectionDataCaptured") public Result vehicleCollectionDataCaptured(DataCenterQuery query) { return Result.ok().data(dataCenterService.vehicleCollectionDataCaptured(query)); } /** * 车辆:车辆卡口设备时钟准确性 * * @param query * @return */ @GetMapping("/vehicleClockAccuracy") public Result vehicleClockAccuracy(DataCenterQuery query) { return Result.ok().data(dataCenterService.vehicleClockAccuracy(query)); } /** * 车辆:车辆卡口设备抓拍数据上传及时性 * * @param query * @return */ @GetMapping("/vehicleTimelyUploadAccuracy") public Result vehicleTimelyUploadAccuracy(DataCenterQuery query) { return Result.ok().data(dataCenterService.vehicleTimelyUploadAccuracy(query)); } /** * 车辆:车辆卡口设备url可用性 * * @param query * @return */ @GetMapping("/vehicleUrlAccuracy") public Result vehicleUrlAccuracy(DataCenterQuery query) { return Result.ok().data(dataCenterService.vehicleUrlAccuracy(query)); } /** * 车辆:车辆卡口设备抓拍数据大图可用性 * * @param query * @return */ @GetMapping("/vehicleBigImgAccuracy") public Result vehicleBigImgAccuracy(DataCenterQuery query) { return Result.ok().data(dataCenterService.vehicleBigImgAccuracy(query)); } /** * 人脸:视图库对接稳定性 * * @param query * @return */ @GetMapping("/faceViewDockStable") public Result faceViewDockStable(DataCenterQuery query) { return Result.ok().data(dataCenterService.faceViewDockStable(query)); } /** * 人脸:点位在线率 * * @param query * @return */ @GetMapping("/facePointOnlineRate") public Result facePointOnlineRate(DataCenterQuery query) { return Result.ok().data(dataCenterService.facePointOnlineRate(query)); } /** * 人脸:目录一致率 * * @param query * @return */ @GetMapping("/faceDirectoryConsistency") public Result faceDirectoryConsistency(DataCenterQuery query) { return Result.ok().data(dataCenterService.faceDirectoryConsistency(query)); } /** * 人脸:人脸卡口信息采集准确率 * * @param query * @return */ @GetMapping("/faceCollectionConsistency") public Result faceCollectionConsistency(DataCenterQuery query) { return Result.ok().data(dataCenterService.faceCollectionConsistency(query)); } /** * 人脸:设备抓拍图片合格性 * * @param query * @return */ @GetMapping("/faceImgQualification") public Result faceImgQualification(DataCenterQuery query) { return Result.ok().data(dataCenterService.faceImgQualification(query)); } /** * 人脸:设备抓拍图片时钟准确性 * * @param query * @return */ @GetMapping("/faceCapturesImagesAccuracy") public Result faceCapturesImagesAccuracy(DataCenterQuery query) { return Result.ok().data(dataCenterService.faceCapturesImagesAccuracy(query)); } /** * 人脸:抓拍人脸数据上传及时性 * * @param query * @return */ @GetMapping("/faceTimelyUpload") public Result faceTimelyUpload(DataCenterQuery query) { return Result.ok().data(dataCenterService.faceTimelyUpload(query)); } /** * 人脸:人脸卡口设备抓拍数据大图可用性 * * @param query * @return */ @GetMapping("/faceAvailabilityOfLargeImg") public Result faceAvailabilityOfLargeImg(DataCenterQuery query) { return Result.ok().data(dataCenterService.faceAvailabilityOfLargeImg(query)); } } ycl-server/src/main/java/com/ycl/platform/controller/HomeController.java
New file @@ -0,0 +1,42 @@ package com.ycl.platform.controller; import com.ycl.platform.domain.query.HomeQuery; import com.ycl.platform.service.ITMonitorService; import com.ycl.platform.service.WorkOrderService; import com.ycl.platform.service.YwUnitService; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import pojo.AjaxResult; /** * @author gonghl * @since 2024/8/1 下午 5:41 */ @RestController @RequiredArgsConstructor @RequestMapping("/home") public class HomeController { private final YwUnitService ywUnitService; private final ITMonitorService tMonitorService; private final WorkOrderService workOrderService; @GetMapping("/ywUnitList") public AjaxResult ywUnitList() { return AjaxResult.success(ywUnitService.all()); } @GetMapping("/monitor") public AjaxResult monitor(HomeQuery monitorQuery) { return AjaxResult.success(tMonitorService.home(monitorQuery)); } @GetMapping("/workOrder") public AjaxResult workOrder(HomeQuery monitorQuery) { return AjaxResult.success(workOrderService.home(monitorQuery)); } } ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.platform.domain.entity.TMonitor; import com.ycl.platform.domain.query.HomeQuery; import com.ycl.platform.domain.vo.TMonitorVO; import java.util.List; @@ -70,6 +71,11 @@ */ Map<String, String> getVideoCount(TMonitor tMonitor); /** * 获取恢复异常设备 * @param time 时间 * @return 数据 */ Map<String, String> recoveryException(String time); /** @@ -77,4 +83,11 @@ * @return 设备 */ List<TMonitorVO> selectRecoveryMonitor(String time); /** * 首页折线图 * @param monitorQuery 查询条件 * @return 数据 */ List<Map<String, Object>> home(HomeQuery monitorQuery); } ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java
@@ -1,20 +1,20 @@ package com.ycl.platform.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ycl.platform.domain.entity.WorkOrder; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.platform.domain.query.DistributeWorkOrderQuery; import com.ycl.platform.domain.query.HomeQuery; import com.ycl.platform.domain.query.ScreenQuery; import com.ycl.platform.domain.query.WorkOrderQuery; import com.ycl.platform.domain.vo.WorkOrderVO; import com.ycl.platform.domain.form.WorkOrderForm; import java.util.List; import com.ycl.platform.domain.vo.WorkOrderYwConditionRecordVO; import com.ycl.platform.domain.vo.YwPointJobVO; import com.ycl.platform.domain.vo.screen.ScreenWorkOrderVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; /** * 工单 Mapper 接口 @@ -43,4 +43,11 @@ * @return */ ScreenWorkOrderVO screenWorkOrder(@Param("query") ScreenQuery query); /** * 首页统计数据 * @param monitorQuery 查询条件 * @return 数据 */ List<Map<String, Object>> home(HomeQuery monitorQuery); } ycl-server/src/main/java/com/ycl/platform/service/DataCenterService.java
@@ -2,8 +2,8 @@ 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.domain.vo.TMonitorVO; import java.util.List; @@ -22,7 +22,7 @@ * @return */ // TODO 返回数据对象更换 List<TMonitorVO> videoPointOnlineRate(DataCenterQuery query); List<OneMachineFileResult> videoPointOnlineRate(DataCenterQuery query); /** * 视频:一机一档注册率 @@ -30,7 +30,7 @@ * @param query * @return */ List<TMonitorVO> videoOneMachineDocumentRegister(DataCenterQuery query); List<OneMachineFileResult> videoOneMachineDocumentRegister(DataCenterQuery query); /** * 视频:一机一档合格率 @@ -38,7 +38,7 @@ * @param query * @return */ List<TMonitorVO> videoOneMachineDocumentQualified(DataCenterQuery query); List<OneMachineFileResult> videoOneMachineDocumentQualified(DataCenterQuery query); /** * 视频:档案考核比 @@ -46,7 +46,7 @@ * @param query * @return */ List<TMonitorVO> videoAssessmentFileRatio(DataCenterQuery query); List<OneMachineFileResult> videoAssessmentFileRatio(DataCenterQuery query); /** * 视频:录像可用率 @@ -71,7 +71,7 @@ * @return */ // TODO 返回数据对象更换 List<TMonitorVO> videoLabelingAccuracy(DataCenterQuery query); List<OneMachineFileResult> videoLabelingAccuracy(DataCenterQuery query); /** * 视频:重点点位标注正确率 @@ -80,7 +80,7 @@ * @return */ // TODO 返回数据对象更换 List<TMonitorVO> videoImportantPointLabelingAccuracy(DataCenterQuery query); List<OneMachineFileResult> videoImportantPointLabelingAccuracy(DataCenterQuery query); /** * 视频:校时正确率 @@ -89,7 +89,7 @@ * @return */ // TODO 返回数据对象更换 List<TMonitorVO> videoCheckTimeAccuracy(DataCenterQuery query); List<OneMachineFileResult> videoCheckTimeAccuracy(DataCenterQuery query); /** * 视频:重点点位校时正确率 @@ -98,7 +98,7 @@ * @return */ // TODO 返回数据对象更换 List<TMonitorVO> videoImportantPointCheckTimeAccuracy(DataCenterQuery query); List<OneMachineFileResult> videoImportantPointCheckTimeAccuracy(DataCenterQuery query); /** * 视频:重点点位在线率 @@ -107,7 +107,7 @@ * @return */ // TODO 返回数据对象更换 List<TMonitorVO> videoImportantPointOnlineRate(DataCenterQuery query); List<OneMachineFileResult> videoImportantPointOnlineRate(DataCenterQuery query); /** * 视频:重点指挥图像在线率 @@ -116,7 +116,7 @@ * @return */ // TODO 返回数据对象更换 List<TMonitorVO> videoImportantPointImageOnlineRate(DataCenterQuery query); List<OneMachineFileResult> videoImportantPointImageOnlineRate(DataCenterQuery query); @@ -144,7 +144,7 @@ * @param query * @return */ List<TMonitorVO> vehicleNetDeviceDirectoryConsistency(DataCenterQuery query); List<OneMachineFileResult> vehicleNetDeviceDirectoryConsistency(DataCenterQuery query); /** * 车辆:车辆卡口信息采集准确率 @@ -225,7 +225,7 @@ * @return */ // TODO 更换响应结果 List<TMonitorVO> facePointOnlineRate(DataCenterQuery query); List<OneMachineFileResult> facePointOnlineRate(DataCenterQuery query); /** * 人脸:目录一致率 @@ -233,7 +233,7 @@ * @param query * @return */ List<TMonitorVO> faceDirectoryConsistency(DataCenterQuery query); List<OneMachineFileResult> faceDirectoryConsistency(DataCenterQuery query); /** * 人脸:人脸卡口信息采集准确率 ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.platform.domain.entity.TMonitor; import com.ycl.platform.domain.query.HomeQuery; import com.ycl.platform.domain.vo.TMonitorVO; import java.util.List; @@ -71,5 +72,16 @@ */ Map<String, String> getVideoCount(TMonitor tMonitor); /** * 获取异常恢复视频设备统计数 * @return 数据 */ Map<String, String> recoveryException(); /** * 获取首页设备折线图 * @param monitorQuery 查询条件 * @return 数据 */ Map<String, Object> home(HomeQuery monitorQuery); } ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
@@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.platform.domain.form.*; import com.ycl.platform.domain.query.DistributeWorkOrderQuery; import com.ycl.platform.domain.query.HomeQuery; import com.ycl.platform.domain.query.ScreenQuery; import com.ycl.platform.domain.vo.DistributeWorkOrderVO; import com.ycl.system.Result; import com.ycl.platform.domain.query.WorkOrderQuery; import java.util.List; import java.util.Map; /** * 工单 服务类 @@ -131,7 +133,7 @@ /** * 批量下发 * @param ids id * @param query 条件 * @return 结果 */ Result selectedIdsDistribute(DistributeWorkOrderQuery query); @@ -142,4 +144,11 @@ * @return */ Result screenWorkOrder(ScreenQuery query); /** * 首页折线图 * @param monitorQuery 查询条件 * @return 数据 */ Map<String, Object> home(HomeQuery monitorQuery); } ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java
@@ -1,6 +1,7 @@ package com.ycl.platform.service.impl; import annotation.DataScope; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.platform.domain.dto.CheckScoreDTO; import com.ycl.platform.domain.dto.CheckScoreIndexDTO; @@ -133,8 +134,26 @@ // 获取数据日期时间 Calendar calendar = Calendar.getInstance(); getCheckScore(checkScore, calendar); // 一号查询之前的数据 if (LocalDateTime.now().getDayOfMonth() == 1) { calendar.add(Calendar.DAY_OF_MONTH, -1); } List<CheckScore> checkScores = scoreMapper.selectCheckScoreMap(checkScore); // 如果数据为空,则查询之前的数据 if (checkScores.isEmpty()) { CheckScore one = new LambdaQueryChainWrapper<>(baseMapper).select(CheckScore::getCreateTime).last("order by create_time desc limit 1").one(); if (Objects.nonNull(one)) { calendar.setTime(one.getCreateTime()); getCheckScore(checkScore, calendar); checkScores = scoreMapper.selectCheckScoreMap(checkScore); } } return checkScores.stream().collect(Collectors.groupingBy(CheckScore::getDeptId)); } private void getCheckScore(CheckScore checkScore, Calendar calendar) { // 0 省厅月度 1 市局月度 2 省厅季度 3 市局季度 switch (checkScore.getExamineTag()) { case 0, 1: @@ -148,7 +167,6 @@ checkScore.setExamineTag(checkScore.getExamineTag() == 2 ? 0 : 1); break; } return scoreMapper.selectCheckScoreMap(checkScore).stream().collect(Collectors.groupingBy(CheckScore::getDeptId)); } /** ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
@@ -2,16 +2,20 @@ 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.domain.vo.TMonitorVO; 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; /** * 数据中心接口 @@ -25,143 +29,300 @@ private final MongoTemplate mongoTemplate; private final static String TIME_FIELD = "mongoCreateTime"; /** * 视频:点位在线率 * * @param query * @param params * @return */ @Override public List<TMonitorVO> videoPointOnlineRate(DataCenterQuery query) { return null; public List<OneMachineFileResult> 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<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 视频:一机一档注册率 * * @param query * @param params * @return */ @Override public List<TMonitorVO> videoOneMachineDocumentRegister(DataCenterQuery query) { return null; public List<OneMachineFileResult> 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<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 视频:一机一档合格率 * * @param query * @param params * @return */ @Override public List<TMonitorVO> videoOneMachineDocumentQualified(DataCenterQuery query) { return null; public List<OneMachineFileResult> 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<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 视频:档案考核比 * * @param query * @param params * @return */ @Override public List<TMonitorVO> videoAssessmentFileRatio(DataCenterQuery query) { return null; public List<OneMachineFileResult> 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<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 视频:录像可用率 * * @param query * @param params * @return */ @Override public List<RecordMetaDSumResult> videoAvailabilityRate(DataCenterQuery query) { return null; public List<RecordMetaDSumResult> 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<RecordMetaDSumResult> resultList = mongoTemplate.find(query, RecordMetaDSumResult.class); return resultList; } /** * 视频:重点点位录像可用率 * * @param query * @param params * @return */ @Override public List<RecordMetaDSumResult> videoImportantPointAvailabilityRate(DataCenterQuery query) { return null; public List<RecordMetaDSumResult> 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<RecordMetaDSumResult> resultList = mongoTemplate.find(query, RecordMetaDSumResult.class); return resultList; } /** * 视频:标注正确率 * * @param query * @param params * @return */ // TODO 返回数据对象更换 @Override public List<TMonitorVO> videoLabelingAccuracy(DataCenterQuery query) { return null; public List<OneMachineFileResult> 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<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 视频:重点点位标注正确率 * * @param query * @param params * @return */ // TODO 返回数据对象更换 @Override public List<TMonitorVO> videoImportantPointLabelingAccuracy(DataCenterQuery query) { return null; public List<OneMachineFileResult> 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<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 视频:校时正确率 * * @param query * @param params * @return */ // TODO 返回数据对象更换 @Override public List<TMonitorVO> videoCheckTimeAccuracy(DataCenterQuery query) { return null; public List<OneMachineFileResult> 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<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 视频:重点点位校时正确率 * * @param query * @param params * @return */ // TODO 返回数据对象更换 @Override public List<TMonitorVO> videoImportantPointCheckTimeAccuracy(DataCenterQuery query) { return null; public List<OneMachineFileResult> 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<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 视频:重点点位在线率 * * @param query * @param params * @return */ // TODO 返回数据对象更换 @Override public List<TMonitorVO> videoImportantPointOnlineRate(DataCenterQuery query) { return null; public List<OneMachineFileResult> 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<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 视频:重点指挥图像在线率 * * @param query * @param params * @return */ // TODO 返回数据对象更换 @Override public List<TMonitorVO> videoImportantPointImageOnlineRate(DataCenterQuery query) { return null; public List<OneMachineFileResult> 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<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } @@ -170,206 +331,433 @@ /** * 车辆:视图库对接稳定性 * * @param query * @param params * @return */ @Override public List<SnapshotDataMonitorResult> vehicleViewDockStable(DataCenterQuery query) { // Criteria criteria = new Criteria().andOperator( Criteria.where("name").is("xp"), Criteria.where("age").lte(50) ); List<SnapshotDataMonitorResult> ts = mongoTemplate.find(Query.query(criteria), SnapshotDataMonitorResult.class); return null; public List<SnapshotDataMonitorResult> 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<SnapshotDataMonitorResult> resultList = mongoTemplate.find(query, SnapshotDataMonitorResult.class); return resultList; } /** * 车辆:点位在线率 * * @param query * @param params * @return */ @Override public List<SnapshotDataMonitorResult> vehiclePointOnlineRate(DataCenterQuery query) { return null; public List<SnapshotDataMonitorResult> 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<SnapshotDataMonitorResult> resultList = mongoTemplate.find(query, SnapshotDataMonitorResult.class); return resultList; } /** * 车辆:互联网卡口设备目录一致性 * * @param query * @param params * @return */ @Override public List<TMonitorVO> vehicleNetDeviceDirectoryConsistency(DataCenterQuery query) { return null; public List<OneMachineFileResult> 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<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 车辆:车辆卡口信息采集准确率 * * @param query * @param params * @return */ @Override public List<CrossDetailResult> vehicleCollectionConsistency(DataCenterQuery query) { return null; public List<CrossDetailResult> 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<CrossDetailResult> resultList = mongoTemplate.find(query, CrossDetailResult.class); return resultList; } /** * 车辆:车辆卡口设备抓拍数据完整性 * * @param query * @param params * @return */ @Override public List<DataIntegrityMonitoringResult> vehicleCollectionDataIntegrity(DataCenterQuery query) { return null; public List<DataIntegrityMonitoringResult> 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<DataIntegrityMonitoringResult> resultList = mongoTemplate.find(query, DataIntegrityMonitoringResult.class); return resultList; } /** * 车辆:车辆卡口设备抓拍数据准确性 * * @param query * @param params * @return */ @Override public List<AttrRecognitionMonitorResult> vehicleCollectionDataCaptured(DataCenterQuery query) { return null; public List<AttrRecognitionMonitorResult> 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<AttrRecognitionMonitorResult> resultList = mongoTemplate.find(query, AttrRecognitionMonitorResult.class); return resultList; } /** * 车辆:车辆卡口设备时钟准确性 * * @param query * @param params * @return */ @Override public List<VehicleDeviceInspectionResult> vehicleClockAccuracy(DataCenterQuery query) { return null; public List<VehicleDeviceInspectionResult> 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<VehicleDeviceInspectionResult> resultList = mongoTemplate.find(query, VehicleDeviceInspectionResult.class); return resultList; } /** * 车辆:车辆卡口设备抓拍数据上传及时性 * * @param query * @param params * @return */ @Override public List<SnapshotDelayMonitorResult> vehicleTimelyUploadAccuracy(DataCenterQuery query) { return null; public List<SnapshotDelayMonitorResult> 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<SnapshotDelayMonitorResult> resultList = mongoTemplate.find(query, SnapshotDelayMonitorResult.class); return resultList; } /** * 车辆:车辆卡口设备url可用性 * * @param query * @param params * @return */ @Override public List<PicAccessResult> vehicleUrlAccuracy(DataCenterQuery query) { return null; public List<PicAccessResult> 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<PicAccessResult> resultList = mongoTemplate.find(query, PicAccessResult.class); return resultList; } /** * 车辆:车辆卡口设备抓拍数据大图可用性 * * @param query * @param params * @return */ @Override public List<VehicleDeviceSamplingResult> vehicleBigImgAccuracy(DataCenterQuery query) { return null; public List<VehicleDeviceSamplingResult> 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<VehicleDeviceSamplingResult> resultList = mongoTemplate.find(query, VehicleDeviceSamplingResult.class); return resultList; } /** * 人脸:视图库对接稳定性 * * @param query * @param params * @return */ @Override public List<SnapshotDataMonitorResult> faceViewDockStable(DataCenterQuery query) { return null; public List<SnapshotDataMonitorResult> 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<SnapshotDataMonitorResult> resultList = mongoTemplate.find(query, SnapshotDataMonitorResult.class); return resultList; } /** * 人脸:点位在线率 * * @param query * @param params * @return */ // TODO 更换响应结果 @Override public List<TMonitorVO> facePointOnlineRate(DataCenterQuery query) { return null; public List<OneMachineFileResult> 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<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 人脸:目录一致率 * * @param query * @param params * @return */ @Override public List<TMonitorVO> faceDirectoryConsistency(DataCenterQuery query) { return null; public List<OneMachineFileResult> 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<OneMachineFileResult> resultList = mongoTemplate.find(query, OneMachineFileResult.class); return resultList; } /** * 人脸:人脸卡口信息采集准确率 * * @param query * @param params * @return */ @Override public List<CrossDetailResult> faceCollectionConsistency(DataCenterQuery query) { return null; public List<CrossDetailResult> 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<CrossDetailResult> resultList = mongoTemplate.find(query, CrossDetailResult.class); return resultList; } /** * 人脸:设备抓拍图片合格性 * * @param query * @param params * @return */ @Override public List<MonitoringDetailResult> faceImgQualification(DataCenterQuery query) { return null; public List<MonitoringDetailResult> 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<MonitoringDetailResult> resultList = mongoTemplate.find(query, MonitoringDetailResult.class); return resultList; } /** * 人脸:设备抓拍图片时钟准确性 * * @param query * @param params * @return */ @Override public List<FaceDeviceInspectionResult> faceCapturesImagesAccuracy(DataCenterQuery query) { return null; public List<FaceDeviceInspectionResult> 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<FaceDeviceInspectionResult> resultList = mongoTemplate.find(query, FaceDeviceInspectionResult.class); return resultList; } /** * 人脸:抓拍人脸数据上传及时性 * * @param query * @param params * @return */ @Override public List<FaceDeviceInspectionResult> faceTimelyUpload(DataCenterQuery query) { return null; public List<FaceDeviceInspectionResult> 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<FaceDeviceInspectionResult> resultList = mongoTemplate.find(query, FaceDeviceInspectionResult.class); return resultList; } /** * 人脸:人脸卡口设备抓拍数据大图可用性 * * @param query * @param params * @return */ @Override public List<FaceDeviceSamplingResult> faceAvailabilityOfLargeImg(DataCenterQuery query) { return null; public List<FaceDeviceSamplingResult> 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<FaceDeviceSamplingResult> resultList = mongoTemplate.find(query, FaceDeviceSamplingResult.class); return resultList; } } ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
@@ -3,14 +3,17 @@ import annotation.DataScope; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.platform.domain.entity.TMonitor; import com.ycl.platform.domain.query.HomeQuery; import com.ycl.platform.domain.vo.TMonitorVO; import com.ycl.platform.mapper.TMonitorMapper; import com.ycl.platform.service.ITMonitorService; import com.ycl.system.service.ISysConfigService; import com.ycl.utils.StringUtils; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; @@ -122,4 +125,22 @@ String time = configService.selectConfigByKey("abnormal.equipment.continuous.attention.time"); return tMonitorMapper.recoveryException(time); } @Override public Map<String, Object> home(HomeQuery monitorQuery) { Map<String, Object> dataMap = new HashMap<>(); Map<String, Object> monthMap1 = new HashMap<>(); Map<String, Object> monthMap2 = new HashMap<>(); List<Map<String, Object>> home = baseMapper.home(monitorQuery); if (ObjectUtils.isNotEmpty(home)) { for (Map<String, Object> map : home) { monthMap1.put(map.get("months").toString(), map.get("num1")); monthMap2.put(map.get("months").toString(), map.get("num2")); } dataMap.put("name", home.get(0).get("name")); dataMap.put("state", monthMap1); dataMap.put("state2", monthMap2); } return dataMap; } } ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -9,13 +9,17 @@ import com.ycl.platform.domain.entity.*; import com.ycl.platform.domain.form.*; import com.ycl.platform.domain.query.DistributeWorkOrderQuery; import com.ycl.platform.domain.query.HomeQuery; import com.ycl.platform.domain.query.ScreenQuery; import com.ycl.platform.domain.query.WorkOrderQuery; import com.ycl.platform.domain.vo.DistributeWorkOrderVO; import com.ycl.platform.domain.vo.WorkOrderVO; import com.ycl.platform.domain.vo.WorkOrderYwConditionRecordVO; import com.ycl.platform.domain.vo.screen.ScreenWorkOrderVO; import com.ycl.platform.mapper.*; import com.ycl.platform.mapper.WorkOrderAuditingRecordMapper; import com.ycl.platform.mapper.WorkOrderDistributeRecordMapper; import com.ycl.platform.mapper.WorkOrderMapper; import com.ycl.platform.mapper.WorkOrderYwConditionRecordMapper; import com.ycl.platform.service.NotifyService; import com.ycl.platform.service.WorkOrderAuditingRecordService; import com.ycl.platform.service.WorkOrderService; @@ -31,8 +35,8 @@ import enumeration.general.UrgentLevelEnum; import enumeration.general.WorkOrderDistributeWayEnum; import enumeration.general.WorkOrderStatusEnum; import enumeration.general.*; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -42,9 +46,6 @@ import java.time.LocalDateTime; import java.time.ZoneId; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.*; import java.util.stream.Collectors; @@ -428,4 +429,27 @@ ScreenWorkOrderVO screen = baseMapper.screenWorkOrder(query); return Result.ok().data(screen); } @Override public Map<String, Object> home(HomeQuery monitorQuery) { Map<String, Object> dataMap = new HashMap<>(); Map<String, Object> data1 = new HashMap<>(); Map<String, Object> data2 = new HashMap<>(); Map<String, Object> data3 = new HashMap<>(); List<Map<String, Object>> home = baseMapper.home(monitorQuery); if (ObjectUtils.isNotEmpty(home)) { for (Map<String, Object> map : home) { if (Objects.nonNull(map.get("dateType")) && StringUtils.hasText(map.get("dateType").toString())) { data1.put(map.get("dateType").toString(), map.get("num1")); data2.put(map.get("dateType").toString(), map.get("num2")); data3.put(map.get("dateType").toString(), map.get("num3")); } } dataMap.put("name", home.get(0).get("name")); } dataMap.put("complete", data1); dataMap.put("waiting", data2); dataMap.put("pending", data3); return dataMap; } } ycl-server/src/main/java/com/ycl/utils/MongoUtil.java
New file @@ -0,0 +1,32 @@ package com.ycl.utils; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.TextCriteria; import org.springframework.util.StringUtils; import java.lang.reflect.Field; import java.util.Date; import java.util.Objects; /** * mongo工具类 * * @author:xp * @date:2024/8/2 15:18 */ public class MongoUtil { /** * 构造全文索引的条件 * * @param query * @param keyword */ public static void fullText(Query query, String keyword) { if (StringUtils.hasText(keyword)) { TextCriteria criteria = TextCriteria.forDefaultLanguage().matching(keyword); query.addCriteria(criteria); } } } ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -243,4 +243,23 @@ ]]> </select> <select id="home" resultType="java.util.Map"> SELECT u.unit_name AS name, CONCAT(MONTH(w.create_time), '月') AS months, COUNT(w.id) AS num1, COUNT(m.id) - COUNT(w.id) AS num2 FROM t_monitor m LEFT JOIN t_yw_point p ON m.serial_number = p.serial_number LEFT JOIN t_yw_unit u ON p.unit_id = u.id LEFT JOIN t_work_order w ON p.id = w.point_id WHERE u.id = #{unitId} AND MONTH(w.create_time) IS NOT NULL <if test="dateRange != null and dateRange.size > 0"> AND DATE_FORMAT(w.create_time, '%Y-%m') BETWEEN #{dateRange[0]} AND #{dateRange[1]} </if> GROUP BY months ORDER BY months </select> </mapper> ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -90,4 +90,53 @@ t_work_order </select> <select id="home" resultType="java.util.Map"> <if test="dateType == 'month'"> -- 月工单数 SELECT u.unit_name AS name, CONCAT(MONTH(w.create_time), '月') AS dateType, COUNT(IF(status = 'AUDITING_SUCCESS', 1, NULL)) AS num1, COUNT(IF(status = 'DISTRIBUTED', 1, NULL)) AS num2, COUNT(IF(status = 'YW_HANDLE', 1, NULL)) AS num3 FROM t_work_order w LEFT JOIN t_yw_unit u ON w.unit_id = u.id WHERE DATE_FORMAT(w.create_time, '%Y') = DATE_FORMAT(NOW(), '%Y') AND w.deleted = 0 AND unit_id = #{unitId} GROUP BY dateType </if> <if test="dateType == 'week'"> -- 周工单数 SELECT u.unit_name AS name, CONCAT('周', WEEKDAY(w.create_time)) AS dateType, COUNT(IF(status = 'AUDITING_SUCCESS', 1, NULL)) AS num1, COUNT(IF(status = 'DISTRIBUTED', 1, NULL)) AS num2, COUNT(IF(status = 'YW_HANDLE', 1, NULL)) AS num3 FROM t_work_order w LEFT JOIN t_yw_unit u ON w.unit_id = u.id WHERE w.create_time BETWEEN DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) AND DATE_ADD(CURDATE(), INTERVAL (6 - WEEKDAY(CURDATE())) DAY) AND w.deleted = 0 AND unit_id = #{unitId} GROUP BY dateType </if> <if test="dateType == 'day'"> -- 日工单数 SELECT u.unit_name AS name, DATE_FORMAT(w.create_time, '%d') AS dateType, COUNT(IF(status = 'AUDITING_SUCCESS', 1, NULL)) AS num1, COUNT(IF(status = 'DISTRIBUTED', 1, NULL)) AS num2, COUNT(IF(status = 'YW_HANDLE', 1, NULL)) AS num3 FROM t_work_order w LEFT JOIN t_yw_unit u ON w.unit_id = u.id WHERE DATE_FORMAT(w.create_time, '%Y-%m-%d') BETWEEN DATE_FORMAT(CURDATE(), '%Y-%m-01') AND LAST_DAY(CURDATE()) AND w.deleted = 0 AND unit_id = #{unitId} GROUP BY dateType </if> </select> </mapper>