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,6 +104,9 @@ public class Line implements Serializable {
104 /** 开辟日期 date*/ 104 /** 开辟日期 date*/
105 @DateTimeFormat(pattern ="yyyy-MM-dd") 105 @DateTimeFormat(pattern ="yyyy-MM-dd")
106 private Date openDate; 106 private Date openDate;
  107 +
  108 + /** 大间隔等级 */
  109 + private Integer spacGrade;
107 110
108 /** 线路沿革 varchar length(50) */ 111 /** 线路沿革 varchar length(50) */
109 private String history; 112 private String history;
@@ -155,6 +158,14 @@ public class Line implements Serializable { @@ -155,6 +158,14 @@ public class Line implements Serializable {
155 /** 是否在使用 <1:是;0:否> bit length(50) */ 158 /** 是否在使用 <1:是;0:否> bit length(50) */
156 private Integer inUse; 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 public Integer getWarrantCar() { 169 public Integer getWarrantCar() {
159 return warrantCar; 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,11 +159,11 @@ public interface SectionRouteRepository extends BaseRepository&lt;SectionRoute, Int
159 */ 159 */
160 @Query(value = "SELECT " + 160 @Query(value = "SELECT " +
161 "c.directions," + 161 "c.directions," +
162 - "ST_AsText(s.bsection_vector) as bsection_vector," + 162 + "ST_AsText(s.gsection_vector) as gsection_vector," +
163 "s.speed_limit," + 163 "s.speed_limit," +
164 "s.section_name " + 164 "s.section_name " +
165 " FROM bsth_c_sectionroute c " + 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 List<Object[]> sectionRouteVector(Integer lineId,Integer directions); 167 List<Object[]> sectionRouteVector(Integer lineId,Integer directions);
168 168
169 @Transactional 169 @Transactional
src/main/java/com/bsth/repository/StationRouteRepository.java
@@ -153,7 +153,7 @@ public interface StationRouteRepository extends BaseRepository&lt;StationRoute, Int @@ -153,7 +153,7 @@ public interface StationRouteRepository extends BaseRepository&lt;StationRoute, Int
153 "s.station_route_code," + 153 "s.station_route_code," +
154 "s.directions," + 154 "s.directions," +
155 "s.distances,"+ 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 "LEFT JOIN bsth_c_station b " + 157 "LEFT JOIN bsth_c_station b " +
158 " on a.station = b.id ORDER BY a.directions ASC ) k ORDER BY k.directions,k.station_route_code ASC", nativeQuery=true) 158 " on a.station = b.id ORDER BY a.directions ASC ) k ORDER BY k.directions,k.station_route_code ASC", nativeQuery=true)
159 List<Object[]> usingSingle(Integer lineId); 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,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
24 24
25 import java.io.ByteArrayInputStream; 25 import java.io.ByteArrayInputStream;
26 import java.io.File; 26 import java.io.File;
  27 +import java.io.FileOutputStream;
27 import java.io.InputStream; 28 import java.io.InputStream;
28 import java.text.DecimalFormat; 29 import java.text.DecimalFormat;
29 import java.util.*; 30 import java.util.*;
@@ -511,57 +512,38 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -511,57 +512,38 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
511 */ 512 */
512 @Override 513 @Override
513 public Map<String, Object> usingSingle(Map<String, Object> map) { 514 public Map<String, Object> usingSingle(Map<String, Object> map) {
514 -  
515 // 返回值map 515 // 返回值map
516 Map<String, Object> resultMap = new HashMap<String,Object>(); 516 Map<String, Object> resultMap = new HashMap<String,Object>();
517 -  
518 try { 517 try {
519 -  
520 // 获取线路ID 518 // 获取线路ID
521 Integer lineId = map.get("lineId").equals("") ? 0 : Integer.parseInt(map.get("lineId").toString()); 519 Integer lineId = map.get("lineId").equals("") ? 0 : Integer.parseInt(map.get("lineId").toString());
522 -  
523 /** 查询线路信息 @param:<lineId:线路ID> */ 520 /** 查询线路信息 @param:<lineId:线路ID> */
524 Line line = lineRepository.findOne(lineId); 521 Line line = lineRepository.findOne(lineId);
525 -  
526 /** 查询线路信息下的站点路由信息 @param:<lineId:线路ID> */ 522 /** 查询线路信息下的站点路由信息 @param:<lineId:线路ID> */
527 List<Object[]> objects = repository.usingSingle(lineId); 523 List<Object[]> objects = repository.usingSingle(lineId);
528 -  
529 if (objects.size()>0) { 524 if (objects.size()>0) {
530 -  
531 /** 获取配置文件里的ftp登录参数 */ 525 /** 获取配置文件里的ftp登录参数 */
532 Map<String, Object> FTPParamMap = readPropertiesGetFTPParam(); 526 Map<String, Object> FTPParamMap = readPropertiesGetFTPParam();
533 -  
534 // 压缩文件名 527 // 压缩文件名
535 String odlGzFileName = line.getLineCode() + ".txt.gz"; 528 String odlGzFileName = line.getLineCode() + ".txt.gz";
536 -  
537 // txt文件名 529 // txt文件名
538 String textFileName = line.getLineCode() + ".txt"; 530 String textFileName = line.getLineCode() + ".txt";
539 -  
540 // 创建一个ftp上传实例 531 // 创建一个ftp上传实例
541 FTPClientUtils clientUtils = new FTPClientUtils(); 532 FTPClientUtils clientUtils = new FTPClientUtils();
542 -  
543 // IP 533 // IP
544 String url = FTPParamMap.get("url").toString(); 534 String url = FTPParamMap.get("url").toString();
545 -  
546 // 端口 535 // 端口
547 int port = Integer.valueOf(FTPParamMap.get("port").toString()); 536 int port = Integer.valueOf(FTPParamMap.get("port").toString());
548 -  
549 // 用户名 537 // 用户名
550 String username = FTPParamMap.get("username").toString(); 538 String username = FTPParamMap.get("username").toString();
551 -  
552 // 密码 539 // 密码
553 String password = FTPParamMap.get("password").toString(); 540 String password = FTPParamMap.get("password").toString();
554 -  
555 // 相对路径 541 // 相对路径
556 String remotePath = FTPParamMap.get("remotePath").toString(); 542 String remotePath = FTPParamMap.get("remotePath").toString();
557 -  
558 /** 如果已存在相同行单文件名则先删除 */ 543 /** 如果已存在相同行单文件名则先删除 */
559 clientUtils.deleteFtpFile(url, port, username, password, remotePath, odlGzFileName); 544 clientUtils.deleteFtpFile(url, port, username, password, remotePath, odlGzFileName);
560 -  
561 clientUtils.deleteFtpFile(url, port, username, password, remotePath, textFileName); 545 clientUtils.deleteFtpFile(url, port, username, password, remotePath, textFileName);
562 -  
563 String textStr = ""; 546 String textStr = "";
564 -  
565 boolean tempTag = ishxType(objects); 547 boolean tempTag = ishxType(objects);
566 548
567 if(tempTag) 549 if(tempTag)
@@ -575,6 +557,12 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -575,6 +557,12 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
575 557
576 InputStream input = new ByteArrayInputStream(textStr.getBytes("gbk")); 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 /** 生成txt文件,上传ftp */ 566 /** 生成txt文件,上传ftp */
579 clientUtils.uploadFile(url, port, username, password, remotePath, textFileName, input); 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,25 +633,23 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
645 * @return String 633 * @return String
646 */ 634 */
647 public String newTextFileToFTP(List<Object[]> objects,Integer lineId) { 635 public String newTextFileToFTP(List<Object[]> objects,Integer lineId) {
648 -  
649 // 返回值String 636 // 返回值String
650 String stationRStr = ""; 637 String stationRStr = "";
651 -  
652 // windows下的文本文件换行符 638 // windows下的文本文件换行符
653 //String enterStr = "\r\n"; 639 //String enterStr = "\r\n";
654 -  
655 // linux/unix下的文本文件换行符 640 // linux/unix下的文本文件换行符
656 String enterStr = "\r"; 641 String enterStr = "\r";
657 - 642 + int defaultZdxh = 0;
658 if(objects.size()>0) { 643 if(objects.size()>0) {
659 -  
660 for(int i = 0; i<objects.size();i++) { 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 lat = "\t" + lat; 654 lat = "\t" + lat;
669 655
@@ -673,23 +659,32 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -673,23 +659,32 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
673 String stationMake = ""; 659 String stationMake = "";
674 660
675 if(stationMakeStr.equals("E")) { 661 if(stationMakeStr.equals("E")) {
676 -  
677 stationMake = "\t2"; 662 stationMake = "\t2";
678 -  
679 }else { 663 }else {
680 -  
681 stationMake ="\t1"; 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 stationNo = "\t" + stationNo; 671 stationNo = "\t" + stationNo;
689 672
690 // 站点编码 673 // 站点编码
691 String stationCode = objects.get(i)[5].equals("") ? "" : objects.get(i)[5].toString(); 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 stationCode = "\t" +stationCode; 688 stationCode = "\t" +stationCode;
694 689
695 double dis = objects.get(i)[6]==null ? 0.0 : Double.parseDouble(objects.get(i)[6].toString())*1000; 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,41 +704,33 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
709 704
710 // 限速 705 // 限速
711 String sleepStr = ""; 706 String sleepStr = "";
712 -  
713 // 方向 707 // 方向
714 int directions = objects.get(i)[8]==null ? null : Integer.valueOf(objects.get(i)[8].toString()); 708 int directions = objects.get(i)[8]==null ? null : Integer.valueOf(objects.get(i)[8].toString());
715 -  
716 /** 获取路段路由信息 @pararm:<lineId:线路ID;directions:方向> */ 709 /** 获取路段路由信息 @pararm:<lineId:线路ID;directions:方向> */
717 List<Object[]> sobje = routeRepository.sectionRouteVector(lineId,directions); 710 List<Object[]> sobje = routeRepository.sectionRouteVector(lineId,directions);
718 -  
719 if(sobje.size()==1) { 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 }else if(sobje.size()>1){ 714 }else if(sobje.size()>1){
726 -  
727 - /** 这里暂时只根据站点名称去匹配所在路段的限速值 ,如果路段名称"至"之前的地名与站点名称等同,就认为站点在路段上。 */  
728 for(int j =0;j<sobje.size();j++) { 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 stationRStr = stationRStr + lng + lat + stationMake + stationNo + stationCode + staitondistance + sleepStr + stationName + enterStr; 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,9 +749,12 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
762 for(int i = 0; i<objects.size();i++) { 749 for(int i = 0; i<objects.size();i++) {
763 if(Integer.valueOf(objects.get(i)[8].toString())==0) { 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 lat = "\t" + lat; 758 lat = "\t" + lat;
769 // 站点类型 759 // 站点类型
770 String stationMakeStr = objects.get(i)[3].equals("") ? "" : objects.get(i)[3].toString(); 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,6 +769,17 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
779 String stationNo = "\t" + xh; 769 String stationNo = "\t" + xh;
780 // 站点编码 770 // 站点编码
781 String stationCode = objects.get(i)[5].equals("") ? "" : objects.get(i)[5].toString(); 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 stationCode = "\t" +stationCode; 783 stationCode = "\t" +stationCode;
783 double dis = objects.get(i)[6]==null ? 0.0 : Double.parseDouble(objects.get(i)[6].toString())*1000; 784 double dis = objects.get(i)[6]==null ? 0.0 : Double.parseDouble(objects.get(i)[6].toString())*1000;
784 String tempDistc = String.valueOf((int) dis); 785 String tempDistc = String.valueOf((int) dis);
@@ -794,20 +795,28 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -794,20 +795,28 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
794 /** 获取路段路由信息 @pararm:<lineId:线路ID;directions:方向> */ 795 /** 获取路段路由信息 @pararm:<lineId:线路ID;directions:方向> */
795 List<Object[]> sobje = routeRepository.sectionRouteVector(lineId,directions); 796 List<Object[]> sobje = routeRepository.sectionRouteVector(lineId,directions);
796 if(sobje.size()==1) { 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 }else if(sobje.size()>1){ 800 }else if(sobje.size()>1){
800 - /** 这里暂时只根据站点名称去匹配所在路段的限速值 ,如果路段名称"至"之前的地名与站点名称等同,就认为站点在路段上。 */  
801 for(int j =0;j<sobje.size();j++) { 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 xh++; 820 xh++;
812 restStr = restStr + lng + lat + stationMake + stationNo + stationCode + staitondistance + sleepStr + stationName + enterStr; 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,14 +289,20 @@
289 </div> 289 </div>
290 <!-- 线路规划类型 (* 必填项) END --> 290 <!-- 线路规划类型 (* 必填项) END -->
291 291
292 - <!-- 开辟日期 START --> 292 + <!--大间隔等级 START -->
293 <div class="col-md-6"> 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 <div class="col-md-4"> 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 </div> 303 </div>
298 </div> 304 </div>
299 - <!-- 开辟日期 END --> 305 + <!-- 大间隔等级END -->
300 </div> 306 </div>
301 <!-- 表单分组组件 form-group START --> 307 <!-- 表单分组组件 form-group START -->
302 308
@@ -398,6 +404,15 @@ @@ -398,6 +404,15 @@
398 </div> 404 </div>
399 </div> 405 </div>
400 <!-- 空调车辆数 END --> 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 </div> 416 </div>
402 <!-- 表单分组组件 form-group END --> 417 <!-- 表单分组组件 form-group END -->
403 418
src/main/resources/static/pages/base/line/details.html
@@ -282,14 +282,20 @@ @@ -282,14 +282,20 @@
282 </div> 282 </div>
283 <!-- 线路规划类型 (* 必填项) END --> 283 <!-- 线路规划类型 (* 必填项) END -->
284 284
285 - <!-- 开辟日期 START --> 285 + <!--大间隔等级 START -->
286 <div class="col-md-6"> 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 <div class="col-md-4"> 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 </div> 296 </div>
291 </div> 297 </div>
292 - <!-- 开辟日期 END --> 298 + <!-- 大间隔等级END -->
293 </div> 299 </div>
294 <!-- 表单分组组件 form-group START --> 300 <!-- 表单分组组件 form-group START -->
295 301
@@ -391,6 +397,15 @@ @@ -391,6 +397,15 @@
391 </div> 397 </div>
392 </div> 398 </div>
393 <!-- 空调车辆数 END --> 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 </div> 409 </div>
395 <!-- 表单分组组件 form-group END --> 410 <!-- 表单分组组件 form-group END -->
396 411
src/main/resources/static/pages/base/line/edit.html
@@ -290,14 +290,20 @@ @@ -290,14 +290,20 @@
290 </div> 290 </div>
291 <!-- 线路规划类型 (* 必填项) END --> 291 <!-- 线路规划类型 (* 必填项) END -->
292 292
293 - <!-- 开辟日期 START --> 293 + <!--大间隔等级 START -->
294 <div class="col-md-6"> 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 <div class="col-md-4"> 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 </div> 304 </div>
299 </div> 305 </div>
300 - <!-- 开辟日期 END --> 306 + <!-- 大间隔等级END -->
301 </div> 307 </div>
302 <!-- 表单分组组件 form-group START --> 308 <!-- 表单分组组件 form-group START -->
303 309
@@ -399,6 +405,15 @@ @@ -399,6 +405,15 @@
399 </div> 405 </div>
400 </div> 406 </div>
401 <!-- 空调车辆数 END --> 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 </div> 417 </div>
403 <!-- 表单分组组件 form-group END --> 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,15 +100,16 @@ $(&#39;#tzbc_mobal&#39;).on(&#39;tzbcMobal.show&#39;, function(e,obj,cardata,bf){
100 submitHandler : function(f) { 100 submitHandler : function(f) {
101 // 1、 获取表单内容,并序列化 101 // 1、 获取表单内容,并序列化
102 var params = form.serializeJSON(); 102 var params = form.serializeJSON();
  103 + var dataMap = obj.configuration.dataMap;
103 // 2、 调整路牌对应的班次总数 104 // 2、 调整路牌对应的班次总数
104 updFormParams(params); 105 updFormParams(params);
105 // 3、调整班次.并重新给定班次序号和发车序号.再确定首末班车时间.最后渲染数据 106 // 3、调整班次.并重新给定班次序号和发车序号.再确定首末班车时间.最后渲染数据
106 - obj.data(bf.tzsmbcsj(bf.setbcsAndfcno(tzbcDate()), 107 + obj.data(bf.tzsmbcsj01(bf.setbcsAndfcno(tzbcDate()),
107 obj.configuration.dataMap.smbcsjArr, 108 obj.configuration.dataMap.smbcsjArr,
108 obj.configuration.dataMap.ccsjArr, 109 obj.configuration.dataMap.ccsjArr,
109 obj.configuration.dataMap.cclcArr, 110 obj.configuration.dataMap.cclcArr,
110 obj.configuration.dataMap.qdzArr, 111 obj.configuration.dataMap.qdzArr,
111 - obj.configuration.dataMap.lbsj)); 112 + obj.configuration.dataMap.lbsj,dataMap));
112 // 3、记录早操.并保存历史班次数据 113 // 3、记录早操.并保存历史班次数据
113 obj.addHistory(); 114 obj.addHistory();
114 // 5、隐藏错误提示 115 // 5、隐藏错误提示
@@ -232,7 +233,6 @@ $(&#39;#tzbc_mobal&#39;).on(&#39;tzbcMobal.show&#39;, function(e,obj,cardata,bf){ @@ -232,7 +233,6 @@ $(&#39;#tzbc_mobal&#39;).on(&#39;tzbcMobal.show&#39;, function(e,obj,cardata,bf){
232 * @return 233 * @return
233 */ 234 */
234 function jsjclc(st,ar,pa,sjstr,fcno_,tempS,fxdm) { 235 function jsjclc(st,ar,pa,sjstr,fcno_,tempS,fxdm) {
235 - console.log('{' + tempS + '......}')  
236 // 1、修改进出场班次. 236 // 1、修改进出场班次.
237 for(var p = 0;p<pa.length;p++) { 237 for(var p = 0;p<pa.length;p++) {
238 // A)、如果当前班次的发车时间等于 在没有调整班次总数之前的最后一个班次的到达时间,则这个班次是在没有调整班次之前的那个进场班次 238 // A)、如果当前班次的发车时间等于 在没有调整班次总数之前的最后一个班次的到达时间,则这个班次是在没有调整班次之前的那个进场班次
src/main/resources/static/pages/base/timesmodel/js/add-form-reload.js
@@ -46,7 +46,8 @@ @@ -46,7 +46,8 @@
46 obj.jhlc = d[i].jhlc;// 计划里程 46 obj.jhlc = d[i].jhlc;// 计划里程
47 obj.lp = d[i].lp==null ? null : d[i].lp.id;// 路牌id 47 obj.lp = d[i].lp==null ? null : d[i].lp.id;// 路牌id
48 obj.lpType = d[i].lp==null ? null : d[i].lp.lpType;// 路牌类型 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 obj.lpNo = d[i].lp.lpNo;// 路牌编码 51 obj.lpNo = d[i].lp.lpNo;// 路牌编码
51 obj.tcc = d[i].tcc==null ? null : d[i].tcc.id;// 停车场id 52 obj.tcc = d[i].tcc==null ? null : d[i].tcc.id;// 停车场id
52 obj.ttinfo = d[i].ttinfo==null ? null : d[i].ttinfo.id;// 时刻表id 53 obj.ttinfo = d[i].ttinfo==null ? null : d[i].ttinfo.id;// 时刻表id
@@ -60,7 +61,7 @@ @@ -60,7 +61,7 @@
60 resultD.push(obj); 61 resultD.push(obj);
61 if(lpA.indexOf(obj.lpNo)<0) { 62 if(lpA.indexOf(obj.lpNo)<0) {
62 lpA.push(obj.lpNo); 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,7 +407,9 @@ var SKBFormWizard = function() {
407 obj.jhlc = d[i].jhlc;// 计划里程 407 obj.jhlc = d[i].jhlc;// 计划里程
408 obj.lp = d[i].lp==null ? null : d[i].lp.id;// 路牌id 408 obj.lp = d[i].lp==null ? null : d[i].lp.id;// 路牌id
409 obj.lpType = d[i].lp==null ? null : d[i].lp.lpType;// 路牌类型 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 obj.lpNo = d[i].lp.lpNo;// 路牌编码 413 obj.lpNo = d[i].lp.lpNo;// 路牌编码
412 obj.tcc = d[i].tcc==null ? null : d[i].tcc.id;// 停车场id 414 obj.tcc = d[i].tcc==null ? null : d[i].tcc.id;// 停车场id
413 obj.ttinfo = d[i].ttinfo==null ? null : d[i].ttinfo.id;// 时刻表id 415 obj.ttinfo = d[i].ttinfo==null ? null : d[i].ttinfo.id;// 时刻表id
@@ -421,7 +423,7 @@ var SKBFormWizard = function() { @@ -421,7 +423,7 @@ var SKBFormWizard = function() {
421 resultD.push(obj); 423 resultD.push(obj);
422 if(lpA.indexOf(obj.lpNo)<0) { 424 if(lpA.indexOf(obj.lpNo)<0) {
423 lpA.push(obj.lpNo); 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,7 +388,7 @@ var BaseFun = function() {
388 var jar = baseF.tzsmbcsj01( 388 var jar = baseF.tzsmbcsj01(
389 baseF.setbcsAndfcno(baseF.tzsmbcsj01(baseF.setbcsAndfcno(baseF.tzsztest(cara,jar01,dataMap)),dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap)), 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 dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap); 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 for(var r = 0 ; r < bxrcgs.length; r++) { 392 for(var r = 0 ; r < bxrcgs.length; r++) {
393 var lpNo = bxrcgs[r].lpNo; 393 var lpNo = bxrcgs[r].lpNo;
394 var gsv = 0 , bczs = 0; 394 var gsv = 0 , bczs = 0;
@@ -401,14 +401,18 @@ var BaseFun = function() { @@ -401,14 +401,18 @@ var BaseFun = function() {
401 bxrcgs[r].sjgsV = gsv; 401 bxrcgs[r].sjgsV = gsv;
402 bxrcgs[r].bczs = bczs; 402 bxrcgs[r].bczs = bczs;
403 } 403 }
  404 + //debugger;
404 var jar3 = baseF.dqbcsAndgs(bxrcgs,jar,dataMap,cara.length); 405 var jar3 = baseF.dqbcsAndgs(bxrcgs,jar,dataMap,cara.length);
405 - // return {'json':jar3,'bxrcgs':bxrcgs}; 406 + //return {'json':jar3,'bxrcgs':bxrcgs};
406 /*var jar4 = baseF.tzsmbcsj01( 407 /*var jar4 = baseF.tzsmbcsj01(
407 baseF.setbcsAndfcno(baseF.tzsmbcsj01(baseF.setbcsAndfcno(baseF.tzsztest(cara,jar3,dataMap)),dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap)), 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 dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap);*/ 409 dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap);*/
409 var rsjar = baseF.tzsztest(cara,jar3,dataMap); 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 for(var m = 0 ; m < cara.length; m++) { 416 for(var m = 0 ; m < cara.length; m++) {
413 // 获取路牌编号. 417 // 获取路牌编号.
414 var lpNo_ = cara[m].lpNo; 418 var lpNo_ = cara[m].lpNo;
@@ -422,11 +426,63 @@ var BaseFun = function() { @@ -422,11 +426,63 @@ var BaseFun = function() {
422 lpbc_.push(rsjar[x]); 426 lpbc_.push(rsjar[x]);
423 } 427 }
424 } 428 }
  429 + baseF.addcfbc01(lpbc_,dataMap,map);
425 // 按照发车序号顺序排序. 430 // 按照发车序号顺序排序.
426 lpbc_.sort(function(a,b){return a.fcno-b.fcno}); 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 dqbcsAndgs : function(bxrcgs,jar,dataMap,cla) { 488 dqbcsAndgs : function(bxrcgs,jar,dataMap,cla) {
@@ -538,9 +594,11 @@ var BaseFun = function() { @@ -538,9 +594,11 @@ var BaseFun = function() {
538 for(var q = 0 ; q < qbbfbc.length; q++) { 594 for(var q = 0 ; q < qbbfbc.length; q++) {
539 if(q<(qbbfbc.length-1)) 595 if(q<(qbbfbc.length-1))
540 qbbfbc[q].STOPTIME = qbbfbc[q].STOPTIME + vag; 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 var ddsj_ = baseF.getDateTime(qbbfbc[q-1].ARRIVALTIME); 602 var ddsj_ = baseF.getDateTime(qbbfbc[q-1].ARRIVALTIME);
545 ddsj_.setMinutes(ddsj_.getMinutes() + qbbfbc[q-1].STOPTIME); 603 ddsj_.setMinutes(ddsj_.getMinutes() + qbbfbc[q-1].STOPTIME);
546 qbbfbc[q].fcsj = baseF.getTimeStr(ddsj_); 604 qbbfbc[q].fcsj = baseF.getTimeStr(ddsj_);
@@ -616,6 +674,9 @@ var BaseFun = function() { @@ -616,6 +674,9 @@ var BaseFun = function() {
616 var dygbcfcsj = baseF.getDateTime(obj.fcsj); 674 var dygbcfcsj = baseF.getDateTime(obj.fcsj);
617 dygbcfcsj.setMinutes(dygbcfcsj.getMinutes() - dx); 675 dygbcfcsj.setMinutes(dygbcfcsj.getMinutes() - dx);
618 obj.fcsj = baseF.getTimeStr(dygbcfcsj); 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 zhygbcUpd: function(obj,xgOjb,dx) { 682 zhygbcUpd: function(obj,xgOjb,dx) {
@@ -800,7 +861,25 @@ var BaseFun = function() { @@ -800,7 +861,25 @@ var BaseFun = function() {
800 dqbcfcsj,dataMap.ccsjArr[fxdm],car,dataMap.bcTypeArr.out, 861 dqbcfcsj,dataMap.ccsjArr[fxdm],car,dataMap.bcTypeArr.out,
801 dataMap.dira[fxdm],2,dataMap.cclcArr[fxdm],gatps,0,dataMap.qdzArr[fxdm],null,null,0,0));// 出场班次 862 dataMap.dira[fxdm],2,dataMap.cclcArr[fxdm],gatps,0,dataMap.qdzArr[fxdm],null,null,0,0));// 出场班次
802 fcno ++; 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 var fcno_ = dxfno + 2; 883 var fcno_ = dxfno + 2;
805 var qdbcddsj = baseF.getDateTime(bc[b].ARRIVALTIME); 884 var qdbcddsj = baseF.getDateTime(bc[b].ARRIVALTIME);
806 result.push(baseF.getbcObj( 885 result.push(baseF.getbcObj(
@@ -1590,32 +1669,7 @@ var BaseFun = function() { @@ -1590,32 +1669,7 @@ var BaseFun = function() {
1590 {'type':'无工休', 'hoursV':5.43, 'minueV':'5:43'}]; 1669 {'type':'无工休', 'hoursV':5.43, 'minueV':'5:43'}];
1591 }, 1670 },
1592 setbcsAndfcno : function(listA) { 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 var array = new Array(); 1673 var array = new Array();
1620 var len = listA.length; 1674 var len = listA.length;
1621 for(var i =0;i<len;i++) { 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,7 +647,6 @@ var RelationshipGraph = function () {
647 .ordinal() 647 .ordinal()
648 .domain(this.configuration.lpNameA) 648 .domain(this.configuration.lpNameA)
649 .rangeRoundBands([ 0, this.configuration.height], .1); 649 .rangeRoundBands([ 0, this.configuration.height], .1);
650 -  
651 this.configuration.y = y; 650 this.configuration.y = y;
652 // 创建X轴 651 // 创建X轴
653 var xAxis = d3.svg 652 var xAxis = d3.svg
@@ -733,7 +732,7 @@ var RelationshipGraph = function () { @@ -733,7 +732,7 @@ var RelationshipGraph = function () {
733 yAxisYArray.splice(0,yAxisYArray.length); 732 yAxisYArray.splice(0,yAxisYArray.length);
734 for(var t = 0;t<this.configuration.taskTypes.length;t++) { 733 for(var t = 0;t<this.configuration.taskTypes.length;t++) {
735 yAxisYArray.push({ 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 carname:this.configuration.taskTypes[t].lpName, 736 carname:this.configuration.taskTypes[t].lpName,
738 lpA : this.configuration.taskTypes[t]}); 737 lpA : this.configuration.taskTypes[t]});
739 } 738 }
@@ -2476,9 +2475,11 @@ var RelationshipGraph = function () { @@ -2476,9 +2475,11 @@ var RelationshipGraph = function () {
2476 for(var s = 0 ; s < len ; s++) { 2475 for(var s = 0 ; s < len ; s++) {
2477 var rectNodesAttr = RelationshipGraph.getContextNodeAndData(d3.select(shiftRectA[s]).attr('id')); 2476 var rectNodesAttr = RelationshipGraph.getContextNodeAndData(d3.select(shiftRectA[s]).attr('id'));
2478 if(rectNodesAttr.dqbcData.STOPTIME<0) { 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 for(var t = 0 ; t < rectNodesAttr.dqbctextNodes.length ; t++) { 2484 for(var t = 0 ; t < rectNodesAttr.dqbctextNodes.length ; t++) {
2484 if(d3.select(rectNodesAttr.dqbctextNodes[t]).attr('text-type')=='gap') 2485 if(d3.select(rectNodesAttr.dqbctextNodes[t]).attr('text-type')=='gap')
@@ -2501,6 +2502,7 @@ var RelationshipGraph = function () { @@ -2501,6 +2502,7 @@ var RelationshipGraph = function () {
2501 * 修改下个班次的元素坐标属性值 2502 * 修改下个班次的元素坐标属性值
2502 * 2503 *
2503 * */ 2504 * */
  2505 +
2504 rectNodesAttr.nextbcNode.attr('x',$_x); 2506 rectNodesAttr.nextbcNode.attr('x',$_x);
2505 var rectCover = d3.select(d3.selectAll('rect[parent-node='+ rectNodesAttr.nextbcNodeId + '-cover' +']')[0][0]); 2507 var rectCover = d3.select(d3.selectAll('rect[parent-node='+ rectNodesAttr.nextbcNodeId + '-cover' +']')[0][0]);
2506 rectCover.attr('x',$_x); 2508 rectCover.attr('x',$_x);
@@ -2996,7 +2998,7 @@ var RelationshipGraph = function () { @@ -2996,7 +2998,7 @@ var RelationshipGraph = function () {
2996 nowDate.setMinutes(parseInt(tm.min)+d.bcsj);// 10.3.1、设置分钟. 2998 nowDate.setMinutes(parseInt(tm.min)+d.bcsj);// 10.3.1、设置分钟.
2997 // 9.1.4、修改当前班次的到达时间. 2999 // 9.1.4、修改当前班次的到达时间.
2998 d.ARRIVALTIME = BaseFun.getTimeStr(nowDate); 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 * 9.2、修改元素沿X轴方向的X坐标属性值. 3003 * 9.2、修改元素沿X轴方向的X坐标属性值.
3002 * 3004 *
@@ -3017,6 +3019,8 @@ var RelationshipGraph = function () { @@ -3017,6 +3019,8 @@ var RelationshipGraph = function () {
3017 } 3019 }
3018 /****************************************** update 当前的班次数据以及相关元素对象属性值. END ************************************/ 3020 /****************************************** update 当前的班次数据以及相关元素对象属性值. END ************************************/
3019 3021
  3022 + //console.log(nodeContext);
  3023 + //debugger;
3020 // 10、计算与上个班次的停站时间. 3024 // 10、计算与上个班次的停站时间.
3021 var dxMinues = parseInt((BaseFun.getDateTime(d.fcsj) - BaseFun.getDateTime(nodeContext.lastData.ARRIVALTIME)) / 60000); 3025 var dxMinues = parseInt((BaseFun.getDateTime(d.fcsj) - BaseFun.getDateTime(nodeContext.lastData.ARRIVALTIME)) / 60000);
3022 3026
@@ -3163,7 +3167,8 @@ var RelationshipGraph = function () { @@ -3163,7 +3167,8 @@ var RelationshipGraph = function () {
3163 **/ 3167 **/
3164 var _obj = RelationshipGraph.getContextNodeAndData(d3.select(this).attr('parent-node').replace('-cover','')); 3168 var _obj = RelationshipGraph.getContextNodeAndData(d3.select(this).attr('parent-node').replace('-cover',''));
3165 // 1.3、定义最小停站间隙. 3169 // 1.3、定义最小停站间隙.
3166 - var minSoptTime = $_GlobalGraph.configuration.dataMap.minztjx; 3170 + // var minSoptTime = $_GlobalGraph.configuration.dataMap.minztjx;
  3171 + var minSoptTime = 0;
3167 // 1.4、创建当前时间对象. 3172 // 1.4、创建当前时间对象.
3168 var $_date = new Date(); 3173 var $_date = new Date();
3169 // 1.5、判断 如果当前班次的停站时间小于零,则修改成最小停站时间. 3174 // 1.5、判断 如果当前班次的停站时间小于零,则修改成最小停站时间.
src/main/resources/static/pages/base/timesmodel/js/gantt.js
@@ -70,8 +70,28 @@ @@ -70,8 +70,28 @@
70 }else { 70 }else {
71 var jsonA = JSON.parse(objD); 71 var jsonA = JSON.parse(objD);
72 // 使用已有的时刻表明细数据渲染视图. 72 // 使用已有的时刻表明细数据渲染视图.
73 - data = {'json':jsonA.rsD,'bxrcgs':null}; 73 + // data = {'json':jsonA.rsD,'bxrcgs':null};
74 CSMap = {'gattA':null,'stopSpace': Math.round(map.zzsj/map.clzs),'maxCar':jsonA.rsLP}; 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 var graph = d3.select('#ganttSvg').relationshipGraph( 97 var graph = d3.select('#ganttSvg').relationshipGraph(
@@ -401,6 +421,7 @@ @@ -401,6 +421,7 @@
401 var hours=Math.floor(leave1/(3600*1000)); 421 var hours=Math.floor(leave1/(3600*1000));
402 DXHOURS = days*24+hours; 422 DXHOURS = days*24+hours;
403 WIDTH = DXHOURS*MINUTE*MULTIPLE; 423 WIDTH = DXHOURS*MINUTE*MULTIPLE;
  424 + // debugger;
404 var lpsplitA = getylp(p.yAxisCarArray); 425 var lpsplitA = getylp(p.yAxisCarArray);
405 var args = { 426 var args = {
406 'valueKeyName': VALUEKEYNAME, 427 'valueKeyName': VALUEKEYNAME,