Commit 9283e1c176f360530a1b1382a05a4521b5b99bff
Merge remote-tracking branch 'origin/master'
Showing
1 changed file
with
134 additions
and
39 deletions
src/main/java/com/bsth/server_rs/bigdata/BigscreenService.java
| ... | ... | @@ -217,7 +217,6 @@ public class BigscreenService { |
| 217 | 217 | } |
| 218 | 218 | }); |
| 219 | 219 | |
| 220 | - Set<String> yyLine = new HashSet<String>(); | |
| 221 | 220 | int level1 = 0, level2 = 0; |
| 222 | 221 | for(Map<String, Object> t : lineList){ |
| 223 | 222 | if(t.get("level") != null){ |
| ... | ... | @@ -227,12 +226,28 @@ public class BigscreenService { |
| 227 | 226 | ++level2; |
| 228 | 227 | } |
| 229 | 228 | } |
| 230 | - | |
| 229 | + } | |
| 230 | + | |
| 231 | + | |
| 232 | + String yyxlSql="SELECT line_code from bsth_c_line " | |
| 233 | + + " where nature in ('yxl','cgxl','gjxl','csbs','cctxl')"; | |
| 234 | + List<Map<String, Object>> yyxlList=jdbcTemplate.query(yyxlSql, | |
| 235 | + new RowMapper<Map<String, Object>>(){ | |
| 236 | + @Override | |
| 237 | + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException { | |
| 238 | + Map<String, Object> m=new HashMap<String,Object>(); | |
| 239 | + m.put("lineCode", rs.getString("line_code")); | |
| 240 | + return m; | |
| 241 | + } | |
| 242 | + }); | |
| 243 | + Set<String> yyLine = new HashSet<String>(); | |
| 244 | + for(Map<String, Object> t : yyxlList){ | |
| 231 | 245 | if(t.get("lineCode") != null){ |
| 232 | 246 | yyLine.add(t.get("lineCode").toString()); |
| 233 | 247 | } |
| 234 | 248 | } |
| 235 | 249 | |
| 250 | + | |
| 236 | 251 | String sql="select xl,xl_name,date,jhbc,bczxl,jhbcz,sjbc,jhcc,sjcc,ccl,jhccz," |
| 237 | 252 | + " jhyylc,sjyylc,jhyylcz,jhkslc,sjkslc,jhkslcz," |
| 238 | 253 | + " jhssgfbcs,sjgfbcs,jhgfbcsz,jhssdgbcs,sjdgbcs,jhdgbcsz," |
| ... | ... | @@ -410,15 +425,30 @@ public class BigscreenService { |
| 410 | 425 | String date1 = sd.format(dd1); //前一天 |
| 411 | 426 | List<ScheduleRealInfo> findAll = scheduleRealInfoRepository.findAll(date1); |
| 412 | 427 | List<ScheduleRealInfo> listSche = new ArrayList<ScheduleRealInfo>(); |
| 428 | + List<ScheduleRealInfo> list_s = new ArrayList<ScheduleRealInfo>(); | |
| 413 | 429 | for(ScheduleRealInfo s : findAll){ |
| 414 | 430 | if(s.getXlBm() != null && yyLine.contains(s.getXlBm())){//营运线路 |
| 415 | 431 | listSche.add(s); |
| 432 | + Set<ChildTaskPlan> cts = s.getcTasks(); | |
| 433 | + if (cts != null && cts.size() > 0) { | |
| 434 | + list_s.add(s); | |
| 435 | + } else { | |
| 436 | + if (s.getZdsjActual() != null && s.getFcsjActual() != null) { | |
| 437 | + list_s.add(s); | |
| 438 | + } | |
| 439 | + } | |
| 416 | 440 | } |
| 417 | 441 | } |
| 418 | 442 | double jhyygl = culateJhgl(listSche);//计划营运公里 |
| 419 | - double sjgl = culateSjgl(listSche);//实际公里 | |
| 443 | + double jhjccgl = culateJhJccgl(listSche); | |
| 444 | + double jhzgl = Arith.add(jhyygl, jhjccgl); | |
| 445 | + double sjgl = culateSjgl(list_s);//实际营运公里(不含临加) | |
| 420 | 446 | double sjljgl = culateLjgl(listSche);//实际临加公里 |
| 421 | 447 | double sjyygl = Arith.add(sjgl, sjljgl);//实际营运公里 |
| 448 | + double sjjccgl = culateJccgl(list_s); | |
| 449 | + double sjksgl = culateKsgl(list_s); | |
| 450 | + double zksgl = Arith.add(sjjccgl, sjksgl); | |
| 451 | + double sjzgl = Arith.add(sjyygl, zksgl);//实际总公里 | |
| 422 | 452 | double lz = culateCJLC(listSche, "路阻"); |
| 423 | 453 | double dm = culateCJLC(listSche, "吊慢"); |
| 424 | 454 | double gz = culateCJLC(listSche, "故障"); |
| ... | ... | @@ -436,14 +466,14 @@ public class BigscreenService { |
| 436 | 466 | double lb_qt = culateCJLC(listSche, "其他"); |
| 437 | 467 | double qt = Arith.add(Arith.add(lb_pc, lb_by), Arith.add(lb_cj, lb_qt));//其他 |
| 438 | 468 | |
| 439 | - Map<String, Object> jhyyglMap = new HashMap<String, Object>(); | |
| 440 | - jhyyglMap.put("name", "计划营运"); | |
| 441 | - jhyyglMap.put("value", jhyygl); | |
| 442 | - glList.add(jhyyglMap); | |
| 443 | - Map<String, Object> sjyyglMap = new HashMap<String, Object>(); | |
| 444 | - sjyyglMap.put("name", "实际营运"); | |
| 445 | - sjyyglMap.put("value", sjyygl); | |
| 446 | - glList.add(sjyyglMap); | |
| 469 | + Map<String, Object> jhzglMap = new HashMap<String, Object>(); | |
| 470 | + jhzglMap.put("name", "计划总公里"); | |
| 471 | + jhzglMap.put("value", jhzgl); | |
| 472 | + glList.add(jhzglMap); | |
| 473 | + Map<String, Object> sjzglMap = new HashMap<String, Object>(); | |
| 474 | + sjzglMap.put("name", "实际总公里"); | |
| 475 | + sjzglMap.put("value", sjzgl); | |
| 476 | + glList.add(sjzglMap); | |
| 447 | 477 | Map<String, Object> lzMap = new HashMap<String, Object>(); |
| 448 | 478 | lzMap.put("name", "路阻"); |
| 449 | 479 | lzMap.put("value", lz); |
| ... | ... | @@ -536,36 +566,26 @@ public class BigscreenService { |
| 536 | 566 | datesMap.put(format, i); |
| 537 | 567 | } |
| 538 | 568 | |
| 539 | - String lineSql="SELECT b.start_opt,a.company,a.line_code,a.name,a.level," | |
| 540 | - + " a.shanghai_linecode, a.nature from " | |
| 541 | - + " bsth_c_line a left join bsth_c_line_config b " | |
| 542 | - + " on a.id=b.line where a.shanghai_linecode is not null" | |
| 543 | - + " and a.shanghai_linecode !='' and a.destroy=0 and a.remove=0" | |
| 544 | - + " and a.nature in ('yxl','cgxl','gjxl','csbs','cctxl')"; | |
| 545 | - List<Map<String, Object>> lineList=jdbcTemplate.query(lineSql, | |
| 569 | + | |
| 570 | + String yyxlSql="SELECT line_code from bsth_c_line " | |
| 571 | + + " where nature in ('yxl','cgxl','gjxl','csbs','cctxl')"; | |
| 572 | + List<Map<String, Object>> yyxlList=jdbcTemplate.query(yyxlSql, | |
| 546 | 573 | new RowMapper<Map<String, Object>>(){ |
| 547 | 574 | @Override |
| 548 | 575 | public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException { |
| 549 | 576 | Map<String, Object> m=new HashMap<String,Object>(); |
| 550 | - m.put("state", rs.getString("start_opt")); | |
| 551 | - m.put("company", rs.getString("company")); | |
| 552 | - m.put("companyName", getGs(rs.getString("company"))); | |
| 553 | - m.put("lineCode",rs.getString("line_code")); | |
| 554 | - m.put("name", rs.getString("name")); | |
| 555 | - m.put("level", rs.getString("level")); | |
| 556 | - m.put("shanghaiLinecode", rs.getString("shanghai_linecode")); | |
| 557 | - m.put("nature", getNature(rs.getString("nature"))); | |
| 577 | + m.put("lineCode", rs.getString("line_code")); | |
| 558 | 578 | return m; |
| 559 | 579 | } |
| 560 | 580 | }); |
| 561 | - | |
| 562 | 581 | Set<String> yyLine = new HashSet<String>(); |
| 563 | - for(Map<String, Object> t : lineList){ | |
| 582 | + for(Map<String, Object> t : yyxlList){ | |
| 564 | 583 | if(t.get("lineCode") != null){ |
| 565 | 584 | yyLine.add(t.get("lineCode").toString()); |
| 566 | 585 | } |
| 567 | 586 | } |
| 568 | - | |
| 587 | + | |
| 588 | + | |
| 569 | 589 | List<Map<String, Object>> attList = new ArrayList<Map<String, Object>>(); |
| 570 | 590 | List<Map<String, Object>> lackList = new ArrayList<Map<String, Object>>(); |
| 571 | 591 | |
| ... | ... | @@ -823,6 +843,7 @@ public class BigscreenService { |
| 823 | 843 | return mapList; |
| 824 | 844 | } |
| 825 | 845 | |
| 846 | + /**计划营运公里*/ | |
| 826 | 847 | public double culateJhgl(List<ScheduleRealInfo> lists) { |
| 827 | 848 | // TODO Auto-generated method stub |
| 828 | 849 | double jhgl=0; |
| ... | ... | @@ -837,6 +858,7 @@ public class BigscreenService { |
| 837 | 858 | return jhgl; |
| 838 | 859 | } |
| 839 | 860 | |
| 861 | + /**实际营运公里(不包含临加)*/ | |
| 840 | 862 | public double culateSjgl(List<ScheduleRealInfo> lists) { |
| 841 | 863 | // TODO Auto-generated method stub |
| 842 | 864 | double sjgl=0; |
| ... | ... | @@ -866,7 +888,7 @@ public class BigscreenService { |
| 866 | 888 | if (!childTaskPlan.isDestroy()) { |
| 867 | 889 | Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage(); |
| 868 | 890 | sjgl=Arith.add(sjgl,jhgl); |
| 869 | - } | |
| 891 | + } | |
| 870 | 892 | } |
| 871 | 893 | } |
| 872 | 894 | } |
| ... | ... | @@ -876,6 +898,7 @@ public class BigscreenService { |
| 876 | 898 | return sjgl; |
| 877 | 899 | } |
| 878 | 900 | |
| 901 | + /**临加公里*/ | |
| 879 | 902 | public double culateLjgl(List<ScheduleRealInfo> lists) { |
| 880 | 903 | // TODO Auto-generated method stub |
| 881 | 904 | double ljgl=0; |
| ... | ... | @@ -891,7 +914,8 @@ public class BigscreenService { |
| 891 | 914 | Iterator<ChildTaskPlan> it = childTaskPlans.iterator(); |
| 892 | 915 | while (it.hasNext()) { |
| 893 | 916 | ChildTaskPlan childTaskPlan = it.next(); |
| 894 | - if(childTaskPlan.getMileageType().equals("service") && childTaskPlan.getCcId()==null){ | |
| 917 | + if(childTaskPlan.getMileageType().equals("service") | |
| 918 | + && childTaskPlan.getCcId()==null){ | |
| 895 | 919 | if (!childTaskPlan.isDestroy()) { |
| 896 | 920 | Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage(); |
| 897 | 921 | ljgl=Arith.add(ljgl,jhgl); |
| ... | ... | @@ -912,24 +936,24 @@ public class BigscreenService { |
| 912 | 936 | Iterator<ChildTaskPlan> it = childTaskPlans.iterator(); |
| 913 | 937 | while (it.hasNext()) { |
| 914 | 938 | ChildTaskPlan childTaskPlan = it.next(); |
| 915 | - if(childTaskPlan.getCcId()==null){ | |
| 916 | - if("service".equals(childTaskPlan.getMileageType())&&"临加".equals(childTaskPlan.getType1())){ | |
| 917 | - if (!childTaskPlan.isDestroy()) { | |
| 918 | - Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage(); | |
| 919 | - ljgl=Arith.add(ljgl,jhgl); | |
| 920 | - } | |
| 921 | - } | |
| 939 | + if("service".equals(childTaskPlan.getMileageType()) | |
| 940 | + && "临加".equals(childTaskPlan.getType1()) | |
| 941 | + && childTaskPlan.getCcId()==null){ | |
| 942 | + if (!childTaskPlan.isDestroy()) { | |
| 943 | + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage(); | |
| 944 | + ljgl=Arith.add(ljgl,jhgl); | |
| 945 | + } | |
| 922 | 946 | } |
| 923 | 947 | } |
| 924 | 948 | } |
| 925 | 949 | } |
| 926 | 950 | } |
| 927 | - | |
| 928 | 951 | } |
| 929 | 952 | } |
| 930 | 953 | return ljgl; |
| 931 | 954 | } |
| 932 | 955 | |
| 956 | + /**烂班(少驶)公里*/ | |
| 933 | 957 | public double culateCJLC(List<ScheduleRealInfo> list, String item) { |
| 934 | 958 | // TODO Auto-generated method stub |
| 935 | 959 | double sum = 0; |
| ... | ... | @@ -975,4 +999,75 @@ public class BigscreenService { |
| 975 | 999 | } |
| 976 | 1000 | return sum; |
| 977 | 1001 | } |
| 1002 | + | |
| 1003 | + /**计划空驶公里*/ | |
| 1004 | + public double culateJhJccgl(List<ScheduleRealInfo> lists) { | |
| 1005 | + // TODO Auto-generated method stub | |
| 1006 | + double jcclc =0; | |
| 1007 | + for (int i = 0; i < lists.size(); i++) { | |
| 1008 | + ScheduleRealInfo scheduleRealInfo=lists.get(i); | |
| 1009 | + if(!scheduleRealInfo.isSflj() && !scheduleRealInfo.isCcService()){ | |
| 1010 | + if (isInOut(scheduleRealInfo)) { | |
| 1011 | + jcclc =Arith.add(jcclc, scheduleRealInfo.getJhlcOrig()==null?0:scheduleRealInfo.getJhlcOrig()); | |
| 1012 | + } | |
| 1013 | + } | |
| 1014 | + } | |
| 1015 | + return jcclc; | |
| 1016 | + } | |
| 1017 | + | |
| 1018 | + /**实际进出场空驶*/ | |
| 1019 | + public double culateJccgl(List<ScheduleRealInfo> lists) { | |
| 1020 | + // TODO Auto-generated method stub | |
| 1021 | + double jcclc =0; | |
| 1022 | + for (int i = 0; i < lists.size(); i++) { | |
| 1023 | + ScheduleRealInfo scheduleRealInfo=lists.get(i); | |
| 1024 | + if (isInOut(scheduleRealInfo)) { | |
| 1025 | + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks(); | |
| 1026 | + if(childTaskPlans.isEmpty()){ | |
| 1027 | + if(!(scheduleRealInfo.getStatus() == -1)){ | |
| 1028 | + jcclc =Arith.add(jcclc, scheduleRealInfo.getJhlc()==null?0:scheduleRealInfo.getJhlc()); | |
| 1029 | + } | |
| 1030 | + }else{ | |
| 1031 | + Iterator<ChildTaskPlan> it = childTaskPlans.iterator(); | |
| 1032 | + while (it.hasNext()) { | |
| 1033 | + ChildTaskPlan childTaskPlan = it.next(); | |
| 1034 | + if(childTaskPlan.getMileageType().equals("empty") | |
| 1035 | + && childTaskPlan.getCcId()==null){ | |
| 1036 | + if (!childTaskPlan.isDestroy()) { | |
| 1037 | + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage(); | |
| 1038 | + jcclc=Arith.add(jcclc,jhgl); | |
| 1039 | + } | |
| 1040 | + } | |
| 1041 | + } | |
| 1042 | + } | |
| 1043 | + } | |
| 1044 | + } | |
| 1045 | + return jcclc; | |
| 1046 | + } | |
| 1047 | + | |
| 1048 | + /**实际非进出场空驶公里*/ | |
| 1049 | + public double culateKsgl(List<ScheduleRealInfo> lists) { | |
| 1050 | + // TODO Auto-generated method stub | |
| 1051 | + double ksgl =0; | |
| 1052 | + for (int i = 0; i < lists.size(); i++) { | |
| 1053 | + ScheduleRealInfo scheduleRealInfo=lists.get(i); | |
| 1054 | + if (!isInOut(scheduleRealInfo)) { | |
| 1055 | + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks(); | |
| 1056 | + if(!childTaskPlans.isEmpty()){ | |
| 1057 | + Iterator<ChildTaskPlan> it = childTaskPlans.iterator(); | |
| 1058 | + while (it.hasNext()) { | |
| 1059 | + ChildTaskPlan childTaskPlan = it.next(); | |
| 1060 | + if(childTaskPlan.getMileageType().equals("empty") && childTaskPlan.getCcId()==null){ | |
| 1061 | + if (!childTaskPlan.isDestroy()) { | |
| 1062 | + Float jhgl=childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage(); | |
| 1063 | + ksgl=Arith.add(ksgl,jhgl); | |
| 1064 | + } | |
| 1065 | + } | |
| 1066 | + } | |
| 1067 | + } | |
| 1068 | + } | |
| 1069 | + } | |
| 1070 | + return ksgl; | |
| 1071 | + } | |
| 1072 | + | |
| 978 | 1073 | } | ... | ... |