/**
   * 运营生产-获取相关信息
   *
   * @param lineId
   * @param companyId
   * @param date
   * @param span
   * @param type
   * @return
   */
  private MetroProductionVo getMetroProductionInfo(
      String lineId, String companyId, String date, String yearSpan, String span, MetroType type) {
    MetroProductionVo vo = new MetroProductionVo();
    NamedParameterJdbcTemplate namedParameterJdbcTemplate =
        new NamedParameterJdbcTemplate(ConfigDbUtil.getJdbcTemplate(""));
    String sql = null;
    try {
      switch (type) {
        case LINE:
          // 运用列车数 开行列次 运营里程
          sql =
              "select distinct \n"
                  + "t.online_eight_section+\n"
                  + "t.online_seven_section+\n"
                  + "t.online_six_section+\n"
                  + "t.online_four_section+\n"
                  + "t.online_three_section+\n"
                  + "t.backup_eight_section+\n"
                  + "t.backup_seven_section+\n"
                  + "t.backup_six_section+\n"
                  + "t.backup_four_section+\n"
                  + "t.backup_three_section useMetroDaily,\n"
                  + "t.metro_column_daily runMetroDaily,\n"
                  + "t.metro_column_month runMetroMonth,\n"
                  + "t.passenger_capacity_daily passCapDaily,\n"
                  + "t.passenger_capacity_year passCapYear,\n"
                  + "t.ticket_income_daily incomeDaily,\n"
                  + "t.ticket_income_year incomeYear,\n"
                  + "t.metro_distance_daily metroDistanceDaily,\n"
                  + "t.metro_distance_year metroDistanceYear \n"
                  + " from dw_metro_production t \n"
                  + "where t.removed=0 and t.indicator_line=? and t.indicator_date=?";

          vo =
              ConfigDbUtil.getJdbcTemplate("")
                  .queryForObject(
                      sql,
                      new Object[] {lineId, date},
                      new BeanPropertyRowMapper<MetroProductionVo>(MetroProductionVo.class));

          // 获取当前日管控值

          Map<String, Object> paramMap = new HashMap<String, Object>();

          BigDecimal a = new BigDecimal("0.0");
          BigDecimal b = new BigDecimal("0.0");
          BigDecimal c = new BigDecimal("0.0");
          double percent =
              (double) MetroCoverUtil.getCurDayByDate(date) / MetroCoverUtil.getMaxDaysByDate(date);
          // 过往月度管控值
          sql =
              "select sum(t.passenger_capacity) a,\n"
                  + "sum(t.ticket_income) b,\n"
                  + "sum(t.metro_distance) c from dw_metro_info_predict t\n"
                  + "where t.removed=0 and t.indicator_line= :indicator_line \n"
                  + "and t.indicator_year=:indicator_year\n"
                  + "and t.indicator_month in (:indicator_month)";
          paramMap.put("indicator_line", lineId);
          paramMap.put("indicator_year", MetroCoverUtil.getYear(date));
          paramMap.put("indicator_month", MetroCoverUtil.getCurrentBeforeMonth(date));
          Map<String, Object> aa = namedParameterJdbcTemplate.queryForMap(sql, paramMap);
          BigDecimal bb = (BigDecimal) aa.get("a");
          a = a.add((BigDecimal) aa.get("a"));
          b = b.add((BigDecimal) aa.get("b"));
          c = c.add((BigDecimal) aa.get("c"));

          // 当月累计管控值 精确到日
          sql =
              "select t.passenger_capacity a ,\n"
                  + " t.ticket_income  b,\n"
                  + " t.metro_distance  c from dw_metro_info_predict t\n"
                  + " where t.removed=0 and t.indicator_line= :indicator_line\n"
                  + " and t.indicator_year= :indicator_year \n"
                  + " and t.indicator_month = :indicator_month";
          paramMap = new HashMap<String, Object>();
          paramMap.put("indicator_line", lineId);
          paramMap.put("indicator_year", MetroCoverUtil.getYear(date));
          paramMap.put("indicator_month", MetroCoverUtil.getCurrentMonth(date));
          aa = namedParameterJdbcTemplate.queryForMap(sql, paramMap);

          a = a.add(((BigDecimal) aa.get("a")).multiply(new BigDecimal(percent)));
          b = b.add(((BigDecimal) aa.get("b")).multiply(new BigDecimal(percent)));
          c = c.add(((BigDecimal) aa.get("c")).multiply(new BigDecimal(percent)));

          vo.setPassCapDailyControl(a.doubleValue());
          vo.setIncomeDailyControl(b.doubleValue());
          vo.setMetroDistanceDailyControl(c.doubleValue());

          // 运用车总数
          sql =
              "select distinct t.all_section allSection from dw_metro_section_predict t \n"
                  + "where t.removed=0 and t.indicator_line =?\n"
                  + "and t.indicator_day=?";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("")
                  .queryForMap(sql, new Object[] {lineId, MetroCoverUtil.getDay(date)}),
              vo);
          // 近15日 运用列车数 开行列车
          sql =
              "select t.online_eight_section+t.online_seven_section+t.online_six_section+t.online_four_section\n"
                  + "+t.online_three_section+t.backup_eight_section+t.backup_seven_section+t.backup_six_section\n"
                  + "+t.backup_four_section+t.backup_three_section useMetroList, \n"
                  + " t.metro_column_daily runMetroList from dw_metro_production t \n"
                  + "where t.removed =0 and t.indicator_line = :indicator_line\n"
                  + "and t.indicator_date in (:indicator_date) order by t.indicator_date \n";
          paramMap = new HashMap<String, Object>();
          paramMap.put("indicator_line", lineId);
          paramMap.put("indicator_date", MetroCoverUtil.getLastDateByDaySpan(date, span));
          MetroCoverUtil.copyProperties(namedParameterJdbcTemplate.queryForList(sql, paramMap), vo);
          // 去年总额
          sql =
              "select distinct t.passenger_capacity_year passCapLastYear,\n"
                  + "t.ticket_income_year incomeLastYear,t.metro_distance_year metroDistanceLastYear\n"
                  + "from dw_metro_production t where t.indicator_line = ? and t.indicator_date=?\n"
                  + "and t.removed=0";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("")
                  .queryForMap(
                      sql, new Object[] {lineId, MetroCoverUtil.getLastDateLastYear(date)}),
              vo);
          // 年管控值
          sql =
              "select distinct t.passenger_capacity passCapControlYear,\n"
                  + "t.ticket_income incomeControlYear,\n"
                  + "t.metro_distance metroDistanceControlYear from dw_metro_info_predict t\n"
                  + "where t.removed=0 and t.indicator_line=? and t.indicator_year=?\n"
                  + "and t.indicator_month =0 ";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("")
                  .queryForMap(sql, new Object[] {lineId, MetroCoverUtil.getYear(date)}),
              vo);
          // 月计划累计值
          sql =
              "select sum(t.passenger_capacity) passCapPlanMonth,\n"
                  + "sum(t.ticket_income) incomePlanMonth,\n"
                  + "sum(t.metro_distance) metroDistancePlanMonth from dw_metro_info_predict t\n"
                  + "where t.removed=0 and t.indicator_line= :indicator_line \n"
                  + "and t.indicator_year=:indicator_year\n"
                  + "and t.indicator_month in (:indicator_month)";
          paramMap = new HashMap<String, Object>();
          paramMap.put("indicator_line", lineId);
          paramMap.put("indicator_year", MetroCoverUtil.getYear(date));
          paramMap.put("indicator_month", MetroCoverUtil.getTotalMonth(date));
          MetroCoverUtil.copyProperties(namedParameterJdbcTemplate.queryForMap(sql, paramMap), vo);
          // 近12个月平均值
          sql =
              "select avg(t.passenger_capacity_month) passCapAvgMonth,\n"
                  + "avg(t.ticket_income_month) incomeAvgMonth, \n"
                  + "avg(t.metro_distance_month) metroDistanceAvgMonth from dw_metro_production t\n"
                  + "where t.removed=0 and t.indicator_line= :indicator_line and t.indicator_date in (:indicator_date)\n";
          paramMap = new HashMap<String, Object>();
          paramMap.put("indicator_line", lineId);
          paramMap.put("indicator_date", MetroCoverUtil.getLastDateByMonthSpan(date, yearSpan));
          MetroCoverUtil.copyProperties(namedParameterJdbcTemplate.queryForMap(sql, paramMap), vo);
          // 近12个月值
          sql =
              "select t.passenger_capacity_month passCapMonthList,\n"
                  + "t.ticket_income_month incomeMonthList,\n"
                  + "t.metro_distance_month metroDistanceMonthList from dw_metro_production t\n"
                  + "where t.removed=0 and t.indicator_line= :indicator_line and t.indicator_date in (:indicator_date)\n"
                  + "order by t.indicator_date\n";
          paramMap = new HashMap<String, Object>();
          paramMap.put("indicator_line", lineId);
          paramMap.put("indicator_date", MetroCoverUtil.getLastDateByMonthSpan(date, yearSpan));
          MetroCoverUtil.copyProperties(namedParameterJdbcTemplate.queryForList(sql, paramMap), vo);
          // 开始日期结束日期 vo内进行
          sql =
              "select min(t.indicator_date) passCapStartMonth,\n"
                  + "min(t.indicator_date)incomeStartMonth,\n"
                  + "min(t.indicator_date) metroDistanceStartMonth,\n"
                  + "max(t.indicator_date) passCapEndMonth,\n"
                  + "max(t.indicator_date) incomeEndMonth,\n"
                  + "max(t.indicator_date) metroDistanceEndMonth from dw_metro_production t\n"
                  + " where t.removed=0 and t.indicator_line= :indicator_line and t.indicator_date in (:indicator_date)";
          paramMap = new HashMap<String, Object>();
          paramMap.put("indicator_line", lineId);
          paramMap.put("indicator_date", MetroCoverUtil.getLastDateByMonthSpan(date, yearSpan));
          MetroCoverUtil.copyProperties(namedParameterJdbcTemplate.queryForList(sql, paramMap), vo);

          // 去年日均 今年日均 日均管控
          sql =
              "select avg(t.passenger_capacity_daily) passCapAvgLastYear,\n"
                  + " avg(t.ticket_income_daily) incomeAvgLastYear,\n"
                  + " avg(t.metro_distance_daily) metroDistanceAvgLastYear from dw_metro_production t \n"
                  + "where t.indicator_line = ? and t.indicator_date >= ? and t.indicator_date <= ?\n"
                  + "and t.removed =0 ";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("")
                  .queryForMap(
                      sql,
                      new Object[] {
                        lineId,
                        MetroCoverUtil.getFirstDateLastYear(date),
                        MetroCoverUtil.getLastDateLastYear(date)
                      }),
              vo);
          sql =
              "select avg(t.passenger_capacity_daily) passCapAvgYear,\n"
                  + " avg(t.ticket_income_daily) incomeAvgYear,\n"
                  + " avg(t.metro_distance_daily) metroDistanceAvgYear from dw_metro_production t \n"
                  + "where t.indicator_line = ? and t.indicator_date >= ? and t.indicator_date <= ?\n"
                  + "and t.removed =0 ";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("")
                  .queryForMap(
                      sql, new Object[] {lineId, MetroCoverUtil.getFirstDateYear(date), date}),
              vo);

          // 今年峰值 峰值日期
          sql =
              "select passCapMaxYearDate,passCapMaxYear from (\n"
                  + "select t.indicator_date passCapMaxYearDate,\n"
                  + "t.passenger_capacity_daily passCapMaxYear, row_number ()\n"
                  + " over \n"
                  + "( order by t.passenger_capacity_daily desc)  rn\n"
                  + "from dw_metro_production t \n"
                  + "where t.removed='0' and t.indicator_line=? and  t.indicator_date >=?\n"
                  + "and t.indicator_date < =?\n"
                  + ") where rn=1\n";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("")
                  .queryForMap(
                      sql, new Object[] {lineId, MetroCoverUtil.getFirstDateYear(date), date}),
              vo);

          // 今年峰值 峰值日期
          sql =
              "select incomeMaxYearDate,incomeMaxYear from (\n"
                  + "select t.indicator_date incomeMaxYearDate,\n"
                  + "t.ticket_income_daily incomeMaxYear, row_number ()\n"
                  + " over \n"
                  + "( order by t.ticket_income_daily desc)  rn\n"
                  + "from dw_metro_production t \n"
                  + "where t.removed='0' and t.indicator_line=? and t.indicator_date >=?\n"
                  + "and t.indicator_date < =?\n"
                  + ") where rn=1\n";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("")
                  .queryForMap(
                      sql, new Object[] {lineId, MetroCoverUtil.getFirstDateYear(date), date}),
              vo);

          // 今年峰值 峰值日期
          sql =
              "select metroDistanceMaxYearDate,metroDistanceMaxYear from (\n"
                  + "select t.indicator_date metroDistanceMaxYearDate,\n"
                  + "t.metro_distance_daily metroDistanceMaxYear, row_number ()\n"
                  + " over \n"
                  + "( order by t.metro_distance_daily desc)  rn\n"
                  + "from dw_metro_production t \n"
                  + "where t.removed='0' and t.indicator_line=? and t.indicator_date >=?\n"
                  + "and t.indicator_date < =?\n"
                  + ") where rn=1\n";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("")
                  .queryForMap(
                      sql, new Object[] {lineId, MetroCoverUtil.getFirstDateYear(date), date}),
              vo);

          // 历史峰值 峰值日期
          sql =
              "select passCapMaxLastDate,passCapMaxLast from (\n"
                  + "select t.indicator_date passCapMaxLastDate,\n"
                  + "t.passenger_capacity_daily passCapMaxLast, row_number ()\n"
                  + " over \n"
                  + "( order by t.passenger_capacity_daily desc)  rn\n"
                  + "from dw_metro_production t \n"
                  + "where t.removed='0' and t.indicator_line=?\n"
                  + ") where rn=1\n";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("").queryForMap(sql, new Object[] {lineId}), vo);

          // 历史峰值 峰值日期
          sql =
              "select incomeMaxLastDate,incomeMaxLast from (\n"
                  + "select t.indicator_date incomeMaxLastDate,\n"
                  + "t.ticket_income_daily incomeMaxLast, row_number ()\n"
                  + " over \n"
                  + "( order by t.ticket_income_daily desc)  rn\n"
                  + "from dw_metro_production t \n"
                  + "where t.removed='0' and t.indicator_line=? \n"
                  + ") where rn=1\n";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("").queryForMap(sql, new Object[] {lineId}), vo);

          // 历史峰值 峰值日期
          sql =
              "select metroDistanceMaxLastDate,metroDistanceMaxLast from (\n"
                  + "select t.indicator_date metroDistanceMaxLastDate,\n"
                  + "t.metro_distance_daily metroDistanceMaxLast, row_number ()\n"
                  + " over \n"
                  + "( order by t.metro_distance_daily desc)  rn\n"
                  + "from dw_metro_production t \n"
                  + "where t.removed='0' and t.indicator_line=?\n"
                  + ") where rn=1\n";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("").queryForMap(sql, new Object[] {lineId}), vo);

          // 昨日数据
          sql =
              "select t.passenger_capacity_daily passCapLast,\n"
                  + "t.ticket_income_daily incomeLast,\n"
                  + "t.metro_distance_daily metroDistanceLast from dw_metro_production t where t.removed=0 \n"
                  + "and t.indicator_line = ? and t.indicator_date = ?";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("")
                  .queryForMap(sql, new Object[] {lineId, MetroCoverUtil.getPreDay(date)}),
              vo);

          break;
        case COMPANY:
          // 今年峰值 历史峰值
          sql =
              "select d passCapMaxYearDate  ,a passCapMaxYear from (\n"
                  + "select d,a,row_number() over(order by a desc) rn from (\n"
                  + "select sum(d.passenger_capacity_daily) a,indicator_date d\n"
                  + " from \n"
                  + "t_metro_company c , t_metro_line l,dw_metro_production d\n"
                  + "where c.line_id=l.line_id and c.company_id= ?\n"
                  + " and c.removed=0 and d.indicator_date >=?\n"
                  + "and d.indicator_date < =?\n"
                  + "and d.indicator_line=c.line_id \n"
                  + "group by c.company_id,d.indicator_date\n"
                  + ") p ) where rn=1";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("")
                  .queryForMap(
                      sql, new Object[] {companyId, MetroCoverUtil.getFirstDateYear(date), date}),
              vo);

          sql =
              "select d incomeMaxYearDate ,a incomeMaxYear from (\n"
                  + "select d,a,row_number() over(order by a desc) rn from (\n"
                  + "select sum(d.ticket_income_daily) a,indicator_date d\n"
                  + " from \n"
                  + "t_metro_company c , t_metro_line l,dw_metro_production d\n"
                  + "where c.line_id=l.line_id and c.company_id= ?\n"
                  + " and c.removed=0 and d.indicator_date >=?\n"
                  + "and d.indicator_date < =?\n"
                  + "and d.indicator_line=c.line_id \n"
                  + "group by c.company_id,d.indicator_date\n"
                  + ") p ) where rn=1";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("")
                  .queryForMap(
                      sql, new Object[] {companyId, MetroCoverUtil.getFirstDateYear(date), date}),
              vo);

          sql =
              "select d metroDistanceMaxYearDate ,a metroDistanceMaxYear from (\n"
                  + "select d,a,row_number() over(order by a desc) rn from (\n"
                  + "select sum(d.metro_distance_daily) a,indicator_date d\n"
                  + " from \n"
                  + "t_metro_company c , t_metro_line l,dw_metro_production d\n"
                  + "where c.line_id=l.line_id and c.company_id= ?\n"
                  + " and c.removed=0 and d.indicator_date >=?\n"
                  + "and d.indicator_date < =?\n"
                  + "and d.indicator_line=c.line_id \n"
                  + "group by c.company_id,d.indicator_date\n"
                  + ") p ) where rn=1";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("")
                  .queryForMap(
                      sql, new Object[] {companyId, MetroCoverUtil.getFirstDateYear(date), date}),
              vo);

          // 历史峰值
          sql =
              "select d passCapMaxLastDate  ,a passCapMaxLast from (\n"
                  + "select d,a,row_number() over(order by a desc) rn from (\n"
                  + "select sum(d.passenger_capacity_daily) a,indicator_date d\n"
                  + " from \n"
                  + "t_metro_company c , t_metro_line l,dw_metro_production d\n"
                  + "where c.line_id=l.line_id and c.company_id= ?\n"
                  + " and c.removed=0 \n"
                  + "and d.indicator_line=c.line_id \n"
                  + "group by c.company_id,d.indicator_date\n"
                  + ") p ) where rn=1";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("").queryForMap(sql, new Object[] {companyId}), vo);

          sql =
              "select d incomeMaxLastDate ,a incomeMaxLast from (\n"
                  + "select d,a,row_number() over(order by a desc) rn from (\n"
                  + "select sum(d.ticket_income_daily) a,indicator_date d\n"
                  + " from \n"
                  + "t_metro_company c , t_metro_line l,dw_metro_production d\n"
                  + "where c.line_id=l.line_id and c.company_id= ?\n"
                  + " and c.removed=0 \n"
                  + "and d.indicator_line=c.line_id \n"
                  + "group by c.company_id,d.indicator_date\n"
                  + ") p ) where rn=1";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("").queryForMap(sql, new Object[] {companyId}), vo);

          sql =
              "select d metroDistanceMaxLastDate ,a metroDistanceMaxLast from (\n"
                  + "select d,a,row_number() over(order by a desc) rn from (\n"
                  + "select sum(d.metro_distance_daily) a,indicator_date d\n"
                  + " from \n"
                  + "t_metro_company c , t_metro_line l,dw_metro_production d\n"
                  + "where c.line_id=l.line_id and c.company_id= ?\n"
                  + " and c.removed=0 \n"
                  + "and d.indicator_line=c.line_id \n"
                  + "group by c.company_id,d.indicator_date\n"
                  + ") p ) where rn=1";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("").queryForMap(sql, new Object[] {companyId}), vo);

          List<MetroLineVo> lines = getMetroLineByCompany(companyId);
          for (MetroLineVo lineVo : lines) {
            vo.getList()
                .add(
                    this.getMetroProductionInfo(
                        lineVo.getLineId(), companyId, date, yearSpan, span, MetroType.LINE));
          }
          break;
        default:
          break;
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
    // 刷新数据
    vo.refresh(lineId, companyId, date, type);
    return vo;
  }
  /**
   * 质量安全-获取相关信息
   *
   * @param lineId
   * @param companyId
   * @param date
   * @param span
   * @param type
   * @return
   */
  private MetroQualityVo getMetroQualityInfo(
      String lineId, String companyId, String date, String span, MetroType type) {
    MetroQualityVo vo = new MetroQualityVo();
    NamedParameterJdbcTemplate namedParameterJdbcTemplate =
        new NamedParameterJdbcTemplate(ConfigDbUtil.getJdbcTemplate(""));
    String sql = null;
    try {
      switch (type) {
        case LINE:
          // 今年累计正点率 : 日年累计 今日 日正点率
          sql =
              "select distinct\n"
                  + "t.metro_ontime_daily onTimeDaily,\n"
                  + "t.metro_ontime_year onTimeYear,\n"
                  + "t.metro_onwork_daily onWorkDaily,\n"
                  + "t.metro_onwork_year onWorkYear\n"
                  + "from dw_metro_quality t where\n"
                  + "t.indicator_line = ? and t.indicator_date=?\n";

          vo =
              ConfigDbUtil.getJdbcTemplate("")
                  .queryForObject(
                      sql,
                      new Object[] {lineId, date},
                      new BeanPropertyRowMapper<MetroQualityVo>(MetroQualityVo.class));

          // 去年累计正点率 :去年最后一天年累计
          sql =
              "select distinct\n"
                  + "t.metro_ontime_year onTimeLastYear,\n"
                  + "t.metro_onwork_year onWorkLastYear\n"
                  + "from dw_metro_quality t where\n"
                  + "t.indicator_line = ? and t.indicator_date=?\n";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("")
                  .queryForMap(
                      sql, new Object[] {lineId, MetroCoverUtil.getLastDateLastYear(date)}),
              vo);
          // 管控值 读取年管控值
          sql =
              "select distinct t.metro_ontime onTimeControl,\n"
                  + "t.metro_onwork onWorkControl from dw_metro_info_predict\n"
                  + "t where t.removed='0' and t.indicator_line = ? \n"
                  + "and t.indicator_year=? and t.indicator_month =0 ";
          MetroCoverUtil.copyProperties(
              ConfigDbUtil.getJdbcTemplate("")
                  .queryForMap(sql, new Object[] {lineId, MetroCoverUtil.getYear(date)}),
              vo);
          // 近15日的所有数据
          sql =
              "select \n"
                  + "t.metro_ontime_daily onTimeList,\n"
                  + "t.metro_onwork_daily onWorkList \n"
                  + "from dw_metro_quality t where t.indicator_line = :indicator_line\n"
                  + "and t.indicator_date in (:indicator_date) \n"
                  + "order by t.indicator_date";
          Map<String, Object> paramMap = new HashMap<String, Object>();
          paramMap.put("indicator_line", lineId);
          paramMap.put("indicator_date", MetroCoverUtil.getLastDateByDaySpan(date, span));
          MetroCoverUtil.copyProperties(namedParameterJdbcTemplate.queryForList(sql, paramMap), vo);
          break;
        case COMPANY:
          List<MetroLineVo> lines = getMetroLineByCompany(companyId);
          for (MetroLineVo lineVo : lines) {
            MetroQualityVo resultVo =
                this.getMetroQualityInfo(lineVo.getLineId(), companyId, date, span, MetroType.LINE);
            resultVo.setLineName(lineVo.getLineName());
            vo.getList().add(resultVo);
          }

          break;
        default:
          break;
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
    // 刷新数据
    vo.refresh(lineId, companyId, date, type);
    return vo;
  }