fuliqi
2024-09-30 b5df1cee65f3e9dcf554efcd3f1642a8c79d1e76
ycl-server/src/main/java/com/ycl/task/ContractTask.java
@@ -9,6 +9,7 @@
import com.ycl.platform.domain.entity.YwPoint;
import com.ycl.platform.domain.result.HK.PicAccessResult;
import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult;
import com.ycl.platform.domain.result.SYS.TMonitorResult;
import com.ycl.platform.domain.result.UY.RecordMetaDSumResult;
import com.ycl.platform.domain.result.UY.VideoOnlineResult;
import com.ycl.platform.domain.vo.CalculateRuleVO;
@@ -91,27 +92,20 @@
                        )
                ));
        Map<String, Integer> onlineStatusMap = new HashMap<>();
        //TODO 在线率修改,查mongo获取设备在线情况
        Date date = DateUtils.getDay(2024, 7, 13);
        Date date = new Date();
        //车辆、人脸
        Query query = new Query();
        query.addCriteria(Criteria
                .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
        List<SnapshotDataMonitorResult> results = mongoTemplate.find(query, SnapshotDataMonitorResult.class);
        for (SnapshotDataMonitorResult result : results) {
            if (ApiConstants.HK_SnapCount_ResultType_Null != result.getResultType()) {
                onlineStatusMap.put(result.getExternalIndexCode(), Online);
            } else {
                onlineStatusMap.put(result.getExternalIndexCode(), Offline);
        List<TMonitorResult> tMonitorResults = mongoTemplate.find(query, TMonitorResult.class);
        for (TMonitorResult result : tMonitorResults) {
            if(result.getOnline()){
                onlineStatusMap.put(result.getNo(), Online);
            }else {
                onlineStatusMap.put(result.getNo(), Offline);
            }
        }
        //视频
        Query videoQuery = new Query(Criteria
                .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
        List<VideoOnlineResult> videoOnlineResults = mongoTemplate.find(videoQuery, VideoOnlineResult.class);
        for (VideoOnlineResult videoOnlineResult : videoOnlineResults) {
            onlineStatusMap.put(videoOnlineResult.getDeviceId(), videoOnlineResult.getStatus());
        }
        //查询报备列表
        List<String> reportNumbers = reportMapper.selectNumberList(AuditStatus_Pass, DateUtils.getDate());
        //计算每个公司的点位在线率
@@ -142,6 +136,7 @@
    //月底计算在线率分数
    public void calculateOnlineScore() {
        //TODO:检查表
        log.info("开始计算合同点位在线率分数");
        //如果是月底,需要统计平均在线率然后进行积分扣除
//        String now = DateUtils.getDate();
@@ -357,7 +352,7 @@
            queryWrapper.in("serial_number", serialNumbers);
            //获取公司所运维的设备集合,key为unitId value为设备国标码集合
            Map<Long, List<String>> unitMonitorMap = ywPointMapper.selectList(queryWrapper).stream()
                    .filter(ywPoint -> ywPoint.getUnitId()!=null).collect(Collectors.groupingBy(YwPoint::getUnitId,
                    .filter(ywPoint -> ywPoint.getUnitId() != null).collect(Collectors.groupingBy(YwPoint::getUnitId,
                            Collectors.mapping(
                                    YwPoint::getSerialNumber,
                                    Collectors.toList())));
@@ -437,7 +432,7 @@
            queryWrapper.in("serial_number", serialNumbers);
            //获取公司所运维的设备集合,key为unitId value为设备国标码集合
            Map<Long, List<String>> unitMonitorMap = ywPointMapper.selectList(queryWrapper).stream()
                    .filter(ywPoint -> ywPoint.getUnitId()!=null).collect(Collectors.groupingBy(YwPoint::getUnitId,
                    .filter(ywPoint -> ywPoint.getUnitId() != null).collect(Collectors.groupingBy(YwPoint::getUnitId,
                            Collectors.mapping(
                                    YwPoint::getSerialNumber,
                                    Collectors.toList())));