Commit 9145e31250c19efa4ae89a4156add0743e3866a5

Authored by 王通
2 parents 5e9b7813 75547575

1.merge lggj

src/main/java/com/bsth/entity/LsStationRoute.java
@@ -46,7 +46,7 @@ public class LsStationRoute { @@ -46,7 +46,7 @@ public class LsStationRoute {
46 private String stationCode; 46 private String stationCode;
47 47
48 // 站点名称 48 // 站点名称
49 - private String stationName; 49 + private String stationName;
50 // 站点名称 50 // 站点名称
51 private String stationNameEn; 51 private String stationNameEn;
52 52
src/main/java/com/bsth/entity/Station.java
@@ -5,13 +5,8 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -5,13 +5,8 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
5 import org.geolatte.geom.Point; 5 import org.geolatte.geom.Point;
6 import org.hibernate.annotations.DynamicInsert; 6 import org.hibernate.annotations.DynamicInsert;
7 import org.hibernate.annotations.DynamicUpdate; 7 import org.hibernate.annotations.DynamicUpdate;
8 -import org.hibernate.annotations.Formula;  
9 -import org.locationtech.jts.geom.Geometry;  
10 -import org.locationtech.jts.io.WKBReader;  
11 -import org.springframework.util.StringUtils;  
12 8
13 import javax.persistence.*; 9 import javax.persistence.*;
14 -  
15 import java.util.Date; 10 import java.util.Date;
16 11
17 /** 12 /**
src/main/java/com/bsth/entity/StationRoute.java
1 package com.bsth.entity; 1 package com.bsth.entity;
2 2
3 -import com.bsth.util.Geo.Point;  
4 import com.fasterxml.jackson.annotation.JsonIgnore; 3 import com.fasterxml.jackson.annotation.JsonIgnore;
5 import org.geolatte.geom.Polygon; 4 import org.geolatte.geom.Polygon;
6 5
7 import javax.persistence.*; 6 import javax.persistence.*;
8 import java.util.Date; 7 import java.util.Date;
9 -import java.util.List;  
10 8
11 /** 9 /**
12 * 10 *
src/main/java/com/bsth/repository/SectionRouteRepository.java
@@ -111,8 +111,8 @@ public interface SectionRouteRepository extends BaseRepository<SectionRoute, Int @@ -111,8 +111,8 @@ public interface SectionRouteRepository extends BaseRepository<SectionRoute, Int
111 * @param version 111 * @param version
112 */ 112 */
113 @Modifying 113 @Modifying
114 - @Query(value="delete from SectionRoute sr where sr.line.id = ?1 and sr.versions = ?2")  
115 - void deleteByLineAndVersion(Integer lineId, Integer version); 114 + @Query(value="delete from SectionRoute sr where sr.line.id = ?1")
  115 + void deleteByLineAndVersion(Integer lineId);
116 116
117 /** 117 /**
118 * 历史路由表变更之后从历史表批量更新当前版本至当前表 118 * 历史路由表变更之后从历史表批量更新当前版本至当前表
src/main/java/com/bsth/repository/StationRouteRepository.java
@@ -213,8 +213,8 @@ public interface StationRouteRepository extends BaseRepository<StationRoute, Int @@ -213,8 +213,8 @@ public interface StationRouteRepository extends BaseRepository<StationRoute, Int
213 * @param version 213 * @param version
214 */ 214 */
215 @Modifying 215 @Modifying
216 - @Query(value="delete from StationRoute sr where sr.line.id = ?1 and sr.versions = ?2")  
217 - void deleteByLineAndVersion(Integer lineId, Integer version); 216 + @Query(value="delete from StationRoute sr where sr.line.id = ?1")
  217 + void deleteByLineAndVersion(Integer lineId);
218 218
219 /** 219 /**
220 * 历史路由表变更之后从历史表批量更新当前版本至当前表 220 * 历史路由表变更之后从历史表批量更新当前版本至当前表
@@ -224,4 +224,4 @@ public interface StationRouteRepository extends BaseRepository<StationRoute, Int @@ -224,4 +224,4 @@ public interface StationRouteRepository extends BaseRepository<StationRoute, Int
224 @Modifying 224 @Modifying
225 @Query(value="insert into bsth_c_stationroute select * from bsth_c_ls_stationroute where line = ?1 and versions = ?2", nativeQuery = true) 225 @Query(value="insert into bsth_c_stationroute select * from bsth_c_ls_stationroute where line = ?1 and versions = ?2", nativeQuery = true)
226 void updateFromHistory(Integer lineId, Integer version); 226 void updateFromHistory(Integer lineId, Integer version);
227 -} 227 -}
  228 +}
228 \ No newline at end of file 229 \ No newline at end of file
src/main/java/com/bsth/service/impl/LineVersionsServiceImpl.java
@@ -123,9 +123,9 @@ public class LineVersionsServiceImpl extends BaseServiceImpl<LineVersions, Integ @@ -123,9 +123,9 @@ public class LineVersionsServiceImpl extends BaseServiceImpl<LineVersions, Integ
123 String lineCode = lineVersions.getLineCode(); 123 String lineCode = lineVersions.getLineCode();
124 Integer versions = lineVersions.getVersions(); 124 Integer versions = lineVersions.getVersions();
125 125
126 - stationRouteRepository.deleteByLineAndVersion(lineId, versions); 126 + stationRouteRepository.deleteByLineAndVersion(lineId);
127 stationRouteRepository.updateFromHistory(lineId, versions); 127 stationRouteRepository.updateFromHistory(lineId, versions);
128 - sectionRouteRepository.deleteByLineAndVersion(lineId, versions); 128 + sectionRouteRepository.deleteByLineAndVersion(lineId);
129 sectionRouteRepository.updateFromHistory(lineId, versions); 129 sectionRouteRepository.updateFromHistory(lineId, versions);
130 // 更新线路版本 130 // 更新线路版本
131 repository.updateOdlVersions(lineId, lineCode); 131 repository.updateOdlVersions(lineId, lineCode);
src/main/java/com/bsth/service/impl/LsSectionRouteServiceImpl.java
@@ -3,12 +3,7 @@ package com.bsth.service.impl; @@ -3,12 +3,7 @@ package com.bsth.service.impl;
3 import com.bsth.entity.*; 3 import com.bsth.entity.*;
4 import com.bsth.repository.*; 4 import com.bsth.repository.*;
5 import com.bsth.service.LsSectionRouteService; 5 import com.bsth.service.LsSectionRouteService;
6 -import com.bsth.util.CoordinateConverter;  
7 import com.bsth.util.CustomBeanUtils; 6 import com.bsth.util.CustomBeanUtils;
8 -import com.bsth.util.GeoConverter;  
9 -import org.geolatte.geom.Point;  
10 -import org.geolatte.geom.Polygon;  
11 -import org.geolatte.geom.codec.Wkt;  
12 import org.springframework.beans.factory.annotation.Autowired; 7 import org.springframework.beans.factory.annotation.Autowired;
13 import org.springframework.stereotype.Service; 8 import org.springframework.stereotype.Service;
14 import org.springframework.transaction.annotation.Transactional; 9 import org.springframework.transaction.annotation.Transactional;
@@ -116,7 +111,7 @@ public class LsSectionRouteServiceImpl extends BaseServiceImpl<LsSectionRoute, I @@ -116,7 +111,7 @@ public class LsSectionRouteServiceImpl extends BaseServiceImpl<LsSectionRoute, I
116 } 111 }
117 112
118 protected void refreshCurrent(int lineId, int version) { 113 protected void refreshCurrent(int lineId, int version) {
119 - sectionRouteRepository.deleteByLineAndVersion(lineId, version); 114 + sectionRouteRepository.deleteByLineAndVersion(lineId);
120 sectionRouteRepository.updateFromHistory(lineId, version); 115 sectionRouteRepository.updateFromHistory(lineId, version);
121 } 116 }
122 } 117 }
123 \ No newline at end of file 118 \ No newline at end of file
src/main/java/com/bsth/service/impl/LsStationRouteServiceImpl.java
@@ -9,8 +9,6 @@ import com.bsth.util.CustomBeanUtils; @@ -9,8 +9,6 @@ import com.bsth.util.CustomBeanUtils;
9 import com.bsth.util.Geo.GeoUtils; 9 import com.bsth.util.Geo.GeoUtils;
10 import com.bsth.util.Geo.Point; 10 import com.bsth.util.Geo.Point;
11 import com.bsth.util.GeoConverter; 11 import com.bsth.util.GeoConverter;
12 -import com.fasterxml.jackson.core.JsonProcessingException;  
13 -import com.fasterxml.jackson.databind.ObjectMapper;  
14 import org.geolatte.geom.LineString; 12 import org.geolatte.geom.LineString;
15 import org.geolatte.geom.Polygon; 13 import org.geolatte.geom.Polygon;
16 import org.geolatte.geom.Position; 14 import org.geolatte.geom.Position;
@@ -445,7 +443,7 @@ public class LsStationRouteServiceImpl extends BaseServiceImpl<LsStationRoute, I @@ -445,7 +443,7 @@ public class LsStationRouteServiceImpl extends BaseServiceImpl<LsStationRoute, I
445 } 443 }
446 444
447 protected void refreshCurrent(int lineId, int version) { 445 protected void refreshCurrent(int lineId, int version) {
448 - stationRouteRepository.deleteByLineAndVersion(lineId, version); 446 + stationRouteRepository.deleteByLineAndVersion(lineId);
449 stationRouteRepository.updateFromHistory(lineId, version); 447 stationRouteRepository.updateFromHistory(lineId, version);
450 } 448 }
451 } 449 }
src/main/java/com/bsth/service/impl/StationRouteServiceImpl.java
@@ -630,10 +630,10 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ @@ -630,10 +630,10 @@ public class StationRouteServiceImpl extends BaseServiceImpl<StationRoute, Integ
630 Integer lineId = map.get("lineId").equals("") ? 0 : Integer.parseInt(map.get("lineId").toString()); 630 Integer lineId = map.get("lineId").equals("") ? 0 : Integer.parseInt(map.get("lineId").toString());
631 /** 查询线路信息 @param:<lineId:线路ID> */ 631 /** 查询线路信息 @param:<lineId:线路ID> */
632 Line line = lineRepository.findById(lineId).get(); 632 Line line = lineRepository.findById(lineId).get();
633 -  
634 - 633 +
  634 +
635 Business company = businessRepository.findByBusinessCode(line.getCompany()).get(0); 635 Business company = businessRepository.findByBusinessCode(line.getCompany()).get(0);
636 - 636 +
637 Integer fileVersions = lineRepository.findfileVersions(lineId); 637 Integer fileVersions = lineRepository.findfileVersions(lineId);
638 if(fileVersions == null) { 638 if(fileVersions == null) {
639 lineRepository.addFileVersions(line.getId(), line.getLineCode()); 639 lineRepository.addFileVersions(line.getId(), line.getLineCode());
@@ -677,7 +677,7 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -677,7 +677,7 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
677 textStr = newTextFileToFTP(objects,lineId);/** 双向行单文件内容 @param:<objects:站点路由;lineId:线路ID>*/ 677 textStr = newTextFileToFTP(objects,lineId);/** 双向行单文件内容 @param:<objects:站点路由;lineId:线路ID>*/
678 else 678 else
679 resultMap.put("status","NOLinePlayType");// 线路无线路规划类型 679 resultMap.put("status","NOLinePlayType");// 线路无线路规划类型
680 - 680 +
681 textStr = line.getName() + " " + fileVersions + "\r\n" + textStr; 681 textStr = line.getName() + " " + fileVersions + "\r\n" + textStr;
682 InputStream input = new ByteArrayInputStream(textStr.getBytes("gbk")); 682 InputStream input = new ByteArrayInputStream(textStr.getBytes("gbk"));
683 /** 生成txt文件,上传ftp */ 683 /** 生成txt文件,上传ftp */
@@ -693,28 +693,28 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -693,28 +693,28 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
693 // 删除文件 693 // 删除文件
694 textFile.delete(); 694 textFile.delete();
695 targetFile.delete(); 695 targetFile.delete();
696 - 696 +
697 697
698 textStr = newTextVoiceFileToFTP(objects,lineId); 698 textStr = newTextVoiceFileToFTP(objects,lineId);
699 - 699 +
700 String lineName = line.getName(); 700 String lineName = line.getName();
701 - 701 +
702 try { 702 try {
703 lineName = Integer.parseInt(line.getName().replace("路", "")) + ""; 703 lineName = Integer.parseInt(line.getName().replace("路", "")) + "";
704 } catch (Exception e) { 704 } catch (Exception e) {
705 } 705 }
706 - 706 +
707 String head = lineName + " " + fileVersions + " " + line.getStartStationFirstTime() + "-" + line.getStartStationEndTime() + " " + line.getEndStationFirstTime() + "-" + line.getEndStationEndTime() + " " + line.getTicketPrice() + " " + company.getBusinessName() + " " + (company.getPhoneNum()== null ? "-" : company.getPhoneNum()); 707 String head = lineName + " " + fileVersions + " " + line.getStartStationFirstTime() + "-" + line.getStartStationEndTime() + " " + line.getEndStationFirstTime() + "-" + line.getEndStationEndTime() + " " + line.getTicketPrice() + " " + company.getBusinessName() + " " + (company.getPhoneNum()== null ? "-" : company.getPhoneNum());
708 - 708 +
709 textStr = head +"\r\n" + textStr; 709 textStr = head +"\r\n" + textStr;
710 710
711 input = new ByteArrayInputStream(textStr.getBytes("gbk")); 711 input = new ByteArrayInputStream(textStr.getBytes("gbk"));
712 - 712 +
713 clientUtils.uploadFile(url, port, username, password, remotePath + "/voice/", textFileName, input); 713 clientUtils.uploadFile(url, port, username, password, remotePath + "/voice/", textFileName, input);
714 714
715 // textFile.delete(); 715 // textFile.delete();
716 -  
717 - 716 +
  717 +
718 resultMap.put("status", ResponseCode.SUCCESS); 718 resultMap.put("status", ResponseCode.SUCCESS);
719 }else { 719 }else {
720 resultMap.put("status","NOTDATA"); 720 resultMap.put("status","NOTDATA");
@@ -747,7 +747,7 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -747,7 +747,7 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
747 // 返回值String 747 // 返回值String
748 String stationRStr = ""; 748 String stationRStr = "";
749 // windows下的文本文件换行符 749 // windows下的文本文件换行符
750 -// String enterStr = "\r\n"; 750 + //String enterStr = "\r\n";
751 // linux/unix下的文本文件换行符 751 // linux/unix下的文本文件换行符
752 String enterStr = "\r"; 752 String enterStr = "\r";
753 int defaultZdxh = 0; 753 int defaultZdxh = 0;
@@ -972,7 +972,7 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -972,7 +972,7 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
972 public String hxTextFileToFtp(List<Object[]> objects,Integer lineId) { 972 public String hxTextFileToFtp(List<Object[]> objects,Integer lineId) {
973 String restStr = ""; 973 String restStr = "";
974 // windows下的文本文件换行符 974 // windows下的文本文件换行符
975 -// String enterStr = "\r\n"; 975 + //String enterStr = "\r\n";
976 // linux/unix下的文本文件换行符 976 // linux/unix下的文本文件换行符
977 String enterStr = "\r"; 977 String enterStr = "\r";
978 int xh = 1 ; 978 int xh = 1 ;
src/main/resources/static/pages/base/line/edit.html
@@ -417,7 +417,7 @@ @@ -417,7 +417,7 @@
417 <div class="col-md-6"> 417 <div class="col-md-6">
418 <label class="control-label col-md-5"> 终点站调度电话: </label> 418 <label class="control-label col-md-5"> 终点站调度电话: </label>
419 <div class="col-md-4"> 419 <div class="col-md-4">
420 - <input type="text" class="form-control" name="endPhone" id="startPhoneInput" 420 + <input type="text" class="form-control" name="endPhone" id="endPhoneInput"
421 placeholder="终点站调度电话"> 421 placeholder="终点站调度电话">
422 </div> 422 </div>
423 </div> 423 </div>
src/main/resources/static/pages/base/line/js/line-add-form.js
1 -/**  
2 - * @description TODO(线路信息添加片段JS模块)  
3 - *  
4 - * @author bsth@lq  
5 - *  
6 - * @date 二〇一六年十月十八日 13:31:58  
7 - *  
8 - */  
9 -  
10 -$(function(){  
11 - /** 获取线路编码 @param cb <回调函数> */  
12 - /*function getLineCode(cb) {  
13 - *//** get请求获取线路编码。返回线路编码值 *//*  
14 - $.get('/line/getLineCode',function(lineCode){  
15 - return cb && cb(lineCode);  
16 - });  
17 - }*/  
18 - /** 填充分公司下拉框选择值 */  
19 - function setbrancheCompanySelectOptions(){  
20 - // 获取公司下拉框选择值  
21 - var businessCode = $('#companySelect').val();  
22 - // 分公司下拉框options属性值  
23 - var options = '<option value="">-- 请选择分公司 --</option>';  
24 - // 如果公司选择为空则分公司为空 ; 否则查询出所属公司下的分公司名称和相应分公司代码  
25 - if(businessCode == null || businessCode ==''){  
26 - // 填充分公司下拉框options  
27 - $('#brancheCompanySelect').html(options);  
28 - } else {  
29 - // 查询出所属公司下的分公司名称和相应分公司代码  
30 - $get('/business/all', {upCode_eq: businessCode}, function(array){  
31 - // 遍历array  
32 - $.each(array, function(i,d){  
33 - options += '<option value="'+d.businessCode+'">'+d.businessName+'</option>';  
34 - });  
35 -  
36 - // 填充分公司下拉框options  
37 - $('#brancheCompanySelect').html(options);  
38 - });  
39 - }  
40 - }  
41 - /** 根据线路名称值设置英文名称值和线路简称 */  
42 - function setPinYin(){  
43 - /** 获取线路名称值 */  
44 - var val = $('#nameInput').val();  
45 - /** 汉字转换为拼音 设置英文名称值 */  
46 - $('#esInput').val(pinyin.getFullChars(val));  
47 - /** 汉字转换为拼音将每一个字的拼音的首字母提取出来并大写 设置线路简称值 */  
48 - $('#shortNameInput').val(pinyin.getCamelChars(val));  
49 - }  
50 -  
51 - /** 获取线路编码元素并设值 @param 匿名函数 *//*  
52 - getLineCode(function(result){  
53 - // 设置线路编码值  
54 - $('#lineCodeInput').val(result);  
55 - })*/  
56 - /** 输入线路名称,自动生成英文名称和线路简称 */  
57 - $('#nameInput').on('keyup', setPinYin);  
58 - /** 开辟日期 日期控件 <format:日期控件时间格式;locale:语言> */  
59 - $('#openDateInput').datetimepicker({format : 'YYYY-MM-DD', locale: 'zh-cn'});  
60 - /** 起始站首班时间 日期控件 <format:日期控件时间格式;locale:语言> */  
61 - $('#startStationFirstTimeInput').datetimepicker({format : 'HH:mm', locale: 'zh-cn'});  
62 - /** 起始站末班时间 日期控件 <format:日期控件时间格式;locale:语言> */  
63 - $('#endTimeInput').datetimepicker({format : 'HH:mm', locale: 'zh-cn'});  
64 - /** 终点站首班时间 日期控件 <format:日期控件时间格式;locale:语言> */  
65 - $('#endStationFirstTimeInput').datetimepicker({format : 'HH:mm', locale: 'zh-cn'});  
66 - /** 终点站末班时间 日期控件 <format:日期控件时间格式;locale:语言> */  
67 - $('#endStationEndTimeInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});  
68 - /** get请求获取公司表数据并填充公司下拉框选择值 */  
69 - $get('/business/all', {upCode_eq: '88'}, function(array){  
70 - /** 公司下拉options属性值 */  
71 - var options = '<option value="">-- 请选择公司 --</option>';  
72 - /** 遍历array */  
73 - $.each(array, function(i,d){  
74 - options += '<option value="'+d.businessCode+'">'+d.businessName+'</option>';  
75 - });  
76 - /** 填充公司下拉框options,并添加公司下拉框值改变事件setbrancheCompanySelectOptions */  
77 - $('#companySelect').html(options).on('change', setbrancheCompanySelectOptions);  
78 - });  
79 -  
80 - /** 填充分公司下拉框 */  
81 - setbrancheCompanySelectOptions();  
82 - // 定义表单  
83 - var form = $('#line_add_form');  
84 - // 定义表单异常  
85 - var error = $('.alert-danger',form);  
86 - // 表单验证  
87 - form.validate({  
88 - // 错误提示元素span对象  
89 - errorElement : 'span',  
90 - // 错误提示元素class名称  
91 - errorClass : 'help-block help-block-error',  
92 - // 验证错误获取焦点  
93 - focusInvalid : true,  
94 - // 需要验证的表单元素  
95 - rules : {  
96 - 'name' : {required : true,maxlength: 30},// 线路名称 必填项、 最大长度.  
97 - 'lineCode' : {required : true,maxlength: 6,digits:true ,isLineCode:true,  
98 - remote:{type: 'GET',  
99 - url: '/line/lineCodeVerification',  
100 - cache:false,  
101 - async:false,  
102 - data:{'lineCode':function(){ return $("#lineCodeInput").val();}}  
103 - }},// 线路编码 必填项、最大长度.  
104 - 'company' : {required : true,maxlength: 30},// 所属公司 必填项、最大长度.  
105 - 'ticketPrice' : {required : true},  
106 - 'brancheCompany' : {required : true,maxlength: 30},// 所属分公司 必填项、最大长度.  
107 - 'level' : {required : true,maxlength: 30},// 线路等级 必填项、最大长度.  
108 - 'nature' : {required : true,maxlength: 30},// 线路性质 必填项、最大长度.  
109 - 'startStationName' : {required : true,maxlength: 30},// 起始站名称 必填项、最大长度.  
110 - 'endStationName' : {required : true,maxlength: 30},// 终点站名称 必填项、最大长度.  
111 - 'startStationFirstTime' : {required : true,maxlength: 30},// 起始站首班时间 必填项、最大长度.  
112 - 'StartStationEndTime' : {required : true,maxlength: 30},// 起始站末班时间 必填项、最大长度.  
113 - 'endStationFirstTime' : {required : true,maxlength: 30},// 终点站首班时间 必填项、最大长度.  
114 - 'endStationEndTime' : {required : true,maxlength: 30},// 终点站末班时间 必填项、最大长度.  
115 - 'linePlayType' : {required : true,maxlength: 30},// 线路规划类型 <0:双向;1:环线> 必填项、最大长度.  
116 - 'openDate' : {date : true,dateISO:true},// 开辟日期 正确格式的日期(日期校验 ie6 出错,慎用。)必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22。只验证格式,不验证有效性。  
117 - 'es' : {maxlength: 30},// 英文名称 最大长度.  
118 - 'shortName' : {maxlength: 30},// 线路简称 最大长度.  
119 - 'shanghaiLinecode' : {maxlength: 30},// 上海市线路编码 最大长度.  
120 - 'eqLinecode' : {maxlength: 30},// 设备线路编码 最大长度.  
121 - 'startPhone' : {number : true,digits : true,isPhone : true,maxlength: 30},// 起始站调度电话 必须输入合法的数字(负数,小数)。必须输入整数。电话号码格式 最大长度  
122 - 'endPhone' : {number : true,digits : true,isPhone : true,maxlength: 30},// 终点站调度电话 必须输入合法的数字(负数,小数)。必须输入整数。电话号码格式 、最大长度  
123 - 'carSumNumber' : {number : true,digits : true,maxlength: 8},// 车辆总数 必须输入合法的数字(负数,小数)。必须输入整数。最大长度.  
124 - 'hvacCarNumber' : {number : true,digits : true,maxlength: 8},// 空调车辆数 必须输入合法的数字(负数,小数)。 必须输入整数。 最大长度.  
125 - 'ordCarNumber' : {number : true,digits : true,maxlength: 8},// 普通车辆数 必须输入合法的数字(负数,小数)。 必须输入整数。最大长度.  
126 - 'history' : {maxlength: 200},// 线路沿革 输入长度最多是 200 的字符串(汉字算一个字符)。  
127 - 'descriptions' : {maxlength: 200},// 描述/说明 输入长度最多是 200 的字符串(汉字算一个字符)。  
128 - 'region' : {required : true}// 线路区域必选  
129 - },  
130 - messages:{  
131 - 'lineCode':{  
132 - remote: '此线路编码已存在!'  
133 - }  
134 - },  
135 - /**  
136 - * 类型:Callback。当未通过验证的表单提交时,可以在该回调函数中处理一些事情。  
137 - *  
138 - * 参数:该回调函数有两个参数:第一个为一个事件对象,第二个为验证器(validator)  
139 - */  
140 - invalidHandler : function(event, validator) {  
141 -  
142 - // 显示表单未通过提示信息  
143 - error.show();  
144 -  
145 - // 把提示信息放到指定的位置。  
146 - App.scrollTo(error, -200);  
147 - },  
148 -  
149 - /**  
150 - * 类型:Callback。  
151 - *  
152 - * 默认:添加errorClass("has-error")到表单元素。将未通过验证的表单元素设置高亮。  
153 - */  
154 - highlight : function(element) {  
155 -  
156 - // 添加errorClass("has-error")到表单元素  
157 - $(element).closest('.form-group').addClass('has-error');  
158 -  
159 - },  
160 -  
161 - /**  
162 - * 类型:Callback。  
163 - *  
164 - * 默认:移除errorClass("has-error")。与highlight操作相反  
165 - */  
166 - unhighlight : function(element) {  
167 -  
168 - // 移除errorClass("has-error")  
169 - $(element).closest('.form-group').removeClass('has-error');  
170 -  
171 - },  
172 -  
173 - /**  
174 - * 类型:String,Callback。  
175 - *  
176 - * 如果指定它,当验证通过时显示一个消息。  
177 - *  
178 - * 如果是String类型的,则添加该样式到标签中;  
179 - *  
180 - * 如果是一个回调函数,则将标签作为其唯一的参数。  
181 - */  
182 - success : function(label) {  
183 -  
184 - // 当验证通过时,移除errorClass("has-error")  
185 - label.closest('.form-group').removeClass('has-error');  
186 -  
187 - },  
188 -  
189 - /**  
190 - * 类型:Callback。  
191 - *  
192 - * 默认:default (native) form submit;当表单通过验证,提交表单。回调函数有个默认参数form  
193 - */  
194 - submitHandler : function(f) {  
195 -  
196 - // 隐藏错误提示  
197 - error.hide();  
198 - // 表单序列化  
199 - var params = form.serializeJSON();  
200 - submit();  
201 -  
202 - // 查询线路编码的顺延号  
203 - /*$get('/line/all', {lineCode_eq: params.lineCode},function(lineCode){  
204 -  
205 - // 定义返回值的长度  
206 - var len = lineCode.length;  
207 -  
208 - // 如果大于零,则已存在录入的线路编码;否则不存在  
209 - if(len > 0) {  
210 -  
211 - // 定义已有的线路编码  
212 - var oldCode = params.lineCode;  
213 -  
214 - // 自动获取线路编码  
215 - getLineCode(function(result) {  
216 -  
217 - // 重新设置提交参数线路编码值  
218 - params.lineCode = result;  
219 -  
220 - // 弹出选择框;确认则提交;取消则返回  
221 - layer.confirm('线路编码【'+oldCode+'】已存在!自动顺延为如下:<br>线路编码:'+result, {  
222 - btn : [ '确认提示并提交', '取消' ]  
223 - }, submit);  
224 -  
225 - });  
226 - layer.open({  
227 - title: '消息提示'  
228 - ,content: '线路编码【'+params.lineCode+'】已存在,请重新输入编码!'  
229 - });  
230 - } else {  
231 -  
232 - // 提交  
233 - submit();  
234 -  
235 - }  
236 - });*/  
237 -  
238 -  
239 - // 提交  
240 - function submit() {  
241 -  
242 - // 防止用户多次提交  
243 - $("#submintBtn").addClass("disabled");  
244 -  
245 - // 添加数据  
246 - $post('/line', params, function(result) {  
247 - // 如果返回结果不为空  
248 - if(result){  
249 -  
250 - // 返回状态码为"SUCCESS" ,则添加成功;返回状态码为"ERROR" ,则添加失败  
251 - if(result.status=='SUCCESS') {  
252 -  
253 - // 弹出添加成功提示消息  
254 - layer.msg('添加成功,并已自动为您生成线路原始版本,可以在线路版本信息下查看!', {time: 7000});  
255 -  
256 - } else if(result.status=='ERROR') {  
257 -  
258 - // 弹出添加失败提示消息  
259 - layer.msg('添加失败...');  
260 -  
261 - }  
262 - }  
263 -  
264 - // 返回list.html页面  
265 - loadPage('list.html');  
266 - });  
267 - }  
268 - }  
269 - });  
270 -  
271 - // 线路编码不能0开头  
272 - $.validator.addMethod("isLineCode", function(value,element) {  
273 - // 线路编码正则表达式  
274 - var lineCode = /^([1-9])/;  
275 - return lineCode.test(value);  
276 - }, "线路编码不能以0开头");  
277 -  
278 - // 联系电话(手机/电话皆可)验证  
279 - $.validator.addMethod("isPhone", function(value,element) {  
280 - // 长度  
281 - var length = value.length;  
282 - // 手机正则表达式  
283 - var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;  
284 - // 固定电话正则表达式  
285 - var tel = /^\d{3,4}-?\d{7,9}$/;  
286 - return this.optional(element) || (tel.test(value) || mobile.test(value));  
287 - }, "请正确填写您的联系电话"); 1 +/**
  2 + * @description TODO(线路信息添加片段JS模块)
  3 + *
  4 + * @author bsth@lq
  5 + *
  6 + * @date 二〇一六年十月十八日 13:31:58
  7 + *
  8 + */
  9 +
  10 +$(function(){
  11 + /** 获取线路编码 @param cb <回调函数> */
  12 + /*function getLineCode(cb) {
  13 + *//** get请求获取线路编码。返回线路编码值 *//*
  14 + $.get('/line/getLineCode',function(lineCode){
  15 + return cb && cb(lineCode);
  16 + });
  17 + }*/
  18 + /** 填充分公司下拉框选择值 */
  19 + function setbrancheCompanySelectOptions(){
  20 + // 获取公司下拉框选择值
  21 + var businessCode = $('#companySelect').val();
  22 + // 分公司下拉框options属性值
  23 + var options = '<option value="">-- 请选择分公司 --</option>';
  24 + // 如果公司选择为空则分公司为空 ; 否则查询出所属公司下的分公司名称和相应分公司代码
  25 + if(businessCode == null || businessCode ==''){
  26 + // 填充分公司下拉框options
  27 + $('#brancheCompanySelect').html(options);
  28 + } else {
  29 + // 查询出所属公司下的分公司名称和相应分公司代码
  30 + $get('/business/all', {upCode_eq: businessCode}, function(array){
  31 + // 遍历array
  32 + $.each(array, function(i,d){
  33 + options += '<option value="'+d.businessCode+'">'+d.businessName+'</option>';
  34 + });
  35 +
  36 + // 填充分公司下拉框options
  37 + $('#brancheCompanySelect').html(options);
  38 + });
  39 + }
  40 + }
  41 + /** 根据线路名称值设置英文名称值和线路简称 */
  42 + function setPinYin(){
  43 + /** 获取线路名称值 */
  44 + var val = $('#nameInput').val();
  45 + /** 汉字转换为拼音 设置英文名称值 */
  46 + $('#esInput').val(pinyin.getFullChars(val));
  47 + /** 汉字转换为拼音将每一个字的拼音的首字母提取出来并大写 设置线路简称值 */
  48 + $('#shortNameInput').val(pinyin.getCamelChars(val));
  49 + }
  50 +
  51 + /** 获取线路编码元素并设值 @param 匿名函数 *//*
  52 + getLineCode(function(result){
  53 + // 设置线路编码值
  54 + $('#lineCodeInput').val(result);
  55 + })*/
  56 + /** 输入线路名称,自动生成英文名称和线路简称 */
  57 + $('#nameInput').on('keyup', setPinYin);
  58 + /** 开辟日期 日期控件 <format:日期控件时间格式;locale:语言> */
  59 + $('#openDateInput').datetimepicker({format : 'YYYY-MM-DD', locale: 'zh-cn'});
  60 + /** 起始站首班时间 日期控件 <format:日期控件时间格式;locale:语言> */
  61 + $('#startStationFirstTimeInput').datetimepicker({format : 'HH:mm', locale: 'zh-cn'});
  62 + /** 起始站末班时间 日期控件 <format:日期控件时间格式;locale:语言> */
  63 + $('#endTimeInput').datetimepicker({format : 'HH:mm', locale: 'zh-cn'});
  64 + /** 终点站首班时间 日期控件 <format:日期控件时间格式;locale:语言> */
  65 + $('#endStationFirstTimeInput').datetimepicker({format : 'HH:mm', locale: 'zh-cn'});
  66 + /** 终点站末班时间 日期控件 <format:日期控件时间格式;locale:语言> */
  67 + $('#endStationEndTimeInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});
  68 + /** get请求获取公司表数据并填充公司下拉框选择值 */
  69 + $get('/business/all', {upCode_eq: '88'}, function(array){
  70 + /** 公司下拉options属性值 */
  71 + var options = '<option value="">-- 请选择公司 --</option>';
  72 + /** 遍历array */
  73 + $.each(array, function(i,d){
  74 + options += '<option value="'+d.businessCode+'">'+d.businessName+'</option>';
  75 + });
  76 + /** 填充公司下拉框options,并添加公司下拉框值改变事件setbrancheCompanySelectOptions */
  77 + $('#companySelect').html(options).on('change', setbrancheCompanySelectOptions);
  78 + });
  79 +
  80 + /** 填充分公司下拉框 */
  81 + setbrancheCompanySelectOptions();
  82 + // 定义表单
  83 + var form = $('#line_add_form');
  84 + // 定义表单异常
  85 + var error = $('.alert-danger',form);
  86 + // 表单验证
  87 + form.validate({
  88 + // 错误提示元素span对象
  89 + errorElement : 'span',
  90 + // 错误提示元素class名称
  91 + errorClass : 'help-block help-block-error',
  92 + // 验证错误获取焦点
  93 + focusInvalid : true,
  94 + // 需要验证的表单元素
  95 + rules : {
  96 + 'name' : {required : true,maxlength: 30},// 线路名称 必填项、 最大长度.
  97 + 'lineCode' : {required : true,maxlength: 6,digits:true ,isLineCode:true,
  98 + remote:{type: 'GET',
  99 + url: '/line/lineCodeVerification',
  100 + cache:false,
  101 + async:false,
  102 + data:{'lineCode':function(){ return $("#lineCodeInput").val();}}
  103 + }},// 线路编码 必填项、最大长度.
  104 + 'company' : {required : true,maxlength: 30},// 所属公司 必填项、最大长度.
  105 + 'brancheCompany' : {required : true,maxlength: 30},// 所属分公司 必填项、最大长度.
  106 + 'level' : {required : true,maxlength: 30},// 线路等级 必填项、最大长度.
  107 + 'nature' : {required : true,maxlength: 30},// 线路性质 必填项、最大长度.
  108 + 'startStationName' : {required : true,maxlength: 30},// 起始站名称 必填项、最大长度.
  109 + 'endStationName' : {required : true,maxlength: 30},// 终点站名称 必填项、最大长度.
  110 + 'startStationFirstTime' : {required : true,maxlength: 30},// 起始站首班时间 必填项、最大长度.
  111 + 'StartStationEndTime' : {required : true,maxlength: 30},// 起始站末班时间 必填项、最大长度.
  112 + 'endStationFirstTime' : {required : true,maxlength: 30},// 终点站首班时间 必填项、最大长度.
  113 + 'endStationEndTime' : {required : true,maxlength: 30},// 终点站末班时间 必填项、最大长度.
  114 + 'linePlayType' : {required : true,maxlength: 30},// 线路规划类型 <0:双向;1:环线> 必填项、最大长度.
  115 + 'openDate' : {date : true,dateISO:true},// 开辟日期 正确格式的日期(日期校验 ie6 出错,慎用。)必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22。只验证格式,不验证有效性。
  116 + 'es' : {maxlength: 30},// 英文名称 最大长度.
  117 + 'shortName' : {maxlength: 30},// 线路简称 最大长度.
  118 + 'shanghaiLinecode' : {maxlength: 30},// 上海市线路编码 最大长度.
  119 + 'eqLinecode' : {maxlength: 30},// 设备线路编码 最大长度.
  120 + 'startPhone' : {number : true,digits : true,isPhone : true,maxlength: 30},// 起始站调度电话 必须输入合法的数字(负数,小数)。必须输入整数。电话号码格式 最大长度
  121 + 'endPhone' : {number : true,digits : true,isPhone : true,maxlength: 30},// 终点站调度电话 必须输入合法的数字(负数,小数)。必须输入整数。电话号码格式 、最大长度
  122 + 'carSumNumber' : {number : true,digits : true,maxlength: 8},// 车辆总数 必须输入合法的数字(负数,小数)。必须输入整数。最大长度.
  123 + 'hvacCarNumber' : {number : true,digits : true,maxlength: 8},// 空调车辆数 必须输入合法的数字(负数,小数)。 必须输入整数。 最大长度.
  124 + 'ordCarNumber' : {number : true,digits : true,maxlength: 8},// 普通车辆数 必须输入合法的数字(负数,小数)。 必须输入整数。最大长度.
  125 + 'history' : {maxlength: 200},// 线路沿革 输入长度最多是 200 的字符串(汉字算一个字符)。
  126 + 'descriptions' : {maxlength: 200},// 描述/说明 输入长度最多是 200 的字符串(汉字算一个字符)。
  127 + 'region' : {required : true}// 线路区域必选
  128 + },
  129 + messages:{
  130 + 'lineCode':{
  131 + remote: '此线路编码已存在!'
  132 + }
  133 + },
  134 + /**
  135 + * 类型:Callback。当未通过验证的表单提交时,可以在该回调函数中处理一些事情。
  136 + *
  137 + * 参数:该回调函数有两个参数:第一个为一个事件对象,第二个为验证器(validator)
  138 + */
  139 + invalidHandler : function(event, validator) {
  140 +
  141 + // 显示表单未通过提示信息
  142 + error.show();
  143 +
  144 + // 把提示信息放到指定的位置。
  145 + App.scrollTo(error, -200);
  146 + },
  147 +
  148 + /**
  149 + * 类型:Callback。
  150 + *
  151 + * 默认:添加errorClass("has-error")到表单元素。将未通过验证的表单元素设置高亮。
  152 + */
  153 + highlight : function(element) {
  154 +
  155 + // 添加errorClass("has-error")到表单元素
  156 + $(element).closest('.form-group').addClass('has-error');
  157 +
  158 + },
  159 +
  160 + /**
  161 + * 类型:Callback。
  162 + *
  163 + * 默认:移除errorClass("has-error")。与highlight操作相反
  164 + */
  165 + unhighlight : function(element) {
  166 +
  167 + // 移除errorClass("has-error")
  168 + $(element).closest('.form-group').removeClass('has-error');
  169 +
  170 + },
  171 +
  172 + /**
  173 + * 类型:String,Callback。
  174 + *
  175 + * 如果指定它,当验证通过时显示一个消息。
  176 + *
  177 + * 如果是String类型的,则添加该样式到标签中;
  178 + *
  179 + * 如果是一个回调函数,则将标签作为其唯一的参数。
  180 + */
  181 + success : function(label) {
  182 +
  183 + // 当验证通过时,移除errorClass("has-error")
  184 + label.closest('.form-group').removeClass('has-error');
  185 +
  186 + },
  187 +
  188 + /**
  189 + * 类型:Callback。
  190 + *
  191 + * 默认:default (native) form submit;当表单通过验证,提交表单。回调函数有个默认参数form
  192 + */
  193 + submitHandler : function(f) {
  194 +
  195 + // 隐藏错误提示
  196 + error.hide();
  197 + // 表单序列化
  198 + var params = form.serializeJSON();
  199 + submit();
  200 +
  201 + // 查询线路编码的顺延号
  202 + /*$get('/line/all', {lineCode_eq: params.lineCode},function(lineCode){
  203 +
  204 + // 定义返回值的长度
  205 + var len = lineCode.length;
  206 +
  207 + // 如果大于零,则已存在录入的线路编码;否则不存在
  208 + if(len > 0) {
  209 +
  210 + // 定义已有的线路编码
  211 + var oldCode = params.lineCode;
  212 +
  213 + // 自动获取线路编码
  214 + getLineCode(function(result) {
  215 +
  216 + // 重新设置提交参数线路编码值
  217 + params.lineCode = result;
  218 +
  219 + // 弹出选择框;确认则提交;取消则返回
  220 + layer.confirm('线路编码【'+oldCode+'】已存在!自动顺延为如下:<br>线路编码:'+result, {
  221 + btn : [ '确认提示并提交', '取消' ]
  222 + }, submit);
  223 +
  224 + });
  225 + layer.open({
  226 + title: '消息提示'
  227 + ,content: '线路编码【'+params.lineCode+'】已存在,请重新输入编码!'
  228 + });
  229 + } else {
  230 +
  231 + // 提交
  232 + submit();
  233 +
  234 + }
  235 + });*/
  236 +
  237 +
  238 + // 提交
  239 + function submit() {
  240 +
  241 + // 防止用户多次提交
  242 + $("#submintBtn").addClass("disabled");
  243 +
  244 + // 添加数据
  245 + $post('/line', params, function(result) {
  246 + // 如果返回结果不为空
  247 + if(result){
  248 +
  249 + // 返回状态码为"SUCCESS" ,则添加成功;返回状态码为"ERROR" ,则添加失败
  250 + if(result.status=='SUCCESS') {
  251 +
  252 + // 弹出添加成功提示消息
  253 + layer.msg('添加成功,并已自动为您生成线路原始版本,可以在线路版本信息下查看!', {time: 7000});
  254 +
  255 + } else if(result.status=='ERROR') {
  256 +
  257 + // 弹出添加失败提示消息
  258 + layer.msg('添加失败...');
  259 +
  260 + }
  261 + }
  262 +
  263 + // 返回list.html页面
  264 + loadPage('list.html');
  265 + });
  266 + }
  267 + }
  268 + });
  269 +
  270 + // 线路编码不能0开头
  271 + $.validator.addMethod("isLineCode", function(value,element) {
  272 + // 线路编码正则表达式
  273 + var lineCode = /^([1-9])/;
  274 + return lineCode.test(value);
  275 + }, "线路编码不能以0开头");
  276 +
  277 + // 联系电话(手机/电话皆可)验证
  278 + $.validator.addMethod("isPhone", function(value,element) {
  279 + // 长度
  280 + var length = value.length;
  281 + // 手机正则表达式
  282 + var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;
  283 + // 固定电话正则表达式
  284 + var tel = /^\d{3,4}-?\d{7,9}$/;
  285 + return this.optional(element) || (tel.test(value) || mobile.test(value));
  286 + }, "请正确填写您的联系电话");
288 }); 287 });
289 \ No newline at end of file 288 \ No newline at end of file
src/main/resources/static/pages/base/section/js/add-vmap-world.js
@@ -80,14 +80,14 @@ var SectionVmapWorlds = function() { @@ -80,14 +80,14 @@ var SectionVmapWorlds = function() {
80 }, 80 },
81 // 根据名称获取坐标. 81 // 根据名称获取坐标.
82 sectionsNameToPoints : function(sectionNames, callback) { 82 sectionsNameToPoints : function(sectionNames, callback) {
83 - var arguments = new Array(); 83 + var args = new Array();
84 for (var i = 0;i < sectionNames.length;i++) { 84 for (var i = 0;i < sectionNames.length;i++) {
85 - arguments.push('searchComplete' + i); 85 + args.push('searchComplete' + i);
86 } 86 }
87 - arguments.push(function(... args) {  
88 - callback(args); 87 + args.push(function() {
  88 + callback(arguments);
89 }) 89 })
90 - var proxy = EventProxy.create(arguments); 90 + var proxy = EventProxy.create(args);
91 sectionNames.forEach(function(item, idx) { 91 sectionNames.forEach(function(item, idx) {
92 var localSearch = new BMap.LocalSearch(mapB); 92 var localSearch = new BMap.LocalSearch(mapB);
93 localSearch.setSearchCompleteCallback(function (searchResult) { 93 localSearch.setSearchCompleteCallback(function (searchResult) {