fuliqi
2024-08-08 ce0fef1c976ede5d77dfba1c285bbd0436d02d04
优云录像可用接口调通
6个文件已修改
179 ■■■■■ 已修改文件
ycl-common/src/main/java/constant/ApiConstants.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/param/UY/RecordMetaDSumParam.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OnlineResult.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/feign/UYClient.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/HKTask.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/UYTask.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/constant/ApiConstants.java
@@ -6,6 +6,7 @@
public class ApiConstants {
    //成功状态码
    public final static String HKSuccessCode = "0";
    public final static String UYSuccessCodeStr = "200";
    public final static Integer UYSuccessCode = 200;
    public final static Integer pageNo = 1;
    public final static Integer pageSize = 5000;
ycl-pojo/src/main/java/com/ycl/platform/domain/param/UY/RecordMetaDSumParam.java
@@ -69,7 +69,7 @@
    /**
     * 统计时间
     */
    private Date statTime;
    private String statTime;
    /**
     * 租户ID
ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OnlineResult.java
@@ -21,100 +21,77 @@
    /**
     * 行政区划编码
     */
    private String arealayerPath;
    /**
     * 行政区划编码
     */
    private String arealayerno;
    private String arealayernoCode;
    /**
     * 行政区划名称
     */
    @TextIndexed
    private String arealayerName;
    private String arealayernoName;
    /**
     * 解码状态码
     * 诊断日期
     */
    private Integer decodingCode;
    private String diagDate;
    /**
     * 设备id
     * 统计纬度
     */
    private Integer deviceId;
    private String dim;
    /**
     * 设备名称
     * icmp离线数
     */
    private String deviceName;
    private Integer icmpOfflineNum;
    /**
     * icmp延迟
     * icmp在线数
     */
    private Double icmpDelay;
    private Integer icmpOnlineNum;
    /**
     * icmp状态  2/1/-1/0   全部/在线/离线/未知
     * icmp在线率,格式为百分比字符串,如 "99.9%"
     */
    private Integer icmpStatus;
    private String icmpOnlineRate;
    /**
     * 最近icmp时间
     * icmp诊断总数
     */
    private Date icmpTime;
    private Integer icmpTotalNum;
    /**
     * 关键帧时延
     * 离线数
     */
    private Integer ifmDelay;
    private Integer offlineNum;
    /**
     * ip地址
     * 在线数
     */
    private String ipAddr;
    private Integer onlineNum;
    /**
     * 最近持续离线故障次数
     * 在线率,格式为百分比字符串,如 "99.9%"
     */
    private Integer olErrEverduring;
    private String onlineRate;
    /**
     *
     * 页码
     */
    private Date olErrEverduringFirstTime;
    private Integer pageNum;
    /**
     * 累计离线故障次数
     * 分页大小
     */
    private Integer olErrTotal;
    private Integer pageSize;
    /**
     * 累计离线故障率
     * 排序属性
     */
    private String olErrTotalRate;
    private String sortFiled;
    /**
     * 巡检次数
     * 诊断总数
     */
    private Integer olTotal;
    /**
     * sip状态码
     */
    private Integer sipCode;
    /**
     * 信令时延
     */
    private Integer sipDelay;
    /**
     * 在线状态  2/1/-1/0   全部/在线/离线/未知
     */
    private Integer status;
    /**
     * 省厅标签
     */
    private String tagStr;
    /**
     * 省厅标签
     */
    private List<String> tags;
    /**
     * 租户id
     */
    private Integer tenantId;
    /**
     * 视频流时延
     */
    private Integer videoDelay;
    /**
     *
     */
    private Date vqdTime;
    private Integer totalNum;
}
ycl-server/src/main/java/com/ycl/feign/UYClient.java
@@ -35,7 +35,7 @@
     * @param onlineParam 请求参数
     * @return 查询在线统计列表
     */
    @GetMapping("/videomon/api/v1/onlineMonitor/list")
    @GetMapping("/openapi/v1/report/online/list")
    JSONObject onlineList(@SpringQueryMap OnlineParam onlineParam);
    /**
@@ -44,14 +44,14 @@
     * @param recordMetaDSumParam 请求参数
     * @return 查询满足条件的录像汇总信息
     */
    @PostMapping("/report/recordMetaDSum/list")
    @PostMapping("/videomon/report/recordMetaDSum/list")
    JSONObject recordMetaDSumList(@RequestBody RecordMetaDSumParam recordMetaDSumParam);
    /**
     * osd标注信息
     * @return
     */
    @GetMapping("/api/v1/app/osdMonitor/list")
    @GetMapping("/videomon/api/v1/app/osdMonitor/list")
    JSONObject osdMonitorList(@SpringQueryMap OsdMonitorParam param, @RequestHeader("tenantId") String tenantId);
    /**
@@ -60,7 +60,7 @@
     * @param param
     * @return
     */
    @GetMapping("/openapi/v1/vqdMonitor/queryVqdResult")
    @GetMapping("/videomon/openapi/v1/vqdMonitor/queryVqdResult")
    JSONObject queryVqdResult(@SpringQueryMap QueryVqdParam param);
    /**
@@ -69,7 +69,7 @@
     * @param param
     * @return
     */
    @GetMapping("/api/v1/app/report/vqd/detail/list")
    @GetMapping("/videomon/api/v1/app/report/vqd/detail/list")
    JSONObject videoQuality(@SpringQueryMap VideoQualityParam param);
    /**
ycl-server/src/main/java/com/ycl/task/HKTask.java
@@ -53,7 +53,7 @@
            Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
            DeleteResult result = mongoTemplate.remove(query, VehicleDeviceInspectionResult.class);
            //存放在mongo中
            mongoTemplate.insert(list);
            mongoTemplate.insertAll(list);
            //同步的数据进行工单阈值处理
            ywThresholdService.carCheck(list);
        }
@@ -72,7 +72,7 @@
            Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
            DeleteResult result = mongoTemplate.remove(query, FaceDeviceInspectionResult.class);
            //存放在mongo中
            mongoTemplate.insert(list);
            mongoTemplate.insertAll(list);
            //同步的数据进行工单阈值处理
            //TODO:可能有重复工单
            ywThresholdService.faceCheck(list);
@@ -97,7 +97,7 @@
            DeleteResult result = mongoTemplate.remove(query, SnapshotDataMonitorResult.class);
            //存放在mongo中
            carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_CAR));
            mongoTemplate.insert(carList);
            mongoTemplate.insertAll(carList);
        }
        /** 人脸数据 */
