Commit 885583f27a2c2c70850e8e3fda6f8a078ef51816

Authored by 娄高锋
1 parent 83c27b51

百公里能耗接口计算规则更新,根据车辆类型分别计算三种能源车的加注量与公里数,当天无加注的车辆里程也要计算。

src/main/java/com/bsth/server_rs/bigdata/BigscreenService.java
... ... @@ -3601,39 +3601,75 @@ public class BigscreenService {
3601 3601 String date1 = dateFormat.format(m1);
3602 3602 String date2 = dateFormat.format(m2);
3603 3603  
3604   - String ylbSql="SELECT yh, zlc from bsth_c_ylb where rq >= ? and rq <= ? "
3605   - + " and yh is not null and yh > 0 and zlc is not null and zlc > 0 ";
  3604 + String carSql="SELECT inside_code, sfdc, sfmix, hydrogen from bsth_c_cars ";
  3605 + List<Map<String, Object>> carList=jdbcTemplate.query(carSql,
  3606 + new RowMapper<Map<String, Object>>(){
  3607 + @Override
  3608 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  3609 + Map<String, Object> m=new HashMap<String,Object>();
  3610 + m.put("nbbm", rs.getString("inside_code")!=null?rs.getString("inside_code"):"");
  3611 + m.put("sfdc", rs.getString("sfdc")!=null?rs.getString("sfdc"):0);
  3612 + m.put("sfmix", rs.getString("sfmix")!=null?rs.getString("sfmix"):0);
  3613 + m.put("hydrogen", rs.getString("hydrogen")!=null?rs.getString("hydrogen"):0);
  3614 + return m;
  3615 + }
  3616 + });
  3617 + Set<String> oilCar = new HashSet<String>();
  3618 + Set<String> electricCar = new HashSet<String>();
  3619 + Set<String> hydrogenCar = new HashSet<String>();
  3620 + for(Map<String, Object> m : carList){
  3621 + String nbbm = m.get("nbbm").toString();
  3622 + String sfdc = m.get("sfdc").toString();
  3623 + String sfmix = m.get("sfmix").toString();
  3624 + String hydrogen = m.get("hydrogen").toString();
  3625 + if("1".equals(hydrogen)){
  3626 + hydrogenCar.add(nbbm);
  3627 + if("1".equals(sfmix) || "1".equals(sfdc)){
  3628 + electricCar.add(nbbm);
  3629 + }
  3630 + } else if("1".equals(sfdc)){
  3631 + electricCar.add(nbbm);
  3632 + if("1".equals(sfmix)){
  3633 + oilCar.add(nbbm);
  3634 + }
  3635 + } else {
  3636 + oilCar.add(nbbm);
  3637 + }
  3638 + }
  3639 +
  3640 + String ylbSql="SELECT nbbm, IFNULL(yh, 0) yh, IFNULL(zlc, 0) zlc from bsth_c_ylb where rq >= ? and rq <= ? ";
3606 3641 List<Map<String, Object>> ylbList=jdbcTemplate.query(ylbSql, new Object[]{date1, date2},
3607 3642 new RowMapper<Map<String, Object>>(){
3608 3643 @Override
3609 3644 public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
3610 3645 Map<String, Object> m=new HashMap<String,Object>();
  3646 + m.put("nbbm", rs.getString("nbbm"));
3611 3647 m.put("yh", rs.getString("yh"));
3612 3648 m.put("zlc", rs.getString("zlc"));
3613 3649 return m;
3614 3650 }
3615 3651 });
3616 3652  
3617   - String dlbSql="SELECT hd, zlc from bsth_c_dlb where rq >= ? and rq <= ? "
3618   - + " and hd is not null and hd > 0 and zlc is not null and zlc > 0 ";
  3653 + String dlbSql="SELECT nbbm, IFNULL(hd, 0) hd, IFNULL(zlc, 0) zlc from bsth_c_dlb where rq >= ? and rq <= ? ";
3619 3654 List<Map<String, Object>> dlbList=jdbcTemplate.query(dlbSql, new Object[]{date1, date2},
3620 3655 new RowMapper<Map<String, Object>>(){
3621 3656 @Override
3622 3657 public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
3623 3658 Map<String, Object> m=new HashMap<String,Object>();
  3659 + m.put("nbbm", rs.getString("nbbm"));
3624 3660 m.put("hd", rs.getString("hd"));
3625 3661 m.put("zlc", rs.getString("zlc"));
3626 3662 return m;
3627 3663 }
3628 3664 });
3629 3665  
3630   - String qlbSql="SELECT hn, zlc from bsth_c_qlb where rq >= ? and rq <= ? "
3631   - + " and hn is not null and hn > 0 and zlc is not null and zlc > 0 ";
  3666 + String qlbSql="SELECT nbbm, IFNULL(hn, 0) hn, IFNULL(zlc, 0) zlc from bsth_c_qlb where rq >= ? and rq <= ? ";
3632 3667 List<Map<String, Object>> qlbList=jdbcTemplate.query(qlbSql, new Object[]{date1, date2},
3633 3668 new RowMapper<Map<String, Object>>(){
3634 3669 @Override
3635 3670 public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
3636 3671 Map<String, Object> m=new HashMap<String,Object>();
  3672 + m.put("nbbm", rs.getString("nbbm"));
3637 3673 m.put("hn", rs.getString("hn"));
3638 3674 m.put("zlc", rs.getString("zlc"));
3639 3675 return m;
... ... @@ -3683,18 +3719,27 @@ public class BigscreenService {
3683 3719 hd = new BigDecimal(0), hd_zlc = new BigDecimal(0),
3684 3720 hn = new BigDecimal(0), hn_zlc = new BigDecimal(0);
3685 3721 for(Map<String, Object> m : ylbList){
3686   - yh = yh.add(new BigDecimal(m.get("yh").toString()));
3687   - yh_zlc = yh_zlc.add(new BigDecimal(m.get("zlc").toString()));
  3722 + String nbbm = m.get("nbbm").toString();
  3723 + if(oilCar.contains(nbbm)){
  3724 + yh = yh.add(new BigDecimal(m.get("yh").toString()));
  3725 + yh_zlc = yh_zlc.add(new BigDecimal(m.get("zlc").toString()));
  3726 + }
3688 3727 }
3689 3728  
3690 3729 for(Map<String, Object> m : dlbList){
3691   - hd = hd.add(new BigDecimal(m.get("hd").toString()));
3692   - hd_zlc = hd_zlc.add(new BigDecimal(m.get("zlc").toString()));
  3730 + String nbbm = m.get("nbbm").toString();
  3731 + if(electricCar.contains(nbbm)){
  3732 + hd = hd.add(new BigDecimal(m.get("hd").toString()));
  3733 + hd_zlc = hd_zlc.add(new BigDecimal(m.get("zlc").toString()));
  3734 + }
3693 3735 }
3694 3736  
3695 3737 for(Map<String, Object> m : qlbList){
3696   - hn = hn.add(new BigDecimal(m.get("hn").toString()));
3697   - hn_zlc = hn_zlc.add(new BigDecimal(m.get("zlc").toString()));
  3738 + String nbbm = m.get("nbbm").toString();
  3739 + if(hydrogenCar.contains(nbbm)){
  3740 + hn = hn.add(new BigDecimal(m.get("hn").toString()));
  3741 + hn_zlc = hn_zlc.add(new BigDecimal(m.get("zlc").toString()));
  3742 + }
3698 3743 }
3699 3744  
3700 3745 BigDecimal yygl = new BigDecimal(0), ksgl = new BigDecimal(0), zgl = new BigDecimal(0);
... ...