Commit 9283e1c176f360530a1b1382a05a4521b5b99bff

Authored by 王通
2 parents daca09ba 66133844

Merge remote-tracking branch 'origin/master'

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 }
... ...