@@ -113,7 +113,7 @@
            DeleteResult result = mongoTemplate.remove(query, SnapshotDataMonitorResult.class);
            //存放在mongo中
            carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_FACE));
            mongoTemplate.insert(faceList);
            mongoTemplate.insertAll(faceList);
        }
        //TODO:工单
        log.info("结束抓拍数据量检测结果数据同步");
@@ -133,7 +133,7 @@
                    .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
            DeleteResult result = mongoTemplate.remove(query, MonitoringDetailResult.class);
            //存放在mongo中
            mongoTemplate.insert(faceList);
            mongoTemplate.insertAll(faceList);
        }
        //TODO:工单处理
        log.info("结束采集设备属性监测结果数据同步");
@@ -153,7 +153,7 @@
                    .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
            DeleteResult result = mongoTemplate.remove(query, CrossDetailResult.class);
            //存放在mongo中
            mongoTemplate.insert(faceList);
            mongoTemplate.insertAll(faceList);
        }
        //TODO:工单处理
        log.info("结束卡口属性监测结果数据同步");
@@ -173,7 +173,7 @@
                    .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
            DeleteResult result = mongoTemplate.remove(query, DataIntegrityMonitoringResult.class);
            //存放在mongo中
            mongoTemplate.insert(faceList);
            mongoTemplate.insertAll(faceList);
        }
        //TODO:工单处理
        log.info("结束数据完整性监测结果数据同步");
@@ -193,7 +193,7 @@
                    .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
            DeleteResult result = mongoTemplate.remove(query, AttrRecognitionMonitorResult.class);
            //存放在mongo中
            mongoTemplate.insert(faceList);
            mongoTemplate.insertAll(faceList);
        }
        //TODO:工单处理
        log.info("结束属性识别准确监测结果数据同步");
@@ -217,7 +217,7 @@
            DeleteResult result = mongoTemplate.remove(query, SnapshotDelayMonitorParam.class);
            //存放在mongo中
            carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_CAR));
            mongoTemplate.insert(carList);
            mongoTemplate.insertAll(carList);
        }
        /** 人脸数据 */
@@ -233,7 +233,7 @@
            DeleteResult result = mongoTemplate.remove(query, SnapshotDelayMonitorParam.class);
            //存放在mongo中
            carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_FACE));
            mongoTemplate.insert(faceList);
            mongoTemplate.insertAll(faceList);
        }
        //TODO:工单
        log.info("结束抓拍数据时延监测结果数据同步");
