栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

OTA完成升级一致性分析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

OTA完成升级一致性分析

OtaServicesMapper.java

    //获取备案信息中的数据与日志中的数据比较
    List getOtaDataAndLogDataCompareList(@Param("logTableName") String logTableName, @Param("query") DataQualityAnalysisQuery query);

OtaServicesMapper.xml

 
    
        select os.deploy_time         as otaUpgradeTime,
               os.deploy_period       as deployPeriod,
               os.ota_push_way        as otaPushWay,
               os.ota_push_way_remark as otaPushWayRemark,
               op.ota_download_time   as otaDownloadTime,
               op.ota_install_time    as otaInstallTime,
               oplb.upgrade_way       as logUpgradeWay,
               oplb.upgrade_time      as logUpgradeTime,
               oplb.upgrade_start     as logUpgradeStart,
               oplb.upgrade_end       as logUpgradeEnd,
               os.ota_need_confirm_flag     as otaNeedConfirm,
               oplb.is_setup_flag           as logSetupFlag,
               oplb.record_num        as logRecordNum
        from ota_services as os
                 left join ota_packages as op on os.record_num = op.record_num
                 left join ota_report_flow orf on orf.record_num = os.record_num
                 left join ${logTableName} oplb on op.record_num = oplb.record_num
        
            
                and orf.report_time between #{query.beginDate} and #{query.endDate}
            
        
    

UpgradeConsistencyAnalysisServiceImpl.java

    public RespBean getUpgradeConsistency(DataQualityAnalysisQuery query) {
        List corpList = carCorpMapper.getCarCorpList(new CarCorpPo());
        List selectTableNames = otaProcessLogMapper.selectTableNames(dataBaseConfig.getDatabase());
        List> list = new ArrayList<>();
        if (CollectionUtil.isNotEmpty(corpList) && CollectionUtil.isNotEmpty(selectTableNames)) {
            corpList.forEach(corp -> {
                int size = 0;
                if (corp != null && StringUtils.isNotBlank(corp.getCorpCname()) && StringUtils.isNotBlank(corp.getCorpEname())) {
                    String tableName = selectTableNames.stream().filter(selectTableName ->
                            StringUtils.equalsIgnoreCase(selectTableName, "ota_process_log_" + corp.getCorpEname())).findFirst().orElse(null);
                    //升级通知方式
//                    AtomicInteger otaPushWayNums = new AtomicInteger();
                    //备案编号
                    AtomicInteger logRecordNum = new AtomicInteger();
                    //远程升级发起时间
                    AtomicInteger otaUpgradeTimeNums = new AtomicInteger();
                    //升级包安装开始及完成时间
//                    AtomicInteger installTimeNums = new AtomicInteger();
                    //升级是否需要用户确认
                    AtomicInteger otaNeedConfirms = new AtomicInteger();
                    //安装升级包开始时间
                    AtomicInteger installStartTime = new AtomicInteger();
                    //安装升级包完成时间
                    AtomicInteger installEndTime = new AtomicInteger();
                    //总数
                    AtomicInteger sum = new AtomicInteger();


                    if (StringUtils.isNotBlank(tableName)) {
                        //获取备案信息中的数据与日志中的数据进行比较列表
                        List compareList = otaServicesMapper.getOtaDataAndLogDataCompareList(tableName, query);
                        size = compareList.size();
                        if (CollectionUtil.isNotEmpty(compareList)) {
                            compareList.forEach(data -> {
                                boolean flag = true;
                                if (data != null) {
//                                    //升级通知方式
//                                    if (!StringUtils.contains(data.getOtaPushWay(), data.getLogUpgradeWay())) {
//                                        otaPushWayNums.set(otaPushWayNums.get() + 1);
//                                    }
                                    //远程升级市场行动备案编号
                                    if(StringUtils.isBlank(data.getLogRecordNum())){
                                        logRecordNum.set(logRecordNum.get()+1);
                                        flag = false;
                                    }

                                    //用户是否同意安装升级包
                                    if(!StringUtils.contains(data.getOtaNeedConfirm(),data.getLogSetupFlag())){
                                        otaNeedConfirms.set(otaNeedConfirms.get() + 1);
                                        flag = false;

                                    }
                                    //远程升级发起时间
                                    if (DateUtil.compare(data.getOtaUpgradeTime(), data.getLogUpgradeTime()) != 0) {
                                        otaUpgradeTimeNums.set(otaUpgradeTimeNums.get() + 1);
                                        flag = false;

                                    }

                                    Calendar ca = Calendar.getInstance();
                                    Date otaUpgradeTime = data.getOtaUpgradeTime();
                                    String deployPeriod = data.getDeployPeriod();
                                    ca.setTime(otaUpgradeTime);
                                    if(!StringUtils.isBlank(deployPeriod)){
                                        ca.add(Calendar.DATE,Integer.parseInt(deployPeriod));
                                    }
                                    //安装升级包开始时间
                                    if(DateUtil.compare(data.getOtaUpgradeTime(), data.getLogUpgradeStart()) > 0){
                                        installStartTime.set(installStartTime.get() + 1);
                                        flag = false;

                                    }else if(DateUtil.compare(ca.getTime(),data.getLogUpgradeStart()) < 0){
                                        installStartTime.set(installStartTime.get() + 1);
                                        flag = false;
                                    }
                                    //安装升级包完成时间
                                    if(DateUtil.compare(data.getOtaUpgradeTime(), data.getLogUpgradeEnd()) > 0){
                                        installEndTime.set(installEndTime.get() + 1);
                                        flag = false;
                                    }else if(DateUtil.compare(ca.getTime(),data.getLogUpgradeEnd()) < 0){
                                        installEndTime.set(installEndTime.get() + 1);
                                        flag = false;
                                    }
                                }
                                if(!flag){
                                    sum.set(sum.get() + 1);
                                }
                            });

                        }
                    }
                    Map map = new HashMap<>();
                    map.put("logRecordNum",logRecordNum);
                    map.put("CarCorpCname", corp.getCorpCname());
//                    map.put("otaPushWayNums", otaPushWayNums);
                    map.put("otaUpgradeTimeNums", otaUpgradeTimeNums);
                    map.put("otaNeedConfirms",otaNeedConfirms);
//                    map.put("installTimeNums", installTimeNums.get());
                    map.put("installStartTime",installStartTime);
                    map.put("installEndStartTime",installEndTime);
                    map.put("allNums", size == 0?0:sum.get() / size *100 );

                    list.add(map);
                }
            });
        }
        //排序
        List> collectList = list.stream().sorted(Comparator.comparing(item -> (int) item.get("allNums"))).collect(Collectors.toList());
        if (StringUtils.equals(query.getSortType(), SortEnum.DESC)) {
            Collections.reverse(collectList);
        }
        return RespBean.ok("获取升级行为一致性分析成功", collectList);
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/944356.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号