fuliqi
2024-09-10 7d5ea3631d163343b652bd6bd40b94b34c4194eb
ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java
@@ -24,7 +24,7 @@
import java.util.*;
/**
 * 计算车辆点位在线率、视图库对接稳定性
 * 计算车辆视图库对接稳定性
 * 抓拍数据量监测结果接口数据
 * 获取分省厅、区域的map<k,v> k为deptId或者Province_deptId
 * 循环map计算点位在线率
@@ -41,10 +41,9 @@
    private RedisTemplate redisTemplate;
    @Autowired
    private SysDictDataMapper dictDataMapper;
    //区域车辆点位在线指标的内部类
    //区域车辆视图库对接稳定性的内部类
    protected static class AreaStats {
        int totalSites = 0;
        int onlineSites = 0;
        int totalDataSum = 0;
    }
@@ -90,14 +89,13 @@
        stats.totalSites++;
        if (ApiConstants.HK_SnapCount_ResultType_Null != result.getResultType()) {
            stats.onlineSites++;
            stats.totalDataSum += result.getDataCount();
        }
    }
    /**
     * 车辆点位在线率和视图库对接稳定性
     * 车辆视图库对接稳定性
     */
    private CheckIndexCar createOrUpdateCheckIndexCar(String key, AreaStats stats, List<CheckIndexCar> checkIndexCarList,List<SysDictData> carSnap) {
        CheckIndexCar checkIndexCar = getCheckIndex(key, checkIndexCarList, CheckIndexCar.class);
@@ -105,16 +103,6 @@
            return null;
        }
        //调用点位在线计算方法
        if (stats.totalSites >= CheckThreadConstants.Check_Car_SiteOnline) {
            Map<String, Object> siteOnlineParam = new HashMap<>();
            siteOnlineParam.put("totalSites", stats.totalSites);
            siteOnlineParam.put("onlineSites", stats.onlineSites);
            BigDecimal siteOnline = siteOnline(siteOnlineParam);
            checkIndexCar.setSiteOnline(siteOnline.min(BigDecimal.ONE));
        } else {
            checkIndexCar.setSiteOnline(BigDecimal.ZERO);
        }
        //视图库对接稳定性
        //Redis记录该区县当月无数据上传次数
        Integer noDateCount = (Integer) redisTemplate.opsForHash().get(RedisConstant.Check_Car_ViewConnect, key);