Commit 512c3cb7554575463580e72b6b2f0aa7985bc3a4

Authored by 廖磊
2 parents 10b0d3c3 66541a12

Merge branch 'minhang' of

http://222.66.0.204:8090/panzhaov5/bsth_control into minhang
src/main/java/com/bsth/entity/Line.java
... ... @@ -104,6 +104,9 @@ public class Line implements Serializable {
104 104 /** 开辟日期 date*/
105 105 @DateTimeFormat(pattern ="yyyy-MM-dd")
106 106 private Date openDate;
  107 +
  108 + /** 大间隔等级 */
  109 + private Integer spacGrade;
107 110  
108 111 /** 线路沿革 varchar length(50) */
109 112 private String history;
... ... @@ -155,6 +158,14 @@ public class Line implements Serializable {
155 158 /** 是否在使用 <1:是;0:否> bit length(50) */
156 159 private Integer inUse;
157 160  
  161 + public Integer getSpacGrade() {
  162 + return spacGrade;
  163 + }
  164 +
  165 + public void setSpacGrade(Integer spacGrade) {
  166 + this.spacGrade = spacGrade;
  167 + }
  168 +
158 169 public Integer getWarrantCar() {
159 170 return warrantCar;
160 171 }
... ...
src/main/java/com/bsth/repository/SectionRouteRepository.java
... ... @@ -159,11 +159,11 @@ public interface SectionRouteRepository extends BaseRepository&lt;SectionRoute, Int
159 159 */
160 160 @Query(value = "SELECT " +
161 161 "c.directions," +
162   - "ST_AsText(s.bsection_vector) as bsection_vector," +
  162 + "ST_AsText(s.gsection_vector) as gsection_vector," +
163 163 "s.speed_limit," +
164 164 "s.section_name " +
165 165 " FROM bsth_c_sectionroute c " +
166   - " LEFT JOIN bsth_c_section s on c.section = s.id where c.line = ?1 and c.directions = ?2", nativeQuery=true)
  166 + " LEFT JOIN bsth_c_section s on c.section = s.id where c.line = ?1 and c.directions = ?2 and c.destroy = 0", nativeQuery=true)
167 167 List<Object[]> sectionRouteVector(Integer lineId,Integer directions);
168 168  
169 169 @Transactional
... ...
src/main/java/com/bsth/repository/StationRouteRepository.java
... ... @@ -153,7 +153,7 @@ public interface StationRouteRepository extends BaseRepository&lt;StationRoute, Int
153 153 "s.station_route_code," +
154 154 "s.directions," +
155 155 "s.distances,"+
156   - "s.station FROM bsth_c_stationroute s where s.line = ?1) a " +
  156 + "s.station FROM bsth_c_stationroute s where s.line = ?1 and s.destroy=0) a " +
157 157 "LEFT JOIN bsth_c_station b " +
158 158 " on a.station = b.id ORDER BY a.directions ASC ) k ORDER BY k.directions,k.station_route_code ASC", nativeQuery=true)
159 159 List<Object[]> usingSingle(Integer lineId);
... ...
src/main/java/com/bsth/service/impl/StationRouteServiceImpl.java
... ... @@ -24,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
24 24  
25 25 import java.io.ByteArrayInputStream;
26 26 import java.io.File;
  27 +import java.io.FileOutputStream;
