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,39 +3601,75 @@ public class BigscreenService {
3601 String date1 = dateFormat.format(m1); 3601 String date1 = dateFormat.format(m1);
3602 String date2 = dateFormat.format(m2); 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 List<Map<String, Object>> ylbList=jdbcTemplate.query(ylbSql, new Object[]{date1, date2}, 3641 List<Map<String, Object>> ylbList=jdbcTemplate.query(ylbSql, new Object[]{date1, date2},
3607 new RowMapper<Map<String, Object>>(){ 3642 new RowMapper<Map<String, Object>>(){
3608 @Override 3643 @Override
3609 public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException { 3644 public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
3610 Map<String, Object> m=new HashMap<String,Object>(); 3645 Map<String, Object> m=new HashMap<String,Object>();
  3646 + m.put("nbbm", rs.getString("nbbm"));
3611 m.put("yh", rs.getString("yh")); 3647 m.put("yh", rs.getString("yh"));
3612 m.put("zlc", rs.getString("zlc")); 3648 m.put("zlc", rs.getString("zlc"));
3613 return m; 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 List<Map<String, Object>> dlbList=jdbcTemplate.query(dlbSql, new Object[]{date1, date2}, 3654 List<Map<String, Object>> dlbList=jdbcTemplate.query(dlbSql, new Object[]{date1, date2},
3620 new RowMapper<Map<String, Object>>(){ 3655 new RowMapper<Map<String, Object>>(){
3621 @Override 3656 @Override
3622 public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException { 3657 public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
3623 Map<String, Object> m=new HashMap<String,Object>(); 3658 Map<String, Object> m=new HashMap<String,Object>();
  3659 + m.put("nbbm", rs.getString("nbbm"));
3624 m.put("hd", rs.getString("hd")); 3660 m.put("hd", rs.getString("hd"));
3625 m.put("zlc", rs.getString("zlc")); 3661 m.put("zlc", rs.getString("zlc"));
3626 return m; 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 List<Map<String, Object>> qlbList=jdbcTemplate.query(qlbSql, new Object[]{date1, date2}, 3667 List<Map<String, Object>> qlbList=jdbcTemplate.query(qlbSql, new Object[]{date1, date2},
3633 new RowMapper<Map<String, Object>>(){ 3668 new RowMapper<Map<String, Object>>(){
3634 @Override 3669 @Override
3635 public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException { 3670 public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
3636 Map<String, Object> m=new HashMap<String,Object>(); 3671 Map<String, Object> m=new HashMap<String,Object>();
  3672 + m.put("nbbm", rs.getString("nbbm"));
3637 m.put("hn", rs.getString("hn")); 3673 m.put("hn", rs.getString("hn"));
3638 m.put("zlc", rs.getString("zlc")); 3674 m.put("zlc", rs.getString("zlc"));
3639 return m; 3675 return m;
@@ -3683,18 +3719,27 @@ public class BigscreenService { @@ -3683,18 +3719,27 @@ public class BigscreenService {
3683 hd = new BigDecimal(0), hd_zlc = new BigDecimal(0), 3719 hd = new BigDecimal(0), hd_zlc = new BigDecimal(0),
3684 hn = new BigDecimal(0), hn_zlc = new BigDecimal(0); 3720 hn = new BigDecimal(0), hn_zlc = new BigDecimal(0);
3685 for(Map<String, Object> m : ylbList){ 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 for(Map<String, Object> m : dlbList){ 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 for(Map<String, Object> m : qlbList){ 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 BigDecimal yygl = new BigDecimal(0), ksgl = new BigDecimal(0), zgl = new BigDecimal(0); 3745 BigDecimal yygl = new BigDecimal(0), ksgl = new BigDecimal(0), zgl = new BigDecimal(0);