Commit 07ac546924789e840ba856a50d98ef10c73183c9
Merge branch 'minhang' into pudong
Showing
13 changed files
with
281 additions
and
133 deletions
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<SectionRoute, Int | @@ -159,11 +159,11 @@ public interface SectionRouteRepository extends BaseRepository<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<StationRoute, Int | @@ -153,7 +153,7 @@ public interface StationRouteRepository extends BaseRepository<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<StationRoute, Integ | @@ -511,57 +512,38 @@ public class StationRouteServiceImpl extends BaseServiceImpl<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<StationRoute, Integ | @@ -575,6 +557,12 @@ public class StationRouteServiceImpl extends BaseServiceImpl<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<StationRoute, Integ | @@ -645,25 +633,23 @@ public class StationRouteServiceImpl extends BaseServiceImpl<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<StationRoute, Integ | @@ -673,23 +659,32 @@ public class StationRouteServiceImpl extends BaseServiceImpl<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<StationRoute, Integ | @@ -709,41 +704,33 @@ public class StationRouteServiceImpl extends BaseServiceImpl<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<StationRoute, Integ | @@ -762,9 +749,12 @@ public class StationRouteServiceImpl extends BaseServiceImpl<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<StationRoute, Integ | @@ -779,6 +769,17 @@ public class StationRouteServiceImpl extends BaseServiceImpl<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<StationRoute, Integ | @@ -794,20 +795,28 @@ public class StationRouteServiceImpl extends BaseServiceImpl<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"> 开辟日期 : </label> | 294 | + <label class="control-label col-md-5"> 大间隔等级 : </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"> 开辟日期 : </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"> 开辟日期 : </label> | 287 | + <label class="control-label col-md-5"> 大间隔等级 : </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"> 开辟日期 : </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"> 开辟日期 : </label> | 295 | + <label class="control-label col-md-5"> 大间隔等级 : </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"> 开辟日期 : </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 @@ $('#tzbc_mobal').on('tzbcMobal.show', function(e,obj,cardata,bf){ | @@ -100,15 +100,16 @@ $('#tzbc_mobal').on('tzbcMobal.show', 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 @@ $('#tzbc_mobal').on('tzbcMobal.show', function(e,obj,cardata,bf){ | @@ -232,7 +233,6 @@ $('#tzbc_mobal').on('tzbcMobal.show', 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, |