Commit 07ac546924789e840ba856a50d98ef10c73183c9

Authored by 徐烜
2 parents 4aa0a6a8 b5db7075

Merge branch 'minhang' into pudong

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
... ... @@ -100,15 +100,16 @@ $(&#39;#tzbc_mobal&#39;).on(&#39;tzbcMobal.show&#39;, function(e,obj,cardata,bf){
100 100 submitHandler : function(f) {
101 101 // 1、 获取表单内容,并序列化
102 102 var params = form.serializeJSON();
  103 + var dataMap = obj.configuration.dataMap;
103 104 // 2、 调整路牌对应的班次总数
104 105 updFormParams(params);
105 106 // 3、调整班次.并重新给定班次序号和发车序号.再确定首末班车时间.最后渲染数据
106   - obj.data(bf.tzsmbcsj(bf.setbcsAndfcno(tzbcDate()),
  107 + obj.data(bf.tzsmbcsj01(bf.setbcsAndfcno(tzbcDate()),
107 108 obj.configuration.dataMap.smbcsjArr,
108 109 obj.configuration.dataMap.ccsjArr,
109 110 obj.configuration.dataMap.cclcArr,
110 111 obj.configuration.dataMap.qdzArr,
111   - obj.configuration.dataMap.lbsj));
  112 + obj.configuration.dataMap.lbsj,dataMap));
112 113 // 3、记录早操.并保存历史班次数据
113 114 obj.addHistory();
114 115 // 5、隐藏错误提示
... ... @@ -232,7 +233,6 @@ $(&#39;#tzbc_mobal&#39;).on(&#39;tzbcMobal.show&#39;, function(e,obj,cardata,bf){
232 233 * @return
233 234 */
234 235 function jsjclc(st,ar,pa,sjstr,fcno_,tempS,fxdm) {
235   - console.log('{' + tempS + '......}')
236 236 // 1、修改进出场班次.
237 237 for(var p = 0;p<pa.length;p++) {
238 238 // A)、如果当前班次的发车时间等于 在没有调整班次总数之前的最后一个班次的到达时间,则这个班次是在没有调整班次之前的那个进场班次
... ...
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;
... ... @@ -422,11 +426,63 @@ var BaseFun = function() {
422 426 lpbc_.push(rsjar[x]);
423 427 }
424 428 }
  429 + baseF.addcfbc01(lpbc_,dataMap,map);
425 430 // 按照发车序号顺序排序.
426 431 lpbc_.sort(function(a,b){return a.fcno-b.fcno});
427   - resultJA = resultJA.concat(baseF.addjclbbc01(lpbc_,dataMap,saa[0].lbsj,map));
  432 + var tt = baseF.addjclbbc01(lpbc_,dataMap,saa[0].lbsj,map);
  433 + bcs = baseF.updfcno01(tt,bcs);
  434 + // debugger;
  435 + resultJA = resultJA.concat(tt);
  436 + }
  437 + return resultJA;
  438 + },
  439 +
  440 + updfcno01 : function(bcArr,bcs) {
  441 + for(var i =0; i < bcArr.length;i++) {
  442 + bcArr[i].fcint = baseF.getDateTime(bcArr[i].fcsj).getTime();
  443 + }
  444 + bcArr.sort(function(a,b){return a.fcint-b.fcint});
  445 + for(var t = 0 ; t <bcArr.length;t++) {
  446 + bcs++;
  447 + bcArr[t].bcs = bcs;
  448 + bcArr[t].fcno = t+1;
  449 + delete bcArr[t].fcint;
428 450 }
429   - return {'json':resultJA,'bxrcgs':bxrcgs};
  451 + return bcs;
  452 + },
  453 +
  454 + addcfbc01 : function(lpbcar,dataMap,map) {
  455 + var gs = 0 ,sicftag = true;
  456 + for(var g = 0 ; g <lpbcar.length;g++ ) {
  457 + gs = gs + lpbcar[g].bcsj + lpbcar[g].STOPTIME;
  458 + if(lpbcar[g].STOPTIME==0 && g!=0 && g!=(lpbcar.length-1)) {
  459 + lpbcar[g].isfb = 1;
  460 + sicftag = false;
  461 + }
  462 + }
  463 + /*if(sicftag) {
  464 + for(var j = 0 ; j <lpbcar.length;j ++ ) {
  465 + var kssj = baseF.getDateTime(lpbcar[j].fcsj);
  466 + var tzsj = lpbcar[j].STOPTIME;
  467 + var cctag = baseF.dirDmToIndex(lpbcar[j].xlDir);
  468 + var cfdd = baseF.getcfdd(map.cfdd,cctag);
  469 + if(kssj> new Date (baseF.getCFDate(10,30)) &&
  470 + kssj<new Date (baseF.getCFDate(11,30)) && cfdd == cctag) {
  471 + console.log(tzsj,lpbcar[j].fcsj);
  472 + rs.push(baseF.getbcObj(
  473 + kssj,dataMap.zwcArr[0],cara[c],dataMap.bcTypeArr.cf,
  474 + dataMap.dira[cctag],xhNo++,0,map,0,null,null,null,0,0));
  475 +
  476 + }else if(kssj > new Date (baseF.getCFDate(18,30)) &&
  477 + kssj < new Date (baseF.getCFDate(19,30)) && cfdd == cctag ) {
  478 + console.log(tzsj,lpbcar[j].fcsj);
  479 + rs.push(baseF.getbcObj(
  480 + kssj,dataMap.zwcArr[1],cara[c],dataMap.bcTypeArr.cf,
  481 + dataMap.dira[cctag],xhNo++,0,map,0,null,null,null,0,0));
  482 +
  483 + }
  484 + }
  485 + }*/
430 486 },
431 487  
432 488 dqbcsAndgs : function(bxrcgs,jar,dataMap,cla) {
... ... @@ -538,9 +594,11 @@ var BaseFun = function() {
538 594 for(var q = 0 ; q < qbbfbc.length; q++) {
539 595 if(q<(qbbfbc.length-1))
540 596 qbbfbc[q].STOPTIME = qbbfbc[q].STOPTIME + vag;
541   - if(q==0)
542   - continue;
543   - else {
  597 + if(q==0) {
  598 + var fcsj_ = baseF.getDateTime(qbbfbc[q].fcsj);
  599 + fcsj_.setMinutes(fcsj_.getMinutes() + qbbfbc[q].bcsj);
  600 + qbbfbc[q].ARRIVALTIME = baseF.getTimeStr(fcsj_);
  601 + }else {
544 602 var ddsj_ = baseF.getDateTime(qbbfbc[q-1].ARRIVALTIME);
545 603 ddsj_.setMinutes(ddsj_.getMinutes() + qbbfbc[q-1].STOPTIME);
546 604 qbbfbc[q].fcsj = baseF.getTimeStr(ddsj_);
... ... @@ -616,6 +674,9 @@ var BaseFun = function() {
616 674 var dygbcfcsj = baseF.getDateTime(obj.fcsj);
617 675 dygbcfcsj.setMinutes(dygbcfcsj.getMinutes() - dx);
618 676 obj.fcsj = baseF.getTimeStr(dygbcfcsj);
  677 +
  678 + dygbcfcsj.setMinutes(dygbcfcsj.getMinutes() + obj.bcsj);
  679 + obj.ARRIVALTIME = baseF.getTimeStr(dygbcfcsj);
619 680 },
620 681  
621 682 zhygbcUpd: function(obj,xgOjb,dx) {
... ... @@ -800,7 +861,25 @@ var BaseFun = function() {
800 861 dqbcfcsj,dataMap.ccsjArr[fxdm],car,dataMap.bcTypeArr.out,
801 862 dataMap.dira[fxdm],2,dataMap.cclcArr[fxdm],gatps,0,dataMap.qdzArr[fxdm],null,null,0,0));// 出场班次
802 863 fcno ++;
803   - }else if(b==bc.length-1){
  864 + }/*else if(b > 0 && b < bc.length-1){
  865 + var jcbckssj = baseF.getDateTime(bc[b].ARRIVALTIME)
  866 + var ccbckssj = baseF.getDateTime(bc[b+1].fcsj)
  867 + var dx = parseInt((ccbckssj - jcbckssj)/60000);
  868 + if(bc[b].STOPTIME==0) {
  869 + // bc[b].STOPTIME = 0;
  870 + //console.log(bc[b].fcno);
  871 + var fcno_ = bc[b].fcno + 2;
  872 + stas = true;
  873 + // console.log(bc[b],bc[b+1],b);
  874 + result.push(baseF.getbcObj(
  875 + jcbckssj,dataMap.jcsjArr[fxdm],car,dataMap.bcTypeArr.in_,
  876 + dataMap.dira[fxdm],fcno_++,dataMap.jclcArr[fxdm],gatps,0,dataMap.qdzArr[fxdm],null,null,0,0));// 进场班次
  877 + var ccfx = baseF.dirDmToIndex(bc[b+1].xlDir);
  878 + result.push(baseF.getbcObj(
  879 + ccbckssj,dataMap.ccsjArr[ccfx],car,dataMap.bcTypeArr.out,
  880 + dataMap.dira[ccfx],fcno_++,dataMap.cclcArr[ccfx],gatps,0,dataMap.qdzArr[ccfx],null,null,0,0));// 出场班次
  881 + }
  882 + }*/else if(b==bc.length-1){
804 883 var fcno_ = dxfno + 2;
805 884 var qdbcddsj = baseF.getDateTime(bc[b].ARRIVALTIME);
806 885 result.push(baseF.getbcObj(
... ... @@ -1590,32 +1669,7 @@ var BaseFun = function() {
1590 1669 {'type':'无工休', 'hoursV':5.43, 'minueV':'5:43'}];
1591 1670 },
1592 1671 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;*/
  1672 +
1619 1673 var array = new Array();
1620 1674 var len = listA.length;
1621 1675 for(var i =0;i<len;i++) {
... ...
src/main/resources/static/pages/base/timesmodel/js/d3.relationshipgraph.js
... ... @@ -647,7 +647,6 @@ var RelationshipGraph = function () {
647 647 .ordinal()
648 648 .domain(this.configuration.lpNameA)
649 649 .rangeRoundBands([ 0, this.configuration.height], .1);
650   -
651 650 this.configuration.y = y;
652 651 // 创建X轴
653 652 var xAxis = d3.svg
... ... @@ -733,7 +732,7 @@ var RelationshipGraph = function () {
733 732 yAxisYArray.splice(0,yAxisYArray.length);
734 733 for(var t = 0;t<this.configuration.taskTypes.length;t++) {
735 734 yAxisYArray.push({
736   - y:y(this.configuration.taskTypes[t].lpNo)+this.configuration.offsetY,
  735 + y:y(this.configuration.taskTypes[t].lpName)+this.configuration.offsetY,
737 736 carname:this.configuration.taskTypes[t].lpName,
738 737 lpA : this.configuration.taskTypes[t]});
739 738 }
... ... @@ -2476,9 +2475,11 @@ var RelationshipGraph = function () {
2476 2475 for(var s = 0 ; s < len ; s++) {
2477 2476 var rectNodesAttr = RelationshipGraph.getContextNodeAndData(d3.select(shiftRectA[s]).attr('id'));
2478 2477 if(rectNodesAttr.dqbcData.STOPTIME<0) {
2479   - var nextTzsjDx = $_GlobalGraph.configuration.dataMap.minztjx - rectNodesAttr.dqbcData.STOPTIME;
  2478 + // var nextTzsjDx = $_GlobalGraph.configuration.dataMap.minztjx - rectNodesAttr.dqbcData.STOPTIME;
  2479 + var nextTzsjDx = 0 - rectNodesAttr.dqbcData.STOPTIME;
2480 2480 // 修改遍历的当前元素数据的停站时间为最小停站时间.
2481   - rectNodesAttr.dqbcData.STOPTIME = $_GlobalGraph.configuration.dataMap.minztjx;
  2481 + // rectNodesAttr.dqbcData.STOPTIME = $_GlobalGraph.configuration.dataMap.minztjx;
  2482 + rectNodesAttr.dqbcData.STOPTIME = 0;
2482 2483 // 修改遍历的当前元素数据的文本展示停站时间
2483 2484 for(var t = 0 ; t < rectNodesAttr.dqbctextNodes.length ; t++) {
2484 2485 if(d3.select(rectNodesAttr.dqbctextNodes[t]).attr('text-type')=='gap')
... ... @@ -2501,6 +2502,7 @@ var RelationshipGraph = function () {
2501 2502 * 修改下个班次的元素坐标属性值
2502 2503 *
2503 2504 * */
  2505 +
2504 2506 rectNodesAttr.nextbcNode.attr('x',$_x);
2505 2507 var rectCover = d3.select(d3.selectAll('rect[parent-node='+ rectNodesAttr.nextbcNodeId + '-cover' +']')[0][0]);
2506 2508 rectCover.attr('x',$_x);
... ... @@ -2996,7 +2998,7 @@ var RelationshipGraph = function () {
2996 2998 nowDate.setMinutes(parseInt(tm.min)+d.bcsj);// 10.3.1、设置分钟.
2997 2999 // 9.1.4、修改当前班次的到达时间.
2998 3000 d.ARRIVALTIME = BaseFun.getTimeStr(nowDate);
2999   - d.STOPTIME = parseInt((BaseFun.getDateTime(nodeContext.nextData.fcsj) - BaseFun.getDateTime(d.ARRIVALTIME))/ 60000);
  3001 + d.STOPTIME = d.isfb ==1 ? 0 : parseInt((BaseFun.getDateTime(nodeContext.nextData.fcsj) - BaseFun.getDateTime(d.ARRIVALTIME))/ 60000);
3000 3002 /**
3001 3003 * 9.2、修改元素沿X轴方向的X坐标属性值.
3002 3004 *
... ... @@ -3017,6 +3019,8 @@ var RelationshipGraph = function () {
3017 3019 }
3018 3020 /****************************************** update 当前的班次数据以及相关元素对象属性值. END ************************************/
3019 3021  
  3022 + //console.log(nodeContext);
  3023 + //debugger;
3020 3024 // 10、计算与上个班次的停站时间.
3021 3025 var dxMinues = parseInt((BaseFun.getDateTime(d.fcsj) - BaseFun.getDateTime(nodeContext.lastData.ARRIVALTIME)) / 60000);
3022 3026  
... ... @@ -3163,7 +3167,8 @@ var RelationshipGraph = function () {
3163 3167 **/
3164 3168 var _obj = RelationshipGraph.getContextNodeAndData(d3.select(this).attr('parent-node').replace('-cover',''));
3165 3169 // 1.3、定义最小停站间隙.
3166   - var minSoptTime = $_GlobalGraph.configuration.dataMap.minztjx;
  3170 + // var minSoptTime = $_GlobalGraph.configuration.dataMap.minztjx;
  3171 + var minSoptTime = 0;
3167 3172 // 1.4、创建当前时间对象.
3168 3173 var $_date = new Date();
3169 3174 // 1.5、判断 如果当前班次的停站时间小于零,则修改成最小停站时间.
... ...
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,
... ...