Commit 7ebfa758d4878aa4ee9b4db3cedbb8f5f29e7827

Authored by 娄高锋
1 parent 62867bc2

LGF 报表

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>