Commit 7ebfa758d4878aa4ee9b4db3cedbb8f5f29e7827
1 parent
62867bc2
LGF 报表
Showing
6 changed files
with
1013 additions
and
244 deletions
src/main/java/com/bsth/service/impl/BusIntervalServiceImpl.java
| @@ -44,12 +44,6 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -44,12 +44,6 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 44 | List<ScheduleRealInfo> list = new ArrayList<ScheduleRealInfo>(); | 44 | List<ScheduleRealInfo> list = new ArrayList<ScheduleRealInfo>(); |
| 45 | List<ScheduleRealInfo> resList = new ArrayList<ScheduleRealInfo>(); | 45 | List<ScheduleRealInfo> resList = new ArrayList<ScheduleRealInfo>(); |
| 46 | 46 | ||
| 47 | - if(startDate.length() == 0){ | ||
| 48 | - startDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); | ||
| 49 | - } | ||
| 50 | - if(endDate.length() == 0){ | ||
| 51 | - endDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); | ||
| 52 | - } | ||
| 53 | try { | 47 | try { |
| 54 | 48 | ||
| 55 | String sql = "select * from bsth_c_s_sp_info_real where DATE_FORMAT(schedule_date,'%Y-%m-%d') >= '"+startDate+"' and DATE_FORMAT(schedule_date,'%Y-%m-%d') <= '"+endDate+"'"; | 49 | String sql = "select * from bsth_c_s_sp_info_real where DATE_FORMAT(schedule_date,'%Y-%m-%d') >= '"+startDate+"' and DATE_FORMAT(schedule_date,'%Y-%m-%d') <= '"+endDate+"'"; |
| @@ -84,6 +78,13 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -84,6 +78,13 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 84 | schedule.setXlDir(rs.getString("xl_dir")); | 78 | schedule.setXlDir(rs.getString("xl_dir")); |
| 85 | schedule.setStatus(rs.getInt("status")); | 79 | schedule.setStatus(rs.getInt("status")); |
| 86 | schedule.setRemarks(rs.getString("remarks")); | 80 | schedule.setRemarks(rs.getString("remarks")); |
| 81 | + schedule.setGsName(rs.getString("gs_name")); | ||
| 82 | + schedule.setFgsName(rs.getString("fgs_name")); | ||
| 83 | + schedule.setDfAuto(rs.getBoolean("df_auto")); | ||
| 84 | + schedule.setOnline(rs.getBoolean("online")); | ||
| 85 | + schedule.setClZbh(rs.getString("cl_zbh")); | ||
| 86 | + schedule.setjGh(rs.getString("j_gh")); | ||
| 87 | + schedule.setjName(rs.getString("j_name")); | ||
| 87 | return schedule; | 88 | return schedule; |
| 88 | } | 89 | } |
| 89 | }); | 90 | }); |
| @@ -216,6 +217,16 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -216,6 +217,16 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 216 | String model = map.get("model").toString(); | 217 | String model = map.get("model").toString(); |
| 217 | String times = map.get("times").toString(); | 218 | String times = map.get("times").toString(); |
| 218 | String type = map.get("type").toString(); | 219 | String type = map.get("type").toString(); |
| 220 | + | ||
| 221 | + if(startDate.length() == 0){ | ||
| 222 | + startDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); | ||
| 223 | + } | ||
| 224 | + if(endDate.length() == 0){ | ||
| 225 | + endDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); | ||
| 226 | + } | ||
| 227 | + if(times.length() == 0){ | ||
| 228 | + times = "06:00-07:00"; | ||
| 229 | + } | ||
| 219 | 230 | ||
| 220 | List<ScheduleRealInfo> list = this.getSchedule(line, startDate, endDate, model, times); | 231 | List<ScheduleRealInfo> list = this.getSchedule(line, startDate, endDate, model, times); |
| 221 | 232 | ||
| @@ -243,6 +254,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -243,6 +254,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 243 | long sjInterval = 0; | 254 | long sjInterval = 0; |
| 244 | int jhNum = 0; | 255 | int jhNum = 0; |
| 245 | int sjNum = 0; | 256 | int sjNum = 0; |
| 257 | + String company = "", subCompany = ""; | ||
| 246 | Map<String, Object> tempMap = new HashMap<String, Object>(); | 258 | Map<String, Object> tempMap = new HashMap<String, Object>(); |
| 247 | Map<String, List<ScheduleRealInfo>> temp = new HashMap<String, List<ScheduleRealInfo>>(); | 259 | Map<String, List<ScheduleRealInfo>> temp = new HashMap<String, List<ScheduleRealInfo>>(); |
| 248 | for(ScheduleRealInfo schedule : keyMap.get(key)){ | 260 | for(ScheduleRealInfo schedule : keyMap.get(key)){ |
| @@ -257,6 +269,10 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -257,6 +269,10 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 257 | jhNum++; | 269 | jhNum++; |
| 258 | ScheduleRealInfo schedule1 = tempList.get(i - 1); | 270 | ScheduleRealInfo schedule1 = tempList.get(i - 1); |
| 259 | ScheduleRealInfo schedule2 = tempList.get(i); | 271 | ScheduleRealInfo schedule2 = tempList.get(i); |
| 272 | + if(schedule1.getGsName() != null && company.length() == 0) | ||
| 273 | + company = schedule1.getGsName(); | ||
| 274 | + if(schedule1.getFgsName() != null && subCompany.length() == 0) | ||
| 275 | + subCompany = schedule1.getFgsName(); | ||
| 260 | jhInterval += schedule2.getFcsjT(); | 276 | jhInterval += schedule2.getFcsjT(); |
| 261 | jhInterval -= schedule1.getFcsjT(); | 277 | jhInterval -= schedule1.getFcsjT(); |
| 262 | if(schedule1.getFcsjActual()!=null && schedule2.getFcsjActual()!=null){ | 278 | if(schedule1.getFcsjActual()!=null && schedule2.getFcsjActual()!=null){ |
| @@ -274,6 +290,8 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -274,6 +290,8 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 274 | tempMap.put("line", keys[0]); | 290 | tempMap.put("line", keys[0]); |
| 275 | tempMap.put("qdz", keys[1]); | 291 | tempMap.put("qdz", keys[1]); |
| 276 | tempMap.put("times", times); | 292 | tempMap.put("times", times); |
| 293 | + tempMap.put("company", company); | ||
| 294 | + tempMap.put("subCompany", subCompany); | ||
| 277 | if(jhNum != 0) | 295 | if(jhNum != 0) |
| 278 | tempMap.put("jhInterval", jhInterval/jhNum); | 296 | tempMap.put("jhInterval", jhInterval/jhNum); |
| 279 | else | 297 | else |
| @@ -286,7 +304,8 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -286,7 +304,8 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 286 | tempMap.put("sjInterval", "/"); | 304 | tempMap.put("sjInterval", "/"); |
| 287 | tempMap.put("deviation", "/"); | 305 | tempMap.put("deviation", "/"); |
| 288 | } | 306 | } |
| 289 | - resList.add(tempMap); | 307 | + if(tempMap.get("jhInterval") != null && !tempMap.get("jhInterval").toString().equals("0") && !tempMap.get("jhInterval").toString().equals("/")) |
| 308 | + resList.add(tempMap); | ||
| 290 | } | 309 | } |
| 291 | 310 | ||
| 292 | //排序 | 311 | //排序 |
| @@ -322,6 +341,16 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -322,6 +341,16 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 322 | String type = map.get("type").toString(); | 341 | String type = map.get("type").toString(); |
| 323 | String zdzName = map.get("upDown").toString(); | 342 | String zdzName = map.get("upDown").toString(); |
| 324 | 343 | ||
| 344 | + if(startDate.length() == 0){ | ||
| 345 | + startDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); | ||
| 346 | + } | ||
| 347 | + if(endDate.length() == 0){ | ||
| 348 | + endDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); | ||
| 349 | + } | ||
| 350 | + if(times.length() == 0){ | ||
| 351 | + times = "06:00-07:00"; | ||
| 352 | + } | ||
| 353 | + | ||
| 325 | List<ScheduleRealInfo> list = this.getSchedule(line, startDate, endDate, model, times); | 354 | List<ScheduleRealInfo> list = this.getSchedule(line, startDate, endDate, model, times); |
| 326 | 355 | ||
| 327 | String[] date1 = startDate.split("-"); | 356 | String[] date1 = startDate.split("-"); |
| @@ -334,10 +363,8 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -334,10 +363,8 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 334 | int endTime = Integer.valueOf(split[1].split(":")[0])*60 + Integer.valueOf(split[1].split(":")[1]); | 363 | int endTime = Integer.valueOf(split[1].split(":")[0])*60 + Integer.valueOf(split[1].split(":")[1]); |
| 335 | 364 | ||
| 336 | for(ScheduleRealInfo schedule : list){ | 365 | for(ScheduleRealInfo schedule : list){ |
| 337 | - if(zdzName.length() != 0){ | ||
| 338 | - if(!zdzName.equals(schedule.getZdzName())){ | ||
| 339 | - continue; | ||
| 340 | - } | 366 | + if(zdzName.length() != 0 && !zdzName.equals(schedule.getZdzName())){ |
| 367 | + continue; | ||
| 341 | } | 368 | } |
| 342 | int fcsj = Integer.valueOf(schedule.getFcsjT() + ""); | 369 | int fcsj = Integer.valueOf(schedule.getFcsjT() + ""); |
| 343 | if(!(endTime != 0?(fcsj >= startTime && fcsj < endTime):(fcsj >= startTime))){ | 370 | if(!(endTime != 0?(fcsj >= startTime && fcsj < endTime):(fcsj >= startTime))){ |
| @@ -362,7 +389,12 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -362,7 +389,12 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 362 | double yssd = 0; | 389 | double yssd = 0; |
| 363 | int yyNum = 0; | 390 | int yyNum = 0; |
| 364 | int ysNum = 0; | 391 | int ysNum = 0; |
| 392 | + String company = "", subCompany = ""; | ||
| 365 | for(ScheduleRealInfo schedule : keyMap.get(key)){ | 393 | for(ScheduleRealInfo schedule : keyMap.get(key)){ |
| 394 | + if(schedule.getGsName() != null && company.length() == 0) | ||
| 395 | + company = schedule.getGsName(); | ||
| 396 | + if(schedule.getFgsName() != null && subCompany.length() == 0) | ||
| 397 | + subCompany = schedule.getFgsName(); | ||
| 366 | if(!tempMap.containsKey("xlDir")) | 398 | if(!tempMap.containsKey("xlDir")) |
| 367 | tempMap.put("xlDir", schedule.getXlDir()); | 399 | tempMap.put("xlDir", schedule.getXlDir()); |
| 368 | if(!tempMap.containsKey("qdz_zdz") && schedule.getXlDir().equals("0")) | 400 | if(!tempMap.containsKey("qdz_zdz") && schedule.getXlDir().equals("0")) |
| @@ -392,6 +424,8 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -392,6 +424,8 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 392 | tempMap.put("line", keys[0]); | 424 | tempMap.put("line", keys[0]); |
| 393 | tempMap.put("lp", keys[1]); | 425 | tempMap.put("lp", keys[1]); |
| 394 | tempMap.put("zdz", keys[2]); | 426 | tempMap.put("zdz", keys[2]); |
| 427 | + tempMap.put("company", company); | ||
| 428 | + tempMap.put("subCompany", subCompany); | ||
| 395 | 429 | ||
| 396 | tempMap.put("yysj", (yysj/60) + "小时" + (yysj%60) + "分钟"); | 430 | tempMap.put("yysj", (yysj/60) + "小时" + (yysj%60) + "分钟"); |
| 397 | yysjSum += yysj; | 431 | yysjSum += yysj; |
| @@ -458,6 +492,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -458,6 +492,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 458 | List<ScheduleRealInfo> list = new ArrayList<ScheduleRealInfo>(); | 492 | List<ScheduleRealInfo> list = new ArrayList<ScheduleRealInfo>(); |
| 459 | Map<String, List<ScheduleRealInfo>> keyMap = new HashMap<String, List<ScheduleRealInfo>>(); | 493 | Map<String, List<ScheduleRealInfo>> keyMap = new HashMap<String, List<ScheduleRealInfo>>(); |
| 460 | Map<String, List<Map<String, Object>>> keyMap0 = new HashMap<String, List<Map<String, Object>>>(); | 494 | Map<String, List<Map<String, Object>>> keyMap0 = new HashMap<String, List<Map<String, Object>>>(); |
| 495 | + Map<String, List<Map<String, Object>>> keyMap1 = new HashMap<String, List<Map<String, Object>>>(); | ||
| 461 | 496 | ||
| 462 | String line = map.get("line").toString(); | 497 | String line = map.get("line").toString(); |
| 463 | String startDate = map.get("startDate").toString(); | 498 | String startDate = map.get("startDate").toString(); |
| @@ -467,6 +502,16 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -467,6 +502,16 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 467 | String type = map.get("type").toString(); | 502 | String type = map.get("type").toString(); |
| 468 | String qdzName = map.get("upDown").toString(); | 503 | String qdzName = map.get("upDown").toString(); |
| 469 | 504 | ||
| 505 | + if(startDate.length() == 0){ | ||
| 506 | + startDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); | ||
| 507 | + } | ||
| 508 | + if(endDate.length() == 0){ | ||
| 509 | + endDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); | ||
| 510 | + } | ||
| 511 | + if(times.length() == 0){ | ||
| 512 | + times = "06:00-07:00"; | ||
| 513 | + } | ||
| 514 | + | ||
| 470 | list = getSchedule(line, startDate, endDate, model, times); | 515 | list = getSchedule(line, startDate, endDate, model, times); |
| 471 | 516 | ||
| 472 | String[] date1 = startDate.split("-"); | 517 | String[] date1 = startDate.split("-"); |
| @@ -480,14 +525,14 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -480,14 +525,14 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 480 | 525 | ||
| 481 | 526 | ||
| 482 | for(ScheduleRealInfo schedule : list){ | 527 | for(ScheduleRealInfo schedule : list){ |
| 483 | - if(!qdzName.equals(schedule.getQdzName())){ | 528 | + if(qdzName.length() != 0 && !qdzName.equals(schedule.getQdzName())){ |
| 484 | continue; | 529 | continue; |
| 485 | } | 530 | } |
| 486 | Long fcsj = schedule.getFcsjT(); | 531 | Long fcsj = schedule.getFcsjT(); |
| 487 | if(!(endTime!=0?fcsj>=startTime&&fcsj<endTime:fcsj>=startTime)){ | 532 | if(!(endTime!=0?fcsj>=startTime&&fcsj<endTime:fcsj>=startTime)){ |
| 488 | continue; | 533 | continue; |
| 489 | } | 534 | } |
| 490 | - String key = schedule.getScheduleDateStr() + "/" + schedule.getXlName() + "/" + schedule.getLpName() + "/" + schedule.getFcsj(); | 535 | + String key = schedule.getScheduleDateStr() + "/" + schedule.getXlName() + "/" + schedule.getLpName() + "/" + schedule.getFcsj() + "/" + schedule.getQdzName(); |
| 491 | if(!keyMap.containsKey(key)) | 536 | if(!keyMap.containsKey(key)) |
| 492 | keyMap.put(key, new ArrayList<ScheduleRealInfo>()); | 537 | keyMap.put(key, new ArrayList<ScheduleRealInfo>()); |
| 493 | keyMap.get(key).add(schedule); | 538 | keyMap.get(key).add(schedule); |
| @@ -514,7 +559,12 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -514,7 +559,12 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 514 | long sjtz = 0l; | 559 | long sjtz = 0l; |
| 515 | long tzsjMax = 0l; | 560 | long tzsjMax = 0l; |
| 516 | long tzsjMin = 0l; | 561 | long tzsjMin = 0l; |
| 562 | + String company = "", subCompany = ""; | ||
| 517 | for(ScheduleRealInfo schedule : keyMap.get(key)){ | 563 | for(ScheduleRealInfo schedule : keyMap.get(key)){ |
| 564 | + if(schedule.getGsName() != null && company.length() == 0) | ||
| 565 | + company = schedule.getGsName(); | ||
| 566 | + if(schedule.getFgsName() != null && subCompany.length() == 0) | ||
| 567 | + subCompany = schedule.getFgsName(); | ||
| 518 | long tzsj = 0l; | 568 | long tzsj = 0l; |
| 519 | long yssj = 0l; | 569 | long yssj = 0l; |
| 520 | jhbc++; | 570 | jhbc++; |
| @@ -566,8 +616,10 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -566,8 +616,10 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 566 | tempMap.put("lp", keys[2]); | 616 | tempMap.put("lp", keys[2]); |
| 567 | tempMap.put("jhdf", keys[3]); | 617 | tempMap.put("jhdf", keys[3]); |
| 568 | tempMap.put("jhfc", keys[3]); | 618 | tempMap.put("jhfc", keys[3]); |
| 569 | - tempMap.put("station", qdzName); | 619 | + tempMap.put("station", keys[4]); |
| 570 | tempMap.put("times", times); | 620 | tempMap.put("times", times); |
| 621 | + tempMap.put("company", company); | ||
| 622 | + tempMap.put("subCompany", subCompany); | ||
| 571 | if(startDate.equals(endDate)) | 623 | if(startDate.equals(endDate)) |
| 572 | tempMap.put("dates", startDate); | 624 | tempMap.put("dates", startDate); |
| 573 | else | 625 | else |
| @@ -640,7 +692,10 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -640,7 +692,10 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 640 | int wdfc2 = 0; | 692 | int wdfc2 = 0; |
| 641 | int ys = 0; | 693 | int ys = 0; |
| 642 | int tz = 0; | 694 | int tz = 0; |
| 695 | + String company = ""; | ||
| 643 | for(Map<String, Object> m : keyMap0.get(key)){ | 696 | for(Map<String, Object> m : keyMap0.get(key)){ |
| 697 | + if(m.containsKey("company") && company.length() == 0) | ||
| 698 | + company = m.get("company").toString(); | ||
| 644 | jhbc += Integer.valueOf(m.get("jhbc").toString()); | 699 | jhbc += Integer.valueOf(m.get("jhbc").toString()); |
| 645 | sjbc += Integer.valueOf(m.get("sjbc").toString()); | 700 | sjbc += Integer.valueOf(m.get("sjbc").toString()); |
| 646 | wddf1 += Integer.valueOf(m.get("wddf1").toString().substring(0, m.get("wddf1").toString().length() - 1)); | 701 | wddf1 += Integer.valueOf(m.get("wddf1").toString().substring(0, m.get("wddf1").toString().length() - 1)); |
| @@ -654,6 +709,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -654,6 +709,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 654 | tempMap.put("dates", startDate); | 709 | tempMap.put("dates", startDate); |
| 655 | else | 710 | else |
| 656 | tempMap.put("dates", startDate + "--" + endDate); | 711 | tempMap.put("dates", startDate + "--" + endDate); |
| 712 | + tempMap.put("company", company); | ||
| 657 | String[] keys = key.split("/"); | 713 | String[] keys = key.split("/"); |
| 658 | tempMap.put("line", keys[0]); | 714 | tempMap.put("line", keys[0]); |
| 659 | tempMap.put("lp", keys[1]); | 715 | tempMap.put("lp", keys[1]); |
| @@ -668,20 +724,29 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -668,20 +724,29 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 668 | tempMap.put("pjys", ys/keyMap0.get(key).size()+"分"); | 724 | tempMap.put("pjys", ys/keyMap0.get(key).size()+"分"); |
| 669 | tempMap.put("pjtz", tz/keyMap0.get(key).size()+"分"); | 725 | tempMap.put("pjtz", tz/keyMap0.get(key).size()+"分"); |
| 670 | tempMap.put("workList", keyMap0.get(key)); | 726 | tempMap.put("workList", keyMap0.get(key)); |
| 671 | - resList.add(tempMap); | 727 | + |
| 728 | + String key1 = tempMap.get("line").toString(); | ||
| 729 | + if(!keyMap1.containsKey(key1)) | ||
| 730 | + keyMap1.put(key1, new ArrayList<Map<String, Object>>()); | ||
| 731 | + keyMap1.get(key1).add(tempMap); | ||
| 672 | } | 732 | } |
| 673 | 733 | ||
| 674 | - Collections.sort(resList, new Comparator<Map<String, Object>>() { | ||
| 675 | - | ||
| 676 | - public int compare(Map<String, Object> o1, Map<String, Object> o2) { | ||
| 677 | - | ||
| 678 | - Integer a = Integer.valueOf(o1.get("lp").toString()); | ||
| 679 | - Integer b = Integer.valueOf(o2.get("lp").toString()); | 734 | + for(String key : keyMap1.keySet()){ |
| 735 | + Collections.sort(keyMap1.get(key), new Comparator<Map<String, Object>>() { | ||
| 736 | + | ||
| 737 | + public int compare(Map<String, Object> o1, Map<String, Object> o2) { | ||
| 738 | + | ||
| 739 | + Integer a = Integer.valueOf(o1.get("lp").toString()); | ||
| 740 | + Integer b = Integer.valueOf(o2.get("lp").toString()); | ||
| 680 | 741 | ||
| 681 | - // 升序 | ||
| 682 | - return a.compareTo(b); | ||
| 683 | - } | ||
| 684 | - }); | 742 | + // 升序 |
| 743 | + return a.compareTo(b); | ||
| 744 | + } | ||
| 745 | + }); | ||
| 746 | + | ||
| 747 | + resList.addAll(keyMap1.get(key)); | ||
| 748 | + } | ||
| 749 | + | ||
| 685 | 750 | ||
| 686 | return resList; | 751 | return resList; |
| 687 | } | 752 | } |
| @@ -699,6 +764,16 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -699,6 +764,16 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 699 | String times = map.get("times").toString(); | 764 | String times = map.get("times").toString(); |
| 700 | String type = map.get("type").toString(); | 765 | String type = map.get("type").toString(); |
| 701 | 766 | ||
| 767 | + if(startDate.length() == 0){ | ||
| 768 | + startDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); | ||
| 769 | + } | ||
| 770 | + if(endDate.length() == 0){ | ||
| 771 | + endDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); | ||
| 772 | + } | ||
| 773 | + if(times.length() == 0){ | ||
| 774 | + times = "06:00-07:00"; | ||
| 775 | + } | ||
| 776 | + | ||
| 702 | list = getSchedule(line, startDate, endDate, model, times); | 777 | list = getSchedule(line, startDate, endDate, model, times); |
| 703 | 778 | ||
| 704 | String[] date1 = startDate.split("-"); | 779 | String[] date1 = startDate.split("-"); |
| @@ -732,7 +807,12 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -732,7 +807,12 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 732 | qcbc = 0, qclc = 0, kxbc = 0, kxlc = 0, | 807 | qcbc = 0, qclc = 0, kxbc = 0, kxlc = 0, |
| 733 | qhbc = 0, qhlc = 0, wybc = 0, wylc = 0; | 808 | qhbc = 0, qhlc = 0, wybc = 0, wylc = 0; |
| 734 | int qtbc = 0, qtlc = 0; | 809 | int qtbc = 0, qtlc = 0; |
| 810 | + String company = "", subCompany = ""; | ||
| 735 | for(ScheduleRealInfo schedule : keyMap.get(key)){ | 811 | for(ScheduleRealInfo schedule : keyMap.get(key)){ |
| 812 | + if(schedule.getGsName() != null && company.length() == 0) | ||
| 813 | + company = schedule.getGsName(); | ||
| 814 | + if(schedule.getFgsName() != null && subCompany.length() == 0) | ||
| 815 | + subCompany = schedule.getFgsName(); | ||
| 736 | jhbc++; | 816 | jhbc++; |
| 737 | if(schedule.getJhlc() != null) | 817 | if(schedule.getJhlc() != null) |
| 738 | jhlc += schedule.getJhlc(); | 818 | jhlc += schedule.getJhlc(); |
| @@ -781,6 +861,8 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -781,6 +861,8 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 781 | tempMap.put("date", startDate); | 861 | tempMap.put("date", startDate); |
| 782 | else | 862 | else |
| 783 | tempMap.put("date", startDate + "--" + endDate); | 863 | tempMap.put("date", startDate + "--" + endDate); |
| 864 | + tempMap.put("company", company); | ||
| 865 | + tempMap.put("subCompany", subCompany); | ||
| 784 | tempMap.put("times", times); | 866 | tempMap.put("times", times); |
| 785 | tempMap.put("line", key); | 867 | tempMap.put("line", key); |
| 786 | tempMap.put("jhbc", jhbc); | 868 | tempMap.put("jhbc", jhbc); |
| @@ -834,10 +916,13 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -834,10 +916,13 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 834 | List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>(); | 916 | List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>(); |
| 835 | List<ScheduleRealInfo> list = new ArrayList<ScheduleRealInfo>(); | 917 | List<ScheduleRealInfo> list = new ArrayList<ScheduleRealInfo>(); |
| 836 | Map<String, List<ScheduleRealInfo>> keyMap = new HashMap<String, List<ScheduleRealInfo>>(); | 918 | Map<String, List<ScheduleRealInfo>> keyMap = new HashMap<String, List<ScheduleRealInfo>>(); |
| 919 | + Map<String, List<Map<String, Object>>> keyMap0 = new HashMap<String, List<Map<String, Object>>>(); | ||
| 920 | + Map<String, List<Map<String, Object>>> keyMap1 = new HashMap<String, List<Map<String, Object>>>(); | ||
| 837 | 921 | ||
| 838 | String line = map.get("line").toString(); | 922 | String line = map.get("line").toString(); |
| 839 | String startDate = map.get("startDate").toString(); | 923 | String startDate = map.get("startDate").toString(); |
| 840 | String endDate = map.get("endDate").toString(); | 924 | String endDate = map.get("endDate").toString(); |
| 925 | + String times = map.get("times").toString(); | ||
| 841 | String type = map.get("type").toString(); | 926 | String type = map.get("type").toString(); |
| 842 | 927 | ||
| 843 | if(startDate.length() == 0){ | 928 | if(startDate.length() == 0){ |
| @@ -852,10 +937,10 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -852,10 +937,10 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 852 | if(line.length() != 0){ | 937 | if(line.length() != 0){ |
| 853 | sql += " and xl_bm = '"+line+"'"; | 938 | sql += " and xl_bm = '"+line+"'"; |
| 854 | } | 939 | } |
| 855 | -// if(times.length() != 0){ | ||
| 856 | -// String[] split = times.split("-"); | ||
| 857 | -// sql += " and fcsj >= '"+split[0]+"' and fcsj <= '"+split[1]+"'"; | ||
| 858 | -// } | 940 | + if(times.length() != 0){ |
| 941 | + String[] split = times.split("-"); | ||
| 942 | + sql += " and fcsj >= '"+split[0]+"' and fcsj <= '"+split[1]+"'"; | ||
| 943 | + } | ||
| 859 | sql += " and bc_type = 'normal'"; | 944 | sql += " and bc_type = 'normal'"; |
| 860 | 945 | ||
| 861 | list =jdbcTemplate.query(sql, | 946 | list =jdbcTemplate.query(sql, |
| @@ -884,6 +969,11 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -884,6 +969,11 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 884 | schedule.setFgsName(rs.getString("fgs_name")); | 969 | schedule.setFgsName(rs.getString("fgs_name")); |
| 885 | schedule.setDfAuto(rs.getBoolean("df_auto")); | 970 | schedule.setDfAuto(rs.getBoolean("df_auto")); |
| 886 | schedule.setOnline(rs.getBoolean("online")); | 971 | schedule.setOnline(rs.getBoolean("online")); |
| 972 | + schedule.setClZbh(rs.getString("cl_zbh")); | ||
| 973 | + schedule.setjGh(rs.getString("j_gh")); | ||
| 974 | + schedule.setjName(rs.getString("j_name")); | ||
| 975 | + schedule.setUpdateDate(rs.getDate("update_date")); | ||
| 976 | + | ||
| 887 | return schedule; | 977 | return schedule; |
| 888 | } | 978 | } |
| 889 | }); | 979 | }); |
| @@ -896,6 +986,11 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -896,6 +986,11 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 896 | String[] date2 = endDate.split("-"); | 986 | String[] date2 = endDate.split("-"); |
| 897 | startDate = date1[0] + "年" + date1[1] + "月" + date1[2] + "日"; | 987 | startDate = date1[0] + "年" + date1[1] + "月" + date1[2] + "日"; |
| 898 | endDate = date2[0] + "年" + date2[1] + "月" + date2[2] + "日"; | 988 | endDate = date2[0] + "年" + date2[1] + "月" + date2[2] + "日"; |
| 989 | + String date = ""; | ||
| 990 | + if(startDate.equals(endDate)) | ||
| 991 | + date = startDate; | ||
| 992 | + else | ||
| 993 | + date = startDate + "--" + endDate; | ||
| 899 | 994 | ||
| 900 | for(ScheduleRealInfo schedule : list){ | 995 | for(ScheduleRealInfo schedule : list){ |
| 901 | String key = schedule.getGsName() + "/" + schedule.getFgsName() + "/" + schedule.getXlName(); | 996 | String key = schedule.getGsName() + "/" + schedule.getFgsName() + "/" + schedule.getXlName(); |
| @@ -914,16 +1009,16 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -914,16 +1009,16 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 914 | sjbc++; | 1009 | sjbc++; |
| 915 | if(schedule.getDfsj() != null && !schedule.getDfsj().equals(schedule.getFcsj())){ | 1010 | if(schedule.getDfsj() != null && !schedule.getDfsj().equals(schedule.getFcsj())){ |
| 916 | flag = true; | 1011 | flag = true; |
| 1012 | + schedule.setRemarks("待发调整"); | ||
| 917 | if(schedule.isDfAuto()) | 1013 | if(schedule.isDfAuto()) |
| 918 | zddf++; | 1014 | zddf++; |
| 919 | else | 1015 | else |
| 920 | sddf++; | 1016 | sddf++; |
| 921 | - } | ||
| 922 | - if(!schedule.isOnline()){ | 1017 | + }else if(!schedule.isOnline()){ |
| 923 | flag = true; | 1018 | flag = true; |
| 1019 | + schedule.setRemarks("掉线调整"); | ||
| 924 | dxtz++; | 1020 | dxtz++; |
| 925 | - } | ||
| 926 | - if(schedule.getStatus() == 2){ | 1021 | + }else if(schedule.getStatus() == 2){ |
| 927 | flag = true; | 1022 | flag = true; |
| 928 | lbtz++; | 1023 | lbtz++; |
| 929 | } | 1024 | } |
| @@ -931,10 +1026,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -931,10 +1026,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 931 | tempList.add(schedule); | 1026 | tempList.add(schedule); |
| 932 | } | 1027 | } |
| 933 | } | 1028 | } |
| 934 | - if(startDate.equals(endDate)) | ||
| 935 | - tempMap.put("date", startDate); | ||
| 936 | - else | ||
| 937 | - tempMap.put("date", startDate + "--" + endDate); | 1029 | + tempMap.put("date", date); |
| 938 | String[] keys = key.split("/"); | 1030 | String[] keys = key.split("/"); |
| 939 | tempMap.put("company", keys[0]); | 1031 | tempMap.put("company", keys[0]); |
| 940 | tempMap.put("subCompany", keys[1]); | 1032 | tempMap.put("subCompany", keys[1]); |
| @@ -946,11 +1038,142 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -946,11 +1038,142 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 946 | tempMap.put("dxtz", dxtz); | 1038 | tempMap.put("dxtz", dxtz); |
| 947 | tempMap.put("lbtz", lbtz); | 1039 | tempMap.put("lbtz", lbtz); |
| 948 | tempMap.put("correct", sddf + zddf + dxtz + lbtz); | 1040 | tempMap.put("correct", sddf + zddf + dxtz + lbtz); |
| 949 | - tempMap.put("dfbl", df.format((double)(sddf + zddf)/sjbc) + "%"); | ||
| 950 | - tempMap.put("dxbl", df.format((double)(dxtz)/sjbc) + "%"); | ||
| 951 | - tempMap.put("lbbl", df.format((double)(lbtz)/sjbc) + "%"); | ||
| 952 | - tempMap.put("lbbl", df.format((double)(sddf + zddf + dxtz + lbtz)/sjbc) + "%"); | 1041 | + tempMap.put("dfbl", df.format((double)(sddf + zddf)/sjbc*100) + "%"); |
| 1042 | + tempMap.put("dxbl", df.format((double)(dxtz)/sjbc*100) + "%"); | ||
| 1043 | + tempMap.put("lbbl", df.format((double)(lbtz)/sjbc*100) + "%"); | ||
| 1044 | + tempMap.put("correctbl", df.format((double)(sddf + zddf + dxtz + lbtz)/sjbc*100) + "%"); | ||
| 1045 | + tempMap.put("workList", tempList); | ||
| 1046 | + | ||
| 1047 | + String key0 = keys[0] + "/" + keys[1]; | ||
| 1048 | + if(!keyMap0.containsKey(key0)) | ||
| 1049 | + keyMap0.put(key0, new ArrayList<Map<String, Object>>()); | ||
| 1050 | + keyMap0.get(key0).add(tempMap); | ||
| 1051 | + } | ||
| 1052 | + | ||
| 1053 | + for(String key : keyMap0.keySet()){ | ||
| 1054 | + Map<String, Object> tempMap = new HashMap<String, Object>(); | ||
| 1055 | + int sjbc = 0, sddf = 0, zddf = 0, | ||
| 1056 | + dxtz = 0, lbtz = 0; | ||
| 1057 | + for(Map<String, Object> m : keyMap0.get(key)){ | ||
| 1058 | + sjbc += (int)m.get("sjbc"); | ||
| 1059 | + sddf += (int)m.get("sddf"); | ||
| 1060 | + zddf += (int)m.get("zddf"); | ||
| 1061 | + dxtz += (int)m.get("dxtz"); | ||
| 1062 | + lbtz += (int)m.get("lbtz"); | ||
| 1063 | + } | ||
| 1064 | + tempMap.put("date", date); | ||
| 1065 | + String[] keys = key.split("/"); | ||
| 1066 | + tempMap.put("company", keys[0]); | ||
| 1067 | + tempMap.put("subCompany", keys[1]); | ||
| 1068 | + tempMap.put("lines", keyMap0.get(key).size()); | ||
| 1069 | + tempMap.put("sjbc", sjbc); | ||
| 1070 | + tempMap.put("sddf", sddf); | ||
| 1071 | + tempMap.put("zddf", zddf); | ||
| 1072 | + tempMap.put("dfhj", sddf + zddf); | ||
| 1073 | + tempMap.put("dxtz", dxtz); | ||
| 1074 | + tempMap.put("lbtz", lbtz); | ||
| 1075 | + tempMap.put("correct", sddf + zddf + dxtz + lbtz); | ||
| 1076 | + tempMap.put("dfbl", df.format((double)(sddf + zddf)/sjbc*100) + "%"); | ||
| 1077 | + tempMap.put("dxbl", df.format((double)(dxtz)/sjbc*100) + "%"); | ||
| 1078 | + tempMap.put("lbbl", df.format((double)(lbtz)/sjbc*100) + "%"); | ||
| 1079 | + tempMap.put("correctbl", df.format((double)(sddf + zddf + dxtz + lbtz)/sjbc*100) + "%"); | ||
| 1080 | + tempMap.put("workList", keyMap0.get(key)); | ||
| 1081 | + | ||
| 1082 | + String key1 = keys[0]; | ||
| 1083 | + if(!keyMap1.containsKey(key1)) | ||
| 1084 | + keyMap1.put(key1, new ArrayList<Map<String, Object>>()); | ||
| 1085 | + keyMap1.get(key1).add(tempMap); | ||
| 1086 | + } | ||
| 1087 | + | ||
| 1088 | + for(String key : keyMap1.keySet()){ | ||
| 1089 | + Map<String, Object> tempMap = new HashMap<String, Object>(); | ||
| 1090 | + int sjbc = 0, sddf = 0, zddf = 0, | ||
| 1091 | + dxtz = 0, lbtz = 0, lines = 0; | ||
| 1092 | + for(Map<String, Object> m : keyMap1.get(key)){ | ||
| 1093 | + sjbc += (int)m.get("sjbc"); | ||
| 1094 | + sddf += (int)m.get("sddf"); | ||
| 1095 | + zddf += (int)m.get("zddf"); | ||
| 1096 | + dxtz += (int)m.get("dxtz"); | ||
| 1097 | + lbtz += (int)m.get("lbtz"); | ||
| 1098 | + lines += (int)m.get("lines"); | ||
| 1099 | + } | ||
| 1100 | + tempMap.put("date", date); | ||
| 1101 | + tempMap.put("company", key); | ||
| 1102 | + tempMap.put("lines", lines); | ||
| 1103 | + tempMap.put("sjbc", sjbc); | ||
| 1104 | + tempMap.put("sddf", sddf); | ||
| 1105 | + tempMap.put("zddf", zddf); | ||
| 1106 | + tempMap.put("dfhj", sddf + zddf); | ||
| 1107 | + tempMap.put("dxtz", dxtz); | ||
| 1108 | + tempMap.put("lbtz", lbtz); | ||
| 1109 | + tempMap.put("correct", sddf + zddf + dxtz + lbtz); | ||
| 1110 | + tempMap.put("dfbl", df.format((double)(sddf + zddf)/sjbc*100) + "%"); | ||
| 1111 | + tempMap.put("dxbl", df.format((double)(dxtz)/sjbc*100) + "%"); | ||
| 1112 | + tempMap.put("lbbl", df.format((double)(lbtz)/sjbc*100) + "%"); | ||
| 1113 | + tempMap.put("correctbl", df.format((double)(sddf + zddf + dxtz + lbtz)/sjbc*100) + "%"); | ||
| 1114 | + tempMap.put("workList", keyMap1.get(key)); | ||
| 953 | 1115 | ||
| 1116 | + resList.add(tempMap); | ||
| 1117 | + } | ||
| 1118 | + | ||
| 1119 | + if(resList.size() != 0){ | ||
| 1120 | + Map<String, Object> tempMap = new HashMap<String, Object>(); | ||
| 1121 | + int sjbc = 0, sddf = 0, zddf = 0, | ||
| 1122 | + dxtz = 0, lbtz = 0, lines = 0; | ||
| 1123 | + for(Map<String, Object> m : resList){ | ||
| 1124 | + sjbc += (int)m.get("sjbc"); | ||
| 1125 | + sddf += (int)m.get("sddf"); | ||
| 1126 | + zddf += (int)m.get("zddf"); | ||
| 1127 | + dxtz += (int)m.get("dxtz"); | ||
| 1128 | + lbtz += (int)m.get("lbtz"); | ||
| 1129 | + lines += (int)m.get("lines"); | ||
| 1130 | + for(Map<String, Object> m0 : (List<Map<String, Object>>)m.get("workList")){ | ||
| 1131 | + Map<String, Object> temp = new HashMap<String, Object>(); | ||
| 1132 | + temp.put("date", "合计"); | ||
| 1133 | + temp.put("lines", m0.get("lines")); | ||
| 1134 | + temp.put("sjbc", m0.get("sjbc")); | ||
| 1135 | + temp.put("sddf", m0.get("sddf")); | ||
| 1136 | + temp.put("zddf", m0.get("zddf")); | ||
| 1137 | + temp.put("dfhj", m0.get("dfhj")); | ||
| 1138 | + temp.put("dxtz", m0.get("dxtz")); | ||
| 1139 | + temp.put("lbtz", m0.get("lbtz")); | ||
| 1140 | + temp.put("correct", m0.get("correct")); | ||
| 1141 | + temp.put("dfbl", m0.get("dfbl")); | ||
| 1142 | + temp.put("dxbl", m0.get("dxbl")); | ||
| 1143 | + temp.put("lbbl", m0.get("lbbl")); | ||
| 1144 | + temp.put("correctbl", m0.get("correctbl")); | ||
| 1145 | + ((List<Map<String, Object>>)m0.get("workList")).add(temp); | ||
| 1146 | + } | ||
| 1147 | + Map<String, Object> temp = new HashMap<String, Object>(); | ||
| 1148 | + temp.put("date", "合计"); | ||
| 1149 | + temp.put("lines", m.get("lines")); | ||
| 1150 | + temp.put("sjbc", m.get("sjbc")); | ||
| 1151 | + temp.put("sddf", m.get("sddf")); | ||
| 1152 | + temp.put("zddf", m.get("zddf")); | ||
| 1153 | + temp.put("dfhj", m.get("dfhj")); | ||
| 1154 | + temp.put("dxtz", m.get("dxtz")); | ||
| 1155 | + temp.put("lbtz", m.get("lbtz")); | ||
| 1156 | + temp.put("correct", m.get("correct")); | ||
| 1157 | + temp.put("dfbl", m.get("dfbl")); | ||
| 1158 | + temp.put("dxbl", m.get("dxbl")); | ||
| 1159 | + temp.put("lbbl", m.get("lbbl")); | ||
| 1160 | + temp.put("correctbl", m.get("correctbl")); | ||
| 1161 | + ((List<Map<String, Object>>)m.get("workList")).add(temp); | ||
| 1162 | + } | ||
| 1163 | + tempMap.put("date", "合计"); | ||
| 1164 | + tempMap.put("lines", lines); | ||
| 1165 | + tempMap.put("sjbc", sjbc); | ||
| 1166 | + tempMap.put("sddf", sddf); | ||
| 1167 | + tempMap.put("zddf", zddf); | ||
| 1168 | + tempMap.put("dfhj", sddf + zddf); | ||
| 1169 | + tempMap.put("dxtz", dxtz); | ||
| 1170 | + tempMap.put("lbtz", lbtz); | ||
| 1171 | + tempMap.put("correct", sddf + zddf + dxtz + lbtz); | ||
| 1172 | + tempMap.put("dfbl", df.format((double)(sddf + zddf)/sjbc*100) + "%"); | ||
| 1173 | + tempMap.put("dxbl", df.format((double)(dxtz)/sjbc*100) + "%"); | ||
| 1174 | + tempMap.put("lbbl", df.format((double)(lbtz)/sjbc*100) + "%"); | ||
| 1175 | + tempMap.put("correctbl", df.format((double)(sddf + zddf + dxtz + lbtz)/sjbc*100) + "%"); | ||
| 1176 | + resList.add(tempMap); | ||
| 954 | } | 1177 | } |
| 955 | 1178 | ||
| 956 | return resList; | 1179 | return resList; |
src/main/resources/static/pages/forms/statement/busInterval.html
| @@ -13,6 +13,9 @@ | @@ -13,6 +13,9 @@ | ||
| 13 | border-bottom-width: 2px; } | 13 | border-bottom-width: 2px; } |
| 14 | .table > tbody + tbody { | 14 | .table > tbody + tbody { |
| 15 | border-top: 1px solid; } | 15 | border-top: 1px solid; } |
| 16 | + #forms > tbody > tr{ | ||
| 17 | + background-color: #FFFFFF; | ||
| 18 | + } | ||
| 16 | </style> | 19 | </style> |
| 17 | 20 | ||
| 18 | <div class="page-head"> | 21 | <div class="page-head"> |
| @@ -27,49 +30,41 @@ | @@ -27,49 +30,41 @@ | ||
| 27 | <div class="portlet-title"> | 30 | <div class="portlet-title"> |
| 28 | <form id="history" class="form-inline" action=""> | 31 | <form id="history" class="form-inline" action=""> |
| 29 | <div style="display: inline-block;"> | 32 | <div style="display: inline-block;"> |
| 30 | - <span class="item-label" style="width: 80px;">线路: </span> | 33 | + <span class="item-label" style="width: 80px; margin-left: 33px">公司: </span> |
| 34 | + <select class="form-control" name="company" id="company" style="width: 180px;"></select> | ||
| 35 | + </div> | ||
| 36 | + <div style="display: inline-block;"> | ||
| 37 | + <span class="item-label" style="width: 80px; margin-left: 24px">分公司: </span> | ||
| 38 | + <select class="form-control" name="subCompany" id="subCompany" style="width: 180px;"></select> | ||
| 39 | + </div> | ||
| 40 | + <div style="display: inline-block;"> | ||
| 41 | + <span class="item-label" style="width: 80px; margin-left: 24px">线路: </span> | ||
| 31 | <select class="form-control" name="line" id="line" style="width: 180px;"></select> | 42 | <select class="form-control" name="line" id="line" style="width: 180px;"></select> |
| 32 | </div> | 43 | </div> |
| 33 | - <div style="display: inline-block;margin-left: 15px;"> | 44 | + <div style="display: inline-block; margin-left: 10px"> |
| 45 | + <span class="item-label" style="width: 80px;">时刻类型: </span> | ||
| 46 | + <select class="form-control" name="model" id="model" style="width: 180px;"> | ||
| 47 | + <option value="">请选择...</option> | ||
| 48 | + </select> | ||
| 49 | + </div> | ||
| 50 | + <div style="margin-top: 10px"></div> | ||
| 51 | + <div style="display: inline-block;margin-left: 5px;"> | ||
| 34 | <span class="item-label" style="width: 80px;">开始时间: </span> | 52 | <span class="item-label" style="width: 80px;">开始时间: </span> |
| 35 | <input class="form-control" type="text" id="startDate" style="width: 180px;"/> | 53 | <input class="form-control" type="text" id="startDate" style="width: 180px;"/> |
| 36 | </div> | 54 | </div> |
| 37 | - <div style="display: inline-block;margin-left: 15px;"> | 55 | + <div style="display: inline-block;margin-left: 10px;"> |
| 38 | <span class="item-label" style="width: 80px;">结束时间: </span> | 56 | <span class="item-label" style="width: 80px;">结束时间: </span> |
| 39 | <input class="form-control" type="text" id="endDate" style="width: 180px;"/> | 57 | <input class="form-control" type="text" id="endDate" style="width: 180px;"/> |
| 40 | </div> | 58 | </div> |
| 41 | - <br/> | ||
| 42 | - <div style="display: inline-block;"> | ||
| 43 | - <span class="item-label" style="width: 80px;">时刻类型: </span> | ||
| 44 | - <select class="form-control" name="model" id="model" style="width: 180px;"> | ||
| 45 | - <option value="">请选择...</option> | ||
| 46 | - </select> | 59 | + <div style="display: inline-block;margin-left: 10px;"> |
| 60 | + <span class="item-label" style="width: 80px;">时间段: </span> | ||
| 61 | + <input class="form-control" type="text" id="times1" style="width: 80px;"/> | ||
| 47 | </div> | 62 | </div> |
| 48 | <div style="display: inline-block;"> | 63 | <div style="display: inline-block;"> |
| 49 | - <span class="item-label" style="width: 80px;">时间段: </span> | ||
| 50 | - <select class="form-control" name="model" id="times" style="width: 180px;"> | ||
| 51 | - <option value="05:00-06:00">05:00-06:00</option> | ||
| 52 | - <option value="06:00-07:00">06:00-07:00</option> | ||
| 53 | - <option value="07:00-08:00">07:00-08:00</option> | ||
| 54 | - <option value="08:00-09:00">08:00-09:00</option> | ||
| 55 | - <option value="09:00-10:00">09:00-10:00</option> | ||
| 56 | - <option value="10:00-11:00">10:00-11:00</option> | ||
| 57 | - <option value="11:00-12:00">11:00-12:00</option> | ||
| 58 | - <option value="12:00-13:00">12:00-13:00</option> | ||
| 59 | - <option value="13:00-14:00">13:00-14:00</option> | ||
| 60 | - <option value="14:00-15:00">14:00-15:00</option> | ||
| 61 | - <option value="15:00-16:00">15:00-16:00</option> | ||
| 62 | - <option value="16:00-17:00">16:00-17:00</option> | ||
| 63 | - <option value="17:00-18:00">17:00-18:00</option> | ||
| 64 | - <option value="18:00-19:00">18:00-19:00</option> | ||
| 65 | - <option value="19:00-20:00">19:00-20:00</option> | ||
| 66 | - <option value="20:00-21:00">20:00-21:00</option> | ||
| 67 | - <option value="21:00-22:00">21:00-22:00</option> | ||
| 68 | - <option value="22:00-23:00">22:00-23:00</option> | ||
| 69 | - <option value="23:00-00:00">23:00-00:00</option> | ||
| 70 | - </select> | 64 | + <span class="item-label" style="width: 80px;"> - </span> |
| 65 | + <input class="form-control" type="text" id="times2" style="width: 80px;"/> | ||
| 71 | </div> | 66 | </div> |
| 72 | - <div class="form-group"> | 67 | + <div class="form-group" style="margin-left: 10px"> |
| 73 | <input class="btn btn-default" type="button" id="query" value="筛选"/> | 68 | <input class="btn btn-default" type="button" id="query" value="筛选"/> |
| 74 | <!-- <input class="btn btn-default" type="button" id="export" value="导出"/> --> | 69 | <!-- <input class="btn btn-default" type="button" id="export" value="导出"/> --> |
| 75 | </div> | 70 | </div> |
| @@ -80,15 +75,15 @@ | @@ -80,15 +75,15 @@ | ||
| 80 | <table class="table table-bordered table-hover table-checkable" id="forms"> | 75 | <table class="table table-bordered table-hover table-checkable" id="forms"> |
| 81 | <thead> | 76 | <thead> |
| 82 | <tr class="hidden"> | 77 | <tr class="hidden"> |
| 83 | - <th width="130px">日期</th> | ||
| 84 | - <th width="120px">时段</th> | 78 | + <th>日期</th> |
| 79 | + <th>时段</th> | ||
| 85 | <th>公司</th> | 80 | <th>公司</th> |
| 86 | <th>分公司</th> | 81 | <th>分公司</th> |
| 87 | - <th width="120px">线路</th> | ||
| 88 | - <th width="140px">起讫站</th> | ||
| 89 | - <th width="140px">计划车距(分钟)</th> | ||
| 90 | - <th width="140px">实际车距(分钟)</th> | ||
| 91 | - <th width="100px">误差值</th> | 82 | + <th>线路</th> |
| 83 | + <th>起讫站</th> | ||
| 84 | + <th>计划车距(分钟)</th> | ||
| 85 | + <th>实际车距(分钟)</th> | ||
| 86 | + <th>误差值</th> | ||
| 92 | </tr> | 87 | </tr> |
| 93 | </thead> | 88 | </thead> |
| 94 | <tbody> | 89 | <tbody> |
| @@ -119,6 +114,15 @@ | @@ -119,6 +114,15 @@ | ||
| 119 | format : 'YYYY-MM-DD', | 114 | format : 'YYYY-MM-DD', |
| 120 | locale : 'zh-cn' | 115 | locale : 'zh-cn' |
| 121 | }); | 116 | }); |
| 117 | + | ||
| 118 | + $("#times1").datetimepicker({ | ||
| 119 | + format : 'HH:mm', | ||
| 120 | + locale : 'zh-cn' | ||
| 121 | + }); | ||
| 122 | + $("#times2").datetimepicker({ | ||
| 123 | + format : 'HH:mm', | ||
| 124 | + locale : 'zh-cn' | ||
| 125 | + }); | ||
| 122 | 126 | ||
| 123 | var d = new Date(); | 127 | var d = new Date(); |
| 124 | var year = d.getFullYear(); | 128 | var year = d.getFullYear(); |
| @@ -131,17 +135,44 @@ | @@ -131,17 +135,44 @@ | ||
| 131 | $("#startDate").val(year + "-0" + month + "-" + day); | 135 | $("#startDate").val(year + "-0" + month + "-" + day); |
| 132 | $("#endDate").val(year + "-0" + month + "-" + day); | 136 | $("#endDate").val(year + "-0" + month + "-" + day); |
| 133 | } | 137 | } |
| 138 | + $("#times1").val("06:00"); | ||
| 139 | + $("#times2").val("07:00"); | ||
| 140 | + | ||
| 141 | + var obj = []; | ||
| 142 | + $.get('/user/companyData', function(result){ | ||
| 143 | + obj = result; | ||
| 144 | + var options = ''; | ||
| 145 | + for(var i = 0; i < obj.length; i++){ | ||
| 146 | + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>'; | ||
| 147 | + } | ||
| 148 | + $('#company').html(options); | ||
| 149 | + updateCompany(); | ||
| 150 | + }); | ||
| 151 | + $("#company").on("change",updateCompany); | ||
| 152 | + function updateCompany(){ | ||
| 153 | + var company = $('#company').val(); | ||
| 154 | + var options = ''; | ||
| 155 | + for(var i = 0; i < obj.length; i++){ | ||
| 156 | + if(obj[i].companyCode == company){ | ||
| 157 | + var children = obj[i].children; | ||
| 158 | + for(var j = 0; j < children.length; j++){ | ||
| 159 | + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>'; | ||
| 160 | + } | ||
| 161 | + } | ||
| 162 | + } | ||
| 163 | + $('#subCompany').html(options); | ||
| 164 | + } | ||
| 134 | 165 | ||
| 135 | $.get('/basic/lineCode2Name',function(result){ | 166 | $.get('/basic/lineCode2Name',function(result){ |
| 136 | var data=[]; | 167 | var data=[]; |
| 137 | - | 168 | + data.push({id:" ", text:"全部线路"}); |
| 138 | for(var code in result){ | 169 | for(var code in result){ |
| 139 | data.push({id: code, text: result[code]}); | 170 | data.push({id: code, text: result[code]}); |
| 140 | } | 171 | } |
| 141 | console.log(data); | 172 | console.log(data); |
| 142 | initPinYinSelect2('#line',data,''); | 173 | initPinYinSelect2('#line',data,''); |
| 143 | 174 | ||
| 144 | - line = data[0].id; | 175 | + line = ""; |
| 145 | updateModel(); | 176 | updateModel(); |
| 146 | }) | 177 | }) |
| 147 | 178 | ||
| @@ -190,14 +221,14 @@ | @@ -190,14 +221,14 @@ | ||
| 190 | var startDate = $("#startDate").val(); | 221 | var startDate = $("#startDate").val(); |
| 191 | var endDate = $("#endDate").val(); | 222 | var endDate = $("#endDate").val(); |
| 192 | var model = $("#model").val(); | 223 | var model = $("#model").val(); |
| 193 | - var times = $("#times").val(); | 224 | + var times = $("#times1").val() + "-" + $("#times2").val(); |
| 194 | function jsDoQuery(pagination){ | 225 | function jsDoQuery(pagination){ |
| 195 | var params = {}; | 226 | var params = {}; |
| 196 | - line = $("#line").val(); | 227 | +// line = $("#line").val(); |
| 197 | startDate = $("#startDate").val(); | 228 | startDate = $("#startDate").val(); |
| 198 | endDate = $("#endDate").val(); | 229 | endDate = $("#endDate").val(); |
| 199 | model = $("#model").val(); | 230 | model = $("#model").val(); |
| 200 | - times = $("#times").val(); | 231 | + times = $("#times1").val() + "-" + $("#times2").val(); |
| 201 | params['line'] = line; | 232 | params['line'] = line; |
| 202 | params['startDate'] = startDate; | 233 | params['startDate'] = startDate; |
| 203 | params['endDate'] = endDate; | 234 | params['endDate'] = endDate; |
| @@ -210,19 +241,26 @@ | @@ -210,19 +241,26 @@ | ||
| 210 | var tbodyHtml = template('list_workDaily',{list:result}); | 241 | var tbodyHtml = template('list_workDaily',{list:result}); |
| 211 | // 把渲染好的模版html文本追加到表格中 | 242 | // 把渲染好的模版html文本追加到表格中 |
| 212 | $('#forms tbody').html(tbodyHtml); | 243 | $('#forms tbody').html(tbodyHtml); |
| 244 | + _w_table_rowspan("#forms tbody", 1); | ||
| 245 | + _w_table_rowspan("#forms tbody", 2); | ||
| 246 | + _w_table_rowspan("#forms tbody", 3); | ||
| 247 | + _w_table_rowspan("#forms tbody", 4); | ||
| 248 | + _w_table_rowspan("#forms tbody", 5); | ||
| 213 | 249 | ||
| 214 | }); | 250 | }); |
| 215 | } | 251 | } |
| 216 | 252 | ||
| 217 | - $("#export").on("click",function(){ | ||
| 218 | - $get('/pcpc/workDaily',{line:line,date:date,type:'export'},function(result){ | ||
| 219 | - window.open("/downloadFile/download?fileName=营运服务日报表"+moment(date).format("YYYYMMDD")); | ||
| 220 | - }); | ||
| 221 | - }); | 253 | +// $("#export").on("click",function(){ |
| 254 | +// $get('/pcpc/workDaily',{line:line,date:date,type:'export'},function(result){ | ||
| 255 | +// window.open("/downloadFile/download?fileName=营运服务日报表"+moment(date).format("YYYYMMDD")); | ||
| 256 | +// }); | ||
| 257 | +// }); | ||
| 222 | 258 | ||
| 223 | 259 | ||
| 224 | $("#line").on("change", function(){ | 260 | $("#line").on("change", function(){ |
| 225 | line = $("#line").val(); | 261 | line = $("#line").val(); |
| 262 | + if(line == " ") | ||
| 263 | + line = ""; | ||
| 226 | updateModel(); | 264 | updateModel(); |
| 227 | }); | 265 | }); |
| 228 | $('#startDate').on("blur", function(){ | 266 | $('#startDate').on("blur", function(){ |
| @@ -258,6 +296,30 @@ | @@ -258,6 +296,30 @@ | ||
| 258 | } | 296 | } |
| 259 | 297 | ||
| 260 | 298 | ||
| 299 | + function _w_table_rowspan(_w_table_id, _w_table_colnum){ | ||
| 300 | + _w_table_firsttd = ""; | ||
| 301 | + _w_table_currenttd = ""; | ||
| 302 | + _w_table_SpanNum = 0; | ||
| 303 | + _w_table_Obj = jQuery(_w_table_id + " tr td:nth-child(" + _w_table_colnum + ")"); | ||
| 304 | + _w_table_Obj.each(function(i){ | ||
| 305 | + if(i==0){ | ||
| 306 | + _w_table_firsttd = jQuery(this); | ||
| 307 | + _w_table_SpanNum = 1; | ||
| 308 | + }else{ | ||
| 309 | + _w_table_currenttd = jQuery(this); | ||
| 310 | + if(_w_table_firsttd.text()==_w_table_currenttd.text()){ | ||
| 311 | + _w_table_SpanNum++; | ||
| 312 | + _w_table_currenttd.hide(); //remove(); | ||
| 313 | + _w_table_firsttd.attr("rowSpan",_w_table_SpanNum); | ||
| 314 | + }else{ | ||
| 315 | + _w_table_firsttd = jQuery(this); | ||
| 316 | + _w_table_SpanNum = 1; | ||
| 317 | + } | ||
| 318 | + } | ||
| 319 | + }); | ||
| 320 | + } | ||
| 321 | + | ||
| 322 | + | ||
| 261 | }); | 323 | }); |
| 262 | 324 | ||
| 263 | </script> | 325 | </script> |
| @@ -267,7 +329,7 @@ | @@ -267,7 +329,7 @@ | ||
| 267 | <td>{{obj.date}}</td> | 329 | <td>{{obj.date}}</td> |
| 268 | <td>{{obj.times}}</td> | 330 | <td>{{obj.times}}</td> |
| 269 | <td>{{obj.company}}</td> | 331 | <td>{{obj.company}}</td> |
| 270 | - <td>{{obj.branchCompany}}</td> | 332 | + <td>{{obj.subCompany}}</td> |
| 271 | <td>{{obj.line}}</td> | 333 | <td>{{obj.line}}</td> |
| 272 | <td>{{obj.qdz}}</td> | 334 | <td>{{obj.qdz}}</td> |
| 273 | <td>{{obj.jhInterval}}</td> | 335 | <td>{{obj.jhInterval}}</td> |
src/main/resources/static/pages/forms/statement/correctStatis.html
0 → 100644
| 1 | +<style type="text/css"> | ||
| 2 | + .table-bordered { | ||
| 3 | + border: 1px solid; } | ||
| 4 | + .table-bordered > thead > tr > th, | ||
| 5 | + .table-bordered > thead > tr > td, | ||
| 6 | + .table-bordered > tbody > tr > th, | ||
| 7 | + .table-bordered > tbody > tr > td, | ||
| 8 | + .table-bordered > tfoot > tr > th, | ||
| 9 | + .table-bordered > tfoot > tr > td { | ||
| 10 | + border: 1px solid; } | ||
| 11 | + .table-bordered > thead > tr > th, | ||
| 12 | + .table-bordered > thead > tr > td { | ||
| 13 | + border-bottom-width: 2px; } | ||
| 14 | + .table > tbody + tbody { | ||
| 15 | + border-top: 1px solid; } | ||
| 16 | +</style> | ||
| 17 | + | ||
| 18 | +<div class="page-head"> | ||
| 19 | + <div class="page-title"> | ||
| 20 | + <h1>集群调度修正率统计表</h1> | ||
| 21 | + </div> | ||
| 22 | +</div> | ||
| 23 | + | ||
| 24 | +<div class="row"> | ||
| 25 | + <div class="col-md-12"> | ||
| 26 | + <div class="portlet light porttlet-fit bordered"> | ||
| 27 | + <div class="portlet-title"> | ||
| 28 | + <form id="history" class="form-inline" action=""> | ||
| 29 | + <div style="display: inline-block;"> | ||
| 30 | + <span class="item-label" style="width: 80px; margin-left: 33px">公司: </span> | ||
| 31 | + <select class="form-control" name="company" id="company" style="width: 140px;"></select> | ||
| 32 | + </div> | ||
| 33 | + <div style="display: inline-block;"> | ||
| 34 | + <span class="item-label" style="width: 80px; margin-left: 24px">分公司: </span> | ||
| 35 | + <select class="form-control" name="subCompany" id="subCompany" style="width: 140px;"></select> | ||
| 36 | + </div> | ||
| 37 | + <div style="display: inline-block;"> | ||
| 38 | + <span class="item-label" style="width: 80px; margin-left: 24px">线路: </span> | ||
| 39 | + <select class="form-control" name="line" id="line" style="width: 140px;"></select> | ||
| 40 | + </div> | ||
| 41 | + <div style="margin-top: 10px"></div> | ||
| 42 | + <div style="display: inline-block;margin-left: 5px;"> | ||
| 43 | + <span class="item-label" style="width: 80px;">开始时间: </span> | ||
| 44 | + <input class="form-control" type="text" id="startDate" style="width: 140px;"/> | ||
| 45 | + </div> | ||
| 46 | + <div style="display: inline-block;margin-left: 10px;"> | ||
| 47 | + <span class="item-label" style="width: 80px;">结束时间: </span> | ||
| 48 | + <input class="form-control" type="text" id="endDate" style="width: 140px;"/> | ||
| 49 | + </div> | ||
| 50 | + <div style="display: inline-block;margin-left: 10px;"> | ||
| 51 | + <span class="item-label" style="width: 80px;">时间段: </span> | ||
| 52 | + <input class="form-control" type="text" id="times1" style="width: 60px;"/> | ||
| 53 | + </div> | ||
| 54 | + <div style="display: inline-block;"> | ||
| 55 | + <span class="item-label" style="width: 80px;"> - </span> | ||
| 56 | + <input class="form-control" type="text" id="times2" style="width: 60px;"/> | ||
| 57 | + </div> | ||
| 58 | + <div class="form-group"> | ||
| 59 | + <input class="btn btn-default" type="button" id="query" value="筛选"/> | ||
| 60 | +<!-- <input class="btn btn-default" type="button" id="export" value="导出"/> --> | ||
| 61 | + </div> | ||
| 62 | + </form> | ||
| 63 | + </div> | ||
| 64 | + <div class="portlet-body"> | ||
| 65 | + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px"> | ||
| 66 | + <table class="table table-bordered table-hover table-checkable" id="forms"> | ||
| 67 | + </table> | ||
| 68 | + <div style="text-align: right;"> | ||
| 69 | + <ul id="pagination" class="pagination"></ul> | ||
| 70 | + </div> | ||
| 71 | + </div> | ||
| 72 | + | ||
| 73 | + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px"> | ||
| 74 | + <table class="table table-bordered table-hover table-checkable" id="subinfo"> | ||
| 75 | + </table> | ||
| 76 | + <div style="text-align: right;"> | ||
| 77 | + <ul id="pagination" class="pagination"></ul> | ||
| 78 | + </div> | ||
| 79 | + </div> | ||
| 80 | + | ||
| 81 | + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px"> | ||
| 82 | + <table class="table table-bordered table-hover table-checkable" id="lineinfo"> | ||
| 83 | + </table> | ||
| 84 | + <div style="text-align: right;"> | ||
| 85 | + <ul id="pagination" class="pagination"></ul> | ||
| 86 | + </div> | ||
| 87 | + </div> | ||
| 88 | + | ||
| 89 | + <div class="table-container" style="margin-top: 10px;overflow:auto;min-width: 906px"> | ||
| 90 | + <table class="table table-bordered table-hover table-checkable" id="lines"> | ||
| 91 | + </table> | ||
| 92 | + <div style="text-align: right;"> | ||
| 93 | + <ul id="pagination" class="pagination"></ul> | ||
| 94 | + </div> | ||
| 95 | + </div> | ||
| 96 | + </div> | ||
| 97 | + </div> | ||
| 98 | + </div> | ||
| 99 | +</div> | ||
| 100 | + | ||
| 101 | +<script> | ||
| 102 | + $(function(){ | ||
| 103 | + | ||
| 104 | + | ||
| 105 | + // 关闭左侧栏 | ||
| 106 | + if (!$('body').hasClass('page-sidebar-closed')) | ||
| 107 | + $('.menu-toggler.sidebar-toggler').click(); | ||
| 108 | + | ||
| 109 | + $("#startDate").datetimepicker({ | ||
| 110 | + format : 'YYYY-MM-DD', | ||
| 111 | + locale : 'zh-cn' | ||
| 112 | + }); | ||
| 113 | + $("#endDate").datetimepicker({ | ||
| 114 | + format : 'YYYY-MM-DD', | ||
| 115 | + locale : 'zh-cn' | ||
| 116 | + }); | ||
| 117 | + $("#times1").datetimepicker({ | ||
| 118 | + format : 'HH:mm', | ||
| 119 | + locale : 'zh-cn' | ||
| 120 | + }); | ||
| 121 | + $("#times2").datetimepicker({ | ||
| 122 | + format : 'HH:mm', | ||
| 123 | + locale : 'zh-cn' | ||
| 124 | + }); | ||
| 125 | + | ||
| 126 | + var d = new Date(); | ||
| 127 | + var year = d.getFullYear(); | ||
| 128 | + var month = d.getMonth() + 1; | ||
| 129 | + var day = d.getDate(); | ||
| 130 | + if(month > 9){ | ||
| 131 | + $("#startDate").val(year + "-" + month + "-" + day); | ||
| 132 | + $("#endDate").val(year + "-" + month + "-" + day); | ||
| 133 | + } else { | ||
| 134 | + $("#startDate").val(year + "-0" + month + "-" + day); | ||
| 135 | + $("#endDate").val(year + "-0" + month + "-" + day); | ||
| 136 | + } | ||
| 137 | + $("#times1").val("06:00"); | ||
| 138 | + $("#times2").val("07:00"); | ||
| 139 | + | ||
| 140 | + $.get('/basic/lineCode2Name', function(result){ | ||
| 141 | + var data=[]; | ||
| 142 | + | ||
| 143 | + data.push({id: " ", text: "全部线路"}); | ||
| 144 | + for(var code in result){ | ||
| 145 | + data.push({id: code, text: result[code]}); | ||
| 146 | + } | ||
| 147 | + console.log(data); | ||
| 148 | + initPinYinSelect2('#line',data,''); | ||
| 149 | + | ||
| 150 | + line = ""; | ||
| 151 | + updateModel(); | ||
| 152 | + }); | ||
| 153 | + | ||
| 154 | + var obj = []; | ||
| 155 | + $.get('/user/companyData', function(result){ | ||
| 156 | + obj = result; | ||
| 157 | + var options = ''; | ||
| 158 | + for(var i = 0; i < obj.length; i++){ | ||
| 159 | + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>'; | ||
| 160 | + } | ||
| 161 | + $('#company').html(options); | ||
| 162 | + updateCompany(); | ||
| 163 | + }); | ||
| 164 | + | ||
| 165 | + $("#company").on("change",updateCompany); | ||
| 166 | + function updateCompany(){ | ||
| 167 | + var company = $('#company').val(); | ||
| 168 | + var options = ''; | ||
| 169 | + for(var i = 0; i < obj.length; i++){ | ||
| 170 | + if(obj[i].companyCode == company){ | ||
| 171 | + var children = obj[i].children; | ||
| 172 | + for(var j = 0; j < children.length; j++){ | ||
| 173 | + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>'; | ||
| 174 | + } | ||
| 175 | + } | ||
| 176 | + } | ||
| 177 | + $('#subCompany').html(options); | ||
| 178 | + } | ||
| 179 | + | ||
| 180 | + | ||
| 181 | + $("#query").on("click",jsDoQuery); | ||
| 182 | + | ||
| 183 | + var company; | ||
| 184 | + var subCompany; | ||
| 185 | + var lines; | ||
| 186 | + var line = $("#line").val(); | ||
| 187 | + var startDate = $("#startDate").val(); | ||
| 188 | + var endDate = $("#endDate").val(); | ||
| 189 | + var times = $("#times1").val() + "-" + $("#times2").val(); | ||
| 190 | + function jsDoQuery(pagination){ | ||
| 191 | + var params = {}; | ||
| 192 | +// line = $("#line").val(); | ||
| 193 | + startDate = $("#startDate").val(); | ||
| 194 | + endDate = $("#endDate").val(); | ||
| 195 | + times = $("#times1").val() + "-" + $("#times2").val(); | ||
| 196 | + params['line'] = line; | ||
| 197 | + params['startDate'] = startDate; | ||
| 198 | + params['endDate'] = endDate; | ||
| 199 | + params['times'] = times; | ||
| 200 | + params['type'] = "query"; | ||
| 201 | +// $(".hidden").removeClass("hidden"); | ||
| 202 | + $get('/busInterval/correctStatis', params, function(result){ | ||
| 203 | + // 把数据填充到模版中 | ||
| 204 | + var tbodyHtml = template('list_company',{list:result, type:1}); | ||
| 205 | + // 把渲染好的模版html文本追加到表格中 | ||
| 206 | + $('#forms').html(tbodyHtml); | ||
| 207 | + $('#subinfo').html(""); | ||
| 208 | + $('#lineinfo').html(""); | ||
| 209 | + $("#lines").html(""); | ||
| 210 | + | ||
| 211 | + company = result; | ||
| 212 | + }); | ||
| 213 | + } | ||
| 214 | + | ||
| 215 | + $("#forms").on("click","tbody tr",function(){ | ||
| 216 | + if($(this).children().size() < 2){ | ||
| 217 | + return; | ||
| 218 | + } | ||
| 219 | + var params = {}; | ||
| 220 | + $(this).children().each(function(index){ | ||
| 221 | + params[index] = $(this).text(); | ||
| 222 | + }); | ||
| 223 | + $.each(company, function(i, g){ | ||
| 224 | + if(g.company == params[1]){ | ||
| 225 | + var tbodyHtml = template('list_company',{list:g.workList, type:2}); | ||
| 226 | + $("#subinfo").html(tbodyHtml); | ||
| 227 | + $("#lineinfo").html(""); | ||
| 228 | + $("#lines").html(""); | ||
| 229 | + | ||
| 230 | + subCompany = g.workList; | ||
| 231 | + } | ||
| 232 | + }); | ||
| 233 | + }); | ||
| 234 | + | ||
| 235 | + $("#subinfo").on("click","tbody tr",function(){ | ||
| 236 | + if($(this).children().size() < 2){ | ||
| 237 | + return; | ||
| 238 | + } | ||
| 239 | + var params = {}; | ||
| 240 | + $(this).children().each(function(index){ | ||
| 241 | + params[index] = $(this).text(); | ||
| 242 | + }); | ||
| 243 | + $.each(subCompany, function(i, g){ | ||
| 244 | + if(g.company == params[1] && g.subCompany == params[2]){ | ||
| 245 | + var tbodyHtml = template('list_company',{list:g.workList, type:3}); | ||
| 246 | + $("#lineinfo").html(tbodyHtml); | ||
| 247 | + $("#lines").html(""); | ||
| 248 | + | ||
| 249 | + lines = g.workList; | ||
| 250 | + } | ||
| 251 | + }); | ||
| 252 | + }); | ||
| 253 | + | ||
| 254 | + $("#lineinfo").on("click","tbody tr",function(){ | ||
| 255 | + if($(this).children().size() < 2){ | ||
| 256 | + return; | ||
| 257 | + } | ||
| 258 | + var params = {}; | ||
| 259 | + $(this).children().each(function(index){ | ||
| 260 | + params[index] = $(this).text(); | ||
| 261 | + }); | ||
| 262 | + $.each(lines, function(i, g){ | ||
| 263 | + if(g.company == params[1] && g.subCompany == params[2] && g.line == params[3]){ | ||
| 264 | + var tbodyHtml = template('list_workList',{list:g.workList}); | ||
| 265 | + $("#lines").html(tbodyHtml); | ||
| 266 | + } | ||
| 267 | + }); | ||
| 268 | + }); | ||
| 269 | + | ||
| 270 | + $("#export").on("click", function(){ | ||
| 271 | + $get('/pcpc/workDaily',{line:line,date:date,type:'export'},function(result){ | ||
| 272 | + window.open("/downloadFile/download?fileName=营运服务日报表"+moment(date).format("YYYYMMDD")); | ||
| 273 | + }); | ||
| 274 | + }); | ||
| 275 | + | ||
| 276 | + | ||
| 277 | + $("#line").on("change", function(){ | ||
| 278 | + line = $("#line").val(); | ||
| 279 | + if(line == " ") | ||
| 280 | + line = ""; | ||
| 281 | + updateModel(); | ||
| 282 | + }); | ||
| 283 | + $('#startDate').on("blur", function(){ | ||
| 284 | + startDate = $("#startDate").val(); | ||
| 285 | + endDate = $("#endDate").val(); | ||
| 286 | + updateModel(); | ||
| 287 | + }); | ||
| 288 | + $('#endDate').on("blur", function(){ | ||
| 289 | + startDate = $("#startDate").val(); | ||
| 290 | + endDate = $("#endDate").val(); | ||
| 291 | + updateModel(); | ||
| 292 | + }); | ||
| 293 | + | ||
| 294 | + | ||
| 295 | + }); | ||
| 296 | + | ||
| 297 | +</script> | ||
| 298 | +<script type="text/html" id="list_company"> | ||
| 299 | +<thead> | ||
| 300 | + <tr> | ||
| 301 | + <th class="hidden"></th> | ||
| 302 | + <th rowspan="2" width="120px">日期</th> | ||
| 303 | + <th rowspan="2">公司</th> | ||
| 304 | + {{if type>1}}<th rowspan="2">分公司</th>{{/if}} | ||
| 305 | + {{if type<3}}<th rowspan="2">线路条数</th>{{/if}} | ||
| 306 | + {{if type==3}}<th rowspan="2">线路</th>{{/if}} | ||
| 307 | + <th rowspan="2">实际营运班次</th> | ||
| 308 | + <th colspan="3" align="center">待发调整数</th> | ||
| 309 | + <th rowspan="2">掉线调整数</th> | ||
| 310 | + <th rowspan="2">各类烂班调整数</th> | ||
| 311 | + <th rowspan="2">修正次数汇总</th> | ||
| 312 | + <th rowspan="2">待发调整率</th> | ||
| 313 | + <th rowspan="2">掉线调整率</th> | ||
| 314 | + <th rowspan="2">各类烂班调整率</th> | ||
| 315 | + <th rowspan="2">修正率汇总</th> | ||
| 316 | + </tr> | ||
| 317 | + <tr> | ||
| 318 | + <th class="hidden"></th> | ||
| 319 | + <th>手动调整</th> | ||
| 320 | + <th>自动调整</th> | ||
| 321 | + <th>待发调整合计</th> | ||
| 322 | + </tr> | ||
| 323 | +</thead> | ||
| 324 | +<tbody> | ||
| 325 | + {{each list as obj i}} | ||
| 326 | + <tr> | ||
| 327 | + {{if obj.date=='合计'}} | ||
| 328 | + {{if type==1}}<td colspan="2">{{obj.date}}</td>{{/if}} | ||
| 329 | + {{if type==2}}<td colspan="3">{{obj.date}}</td>{{/if}} | ||
| 330 | + {{if type==3}}<td colspan="4">{{obj.date}}</td>{{/if}} | ||
| 331 | + {{/if}} | ||
| 332 | + {{if obj.date!='合计'}} | ||
| 333 | + <td>{{obj.date}}</td> | ||
| 334 | + | ||
| 335 | + {{/if}} | ||
| 336 | + {{if obj.date!='合计'}}<td>{{obj.company}}</td>{{/if}} | ||
| 337 | + {{if type>1 && obj.date!='合计'}}<td>{{obj.subCompany}}</td>{{/if}} | ||
| 338 | + {{if type<3}}<td>{{obj.lines}}</td>{{/if}} | ||
| 339 | + {{if type==3 && obj.date!='合计'}}<td>{{obj.line}}</td>{{/if}} | ||
| 340 | + <td>{{obj.sjbc}}</td> | ||
| 341 | + <td>{{obj.sddf}}</td> | ||
| 342 | + <td>{{obj.zddf}}</td> | ||
| 343 | + <td>{{obj.dfhj}}</td> | ||
| 344 | + <td>{{obj.dxtz}}</td> | ||
| 345 | + <td>{{obj.lbtz}}</td> | ||
| 346 | + <td>{{obj.correct}}</td> | ||
| 347 | + <td>{{obj.dfbl}}</td> | ||
| 348 | + <td>{{obj.dxbl}}</td> | ||
| 349 | + <td>{{obj.lbbl}}</td> | ||
| 350 | + <td>{{obj.correctbl}}</td> | ||
| 351 | + </tr> | ||
| 352 | + {{/each}} | ||
| 353 | + {{if list.length == 0}} | ||
| 354 | + <tr> | ||
| 355 | + <td colspan="15"><h6 class="muted">没有找到相关数据</h6></td> | ||
| 356 | + </tr> | ||
| 357 | + {{/if}} | ||
| 358 | +</tbody> | ||
| 359 | +</script> | ||
| 360 | +<script type="text/html" id="list_workList"> | ||
| 361 | +<thead> | ||
| 362 | + <tr> | ||
| 363 | + <th colspan="9">修正报表</th> | ||
| 364 | + </tr> | ||
| 365 | + <tr> | ||
| 366 | + <th>路牌</th> | ||
| 367 | + <th>车号</th> | ||
| 368 | + <th>工号</th> | ||
| 369 | + <th>人名</th> | ||
| 370 | + <th>发车时间</th> | ||
| 371 | + <th>结束时间</th> | ||
| 372 | + <th>修改人</th> | ||
| 373 | + <th>修改时间</th> | ||
| 374 | + <th>修改原因</th> | ||
| 375 | + </tr> | ||
| 376 | +</thead> | ||
| 377 | +<tbody> | ||
| 378 | + {{each list as obj i}} | ||
| 379 | + <tr> | ||
| 380 | + <td>{{obj.lpName}}</td> | ||
| 381 | + <td>{{obj.clZbh}}</td> | ||
| 382 | + <td>{{obj.jGh}}</td> | ||
| 383 | + <td>{{obj.jName}}</td> | ||
| 384 | + <td>{{obj.fcsj}}</td> | ||
| 385 | + <td>{{obj.zdsj}}</td> | ||
| 386 | + <td>{{obj.updateBy}}</td> | ||
| 387 | + <td>{{obj.updateDate}}</td> | ||
| 388 | + <td>{{obj.remarks}}</td> | ||
| 389 | + </tr> | ||
| 390 | + {{/each}} | ||
| 391 | + {{if list.length == 0}} | ||
| 392 | + <tr> | ||
| 393 | + <td colspan="15"><h6 class="muted">没有找到相关数据</h6></td> | ||
| 394 | + </tr> | ||
| 395 | + {{/if}} | ||
| 396 | +</tbody> | ||
| 397 | +</script> |
src/main/resources/static/pages/forms/statement/lbStatuAnaly.html
| @@ -13,6 +13,9 @@ | @@ -13,6 +13,9 @@ | ||
| 13 | border-bottom-width: 2px; } | 13 | border-bottom-width: 2px; } |
| 14 | .table > tbody + tbody { | 14 | .table > tbody + tbody { |
| 15 | border-top: 1px solid; } | 15 | border-top: 1px solid; } |
| 16 | + #forms > tbody > tr{ | ||
| 17 | + background-color: #FFFFFF; | ||
| 18 | + } | ||
| 16 | </style> | 19 | </style> |
| 17 | 20 | ||
| 18 | <div class="page-head"> | 21 | <div class="page-head"> |
| @@ -26,7 +29,7 @@ | @@ -26,7 +29,7 @@ | ||
| 26 | <div class="portlet light porttlet-fit bordered"> | 29 | <div class="portlet light porttlet-fit bordered"> |
| 27 | <div class="portlet-title"> | 30 | <div class="portlet-title"> |
| 28 | <form id="history" class="form-inline" action=""> | 31 | <form id="history" class="form-inline" action=""> |
| 29 | - <div style="display: inline-block;margin-left: 15px;"> | 32 | + <div style="display: inline-block;margin-left: 5px;"> |
| 30 | <span class="item-label" style="width: 80px;">烂班原因: </span> | 33 | <span class="item-label" style="width: 80px;">烂班原因: </span> |
| 31 | <input class="form-control" type="checkbox" id="totalLb" style="width: 20px;" checked="true"/>全选 | 34 | <input class="form-control" type="checkbox" id="totalLb" style="width: 20px;" checked="true"/>全选 |
| 32 | <input class="form-control" type="checkbox" name="reason" style="width: 20px;" value="0" checked="true"/>路阻 | 35 | <input class="form-control" type="checkbox" name="reason" style="width: 20px;" value="0" checked="true"/>路阻 |
| @@ -41,59 +44,43 @@ | @@ -41,59 +44,43 @@ | ||
| 41 | <input class="form-control" type="checkbox" name="reason" style="width: 20px;" value="9" checked="true"/>外援 | 44 | <input class="form-control" type="checkbox" name="reason" style="width: 20px;" value="9" checked="true"/>外援 |
| 42 | <input class="form-control" type="checkbox" name="reason" style="width: 20px;" value="10" checked="true"/>其他 | 45 | <input class="form-control" type="checkbox" name="reason" style="width: 20px;" value="10" checked="true"/>其他 |
| 43 | </div> | 46 | </div> |
| 44 | - <br/> | ||
| 45 | - <div style="display: inline-block;margin-left: 15px;"> | ||
| 46 | - <span class="item-label" style="width: 80px;">公司: </span> | ||
| 47 | - <select class="form-control" name="company" id="company" style="width: 180px;"></select> | ||
| 48 | - </div> | ||
| 49 | - <div style="display: inline-block;margin-left: 15px;"> | ||
| 50 | - <span class="item-label" style="width: 80px;">分公司: </span> | ||
| 51 | - <select class="form-control" name="subCompany" id="subCompany" style="width: 180px;"></select> | 47 | + <div style="margin-top: 5px"></div> |
| 48 | + <div style="display: inline-block;"> | ||
| 49 | + <span class="item-label" style="width: 80px; margin-left: 33px">公司: </span> | ||
| 50 | + <select class="form-control" name="company" id="company" style="width: 140px;"></select> | ||
| 52 | </div> | 51 | </div> |
| 53 | <div style="display: inline-block;"> | 52 | <div style="display: inline-block;"> |
| 54 | - <span class="item-label" style="width: 80px;">线路: </span> | ||
| 55 | - <select class="form-control" name="line" id="line" style="width: 180px;"></select> | 53 | + <span class="item-label" style="width: 80px; margin-left: 24px">分公司: </span> |
| 54 | + <select class="form-control" name="subCompany" id="subCompany" style="width: 140px;"></select> | ||
| 56 | </div> | 55 | </div> |
| 57 | <div style="display: inline-block;"> | 56 | <div style="display: inline-block;"> |
| 57 | + <span class="item-label" style="width: 80px; margin-left: 24px">线路: </span> | ||
| 58 | + <select class="form-control" name="line" id="line" style="width: 140px;"></select> | ||
| 59 | + </div> | ||
| 60 | + <div style="display: inline-block; margin-left: 10px"> | ||
| 58 | <span class="item-label" style="width: 80px;">时刻类型: </span> | 61 | <span class="item-label" style="width: 80px;">时刻类型: </span> |
| 59 | - <select class="form-control" name="model" id="model" style="width: 180px;"> | 62 | + <select class="form-control" name="model" id="model" style="width: 165px;"> |
| 60 | <option value="">请选择...</option> | 63 | <option value="">请选择...</option> |
| 61 | </select> | 64 | </select> |
| 62 | </div> | 65 | </div> |
| 63 | - <br/> | ||
| 64 | - <div style="display: inline-block;margin-left: 15px;"> | 66 | + <div style="margin-top: 10px"></div> |
| 67 | + <div style="display: inline-block;margin-left: 5px;"> | ||
| 65 | <span class="item-label" style="width: 80px;">开始时间: </span> | 68 | <span class="item-label" style="width: 80px;">开始时间: </span> |
| 66 | - <input class="form-control" type="text" id="startDate" style="width: 180px;"/> | 69 | + <input class="form-control" type="text" id="startDate" style="width: 140px;"/> |
| 67 | </div> | 70 | </div> |
| 68 | - <div style="display: inline-block;margin-left: 15px;"> | 71 | + <div style="display: inline-block;margin-left: 10px;"> |
| 69 | <span class="item-label" style="width: 80px;">结束时间: </span> | 72 | <span class="item-label" style="width: 80px;">结束时间: </span> |
| 70 | - <input class="form-control" type="text" id="endDate" style="width: 180px;"/> | 73 | + <input class="form-control" type="text" id="endDate" style="width: 140px;"/> |
| 71 | </div> | 74 | </div> |
| 72 | - <div style="display: inline-block;"> | 75 | + <div style="display: inline-block;margin-left: 10px;"> |
| 73 | <span class="item-label" style="width: 80px;">时间段: </span> | 76 | <span class="item-label" style="width: 80px;">时间段: </span> |
| 74 | - <select class="form-control" name="model" id="times" style="width: 180px;"> | ||
| 75 | - <option value="05:00-06:00">05:00-06:00</option> | ||
| 76 | - <option value="06:00-07:00">06:00-07:00</option> | ||
| 77 | - <option value="07:00-08:00">07:00-08:00</option> | ||
| 78 | - <option value="08:00-09:00">08:00-09:00</option> | ||
| 79 | - <option value="09:00-10:00">09:00-10:00</option> | ||
| 80 | - <option value="10:00-11:00">10:00-11:00</option> | ||
| 81 | - <option value="11:00-12:00">11:00-12:00</option> | ||
| 82 | - <option value="12:00-13:00">12:00-13:00</option> | ||
| 83 | - <option value="13:00-14:00">13:00-14:00</option> | ||
| 84 | - <option value="14:00-15:00">14:00-15:00</option> | ||
| 85 | - <option value="15:00-16:00">15:00-16:00</option> | ||
| 86 | - <option value="16:00-17:00">16:00-17:00</option> | ||
| 87 | - <option value="17:00-18:00">17:00-18:00</option> | ||
| 88 | - <option value="18:00-19:00">18:00-19:00</option> | ||
| 89 | - <option value="19:00-20:00">19:00-20:00</option> | ||
| 90 | - <option value="20:00-21:00">20:00-21:00</option> | ||
| 91 | - <option value="21:00-22:00">21:00-22:00</option> | ||
| 92 | - <option value="22:00-23:00">22:00-23:00</option> | ||
| 93 | - <option value="23:00-00:00">23:00-00:00</option> | ||
| 94 | - </select> | 77 | + <input class="form-control" type="text" id="times1" style="width: 60px;"/> |
| 78 | + </div> | ||
| 79 | + <div style="display: inline-block;"> | ||
| 80 | + <span class="item-label" style="width: 80px;"> - </span> | ||
| 81 | + <input class="form-control" type="text" id="times2" style="width: 60px;"/> | ||
| 95 | </div> | 82 | </div> |
| 96 | - <div class="form-group"> | 83 | + <div class="form-group" style="margin-left: 10px"> |
| 97 | <input class="btn btn-default" type="button" id="query" value="筛选"/> | 84 | <input class="btn btn-default" type="button" id="query" value="筛选"/> |
| 98 | <!-- <input class="btn btn-default" type="button" id="export" value="导出"/> --> | 85 | <!-- <input class="btn btn-default" type="button" id="export" value="导出"/> --> |
| 99 | </div> | 86 | </div> |
| @@ -134,6 +121,14 @@ | @@ -134,6 +121,14 @@ | ||
| 134 | format : 'YYYY-MM-DD', | 121 | format : 'YYYY-MM-DD', |
| 135 | locale : 'zh-cn' | 122 | locale : 'zh-cn' |
| 136 | }); | 123 | }); |
| 124 | + $("#times1").datetimepicker({ | ||
| 125 | + format : 'HH:mm', | ||
| 126 | + locale : 'zh-cn' | ||
| 127 | + }); | ||
| 128 | + $("#times2").datetimepicker({ | ||
| 129 | + format : 'HH:mm', | ||
| 130 | + locale : 'zh-cn' | ||
| 131 | + }); | ||
| 137 | 132 | ||
| 138 | var d = new Date(); | 133 | var d = new Date(); |
| 139 | var year = d.getFullYear(); | 134 | var year = d.getFullYear(); |
| @@ -146,17 +141,20 @@ | @@ -146,17 +141,20 @@ | ||
| 146 | $("#startDate").val(year + "-0" + month + "-" + day); | 141 | $("#startDate").val(year + "-0" + month + "-" + day); |
| 147 | $("#endDate").val(year + "-0" + month + "-" + day); | 142 | $("#endDate").val(year + "-0" + month + "-" + day); |
| 148 | } | 143 | } |
| 144 | + $("#times1").val("06:00"); | ||
| 145 | + $("#times2").val("07:00"); | ||
| 149 | 146 | ||
| 150 | $.get('/basic/lineCode2Name', function(result){ | 147 | $.get('/basic/lineCode2Name', function(result){ |
| 151 | var data=[]; | 148 | var data=[]; |
| 152 | 149 | ||
| 150 | + data.push({id: " ", text: "全部线路"}); | ||
| 153 | for(var code in result){ | 151 | for(var code in result){ |
| 154 | data.push({id: code, text: result[code]}); | 152 | data.push({id: code, text: result[code]}); |
| 155 | } | 153 | } |
| 156 | -// console.log(data); | 154 | + console.log(data); |
| 157 | initPinYinSelect2('#line',data,''); | 155 | initPinYinSelect2('#line',data,''); |
| 158 | 156 | ||
| 159 | - line = data[0].id; | 157 | + line = ""; |
| 160 | updateModel(); | 158 | updateModel(); |
| 161 | }) | 159 | }) |
| 162 | 160 | ||
| @@ -165,7 +163,6 @@ | @@ -165,7 +163,6 @@ | ||
| 165 | obj = result; | 163 | obj = result; |
| 166 | var options = ''; | 164 | var options = ''; |
| 167 | for(var i = 0; i < obj.length; i++){ | 165 | for(var i = 0; i < obj.length; i++){ |
| 168 | -// alert(obj[i].children.length); | ||
| 169 | options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>'; | 166 | options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>'; |
| 170 | } | 167 | } |
| 171 | $('#company').html(options); | 168 | $('#company').html(options); |
| @@ -219,15 +216,15 @@ | @@ -219,15 +216,15 @@ | ||
| 219 | var startDate = $("#startDate").val(); | 216 | var startDate = $("#startDate").val(); |
| 220 | var endDate = $("#endDate").val(); | 217 | var endDate = $("#endDate").val(); |
| 221 | var model = $("#model").val(); | 218 | var model = $("#model").val(); |
| 222 | - var times = $("#times").val(); | 219 | + var times = $("#times1").val() + "-" + $("#times2").val(); |
| 223 | function jsDoQuery(pagination){ | 220 | function jsDoQuery(pagination){ |
| 224 | var reason = $("input[name='reason']"); | 221 | var reason = $("input[name='reason']"); |
| 225 | var params = {}; | 222 | var params = {}; |
| 226 | - line = $("#line").val(); | 223 | +// line = $("#line").val(); |
| 227 | startDate = $("#startDate").val(); | 224 | startDate = $("#startDate").val(); |
| 228 | endDate = $("#endDate").val(); | 225 | endDate = $("#endDate").val(); |
| 229 | model = $("#model").val(); | 226 | model = $("#model").val(); |
| 230 | - times = $("#times").val(); | 227 | + times = $("#times1").val() + "-" + $("#times2").val(); |
| 231 | params['line'] = line; | 228 | params['line'] = line; |
| 232 | params['startDate'] = startDate; | 229 | params['startDate'] = startDate; |
| 233 | params['endDate'] = endDate; | 230 | params['endDate'] = endDate; |
| @@ -240,6 +237,11 @@ | @@ -240,6 +237,11 @@ | ||
| 240 | var tbodyHtml = template('list_lbAnaly',{list:result, reason:reason, lb:lb}); | 237 | var tbodyHtml = template('list_lbAnaly',{list:result, reason:reason, lb:lb}); |
| 241 | // 把渲染好的模版html文本追加到表格中 | 238 | // 把渲染好的模版html文本追加到表格中 |
| 242 | $('#forms').html(tbodyHtml); | 239 | $('#forms').html(tbodyHtml); |
| 240 | + _w_table_rowspan("#forms", 1); | ||
| 241 | + _w_table_rowspan("#forms", 2); | ||
| 242 | + _w_table_rowspan("#forms", 3); | ||
| 243 | + _w_table_rowspan("#forms", 4); | ||
| 244 | + _w_table_rowspan("#forms", 5); | ||
| 243 | }); | 245 | }); |
| 244 | } | 246 | } |
| 245 | 247 | ||
| @@ -252,6 +254,8 @@ | @@ -252,6 +254,8 @@ | ||
| 252 | 254 | ||
| 253 | $("#line").on("change", function(){ | 255 | $("#line").on("change", function(){ |
| 254 | line = $("#line").val(); | 256 | line = $("#line").val(); |
| 257 | + if(line == " ") | ||
| 258 | + line = ""; | ||
| 255 | updateModel(); | 259 | updateModel(); |
| 256 | }); | 260 | }); |
| 257 | $('#startDate').on("blur", function(){ | 261 | $('#startDate').on("blur", function(){ |
| @@ -287,6 +291,30 @@ | @@ -287,6 +291,30 @@ | ||
| 287 | } | 291 | } |
| 288 | 292 | ||
| 289 | 293 | ||
| 294 | + function _w_table_rowspan(_w_table_id, _w_table_colnum){ | ||
| 295 | + _w_table_firsttd = ""; | ||
| 296 | + _w_table_currenttd = ""; | ||
| 297 | + _w_table_SpanNum = 0; | ||
| 298 | + _w_table_Obj = jQuery(_w_table_id + " tr td:nth-child(" + _w_table_colnum + ")"); | ||
| 299 | + _w_table_Obj.each(function(i){ | ||
| 300 | + if(i==0){ | ||
| 301 | + _w_table_firsttd = jQuery(this); | ||
| 302 | + _w_table_SpanNum = 1; | ||
| 303 | + }else{ | ||
| 304 | + _w_table_currenttd = jQuery(this); | ||
| 305 | + if(_w_table_firsttd.text()==_w_table_currenttd.text()){ | ||
| 306 | + _w_table_SpanNum++; | ||
| 307 | + _w_table_currenttd.hide(); //remove(); | ||
| 308 | + _w_table_firsttd.attr("rowSpan",_w_table_SpanNum); | ||
| 309 | + }else{ | ||
| 310 | + _w_table_firsttd = jQuery(this); | ||
| 311 | + _w_table_SpanNum = 1; | ||
| 312 | + } | ||
| 313 | + } | ||
| 314 | + }); | ||
| 315 | + } | ||
| 316 | + | ||
| 317 | + | ||
| 290 | }); | 318 | }); |
| 291 | 319 | ||
| 292 | </script> | 320 | </script> |
| @@ -361,7 +389,7 @@ | @@ -361,7 +389,7 @@ | ||
| 361 | {{/each}} | 389 | {{/each}} |
| 362 | {{if list.length == 0}} | 390 | {{if list.length == 0}} |
| 363 | <tr> | 391 | <tr> |
| 364 | - <td colspan="41"><h6 class="muted">没有找到相关数据</h6></td> | 392 | + <td colspan="44"><h6 class="muted">没有找到相关数据</h6></td> |
| 365 | </tr> | 393 | </tr> |
| 366 | {{/if}} | 394 | {{/if}} |
| 367 | </tbody> | 395 | </tbody> |
src/main/resources/static/pages/forms/statement/lineTimeAnaly.html
| @@ -34,55 +34,43 @@ | @@ -34,55 +34,43 @@ | ||
| 34 | <div class="portlet-title"> | 34 | <div class="portlet-title"> |
| 35 | <form id="history" class="form-inline" action=""> | 35 | <form id="history" class="form-inline" action=""> |
| 36 | <div style="display: inline-block;"> | 36 | <div style="display: inline-block;"> |
| 37 | - <span class="item-label" style="width: 80px;">线路: </span> | ||
| 38 | - <select class="form-control" name="line" id="line" style="width: 180px;"></select> | 37 | + <span class="item-label" style="width: 80px; margin-left: 33px">公司: </span> |
| 38 | + <select class="form-control" name="company" id="company" style="width: 140px;"></select> | ||
| 39 | </div> | 39 | </div> |
| 40 | - <div style="display: inline-block;margin-left: 15px;"> | ||
| 41 | - <span class="item-label" style="width: 80px;">开始时间: </span> | ||
| 42 | - <input class="form-control" type="text" id="startDate" style="width: 180px;"/> | ||
| 43 | - </div> | ||
| 44 | - <div style="display: inline-block;margin-left: 15px;"> | ||
| 45 | - <span class="item-label" style="width: 80px;">结束时间: </span> | ||
| 46 | - <input class="form-control" type="text" id="endDate" style="width: 180px;"/> | 40 | + <div style="display: inline-block;"> |
| 41 | + <span class="item-label" style="width: 80px; margin-left: 38px">线路: </span> | ||
| 42 | + <select class="form-control" name="line" id="line" style="width: 140px;"></select> | ||
| 47 | </div> | 43 | </div> |
| 48 | - <br/> | ||
| 49 | <div style="display: inline-block;"> | 44 | <div style="display: inline-block;"> |
| 45 | + <span class="item-label" style="width: 80px; margin-left: 24px">方向: </span> | ||
| 46 | + <select class="form-control" name="upDown" id="upDown" style="width: 140px;"> | ||
| 47 | + <option value="">请先选择线路</option> | ||
| 48 | + </select> | ||
| 49 | + </div> | ||
| 50 | + <div style="display: inline-block; margin-left: 10px"> | ||
| 50 | <span class="item-label" style="width: 80px;">时刻类型: </span> | 51 | <span class="item-label" style="width: 80px;">时刻类型: </span> |
| 51 | - <select class="form-control" name="model" id="model" style="width: 180px;"> | 52 | + <select class="form-control" name="model" id="model" style="width: 165px;"> |
| 52 | <option value="">请选择...</option> | 53 | <option value="">请选择...</option> |
| 53 | </select> | 54 | </select> |
| 54 | </div> | 55 | </div> |
| 55 | - <div style="display: inline-block;"> | 56 | + <div style="margin-top: 10px"></div> |
| 57 | + <div style="display: inline-block;margin-left: 5px;"> | ||
| 58 | + <span class="item-label" style="width: 80px;">开始时间: </span> | ||
| 59 | + <input class="form-control" type="text" id="startDate" style="width: 140px;"/> | ||
| 60 | + </div> | ||
| 61 | + <div style="display: inline-block;margin-left: 10px;"> | ||
| 62 | + <span class="item-label" style="width: 80px;">结束时间: </span> | ||
| 63 | + <input class="form-control" type="text" id="endDate" style="width: 140px;"/> | ||
| 64 | + </div> | ||
| 65 | + <div style="display: inline-block;margin-left: 10px;"> | ||
| 56 | <span class="item-label" style="width: 80px;">时间段: </span> | 66 | <span class="item-label" style="width: 80px;">时间段: </span> |
| 57 | - <select class="form-control" name="times" id="times" style="width: 180px;"> | ||
| 58 | - <option value="05:00-06:00">05:00-06:00</option> | ||
| 59 | - <option value="06:00-07:00">06:00-07:00</option> | ||
| 60 | - <option value="07:00-08:00">07:00-08:00</option> | ||
| 61 | - <option value="08:00-09:00">08:00-09:00</option> | ||
| 62 | - <option value="09:00-10:00">09:00-10:00</option> | ||
| 63 | - <option value="10:00-11:00">10:00-11:00</option> | ||
| 64 | - <option value="11:00-12:00">11:00-12:00</option> | ||
| 65 | - <option value="12:00-13:00">12:00-13:00</option> | ||
| 66 | - <option value="13:00-14:00">13:00-14:00</option> | ||
| 67 | - <option value="14:00-15:00">14:00-15:00</option> | ||
| 68 | - <option value="15:00-16:00">15:00-16:00</option> | ||
| 69 | - <option value="16:00-17:00">16:00-17:00</option> | ||
| 70 | - <option value="17:00-18:00">17:00-18:00</option> | ||
| 71 | - <option value="18:00-19:00">18:00-19:00</option> | ||
| 72 | - <option value="19:00-20:00">19:00-20:00</option> | ||
| 73 | - <option value="20:00-21:00">20:00-21:00</option> | ||
| 74 | - <option value="21:00-22:00">21:00-22:00</option> | ||
| 75 | - <option value="22:00-23:00">22:00-23:00</option> | ||
| 76 | - <option value="23:00-00:00">23:00-00:00</option> | ||
| 77 | - </select> | 67 | + <input class="form-control" type="text" id="times1" style="width: 60px;"/> |
| 78 | </div> | 68 | </div> |
| 79 | <div style="display: inline-block;"> | 69 | <div style="display: inline-block;"> |
| 80 | - <span class="item-label" style="width: 80px;">方向: </span> | ||
| 81 | - <select class="form-control" name="upDown" id="upDown" style="width: 180px;"> | ||
| 82 | - <option value="">请先选择线路</option> | ||
| 83 | - </select> | 70 | + <span class="item-label" style="width: 80px;"> - </span> |
| 71 | + <input class="form-control" type="text" id="times2" style="width: 60px;"/> | ||
| 84 | </div> | 72 | </div> |
| 85 | - <div class="form-group"> | 73 | + <div class="form-group" style="margin-left: 10px"> |
| 86 | <input class="btn btn-default" type="button" id="query" value="筛选"/> | 74 | <input class="btn btn-default" type="button" id="query" value="筛选"/> |
| 87 | <!-- <input class="btn btn-default" type="button" id="export" value="导出"/> --> | 75 | <!-- <input class="btn btn-default" type="button" id="export" value="导出"/> --> |
| 88 | </div> | 76 | </div> |
| @@ -186,6 +174,15 @@ | @@ -186,6 +174,15 @@ | ||
| 186 | format : 'YYYY-MM-DD', | 174 | format : 'YYYY-MM-DD', |
| 187 | locale : 'zh-cn' | 175 | locale : 'zh-cn' |
| 188 | }); | 176 | }); |
| 177 | + | ||
| 178 | + $("#times1").datetimepicker({ | ||
| 179 | + format : 'HH:mm', | ||
| 180 | + locale : 'zh-cn' | ||
| 181 | + }); | ||
| 182 | + $("#times2").datetimepicker({ | ||
| 183 | + format : 'HH:mm', | ||
| 184 | + locale : 'zh-cn' | ||
| 185 | + }); | ||
| 189 | 186 | ||
| 190 | var d = new Date(); | 187 | var d = new Date(); |
| 191 | var year = d.getFullYear(); | 188 | var year = d.getFullYear(); |
| @@ -198,24 +195,38 @@ | @@ -198,24 +195,38 @@ | ||
| 198 | $("#startDate").val(year + "-0" + month + "-" + day); | 195 | $("#startDate").val(year + "-0" + month + "-" + day); |
| 199 | $("#endDate").val(year + "-0" + month + "-" + day); | 196 | $("#endDate").val(year + "-0" + month + "-" + day); |
| 200 | } | 197 | } |
| 198 | + $("#times1").val("06:00"); | ||
| 199 | + $("#times2").val("07:00"); | ||
| 200 | + | ||
| 201 | + var obj = []; | ||
| 202 | + $.get('/user/companyData', function(result){ | ||
| 203 | + obj = result; | ||
| 204 | + var options = ''; | ||
| 205 | + for(var i = 0; i < obj.length; i++){ | ||
| 206 | + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>'; | ||
| 207 | + } | ||
| 208 | + $('#company').html(options); | ||
| 209 | + updateCompany(); | ||
| 210 | + }); | ||
| 201 | 211 | ||
| 202 | $.get('/basic/lineCode2Name',function(result){ | 212 | $.get('/basic/lineCode2Name',function(result){ |
| 203 | var data=[]; | 213 | var data=[]; |
| 204 | 214 | ||
| 215 | + data.push({id: " ", text:"全部路线"}); | ||
| 205 | for(var code in result){ | 216 | for(var code in result){ |
| 206 | data.push({id: code, text: result[code]}); | 217 | data.push({id: code, text: result[code]}); |
| 207 | } | 218 | } |
| 208 | console.log(data); | 219 | console.log(data); |
| 209 | initPinYinSelect2('#line',data,''); | 220 | initPinYinSelect2('#line',data,''); |
| 210 | 221 | ||
| 211 | - line = data[0].id; | 222 | + line = ""; |
| 212 | updateModel(); | 223 | updateModel(); |
| 213 | 224 | ||
| 214 | var params = {}; | 225 | var params = {}; |
| 215 | params['line'] = line; | 226 | params['line'] = line; |
| 216 | $get('/busInterval/getDir', params, function(result){ | 227 | $get('/busInterval/getDir', params, function(result){ |
| 217 | dirData = createTreeData(result); | 228 | dirData = createTreeData(result); |
| 218 | - var options = ''; | 229 | + var options = '<option value="">全部方向</option>'; |
| 219 | $.each(dirData, function(i, g){ | 230 | $.each(dirData, function(i, g){ |
| 220 | options += '<option value="'+g.name+'">'+g.name+'</option>'; | 231 | options += '<option value="'+g.name+'">'+g.name+'</option>'; |
| 221 | }); | 232 | }); |
| @@ -224,30 +235,22 @@ | @@ -224,30 +235,22 @@ | ||
| 224 | }); | 235 | }); |
| 225 | 236 | ||
| 226 | $("#query").on("click", function (){ | 237 | $("#query").on("click", function (){ |
| 227 | - line = $("#line").val(); | ||
| 228 | - upDown = $("#upDown").val(); | ||
| 229 | - if(line=="" || line==null){ | ||
| 230 | - layer.msg("请选择线路"); | ||
| 231 | - }else if(upDown==null || upDown==""){ | ||
| 232 | - layer.msg("请选择方向"); | ||
| 233 | - }else{ | ||
| 234 | - jsDoQuery(); | ||
| 235 | - } | 238 | + jsDoQuery(); |
| 236 | }); | 239 | }); |
| 237 | 240 | ||
| 238 | var line = $("#line").val(); | 241 | var line = $("#line").val(); |
| 239 | var startDate = $("#startDate").val(); | 242 | var startDate = $("#startDate").val(); |
| 240 | var endDate = $("#endDate").val(); | 243 | var endDate = $("#endDate").val(); |
| 241 | var model = $("#model").val(); | 244 | var model = $("#model").val(); |
| 242 | - var times = $("#times").val(); | 245 | + var times = $("#times1").val() + "-" + $("#times2").val(); |
| 243 | var upDown = $("#upDown").val(); | 246 | var upDown = $("#upDown").val(); |
| 244 | function jsDoQuery(pagination){ | 247 | function jsDoQuery(pagination){ |
| 245 | var params = {}; | 248 | var params = {}; |
| 246 | - line = $("#line").val(); | 249 | +// line = $("#line").val(); |
| 247 | startDate = $("#startDate").val(); | 250 | startDate = $("#startDate").val(); |
| 248 | endDate = $("#endDate").val(); | 251 | endDate = $("#endDate").val(); |
| 249 | model = $("#model").val(); | 252 | model = $("#model").val(); |
| 250 | - times = $("#times").val(); | 253 | + times = $("#times1").val() + "-" + $("#times2").val(); |
| 251 | upDown = $("#upDown").val(); | 254 | upDown = $("#upDown").val(); |
| 252 | params['line'] = line; | 255 | params['line'] = line; |
| 253 | params['startDate'] = startDate; | 256 | params['startDate'] = startDate; |
| @@ -302,12 +305,14 @@ | @@ -302,12 +305,14 @@ | ||
| 302 | 305 | ||
| 303 | $("#line").on("change", function(){ | 306 | $("#line").on("change", function(){ |
| 304 | line = $("#line").val(); | 307 | line = $("#line").val(); |
| 308 | + if(line == " ") | ||
| 309 | + line = ""; | ||
| 305 | updateModel(); | 310 | updateModel(); |
| 306 | var params = {}; | 311 | var params = {}; |
| 307 | params['line'] = line; | 312 | params['line'] = line; |
| 308 | $get('/busInterval/getDir', params, function(result){ | 313 | $get('/busInterval/getDir', params, function(result){ |
| 309 | dirData = createTreeData(result); | 314 | dirData = createTreeData(result); |
| 310 | - var options = ''; | 315 | + var options = '<option value="">全部方向</option>'; |
| 311 | $.each(dirData, function(i, g){ | 316 | $.each(dirData, function(i, g){ |
| 312 | options += '<option value="'+g.name+'">'+g.name+'</option>'; | 317 | options += '<option value="'+g.name+'">'+g.name+'</option>'; |
| 313 | }); | 318 | }); |
src/main/resources/static/pages/forms/statement/timeAndSpeed.html
| @@ -13,6 +13,9 @@ | @@ -13,6 +13,9 @@ | ||
| 13 | border-bottom-width: 2px; } | 13 | border-bottom-width: 2px; } |
| 14 | .table > tbody + tbody { | 14 | .table > tbody + tbody { |
| 15 | border-top: 1px solid; } | 15 | border-top: 1px solid; } |
| 16 | + #forms > tbody > tr{ | ||
| 17 | + background-color: #FFFFFF; | ||
| 18 | + } | ||
| 16 | </style> | 19 | </style> |
| 17 | 20 | ||
| 18 | <div class="page-head"> | 21 | <div class="page-head"> |
| @@ -27,55 +30,47 @@ | @@ -27,55 +30,47 @@ | ||
| 27 | <div class="portlet-title"> | 30 | <div class="portlet-title"> |
| 28 | <form id="history" class="form-inline" action=""> | 31 | <form id="history" class="form-inline" action=""> |
| 29 | <div style="display: inline-block;"> | 32 | <div style="display: inline-block;"> |
| 30 | - <span class="item-label" style="width: 80px;">线路: </span> | ||
| 31 | - <select class="form-control" name="line" id="line" style="width: 180px;"></select> | 33 | + <span class="item-label" style="width: 80px; margin-left: 33px">公司: </span> |
| 34 | + <select class="form-control" name="company" id="company" style="width: 140px;"></select> | ||
| 32 | </div> | 35 | </div> |
| 33 | - <div style="display: inline-block;margin-left: 15px;"> | ||
| 34 | - <span class="item-label" style="width: 80px;">开始时间: </span> | ||
| 35 | - <input class="form-control" type="text" id="startDate" style="width: 180px;"/> | 36 | + <div style="display: inline-block;"> |
| 37 | + <span class="item-label" style="width: 80px; margin-left: 24px">分公司: </span> | ||
| 38 | + <select class="form-control" name="subCompany" id="subCompany" style="width: 140px;"></select> | ||
| 36 | </div> | 39 | </div> |
| 37 | - <div style="display: inline-block;margin-left: 15px;"> | ||
| 38 | - <span class="item-label" style="width: 80px;">结束时间: </span> | ||
| 39 | - <input class="form-control" type="text" id="endDate" style="width: 180px;"/> | 40 | + <div style="display: inline-block;"> |
| 41 | + <span class="item-label" style="width: 80px; margin-left: 24px">线路: </span> | ||
| 42 | + <select class="form-control" name="line" id="line" style="width: 140px;"></select> | ||
| 40 | </div> | 43 | </div> |
| 41 | - <br/> | ||
| 42 | <div style="display: inline-block;"> | 44 | <div style="display: inline-block;"> |
| 45 | + <span class="item-label" style="width: 80px; margin-left: 8px">方向: </span> | ||
| 46 | + <select class="form-control" name="upDown" id="upDown" style="width: 140px;"> | ||
| 47 | + <option value="">请先选择线路</option> | ||
| 48 | + </select> | ||
| 49 | + </div> | ||
| 50 | + <div style="display: inline-block; margin-left: 10px"> | ||
| 43 | <span class="item-label" style="width: 80px;">时刻类型: </span> | 51 | <span class="item-label" style="width: 80px;">时刻类型: </span> |
| 44 | - <select class="form-control" name="model" id="model" style="width: 180px;"> | 52 | + <select class="form-control" name="model" id="model" style="width: 165px;"> |
| 45 | <option value="">请选择...</option> | 53 | <option value="">请选择...</option> |
| 46 | </select> | 54 | </select> |
| 47 | </div> | 55 | </div> |
| 48 | - <div style="display: inline-block;"> | 56 | + <div style="margin-top: 10px"></div> |
| 57 | + <div style="display: inline-block;margin-left: 5px;"> | ||
| 58 | + <span class="item-label" style="width: 80px;">开始时间: </span> | ||
| 59 | + <input class="form-control" type="text" id="startDate" style="width: 140px;"/> | ||
| 60 | + </div> | ||
| 61 | + <div style="display: inline-block;margin-left: 10px;"> | ||
| 62 | + <span class="item-label" style="width: 80px;">结束时间: </span> | ||
| 63 | + <input class="form-control" type="text" id="endDate" style="width: 140px;"/> | ||
| 64 | + </div> | ||
| 65 | + <div style="display: inline-block;margin-left: 10px;"> | ||
| 49 | <span class="item-label" style="width: 80px;">时间段: </span> | 66 | <span class="item-label" style="width: 80px;">时间段: </span> |
| 50 | - <select class="form-control" name="times" id="times" style="width: 180px;"> | ||
| 51 | - <option value="05:00-06:00">05:00-06:00</option> | ||
| 52 | - <option value="06:00-07:00">06:00-07:00</option> | ||
| 53 | - <option value="07:00-08:00">07:00-08:00</option> | ||
| 54 | - <option value="08:00-09:00">08:00-09:00</option> | ||
| 55 | - <option value="09:00-10:00">09:00-10:00</option> | ||
| 56 | - <option value="10:00-11:00">10:00-11:00</option> | ||
| 57 | - <option value="11:00-12:00">11:00-12:00</option> | ||
| 58 | - <option value="12:00-13:00">12:00-13:00</option> | ||
| 59 | - <option value="13:00-14:00">13:00-14:00</option> | ||
| 60 | - <option value="14:00-15:00">14:00-15:00</option> | ||
| 61 | - <option value="15:00-16:00">15:00-16:00</option> | ||
| 62 | - <option value="16:00-17:00">16:00-17:00</option> | ||
| 63 | - <option value="17:00-18:00">17:00-18:00</option> | ||
| 64 | - <option value="18:00-19:00">18:00-19:00</option> | ||
| 65 | - <option value="19:00-20:00">19:00-20:00</option> | ||
| 66 | - <option value="20:00-21:00">20:00-21:00</option> | ||
| 67 | - <option value="21:00-22:00">21:00-22:00</option> | ||
| 68 | - <option value="22:00-23:00">22:00-23:00</option> | ||
| 69 | - <option value="23:00-00:00">23:00-00:00</option> | ||
| 70 | - </select> | 67 | + <input class="form-control" type="text" id="times1" style="width: 60px;"/> |
| 71 | </div> | 68 | </div> |
| 72 | <div style="display: inline-block;"> | 69 | <div style="display: inline-block;"> |
| 73 | - <span class="item-label" style="width: 80px;">方向: </span> | ||
| 74 | - <select class="form-control" name="upDown" id="upDown" style="width: 180px;"> | ||
| 75 | - <option value="">请先选择线路</option> | ||
| 76 | - </select> | 70 | + <span class="item-label" style="width: 80px;"> - </span> |
| 71 | + <input class="form-control" type="text" id="times2" style="width: 60px;"/> | ||
| 77 | </div> | 72 | </div> |
| 78 | - <div class="form-group"> | 73 | + <div class="form-group" style="margin-left: 10px"> |
| 79 | <input class="btn btn-default" type="button" id="query" value="筛选"/> | 74 | <input class="btn btn-default" type="button" id="query" value="筛选"/> |
| 80 | <!-- <input class="btn btn-default" type="button" id="export" value="导出"/> --> | 75 | <!-- <input class="btn btn-default" type="button" id="export" value="导出"/> --> |
| 81 | </div> | 76 | </div> |
| @@ -127,6 +122,14 @@ | @@ -127,6 +122,14 @@ | ||
| 127 | $("#endDate").datetimepicker({ | 122 | $("#endDate").datetimepicker({ |
| 128 | format : 'YYYY-MM-DD', | 123 | format : 'YYYY-MM-DD', |
| 129 | locale : 'zh-cn' | 124 | locale : 'zh-cn' |
| 125 | + }); | ||
| 126 | + $("#times1").datetimepicker({ | ||
| 127 | + format : 'HH:mm', | ||
| 128 | + locale : 'zh-cn' | ||
| 129 | + }); | ||
| 130 | + $("#times2").datetimepicker({ | ||
| 131 | + format : 'HH:mm', | ||
| 132 | + locale : 'zh-cn' | ||
| 130 | }); | 133 | }); |
| 131 | 134 | ||
| 132 | var d = new Date(); | 135 | var d = new Date(); |
| @@ -140,24 +143,52 @@ | @@ -140,24 +143,52 @@ | ||
| 140 | $("#startDate").val(year + "-0" + month + "-" + day); | 143 | $("#startDate").val(year + "-0" + month + "-" + day); |
| 141 | $("#endDate").val(year + "-0" + month + "-" + day); | 144 | $("#endDate").val(year + "-0" + month + "-" + day); |
| 142 | } | 145 | } |
| 146 | + $("#times1").val("06:00"); | ||
| 147 | + $("#times2").val("07:00"); | ||
| 148 | + | ||
| 149 | + var obj = []; | ||
| 150 | + $.get('/user/companyData', function(result){ | ||
| 151 | + obj = result; | ||
| 152 | + var options = ''; | ||
| 153 | + for(var i = 0; i < obj.length; i++){ | ||
| 154 | + options += '<option value="'+obj[i].companyCode+'">'+obj[i].companyName+'</option>'; | ||
| 155 | + } | ||
| 156 | + $('#company').html(options); | ||
| 157 | + updateCompany(); | ||
| 158 | + }); | ||
| 159 | + $("#company").on("change",updateCompany); | ||
| 160 | + function updateCompany(){ | ||
| 161 | + var company = $('#company').val(); | ||
| 162 | + var options = ''; | ||
| 163 | + for(var i = 0; i < obj.length; i++){ | ||
| 164 | + if(obj[i].companyCode == company){ | ||
| 165 | + var children = obj[i].children; | ||
| 166 | + for(var j = 0; j < children.length; j++){ | ||
| 167 | + options += '<option value="'+children[j].code+'">'+children[j].name+'</option>'; | ||
| 168 | + } | ||
| 169 | + } | ||
| 170 | + } | ||
| 171 | + $('#subCompany').html(options); | ||
| 172 | + } | ||
| 143 | 173 | ||
| 144 | $.get('/basic/lineCode2Name',function(result){ | 174 | $.get('/basic/lineCode2Name',function(result){ |
| 145 | var data=[]; | 175 | var data=[]; |
| 146 | 176 | ||
| 177 | + data.push({id: " ", text: "全部线路"}); | ||
| 147 | for(var code in result){ | 178 | for(var code in result){ |
| 148 | data.push({id: code, text: result[code]}); | 179 | data.push({id: code, text: result[code]}); |
| 149 | } | 180 | } |
| 150 | console.log(data); | 181 | console.log(data); |
| 151 | initPinYinSelect2('#line',data,''); | 182 | initPinYinSelect2('#line',data,''); |
| 152 | 183 | ||
| 153 | - line = data[0].id; | 184 | + line = ""; |
| 154 | updateModel(); | 185 | updateModel(); |
| 155 | 186 | ||
| 156 | var params = {}; | 187 | var params = {}; |
| 157 | params['line'] = line; | 188 | params['line'] = line; |
| 158 | $get('/busInterval/getDir', params, function(result){ | 189 | $get('/busInterval/getDir', params, function(result){ |
| 159 | dirData = createTreeData(result); | 190 | dirData = createTreeData(result); |
| 160 | - var options = ''; | 191 | + var options = '<option value="">全部方向</option>';; |
| 161 | $.each(dirData, function(i, g){ | 192 | $.each(dirData, function(i, g){ |
| 162 | options += '<option value="'+g.name+'">'+g.name+'</option>'; | 193 | options += '<option value="'+g.name+'">'+g.name+'</option>'; |
| 163 | }); | 194 | }); |
| @@ -166,30 +197,22 @@ | @@ -166,30 +197,22 @@ | ||
| 166 | }) | 197 | }) |
| 167 | 198 | ||
| 168 | $("#query").on("click", function (){ | 199 | $("#query").on("click", function (){ |
| 169 | - line = $("#line").val(); | ||
| 170 | - upDown = $("#upDown").val(); | ||
| 171 | - if(line=="" || line==null){ | ||
| 172 | - layer.msg("请选择线路"); | ||
| 173 | - }else if(upDown==null || upDown==""){ | ||
| 174 | - layer.msg("请选择方向"); | ||
| 175 | - }else{ | ||
| 176 | - jsDoQuery(); | ||
| 177 | - } | 200 | + jsDoQuery(); |
| 178 | }); | 201 | }); |
| 179 | 202 | ||
| 180 | var line = $("#line").val(); | 203 | var line = $("#line").val(); |
| 181 | var startDate = $("#startDate").val(); | 204 | var startDate = $("#startDate").val(); |
| 182 | var endDate = $("#endDate").val(); | 205 | var endDate = $("#endDate").val(); |
| 183 | var model = $("#model").val(); | 206 | var model = $("#model").val(); |
| 184 | - var times = $("#times").val(); | 207 | + var times = $("#times1").val() + "-" + $("#times2").val(); |
| 185 | var upDown = $("#upDown").val(); | 208 | var upDown = $("#upDown").val(); |
| 186 | function jsDoQuery(pagination){ | 209 | function jsDoQuery(pagination){ |
| 187 | var params = {}; | 210 | var params = {}; |
| 188 | - line = $("#line").val(); | 211 | +// line = $("#line").val(); |
| 189 | startDate = $("#startDate").val(); | 212 | startDate = $("#startDate").val(); |
| 190 | endDate = $("#endDate").val(); | 213 | endDate = $("#endDate").val(); |
| 191 | model = $("#model").val(); | 214 | model = $("#model").val(); |
| 192 | - times = $("#times").val(); | 215 | + times = $("#times1").val() + "-" + $("#times2").val(); |
| 193 | upDown = $("#upDown").val(); | 216 | upDown = $("#upDown").val(); |
| 194 | params['line'] = line; | 217 | params['line'] = line; |
| 195 | params['startDate'] = startDate; | 218 | params['startDate'] = startDate; |
| @@ -204,6 +227,11 @@ | @@ -204,6 +227,11 @@ | ||
| 204 | var tbodyHtml = template('list_timeAndSpeed',{list:result}); | 227 | var tbodyHtml = template('list_timeAndSpeed',{list:result}); |
| 205 | // 把渲染好的模版html文本追加到表格中 | 228 | // 把渲染好的模版html文本追加到表格中 |
| 206 | $('#forms tbody').html(tbodyHtml); | 229 | $('#forms tbody').html(tbodyHtml); |
| 230 | + _w_table_rowspan("#forms tbody", 1); | ||
| 231 | + _w_table_rowspan("#forms tbody", 2); | ||
| 232 | + _w_table_rowspan("#forms tbody", 3); | ||
| 233 | + _w_table_rowspan("#forms tbody", 4); | ||
| 234 | + _w_table_rowspan("#forms tbody", 5); | ||
| 207 | 235 | ||
| 208 | }); | 236 | }); |
| 209 | } | 237 | } |
| @@ -217,12 +245,14 @@ | @@ -217,12 +245,14 @@ | ||
| 217 | 245 | ||
| 218 | $("#line").on("change", function(){ | 246 | $("#line").on("change", function(){ |
| 219 | line = $("#line").val(); | 247 | line = $("#line").val(); |
| 248 | + if(line == " ") | ||
| 249 | + line = ""; | ||
| 220 | updateModel(); | 250 | updateModel(); |
| 221 | var params = {}; | 251 | var params = {}; |
| 222 | params['line'] = line; | 252 | params['line'] = line; |
| 223 | $get('/busInterval/getDir', params, function(result){ | 253 | $get('/busInterval/getDir', params, function(result){ |
| 224 | dirData = createTreeData(result); | 254 | dirData = createTreeData(result); |
| 225 | - var options = ''; | 255 | + var options = '<option value="">全部方向</option>'; |
| 226 | $.each(dirData, function(i, g){ | 256 | $.each(dirData, function(i, g){ |
| 227 | options += '<option value="'+g.name+'">'+g.name+'</option>'; | 257 | options += '<option value="'+g.name+'">'+g.name+'</option>'; |
| 228 | }); | 258 | }); |
| @@ -262,6 +292,30 @@ | @@ -262,6 +292,30 @@ | ||
| 262 | } | 292 | } |
| 263 | 293 | ||
| 264 | 294 | ||
| 295 | + function _w_table_rowspan(_w_table_id, _w_table_colnum){ | ||
| 296 | + _w_table_firsttd = ""; | ||
| 297 | + _w_table_currenttd = ""; | ||
| 298 | + _w_table_SpanNum = 0; | ||
| 299 | + _w_table_Obj = jQuery(_w_table_id + " tr td:nth-child(" + _w_table_colnum + ")"); | ||
| 300 | + _w_table_Obj.each(function(i){ | ||
| 301 | + if(i==0){ | ||
| 302 | + _w_table_firsttd = jQuery(this); | ||
| 303 | + _w_table_SpanNum = 1; | ||
| 304 | + }else{ | ||
| 305 | + _w_table_currenttd = jQuery(this); | ||
| 306 | + if(_w_table_firsttd.text()==_w_table_currenttd.text()){ | ||
| 307 | + _w_table_SpanNum++; | ||
| 308 | + _w_table_currenttd.hide(); //remove(); | ||
| 309 | + _w_table_firsttd.attr("rowSpan",_w_table_SpanNum); | ||
| 310 | + }else{ | ||
| 311 | + _w_table_firsttd = jQuery(this); | ||
| 312 | + _w_table_SpanNum = 1; | ||
| 313 | + } | ||
| 314 | + } | ||
| 315 | + }); | ||
| 316 | + } | ||
| 317 | + | ||
| 318 | + | ||
| 265 | }); | 319 | }); |
| 266 | 320 | ||
| 267 | </script> | 321 | </script> |
| @@ -271,7 +325,7 @@ | @@ -271,7 +325,7 @@ | ||
| 271 | <td>{{obj.date}}</td> | 325 | <td>{{obj.date}}</td> |
| 272 | <td>{{obj.times}}</td> | 326 | <td>{{obj.times}}</td> |
| 273 | <td>{{obj.company}}</td> | 327 | <td>{{obj.company}}</td> |
| 274 | - <td>{{obj.branchCompany}}</td> | 328 | + <td>{{obj.subCompany}}</td> |
| 275 | <td>{{obj.line}}</td> | 329 | <td>{{obj.line}}</td> |
| 276 | <td>{{obj.lp}}</td> | 330 | <td>{{obj.lp}}</td> |
| 277 | <td>{{obj.qdz_zdz}}</td> | 331 | <td>{{obj.qdz_zdz}}</td> |