智能导航短信告警的一个逻辑处理

来源:互联网 发布:儿童自行车 知乎 编辑:程序博客网 时间:2024/06/05 18:16

这里写图片描述

【因为没有引入工具类,只注重实现逻辑,忽略具体方法】

String totalCountSql = "select count(log_id) totalCount,province from tbl_svc_visit_his where svc_name = ? and start_date>= ? and start_date<=?  and his_type='0' group by province";String successCountSQL = "select count(log_id) succCount,province from tbl_svc_visit_his "                +" where svc_name=? and start_date>= ? and start_date<=? and his_type='0' "                +" and resp_code in ("+judgeSuccess+") group by province";List<Map<String,Object>> totalAndProvRs = adminService.findBySql(totalCountSql, args.toArray());//查出包含总数和省份的数据集List<Map<String,Object>> succAndProvRs= adminService.findBySql(successCountSQL, args.toArray());//查出包含成功数和省份的数据集Map<String,Map<String,Object>> totalSuccProvRateRs = new HashMap<String,Map<String,Object>>(); //key:省份  value:【总数 成功数 成功率】//1. 遍历 省份+总数集合totalAndProvRs, 取到省份及对应的数据,以省份为key,存储到totalSuccProvRateRs对象for (Map totalAndProv : totalAndProvRs) {    totalSuccProvRateRs.put((String) totalAndProv.get("PROVINCE"),totalAndProv );//省份 总数    logger.debug("总数集合中的省份为======" + totalAndProv.get("PROVINCE"));}//2. 遍历 省份+成功数集合succAndProvRs, 根据省份从totalSuccProvRateRs找到匹配数据,并将成功数,成功率等更新进去.for (Map succAndProv : succAndProvRs) {    Map<String,Object>  totalSuccAndRateRs =totalSuccProvRateRs.get( (String) succAndProv.get("PROVINCE") );//取到省份数据对象    totalSuccAndRateRs.put("SUCCCOUNT", succAndProv.get("SUCCCOUNT"));//放入成功数【总数 成功数】    logger.debug("总数+成功数===================" + totalSuccAndRateRs);    if (totalSuccAndRateRs.get("TOTALCOUNT") != null) {        NumberFormat numFormat=NumberFormat.getNumberInstance();         numFormat.setMaximumFractionDigits(2);//设置小数点后面位数为        Double succRate2 = ( Integer.parseInt(succAndProv.get("SUCCCOUNT").toString())*1.00 / Integer.parseInt(totalSuccAndRateRs.get("TOTALCOUNT").toString())*1.00 );        String succRate=numFormat.format(succRate2);        totalSuccAndRateRs.put("succRate", (Object)succRate);//放入成功率        logger.debug("成功数集合中的省份为======" + succAndProv.get("PROVINCE"));//省份 总数 成功数 成功率        totalSuccProvRateRs.put((String) succAndProv.get("PROVINCE"),totalSuccAndRateRs );  }else {        logger.debug("接口调用总笔数为空");    }}logger.debug("获取到省份,总数,成功数,成功率===============" + totalSuccProvRateRs);
1 0
原创粉丝点击