27 28 import java.io.InputStream;
28 29 import java.text.DecimalFormat;
29 30 import java.util.*;
... ... @@ -511,57 +512,38 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
511 512 */
512 513 @Override
513 514 public Map<String, Object> usingSingle(Map<String, Object> map) {
514   -
515 515 // 返回值map
516 516 Map<String, Object> resultMap = new HashMap<String,Object>();
517   -
518 517 try {
519   -
520 518 // 获取线路ID
521 519 Integer lineId = map.get("lineId").equals("") ? 0 : Integer.parseInt(map.get("lineId").toString());
522   -
523 520 /** 查询线路信息 @param:<lineId:线路ID> */
524 521 Line line = lineRepository.findOne(lineId);
525   -
526 522 /** 查询线路信息下的站点路由信息 @param:<lineId:线路ID> */
527 523 List<Object[]> objects = repository.usingSingle(lineId);
528   -
529 524 if (objects.size()>0) {
530   -
531 525 /** 获取配置文件里的ftp登录参数 */
532 526 Map<String, Object> FTPParamMap = readPropertiesGetFTPParam();
533   -
534 527 // 压缩文件名
535 528 String odlGzFileName = line.getLineCode() + ".txt.gz";
536   -
537 529 // txt文件名
538 530 String textFileName = line.getLineCode() + ".txt";
539   -
540 531 // 创建一个ftp上传实例
541 532 FTPClientUtils clientUtils = new FTPClientUtils();
542   -
543 533 // IP
544 534 String url = FTPParamMap.get("url").toString();
545   -
546 535 // 端口
547 536 int port = Integer.valueOf(FTPParamMap.get("port").toString());
548   -
549 537 // 用户名
550 538 String username = FTPParamMap.get("username").toString();
551   -
552 539 // 密码
553 540 String password = FTPParamMap.get("password").toString();
554   -
555 541 // 相对路径
556 542 String remotePath = FTPParamMap.get("remotePath").toString();
557   -
558 543 /** 如果已存在相同行单文件名则先删除 */
559 544 clientUtils.deleteFtpFile(url, port, username, password, remotePath, odlGzFileName);
560   -
561 545 clientUtils.deleteFtpFile(url, port, username, password, remotePath, textFileName);
562   -
563 546 String textStr = "";
564   -
565 547 boolean tempTag = ishxType(objects);
566 548  
567 549 if(tempTag)
... ... @@ -575,6 +557,12 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
575 557  
576 558 InputStream input = new ByteArrayInputStream(textStr.getBytes("gbk"));
577 559  
  560 + // FileOutputStream fos = new FileOutputStream("test.txt");
  561 + /*int len = 0 ;
  562 + byte[] cbuf = new byte[1024];
  563 + while((len = input.read(cbuf)) != -1) {
  564 + fos.write(cbuf, 0, len);
  565 + }*/
578 566 /** 生成txt文件,上传ftp */
579 567 clientUtils.uploadFile(url, port, username, password, remotePath, textFileName, input);
580 568  
... ... @@ -645,25 +633,23 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
645 633 * @return String
646 634 */
647 635 public String newTextFileToFTP(List<Object[]> objects,Integer lineId) {
648   -
649 636 // 返回值String
650 637 String stationRStr = "";
651   -
652 638 // windows下的文本文件换行符
653 639 //String enterStr = "\r\n";
654   -
655 640 // linux/unix下的文本文件换行符
656 641 String enterStr = "\r";
657   -
  642 + int defaultZdxh = 0;
658 643 if(objects.size()>0) {
659   -
660 644 for(int i = 0; i<objects.size();i++) {
661   -
  645 + defaultZdxh ++ ;
662 646 // 经度
663   - String lng = objects.get(i)[0].equals("") ? "" : objects.get(i)[0].toString();
  647 + String lng = objects.get(i)[0].equals("") ? "0" : objects.get(i)[0].toString();
664 648  
665 649 // 纬度
666   - String lat = objects.get(i)[1].equals("") ? "" : objects.get(i)[1].toString();
  650 + String lat = objects.get(i)[1].equals("") ? "0" : objects.get(i)[1].toString();
  651 +
  652 + Point point = new Point(Double.valueOf(lng), Double.valueOf(lat));
667 653  
668 654 lat = "\t" + lat;
669 655  
... ... @@ -673,23 +659,32 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
673 659 String stationMake = "";
674 660  
675 661 if(stationMakeStr.equals("E")) {
676   -
677 662 stationMake = "\t2";
678   -
679 663 }else {
680   -
681 664 stationMake ="\t1";
682   -
683 665 }
684 666  
685 667 // 站点序号
686   - String stationNo = objects.get(i)[4].equals("") ? "" : objects.get(i)[4].toString();
  668 + // String stationNo = objects.get(i)[4].equals("") ? "" : objects.get(i)[4].toString();
  669 + String stationNo = String.valueOf(defaultZdxh);
687 670  
688 671 stationNo = "\t" + stationNo;
689 672  
690 673 // 站点编码
691 674 String stationCode = objects.get(i)[5].equals("") ? "" : objects.get(i)[5].toString();
692 675  
  676 + int len = stationCode.length();
  677 + if(len<8) {
  678 + int dx = 8 - len;
  679 + String addStr = "";
  680 + for(int p =0;p<dx;p++) {
  681 + addStr = addStr + "0";
  682 + }
  683 + stationCode = addStr + stationCode;
  684 + }else if(len>8){
  685 + stationCode = stationCode.substring(8);
  686 + }
  687 +
693 688 stationCode = "\t" +stationCode;
694 689  
695 690 double dis = objects.get(i)[6]==null ? 0.0 : Double.parseDouble(objects.get(i)[6].toString())*1000;
... ... @@ -709,41 +704,33 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
709 704  
710 705 // 限速
711 706 String sleepStr = "";
712   -
713 707 // 方向
714 708 int directions = objects.get(i)[8]==null ? null : Integer.valueOf(objects.get(i)[8].toString());
715   -
716 709 /** 获取路段路由信息 @pararm:<lineId:线路ID;directions:方向> */
717 710 List<Object[]> sobje = routeRepository.sectionRouteVector(lineId,directions);
718   -
719 711 if(sobje.size()==1) {
720   -
721   - double dsleepStr = sobje.get(0)[2] == null ? 60d : Double.valueOf(sobje.get(0)[2].toString());
722   -
723   - sleepStr = "\t" + new DecimalFormat("0").format(dsleepStr);
724   -
  712 + int dsleepStr = sobje.get(0)[2] == null || sobje.get(0)[2].equals("") ? 60 : Integer.valueOf(sobje.get(0)[2].toString());
  713 + sleepStr = "\t" + String.valueOf(dsleepStr);
725 714 }else if(sobje.size()>1){
726   -
727   - /** 这里暂时只根据站点名称去匹配所在路段的限速值 ,如果路段名称"至"之前的地名与站点名称等同,就认为站点在路段上。 */
728 715 for(int j =0;j<sobje.size();j++) {
729   -
730   - String sectionName = sobje.get(j)[3].toString();
731   -
732   - String sectionNameA[] = sectionName.split("至");
733   -
734   - if(stationName.equals(sectionNameA[0])){
735   -
736   - /*sleepStr = sobje.get(j)[2].toString();*/
737   -
738   - double dsleepStrt = sobje.get(0)[2] == null ? 60d : Double.valueOf(sobje.get(j)[2].toString());
739   -
740   - sleepStr = "\t" + new DecimalFormat("0").format(dsleepStrt);
741   -
  716 + double dsleepStrt = sobje.get(j)[2] == null || sobje.get(j)[2].equals("") ? 60d : Double.valueOf(sobje.get(j)[2].toString());
  717 + String pointsStr = sobje.get(j)[1]==null || sobje.get(j)[1].equals("") ? null : sobje.get(j)[1].toString();
  718 + pointsStr = pointsStr.substring(11, pointsStr.length()-1);
  719 + List<Point> ps = new ArrayList<>();
  720 + String[] pArray = pointsStr.split(",");
  721 + for(int a = 0; a <pArray.length; a++) {
  722 + String[] tmepA = pArray[a].split(" ");
  723 + Point temp = new Point(Double.valueOf(tmepA[0]), Double.valueOf(tmepA[1]));
  724 + ps.add(temp);
  725 + }
  726 + if(GeoUtils.isInSection(ps, point)) {
  727 + sleepStr = "\t" + String.valueOf((int)dsleepStrt);
  728 + break;
742 729 }
743   -
744 730 }
745 731 }
746   -
  732 + if(sleepStr.equals(""))
  733 + sleepStr = "\t" + "60";
747 734 stationRStr = stationRStr + lng + lat + stationMake + stationNo + stationCode + staitondistance + sleepStr + stationName + enterStr;
748 735 }
749 736  
... ... @@ -762,9 +749,12 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
762 749 for(int i = 0; i<objects.size();i++) {
763 750 if(Integer.valueOf(objects.get(i)[8].toString())==0) {
764 751 // 经度
765   - String lng = objects.get(i)[0].equals("") ? "" : objects.get(i)[0].toString();
  752 + String lng = objects.get(i)[0].equals("") ? "0" : objects.get(i)[0].toString();
  753 +
766 754 // 纬度
767   - String lat = objects.get(i)[1].equals("") ? "" : objects.get(i)[1].toString();
  755 + String lat = objects.get(i)[1].equals("") ? "0" : objects.get(i)[1].toString();
  756 +
  757 + Point point = new Point(Double.valueOf(lng), Double.valueOf(lat));
768 758 lat = "\t" + lat;
769 759 // 站点类型
770 760 String stationMakeStr = objects.get(i)[3].equals("") ? "" : objects.get(i)[3].toString();
... ... @@ -779,6 +769,17 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
779 769 String stationNo = "\t" + xh;
780 770 // 站点编码
781 771 String stationCode = objects.get(i)[5].equals("") ? "" : objects.get(i)[5].toString();
  772 + int len = stationCode.length();
  773 + if(len<8) {
  774 + int dx = 8 - len;
  775 + String addStr = "";
  776 + for(int p =0;p<dx;p++) {
  777 + addStr = addStr + "0";
  778 + }
  779 + stationCode = addStr + stationCode;
  780 + }else if(len>8){
  781 + stationCode = stationCode.substring(8);
  782 + }
782 783 stationCode = "\t" +stationCode;
783 784 double dis = objects.get(i)[6]==null ? 0.0 : Double.parseDouble(objects.get(i)[6].toString())*1000;
784 785 String tempDistc = String.valueOf((int) dis);
... ... @@ -794,20 +795,28 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
794 795 /** 获取路段路由信息 @pararm:<lineId:线路ID;directions:方向> */
795 796 List<Object[]> sobje = routeRepository.sectionRouteVector(lineId,directions);
796 797 if(sobje.size()==1) {
797   - double dsleepStr = sobje.get(0)[2] == null ? 60d : Double.valueOf(sobje.get(0)[2].toString());
798   - sleepStr = "\t" + new DecimalFormat("0").format(dsleepStr);
  798 + int dsleepStr = sobje.get(0)[2] == null || sobje.get(0)[2].equals("") ? 60 : Integer.valueOf(sobje.get(0)[2].toString());
  799 + sleepStr = "\t" + String.valueOf(dsleepStr);
799 800 }else if(sobje.size()>1){
800   - /** 这里暂时只根据站点名称去匹配所在路段的限速值 ,如果路段名称"至"之前的地名与站点名称等同,就认为站点在路段上。 */
801 801 for(int j =0;j<sobje.size();j++) {
802   - String sectionName = sobje.get(j)[3].toString();
803   - String sectionNameA[] = sectionName.split("至");
804   - if(stationName.equals(sectionNameA[0])){
805   - /*sleepStr = sobje.get(j)[2].toString();*/
806   - double dsleepStrt = sobje.get(0)[2] == null ? 60d : Double.valueOf(sobje.get(j)[2].toString());
807   - sleepStr = "\t" + new DecimalFormat("0").format(dsleepStrt);
  802 + double dsleepStrt = sobje.get(j)[2] == null || sobje.get(j)[2].equals("") ? 60d : Double.valueOf(sobje.get(j)[2].toString());
  803 + String pointsStr = sobje.get(j)[1]==null || sobje.get(j)[1].equals("") ? null : sobje.get(j)[1].toString();
  804 + pointsStr = pointsStr.substring(11, pointsStr.length()-1);
  805 + List<Point> ps = new ArrayList<>();
  806 + String[] pArray = pointsStr.split(",");
  807 + for(int a = 0; a <pArray.length; a++) {
  808 + String[] tmepA = pArray[a].split(" ");
  809 + Point temp = new Point(Double.valueOf(tmepA[0]), Double.valueOf(tmepA[1]));
  810 + ps.add(temp);
  811 + }
  812 + if(GeoUtils.isInSection(ps, point)) {
  813 + sleepStr = "\t" + String.valueOf((int)dsleepStrt);
  814 + break;
808 815 }
809 816 }
810 817 }
  818 + if(sleepStr.equals(""))
  819 + sleepStr = "\t" + "60";
811 820 xh++;
812 821 restStr = restStr + lng + lat + stationMake + stationNo + stationCode + staitondistance + sleepStr + stationName + enterStr;
813 822 }
... ...
src/main/resources/static/pages/base/line/add.html
... ... @@ -289,14 +289,20 @@
289 289 </div>
290 290 <!-- 线路规划类型 (* 必填项) END -->
291 291  
292   - <!-- 开辟日期 START -->
  292 + <!--大间隔等级 START -->
293 293 <div class="col-md-6">
294   - <label class="control-label col-md-5"> 开辟日期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
  294 + <label class="control-label col-md-5"> 大间隔等级&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
295 295 <div class="col-md-4">
296   - <input type="text" class="form-control" name="openDate" id="openDateInput" placeholder="开辟日期">
  296 + <select name="spacGrade" class="form-control" id="spacGradeSelect">
  297 + <option value="">-- 请选择大间隔等级 --</option>
  298 + <option value="1">一级</option>
  299 + <option value="2">二级</option>
  300 + <option value="3">三级</option>
  301 + <option value="4">四级</option>
  302 + </select>
297 303 </div>
298 304 </div>
299   - <!-- 开辟日期 END -->
  305 + <!-- 大间隔等级END -->
300 306 </div>
301 307 <!-- 表单分组组件 form-group START -->
302 308  
... ... @@ -398,6 +404,15 @@
398 404 </div>
399 405 </div>
400 406 <!-- 空调车辆数 END -->
  407 +
  408 + <!-- 开辟日期 START -->
  409 + <div class="col-md-6">
  410 + <label class="control-label col-md-5"> 开辟日期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
  411 + <div class="col-md-4">
  412 + <input type="text" class="form-control" name="openDate" id="openDateInput" placeholder="开辟日期">
  413 + </div>
  414 + </div>
  415 + <!-- 开辟日期 END -->
401 416 </div>
402 417 <!-- 表单分组组件 form-group END -->
403 418  
... ...
src/main/resources/static/pages/base/line/details.html
... ... @@ -282,14 +282,20 @@
282 282 </div>
283 283 <!-- 线路规划类型 (* 必填项) END -->
284 284  
285   - <!-- 开辟日期 START -->
  285 + <!--大间隔等级 START -->
286 286 <div class="col-md-6">
287   - <label class="control-label col-md-5"> 开辟日期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
  287 + <label class="control-label col-md-5"> 大间隔等级&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
288 288 <div class="col-md-4">
289   - <input type="text" class="form-control" name="openDate" id="openDateInput" placeholder="开辟日期">
  289 + <select name="spacGrade" class="form-control" id="spacGradeSelect">
  290 + <option value="">-- 请选择大间隔等级 --</option>
  291 + <option value="1">一级</option>
  292 + <option value="2">二级</option>
  293 + <option value="3">三级</option>
  294 + <option value="4">四级</option>
  295 + </select>
290 296 </div>
291 297 </div>
292   - <!-- 开辟日期 END -->
  298 + <!-- 大间隔等级END -->
293 299 </div>
294 300 <!-- 表单分组组件 form-group START -->
295 301  
... ... @@ -391,6 +397,15 @@
391 397 </div>
392 398 </div>
393 399 <!-- 空调车辆数 END -->
  400 +
  401 + <!-- 开辟日期 START -->
  402 + <div class="col-md-6">
  403 + <label class="control-label col-md-5"> 开辟日期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
  404 + <div class="col-md-4">
  405 + <input type="text" class="form-control" name="openDate" id="openDateInput" placeholder="开辟日期">
  406 + </div>
  407 + </div>
  408 + <!-- 开辟日期 END -->
394 409 </div>
395 410 <!-- 表单分组组件 form-group END -->
396 411  
... ...
src/main/resources/static/pages/base/line/edit.html
... ... @@ -290,14 +290,20 @@
290 290 </div>
291 291 <!-- 线路规划类型 (* 必填项) END -->
292 292  
293   - <!-- 开辟日期 START -->
  293 + <!--大间隔等级 START -->
294 294 <div class="col-md-6">
295   - <label class="control-label col-md-5"> 开辟日期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
  295 + <label class="control-label col-md-5"> 大间隔等级&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
296 296 <div class="col-md-4">
297   - <input type="text" class="form-control" name="openDate" id="openDateInput" placeholder="开辟日期">
  297 + <select name="spacGrade" class="form-control" id="spacGradeSelect">
  298 + <option value="">-- 请选择大间隔等级 --</option>
  299 + <option value="1">一级</option>
  300 + <option value="2">二级</option>
  301 + <option value="3">三级</option>
  302 + <option value="4">四级</option>
  303 + </select>
298 304 </div>
299 305 </div>
300   - <!-- 开辟日期 END -->
  306 + <!-- 大间隔等级END -->
301 307 </div>
302 308 <!-- 表单分组组件 form-group START -->
303 309  
... ... @@ -399,6 +405,15 @@
399 405 </div>
400 406 </div>
401 407 <!-- 空调车辆数 END -->
  408 +
  409 + <!-- 开辟日期 START -->
  410 + <div class="col-md-6">
  411 + <label class="control-label col-md-5"> 开辟日期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </label>
  412 + <div class="col-md-4">
  413 + <input type="text" class="form-control" name="openDate" id="openDateInput" placeholder="开辟日期">
  414 + </div>
  415 + </div>
  416 + <!-- 开辟日期 END -->
402 417 </div>
403 418 <!-- 表单分组组件 form-group END -->
404 419  
... ...
src/main/resources/static/pages/base/timesmodel/bctz.html
... ... @@ -18,9 +18,10 @@
18 18 <table class="table table-striped table-bordered table-hover table-checkable" id="datatable_bctz">
19 19 <thead>
20 20 <tr role="row" class="heading">
21   - <th width="33%">路牌</th>
22   - <th width="33%">当前班次数</th>
23   - <th width="33%">调整班次数</th>
  21 + <th width="25%">路牌编码</th>
  22 + <th width="25%">路牌名称</th>
  23 + <th width="25%">当前班次数</th>
  24 + <th width="25%">调整班次数</th>
24 25 </tr>
25 26 </thead>
26 27 <tbody></tbody>
... ... @@ -40,13 +41,16 @@
40 41 {{each list as obj i }}
41 42 <tr role="row" class="filter">
42 43 <td>
43   - <input type="text" readonly class="form-control form-filter input-sm" name="lpname_{{i+1}}" value="{{obj.lpNo}}">
  44 + <input type="text" readonly class="form-control form-filter input-sm" name="lpno_{{i+1}}" value="{{obj.lpNo}}">
  45 + </td>
  46 + <td>
  47 + <input type="text" readonly class="form-control form-filter input-sm" name="lpname_{{i+1}}" value="{{obj.lpName}}">
44 48 </td>
45 49 <td>
46 50 <input type="text" readonly class="form-control form-filter input-sm" name="dqbc_{{i+1}}" value="{{obj.bcs}}">
47 51 </td>
48 52 <td>
49   - <input type="number" class="form-control form-filter input-sm" name="{{i+1}}" value="{{obj.bcs}}">
  53 + <input type="number" class="form-control form-filter input-sm" name="{{i+1}}" value="{{obj.bcs}}" min="0">
50 54 </td>
51 55 </tr>
52 56 {{/each}}
... ... @@ -57,230 +61,239 @@
57 61 {{/if}}
58 62 </script>
59 63 <script type="text/javascript">
60   -$('#tzbc_mobal').on('tzbcMobal.show', function(e,obj,cardata,bf){
61   - setTimeout(function(){
62   - // 加载延迟200毫秒显示mobal
63   - $('#tzbc_mobal').modal({show : true,backdrop: 'static', keyboard: false});
64   - },200);
65   - // 当模态框对用户可见时触发(将等待 CSS 过渡效果完成)。
66   - $('#tzbc_mobal').on('show.bs.modal', function () {
67   - // 把数据填充到模版中
68   - var tbodyHtml = template('bctz_temp',{list:cardata});
69   - // 把渲染好的模版html文本追加到表格中
70   - $('#datatable_bctz tbody').html(tbodyHtml);
71   - });
72   - // 获取表单元素
73   - var form = $('#tzbcForm');
74   - // 错误提示元素
75   - var tzbcAlert = $('#tzbcAlert', form);
76   - // 下一步点击事件
77   - $('#tzbcnext').on('click', function() {
78   - form.submit();// 表单提交
79   - });
80   - // 表单验证
81   - form.validate({
82   - errorElement : 'span',
83   - errorClass : 'help-block help-block-error',
84   - focusInvalid : false,
85   - rules : {
86   - },
87   - invalidHandler : function(event, validator) {
88   - tzbcAlert.show();
89   - App.scrollTo(reladplusname, -200);
90   - },
91   - highlight : function(element) {
92   - $(element).closest('.form-group').addClass('has-error');
93   - },
94   - unhighlight : function(element) {
95   - $(element).closest('.form-group').removeClass('has-error');
96   - },
97   - success : function(label) {
98   - label.closest('.form-group').removeClass('has-error');
99   - },
100   - submitHandler : function(f) {
101   - // 1、 获取表单内容,并序列化
102   - var params = form.serializeJSON();
103   - // 2、 调整路牌对应的班次总数
104   - updFormParams(params);
105   - // 3、调整班次.并重新给定班次序号和发车序号.再确定首末班车时间.最后渲染数据
106   - obj.data(bf.tzsmbcsj(bf.setbcsAndfcno(tzbcDate()),
107   - obj.configuration.dataMap.smbcsjArr,
108   - obj.configuration.dataMap.ccsjArr,
109   - obj.configuration.dataMap.cclcArr,
110   - obj.configuration.dataMap.qdzArr,
111   - obj.configuration.dataMap.lbsj));
112   - // 3、记录早操.并保存历史班次数据
113   - obj.addHistory();
114   - // 5、隐藏错误提示
115   - tzbcAlert.hide();
116   - // 6、隐藏 reladplus_mobal 弹出层
117   - $('#tzbc_mobal').modal('hide');
118   - }
119   - });
120   -
121   - /**
122   - * @description : (TODO) 调整路牌对应的班次总数.
123   - *
124   - * ❀ 根据路牌对应班次的数值,把路牌对应的当前班次总数修改成调整后的班次总数,并转为数值类型以及把空值转为0.
125   - *
126   - * @params : [p--表单序列化对象].
127   - */
128   - function updFormParams(p) {
129   - for(var i= 0;i<cardata.length;i++) {
130   - if(p[i+1] != undefined) {
131   - if(p[i+1]=='')
132   - cardata[i].tzbc = 0;
133   - else
134   - cardata[i].tzbc = parseInt(p[i+1]);
  64 +$('#tzbc_mobal').on('tzbcMobal.show', function(e,obj,cardata,bf,error){
  65 + if(obj != null && obj !='' && bf != null && bf!='' && cardata.length>0){
  66 + // 延迟200毫秒显示mobal
  67 + setTimeout(function(){$('#tzbc_mobal').modal({show : true,backdrop: 'static', keyboard: false});},200);
  68 + // 当模态框对用户可见时触发(将等待 CSS 过渡效果完成)。
  69 + $('#tzbc_mobal').on('show.bs.modal', function () {
  70 + // 把数据填充到模版中
  71 + var tbodyHtml = template('bctz_temp',{list:cardata});
  72 + // 把渲染好的模版html文本追加到表格中
  73 + $('#datatable_bctz tbody').html(tbodyHtml);
  74 + });
  75 + // 获取表单元素
  76 + var form = $('#tzbcForm');
  77 + // 错误提示元素
  78 + var tzbcAlert = $('#tzbcAlert', form);
  79 + // 下一步点击事件
  80 + $('#tzbcnext').on('click', function() {
  81 + form.submit();// 表单提交
  82 + });
  83 + // 表单验证
  84 + form.validate({
  85 + errorElement : 'span',
  86 + errorClass : 'help-block help-block-error',
  87 + focusInvalid : false,
  88 + rules : {
  89 + },
  90 + invalidHandler : function(event, validator) {
  91 + tzbcAlert.show();
  92 + App.scrollTo(reladplusname, -200);
  93 + },
  94 + highlight : function(element) {
  95 + $(element).closest('.form-group').addClass('has-error');
  96 + },
  97 + unhighlight : function(element) {
  98 + $(element).closest('.form-group').removeClass('has-error');
  99 + },
  100 + success : function(label) {
  101 + label.closest('.form-group').removeClass('has-error');
  102 + },
  103 + submitHandler : function(f) {
  104 + // 1、 获取表单内容,并序列化
  105 + var params = form.serializeJSON();
  106 + var dataMap = obj.configuration.dataMap;
  107 + // 2、 调整路牌对应的班次总数
  108 + updFormParams(params);
  109 + // 3、调整班次.并重新给定班次序号和发车序号.再确定首末班车时间.最后渲染数据.
  110 + var jar = bf.tzsmbcsj01(bf.setbcsAndfcno(tzbcDate()),
  111 + obj.configuration.dataMap.smbcsjArr,
  112 + obj.configuration.dataMap.ccsjArr,
  113 + obj.configuration.dataMap.cclcArr,
  114 + obj.configuration.dataMap.qdzArr,
  115 + obj.configuration.dataMap.lbsj,dataMap);
  116 + obj.data(bf.addjcclcbc01(obj.configuration.taskTypes,jar,dataMap,
  117 + obj.configuration.stopAraay,obj.configuration.dataMap.map));
  118 + // 3、记录早操.并保存历史班次数据
  119 + obj.addHistory();
  120 + // 5、隐藏错误提示
  121 + tzbcAlert.hide();
  122 + // 6、隐藏 reladplus_mobal 弹出层
  123 + $('#tzbc_mobal').modal('hide');
  124 + }
  125 + });
  126 +
  127 + /**
  128 + * @description : (TODO) 调整路牌对应的班次总数.
  129 + *
  130 + * ❀ 根据路牌对应班次的数值,把路牌对应的当前班次总数修改成调整后的班次总数,并转为数值类型以及把空值转为0.
  131 + *
  132 + * @params : [p--表单序列化对象].
  133 + */
  134 + function updFormParams(p) {
  135 + for(var i= 0;i<cardata.length;i++) {
  136 + if(p[i+1] != undefined) {
  137 + if(p[i+1]=='')
  138 + cardata[i].tzbc = 0;
  139 + else
  140 + cardata[i].tzbc = parseInt(p[i+1]);
  141 + }
135 142 }
136 143 }
137   - }
138   -
139   - /**
140   - * @description : (TODO)调整班次.
141   - *
142   - * @return : 返回一个数组.这里返回的是一个调整完班次数后的数组.
143   - */
144   - function tzbcDate() {
145   - // 1、获取当前所有的班次数.
146   - var dr = obj.getDataArray(),
147   - result = new Array();// 定义返回数组对象.
148   - // 2、遍历路牌对应的班次总数.
149   - for(var i = 0 ; i<cardata.length;i++) {
150   - var zcbcsz = new Array(),// 定义当前路牌下的正常班次数组.
151   - zwlbbcsz = new Array(),// 定义当前路牌下的早晚例保、吃饭班次数组.
152   - jccbcs = 0,// 进出场班次数.这个值是为了计算总班次数时除去时间为空的班次
153   - jccbcsz = new Array();// 定义当前路牌下的进出场班次数组.
154   - // 3、遍历当前所有的班次数.
155   - for(var j = 0 ;j<dr.length;j++) {
156   - // 4、判断当前遍历的班次是否属于当前路牌对应的班次数组对象.
157   - if(cardata[i].lpNo == dr[j].parent && dr[j].bcsj>0 ){
158   - // 5、把当前班次添加到上序定义的不同班次数组中.
159   - if(dr[j].bcType =='bd' || dr[j].bcType=='lc' || dr[j].bcType =='cf')
160   - zwlbbcsz.push(dr[j]);// 添加到早晚例保、吃饭班次数组中.
161   - else if(dr[j].bcType=='in' || dr[j].bcType =='out')
162   - jccbcs++;
163   - else
164   - zcbcsz.push(dr[j]);// 添加到正常班次数组.
165   - }
166   - if(cardata[i].lpNo == dr[j].parent && (dr[j].bcType=='in' || dr[j].bcType =='out')) {
167   - jccbcsz.push(dr[j]);// 添加到进出场班次数组中.
  144 +
  145 + /**
  146 + * @description : (TODO)调整班次.
  147 + *
  148 + * @return : 返回一个数组.这里返回的是一个调整完班次数后的数组.
  149 + */
  150 + function tzbcDate() {
  151 + // 1、获取当前所有的班次数.
  152 + var dr = obj.getDataArray(),
  153 + result = new Array();// 定义返回数组对象.
  154 + // 2、遍历路牌对应的班次总数.
  155 + for(var i = 0 ; i<cardata.length;i++) {
  156 + var zcbcsz = new Array(),// 定义当前路牌下的正常班次数组.
  157 + zwlbbcsz = new Array(),// 定义当前路牌下的早晚例保、吃饭班次数组.
  158 + jccbcs = 0,// 进出场班次数.这个值是为了计算总班次数时除去时间为空的班次
  159 + jccbcsz = new Array();// 定义当前路牌下的进出场班次数组.
  160 + // 3、遍历当前所有的班次数.
  161 + for(var j = 0 ;j<dr.length;j++) {
  162 + // 4、判断当前遍历的班次是否属于当前路牌对应的班次数组对象.
  163 + if(cardata[i].lpNo == dr[j].parent && dr[j].bcsj>0 ){
  164 + // 5、把当前班次添加到上序定义的不同班次数组中.
  165 + if(dr[j].bcType =='bd' || dr[j].bcType=='lc' || dr[j].bcType =='cf')
  166 + zwlbbcsz.push(dr[j]);// 添加到早晚例保、吃饭班次数组中.
  167 + else if(dr[j].bcType=='in' || dr[j].bcType =='out')
  168 + jccbcs++;
  169 + else
  170 + zcbcsz.push(dr[j]);// 添加到正常班次数组.
  171 + }
  172 + if(cardata[i].lpNo == dr[j].parent && (dr[j].bcType=='in' || dr[j].bcType =='out')) {
  173 + jccbcsz.push(dr[j]);// 添加到进出场班次数组中.
  174 + }
168 175 }
169   - }
170   - // 6、调整班次
171   - result = result.concat(tcbcgz(bf.pxarr(zcbcsz),cardata[i].tzbc,zwlbbcsz,bf.pxarr(jccbcsz),jccbcs,cardata[i]));
  176 + // 6、调整班次
  177 + result = result.concat(tcbcgz(bf.pxarr(zcbcsz),cardata[i].tzbc,zwlbbcsz,bf.pxarr(jccbcsz),jccbcs,cardata[i]));
  178 + }
  179 + return result;
172 180 }
173   - return result;
174   - }
175   -
176   - /**
177   - * @description : (TODO)
178   - *
179   - * @params : [ar-- 当前路牌下的正常班次数组;num--当前路牌对应的班次总数;qa--当前路牌下的早晚例保、吃饭班次数组,ja--当前路牌下的进出场班次数组]
180   - *
181   - * @return : 返回一个数组.这里返回一个根据班次总数调整过车班次数组
182   - */
183   - function tcbcgz(ar,num,qa,ja,jccbcs,cara) {
184   - var rsbcA = new Array();
185   - if(ar.length>0) {
186   - var ra_ = new Array();
187   - var _dx = num-jccbcs;// 班次总数值 - 进出时间大于零的班次 = 正常班次数
188   - var lastbcsjStr = ar[ar.length-1].ARRIVALTIME;// 标记调整班次之前最后一个班次的达到时间
189   - var fcno_ = Math.abs(ar.length+jccbcs-num),// 调整班次差
190   - tempS = '';// 标记调整班次是添加还是剔除[jq--剔除;add--添加]
191   - var fxdm = bf.dirDmToIndex(ar[ar.length-1].xlDir);// 标记调整班次之前最后一个班次的方向
192   - // 如果调整班次差是成对的,那么方向一致.否则改变方向
193   - if(fcno_%2!=0)
194   - fxdm = bf.getfx(1,fxdm);// 改变方向
195   - // 如果当前路牌的班次总数大于等于调整后的班次总数则截取班次,反之添加班次
196   - if(ar.length>=_dx) {
197   - ra_ = ar.splice(0,_dx);// 截取班次数(这里从下标0开始截取到 对应的班次总数值)
198   - tempS = 'jq';
199   - }else if(ar.length<_dx) {
200   - var tzsj_ = obj.configuration.dataMap.ztjxA[fxdm],sh = ar[ar.length-1];
201   - var startTime = new Date();
202   - var strArray = sh.ARRIVALTIME.split(':');
203   - startTime.setHours(parseInt(strArray[0]));
204   - startTime.setMinutes(parseInt(strArray[1]) + tzsj_);
205   - bf.addbc(obj,sh,startTime,tzsj_,sh.fcno + 1,ar,_dx - ar.length);
206   - ra_ = ar;
207   - tempS = 'add';
208   - }
209   - rsbcA = tzsj(ra_,qa,ja,lastbcsjStr,fcno_,tempS,fxdm);
210   - }else if(ar.length==0) {
211   - rsbcA = bf.addlpbc(obj,bf,cara.lpNo,num);
  181 +
  182 + /**
  183 + * @description : (TODO)
  184 + *
  185 + * @params : [ar-- 当前路牌下的正常班次数组;num--当前路牌对应的班次总数;qa--当前路牌下的早晚例保、吃饭班次数组,ja--当前路牌下的进出场班次数组]
  186 + *
  187 + * @return : 返回一个数组.这里返回一个根据班次总数调整过车班次数组
  188 + */
  189 + function tcbcgz(ar,num,qa,ja,jccbcs,cara) {
  190 + var rsbcA = new Array();
  191 + if(ar.length>0) {
  192 + var ra_ = new Array();
  193 + var _dx = num-jccbcs;// 班次总数值 - 进出时间大于零的班次 = 正常班次数
  194 + var lastbcsjStr = ar[ar.length-1].ARRIVALTIME;// 标记调整班次之前最后一个班次的达到时间
  195 + var fcno_ = Math.abs(ar.length+jccbcs-num),// 调整班次差
  196 + tempS = '';// 标记调整班次是添加还是剔除[jq--剔除;add--添加]
  197 + var fxdm = bf.dirDmToIndex(ar[ar.length-1].xlDir);// 标记调整班次之前最后一个班次的方向
  198 + // 如果调整班次差是成对的,那么方向一致.否则改变方向
  199 + if(fcno_%2!=0)
  200 + fxdm = bf.getfx(1,fxdm);// 改变方向
  201 + // 如果当前路牌的班次总数大于等 于调整后的班次总数则截取班次,反之添加班次
  202 + if(ar.length>=_dx) {
  203 + ra_ = ar.splice(0,_dx);// 截取班次数(这里从下标0开始截取到 对应的班次总数值)
  204 + tempS = 'jq';
  205 + }else if(ar.length<_dx) {
  206 + var sh = ar[ar.length-1];
  207 + var cctag = bf.dirDmToIndex(ar[ar.length-1].xlDir);// 标记调整班次之前最后一个班次的方向
  208 + cctag = bf.getfx(1,cctag);// 改变方向
  209 + var startTime = new Date();
  210 + var strArray = sh.ARRIVALTIME.split(':');
  211 + startTime.setHours(parseInt(strArray[0]));
  212 + startTime.setMinutes(parseInt(strArray[1]));
  213 + var tzjx = bf.isgfsjd01(startTime,obj.configuration.dataMap) ? obj.configuration.dataMap.gftzsj[cctag] : obj.configuration.dataMap.dgtzsj[cctag];
  214 + startTime.setMinutes(parseInt(strArray[1]) + tzjx);
  215 + bf.addbc(obj , sh , startTime , tzjx, (sh.fcno + 1),ar, (_dx - ar.length));
  216 + ra_ = ar;
  217 + tempS = 'add';
  218 + }
  219 + // rsbcA = tzsj(ra_,qa,ja,lastbcsjStr,fcno_,tempS,fxdm);
  220 + rsbcA = ra_;
  221 + }else if(ar.length==0) {
  222 + rsbcA = bf.addlpbc(obj,bf,cara.lpNo,num);
  223 + }
  224 + return rsbcA;
212 225 }
213   - return rsbcA;
214   - }
215   -
216   - /**
217   - * @description : (TODO) 调整时间
218   - *
219   - * @params : [a1-- 当前路牌下的正常班次数组;a2--当前路牌下的早晚例保、吃饭班次数组;a3--当前路牌下的进出场班次数组]
220   - *
221   - * @return : 返回一个数组.这里返回的是一个调整时间后的班次数组
222   - */
223   - function tzsj(a1,a2,a3,sjstr,fcno_,tempS,fxdm) {
224   - return a1.concat(jsjclc(a1[a1.length-1].ARRIVALTIME,a2,a3,sjstr,fcno_,tempS,fxdm));
225   - }
226   -
227   - /**
228   - * @description : (TODO)调整进出场、离场班次
229   - *
230   - * @params : [st--当前路牌最后一个班次的到达时间;ar--当前路牌下的早晚例保、吃饭班次数组,pa--当前路牌下的进出场班次数组]
231   - *
232   - * @return
233   - */
234   - function jsjclc(st,ar,pa,sjstr,fcno_,tempS,fxdm) {
235   - console.log('{' + tempS + '......}')
236   - // 1、修改进出场班次.
237   - for(var p = 0;p<pa.length;p++) {
238   - // A)、如果当前班次的发车时间等于 在没有调整班次总数之前的最后一个班次的到达时间,则这个班次是在没有调整班次之前的那个进场班次
239   - if(pa[p].fcsj == sjstr && pa[p].bcType =='in') {
240   - pa[p].fcsj = st;
241   - pa[p].bcsj = obj.configuration.dataMap.ccsjArr[fxdm];
242   - pa[p].xlDir = obj.configuration.dataMap.dira[fxdm];
243   - var _s = bf.getDateTime(st);
244   - var _tt = new Date(_s);
245   - _tt.setMinutes(_tt.getMinutes()+pa[p].bcsj);
246   - var ddsjStr = bf.getTimeStr(_tt);
247   - pa[p].ARRIVALTIME = ddsjStr;
248   - if(tempS =='add')
249   - pa[p].fcno = pa[p].fcno+fcno_;
250   - else if(tempS =='jq')
251   - pa[p].fcno = pa[p].fcno-fcno_;
252   - }
253   - // B)、剔除掉 当前班次的到达时间大于调整班次过后最后一个班次到达时间的班次
254   - if((bf.getDateTime(pa[p].ARRIVALTIME)-bf.getDateTime(st))/60000 > pa[p].bcsj) {
255   - console.log('{' + pa[p].lpNo + '----' + pa[p].ARRIVALTIME + '----' + st + '}');
256   - console.log('修改进出场班次时...该班次的到达时间大于了最后一个班次的到达时间,应该剔除掉!');
257   - pa.splice(p,1);
258   - }
  226 +
  227 + /**
  228 + * @description : (TODO) 调整时间
  229 + *
  230 + * @params : [a1-- 当前路牌下的正常班次数组;a2--当前路牌下的早晚例保、吃饭班次数组;a3--当前路牌下的进出场班次数组]
  231 + *
  232 + * @return : 返回一个数组.这里返回的是一个调整时间后的班次数组
  233 + */
  234 + function tzsj(a1,a2,a3,sjstr,fcno_,tempS,fxdm) {
  235 + return a1.concat(jsjclc(a1[a1.length-1].ARRIVALTIME,a2,a3,sjstr,fcno_,tempS,fxdm));
259 236 }
260   - // 2、修改晚例保班次.
261   - for(var i = 0 ; i<ar.length;i++) {
262   - // A)、修改离场班次属性值
263   - if(ar[i].bcType=='lc') {
264   - ar[i].fcsj = ddsjStr;
265   - ar[i].xlDir = obj.configuration.dataMap.dira[fxdm];
266   - var _lcs = bf.getDateTime(ddsjStr);
267   - var _lctt = new Date(_lcs);
268   - _lctt.setMinutes(_lctt.getMinutes()+ar[i].bcsj);
269   - ar[i].ARRIVALTIME = bf.getTimeStr(_lctt);
270   - if(tempS =='add')
271   - ar[i].fcno = ar[i].fcno+fcno_;
272   - else if(tempS =='jq')
273   - ar[i].fcno = ar[i].fcno-fcno_;
  237 +
  238 + /**
  239 + * @description : (TODO)调整进出场、离场班次
  240 + *
  241 + * @params : [st--当前路牌最后一个班次的到达时间;ar--当前路牌下的早晚例保、吃饭班次数组,pa--当前路牌下的进出场班次数组]
  242 + *
  243 + * @return
  244 + */
  245 + function jsjclc(st,ar,pa,sjstr,fcno_,tempS,fxdm) {
  246 + // 1、修改进出场班次.
  247 + for(var p = 0;p<pa.length;p++) {
  248 + // A)、如果当前班次的发车时间等于 在没有调整班次总数之前的最后一个班次的到达时间,则这个班次是在没有调整班次之前的那个进场班次
  249 + if(pa[p].fcsj == sjstr && pa[p].bcType =='in') {
  250 + pa[p].fcsj = st;
  251 + pa[p].bcsj = obj.configuration.dataMap.ccsjArr[fxdm];
  252 + pa[p].xlDir = obj.configuration.dataMap.dira[fxdm];
  253 + var _s = bf.getDateTime(st);
  254 + var _tt = new Date(_s);
  255 + _tt.setMinutes(_tt.getMinutes()+pa[p].bcsj);
  256 + var ddsjStr = bf.getTimeStr(_tt);
  257 + pa[p].ARRIVALTIME = ddsjStr;
  258 + if(tempS =='add')
  259 + pa[p].fcno = pa[p].fcno+fcno_;
  260 + else if(tempS =='jq')
  261 + pa[p].fcno = pa[p].fcno-fcno_;
  262 + }
  263 + // B)、剔除掉 当前班次的到达时间大于调整班次过后最后一个班次到达时间的班次
  264 + if((bf.getDateTime(pa[p].ARRIVALTIME)-bf.getDateTime(st))/60000 > pa[p].bcsj) {
  265 + console.log('{' + pa[p].lpNo + '----' + pa[p].ARRIVALTIME + '----' + st + '}');
  266 + console.log('修改进出场班次时...该班次的到达时间大于了最后一个班次的到达时间,应该剔除掉!');
  267 + pa.splice(p,1);
  268 + }
274 269 }
275   - // B)、剔除掉 当前班次的到达时间大于调整班次过后最后一个班次到达时间的班次
276   - if(bf.getDateTime(ar[i].ARRIVALTIME)>bf.getDateTime(st) && ar[i].bcType!='lc') {
277   - console.log('{' + ar[i].lpNo + '----' + ar[i].ARRIVALTIME + '----' + st + '}')
278   - console.log('修改晚例保班次时...该班次的到达时间大于了最后一个班次的到达时间,应该剔除掉!');
279   - ar.splice(i,1);
  270 + // 2、修改晚例保班次.
  271 + for(var i = 0 ; i<ar.length;i++) {
  272 + // A)、修改离场班次属性值
  273 + if(ar[i].bcType=='lc') {
  274 + ar[i].fcsj = ddsjStr;
  275 + ar[i].xlDir = obj.configuration.dataMap.dira[fxdm];
  276 + var _lcs = bf.getDateTime(ddsjStr);
  277 + var _lctt = new Date(_lcs);
  278 + _lctt.setMinutes(_lctt.getMinutes()+ar[i].bcsj);
  279 + ar[i].ARRIVALTIME = bf.getTimeStr(_lctt);
  280 + if(tempS =='add')
  281 + ar[i].fcno = ar[i].fcno+fcno_;
  282 + else if(tempS =='jq')
  283 + ar[i].fcno = ar[i].fcno-fcno_;
  284 + }
  285 + // B)、剔除掉 当前班次的到达时间大于调整班次过后最后一个班次到达时间的班次
  286 + if(bf.getDateTime(ar[i].ARRIVALTIME)>bf.getDateTime(st) && ar[i].bcType!='lc') {
  287 + console.log('{' + ar[i].lpNo + '----' + ar[i].ARRIVALTIME + '----' + st + '}')
  288 + console.log('修改晚例保班次时...该班次的到达时间大于了最后一个班次的到达时间,应该剔除掉!');
  289 + ar.splice(i,1);
  290 + }
280 291 }
281   - }
282   - // 3、合并进出场、例保班次,并返回.
283   - return pa.concat(ar);
284   - }
  292 + // 3、合并进出场、例保班次,并返回.
  293 + return pa.concat(ar);
  294 + }
  295 + } else{
  296 + error.show('参数异常!','【 obj:' + obj + ' , cardata:' + cardata + ' , bf:' + bf + '】');
  297 + }
285 298 });
286 299 </script>
287 300 \ No newline at end of file
... ...
src/main/resources/static/pages/base/timesmodel/gantt.html
... ... @@ -87,7 +87,7 @@
87 87 </li>
88 88 <li>
89 89 <a href="javascript:" class="tool-action aboutread">
90   - <i class="fa fa-arrows-v"></i>&nbsp;调整班次
  90 + <i class="fa fa-arrows-v"></i>&nbsp;班次调整
91 91 </a>
92 92 </li>
93 93 </ul>
... ... @@ -116,4 +116,5 @@
116 116 <script src="/pages/base/timesmodel/js/ContextJS/js/context.js"></script>
117 117 <script src="/pages/base/timesmodel/js/base-fun.js"></script>
118 118 <script src="/pages/base/timesmodel/js/d3.relationshipgraph.js"></script>
  119 +<script src="/pages/base/timesmodel/js/errorinfo.js"></script>
119 120 <script src="/pages/base/timesmodel/js/gantt.js"></script>
120 121 \ No newline at end of file
... ...
src/main/resources/static/pages/base/timesmodel/js/add-form-reload.js
... ... @@ -46,7 +46,8 @@
46 46 obj.jhlc = d[i].jhlc;// 计划里程
47 47 obj.lp = d[i].lp==null ? null : d[i].lp.id;// 路牌id
48 48 obj.lpType = d[i].lp==null ? null : d[i].lp.lpType;// 路牌类型
49   - obj.parent = d[i].lp.lpName;// 路牌名称
  49 + obj.parent = d[i].lp.lpNo;// 路牌名称
  50 + obj.lpName = d[i].lp.lpName;
50 51 obj.lpNo = d[i].lp.lpNo;// 路牌编码
51 52 obj.tcc = d[i].tcc==null ? null : d[i].tcc.id;// 停车场id
52 53 obj.ttinfo = d[i].ttinfo==null ? null : d[i].ttinfo.id;// 时刻表id
... ... @@ -60,7 +61,7 @@
60 61 resultD.push(obj);
61 62 if(lpA.indexOf(obj.lpNo)<0) {
62 63 lpA.push(obj.lpNo);
63   - rsLpA.push({'lp':obj.lp,'lpNo':obj.lpNo,'lpName':obj.parent,'lpType':obj.lpType});
  64 + rsLpA.push({'lp':obj.lp,'lpNo':obj.lpNo,'lpName':obj.lpName,'lpType':obj.lpType});
64 65 }
65 66 }
66 67 // 返回渲染图形的数据格式.
... ...
src/main/resources/static/pages/base/timesmodel/js/add-form-wizard.js
... ... @@ -407,7 +407,9 @@ var SKBFormWizard = function() {
407 407 obj.jhlc = d[i].jhlc;// 计划里程
408 408 obj.lp = d[i].lp==null ? null : d[i].lp.id;// 路牌id
409 409 obj.lpType = d[i].lp==null ? null : d[i].lp.lpType;// 路牌类型
410   - obj.parent = d[i].lp.lpName;// 路牌名称
  410 + // obj.parent = d[i].lp.lpName;// 路牌名称
  411 + // obj.parent = parseInt(d[i].lp.lpNo);// 路牌名称
  412 + obj.lpName = d[i].lp.lpName;
411 413 obj.lpNo = d[i].lp.lpNo;// 路牌编码
412 414 obj.tcc = d[i].tcc==null ? null : d[i].tcc.id;// 停车场id
413 415 obj.ttinfo = d[i].ttinfo==null ? null : d[i].ttinfo.id;// 时刻表id
... ... @@ -421,7 +423,7 @@ var SKBFormWizard = function() {
421 423 resultD.push(obj);
422 424 if(lpA.indexOf(obj.lpNo)<0) {
423 425 lpA.push(obj.lpNo);
424   - rsLpA.push({'lp':obj.lp,'lpNo':obj.lpNo,'lpName':obj.parent,'lpType':obj.lpType});
  426 + rsLpA.push({'lp':obj.lp,'lpNo':obj.lpNo,'lpName':obj.lpName,'lpType':obj.lpType});
425 427 }
426 428 }
427 429 // 返回渲染图形的数据格式.
... ...
src/main/resources/static/pages/base/timesmodel/js/base-fun.js
... ... @@ -388,7 +388,7 @@ var BaseFun = function() {
388 388 var jar = baseF.tzsmbcsj01(
389 389 baseF.setbcsAndfcno(baseF.tzsmbcsj01(baseF.setbcsAndfcno(baseF.tzsztest(cara,jar01,dataMap)),dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap)),
390 390 dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap);
391   - // return {'json':jar,'bxrcgs':bxrcgs};
  391 + // return {'json':jar,'bxrcgs':bxrcgs};
392 392 for(var r = 0 ; r < bxrcgs.length; r++) {
393 393 var lpNo = bxrcgs[r].lpNo;
394 394 var gsv = 0 , bczs = 0;
... ... @@ -401,14 +401,18 @@ var BaseFun = function() {
401 401 bxrcgs[r].sjgsV = gsv;
402 402 bxrcgs[r].bczs = bczs;
403 403 }
  404 + //debugger;
404 405 var jar3 = baseF.dqbcsAndgs(bxrcgs,jar,dataMap,cara.length);
405   - // return {'json':jar3,'bxrcgs':bxrcgs};
  406 + //return {'json':jar3,'bxrcgs':bxrcgs};
406 407 /*var jar4 = baseF.tzsmbcsj01(
407 408 baseF.setbcsAndfcno(baseF.tzsmbcsj01(baseF.setbcsAndfcno(baseF.tzsztest(cara,jar3,dataMap)),dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap)),
408 409 dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap);*/
409 410 var rsjar = baseF.tzsztest(cara,jar3,dataMap);
410   - // return {'json':rsjar,'bxrcgs':bxrcgs};
411   - var resultJA = new Array();
  411 + return {'json':baseF.addjcclcbc01(cara,rsjar,dataMap,saa,map),'bxrcgs':bxrcgs};
  412 + },
  413 +
  414 + addjcclcbc01 : function(cara,rsjar,dataMap,saa,map) {
  415 + var resultJA = new Array(),bcs = 0;
412 416 for(var m = 0 ; m < cara.length; m++) {
413 417 // 获取路牌编号.
414 418 var lpNo_ = cara[m].lpNo;
... ... @@ -424,9 +428,68 @@ var BaseFun = function() {
424 428 }
425 429 // 按照发车序号顺序排序.
426 430 lpbc_.sort(function(a,b){return a.fcno-b.fcno});
427   - resultJA = resultJA.concat(baseF.addjclbbc01(lpbc_,dataMap,saa[0].lbsj,map));
  431 + baseF.addcfbc01(lpbc_,dataMap,map);
  432 + // 按照发车序号顺序排序.
  433 + // lpbc_.sort(function(a,b){return a.fcno-b.fcno});
  434 + var tt = baseF.addjclbbc01(lpbc_,dataMap,saa[0].lbsj,map);
  435 + bcs = baseF.updfcno01(tt,bcs);
  436 + // debugger;
  437 + resultJA = resultJA.concat(tt);
  438 + }
  439 + return resultJA;
  440 + },
  441 +
  442 + updfcno01 : function(bcArr,bcs) {
  443 + for(var i =0; i < bcArr.length;i++) {
  444 + bcArr[i].fcint = baseF.getDateTime(bcArr[i].fcsj).getTime();
428 445 }
429   - return {'json':resultJA,'bxrcgs':bxrcgs};
  446 + bcArr.sort(function(a,b){return a.fcint-b.fcint});
  447 + for(var t = 0 ; t <bcArr.length;t++) {
  448 + bcs++;
  449 + bcArr[t].bcs = bcs;
  450 + bcArr[t].fcno = t+1;
  451 + delete bcArr[t].fcint;
  452 + }
  453 + return bcs;
  454 + },
  455 +
  456 + addcfbc01 : function(lpbcar,dataMap,map) {
  457 + var gs = 0 ,sicftag = true;
  458 + for(var g = 0 ; g <lpbcar.length-1;g++ ) {
  459 + if( parseInt((baseF.getDateTime(lpbcar[g+1].fcsj) - baseF.getDateTime(lpbcar[g].ARRIVALTIME))/60000) > 80
  460 + && lpbcar[g].STOPTIME==0 ) {
  461 + lpbcar[g].isfb = 1;
  462 + }
  463 + /*gs = gs + lpbcar[g].bcsj + lpbcar[g].STOPTIME;
  464 + if(lpbcar[g].STOPTIME==0 && g>0 && g<(lpbcar.length-1)) {
  465 + debugger;
  466 + lpbcar[g].isfb = 1;
  467 + sicftag = false;
  468 + }*/
  469 + }
  470 + /*if(sicftag) {
  471 + for(var j = 0 ; j <lpbcar.length;j ++ ) {
  472 + var kssj = baseF.getDateTime(lpbcar[j].fcsj);
  473 + var tzsj = lpbcar[j].STOPTIME;
  474 + var cctag = baseF.dirDmToIndex(lpbcar[j].xlDir);
  475 + var cfdd = baseF.getcfdd(map.cfdd,cctag);
  476 + if(kssj> new Date (baseF.getCFDate(10,30)) &&
  477 + kssj<new Date (baseF.getCFDate(11,30)) && cfdd == cctag) {
  478 + console.log(tzsj,lpbcar[j].fcsj);
  479 + rs.push(baseF.getbcObj(
  480 + kssj,dataMap.zwcArr[0],cara[c],dataMap.bcTypeArr.cf,
  481 + dataMap.dira[cctag],xhNo++,0,map,0,null,null,null,0,0));
  482 +
  483 + }else if(kssj > new Date (baseF.getCFDate(18,30)) &&
  484 + kssj < new Date (baseF.getCFDate(19,30)) && cfdd == cctag ) {
  485 + console.log(tzsj,lpbcar[j].fcsj);
  486 + rs.push(baseF.getbcObj(
  487 + kssj,dataMap.zwcArr[1],cara[c],dataMap.bcTypeArr.cf,
  488 + dataMap.dira[cctag],xhNo++,0,map,0,null,null,null,0,0));
  489 +
  490 + }
  491 + }
  492 + }*/
430 493 },
431 494  
432 495 dqbcsAndgs : function(bxrcgs,jar,dataMap,cla) {
... ... @@ -538,9 +601,11 @@ var BaseFun = function() {
538 601 for(var q = 0 ; q < qbbfbc.length; q++) {
539 602 if(q<(qbbfbc.length-1))
540 603 qbbfbc[q].STOPTIME = qbbfbc[q].STOPTIME + vag;
541   - if(q==0)
542   - continue;
543   - else {
  604 + if(q==0) {
  605 + var fcsj_ = baseF.getDateTime(qbbfbc[q].fcsj);
  606 + fcsj_.setMinutes(fcsj_.getMinutes() + qbbfbc[q].bcsj);
  607 + qbbfbc[q].ARRIVALTIME = baseF.getTimeStr(fcsj_);
  608 + }else {
544 609 var ddsj_ = baseF.getDateTime(qbbfbc[q-1].ARRIVALTIME);
545 610 ddsj_.setMinutes(ddsj_.getMinutes() + qbbfbc[q-1].STOPTIME);
546 611 qbbfbc[q].fcsj = baseF.getTimeStr(ddsj_);
... ... @@ -616,6 +681,9 @@ var BaseFun = function() {
616 681 var dygbcfcsj = baseF.getDateTime(obj.fcsj);
617 682 dygbcfcsj.setMinutes(dygbcfcsj.getMinutes() - dx);
618 683 obj.fcsj = baseF.getTimeStr(dygbcfcsj);
  684 +
  685 + dygbcfcsj.setMinutes(dygbcfcsj.getMinutes() + obj.bcsj);
  686 + obj.ARRIVALTIME = baseF.getTimeStr(dygbcfcsj);
619 687 },
620 688  
621 689 zhygbcUpd: function(obj,xgOjb,dx) {
... ... @@ -800,7 +868,25 @@ var BaseFun = function() {
800 868 dqbcfcsj,dataMap.ccsjArr[fxdm],car,dataMap.bcTypeArr.out,
801 869 dataMap.dira[fxdm],2,dataMap.cclcArr[fxdm],gatps,0,dataMap.qdzArr[fxdm],null,null,0,0));// 出场班次
802 870 fcno ++;
803   - }else if(b==bc.length-1){
  871 + }/*else if(b > 0 && b < bc.length-1){
  872 + var jcbckssj = baseF.getDateTime(bc[b].ARRIVALTIME)
  873 + var ccbckssj = baseF.getDateTime(bc[b+1].fcsj)
  874 + var dx = parseInt((ccbckssj - jcbckssj)/60000);
  875 + if(bc[b].STOPTIME==0) {
  876 + // bc[b].STOPTIME = 0;
  877 + //console.log(bc[b].fcno);
  878 + var fcno_ = bc[b].fcno + 2;
  879 + stas = true;
  880 + // console.log(bc[b],bc[b+1],b);
  881 + result.push(baseF.getbcObj(
  882 + jcbckssj,dataMap.jcsjArr[fxdm],car,dataMap.bcTypeArr.in_,
  883 + dataMap.dira[fxdm],fcno_++,dataMap.jclcArr[fxdm],gatps,0,dataMap.qdzArr[fxdm],null,null,0,0));// 进场班次
  884 + var ccfx = baseF.dirDmToIndex(bc[b+1].xlDir);
  885 + result.push(baseF.getbcObj(
  886 + ccbckssj,dataMap.ccsjArr[ccfx],car,dataMap.bcTypeArr.out,
  887 + dataMap.dira[ccfx],fcno_++,dataMap.cclcArr[ccfx],gatps,0,dataMap.qdzArr[ccfx],null,null,0,0));// 出场班次
  888 + }
  889 + }*/else if(b==bc.length-1){
804 890 var fcno_ = dxfno + 2;
805 891 var qdbcddsj = baseF.getDateTime(bc[b].ARRIVALTIME);
806 892 result.push(baseF.getbcObj(
... ... @@ -1590,32 +1676,7 @@ var BaseFun = function() {
1590 1676 {'type':'无工休', 'hoursV':5.43, 'minueV':'5:43'}];
1591 1677 },
1592 1678 setbcsAndfcno : function(listA) {
1593   - /*var array = new Array();
1594   - var len = listA.length;
1595   - for(var i =0;i<len;i++) {
1596   - if(array.indexOf(listA[i].lpNo)<0)
1597   - array.push(listA[i].lpNo);
1598   - }
1599   - array.sort(baseF.compare);
1600   - console.log(array);
1601   - var sortGattArray = new Array();
1602   - for(var k =0;k<array.length;k++) {
1603   - var index = array[k];
1604   - var temp = new Array();
1605   - for(var x=0;x<listA.length;x++) {
1606   - if(index==listA[x].lpNo)
1607   - temp.push(listA[x]);
1608   - }
1609   - var lpbc = baseF.sortDirArray(temp);
1610   - for(var p = 0 ;p<lpbc.length;p++) {
1611   - lpbc[p].fcno = (p+1);
1612   - }
1613   - sortGattArray = sortGattArray.concat(lpbc);
1614   - }
1615   - for(var b = 0 ; b <sortGattArray.length;b++) {
1616   - sortGattArray[b].bcs = (b+1);
1617   - }
1618   - return sortGattArray;*/
  1679 +
1619 1680 var array = new Array();
1620 1681 var len = listA.length;
1621 1682 for(var i =0;i<len;i++) {
... ... @@ -1886,8 +1947,10 @@ var BaseFun = function() {
1886 1947 kssj,
1887 1948 obj.configuration.dataMap.pcxssjArr,
1888 1949 obj.configuration.dataMap.gfxxsjArr,cctag);// 获取行驶时间
1889   - tzsj = obj.configuration.dataMap.ztjxA[cctag];
1890   - var temptzsj = t == num-1 ? 0 : tzsj;
  1950 + // tzsj = obj.configuration.dataMap.ztjxA[cctag];
  1951 + var tzjx = baseF.isgfsjd01(kssj,obj.configuration.dataMap) ? obj.configuration.dataMap.gftzsj[cctag] : obj.configuration.dataMap.dgtzsj[cctag];
  1952 + var temptzsj = ((t == num-1) ? 0 : tzsj);
  1953 + /*var xs_tzsj = baseF.isLastbc(kssj,endTime,tzsj,_xxsj) ? 0 : tzsj;*/
1891 1954 jsonArray.push(baseF.getbcObj( kssj,
1892 1955 _xxsj,
1893 1956 carArray,
... ... @@ -1900,7 +1963,7 @@ var BaseFun = function() {
1900 1963 obj.configuration.dataMap.zdzArr[cctag],
1901 1964 null,temptzsj,0));
1902 1965 // kssj = new Date(kssj.setMinutes(kssj.getMinutes() + temptzsj));
1903   - kssj.setMinutes(kssj.getMinutes() + temptzsj)
  1966 + kssj.setMinutes(kssj.getMinutes() + tzjx)
1904 1967 }
1905 1968 lastObj.STOPTIME = 10;
1906 1969 },
... ...
src/main/resources/static/pages/base/timesmodel/js/d3.relationshipgraph.js
... ... @@ -229,7 +229,7 @@ $(&#39;.updownread&#39;).on(&#39;click&#39;,function() {
229 229 /************************************************************************************************************************************************/
230 230  
231 231 /**
232   - * @description : (TODO) 调整班次点击事件
  232 + * @description : (TODO) 班次调整点击事件
233 233 *
234 234 * @status OK.
235 235 ************************************************************************************************************************************************/
... ... @@ -417,31 +417,6 @@ $(&#39;.editlp&#39;).on(&#39;click&#39;,function() {
417 417 });
418 418 /************************************************************************************************************************************************/
419 419  
420   -/**
421   - * @description : (TODO)获取路牌对应的班次数(这里的班次不包括早晚例保班次、吃饭时间)
422   - *
423   - * @params : [a1--班次数组;a2--路牌数组]
424   - *
425   - * @return : 返回一个数组.这里返回的是一个封装的每个路牌对应的班次数(这里的班次不包括早晚例保班次、吃饭时间、班次时间为0的班次)
426   - ************************************************************************************************************************************************/
427   -var getbczs = function (a1,a2) {
428   - var array = new Array();
429   - // 1、遍历路牌数组
430   - for(var i = 0;i<a2.length;i++) {
431   - var bcs = 0;
432   - // 2、遍历班次数组
433   - for(var j =0;j<a1.length;j++) {
434   - // 3、判断当前班次j是否属于当前路牌i下,除去早晚例保班次、吃饭时间、班次时间为0的班次
435   - if(a1[j].parent == a2[i].lpA.lpNo && a1[j].bcType!='bd' && a1[j].bcType!='lc' && a1[j].bcType!='cf' && a1[j].bcsj>0)
436   - bcs++;
437   - }
438   - // 4、把每个路牌下的对应班次数一一封装在一起,并添加到返回数组里边
439   - array.push({lpNo:a2[i].lpA.lpNo,bcs:bcs});
440   - }
441   - return array;
442   -}
443   -/************************************************************************************************************************************************/
444   -
445 420  
446 421 /**
447 422 * d3动画过度
... ... @@ -647,7 +622,6 @@ var RelationshipGraph = function () {
647 622 .ordinal()
648 623 .domain(this.configuration.lpNameA)
649 624 .rangeRoundBands([ 0, this.configuration.height], .1);
650   -
651 625 this.configuration.y = y;
652 626 // 创建X轴
653 627 var xAxis = d3.svg
... ... @@ -733,7 +707,7 @@ var RelationshipGraph = function () {
733 707 yAxisYArray.splice(0,yAxisYArray.length);
734 708 for(var t = 0;t<this.configuration.taskTypes.length;t++) {
735 709 yAxisYArray.push({
736   - y:y(this.configuration.taskTypes[t].lpNo)+this.configuration.offsetY,
  710 + y:y(this.configuration.taskTypes[t].lpName)+this.configuration.offsetY,
737 711 carname:this.configuration.taskTypes[t].lpName,
738 712 lpA : this.configuration.taskTypes[t]});
739 713 }
... ... @@ -938,6 +912,44 @@ var RelationshipGraph = function () {
938 912 return dataArray;
939 913 }
940 914 }, {
  915 + /**
  916 + * @description : (TODO) 获取路牌对应的班次数(这里的班次不包括早晚例保班次、吃饭时间)
  917 + *
  918 + * @params : [a1--班次数组;a2--路牌数组]
  919 + *
  920 + * @return : 返回一个数组.这里返回的是一个封装的每个路牌对应的班次数(这里的班次不包括早晚例保班次、吃饭时间、班次时间为0的班次)
  921 + **/
  922 + key : 'getbczs',
  923 + value : function getbczs(a1,a2,dataMap) {
  924 + // 定义返回数组.
  925 + var array = new Array();
  926 + // 判断参数数组长度大于〇,dataMap不能为空.
  927 + if(a1.length>0 && a2.length>0 && dataMap!=null && dataMap!='') {
  928 + // 遍历路牌数组
  929 + for(var i = 0 ;i < a2.length ; i++) {
  930 + // 定义当前路牌下班次数,初始化为0.
  931 + var bcs = 0;
  932 + // 遍历班次数组
  933 + for(var j = 0 ; j < a1.length ; j++) {
  934 + // 判断当前班次j是否属于当前路牌i下,除去早晚例保班次、吃饭时间、班次时间为0的班次
  935 + if(a1[j].parent == a2[i].lpA.lpNo &&
  936 + a1[j].bcType != dataMap.bcTypeArr.bd &&
  937 + a1[j].bcType != dataMap.bcTypeArr.lc &&
  938 + a1[j].bcType != dataMap.bcTypeArr.cf &&
  939 + a1[j].bcsj > 0) {
  940 + bcs++;
  941 + }
  942 + }
  943 + // 把每个路牌下的对应班次数一一封装在一起,并添加到返回数组里边
  944 + array.push({lpNo : a2[i].lpA.lpNo , lpName:a2[i].lpA.lpName , bcs:bcs});
  945 + }
  946 + }else {
  947 + error.show('参数异常!','【 a1:' + a1 + ' , a2:' + a2 + ' , dataMap:' + dataMap + '】');
  948 + // console.log("您传入的参数异常!【 a1:" + a1 + ", a2:" + a2 + ", dataMap:" + dataMap);
  949 + }
  950 + return array;
  951 + }
  952 + }, {
941 953 key : 'addHistory' ,
942 954 value : function addHistory() {
943 955 historyArray.push({'data':JSON.stringify(this.getDataArray()),'granph':JSON.stringify(this.configuration)});
... ... @@ -1410,7 +1422,7 @@ var RelationshipGraph = function () {
1410 1422 }
1411 1423 }, {
1412 1424 /**
1413   - * @description : (TODO) 调整班次函数.
  1425 + * @description : (TODO) 班次调整函数.
1414 1426 *
1415 1427 * @status OK.
1416 1428 * */
... ... @@ -1419,7 +1431,9 @@ var RelationshipGraph = function () {
1419 1431 // 弹出层mobal页面
1420 1432 $.get('/pages/base/timesmodel/bctz.html', function(m){
1421 1433 $(pjaxContainer).append(m);
1422   - $('#tzbc_mobal').trigger('tzbcMobal.show',[$_GlobalGraph,getbczs($_GlobalGraph.getDataArray(),yAxisYArray),BaseFun]);
  1434 + // 获取各路牌下的班次数
  1435 + var lpbcs = $_GlobalGraph.getbczs($_GlobalGraph.getDataArray() , yAxisYArray , $_GlobalGraph.configuration.dataMap);
  1436 + $('#tzbc_mobal').trigger('tzbcMobal.show',[$_GlobalGraph , lpbcs , BaseFun , ErrorInfo]);
1423 1437 });
1424 1438 }
1425 1439  
... ... @@ -2476,9 +2490,11 @@ var RelationshipGraph = function () {
2476 2490 for(var s = 0 ; s < len ; s++) {
2477 2491 var rectNodesAttr = RelationshipGraph.getContextNodeAndData(d3.select(shiftRectA[s]).attr('id'));
2478 2492 if(rectNodesAttr.dqbcData.STOPTIME<0) {
2479   - var nextTzsjDx = $_GlobalGraph.configuration.dataMap.minztjx - rectNodesAttr.dqbcData.STOPTIME;
  2493 + // var nextTzsjDx = $_GlobalGraph.configuration.dataMap.minztjx - rectNodesAttr.dqbcData.STOPTIME;
  2494 + var nextTzsjDx = 0 - rectNodesAttr.dqbcData.STOPTIME;
2480 2495 // 修改遍历的当前元素数据的停站时间为最小停站时间.
2481   - rectNodesAttr.dqbcData.STOPTIME = $_GlobalGraph.configuration.dataMap.minztjx;
  2496 + // rectNodesAttr.dqbcData.STOPTIME = $_GlobalGraph.configuration.dataMap.minztjx;
  2497 + rectNodesAttr.dqbcData.STOPTIME = 0;
2482 2498 // 修改遍历的当前元素数据的文本展示停站时间
2483 2499 for(var t = 0 ; t < rectNodesAttr.dqbctextNodes.length ; t++) {
2484 2500 if(d3.select(rectNodesAttr.dqbctextNodes[t]).attr('text-type')=='gap')
... ... @@ -2501,6 +2517,7 @@ var RelationshipGraph = function () {
2501 2517 * 修改下个班次的元素坐标属性值
2502 2518 *
2503 2519 * */
  2520 +
2504 2521 rectNodesAttr.nextbcNode.attr('x',$_x);
2505 2522 var rectCover = d3.select(d3.selectAll('rect[parent-node='+ rectNodesAttr.nextbcNodeId + '-cover' +']')[0][0]);
2506 2523 rectCover.attr('x',$_x);
... ... @@ -2996,7 +3013,7 @@ var RelationshipGraph = function () {
2996 3013 nowDate.setMinutes(parseInt(tm.min)+d.bcsj);// 10.3.1、设置分钟.
2997 3014 // 9.1.4、修改当前班次的到达时间.
2998 3015 d.ARRIVALTIME = BaseFun.getTimeStr(nowDate);
2999   - d.STOPTIME = parseInt((BaseFun.getDateTime(nodeContext.nextData.fcsj) - BaseFun.getDateTime(d.ARRIVALTIME))/ 60000);
  3016 + d.STOPTIME = d.isfb ==1 ? 0 : parseInt((BaseFun.getDateTime(nodeContext.nextData.fcsj) - BaseFun.getDateTime(d.ARRIVALTIME))/ 60000);
3000 3017 /**
3001 3018 * 9.2、修改元素沿X轴方向的X坐标属性值.
3002 3019 *
... ... @@ -3017,6 +3034,8 @@ var RelationshipGraph = function () {
3017 3034 }
3018 3035 /****************************************** update 当前的班次数据以及相关元素对象属性值. END ************************************/
3019 3036  
  3037 + //console.log(nodeContext);
  3038 + //debugger;
3020 3039 // 10、计算与上个班次的停站时间.
3021 3040 var dxMinues = parseInt((BaseFun.getDateTime(d.fcsj) - BaseFun.getDateTime(nodeContext.lastData.ARRIVALTIME)) / 60000);
3022 3041  
... ... @@ -3163,7 +3182,8 @@ var RelationshipGraph = function () {
3163 3182 **/
3164 3183 var _obj = RelationshipGraph.getContextNodeAndData(d3.select(this).attr('parent-node').replace('-cover',''));
3165 3184 // 1.3、定义最小停站间隙.
3166   - var minSoptTime = $_GlobalGraph.configuration.dataMap.minztjx;
  3185 + // var minSoptTime = $_GlobalGraph.configuration.dataMap.minztjx;
  3186 + var minSoptTime = 0;
3167 3187 // 1.4、创建当前时间对象.
3168 3188 var $_date = new Date();
3169 3189 // 1.5、判断 如果当前班次的停站时间小于零,则修改成最小停站时间.
... ...
src/main/resources/static/pages/base/timesmodel/js/errorinfo.js 0 → 100644
  1 +ErrorInfo = function() {
  2 + var error = {
  3 + show : function(title , content) {
  4 + layer.open({
  5 + title: title,
  6 + content: content
  7 + });
  8 + }
  9 + }
  10 + return error;
  11 +}();
0 12 \ No newline at end of file
... ...
src/main/resources/static/pages/base/timesmodel/js/gantt.js
... ... @@ -70,8 +70,28 @@
70 70 }else {
71 71 var jsonA = JSON.parse(objD);
72 72 // 使用已有的时刻表明细数据渲染视图.
73   - data = {'json':jsonA.rsD,'bxrcgs':null};
  73 + // data = {'json':jsonA.rsD,'bxrcgs':null};
74 74 CSMap = {'gattA':null,'stopSpace': Math.round(map.zzsj/map.clzs),'maxCar':jsonA.rsLP};
  75 + var cara = jsonA.rsLP;
  76 + var rsjar = jsonA.rsD;
  77 + var resultJA = new Array();
  78 + for(var m = 0 ; m < cara.length; m++) {
  79 + // 获取路牌编号.
  80 + var lpNo_ = cara[m].lpNo;
  81 + // 定义路牌下的所有班次.
  82 + var lpbc_ = new Array();
  83 + // 遍历班次数.
  84 + for(var x =0 ; x <rsjar.length; x++) {
  85 + // 判断当期遍历的班次是否属于当前的路牌.
  86 + if(rsjar[x].lpNo == lpNo_) {
  87 + lpbc_.push(rsjar[x]);
  88 + }
  89 + }
  90 + // 按照发车序号顺序排序.
  91 + lpbc_.sort(function(a,b){return a.fcno-b.fcno});
  92 + resultJA = resultJA.concat(BaseFun.addjclbbc01(lpbc_,dataMap,stopAraay[0].lbsj,map));
  93 + }
  94 + data = {'json':rsjar,'bxrcgs':null};
75 95 }
76 96 // 创建甘特图对象.
77 97 var graph = d3.select('#ganttSvg').relationshipGraph(
... ... @@ -401,6 +421,7 @@
401 421 var hours=Math.floor(leave1/(3600*1000));
402 422 DXHOURS = days*24+hours;
403 423 WIDTH = DXHOURS*MINUTE*MULTIPLE;
  424 + // debugger;
404 425 var lpsplitA = getylp(p.yAxisCarArray);
405 426 var args = {
406 427 'valueKeyName': VALUEKEYNAME,
... ...