@@ -253,7 +253,7 @@
                    .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
            DeleteResult result = mongoTemplate.remove(query, PicAccessResult.class);
            //存放在mongo中
            mongoTemplate.insert(faceList);
            mongoTemplate.insertAll(faceList);
        }
        //TODO:工单处理
        log.info("结束图片访问监测结果数据同步");
@@ -272,7 +272,7 @@
                    .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
            DeleteResult result = mongoTemplate.remove(query, VehicleDeviceSamplingResult.class);
            //存放在mongo中
            mongoTemplate.insert(faceList);
            mongoTemplate.insertAll(faceList);
        }
        //TODO:工单处理
        log.info("结束车辆设备抽检指标监测结果数据同步");
@@ -292,7 +292,7 @@
                    .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
            DeleteResult result = mongoTemplate.remove(query, FaceDeviceSamplingResult.class);
            //存放在mongo中
            mongoTemplate.insert(faceList);
            mongoTemplate.insertAll(faceList);
        }
        //TODO:工单处理
        log.info("结束人脸设备抽检指标监测结果数据同步");
ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -18,10 +18,15 @@
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.format.annotation.DateTimeFormat;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@@ -44,6 +49,7 @@
    private String email;
    @Value("${youYun.passwd}")
    private String passwd;
    //一机一档
    public void monitorTask() {
        //一机一档合格率
@@ -97,7 +103,7 @@
                                .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
                        DeleteResult result = mongoTemplate.remove(query, QueryVqdResult.class);
                        //存放在mongo中
                        mongoTemplate.insert(records);
                        mongoTemplate.insertAll(records);
                    } else {
                        log.error("图像监测诊断结果数据为空{}", data);
                    }
@@ -119,34 +125,31 @@
        log.info("开始执行录像可用数据同步");
        RecordMetaDSumParam param = new RecordMetaDSumParam();
        param.setTenantId(tenantId);
        Calendar instance = Calendar.getInstance();
        instance.setTime(new Date());
        instance.add(Calendar.DAY_OF_MONTH, -1);
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        String yesterday = format.format(instance.getTime());
        param.setStatTime(yesterday);
        JSONObject jsonObject = uyClient.recordMetaDSumList(param);
        if (jsonObject != null) {
            log.info("数据格式"+jsonObject);
            if (jsonObject.getBoolean("success")) {
                JSONObject data = jsonObject.getJSONObject("data");
                if (data != null) {
                    List<RecordMetaDSumResult> records = data.getList("records", RecordMetaDSumResult.class);
            if (ApiConstants.UYSuccessCodeStr.equals(jsonObject.getString("code"))) {
                List<RecordMetaDSumResult> records = jsonObject.getList("data", RecordMetaDSumResult.class);
                    if (!CollectionUtils.isEmpty(records)) {
                        //如果今天存在之前的数据先删除
                        Query query = new Query(Criteria
                                .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
                        DeleteResult result = mongoTemplate.remove(query, RecordMetaDSumResult.class);
                        //存放在mongo中
                        mongoTemplate.insert(records);
                    } else {
                        log.error("录像可用数据为空{}", data);
                    mongoTemplate.insertAll(records);
                    }
                } else {
                    log.error("录像可用数据为空{}", jsonObject);
                }
            } else {
                log.error("录像可用数据为空{}", jsonObject);
            }
        } else {
            log.error("录像可用数据为空");
        }
        log.info("结束执行录像可用数据同步");
    }
    //视频标注
    public void OsdMonitorTask() {
@@ -156,7 +159,7 @@
        JSONObject jsonObject = uyClient.osdMonitorList(param,tenantId);
        if (jsonObject != null) {
            log.info("数据格式"+jsonObject);
            if (jsonObject.getBoolean("success")) {
            if (ApiConstants.UYSuccessCodeStr.equals(jsonObject.getString("code"))) {
                JSONObject data = jsonObject.getJSONObject("data");
                if (data != null) {
                    List<OsdMonitorResult> records = data.getList("records", OsdMonitorResult.class);
@@ -166,7 +169,7 @@
                                .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
                        DeleteResult result = mongoTemplate.remove(query, OsdMonitorResult.class);
                        //存放在mongo中
                        mongoTemplate.insert(records);
                        mongoTemplate.insertAll(records);
                    } else {
                        log.error("视频标注数据为空{}", data);
                    }