fuliqi
2024-10-14 e4c69bcd4ba18dd022dd4ed86da96c5e4b8b3150
ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDataCalculation.java
@@ -31,7 +31,7 @@
import java.util.stream.Collectors;
/**
 * 计算人脸点位在线率、视图库对接稳定性
 * 计算视图库对接稳定性
 * 抓拍数据量监测结果接口数据
 * 获取分省厅、区域的map<k,v> k为deptId或者Province_deptId
 * 循环map计算点位在线率
@@ -55,14 +55,13 @@
    //区域人脸点位在线指标的内部类
    protected static class AreaStats {
        int totalSites = 0;
        int onlineSites = 0;
        int totalDataSum = 0;
    }
    @Override
    public void calculate(List<SnapshotDataMonitorResult> list) {
        //获取分区域的指标数量
        Map<String, FaceSnapshotDataCalculation.AreaStats> areaStatsMap = getAreaStatsMap(list);
        Map<String, FaceSnapshotDataCalculation.AreaStats> areaStatsMap = getAreaStatsMap(list,Boolean.FALSE);
        if (areaStatsMap == null) return;
        // 获取当前日期
@@ -98,27 +97,16 @@
        AreaStats stats = areaStatsMap.computeIfAbsent(key, k -> new AreaStats());
        stats.totalSites++;
        if (ApiConstants.HK_SnapCount_ResultType_Null != result.getResultType()) {
            stats.onlineSites++;
            stats.totalDataSum += result.getDataCount();
        }
    }
    //车辆点位在线率和视图库对接稳定性
    //人脸视图库对接稳定性
    private CheckIndexFace createOrUpdateCheckIndexFace(String key, AreaStats stats, List<CheckIndexFace> checkIndexFaceList,List<SysDictData> faceSnap) {
        CheckIndexFace checkIndexFace = getCheckIndex(key, checkIndexFaceList, CheckIndexFace.class);
        if (checkIndexFace == null) {
            return null;
        }
        //调用点位在线计算方法
        if (stats.totalSites >= CheckThreadConstants.Check_Face_SiteOnline) {
            Map<String, Object> siteOnlineParam = new HashMap<>();
            siteOnlineParam.put("totalSites", stats.totalSites);
            siteOnlineParam.put("onlineSites", stats.onlineSites);
            BigDecimal siteOnline = siteOnline(siteOnlineParam);
            checkIndexFace.setSiteOnline(siteOnline);
        } else {
            checkIndexFace.setSiteOnline(BigDecimal.ZERO);
        }
        //视图库对接稳定性
        //Redis记录该区县当月无数据上传次数