Commit 6d4822f7ed686e211efa7f30fe0cb5f93565727e

Authored by 潘钊
2 parents cfef8d72 cbcffe02

Merge branch 'master' of 192.168.168.201:panzhaov5/bsth_control

Showing 71 changed files with 1015 additions and 477 deletions
src/main/java/com/bsth/controller/schedule/SchedulePlanController.java
@@ -2,6 +2,8 @@ package com.bsth.controller.schedule; @@ -2,6 +2,8 @@ package com.bsth.controller.schedule;
2 2
3 import com.bsth.controller.BaseController; 3 import com.bsth.controller.BaseController;
4 import com.bsth.entity.schedule.SchedulePlan; 4 import com.bsth.entity.schedule.SchedulePlan;
  5 +import com.bsth.service.schedule.SchedulePlanService;
  6 +import org.springframework.beans.factory.annotation.Autowired;
5 import org.springframework.web.bind.annotation.RequestBody; 7 import org.springframework.web.bind.annotation.RequestBody;
6 import org.springframework.web.bind.annotation.RequestMapping; 8 import org.springframework.web.bind.annotation.RequestMapping;
7 import org.springframework.web.bind.annotation.RequestMethod; 9 import org.springframework.web.bind.annotation.RequestMethod;
@@ -15,6 +17,8 @@ import java.util.Map; @@ -15,6 +17,8 @@ import java.util.Map;
15 @RestController 17 @RestController
16 @RequestMapping("spc") 18 @RequestMapping("spc")
17 public class SchedulePlanController extends BaseController<SchedulePlan, Long> { 19 public class SchedulePlanController extends BaseController<SchedulePlan, Long> {
  20 + @Autowired
  21 + private SchedulePlanService schedulePlanService;
18 22
19 /** 23 /**
20 * 覆写方法,因为form提交的方式参数不全,改用 json形式提交 @RequestBody 24 * 覆写方法,因为form提交的方式参数不全,改用 json形式提交 @RequestBody
@@ -31,4 +35,5 @@ public class SchedulePlanController extends BaseController&lt;SchedulePlan, Long&gt; { @@ -31,4 +35,5 @@ public class SchedulePlanController extends BaseController&lt;SchedulePlan, Long&gt; {
31 return baseService.save(t); 35 return baseService.save(t);
32 } 36 }
33 37
  38 +
34 } 39 }
src/main/java/com/bsth/controller/schedule/SchedulePlanInfoController.java
@@ -11,4 +11,5 @@ import org.springframework.web.bind.annotation.RestController; @@ -11,4 +11,5 @@ import org.springframework.web.bind.annotation.RestController;
11 @RestController 11 @RestController
12 @RequestMapping("spic") 12 @RequestMapping("spic")
13 public class SchedulePlanInfoController extends BaseController<SchedulePlanInfo, Long> { 13 public class SchedulePlanInfoController extends BaseController<SchedulePlanInfo, Long> {
  14 +
14 } 15 }
src/main/java/com/bsth/controller/schedule/ScheduleRule1FlatController.java
@@ -4,7 +4,7 @@ import com.bsth.controller.BaseController; @@ -4,7 +4,7 @@ import com.bsth.controller.BaseController;
4 import com.bsth.entity.schedule.EmployeeConfigInfo; 4 import com.bsth.entity.schedule.EmployeeConfigInfo;
5 import com.bsth.entity.schedule.GuideboardInfo; 5 import com.bsth.entity.schedule.GuideboardInfo;
6 import com.bsth.entity.schedule.rule.ScheduleRule1Flat; 6 import com.bsth.entity.schedule.rule.ScheduleRule1Flat;
7 -import com.bsth.repository.ScheduleRule1FlatRepository; 7 +import com.bsth.repository.schedule.ScheduleRule1FlatRepository;
8 import com.bsth.service.schedule.EmployeeConfigInfoService; 8 import com.bsth.service.schedule.EmployeeConfigInfoService;
9 import com.bsth.service.schedule.GuideboardInfoService; 9 import com.bsth.service.schedule.GuideboardInfoService;
10 import org.apache.commons.lang3.StringUtils; 10 import org.apache.commons.lang3.StringUtils;
@@ -71,7 +71,7 @@ public class ScheduleRule1FlatController extends BaseController&lt;ScheduleRule1Fla @@ -71,7 +71,7 @@ public class ScheduleRule1FlatController extends BaseController&lt;ScheduleRule1Fla
71 Iterable<EmployeeConfigInfo> employeeConfigInfos = employeeConfigInfoService.list(param2); 71 Iterable<EmployeeConfigInfo> employeeConfigInfos = employeeConfigInfoService.list(param2);
72 ryIds[j] = employeeConfigInfos.iterator().next().getId().toString(); 72 ryIds[j] = employeeConfigInfos.iterator().next().getId().toString();
73 } 73 }
74 - t.setRyIds(StringUtils.join(ryIds, ",")); 74 + t.setRyConfigIds(StringUtils.join(ryIds, ","));
75 75
76 return baseService.save(t); 76 return baseService.save(t);
77 } 77 }
src/main/java/com/bsth/entity/schedule/SchedulePlan.java
@@ -3,8 +3,10 @@ package com.bsth.entity.schedule; @@ -3,8 +3,10 @@ package com.bsth.entity.schedule;
3 import com.bsth.entity.Line; 3 import com.bsth.entity.Line;
4 import com.bsth.entity.schedule.rule.ScheduleRule1; 4 import com.bsth.entity.schedule.rule.ScheduleRule1;
5 import com.bsth.entity.sys.SysUser; 5 import com.bsth.entity.sys.SysUser;
  6 +import com.fasterxml.jackson.annotation.JsonIgnore;
6 7
7 import javax.persistence.*; 8 import javax.persistence.*;
  9 +import java.util.ArrayList;
8 import java.util.Date; 10 import java.util.Date;
9 import java.util.List; 11 import java.util.List;
10 12
@@ -43,14 +45,10 @@ public class SchedulePlan { @@ -43,14 +45,10 @@ public class SchedulePlan {
43 @Column(nullable = false) 45 @Column(nullable = false)
44 private Date scheduleToTime; 46 private Date scheduleToTime;
45 47
  48 + @JsonIgnore
46 /** 使用中间表的一对多关联 明细信息 */ 49 /** 使用中间表的一对多关联 明细信息 */
47 - @OneToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)  
48 - @JoinTable(  
49 - name = "bsth_c_s_sp_r_info",  
50 - joinColumns = @JoinColumn(name = "sp_id"),  
51 - inverseJoinColumns = @JoinColumn(name = "sp_info_id")  
52 - )  
53 - private List<SchedulePlanInfo> schedulePlanInfoList; 50 + @OneToMany(mappedBy = "schedulePlan", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
  51 + private List<SchedulePlanInfo> schedulePlanInfoList = new ArrayList<>();
54 52
55 /** 创建人 */ 53 /** 创建人 */
56 @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) 54 @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
src/main/java/com/bsth/entity/schedule/SchedulePlanInfo.java
1 package com.bsth.entity.schedule; 1 package com.bsth.entity.schedule;
2 2
  3 +import com.bsth.entity.Line;
3 import com.bsth.entity.sys.SysUser; 4 import com.bsth.entity.sys.SysUser;
  5 +import com.bsth.service.schedule.rules.shiftloop.ScheduleResult_output;
4 6
5 import javax.persistence.*; 7 import javax.persistence.*;
6 import java.util.Date; 8 import java.util.Date;
@@ -63,7 +65,7 @@ public class SchedulePlanInfo { @@ -63,7 +65,7 @@ public class SchedulePlanInfo {
63 private String bdTime; 65 private String bdTime;
64 /** 出场时间(格式 HH:mm) */ 66 /** 出场时间(格式 HH:mm) */
65 private String ccTime; 67 private String ccTime;
66 - /** 关联 bsth_c_personnel 主键,不做mapping */ 68 + /** 关联的驾驶员 bsth_c_personnel 主键,不做mapping */
67 @Column(nullable = false) 69 @Column(nullable = false)
68 private Integer j; 70 private Integer j;
69 /** 驾驶员工号 */ 71 /** 驾驶员工号 */
@@ -72,6 +74,8 @@ public class SchedulePlanInfo { @@ -72,6 +74,8 @@ public class SchedulePlanInfo {
72 /** 驾驶员名字 */ 74 /** 驾驶员名字 */
73 @Column(nullable = false) 75 @Column(nullable = false)
74 private String jName; 76 private String jName;
  77 + /** 关联的售票员 bsth_c_personnel 主键,不做mapping */
  78 + private Integer s;
75 /** 售票员工号 */ 79 /** 售票员工号 */
76 private String sGh; 80 private String sGh;
77 /** 售票员名字 */ 81 /** 售票员名字 */
@@ -112,11 +116,7 @@ public class SchedulePlanInfo { @@ -112,11 +116,7 @@ public class SchedulePlanInfo {
112 /** 班次历时 */ 116 /** 班次历时 */
113 private Integer bcsj; 117 private Integer bcsj;
114 118
115 - /**  
116 - * 班次类型  
117 - * TODO:正常班次、出场、进场、加油、临加班次、区间班次、放空班次、放大站班次、两点间空驶  
118 - * TODO:这个以后用枚举还是字典再议,现在先用文字  
119 - */ 119 + /** 班次类型 字典type=ScheduleType */
120 @Column(nullable = false) 120 @Column(nullable = false)
121 private String bcType; 121 private String bcType;
122 122
@@ -133,6 +133,98 @@ public class SchedulePlanInfo { @@ -133,6 +133,98 @@ public class SchedulePlanInfo {
133 @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP") 133 @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
134 private Date updateDate; 134 private Date updateDate;
135 135
  136 +
  137 + @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  138 + @JoinTable(
  139 + name = "bsth_c_s_sp_r_info",
  140 + joinColumns = @JoinColumn(name = "sp_info_id"),
  141 + inverseJoinColumns = @JoinColumn(name = "sp_id")
  142 + )
  143 + private SchedulePlan schedulePlan;
  144 +
  145 + public SchedulePlanInfo() {}
  146 +
  147 + public SchedulePlanInfo(
  148 + Line xl,
  149 + ScheduleResult_output scheduleResult_output,
  150 + TTInfoDetail ttInfoDetail,
  151 + CarConfigInfo carConfigInfo,
  152 + EmployeeConfigInfo employeeConfigInfo,
  153 + SchedulePlan schedulePlan) {
  154 +
  155 + this.schedulePlan = schedulePlan;
  156 +
  157 + // 排班计划时间
  158 + this.scheduleDate = scheduleResult_output.getSd().toDate();
  159 +
  160 + // 关联的线路信息
  161 + this.xl = xl.getId(); // 线路id
  162 + this.xlBm = xl.getLineCode(); // 线路编码
  163 + this.xlName = xl.getName(); // 线路名称
  164 +
  165 + // 关联的路牌
  166 + this.lp = ttInfoDetail.getLp().getId();
  167 + this.lpName = ttInfoDetail.getLp().getLpName();
  168 +
  169 + // 关联的车辆信息
  170 + this.cl = carConfigInfo.getCl().getId(); // 车辆id
  171 + this.clZbh = carConfigInfo.getCl().getInsideCode(); // 自编号/内部编号
  172 +
  173 + // TODO:报道时间,出场时间没有
  174 + // 关联的驾驶员
  175 + this.j = employeeConfigInfo.getJsy().getId();
  176 + this.jGh = employeeConfigInfo.getJsy().getJobCode();
  177 + this.jName = employeeConfigInfo.getJsy().getPersonnelName();
  178 + // 关联的售票员
  179 + this.s = employeeConfigInfo.getSpy().getId();
  180 + this.sGh = employeeConfigInfo.getSpy().getJobCode();
  181 + this.sName = employeeConfigInfo.getSpy().getPersonnelName();
  182 +
  183 + // 时刻明细数据
  184 + this.xlDir = ttInfoDetail.getXlDir(); // 线路上下行
  185 + this.bcType = ttInfoDetail.getBcType(); // 班次类型
  186 + if ("out".equals(this.bcType)) { // 出场班次
  187 + this.qdz = ttInfoDetail.getTcc().getId(); // 起点站-停车场id
  188 + this.qdzCode = ttInfoDetail.getTcc().getParkCode(); // 起点站-停车场code
  189 + this.qdzName = ttInfoDetail.getTcc().getParkName(); // 起点站-停车场name
  190 + this.zdz = ttInfoDetail.getZdz().getId(); // 终点站id
  191 + this.zdzCode = ttInfoDetail.getZdz().getStationCod(); // 终点站code
  192 + this.zdzName = ttInfoDetail.getZdz().getStationName(); // 终点站name
  193 + } else if ("in".equals(this.bcType)) { // 进场班次
  194 + this.qdz = ttInfoDetail.getQdz().getId(); // 起点站id
  195 + this.qdzCode = ttInfoDetail.getQdz().getStationCod(); // 起点站code
  196 + this.qdzName = ttInfoDetail.getQdz().getStationName(); // 起点站name
  197 + this.zdz = ttInfoDetail.getTcc().getId(); // 终点站-停车场id
  198 + this.zdzCode = ttInfoDetail.getTcc().getParkCode(); // 终点站-停车场code
  199 + this.zdzName = ttInfoDetail.getTcc().getParkName(); // 终点站-停车场name
  200 + } else if ("normal".equals(this.bcType)) { // 正常班次
  201 + this.qdz = ttInfoDetail.getQdz().getId(); // 起点站id
  202 + this.qdzCode = ttInfoDetail.getQdz().getStationCod(); // 起点站code
  203 + this.qdzName = ttInfoDetail.getQdz().getStationName(); // 起点站name
  204 + this.zdz = ttInfoDetail.getZdz().getId(); // 终点站id
  205 + this.zdzCode = ttInfoDetail.getZdz().getStationCod(); // 终点站code
  206 + this.zdzName = ttInfoDetail.getZdz().getStationName(); // 终点站name
  207 + } else {
  208 + throw new RuntimeException("排班计划数据,未知班次类型:" + this.bcType);
  209 + }
  210 +
  211 + this.fcsj = ttInfoDetail.getFcsj(); // 发车时间
  212 + this.fcno = ttInfoDetail.getFcno(); // 发车顺序号
  213 + this.bcs = ttInfoDetail.getBcs(); // 班次数
  214 + this.jhlc = ttInfoDetail.getJhlc(); // 计划里程
  215 + this.bcsj = ttInfoDetail.getBcsj(); // 班次时间
  216 +
  217 + }
  218 +
  219 +
  220 + public Integer getS() {
  221 + return s;
  222 + }
  223 +
  224 + public void setS(Integer s) {
  225 + this.s = s;
  226 + }
  227 +
136 public Long getId() { 228 public Long getId() {
137 return id; 229 return id;
138 } 230 }
@@ -436,4 +528,12 @@ public class SchedulePlanInfo { @@ -436,4 +528,12 @@ public class SchedulePlanInfo {
436 public void setCcno(Integer ccno) { 528 public void setCcno(Integer ccno) {
437 this.ccno = ccno; 529 this.ccno = ccno;
438 } 530 }
  531 +
  532 + public SchedulePlan getSchedulePlan() {
  533 + return schedulePlan;
  534 + }
  535 +
  536 + public void setSchedulePlan(SchedulePlan schedulePlan) {
  537 + this.schedulePlan = schedulePlan;
  538 + }
439 } 539 }
src/main/java/com/bsth/entity/schedule/TTInfo.java
@@ -40,6 +40,9 @@ public class TTInfo { @@ -40,6 +40,9 @@ public class TTInfo {
40 private String templateType; 40 private String templateType;
41 /** 是否启用调度模版 */ 41 /** 是否启用调度模版 */
42 private Boolean isEnableDisTemplate; 42 private Boolean isEnableDisTemplate;
  43 +
  44 + // TODO:还有很多判定条件,这里先不放
  45 +
43 /** 路牌数 */ 46 /** 路牌数 */
44 private int lpCount; 47 private int lpCount;
45 /** 圈数 */ 48 /** 圈数 */
@@ -199,4 +202,5 @@ public class TTInfo { @@ -199,4 +202,5 @@ public class TTInfo {
199 public void setUpdateDate(Date updateDate) { 202 public void setUpdateDate(Date updateDate) {
200 this.updateDate = updateDate; 203 this.updateDate = updateDate;
201 } 204 }
  205 +
202 } 206 }
src/main/java/com/bsth/entity/schedule/TTInfoDetail.java
@@ -13,6 +13,15 @@ import java.util.Date; @@ -13,6 +13,15 @@ import java.util.Date;
13 */ 13 */
14 @Entity 14 @Entity
15 @Table(name = "bsth_c_s_ttinfo_detail") 15 @Table(name = "bsth_c_s_ttinfo_detail")
  16 +@NamedEntityGraphs({
  17 + @NamedEntityGraph(name = "tTInfoDetail_xl_lp_qdz_zdz_tcc", attributeNodes = {
  18 + @NamedAttributeNode("xl"),
  19 + @NamedAttributeNode("lp"),
  20 + @NamedAttributeNode("qdz"),
  21 + @NamedAttributeNode("zdz"),
  22 + @NamedAttributeNode("tcc")
  23 + })
  24 +})
16 public class TTInfoDetail { 25 public class TTInfoDetail {
17 26
18 /** 主健Id */ 27 /** 主健Id */
@@ -22,13 +31,13 @@ public class TTInfoDetail { @@ -22,13 +31,13 @@ public class TTInfoDetail {
22 31
23 32
24 /** 关联线路 */ 33 /** 关联线路 */
25 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) 34 + @ManyToOne(optional = false, cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
26 private Line xl; 35 private Line xl;
27 /** 时刻表主对象关联 */ 36 /** 时刻表主对象关联 */
28 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) 37 + @ManyToOne(optional = false, cascade = CascadeType.ALL, fetch = FetchType.LAZY)
29 private TTInfo ttinfo; 38 private TTInfo ttinfo;
30 /** 关联的路牌 */ 39 /** 关联的路牌 */
31 - @ManyToOne(optional = false, cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) 40 + @ManyToOne(optional = false, cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
32 private GuideboardInfo lp; 41 private GuideboardInfo lp;
33 42
34 /** 发车顺序号 */ 43 /** 发车顺序号 */
@@ -38,13 +47,13 @@ public class TTInfoDetail { @@ -38,13 +47,13 @@ public class TTInfoDetail {
38 @Column(nullable = false) 47 @Column(nullable = false)
39 private String xlDir; 48 private String xlDir;
40 /** 起点站关联 */ 49 /** 起点站关联 */
41 - @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) 50 + @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
42 private Station qdz; 51 private Station qdz;
43 /** 终点站关联 */ 52 /** 终点站关联 */
44 - @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) 53 + @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
45 private Station zdz; 54 private Station zdz;
46 /** 停车场关联(出场,进场班次会关联停车场) */ 55 /** 停车场关联(出场,进场班次会关联停车场) */
47 - @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) 56 + @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
48 private CarPark tcc; 57 private CarPark tcc;
49 58
50 /** 发车时间(格式 HH:mm) */ 59 /** 发车时间(格式 HH:mm) */
@@ -58,11 +67,7 @@ public class TTInfoDetail { @@ -58,11 +67,7 @@ public class TTInfoDetail {
58 /** 班次历时 */ 67 /** 班次历时 */
59 private Integer bcsj; 68 private Integer bcsj;
60 69
61 - /**  
62 - * 班次类型  
63 - * TODO:正常班次、出场、进场、加油、临加班次、区间班次、放空班次、放大站班次、两点间空驶  
64 - * TODO:这个以后用枚举还是字典再议,现在先用文字  
65 - */ 70 + /** 班次类型 字典type=ScheduleType */
66 @Column(nullable = false) 71 @Column(nullable = false)
67 private String bcType; 72 private String bcType;
68 73
src/main/java/com/bsth/entity/schedule/rule/ScheduleRule1Flat.java
1 package com.bsth.entity.schedule.rule; 1 package com.bsth.entity.schedule.rule;
2 2
3 -import com.bsth.entity.Cars;  
4 import com.bsth.entity.Line; 3 import com.bsth.entity.Line;
  4 +import com.bsth.entity.schedule.CarConfigInfo;
5 import com.bsth.entity.sys.SysUser; 5 import com.bsth.entity.sys.SysUser;
6 6
7 import javax.persistence.*; 7 import javax.persistence.*;
@@ -18,10 +18,22 @@ import java.util.Date; @@ -18,10 +18,22 @@ import java.util.Date;
18 @Entity 18 @Entity
19 @Table(name = "bsth_c_s_sr1_flat") 19 @Table(name = "bsth_c_s_sr1_flat")
20 @NamedEntityGraphs({ 20 @NamedEntityGraphs({
21 - @NamedEntityGraph(name = "scheduleRule1Flat_xl_cl", attributeNodes = { 21 + @NamedEntityGraph(
  22 + name = "scheduleRule1Flat_xl_carconfig",
  23 + attributeNodes = {
22 @NamedAttributeNode("xl"), 24 @NamedAttributeNode("xl"),
23 - @NamedAttributeNode("cl")  
24 - }) 25 + @NamedAttributeNode(value = "carConfigInfo", subgraph = "carConfigInfo_cl")
  26 + },
  27 + subgraphs = {
  28 + @NamedSubgraph(
  29 + name = "carConfigInfo_cl",
  30 + attributeNodes = {
  31 + @NamedAttributeNode("cl")
  32 + }
  33 + )
  34 + }
  35 +
  36 + )
25 }) 37 })
26 public class ScheduleRule1Flat { 38 public class ScheduleRule1Flat {
27 /** 主键Id */ 39 /** 主键Id */
@@ -32,9 +44,10 @@ public class ScheduleRule1Flat { @@ -32,9 +44,10 @@ public class ScheduleRule1Flat {
32 /** 关联线路 */ 44 /** 关联线路 */
33 @ManyToOne(optional = false, cascade = CascadeType.DETACH, fetch = FetchType.LAZY) 45 @ManyToOne(optional = false, cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
34 private Line xl; 46 private Line xl;
35 - /** 关联车辆 */ 47 + /** 关联车辆配置id */
36 @ManyToOne(optional = false, cascade = CascadeType.DETACH, fetch = FetchType.LAZY) 48 @ManyToOne(optional = false, cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
37 - private Cars cl; 49 + private CarConfigInfo carConfigInfo;
  50 +
38 /** 启用日期 */ 51 /** 启用日期 */
39 @NotNull 52 @NotNull
40 private Date qyrq; 53 private Date qyrq;
@@ -53,7 +66,7 @@ public class ScheduleRule1Flat { @@ -53,7 +66,7 @@ public class ScheduleRule1Flat {
53 private String ryDbbms; 66 private String ryDbbms;
54 /** 对应的人员配置ids(用逗号隔开) */ 67 /** 对应的人员配置ids(用逗号隔开) */
55 @NotNull 68 @NotNull
56 - private String ryIds; 69 + private String ryConfigIds;
57 /** 起始人员(从0开始) */ 70 /** 起始人员(从0开始) */
58 @NotNull 71 @NotNull
59 private Integer ryStart; 72 private Integer ryStart;
@@ -90,12 +103,12 @@ public class ScheduleRule1Flat { @@ -90,12 +103,12 @@ public class ScheduleRule1Flat {
90 this.xl = xl; 103 this.xl = xl;
91 } 104 }
92 105
93 - public Cars getCl() {  
94 - return cl; 106 + public CarConfigInfo getCarConfigInfo() {
  107 + return carConfigInfo;
95 } 108 }
96 109
97 - public void setCl(Cars cl) {  
98 - this.cl = cl; 110 + public void setCarConfigInfo(CarConfigInfo carConfigInfo) {
  111 + this.carConfigInfo = carConfigInfo;
99 } 112 }
100 113
101 public Date getQyrq() { 114 public Date getQyrq() {
@@ -138,12 +151,12 @@ public class ScheduleRule1Flat { @@ -138,12 +151,12 @@ public class ScheduleRule1Flat {
138 this.ryDbbms = ryDbbms; 151 this.ryDbbms = ryDbbms;
139 } 152 }
140 153
141 - public String getRyIds() {  
142 - return ryIds; 154 + public String getRyConfigIds() {
  155 + return ryConfigIds;
143 } 156 }
144 157
145 - public void setRyIds(String ryIds) {  
146 - this.ryIds = ryIds; 158 + public void setRyConfigIds(String ryConfigIds) {
  159 + this.ryConfigIds = ryConfigIds;
147 } 160 }
148 161
149 public Integer getRyStart() { 162 public Integer getRyStart() {
src/main/java/com/bsth/repository/schedule/CarConfigInfoRepository.java
@@ -21,7 +21,11 @@ public interface CarConfigInfoRepository extends BaseRepository&lt;CarConfigInfo, L @@ -21,7 +21,11 @@ public interface CarConfigInfoRepository extends BaseRepository&lt;CarConfigInfo, L
21 @EntityGraph(value = "carConfigInfo_xl_cl", type = EntityGraph.EntityGraphType.FETCH) 21 @EntityGraph(value = "carConfigInfo_xl_cl", type = EntityGraph.EntityGraphType.FETCH)
22 @Override 22 @Override
23 Page<CarConfigInfo> findAll(Specification<CarConfigInfo> spec, Pageable pageable); 23 Page<CarConfigInfo> findAll(Specification<CarConfigInfo> spec, Pageable pageable);
24 - 24 +
  25 + @EntityGraph(value = "carConfigInfo_xl_cl", type = EntityGraph.EntityGraphType.FETCH)
  26 + @Override
  27 + List<CarConfigInfo> findAll(Specification<CarConfigInfo> spec);
  28 +
25 @EntityGraph(value = "carConfigInfo_xl_cl", type = EntityGraph.EntityGraphType.FETCH) 29 @EntityGraph(value = "carConfigInfo_xl_cl", type = EntityGraph.EntityGraphType.FETCH)
26 @Override 30 @Override
27 List<CarConfigInfo> findAll(); 31 List<CarConfigInfo> findAll();
src/main/java/com/bsth/repository/schedule/EmployeeConfigInfoRepository.java
@@ -28,6 +28,10 @@ public interface EmployeeConfigInfoRepository extends BaseRepository&lt;EmployeeCon @@ -28,6 +28,10 @@ public interface EmployeeConfigInfoRepository extends BaseRepository&lt;EmployeeCon
28 Page<EmployeeConfigInfo> findAll(Specification<EmployeeConfigInfo> spec, Pageable pageable); 28 Page<EmployeeConfigInfo> findAll(Specification<EmployeeConfigInfo> spec, Pageable pageable);
29 29
30 @EntityGraph(value = "employeeConfigInfo_jsy_spy_xl", type = EntityGraph.EntityGraphType.FETCH) 30 @EntityGraph(value = "employeeConfigInfo_jsy_spy_xl", type = EntityGraph.EntityGraphType.FETCH)
  31 + @Override
  32 + List<EmployeeConfigInfo> findAll(Specification<EmployeeConfigInfo> spec);
  33 +
  34 + @EntityGraph(value = "employeeConfigInfo_jsy_spy_xl", type = EntityGraph.EntityGraphType.FETCH)
31 @Query("select cc from EmployeeConfigInfo cc where cc.id=?1") 35 @Query("select cc from EmployeeConfigInfo cc where cc.id=?1")
32 EmployeeConfigInfo findOneExtend(Long aLong); 36 EmployeeConfigInfo findOneExtend(Long aLong);
33 } 37 }
src/main/java/com/bsth/repository/schedule/SchedulePlanInfoRepository.java
@@ -5,6 +5,9 @@ import com.bsth.repository.BaseRepository; @@ -5,6 +5,9 @@ import com.bsth.repository.BaseRepository;
5 5
6 import java.util.List; 6 import java.util.List;
7 7
  8 +import org.springframework.data.domain.Page;
  9 +import org.springframework.data.domain.Pageable;
  10 +import org.springframework.data.jpa.domain.Specification;
8 import org.springframework.data.jpa.repository.Query; 11 import org.springframework.data.jpa.repository.Query;
9 import org.springframework.stereotype.Repository; 12 import org.springframework.stereotype.Repository;
10 13
@@ -16,4 +19,5 @@ public interface SchedulePlanInfoRepository extends BaseRepository&lt;SchedulePlanI @@ -16,4 +19,5 @@ public interface SchedulePlanInfoRepository extends BaseRepository&lt;SchedulePlanI
16 19
17 @Query(value = "select * from bsth_c_s_sp_info where DATE_FORMAT(schedule_date, '%Y-%m-%d')=?1", nativeQuery = true) 20 @Query(value = "select * from bsth_c_s_sp_info where DATE_FORMAT(schedule_date, '%Y-%m-%d')=?1", nativeQuery = true)
18 List<SchedulePlanInfo> findByDate(String dateformat); 21 List<SchedulePlanInfo> findByDate(String dateformat);
  22 +
19 } 23 }
src/main/java/com/bsth/repository/schedule/SchedulePlanRepository.java
@@ -16,4 +16,5 @@ public interface SchedulePlanRepository extends BaseRepository&lt;SchedulePlan, Lon @@ -16,4 +16,5 @@ public interface SchedulePlanRepository extends BaseRepository&lt;SchedulePlan, Lon
16 @EntityGraph(value = "schedulePlan_xl_ttinfo", type = EntityGraph.EntityGraphType.FETCH) 16 @EntityGraph(value = "schedulePlan_xl_ttinfo", type = EntityGraph.EntityGraphType.FETCH)
17 @Override 17 @Override
18 Page<SchedulePlan> findAll(Specification<SchedulePlan> spec, Pageable pageable); 18 Page<SchedulePlan> findAll(Specification<SchedulePlan> spec, Pageable pageable);
  19 +
19 } 20 }
src/main/java/com/bsth/repository/ScheduleRule1FlatRepository.java renamed to src/main/java/com/bsth/repository/schedule/ScheduleRule1FlatRepository.java
1 -package com.bsth.repository; 1 +package com.bsth.repository.schedule;
2 2
3 import com.bsth.entity.schedule.rule.ScheduleRule1Flat; 3 import com.bsth.entity.schedule.rule.ScheduleRule1Flat;
  4 +import com.bsth.repository.BaseRepository;
4 import org.springframework.data.domain.Page; 5 import org.springframework.data.domain.Page;
5 import org.springframework.data.domain.Pageable; 6 import org.springframework.data.domain.Pageable;
6 import org.springframework.data.jpa.domain.Specification; 7 import org.springframework.data.jpa.domain.Specification;
@@ -14,11 +15,11 @@ import org.springframework.stereotype.Repository; @@ -14,11 +15,11 @@ import org.springframework.stereotype.Repository;
14 @Repository 15 @Repository
15 public interface ScheduleRule1FlatRepository extends BaseRepository<ScheduleRule1Flat, Long> { 16 public interface ScheduleRule1FlatRepository extends BaseRepository<ScheduleRule1Flat, Long> {
16 17
17 - @EntityGraph(value = "scheduleRule1Flat_xl_cl", type = EntityGraph.EntityGraphType.FETCH) 18 + @EntityGraph(value = "scheduleRule1Flat_xl_carconfig", type = EntityGraph.EntityGraphType.FETCH)
18 @Override 19 @Override
19 Page<ScheduleRule1Flat> findAll(Specification<ScheduleRule1Flat> spec, Pageable pageable); 20 Page<ScheduleRule1Flat> findAll(Specification<ScheduleRule1Flat> spec, Pageable pageable);
20 21
21 - @EntityGraph(value = "scheduleRule1Flat_xl_cl", type = EntityGraph.EntityGraphType.FETCH) 22 + @EntityGraph(value = "scheduleRule1Flat_xl_carconfig", type = EntityGraph.EntityGraphType.FETCH)
22 @Query("select cc from ScheduleRule1Flat cc where cc.id=?1") 23 @Query("select cc from ScheduleRule1Flat cc where cc.id=?1")
23 ScheduleRule1Flat findOneExtend(Long aLong); 24 ScheduleRule1Flat findOneExtend(Long aLong);
24 } 25 }
src/main/java/com/bsth/repository/schedule/TTInfoDetailRepository.java
@@ -2,11 +2,25 @@ package com.bsth.repository.schedule; @@ -2,11 +2,25 @@ package com.bsth.repository.schedule;
2 2
3 import com.bsth.entity.schedule.TTInfoDetail; 3 import com.bsth.entity.schedule.TTInfoDetail;
4 import com.bsth.repository.BaseRepository; 4 import com.bsth.repository.BaseRepository;
  5 +import org.springframework.data.domain.Page;
  6 +import org.springframework.data.domain.Pageable;
  7 +import org.springframework.data.jpa.domain.Specification;
  8 +import org.springframework.data.jpa.repository.EntityGraph;
5 import org.springframework.stereotype.Repository; 9 import org.springframework.stereotype.Repository;
6 10
  11 +import java.util.List;
  12 +
7 /** 13 /**
8 * Created by xu on 16/7/2. 14 * Created by xu on 16/7/2.
9 */ 15 */
10 @Repository 16 @Repository
11 public interface TTInfoDetailRepository extends BaseRepository<TTInfoDetail, Long> { 17 public interface TTInfoDetailRepository extends BaseRepository<TTInfoDetail, Long> {
  18 +
  19 + @EntityGraph(value = "tTInfoDetail_xl_lp_qdz_zdz_tcc", type = EntityGraph.EntityGraphType.FETCH)
  20 + @Override
  21 + Page<TTInfoDetail> findAll(Specification<TTInfoDetail> spec, Pageable pageable);
  22 +
  23 + @EntityGraph(value = "tTInfoDetail_xl_lp_qdz_zdz_tcc", type = EntityGraph.EntityGraphType.FETCH)
  24 + @Override
  25 + List<TTInfoDetail> findAll(Specification<TTInfoDetail> spec);
12 } 26 }
src/main/java/com/bsth/service/impl/StationRouteServiceImpl.java
@@ -552,9 +552,11 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -552,9 +552,11 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
552 552
553 String textStr = newTextFileToFTP(objects,lineId); 553 String textStr = newTextFileToFTP(objects,lineId);
554 554
555 - textStr = line.getName() + " " + "2" + "\r\n" + textStr; 555 + /*textStr = line.getName() + "\t" + "2" + "\r\n" + textStr;*/
556 556
557 - InputStream input = new ByteArrayInputStream(textStr.getBytes("utf-8")); 557 + textStr = line.getName() + "\t" + "2" + "\r" + textStr;
  558 +
  559 + InputStream input = new ByteArrayInputStream(textStr.getBytes("gbk"));
558 560
559 /** 生成text文件 */ 561 /** 生成text文件 */
560 clientUtils.uploadFile(url, port, username, password, remotePath, textFileName, input); 562 clientUtils.uploadFile(url, port, username, password, remotePath, textFileName, input);
@@ -611,37 +613,37 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -611,37 +613,37 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
611 // 纬度 613 // 纬度
612 String lat = objects.get(i)[1].equals("") ? "" : objects.get(i)[1].toString(); 614 String lat = objects.get(i)[1].equals("") ? "" : objects.get(i)[1].toString();
613 615
614 - lat = " " + lat; 616 + lat = "\t" + lat;
615 617
616 // 站点类型 618 // 站点类型
617 String stationMake = objects.get(i)[3].equals("") ? "" : objects.get(i)[3].toString(); 619 String stationMake = objects.get(i)[3].equals("") ? "" : objects.get(i)[3].toString();
618 620
619 if(stationMake.equals("E")) { 621 if(stationMake.equals("E")) {
620 622
621 - stationMake = " " + "2"; 623 + stationMake = "\t" + "2";
622 624
623 }else { 625 }else {
624 626
625 - stationMake =" " + "1"; 627 + stationMake ="\t" + "1";
626 628
627 } 629 }
628 630
629 // 站点序号 631 // 站点序号
630 String stationNo = objects.get(i)[4].equals("") ? "" : objects.get(i)[4].toString(); 632 String stationNo = objects.get(i)[4].equals("") ? "" : objects.get(i)[4].toString();
631 633
632 - stationNo = " " + stationNo; 634 + stationNo = "\t" + stationNo;
633 635
634 // 站点编码 636 // 站点编码
635 String stationCode = objects.get(i)[5].equals("") ? "" : objects.get(i)[5].toString(); 637 String stationCode = objects.get(i)[5].equals("") ? "" : objects.get(i)[5].toString();
636 638
637 - stationCode = " " +stationCode; 639 + stationCode = "\t" +stationCode;
638 640
639 double dis = objects.get(i)[6]==null ? 0.0 : Double.parseDouble(objects.get(i)[6].toString()); 641 double dis = objects.get(i)[6]==null ? 0.0 : Double.parseDouble(objects.get(i)[6].toString());
640 642
641 double tempd = dis*1000; 643 double tempd = dis*1000;
642 644
643 // 站点距离 645 // 站点距离
644 - String staitondistance = " " + String.valueOf((int) tempd); 646 + String staitondistance = "\t" + String.valueOf((int) tempd);
645 647
646 // 站点名称 648 // 站点名称
647 String stationName = objects.get(i)[7].equals("") ? "" : objects.get(i)[7].toString(); 649 String stationName = objects.get(i)[7].equals("") ? "" : objects.get(i)[7].toString();
@@ -659,7 +661,7 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -659,7 +661,7 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
659 661
660 sleepStr = sobje.get(0)[2] == null ? "" : sobje.get(0)[2].toString(); 662 sleepStr = sobje.get(0)[2] == null ? "" : sobje.get(0)[2].toString();
661 663
662 - sleepStr = " " + sleepStr; 664 + sleepStr = "\t" + sleepStr;
663 665
664 }else if(sobje.size()>1){ 666 }else if(sobje.size()>1){
665 667
@@ -674,7 +676,7 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -674,7 +676,7 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
674 676
675 sleepStr = sobje.get(j)[2].toString(); 677 sleepStr = sobje.get(j)[2].toString();
676 678
677 - sleepStr = " " + sleepStr; 679 + sleepStr = "\t" + sleepStr;
678 680
679 } 681 }
680 682
@@ -697,10 +699,10 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ @@ -697,10 +699,10 @@ public class StationRouteServiceImpl extends BaseServiceImpl&lt;StationRoute, Integ
697 } 699 }
698 700
699 if(sleepStr.equals("")) 701 if(sleepStr.equals(""))
700 - sleepStr = " " + "60"; 702 + sleepStr = "\t" + "60";
701 703
702 704
703 - stationName = " " +stationName; 705 + stationName = "\t" +stationName;
704 706
705 stationRStr = stationRStr + lng + lat + stationMake + stationNo + stationCode + staitondistance + sleepStr + stationName + enterStr; 707 stationRStr = stationRStr + lng + lat + stationMake + stationNo + stationCode + staitondistance + sleepStr + stationName + enterStr;
706 708
src/main/java/com/bsth/service/schedule/SchedulePlanServiceImpl.java
1 package com.bsth.service.schedule; 1 package com.bsth.service.schedule;
2 2
3 -import com.bsth.entity.schedule.SchedulePlan; 3 +import com.bsth.entity.Line;
  4 +import com.bsth.entity.schedule.*;
4 import com.bsth.entity.schedule.rule.ScheduleRule1Flat; 5 import com.bsth.entity.schedule.rule.ScheduleRule1Flat;
  6 +import com.bsth.repository.schedule.SchedulePlanRepository;
  7 +import com.bsth.service.LineService;
5 import com.bsth.service.impl.BaseServiceImpl; 8 import com.bsth.service.impl.BaseServiceImpl;
6 import com.bsth.service.schedule.rules.shiftloop.ScheduleCalcuParam_input; 9 import com.bsth.service.schedule.rules.shiftloop.ScheduleCalcuParam_input;
  10 +import com.bsth.service.schedule.rules.shiftloop.ScheduleResult_output;
7 import com.bsth.service.schedule.rules.shiftloop.ScheduleResults_output; 11 import com.bsth.service.schedule.rules.shiftloop.ScheduleResults_output;
8 import com.bsth.service.schedule.rules.shiftloop.ScheduleRule_input; 12 import com.bsth.service.schedule.rules.shiftloop.ScheduleRule_input;
  13 +import com.bsth.service.schedule.rules.strategy.IStrategy;
  14 +import com.google.common.collect.Multimap;
9 import org.kie.api.KieBase; 15 import org.kie.api.KieBase;
10 import org.kie.api.runtime.KieSession; 16 import org.kie.api.runtime.KieSession;
11 import org.springframework.beans.factory.annotation.Autowired; 17 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,6 +31,12 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt; @@ -25,6 +31,12 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt;
25 private KieBase kieBase; 31 private KieBase kieBase;
26 @Autowired 32 @Autowired
27 private ScheduleRule1FlatService scheduleRule1FlatService; 33 private ScheduleRule1FlatService scheduleRule1FlatService;
  34 + @Autowired
  35 + private LineService lineService;
  36 + @Autowired
  37 + private IStrategy strategy;
  38 + @Autowired
  39 + private SchedulePlanRepository schedulePlanRepository;
28 40
29 @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED) 41 @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED)
30 @Override 42 @Override
@@ -33,11 +45,14 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt; @@ -33,11 +45,14 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt;
33 Map<String, Object> param = new HashMap<>(); 45 Map<String, Object> param = new HashMap<>();
34 46
35 // 1、查出指定线路的所有规则 47 // 1、查出指定线路的所有规则
  48 + Line xl = lineService.findById(schedulePlan.getXl().getId()); // 查找线路具体信息
36 param.clear(); 49 param.clear();
37 - param.put("xl.id_eq", schedulePlan.getXl().getId()); 50 + param.put("xl.id_eq", xl.getId());
38 Iterable<ScheduleRule1Flat> scheduleRule1FlatIterable = scheduleRule1FlatService.list(param); 51 Iterable<ScheduleRule1Flat> scheduleRule1FlatIterable = scheduleRule1FlatService.list(param);
39 if (!scheduleRule1FlatIterable.iterator().hasNext()) 52 if (!scheduleRule1FlatIterable.iterator().hasNext())
40 - throw new RuntimeException("线路:" + schedulePlan.getXl().getName() + " 没有配置规则!"); 53 + throw new RuntimeException("线路:" + xl.getName() + " 没有配置规则!");
  54 + TTInfo ttInfo = strategy.getTTInfo(xl.getId()); // 时刻表id
  55 + schedulePlan.setTtInfo(ttInfo); // 关联的时刻表
41 56
42 // 2-1、构造drools规则输入数据,输出数据 57 // 2-1、构造drools规则输入数据,输出数据
43 // 全局计算参数 58 // 全局计算参数
@@ -69,13 +84,39 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt; @@ -69,13 +84,39 @@ public class SchedulePlanServiceImpl extends BaseServiceImpl&lt;SchedulePlan, Long&gt;
69 // 执行完毕销毁,有日志的也要关闭 84 // 执行完毕销毁,有日志的也要关闭
70 session.dispose(); 85 session.dispose();
71 86
72 -  
73 - // TODO:  
74 -  
75 System.out.println(scheduleResults_output.showGuideboardDesc1()); 87 System.out.println(scheduleResults_output.showGuideboardDesc1());
76 88
77 - return null; 89 + // 3、根据规则返回,组合最后的输出数据
  90 + // 3-1、根据注入的策略服务,获取原始数据
  91 + Multimap<Long, TTInfoDetail> gbdTTinfoMaps = strategy.getGuideboardXlTTInfoDetailMaps(xl.getId()); // 路牌对应时刻明细
  92 + Map<Long, CarConfigInfo> carConfigMaps = strategy.getCarConfigMaps(xl.getId()); // 车辆配置对应车辆信息
  93 + Map<Long, EmployeeConfigInfo> employeeConfigMaps = strategy.getEmployeeConfigMaps(xl.getId()); // 人员配置对应的人员信息
78 94
79 -// return super.save(schedulePlan); 95 + // 3-2、循环规则输出
  96 + List<SchedulePlanInfo> schedulePlanInfos = new ArrayList<>();
  97 + for (ScheduleResult_output scheduleResult_output : scheduleResults_output.getResults()) {
  98 + // 车辆配置对应的车辆
  99 + CarConfigInfo configInfo = carConfigMaps.get(scheduleResult_output.getCarConfigId());
  100 + // 人员配置对应的人员
  101 + EmployeeConfigInfo employeeConfigInfo = employeeConfigMaps.get(scheduleResult_output.getEmployeeConfigId());
  102 + // 排班明细(这个要迭代的)
  103 + Collection<TTInfoDetail> ttInfoDetails = gbdTTinfoMaps.get(scheduleResult_output.getGuideboardId());
  104 + for (TTInfoDetail ttInfoDetail : ttInfoDetails) {
  105 + SchedulePlanInfo schedulePlanInfo = new SchedulePlanInfo(
  106 + xl,
  107 + scheduleResult_output,
  108 + ttInfoDetail,
  109 + configInfo,
  110 + employeeConfigInfo,
  111 + schedulePlan);
  112 + schedulePlanInfos.add(schedulePlanInfo);
  113 + }
  114 + }
  115 +
  116 + // 3-2、保存生成的排班和明细
  117 + schedulePlan.getSchedulePlanInfoList().addAll(schedulePlanInfos); // 关联的排班明细信息
  118 + return super.save(schedulePlan);
80 } 119 }
  120 +
  121 +
81 } 122 }
src/main/java/com/bsth/service/schedule/rules/shiftloop/ScheduleRule_input.java
@@ -41,12 +41,12 @@ public class ScheduleRule_input { @@ -41,12 +41,12 @@ public class ScheduleRule_input {
41 this.guideboardIds.add(Long.parseLong(lpId)); 41 this.guideboardIds.add(Long.parseLong(lpId));
42 } 42 }
43 this.startGbdIndex = scheduleRule1Flat.getLpStart(); 43 this.startGbdIndex = scheduleRule1Flat.getLpStart();
44 - List<String> ryCids = Splitter.on(",").splitToList(scheduleRule1Flat.getRyIds()); 44 + List<String> ryCids = Splitter.on(",").splitToList(scheduleRule1Flat.getRyConfigIds());
45 for (String ryCid : ryCids) { 45 for (String ryCid : ryCids) {
46 this.employeeConfigIds.add(Long.parseLong(ryCid)); 46 this.employeeConfigIds.add(Long.parseLong(ryCid));
47 } 47 }
48 this.startEIndex = scheduleRule1Flat.getRyStart(); 48 this.startEIndex = scheduleRule1Flat.getRyStart();
49 - this.carConfigId = new Long(scheduleRule1Flat.getCl().getId()); 49 + this.carConfigId = scheduleRule1Flat.getCarConfigInfo().getId();
50 } 50 }
51 51
52 52
src/main/java/com/bsth/service/schedule/rules/strategy/IStrategy.java 0 → 100644
  1 +package com.bsth.service.schedule.rules.strategy;
  2 +
  3 +import com.bsth.entity.schedule.CarConfigInfo;
  4 +import com.bsth.entity.schedule.EmployeeConfigInfo;
  5 +import com.bsth.entity.schedule.TTInfo;
  6 +import com.bsth.entity.schedule.TTInfoDetail;
  7 +import com.google.common.collect.Multimap;
  8 +
  9 +import java.util.Map;
  10 +
  11 +/**
  12 + * 获取数据的策略。
  13 + */
  14 +public interface IStrategy {
  15 +
  16 + /**
  17 + * 查找指定线路下,可用的时刻表;
  18 + * @param xlId 线路id
  19 + * @return 时刻表
  20 + */
  21 + TTInfo getTTInfo(Integer xlId);
  22 +
  23 + /**
  24 + * 查找指定线路下,路牌与时刻明细对应的Map。
  25 + * @param xlId 线路id
  26 + * @return 路牌id为key,时刻明细 Collection<TTInfoDetail> 为value
  27 + */
  28 + Multimap<Long, TTInfoDetail> getGuideboardXlTTInfoDetailMaps(Integer xlId);
  29 +
  30 + /**
  31 + * 查找指定线路下,车辆配置与车辆信息对应的Map。
  32 + * @param xlId 线路id
  33 + * @return 车辆配置id为key,具体车辆配置信息为value。
  34 + */
  35 + Map<Long, CarConfigInfo> getCarConfigMaps(Integer xlId);
  36 +
  37 + /**
  38 + * 查找指定线路下,人员配置与人员对应的Map。
  39 + * @param xlId 线路id
  40 + * @return 人员配置id为key,具体人员配置信息为value。
  41 + */
  42 + Map<Long, EmployeeConfigInfo> getEmployeeConfigMaps(Integer xlId);
  43 +}
src/main/java/com/bsth/service/schedule/rules/strategy/IStrategyImpl.java 0 → 100644
  1 +package com.bsth.service.schedule.rules.strategy;
  2 +
  3 +import com.bsth.entity.schedule.CarConfigInfo;
  4 +import com.bsth.entity.schedule.EmployeeConfigInfo;
  5 +import com.bsth.entity.schedule.TTInfo;
  6 +import com.bsth.entity.schedule.TTInfoDetail;
  7 +import com.bsth.service.schedule.CarConfigInfoService;
  8 +import com.bsth.service.schedule.EmployeeConfigInfoService;
  9 +import com.bsth.service.schedule.TTInfoDetailService;
  10 +import com.bsth.service.schedule.TTInfoService;
  11 +import com.google.common.collect.ArrayListMultimap;
  12 +import com.google.common.collect.Multimap;
  13 +import org.springframework.beans.factory.annotation.Autowired;
  14 +import org.springframework.stereotype.Service;
  15 +
  16 +import java.util.HashMap;
  17 +import java.util.Iterator;
  18 +import java.util.Map;
  19 +
  20 +/**
  21 + * Created by xu on 16/7/10.
  22 + */
  23 +@Service
  24 +public class IStrategyImpl implements IStrategy {
  25 + @Autowired
  26 + private TTInfoService ttInfoService;
  27 + @Autowired
  28 + private CarConfigInfoService carConfigInfoService;
  29 + @Autowired
  30 + private EmployeeConfigInfoService employeeConfigInfoService;
  31 + @Autowired
  32 + private TTInfoDetailService ttInfoDetailService;
  33 +
  34 + @Override
  35 + public TTInfo getTTInfo(Integer xlId) {
  36 + // TODO:本来要使用规则判定到底使用哪张时刻表,这里选用第一张
  37 + // 查询参数
  38 + Map<String, Object> param = new HashMap<>();
  39 + param.put("xl.id_eq", xlId);
  40 + Iterable<TTInfo> ttInfoIterable = ttInfoService.list(param);
  41 + Iterator<TTInfo> ttInfoIterator = ttInfoIterable.iterator();
  42 + if (!ttInfoIterator.hasNext())
  43 + throw new RuntimeException("线路id=" + xlId + ",下没有任何时刻表数据!");
  44 + return ttInfoIterator.next();
  45 + }
  46 +
  47 + @Override
  48 + public Multimap<Long, TTInfoDetail> getGuideboardXlTTInfoDetailMaps(Integer xlId) {
  49 + TTInfo ttInfo = getTTInfo(xlId);
  50 + // 查询参数
  51 + Map<String, Object> param = new HashMap<>();
  52 + param.put("ttinfo.id_eq", ttInfo.getId());
  53 + Iterable<TTInfoDetail> ttInfoDetailIterable = ttInfoDetailService.list(param);
  54 + Iterator<TTInfoDetail> ttInfoDetailIterator = ttInfoDetailIterable.iterator();
  55 + if (!ttInfoDetailIterator.hasNext())
  56 + throw new RuntimeException("时刻表id=" + ttInfo.getId() + ",下没有明细数据!");
  57 +
  58 + Multimap<Long, TTInfoDetail> gtmaps = ArrayListMultimap.create();
  59 + while (ttInfoDetailIterator.hasNext()) {
  60 + TTInfoDetail ttInfoDetail = ttInfoDetailIterator.next();
  61 + gtmaps.put(ttInfoDetail.getLp().getId(), ttInfoDetail);
  62 + }
  63 +
  64 + return gtmaps;
  65 + }
  66 +
  67 + @Override
  68 + public Map<Long, CarConfigInfo> getCarConfigMaps(Integer xlId) {
  69 + // 查询参数
  70 + Map<String, Object> param = new HashMap<>();
  71 + param.put("xl.id_eq", xlId);
  72 + Iterable<CarConfigInfo> carConfigInfoIterable = carConfigInfoService.list(param);
  73 + Iterator<CarConfigInfo> carConfigInfoIterator = carConfigInfoIterable.iterator();
  74 + if (!carConfigInfoIterator.hasNext())
  75 + throw new RuntimeException("线路id=" + xlId + ",下没有车辆配置信息!");
  76 +
  77 + Map<Long, CarConfigInfo> carConfigInfoMap = new HashMap<>();
  78 + while (carConfigInfoIterator.hasNext()) {
  79 + CarConfigInfo carConfigInfo = carConfigInfoIterator.next();
  80 + carConfigInfoMap.put(carConfigInfo.getId(), carConfigInfo);
  81 + }
  82 + return carConfigInfoMap;
  83 + }
  84 +
  85 + @Override
  86 + public Map<Long, EmployeeConfigInfo> getEmployeeConfigMaps(Integer xlId) {
  87 + // 查询参数
  88 + Map<String, Object> param = new HashMap<>();
  89 + param.put("xl.id_eq", xlId);
  90 + Iterable<EmployeeConfigInfo> employeeConfigInfoIterable = employeeConfigInfoService.list(param);
  91 + Iterator<EmployeeConfigInfo> employeeConfigInfoIterator = employeeConfigInfoIterable.iterator();
  92 + if (!employeeConfigInfoIterator.hasNext())
  93 + throw new RuntimeException("线路id=" + xlId + ",下没有人员配置信息!");
  94 +
  95 + Map<Long, EmployeeConfigInfo> employeeConfigInfoMap = new HashMap<>();
  96 + while (employeeConfigInfoIterator.hasNext()) {
  97 + EmployeeConfigInfo employeeConfigInfo = employeeConfigInfoIterator.next();
  98 + employeeConfigInfoMap.put(employeeConfigInfo.getId(), employeeConfigInfo);
  99 + }
  100 + return employeeConfigInfoMap;
  101 + }
  102 +}
src/main/java/com/bsth/service/schedule/utils/DataImportExportServiceImpl.java
1 package com.bsth.service.schedule.utils; 1 package com.bsth.service.schedule.utils;
2 2
3 import com.google.common.io.Files; 3 import com.google.common.io.Files;
  4 +import org.pentaho.di.core.KettleEnvironment;
  5 +import org.pentaho.di.core.util.EnvUtil;
4 import org.pentaho.di.trans.Trans; 6 import org.pentaho.di.trans.Trans;
5 import org.pentaho.di.trans.TransMeta; 7 import org.pentaho.di.trans.TransMeta;
6 import org.springframework.beans.factory.InitializingBean; 8 import org.springframework.beans.factory.InitializingBean;
@@ -10,6 +12,9 @@ import org.springframework.stereotype.Service; @@ -10,6 +12,9 @@ import org.springframework.stereotype.Service;
10 import org.springframework.web.multipart.MultipartFile; 12 import org.springframework.web.multipart.MultipartFile;
11 13
12 import java.io.File; 14 import java.io.File;
  15 +import java.util.HashMap;
  16 +import java.util.Map;
  17 +import java.util.Properties;
13 18
14 /** 19 /**
15 * Created by xu on 16/6/23. 20 * Created by xu on 16/6/23.
@@ -21,18 +26,49 @@ public class DataImportExportServiceImpl implements DataImportExportService, Ini @@ -21,18 +26,49 @@ public class DataImportExportServiceImpl implements DataImportExportService, Ini
21 @Autowired 26 @Autowired
22 private DataToolsProperties dataToolsProperties; 27 private DataToolsProperties dataToolsProperties;
23 28
  29 + /**
  30 + * 自定义kettle环境初始化定义。
  31 + */
  32 + private void ktrEnvironmentInit() throws Exception {
  33 + // 由于kettle.properties可能没有(没有安装过kettle),
  34 + // 导致 EnvUtil.environmentInit() 报找不到kettle.properties文件
  35 + // 所以这里重写 EnvUtil.environmentInit() 方法
  36 +
  37 + if(Thread.currentThread().getContextClassLoader() == null) {
  38 + Thread.currentThread().setContextClassLoader(ClassLoader.getSystemClassLoader());
  39 + }
  40 +
  41 + // 获取配置文件
  42 + File file = new File(getClass().getResource(dataToolsProperties.getKettleProperties()).toURI());
  43 + Properties kettleProperties = EnvUtil.readProperties(file.getAbsolutePath());
  44 + EnvUtil.applyKettleProperties(kettleProperties);
  45 + System.getProperties().put("Internal.Cluster.Size", "1");
  46 + System.getProperties().put("Internal.Slave.Transformation.Number", "0");
  47 + System.getProperties().put("Internal.Slave.Server.Name", "slave-trans-name");
  48 + System.getProperties().put("Internal.Step.CopyNr", "0");
  49 + System.getProperties().put("Internal.Step.Name", "step-name");
  50 + System.getProperties().put("Internal.Step.Partition.ID", "partition-id");
  51 + System.getProperties().put("Internal.Step.Partition.Number", "0");
  52 + System.getProperties().put("Internal.Step.Unique.Count", "1");
  53 + System.getProperties().put("Internal.Step.Unique.Number", "0");
  54 + if(!kettleProperties.containsKey("vfs.sftp.org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder.USER_DIR_IS_ROOT")) {
  55 + System.getProperties().put("vfs.sftp.org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder.USER_DIR_IS_ROOT", "false");
  56 + }
  57 +
  58 + }
  59 +
24 @Override 60 @Override
25 public void afterPropertiesSet() throws Exception { 61 public void afterPropertiesSet() throws Exception {
26 - // TODO:有可能会报错,待会儿再改  
27 -// // 初始化kettle环境  
28 -// EnvUtil.environmentInit();  
29 -// // 添加全局ktr变量,并覆盖原来的设置  
30 -// Map<String, String> kvars = new HashMap<>();  
31 -// kvars.put("v_db_ip", dataToolsProperties.getKvarsDbip());  
32 -// kvars.put("v_db_uname", dataToolsProperties.getKvarsDbuname());  
33 -// kvars.put("v_db_pwd", dataToolsProperties.getKvarsDbpwd());  
34 -// EnvUtil.applyKettleProperties(kvars, true);  
35 -// KettleEnvironment.init(); 62 + // 初始化kettle环境(自定义)
  63 + ktrEnvironmentInit();
  64 +
  65 + // 添加全局ktr变量,并覆盖原来的设置
  66 + Map<String, String> kvars = new HashMap<>();
  67 + kvars.put("v_db_ip", dataToolsProperties.getKvarsDbip());
  68 + kvars.put("v_db_uname", dataToolsProperties.getKvarsDbuname());
  69 + kvars.put("v_db_pwd", dataToolsProperties.getKvarsDbpwd());
  70 + EnvUtil.applyKettleProperties(kvars, true);
  71 + KettleEnvironment.init();
36 } 72 }
37 73
38 @Override 74 @Override
src/main/java/com/bsth/service/schedule/utils/DataToolsProperties.java
@@ -22,6 +22,10 @@ public class DataToolsProperties { @@ -22,6 +22,10 @@ public class DataToolsProperties {
22 @NotNull 22 @NotNull
23 private String transErrordir; 23 private String transErrordir;
24 24
  25 + /** kettle配置文件路径 */
  26 + @NotNull
  27 + private String kettleProperties;
  28 +
25 /** ktr通用变量-数据库ip地址 */ 29 /** ktr通用变量-数据库ip地址 */
26 @NotNull 30 @NotNull
27 private String kvarsDbip; 31 private String kvarsDbip;
@@ -173,4 +177,12 @@ public class DataToolsProperties { @@ -173,4 +177,12 @@ public class DataToolsProperties {
173 public void setTtinfodetailDatainputktr(String ttinfodetailDatainputktr) { 177 public void setTtinfodetailDatainputktr(String ttinfodetailDatainputktr) {
174 this.ttinfodetailDatainputktr = ttinfodetailDatainputktr; 178 this.ttinfodetailDatainputktr = ttinfodetailDatainputktr;
175 } 179 }
  180 +
  181 + public String getKettleProperties() {
  182 + return kettleProperties;
  183 + }
  184 +
  185 + public void setKettleProperties(String kettleProperties) {
  186 + this.kettleProperties = kettleProperties;
  187 + }
176 } 188 }
src/main/resources/datatools/config.properties
@@ -5,6 +5,9 @@ datatools.fileupload_dir=/Users/xu/resource/project/bsth_control_u_d_files @@ -5,6 +5,9 @@ datatools.fileupload_dir=/Users/xu/resource/project/bsth_control_u_d_files
5 # ktr转换文件,中配置的错误输出目录(根据不同的环境需要修正) 5 # ktr转换文件,中配置的错误输出目录(根据不同的环境需要修正)
6 datatools.trans_errordir=/Users/xu/resource/project/bsth_control_u_d_files/erroroutput 6 datatools.trans_errordir=/Users/xu/resource/project/bsth_control_u_d_files/erroroutput
7 7
  8 +#------------------- ktr主配置文件路径(类路径) ------------------
  9 +datatools.kettle_properties=/datatools/kettle.properties
  10 +
8 ##------------------ ktr通用变量 ------------------ 11 ##------------------ ktr通用变量 ------------------
9 #数据库ip地址 12 #数据库ip地址
10 datatools.kvars_dbip=localhost 13 datatools.kvars_dbip=localhost
src/main/resources/datatools/kettle.properties 0 → 100644
  1 +# kettle的配置文件
  2 +
  3 +KETTLE_COMPATIBILITY_IMPORT_PATH_ADDITION_ON_VARIABLES=N
  4 +KETTLE_REDIRECT_STDERR=N
  5 +KETTLE_SHARED_OBJECTS=
  6 +KETTLE_METRICS_LOG_DB=
  7 +KETTLE_DEFAULT_DATE_FORMAT=
  8 +KETTLE_JOB_LOG_SCHEMA=
  9 +KETTLE_DEFAULT_INTEGER_FORMAT=
  10 +KETTLE_AGGREGATION_MIN_NULL_IS_VALUED=N
  11 +KETTLE_PLUGIN_CLASSES=
  12 +KETTLE_LOG_MARK_MAPPINGS=N
  13 +KETTLE_CORE_JOBENTRIES_FILE=
  14 +KETTLE_ROWSET_GET_TIMEOUT=50
  15 +KETTLE_METRICS_LOG_SCHEMA=
  16 +KETTLE_PLUGIN_PACKAGES=
  17 +KETTLE_TRANS_LOG_DB=
  18 +KETTLE_CHANNEL_LOG_DB=
  19 +KETTLE_MAX_LOG_TIMEOUT_IN_MINUTES=1440
  20 +KETTLE_JOB_LOG_DB=
  21 +KETTLE_JOB_LOG_TABLE=
  22 +KETTLE_DISABLE_CONSOLE_LOGGING=N
  23 +KETTLE_TRANS_PAN_JVM_EXIT_CODE=
  24 +KETTLE_COMPATIBILITY_PUR_OLD_NAMING_MODE=N
  25 +KETTLE_DEFAULT_TIMESTAMP_FORMAT=
  26 +KETTLE_TRANS_PERFORMANCE_LOG_TABLE=
  27 +KETTLE_STEP_LOG_SCHEMA=
  28 +KETTLE_ROWSET_PUT_TIMEOUT=50
  29 +KETTLE_MAX_JOB_ENTRIES_LOGGED=5000
  30 +KETTLE_COMPATIBILITY_DB_IGNORE_TIMEZONE=N
  31 +KETTLE_JOBENTRY_LOG_TABLE=
  32 +KETTLE_MAX_LOGGING_REGISTRY_SIZE=10000
  33 +KETTLE_TRANS_LOG_SCHEMA=
  34 +KETTLE_JNDI_ROOT=
  35 +vfs.sftp.org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder.USER_DIR_IS_ROOT=false
  36 +KETTLE_COMPATIBILITY_MERGE_ROWS_USE_REFERENCE_STREAM_WHEN_IDENTICAL=N
  37 +KETTLE_HIDE_DEVELOPMENT_VERSION_WARNING=N
  38 +KETTLE_LENIENT_STRING_TO_NUMBER_CONVERSION=N
  39 +KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=N
  40 +KETTLE_TRANS_PERFORMANCE_LOG_DB=
  41 +KETTLE_STEP_PERFORMANCE_SNAPSHOT_LIMIT=0
  42 +KETTLE_FAIL_ON_LOGGING_ERROR=N
  43 +KETTLE_MAX_JOB_TRACKER_SIZE=5000
  44 +KETTLE_JOBENTRY_LOG_SCHEMA=
  45 +KETTLE_BATCHING_ROWSET=N
  46 +KETTLE_STEP_LOG_TABLE=
  47 +KETTLE_CARTE_OBJECT_TIMEOUT_MINUTES=1440
  48 +KETTLE_CHANNEL_LOG_SCHEMA=
  49 +KETTLE_JOBENTRY_LOG_DB=
  50 +KETTLE_CARTE_JETTY_RES_MAX_IDLE_TIME=
  51 +KETTLE_CARTE_JETTY_ACCEPT_QUEUE_SIZE=
  52 +PENTAHO_METASTORE_FOLDER=
  53 +KETTLE_STEP_LOG_DB=
  54 +KETTLE_CARTE_JETTY_ACCEPTORS=
  55 +KETTLE_DEFAULT_NUMBER_FORMAT=
  56 +KETTLE_PASSWORD_ENCODER_PLUGIN=Kettle
  57 +KETTLE_LOG_SIZE_LIMIT=0
  58 +KETTLE_REDIRECT_STDOUT=N
  59 +KETTLE_MAX_LOG_SIZE_IN_LINES=5000
  60 +KETTLE_CORE_STEPS_FILE=
  61 +KETTLE_DEFAULT_SERVLET_ENCODING=
  62 +KETTLE_SYSTEM_HOSTNAME=
  63 +KETTLE_CHANNEL_LOG_TABLE=
  64 +KETTLE_DEFAULT_BIGNUMBER_FORMAT=
  65 +KETTLE_TRANS_LOG_TABLE=
  66 +KETTLE_METRICS_LOG_TABLE=
  67 +KETTLE_AGGREGATION_ALL_NULLS_ARE_ZERO=N
  68 +KETTLE_TRANS_PERFORMANCE_LOG_SCHEMA=
  69 +KETTLE_COMPATIBILITY_TEXT_FILE_OUTPUT_APPEND_NO_HEADER=N
  70 +
  71 +v_db_uname=root
  72 +v_db_pwd=
  73 +v_db_ip=localhost
src/main/resources/static/pages/base/carpark/add.html
@@ -120,7 +120,7 @@ @@ -120,7 +120,7 @@
120 <!-- 站点位置 --> 120 <!-- 站点位置 -->
121 <div class="tab-pane" id="tab2"> 121 <div class="tab-pane" id="tab2">
122 <h3 class="block"> 站点位置 </h3> 122 <h3 class="block"> 站点位置 </h3>
123 - <div id="bmap_basic"></div> 123 + <div id="addCarParkbmap_basic"></div>
124 124
125 <div class="leftUtils"> 125 <div class="leftUtils">
126 <div class="btn-group" style="left: 100px;"> 126 <div class="btn-group" style="left: 100px;">
src/main/resources/static/pages/base/carpark/css/carpark-add.css
@@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
7 padding-top: 7px; 7 padding-top: 7px;
8 top: 400px; 8 top: 400px;
9 } 9 }
10 -#bmap_basic{ 10 +#addCarParkbmap_basic{
11 min-width: 100%; 11 min-width: 100%;
12 width: 100%; 12 width: 100%;
13 margin-top: -28px; 13 margin-top: -28px;
src/main/resources/static/pages/base/carpark/css/positions.css
1 -#bmap_basic{ 1 +#carParkbmap_basic{
2 min-width: 100%; 2 min-width: 100%;
3 width: calc(100% + 26px); 3 width: calc(100% + 26px);
4 margin-top: -28px; 4 margin-top: -28px;
src/main/resources/static/pages/base/carpark/edit_select.html
@@ -143,6 +143,10 @@ $(&#39;#editPositions_select_mobal&#39;).on(&#39;editSelectMobal_show&#39;, function(e, map,fun, @@ -143,6 +143,10 @@ $(&#39;#editPositions_select_mobal&#39;).on(&#39;editSelectMobal_show&#39;, function(e, map,fun,
143 // 隐藏弹出层 143 // 隐藏弹出层
144 $('#editPositions_select_mobal').modal('hide'); 144 $('#editPositions_select_mobal').modal('hide');
145 145
  146 + $('#eidt').attr("disabled",true);
  147 +  
  148 + $('#eidt').addClass('btn disabled');
  149 +
146 // 表单序列 150 // 表单序列
147 var params = form.serializeJSON(); 151 var params = form.serializeJSON();
148 152
src/main/resources/static/pages/base/carpark/js/add-form-events.js
@@ -12,13 +12,13 @@ $(function(){ @@ -12,13 +12,13 @@ $(function(){
12 12
13 $('#oppenDrawingManager').on('click',function() { 13 $('#oppenDrawingManager').on('click',function() {
14 14
15 - VmapWorlds.drawingManagerOpen(); 15 + addCarParkVmapWorlds.drawingManagerOpen();
16 16
17 }); 17 });
18 18
19 $('#closeDrawingManager').on('click',function() { 19 $('#closeDrawingManager').on('click',function() {
20 20
21 - VmapWorlds.drawingManagerClose(); 21 + addCarParkVmapWorlds.drawingManagerClose();
22 22
23 }); 23 });
24 24
src/main/resources/static/pages/base/carpark/js/add-form-reload.js
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 25
26 FormWizard.init(); 26 FormWizard.init();
27 27
28 - mapB = VmapWorlds.init(); 28 + mapB = addCarParkVmapWorlds.init();
29 29
30 PublicFunctions.getCarParkCode(function(carParkCode) { 30 PublicFunctions.getCarParkCode(function(carParkCode) {
31 31
src/main/resources/static/pages/base/carpark/js/add-form-wizard.js
@@ -266,19 +266,27 @@ var FormWizard = function() { @@ -266,19 +266,27 @@ var FormWizard = function() {
266 // 设置停车场名称 266 // 设置停车场名称
267 $('#parkNameInput').val(stationNameV); 267 $('#parkNameInput').val(stationNameV);
268 268
269 - VmapWorlds.localSearchFromAdreesToPoint(stationNameV,function(p) {});  
270 -  
271 if(baseResValue == 0) { 269 if(baseResValue == 0) {
272 -  
273 - $('.leftUtils').hide();  
274 -  
275 - VmapWorlds.pointsCircle(p);  
276 270
  271 + $('.leftUtils').hide();
  272 +
  273 + addCarParkVmapWorlds.localSearchFromAdreesToPoint(stationNameV,function(p) {
  274 +
  275 + if(p) {
  276 +
  277 + addCarParkVmapWorlds.pointsCircle(p);
  278 +
  279 + }
  280 +
  281 + });
  282 +
277 }else if(baseResValue ==1) { 283 }else if(baseResValue ==1) {
278 284
  285 + addCarParkVmapWorlds.localSearchFromAdreesToPoint(stationNameV,function(p) {});
  286 +
279 $('.leftUtils').show(); 287 $('.leftUtils').show();
280 288
281 - VmapWorlds.drawingManagerOpen(); 289 + addCarParkVmapWorlds.drawingManagerOpen();
282 290
283 } 291 }
284 } 292 }
@@ -353,9 +361,9 @@ var FormWizard = function() { @@ -353,9 +361,9 @@ var FormWizard = function() {
353 361
354 if(index==2) { 362 if(index==2) {
355 363
356 - VmapWorlds.clearMarkAndOverlays(); 364 + addCarParkVmapWorlds.clearMarkAndOverlays();
357 365
358 - VmapWorlds.drawingManagerClose(); 366 + addCarParkVmapWorlds.drawingManagerClose();
359 367
360 } 368 }
361 369
@@ -372,11 +380,11 @@ var FormWizard = function() { @@ -372,11 +380,11 @@ var FormWizard = function() {
372 380
373 if(index ==0) { 381 if(index ==0) {
374 382
375 - VmapWorlds.drawingManagerClose(); 383 + addCarParkVmapWorlds.drawingManagerClose();
376 384
377 } 385 }
378 386
379 - VmapWorlds.clearMarkAndOverlays(); 387 + addCarParkVmapWorlds.clearMarkAndOverlays();
380 388
381 handleTitle(tab, navigation, index); 389 handleTitle(tab, navigation, index);
382 390
src/main/resources/static/pages/base/carpark/js/add-vmap-world.js
1 -var VmapWorlds = function() { 1 +var addCarParkVmapWorlds = function() {
2 2
3 var mapB = '', circle = '', drawingManager = '',circle='',marker=''; 3 var mapB = '', circle = '', drawingManager = '',circle='',marker='';
4 4
@@ -13,7 +13,7 @@ var VmapWorlds = function() { @@ -13,7 +13,7 @@ var VmapWorlds = function() {
13 var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT'; 13 var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT';
14 14
15 // 初始化百度地图 15 // 初始化百度地图
16 - mapB = new BMap.Map("bmap_basic"); 16 + mapB = new BMap.Map("addCarParkbmap_basic");
17 17
18 //中心点和缩放级别 18 //中心点和缩放级别
19 mapB.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15); 19 mapB.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15);
src/main/resources/static/pages/base/carpark/js/carpark-positions-events.js
@@ -16,7 +16,7 @@ $(function(){ @@ -16,7 +16,7 @@ $(function(){
16 16
17 $(pjaxContainer).append(m); 17 $(pjaxContainer).append(m);
18 18
19 - $('#editPositions_select_mobal').trigger('editSelectMobal_show', [WorldsBMap,PublicFunctions,EditCarParkObj,GetAjaxData]); 19 + $('#editPositions_select_mobal').trigger('editSelectMobal_show', [CarParkPWorldsBMap,PublicFunctions,EditCarParkObj,GetAjaxData]);
20 20
21 }); 21 });
22 22
src/main/resources/static/pages/base/carpark/js/carpark-positions-function.js
@@ -41,10 +41,10 @@ var PublicFunctions = function () { @@ -41,10 +41,10 @@ var PublicFunctions = function () {
41 var nameV = r[0].carParkName; 41 var nameV = r[0].carParkName;
42 42
43 /** 根据名称定位 */ 43 /** 根据名称定位 */
44 - WorldsBMap.localSearchFromAdreesToPoint(nameV); 44 + CarParkPWorldsBMap.localSearchFromAdreesToPoint(nameV);
45 45
46 // 打开绘制工具 46 // 打开绘制工具
47 - WorldsBMap.openDrawingManager(); 47 + CarParkPWorldsBMap.openDrawingManager();
48 48
49 }); 49 });
50 50
@@ -213,12 +213,12 @@ var PublicFunctions = function () { @@ -213,12 +213,12 @@ var PublicFunctions = function () {
213 if(stationShapesType == 'r') { 213 if(stationShapesType == 'r') {
214 214
215 /** 画圆 @param:<r:停车场信息;point:中心点;htm:信息窗口html文本;pots:信息窗口参数属性> */ 215 /** 画圆 @param:<r:停车场信息;point:中心点;htm:信息窗口html文本;pots:信息窗口参数属性> */
216 - WorldsBMap.pointsCircle(r,point,htm,opts); 216 + CarParkPWorldsBMap.pointsCircle(r,point,htm,opts);
217 217
218 }else if(stationShapesType == 'd'){ 218 }else if(stationShapesType == 'd'){
219 219
220 /** 画多边形 @param:<r:停车场信息;point:中心点;htm:信息窗口html文本;pots:信息窗口参数属性> */ 220 /** 画多边形 @param:<r:停车场信息;point:中心点;htm:信息窗口html文本;pots:信息窗口参数属性> */
221 - WorldsBMap.pointsPolygon(r,point,htm,opts); 221 + CarParkPWorldsBMap.pointsPolygon(r,point,htm,opts);
222 222
223 } 223 }
224 } 224 }
src/main/resources/static/pages/base/carpark/js/carpark-positions-map.js
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 * 3 *
4 */ 4 */
5 5
6 -var WorldsBMap = function () { 6 +var CarParkPWorldsBMap = function () {
7 7
8 var mapValue='',drawingManager='',marker='',circle='',polygon=''; 8 var mapValue='',drawingManager='',marker='',circle='',polygon='';
9 9
@@ -18,7 +18,7 @@ var WorldsBMap = function () { @@ -18,7 +18,7 @@ var WorldsBMap = function () {
18 var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT'; 18 var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT';
19 19
20 // 初始化百度地图 20 // 初始化百度地图
21 - mapValue = new BMap.Map("bmap_basic"); 21 + mapValue = new BMap.Map("carParkbmap_basic");
22 22
23 //中心点和缩放级别 23 //中心点和缩放级别
24 mapValue.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15); 24 mapValue.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15);
@@ -141,7 +141,7 @@ var WorldsBMap = function () { @@ -141,7 +141,7 @@ var WorldsBMap = function () {
141 141
142 $(pjaxContainer).append(m); 142 $(pjaxContainer).append(m);
143 143
144 - $('#editPoitsions_carpark_mobal').trigger('editCarParkMobal_show', [WorldsBMap,PublicFunctions,EditCarParkObj,GetAjaxData]); 144 + $('#editPoitsions_carpark_mobal').trigger('editCarParkMobal_show', [CarParkPWorldsBMap,PublicFunctions,EditCarParkObj,GetAjaxData]);
145 145
146 }); 146 });
147 147
@@ -370,7 +370,7 @@ var WorldsBMap = function () { @@ -370,7 +370,7 @@ var WorldsBMap = function () {
370 370
371 $(pjaxContainer).append(m); 371 $(pjaxContainer).append(m);
372 372
373 - $('#editPoitsions_carpark_mobal').trigger('editCarParkMobal_show', [WorldsBMap,PublicFunctions,EditCarParkObj,GetAjaxData]); 373 + $('#editPoitsions_carpark_mobal').trigger('editCarParkMobal_show', [CarParkPWorldsBMap,PublicFunctions,EditCarParkObj,GetAjaxData]);
374 374
375 }); 375 });
376 376
@@ -428,7 +428,7 @@ var WorldsBMap = function () { @@ -428,7 +428,7 @@ var WorldsBMap = function () {
428 428
429 $(pjaxContainer).append(m); 429 $(pjaxContainer).append(m);
430 430
431 - $('#editPoitsions_carpark_mobal').trigger('editCarParkMobal_show', [WorldsBMap,PublicFunctions,EditCarParkObj,GetAjaxData]); 431 + $('#editPoitsions_carpark_mobal').trigger('editCarParkMobal_show', [CarParkPWorldsBMap,PublicFunctions,EditCarParkObj,GetAjaxData]);
432 432
433 }); 433 });
434 434
src/main/resources/static/pages/base/carpark/js/carpark-positions-reload.js
@@ -28,7 +28,7 @@ @@ -28,7 +28,7 @@
28 setTimeout(function(){ 28 setTimeout(function(){
29 29
30 // 地图初始化 30 // 地图初始化
31 - mapB = WorldsBMap.init(); 31 + mapB = CarParkPWorldsBMap.init();
32 32
33 /** 停车场信息初始化 @param:<id:停车场ID> */ 33 /** 停车场信息初始化 @param:<id:停车场ID> */
34 PublicFunctions.initCarPark(id); 34 PublicFunctions.initCarPark(id);
src/main/resources/static/pages/base/carpark/positions.html
1 <link href="/pages/base/carpark/css/positions.css" rel="stylesheet" type="text/css" /> 1 <link href="/pages/base/carpark/css/positions.css" rel="stylesheet" type="text/css" />
2 2
3 <!-- 地图容器--> 3 <!-- 地图容器-->
4 -<div id="bmap_basic"></div> 4 +<div id="carParkbmap_basic"></div>
5 5
6 <!-- 操作工具容器 --> 6 <!-- 操作工具容器 -->
7 <div class="leftUtils"> 7 <div class="leftUtils">
src/main/resources/static/pages/base/section/add.html
1 -<link href="/pages/base/station/css/addmap.css" rel="stylesheet" type="text/css" /> 1 +<link href="/pages/base/section/css/addmap.css" rel="stylesheet" type="text/css" />
2 <div class="page-head"> 2 <div class="page-head">
3 <div class="page-title"> 3 <div class="page-title">
4 <h1>添加路段</h1> 4 <h1>添加路段</h1>
@@ -131,7 +131,7 @@ @@ -131,7 +131,7 @@
131 <!-- 站点位置 --> 131 <!-- 站点位置 -->
132 <div class="tab-pane" id="tab2"> 132 <div class="tab-pane" id="tab2">
133 <h3 class="block"> 路段位置 </h3> 133 <h3 class="block"> 路段位置 </h3>
134 - <div id="bmap_basic"></div> 134 + <div id="sectionBmap_basic"></div>
135 </div> 135 </div>
136 136
137 <!-- 站点信息 --> 137 <!-- 站点信息 -->
src/main/resources/static/pages/base/section/css/addmap.css 0 → 100644
  1 +#sectionBmap_basic{
  2 + min-width: 100%;
  3 + width: 100%;
  4 + margin-top: -28px;
  5 + border: 2px solid #fdfdfd;
  6 + min-height: 400px;
  7 + height:100%;
  8 + overflow: hidden;
  9 + top: 15px;
  10 +}
  11 +
  12 +
  13 +/* 隐藏百度地图logo */
  14 +.anchorBL,
  15 +.anchorBL,
  16 +.amap-logo,
  17 +.amap-copyright{
  18 + display: none;
  19 +}
  20 +
  21 +.BMap_pop div:nth-child(1) ,
  22 +.BMap_pop div:nth-child(2) ,
  23 +.BMap_pop div:nth-child(3) ,
  24 +.BMap_pop div:nth-child(4) ,
  25 +.BMap_pop div:nth-child(5) ,
  26 +.BMap_pop div:nth-child(6) ,
  27 +.BMap_pop div:nth-child(7) {
  28 +
  29 + border:0px solid rgb(255, 255, 255) !important;
  30 + background-color:#3B3F51 !important;
  31 +
  32 +}
  33 +
  34 +.BMap_pop div:nth-child(3){
  35 +
  36 + width:23px !important;
  37 +
  38 +}
  39 +
  40 +.BMap_pop div:nth-child(7) {
  41 +
  42 + width:23px !important;
  43 +
  44 + height:24px !important;
  45 +
  46 +}
  47 +
  48 +.BMap_pop div:nth-child(5) {
  49 +
  50 + height:24px !important;
  51 +
  52 +}
  53 +
  54 +/* 图片以后在弄,先隐藏div */
  55 +.BMap_pop div:nth-child(8) {
  56 +
  57 + height:0px !important;
  58 + /* background:url('/pages/base/stationroute/css/img/iw3-1.png') no-repeat !important; */
  59 + /* background-image:url('/pages/base/stationroute/css/img/windowinfo_b.jpg') !important; */
  60 +
  61 +}
  62 +
  63 +.BMap_pop {
  64 +
  65 + box-shadow: 0 12px 15px 0 rgba(204, 204, 204, 0.33),0 17px 50px 0 rgba(204, 204, 204, 0.33)!important;
  66 +
  67 +}
0 \ No newline at end of file 68 \ No newline at end of file
src/main/resources/static/pages/base/section/css/positions.css
1 -#bmap_basic{ 1 +#sectionPbmap_basic{
2 min-width: 100%; 2 min-width: 100%;
3 width: calc(100% + 26px); 3 width: calc(100% + 26px);
4 margin-top: -28px; 4 margin-top: -28px;
src/main/resources/static/pages/base/section/js/add-form-events.js
@@ -12,13 +12,13 @@ $(function(){ @@ -12,13 +12,13 @@ $(function(){
12 12
13 $('#oppenDrawingManager').on('click',function() { 13 $('#oppenDrawingManager').on('click',function() {
14 14
15 - VmapWorlds.drawingManagerOpen(); 15 + SectionVmapWorlds.drawingManagerOpen();
16 16
17 }); 17 });
18 18
19 $('#closeDrawingManager').on('click',function() { 19 $('#closeDrawingManager').on('click',function() {
20 20
21 - VmapWorlds.drawingManagerClose(); 21 + SectionVmapWorlds.drawingManagerClose();
22 22
23 }); 23 });
24 24
src/main/resources/static/pages/base/section/js/add-form-reload.js
@@ -27,7 +27,7 @@ @@ -27,7 +27,7 @@
27 FormWizard.init(); 27 FormWizard.init();
28 28
29 // 地图初始化 29 // 地图初始化
30 - var mapB = VmapWorlds.init(); 30 + var mapB = SectionVmapWorlds.init();
31 31
32 /** 路段编码 */ 32 /** 路段编码 */
33 PublicFunctions.getSectionCode(function(sectionCode) { 33 PublicFunctions.getSectionCode(function(sectionCode) {
src/main/resources/static/pages/base/section/js/add-form-wizard.js
@@ -317,12 +317,12 @@ var FormWizard = function() { @@ -317,12 +317,12 @@ var FormWizard = function() {
317 if(baseResValue == 0) { 317 if(baseResValue == 0) {
318 318
319 // 根据站点名称获取百度坐标 319 // 根据站点名称获取百度坐标
320 - VmapWorlds.stationsNameToPoints(paramsStationsArray,function(resultJson) { 320 + SectionVmapWorlds.stationsNameToPoints(paramsStationsArray,function(resultJson) {
321 321
322 // 根据坐标点获取两点之间的时间与距离 322 // 根据坐标点获取两点之间的时间与距离
323 - VmapWorlds.getDistanceAndDuration(resultJson,function(stationdataList) { 323 + SectionVmapWorlds.getDistanceAndDuration(resultJson,function(stationdataList) {
324 324
325 - VmapWorlds.getSectionListPlonly(stationdataList,function(sectiondata) { 325 + SectionVmapWorlds.getSectionListPlonly(stationdataList,function(sectiondata) {
326 326
327 $('#bsectionVectorInput').val(JSON.stringify(sectiondata)); 327 $('#bsectionVectorInput').val(JSON.stringify(sectiondata));
328 328
@@ -333,11 +333,11 @@ var FormWizard = function() { @@ -333,11 +333,11 @@ var FormWizard = function() {
333 333
334 }else if(baseResValue ==1) { 334 }else if(baseResValue ==1) {
335 335
336 - VmapWorlds.localSearchFromAdreesToPoint(stationStartValue); 336 + SectionVmapWorlds.localSearchFromAdreesToPoint(stationStartValue);
337 337
338 - VmapWorlds.localSearchFromAdreesToPoint(stationEndValue); 338 + SectionVmapWorlds.localSearchFromAdreesToPoint(stationEndValue);
339 339
340 - VmapWorlds.drawingManagerOpen(); 340 + SectionVmapWorlds.drawingManagerOpen();
341 341
342 }else if(baseResValue ==2) { 342 }else if(baseResValue ==2) {
343 343
@@ -416,9 +416,9 @@ var FormWizard = function() { @@ -416,9 +416,9 @@ var FormWizard = function() {
416 416
417 if(index==2) { 417 if(index==2) {
418 418
419 - VmapWorlds.drawingManagerClose(); 419 + SectionVmapWorlds.drawingManagerClose();
420 420
421 - VmapWorlds.clearMarkAndOverlays(); 421 + SectionVmapWorlds.clearMarkAndOverlays();
422 422
423 } 423 }
424 424
@@ -432,11 +432,11 @@ var FormWizard = function() { @@ -432,11 +432,11 @@ var FormWizard = function() {
432 432
433 error.hide(); 433 error.hide();
434 434
435 - VmapWorlds.clearMarkAndOverlays(); 435 + SectionVmapWorlds.clearMarkAndOverlays();
436 436
437 if(index==0) { 437 if(index==0) {
438 438
439 - VmapWorlds.drawingManagerClose(); 439 + SectionVmapWorlds.drawingManagerClose();
440 440
441 } 441 }
442 442
src/main/resources/static/pages/base/section/js/add-vmap-world.js
1 -var VmapWorlds = function() { 1 +var SectionVmapWorlds = function() {
2 2
3 var mapB = '', drawingManager = ''; 3 var mapB = '', drawingManager = '';
4 4
@@ -13,7 +13,7 @@ var VmapWorlds = function() { @@ -13,7 +13,7 @@ var VmapWorlds = function() {
13 var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT'; 13 var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT';
14 14
15 // 初始化百度地图 15 // 初始化百度地图
16 - mapB = new BMap.Map("bmap_basic"); 16 + mapB = new BMap.Map("sectionBmap_basic");
17 17
18 //中心点和缩放级别 18 //中心点和缩放级别
19 mapB.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15); 19 mapB.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15);
src/main/resources/static/pages/base/section/js/section-positions-events.js
@@ -2,8 +2,8 @@ $(function(){ @@ -2,8 +2,8 @@ $(function(){
2 2
3 $('#backUp').on('click',function() { 3 $('#backUp').on('click',function() {
4 4
5 - // 获取返回元素并修改url地址  
6 - $('#backUp').attr('href','list.html?'); 5 + // 返回list.html页面
  6 + loadPage('/pages/base/section/list.html');
7 7
8 }); 8 });
9 9
@@ -17,7 +17,7 @@ $(function(){ @@ -17,7 +17,7 @@ $(function(){
17 // 弹出添加失败提示消息,2秒关闭(如果不配置,默认是3秒) 17 // 弹出添加失败提示消息,2秒关闭(如果不配置,默认是3秒)
18 var yindex = layer.msg('编辑完线路走向后,请双击线路走向区域保存',{ offset: '126px',shift: 0,time: 10000}); 18 var yindex = layer.msg('编辑完线路走向后,请双击线路走向区域保存',{ offset: '126px',shift: 0,time: 10000});
19 19
20 - WorldsBMap.editPolyUpline(); 20 + SectionPWorldsBMap.editPolyUpline();
21 21
22 }); 22 });
23 23
src/main/resources/static/pages/base/section/js/section-positions-function.js
@@ -18,7 +18,7 @@ var PositionsPublicFunctions = function () { @@ -18,7 +18,7 @@ var PositionsPublicFunctions = function () {
18 18
19 EditSectionObj.setEitdSection(sectionInfo); 19 EditSectionObj.setEitdSection(sectionInfo);
20 20
21 - WorldsBMap.drawingUpline(r); 21 + SectionPWorldsBMap.drawingUpline(r);
22 } 22 }
23 23
24 }); 24 });
src/main/resources/static/pages/base/section/js/section-positions-map.js
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 * 3 *
4 */ 4 */
5 5
6 -var WorldsBMap = function () { 6 +var SectionPWorldsBMap = function () {
7 7
8 var mapValue = '',marker='', polyUpline=''; 8 var mapValue = '',marker='', polyUpline='';
9 9
@@ -18,7 +18,7 @@ var WorldsBMap = function () { @@ -18,7 +18,7 @@ var WorldsBMap = function () {
18 var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT'; 18 var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT';
19 19
20 // 初始化百度地图 20 // 初始化百度地图
21 - mapValue = new BMap.Map('bmap_basic'); 21 + mapValue = new BMap.Map('sectionPbmap_basic');
22 22
23 //中心点和缩放级别 23 //中心点和缩放级别
24 mapValue.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15); 24 mapValue.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15);
@@ -133,7 +133,7 @@ var WorldsBMap = function () { @@ -133,7 +133,7 @@ var WorldsBMap = function () {
133 // 禁止覆盖物在map.clearOverlays方法中被清除。(自 1.1 新增) 133 // 禁止覆盖物在map.clearOverlays方法中被清除。(自 1.1 新增)
134 polyUpline.disableMassClear(); 134 polyUpline.disableMassClear();
135 135
136 - WorldsBMap.clearMarkAndOverlays(); 136 + SectionPWorldsBMap.clearMarkAndOverlays();
137 137
138 // 允许覆盖物在map.clearOverlays方法中被清除。(自 1.1 新增) 138 // 允许覆盖物在map.clearOverlays方法中被清除。(自 1.1 新增)
139 polyUpline.enableMassClear(); 139 polyUpline.enableMassClear();
@@ -161,7 +161,7 @@ var WorldsBMap = function () { @@ -161,7 +161,7 @@ var WorldsBMap = function () {
161 161
162 $(pjaxContainer).append(m); 162 $(pjaxContainer).append(m);
163 163
164 - $('#edit_section_mobal').trigger('editSectionMobal_show', [WorldsBMap,GetAjaxData,EditSectionObj,PositionsPublicFunctions]); 164 + $('#edit_section_mobal').trigger('editSectionMobal_show', [SectionPWorldsBMap,GetAjaxData,EditSectionObj,PositionsPublicFunctions]);
165 165
166 }); 166 });
167 }); 167 });
src/main/resources/static/pages/base/section/js/section-positions-reload.js
@@ -28,7 +28,7 @@ @@ -28,7 +28,7 @@
28 setTimeout(function(){ 28 setTimeout(function(){
29 29
30 /** 初始化地图 @return <mapB:地图对象> */ 30 /** 初始化地图 @return <mapB:地图对象> */
31 - var mapB = WorldsBMap.init(); 31 + var mapB = SectionPWorldsBMap.init();
32 32
33 /** 初始化路段信息 @return <id:路段路由ID> */ 33 /** 初始化路段信息 @return <id:路段路由ID> */
34 PositionsPublicFunctions.initSectionInfo(id); 34 PositionsPublicFunctions.initSectionInfo(id);
src/main/resources/static/pages/base/section/list.html
@@ -104,7 +104,11 @@ @@ -104,7 +104,11 @@
104 {{obj.line.name}} 104 {{obj.line.name}}
105 </td> 105 </td>
106 <td> 106 <td>
107 - {{obj.directions}} 107 + {{if obj.directions == '0'}}
  108 + 上行
  109 + {{else if obj.directions == '1'}}
  110 + 下行
  111 + {{/if}}
108 </td> 112 </td>
109 <td> 113 <td>
110 {{obj.section.sectionName}} 114 {{obj.section.sectionName}}
@@ -119,7 +123,11 @@ @@ -119,7 +123,11 @@
119 {{obj.versions}} 123 {{obj.versions}}
120 </td> 124 </td>
121 <td> 125 <td>
122 - {{obj.destroy}} 126 + {{if obj.destroy == 1}}
  127 + <span style="font-weight: bold; color: red; padding: 5px; background-color: #FFE4E1; margin: 5px; font-size: 9px;border-radius: 4px;">撤销</span>
  128 + {{else if obj.destroy == 0}}
  129 + <span style="font-weight: bold; color: #07824e; padding: 5px; background-color: #FFE4E1; margin: 5px; font-size: 9px;border-radius: 4px;">运营</span>
  130 + {{/if}}
123 </td> 131 </td>
124 <td> 132 <td>
125 <a href="positions.html?no={{obj.id}}" class="btn default blue-stripe btn-sm" data-pjax> 定位 </a> 133 <a href="positions.html?no={{obj.id}}" class="btn default blue-stripe btn-sm" data-pjax> 定位 </a>
src/main/resources/static/pages/base/section/positions.html
1 <link href="/pages/base/section/css/positions.css" rel="stylesheet" type="text/css" /> 1 <link href="/pages/base/section/css/positions.css" rel="stylesheet" type="text/css" />
2 2
3 -<div id="bmap_basic"></div> 3 +<div id="sectionPbmap_basic"></div>
4 4
5 <div class="leftUtils"> 5 <div class="leftUtils">
6 <div class="btn-group" style="left: 100px;"> 6 <div class="btn-group" style="left: 100px;">
src/main/resources/static/pages/base/station/add.html
@@ -22,6 +22,12 @@ @@ -22,6 +22,12 @@
22 <span class="step-title"> 1 - 4 </span> 22 <span class="step-title"> 1 - 4 </span>
23 </span> 23 </span>
24 </div> 24 </div>
  25 +
  26 + <div class="actions">
  27 + <div class="btn-group btn-group-devided" data-toggle="buttons">
  28 + <a class="btn btn-circle default" href="/pages/base/station/list.html" style="float: right;padding: 4px 23px;" data-pjax=""><i class="fa fa-reply"></i> 退出</a>
  29 + </div>
  30 + </div>
25 </div> 31 </div>
26 <div class="portlet-body form"> 32 <div class="portlet-body form">
27 33
@@ -120,7 +126,7 @@ @@ -120,7 +126,7 @@
120 <!-- 站点位置 --> 126 <!-- 站点位置 -->
121 <div class="tab-pane" id="tab2"> 127 <div class="tab-pane" id="tab2">
122 <h3 class="block"> 站点位置 </h3> 128 <h3 class="block"> 站点位置 </h3>
123 - <div id="bmap_basic"> 129 + <div id="stationbmap_basic">
124 130
125 <div class="leftUtils"> 131 <div class="leftUtils">
126 <div class="btn-group" style="left: 100px;"> 132 <div class="btn-group" style="left: 100px;">
src/main/resources/static/pages/base/station/css/addmap.css
1 -#bmap_basic{ 1 +#stationbmap_basic{
2 min-width: 100%; 2 min-width: 100%;
3 width: 100%; 3 width: 100%;
4 margin-top: -28px; 4 margin-top: -28px;
src/main/resources/static/pages/base/station/css/positions.css
1 -#bmap_basic{ 1 +#positionBmap_basic{
2 min-width: 100%; 2 min-width: 100%;
3 width: calc(100% + 26px); 3 width: calc(100% + 26px);
4 margin-top: -28px; 4 margin-top: -28px;
src/main/resources/static/pages/base/station/js/add-form-events.js
@@ -12,13 +12,13 @@ $(function(){ @@ -12,13 +12,13 @@ $(function(){
12 12
13 $('#oppenDrawingManager').on('click',function() { 13 $('#oppenDrawingManager').on('click',function() {
14 14
15 - VmapWorlds.drawingManagerOpen(); 15 + StationPVmapWorlds.drawingManagerOpen();
16 16
17 }); 17 });
18 18
19 $('#closeDrawingManager').on('click',function() { 19 $('#closeDrawingManager').on('click',function() {
20 20
21 - VmapWorlds.drawingManagerClose(); 21 + StationPVmapWorlds.drawingManagerClose();
22 22
23 }); 23 });
24 24
src/main/resources/static/pages/base/station/js/add-form-reload.js
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 25
26 FormWizard.init(); 26 FormWizard.init();
27 27
28 - var mapB = VmapWorlds.init(); 28 + var mapB = StationPVmapWorlds.init();
29 29
30 PublicFunctions.getStationCode(function(stationCode) { 30 PublicFunctions.getStationCode(function(stationCode) {
31 31
src/main/resources/static/pages/base/station/js/add-form-wizard.js
@@ -178,8 +178,6 @@ var FormWizard = function() { @@ -178,8 +178,6 @@ var FormWizard = function() {
178 // 表单序列化 178 // 表单序列化
179 var params = form.serializeJSON(); 179 var params = form.serializeJSON();
180 180
181 - console.log(params);  
182 -  
183 //保存站点 181 //保存站点
184 PublicFunctions.stationSave(params,function(data) { 182 PublicFunctions.stationSave(params,function(data) {
185 183
@@ -324,26 +322,31 @@ var FormWizard = function() { @@ -324,26 +322,31 @@ var FormWizard = function() {
324 322
325 $('#stationNameInput').val(stationNameV); 323 $('#stationNameInput').val(stationNameV);
326 324
327 - VmapWorlds.localSearchFromAdreesToPoint(stationNameV,function(p) {  
328 -  
329 - if(p) {  
330 -  
331 - if(baseResValue == 0) {  
332 -  
333 - $('.leftUtils').hide();  
334 -  
335 - VmapWorlds.pointsCircle(p);  
336 -  
337 - }else if(baseResValue ==1) {  
338 -  
339 - $('.leftUtils').show();  
340 -  
341 - VmapWorlds.drawingManagerOpen();  
342 -  
343 - }  
344 - }  
345 -  
346 - }); 325 + if(baseResValue == 0) {
  326 +
  327 + StationPVmapWorlds.localSearchFromAdreesToPoint(stationNameV,function(p) {
  328 +
  329 + if(p) {
  330 +
  331 + $('.leftUtils').hide();
  332 +
  333 + StationPVmapWorlds.pointsCircle(p);
  334 +
  335 + }
  336 +
  337 + });
  338 +
  339 +
  340 + }else if(baseResValue ==1) {
  341 +
  342 + StationPVmapWorlds.localSearchFromAdreesToPoint(stationNameV,function(p) {});
  343 +
  344 + $('.leftUtils').show();
  345 +
  346 + StationPVmapWorlds.drawingManagerOpen();
  347 +
  348 + }
  349 +
347 } 350 }
348 351
349 /** 如果为最后一步显示提交按钮,隐藏下一步按钮,否则隐藏提交按钮,显示下一步按钮 */ 352 /** 如果为最后一步显示提交按钮,隐藏下一步按钮,否则隐藏提交按钮,显示下一步按钮 */
@@ -385,6 +388,8 @@ var FormWizard = function() { @@ -385,6 +388,8 @@ var FormWizard = function() {
385 /** 当一个导航标签被点击,返回错误的移动到该选项卡,并显示它的内容. */ 388 /** 当一个导航标签被点击,返回错误的移动到该选项卡,并显示它的内容. */
386 onTabClick: function (tab, navigation, index, clickedIndex) { 389 onTabClick: function (tab, navigation, index, clickedIndex) {
387 390
  391 + return false;
  392 +
388 success.hide(); 393 success.hide();
389 394
390 error.hide(); 395 error.hide();
@@ -414,7 +419,7 @@ var FormWizard = function() { @@ -414,7 +419,7 @@ var FormWizard = function() {
414 419
415 if(index==2) { 420 if(index==2) {
416 421
417 - VmapWorlds.clearMarkAndOverlays(); 422 + StationPVmapWorlds.clearMarkAndOverlays();
418 423
419 } 424 }
420 425
@@ -434,7 +439,7 @@ var FormWizard = function() { @@ -434,7 +439,7 @@ var FormWizard = function() {
434 439
435 error.hide(); 440 error.hide();
436 441
437 - VmapWorlds.clearMarkAndOverlays(); 442 + StationPVmapWorlds.clearMarkAndOverlays();
438 443
439 /* mapB.clearOverlays(); 444 /* mapB.clearOverlays();
440 445
src/main/resources/static/pages/base/station/js/add-vmap-world.js
1 -var VmapWorlds = function() { 1 +var StationPVmapWorlds = function() {
2 2
3 var mapB = '', circle = '', drawingManager = '',circle='',marker=''; 3 var mapB = '', circle = '', drawingManager = '',circle='',marker='';
4 4
@@ -13,7 +13,7 @@ var VmapWorlds = function() { @@ -13,7 +13,7 @@ var VmapWorlds = function() {
13 var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT'; 13 var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT';
14 14
15 // 初始化百度地图 15 // 初始化百度地图
16 - mapB = new BMap.Map("bmap_basic"); 16 + mapB = new BMap.Map("stationbmap_basic");
17 17
18 //中心点和缩放级别 18 //中心点和缩放级别
19 mapB.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15); 19 mapB.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15);
src/main/resources/static/pages/base/station/js/station-positions-events.js
@@ -3,8 +3,8 @@ $(function(){ @@ -3,8 +3,8 @@ $(function(){
3 // 返回 3 // 返回
4 $('#backUp').on('click',function() { 4 $('#backUp').on('click',function() {
5 5
6 - // 获取返回元素并修改url地址  
7 - $('#backUp').attr('href','list.html?'); 6 + // 返回list.html页面
  7 + loadPage('/pages/base/station/list.html');
8 8
9 }); 9 });
10 10
src/main/resources/static/pages/base/station/js/station-positions-map.js
@@ -25,7 +25,7 @@ var StationPositionsWorldsBMap = function () { @@ -25,7 +25,7 @@ var StationPositionsWorldsBMap = function () {
25 var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT'; 25 var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT';
26 26
27 // 初始化百度地图 27 // 初始化百度地图
28 - mapBValue = new BMap.Map("bmap_basic"); 28 + mapBValue = new BMap.Map("positionBmap_basic");
29 29
30 //中心点和缩放级别 30 //中心点和缩放级别
31 mapBValue.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15); 31 mapBValue.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15);
src/main/resources/static/pages/base/station/list.html
@@ -117,7 +117,11 @@ @@ -117,7 +117,11 @@
117 {{obj.line.name}} 117 {{obj.line.name}}
118 </td> 118 </td>
119 <td> 119 <td>
120 - {{obj.directions}} 120 + {{if obj.directions == '0'}}
  121 + 上行
  122 + {{else if obj.directions == '1'}}
  123 + 下行
  124 + {{/if}}
121 </td> 125 </td>
122 <td> 126 <td>
123 {{obj.stationName}} 127 {{obj.stationName}}
@@ -128,14 +132,24 @@ @@ -128,14 +132,24 @@
128 <td> 132 <td>
129 {{obj.stationRouteCode}} 133 {{obj.stationRouteCode}}
130 </td> 134 </td>
131 - <td>  
132 - {{obj.stationMark}} 135 + <td>
  136 + {{if obj.stationMark == 'B'}}
  137 + 起始站
  138 + {{else if obj.stationMark == 'Z'}}
  139 + 中途站
  140 + {{else if obj.stationMark== 'E'}}
  141 + 终点站
  142 + {{/if}}
133 </td> 143 </td>
134 <td> 144 <td>
135 {{obj.versions}} 145 {{obj.versions}}
136 </td> 146 </td>
137 <td> 147 <td>
138 - {{obj.destroy}} 148 + {{if obj.destroy == 1}}
  149 + <span style="font-weight: bold; color: red; padding: 5px; background-color: #FFE4E1; margin: 5px; font-size: 9px;border-radius: 4px;">撤销</span>
  150 + {{else if obj.destroy == 0}}
  151 + <span style="font-weight: bold; color: #07824e; padding: 5px; background-color: #FFE4E1; margin: 5px; font-size: 9px;border-radius: 4px;">运营</span>
  152 + {{/if}}
139 </td> 153 </td>
140 <td> 154 <td>
141 <a href="positions.html?no={{obj.id}}" class="btn default blue-stripe btn-sm" data-pjax> 定位 </a> 155 <a href="positions.html?no={{obj.id}}" class="btn default blue-stripe btn-sm" data-pjax> 定位 </a>
src/main/resources/static/pages/base/station/positions.html
1 <link href="/pages/base/station/css/positions.css" rel="stylesheet" type="text/css" /> 1 <link href="/pages/base/station/css/positions.css" rel="stylesheet" type="text/css" />
2 2
3 <!-- 地图容器 --> 3 <!-- 地图容器 -->
4 -<div id="bmap_basic"></div> 4 +<div id="positionBmap_basic"></div>
5 5
6 <!-- 操作工具容器disabled --> 6 <!-- 操作工具容器disabled -->
7 <div class="leftUtils"> 7 <div class="leftUtils">
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/dataImport.html
@@ -68,5 +68,5 @@ @@ -68,5 +68,5 @@
68 </div> 68 </div>
69 69
70 <div class="modal-footer"> 70 <div class="modal-footer">
71 - <button class="btn btn-primary" ng-click="ctrl.close()">关闭</button> 71 + <button class="btn btn-primary" ng-click="ctrl.close()" ng-disabled="item.isUploading">关闭</button>
72 </div> 72 </div>
73 \ No newline at end of file 73 \ No newline at end of file
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/list.html
@@ -4,15 +4,15 @@ @@ -4,15 +4,15 @@
4 <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column"> 4 <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column">
5 <thead> 5 <thead>
6 <tr role="row" class="heading"> 6 <tr role="row" class="heading">
7 - <th class="mixTd" style="width: 50pt;">序号</th>  
8 - <th class="mixTd">车辆编号</th>  
9 - <th class="mixTd">内部编号</th>  
10 - <th class="mixTd">设备编号</th>  
11 - <th class="mixTd">车牌号</th>  
12 - <th class="mixTd" style="width: 150pt;">所在公司</th>  
13 - <th class="mixTd">所在分公司</th>  
14 - <th class="mixTd" style="width: 80pt;">是否电车</th>  
15 - <th class="mixTd" style="width: 120pt">操作</th> 7 + <th style="width: 40pt;">序号</th>
  8 + <th >车辆编号</th>
  9 + <th >内部编号</th>
  10 + <th >设备编号</th>
  11 + <th >车牌号</th>
  12 + <th style="width: 105pt;">所在公司</th>
  13 + <th >所在分公司</th>
  14 + <th style="width: 60pt">是否电车</th>
  15 + <th style="width: 115pt">操作</th>
16 </tr> 16 </tr>
17 <tr role="row" class="filter"> 17 <tr role="row" class="filter">
18 <td></td> 18 <td></td>
@@ -58,31 +58,31 @@ @@ -58,31 +58,31 @@
58 </thead> 58 </thead>
59 <tbody> 59 <tbody>
60 <tr ng-repeat="info in ctrl.pageInfo.infos" class="odd gradeX"> 60 <tr ng-repeat="info in ctrl.pageInfo.infos" class="odd gradeX">
61 - <td class="mixTd"> 61 + <td>
62 <span ng-bind="$index + 1"></span> 62 <span ng-bind="$index + 1"></span>
63 </td> 63 </td>
64 - <td class="mixTd"> 64 + <td>
65 <span ng-bind="info.carCode"></span> 65 <span ng-bind="info.carCode"></span>
66 </td> 66 </td>
67 - <td class="mixTd"> 67 + <td>
68 <span ng-bind="info.insideCode"></span> 68 <span ng-bind="info.insideCode"></span>
69 </td> 69 </td>
70 - <td class="mixTd"> 70 + <td>
71 <span ng-bind="info.equipmentCode"></span> 71 <span ng-bind="info.equipmentCode"></span>
72 </td> 72 </td>
73 - <td class="mixTd"> 73 + <td>
74 <span ng-bind="info.carPlate"></span> 74 <span ng-bind="info.carPlate"></span>
75 </td> 75 </td>
76 - <td class="mixTd"> 76 + <td>
77 <span ng-bind="info.company"></span> 77 <span ng-bind="info.company"></span>
78 </td> 78 </td>
79 - <td class="mixTd"> 79 + <td>
80 <span ng-bind="info.brancheCompany"></span> 80 <span ng-bind="info.brancheCompany"></span>
81 </td> 81 </td>
82 - <td class="mixTd"> 82 + <td>
83 <span ng-bind="info.sfdc | dict:'truefalseType':'未知' "></span> 83 <span ng-bind="info.sfdc | dict:'truefalseType':'未知' "></span>
84 </td> 84 </td>
85 - <td class="mixTd"> 85 + <td>
86 <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>--> 86 <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>-->
87 <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>--> 87 <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>-->
88 <a ui-sref="busInfoManage_detail({id: info.id})" class="btn default blue-stripe btn-sm"> 详细 </a> 88 <a ui-sref="busInfoManage_detail({id: info.id})" class="btn default blue-stripe btn-sm"> 详细 </a>
src/main/resources/static/pages/scheduleApp/module/basicInfo/deviceInfoManage/list.html
1 <!-- ui-route deviceInfoManage.list --> 1 <!-- ui-route deviceInfoManage.list -->
2 <div ng-controller="DeviceInfoManageListCtrl as ctrl"> 2 <div ng-controller="DeviceInfoManageListCtrl as ctrl">
3 - <table class="table table-striped table-bordered table-hover table-checkable order-column">  
4 - <thead>  
5 - <tr role="row" class="heading">  
6 - <th>  
7 - <input type="checkbox" class="group-checkable"/>  
8 - </th>  
9 - <th>序号</th>  
10 - <th>线路名称</th>  
11 - <th>内部编号</th>  
12 - <th>创建时间</th>  
13 - <th>旧设备编号</th>  
14 - <th>新设备编号</th>  
15 - <th>旧SIM卡</th>  
16 - <th>新SIM卡</th>  
17 - <th>操作时间</th>  
18 - <th width="14%">操作</th>  
19 - </tr>  
20 - <tr role="row" class="filter">  
21 - <td></td>  
22 - <td></td>  
23 - <td>  
24 - <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().xlName_like"/>  
25 - </td>  
26 - <td>  
27 - <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().clZbh_like"/>  
28 - </td>  
29 - <td></td>  
30 - <td>  
31 - <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().oldDeviceNo_like"/>  
32 - </td>  
33 - <td>  
34 - <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().newDeviceNo_like"/>  
35 - </td>  
36 - <td>  
37 - <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().oldSimNo_like"/>  
38 - </td>  
39 - <td>  
40 - <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().newSimNo_like"/>  
41 - </td>  
42 - <td></td>  
43 - <td>  
44 - <button class="btn btn-sm green btn-outline filter-submit margin-bottom"  
45 - ng-click="ctrl.pageChanaged()">  
46 - <i class="fa fa-search"></i> 搜索</button> 3 + <div style="width: 100%; height: 100%; overflow: auto">
  4 + <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column">
  5 + <thead>
  6 + <tr role="row" class="heading">
  7 + <th style="width: 40pt;">序号</th>
  8 + <th >线路名称</th>
  9 + <th>内部编号</th>
  10 + <th>创建时间</th>
  11 + <th>旧设备编号</th>
  12 + <th>新设备编号</th>
  13 + <th>旧SIM卡</th>
  14 + <th>新SIM卡</th>
  15 + <th>操作时间</th>
  16 + <th style="width: 115pt;">操作</th>
  17 + </tr>
  18 + <tr role="row" class="filter">
  19 + <td></td>
  20 + <td>
  21 + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().xlName_like"/>
  22 + </td>
  23 + <td>
  24 + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().clZbh_like"/>
  25 + </td>
  26 + <td></td>
  27 + <td>
  28 + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().oldDeviceNo_like"/>
  29 + </td>
  30 + <td>
  31 + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().newDeviceNo_like"/>
  32 + </td>
  33 + <td>
  34 + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().oldSimNo_like"/>
  35 + </td>
  36 + <td>
  37 + <input type="text" class="form-control input-sm" ng-model="ctrl.searchCondition().newSimNo_like"/>
  38 + </td>
  39 + <td></td>
  40 + <td>
  41 + <button class="btn btn-sm green btn-outline filter-submit margin-bottom"
  42 + ng-click="ctrl.pageChanaged()">
  43 + <i class="fa fa-search"></i> 搜索</button>
47 44
48 - <button class="btn btn-sm red btn-outline filter-cancel"  
49 - ng-click="ctrl.resetSearchCondition()">  
50 - <i class="fa fa-times"></i> 重置</button>  
51 - </td> 45 + <button class="btn btn-sm red btn-outline filter-cancel"
  46 + ng-click="ctrl.resetSearchCondition()">
  47 + <i class="fa fa-times"></i> 重置</button>
  48 + </td>
52 49
53 - </tr>  
54 - </thead>  
55 - <tbody>  
56 - <tr ng-repeat="info in ctrl.pageInfo.infos" class="odd gradeX">  
57 - <td>  
58 - <input type="checkbox"/>  
59 - </td>  
60 - <td>  
61 - <span ng-bind="$index + 1"></span>  
62 - </td>  
63 - <td>  
64 - <span ng-bind="info.xlName"></span>  
65 - </td>  
66 - <td>  
67 - <span ng-bind="info.clZbh"></span>  
68 - </td>  
69 - <td>  
70 - <span ng-bind="info.createDate | date:'yyyy-MM-dd HH:mm:ss'"></span>  
71 - </td>  
72 - <td>  
73 - <span ng-bind="info.oldDeviceNo"></span>  
74 - </td>  
75 - <td>  
76 - <span ng-bind="info.newDeviceNo"></span>  
77 - </td>  
78 - <td>  
79 - <span ng-bind="info.oldSimNo"></span>  
80 - </td>  
81 - <td>  
82 - <span ng-bind="info.newSimNo"></span>  
83 - </td>  
84 - <td>  
85 - <span ng-bind="info.updateDate | date:'yyyy-MM-dd HH:mm:ss'"></span>  
86 - </td>  
87 - <td>  
88 - <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>-->  
89 - <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>-->  
90 - <a ui-sref="deviceInfoManage_detail({id: info.id})" class="btn default blue-stripe btn-sm"> 详细 </a>  
91 - <a ui-sref="deviceInfoManage_edit({id: info.id})" class="btn default blue-stripe btn-sm"> 修改 </a>  
92 - </td>  
93 - </tr>  
94 - </tbody> 50 + </tr>
  51 + </thead>
  52 + <tbody>
  53 + <tr ng-repeat="info in ctrl.pageInfo.infos" class="odd gradeX">
  54 + <td>
  55 + <span ng-bind="$index + 1"></span>
  56 + </td>
  57 + <td>
  58 + <span ng-bind="info.xlName"></span>
  59 + </td>
  60 + <td>
  61 + <span ng-bind="info.clZbh"></span>
  62 + </td>
  63 + <td>
  64 + <span ng-bind="info.createDate | date:'yyyy-MM-dd HH:mm:ss'"></span>
  65 + </td>
  66 + <td>
  67 + <span ng-bind="info.oldDeviceNo"></span>
  68 + </td>
  69 + <td>
  70 + <span ng-bind="info.newDeviceNo"></span>
  71 + </td>
  72 + <td>
  73 + <span ng-bind="info.oldSimNo"></span>
  74 + </td>
  75 + <td>
  76 + <span ng-bind="info.newSimNo"></span>
  77 + </td>
  78 + <td>
  79 + <span ng-bind="info.updateDate | date:'yyyy-MM-dd HH:mm:ss'"></span>
  80 + </td>
  81 + <td>
  82 + <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>-->
  83 + <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>-->
  84 + <a ui-sref="deviceInfoManage_detail({id: info.id})" class="btn default blue-stripe btn-sm"> 详细 </a>
  85 + <a ui-sref="deviceInfoManage_edit({id: info.id})" class="btn default blue-stripe btn-sm"> 修改 </a>
  86 + </td>
  87 + </tr>
  88 + </tbody>
95 89
96 - </table> 90 + </table>
  91 + </div>
97 92
98 <div style="text-align: right;"> 93 <div style="text-align: right;">
99 <uib-pagination total-items="ctrl.pageInfo.totalItems" 94 <uib-pagination total-items="ctrl.pageInfo.totalItems"
src/main/resources/static/pages/scheduleApp/module/basicInfo/employeeInfoManage/list.html
@@ -4,14 +4,14 @@ @@ -4,14 +4,14 @@
4 <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column"> 4 <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column">
5 <thead> 5 <thead>
6 <tr role="row" class="heading"> 6 <tr role="row" class="heading">
7 - <th class="mixTd" width="50px">序号</th>  
8 - <th class="mixTd" width="80px">姓名</th>  
9 - <th class="mixTd" width="80px">工号</th>  
10 - <th class="mixTd" width="50px">性别</th>  
11 - <th class="mixTd" width="150px">所在公司</th>  
12 - <th class="mixTd">分公司</th>  
13 - <th class="mixTd" width="150px">工种</th>  
14 - <th class="mixTd" width="150px">操作</th> 7 + <th style="width: 40pt;">序号</th>
  8 + <th >姓名</th>
  9 + <th >工号</th>
  10 + <th style="width: 60pt;">性别</th>
  11 + <th style="width: 120pt;">所在公司</th>
  12 + <th >分公司</th>
  13 + <th style="width: 150pt;">工种</th>
  14 + <th style="width: 115pt;">操作</th>
15 </tr> 15 </tr>
16 <tr role="row" class="filter"> 16 <tr role="row" class="filter">
17 <td> 17 <td>
@@ -64,25 +64,25 @@ @@ -64,25 +64,25 @@
64 </thead> 64 </thead>
65 <tbody> 65 <tbody>
66 <tr ng-repeat="info in ctrl.pageInfo.infos" class="odd gradeX"> 66 <tr ng-repeat="info in ctrl.pageInfo.infos" class="odd gradeX">
67 - <td class="mixTd"> 67 + <td>
68 <span ng-bind="$index + 1"></span> 68 <span ng-bind="$index + 1"></span>
69 </td> 69 </td>
70 - <td class="mixTd"> 70 + <td>
71 <span ng-bind="info.personnelName"></span> 71 <span ng-bind="info.personnelName"></span>
72 </td> 72 </td>
73 - <td class="mixTd"> 73 + <td>
74 <span ng-bind="info.jobCode"></span> 74 <span ng-bind="info.jobCode"></span>
75 </td> 75 </td>
76 - <td class="mixTd"> 76 + <td>
77 <span ng-bind="info.personnelType | dict:'sexType':'未知'"></span> 77 <span ng-bind="info.personnelType | dict:'sexType':'未知'"></span>
78 </td> 78 </td>
79 - <td class="mixTd"> 79 + <td>
80 <span ng-bind="info.company"></span> 80 <span ng-bind="info.company"></span>
81 </td> 81 </td>
82 - <td class="mixTd"> 82 + <td>
83 <span ng-bind="info.brancheCompany"></span> 83 <span ng-bind="info.brancheCompany"></span>
84 </td> 84 </td>
85 - <td class="mixTd"> 85 + <td>
86 <span ng-bind="info.posts | dict:'gzType':'未知'"></span> 86 <span ng-bind="info.posts | dict:'gzType':'未知'"></span>
87 </td> 87 </td>
88 <td> 88 <td>
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/form.html
@@ -58,25 +58,6 @@ @@ -58,25 +58,6 @@
58 线路必须选择 58 线路必须选择
59 </div> 59 </div>
60 </div> 60 </div>
61 - <div class="form-group has-success has-feedback">  
62 - <label class="col-md-2 control-label">时刻表*:</label>  
63 - <div class="col-md-3">  
64 - <sa-Select2 model="ctrl.schedulePlanManageForSave"  
65 - name="ttInfo"  
66 - required="true"  
67 - type="ttInfo"  
68 - modelcolname1="ttInfo_id"  
69 - datacolname1="id"  
70 - showcolname="name"  
71 - placeholder="请输拼音...">  
72 - </sa-Select2>  
73 - </div>  
74 - <!-- 隐藏块,显示验证信息 -->  
75 - <div class="alert alert-danger well-sm" ng-show="myForm.ttInfo.$error.required">  
76 - 时刻表必须选择  
77 - </div>  
78 - </div>  
79 -  
80 <div class="form-group"> 61 <div class="form-group">
81 <label class="col-md-2 control-label">开始日期*:</label> 62 <label class="col-md-2 control-label">开始日期*:</label>
82 <div class="col-md-3"> 63 <div class="col-md-3">
@@ -131,11 +112,10 @@ @@ -131,11 +112,10 @@
131 <div class="col-md-offset-3 col-md-4"> 112 <div class="col-md-offset-3 col-md-4">
132 <button type="submit" class="btn green" 113 <button type="submit" class="btn green"
133 ng-disabled="myForm.xl.$error.required || 114 ng-disabled="myForm.xl.$error.required ||
134 - myForm.ttInfo.$error.required ||  
135 myForm.scheduleFromTime.$error.required || 115 myForm.scheduleFromTime.$error.required ||
136 myForm.scheduleToTime.$error.required" 116 myForm.scheduleToTime.$error.required"
137 ><i class="fa fa-check"></i> 提交</button> 117 ><i class="fa fa-check"></i> 提交</button>
138 - <a type="button" class="btn default" ui-sref="busConfig" ><i class="fa fa-times"></i> 取消</a> 118 + <a type="button" class="btn default" ui-sref="schedulePlanManage" ><i class="fa fa-times"></i> 取消</a>
139 </div> 119 </div>
140 </div> 120 </div>
141 </div> 121 </div>
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/index.html
@@ -31,29 +31,6 @@ @@ -31,29 +31,6 @@
31 <i class="fa fa-plus"></i> 31 <i class="fa fa-plus"></i>
32 生成计划 32 生成计划
33 </a> 33 </a>
34 -  
35 - <div class="btn-group">  
36 - <a href="javascript:" class="btn red btn-outline btn-circle" data-toggle="dropdown">  
37 - <i class="fa fa-share"></i>  
38 - <span>系统工具</span>  
39 - <i class="fa fa-angle-down"></i>  
40 - </a>  
41 - <ul class="dropdown-menu pull-right">  
42 - <li>  
43 - <a href="javascript:" class="tool-action">  
44 - <i class="fa fa-file-excel-o"></i>  
45 - 导出excel  
46 - </a>  
47 - </li>  
48 - <li class="divider"></li>  
49 - <li>  
50 - <a href="javascript:" class="tool-action">  
51 - <i class="fa fa-refresh"></i>  
52 - 刷行数据  
53 - </a>  
54 - </li>  
55 - </ul>  
56 - </div>  
57 </div> 34 </div>
58 </div> 35 </div>
59 36
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/list.html
1 <!-- ui-route employeeInfoManage.list --> 1 <!-- ui-route employeeInfoManage.list -->
2 <div ng-controller="SchedulePlanManageListCtrl as ctrl"> 2 <div ng-controller="SchedulePlanManageListCtrl as ctrl">
3 - <table class="table table-striped table-bordered table-hover table-checkable order-column"> 3 + <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column">
4 <thead> 4 <thead>
5 <tr role="row" class="heading"> 5 <tr role="row" class="heading">
6 - <th>序号</th>  
7 - <th>线路</th>  
8 - <th>时刻表</th> 6 + <th style="width: 40pt;">序号</th>
  7 + <th style="width: 115pt;">线路</th>
  8 + <th style="width: 200pt;">时刻表</th>
9 <th>排班开始时间</th> 9 <th>排班开始时间</th>
10 <th>排班结束时间</th> 10 <th>排班结束时间</th>
11 <th>修改人</th> 11 <th>修改人</th>
12 <th>修改时间</th> 12 <th>修改时间</th>
13 - <th width="14%">操作</th> 13 + <th style="width: 115pt;">操作</th>
14 </tr> 14 </tr>
15 <tr role="row" class="filter"> 15 <tr role="row" class="filter">
16 <td></td> 16 <td></td>
17 <td> 17 <td>
18 - <div style="width: 150px">  
19 - <sa-Select2 model="ctrl.searchCondition()"  
20 - type="xl"  
21 - modelcolname1="xl.id_eq"  
22 - datacolname1="id"  
23 - showcolname="name"  
24 - placeholder="请输拼音...">  
25 - </sa-Select2>  
26 - </div> 18 + <sa-Select2 model="ctrl.searchCondition()"
  19 + type="xl"
  20 + modelcolname1="xl.id_eq"
  21 + datacolname1="id"
  22 + showcolname="name"
  23 + placeholder="请输拼音...">
  24 + </sa-Select2>
27 </td> 25 </td>
28 <td></td> 26 <td></td>
29 <td></td> 27 <td></td>
@@ -68,7 +66,7 @@ @@ -68,7 +66,7 @@
68 <td> 66 <td>
69 <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>--> 67 <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>-->
70 <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>--> 68 <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>-->
71 - <a ui-sref="schedulePlanInfoManage" class="btn default blue-stripe btn-sm"> 排班明细 </a> 69 + <a ui-sref="schedulePlanInfoManage({spid : info.id})" class="btn default blue-stripe btn-sm"> 排班明细 </a>
72 </td> 70 </td>
73 </tr> 71 </tr>
74 </tbody> 72 </tbody>
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/list_info.html
1 <!-- ui-route busInfoManage.list --> 1 <!-- ui-route busInfoManage.list -->
2 <div ng-controller="SchedulePlanInfoManageListCtrl as ctrl"> 2 <div ng-controller="SchedulePlanInfoManageListCtrl as ctrl">
3 - <table class="table table-striped table-bordered table-hover table-checkable order-column">  
4 - <thead>  
5 - <tr role="row" class="heading">  
6 - <th>  
7 - <input type="checkbox" class="group-checkable"/>  
8 - </th>  
9 - <th width="50">序号</th>  
10 - <th>线路</th>  
11 - <th>日期</th>  
12 - <th>路牌</th>  
13 - <th>车辆</th>  
14 - <th>备注</th>  
15 - <th>报道时间</th>  
16 - <th>出场时间</th>  
17 - <th>驾驶员</th>  
18 - <th>工号</th>  
19 - <th>售票员</th>  
20 - <th>工号</th>  
21 - <th>班次类型</th>  
22 - <th>发车时间</th> 3 + <div style="width: 100%; height: 100%; overflow: auto">
  4 + <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column">
  5 + <thead>
  6 + <tr role="row" class="heading">
  7 + <th style="width: 40pt;">序号</th>
  8 + <th>线路</th>
  9 + <th style="width: 80pt;">日期</th>
  10 + <th>路牌</th>
  11 + <th>车辆</th>
  12 + <th>备注</th>
  13 + <th>报道时间</th>
  14 + <th>出场时间</th>
  15 + <th>驾驶员</th>
  16 + <th>工号</th>
  17 + <th>售票员</th>
  18 + <th>工号</th>
  19 + <th>班次类型</th>
  20 + <th>发车时间</th>
23 21
24 - <!-- TODO:还有其他的 --> 22 + <!-- TODO:还有其他的 -->
25 23
26 - <th width="14%">操作</th>  
27 - </tr>  
28 - <tr role="row" class="filter">  
29 - <td></td>  
30 - <td></td>  
31 - <td></td>  
32 - <td></td>  
33 - <td></td>  
34 - <td></td>  
35 - <td></td>  
36 - <td></td>  
37 - <td></td>  
38 - <td></td>  
39 - <td></td>  
40 - <td></td>  
41 - <td></td>  
42 - <td></td>  
43 - <td></td> 24 + <th style="width: 115pt;">操作</th>
  25 + </tr>
  26 + <tr role="row" class="filter">
  27 + <td></td>
  28 + <td></td>
  29 + <td></td>
  30 + <td></td>
  31 + <td></td>
  32 + <td></td>
  33 + <td></td>
  34 + <td></td>
  35 + <td></td>
  36 + <td></td>
  37 + <td></td>
  38 + <td></td>
  39 + <td></td>
  40 + <td></td>
44 41
45 - <td>  
46 - <button class="btn btn-sm green btn-outline filter-submit margin-bottom"  
47 - ng-click="ctrl.pageChanaged()">  
48 - <i class="fa fa-search"></i> 搜索</button> 42 + <td>
  43 + <button class="btn btn-sm green btn-outline filter-submit margin-bottom"
  44 + ng-click="ctrl.pageChanaged()">
  45 + <i class="fa fa-search"></i> 搜索</button>
49 46
50 - <button class="btn btn-sm red btn-outline filter-cancel"  
51 - ng-click="ctrl.resetSearchCondition()">  
52 - <i class="fa fa-times"></i> 重置</button>  
53 - </td> 47 + <button class="btn btn-sm red btn-outline filter-cancel"
  48 + ng-click="ctrl.resetSearchCondition()">
  49 + <i class="fa fa-times"></i> 重置</button>
  50 + </td>
54 51
55 - </tr>  
56 - </thead>  
57 - <tbody>  
58 - <tr ng-repeat="info in ctrl.pageInfo.infos" class="odd gradeX">  
59 - <td>  
60 - <input type="checkbox"/>  
61 - </td>  
62 - <td>  
63 - <span ng-bind="$index + 1"></span>  
64 - </td> 52 + </tr>
  53 + </thead>
  54 + <tbody>
  55 + <tr ng-repeat="info in ctrl.pageInfo.infos" class="odd gradeX">
  56 + <td>
  57 + <span ng-bind="$index + 1"></span>
  58 + </td>
65 59
66 - <td>  
67 - <span ng-bind="info.xlName"></span>  
68 - </td>  
69 - <td>  
70 - <span ng-bind="info.scheduleDate | date: 'yyyy-MM-dd'"></span>  
71 - </td>  
72 - <td>  
73 - <span ng-bind="info.lpName"></span>  
74 - </td>  
75 - <td>  
76 - <span ng-bind="info.clZbh"></span>  
77 - </td>  
78 - <td></td>  
79 - <td>  
80 - <span ng-bind="info.bdTime"></span>  
81 - </td>  
82 - <td>  
83 - <span ng-bind="info.ccTime"></span>  
84 - </td>  
85 - <td>  
86 - <span ng-bind="info.jName"></span>  
87 - </td>  
88 - <td>  
89 - <span ng-bind="info.jGh"></span>  
90 - </td>  
91 - <td>  
92 - <span ng-bind="info.sName"></span>  
93 - </td>  
94 - <td>  
95 - <span ng-bind="info.sGh"></span>  
96 - </td>  
97 - <td>  
98 - <span ng-bind="info.bcType"></span>  
99 - </td>  
100 - <td>  
101 - <span ng-bind="info.fcsj"></span>  
102 - </td>  
103 -  
104 - <td>  
105 - <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>-->  
106 - <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>-->  
107 - <a ui-sref="#" class="btn default blue-stripe btn-sm"> 详细 </a>  
108 - <a ui-sref="#" class="btn default blue-stripe btn-sm"> 修改 </a>  
109 - </td>  
110 - </tr>  
111 - </tbody> 60 + <td>
  61 + <span ng-bind="info.xlName"></span>
  62 + </td>
  63 + <td>
  64 + <span ng-bind="info.scheduleDate | date: 'yyyy-MM-dd'"></span>
  65 + </td>
  66 + <td>
  67 + <span ng-bind="info.lpName"></span>
  68 + </td>
  69 + <td>
  70 + <span ng-bind="info.clZbh"></span>
  71 + </td>
  72 + <td></td>
  73 + <td>
  74 + <span ng-bind="info.bdTime"></span>
  75 + </td>
  76 + <td>
  77 + <span ng-bind="info.ccTime"></span>
  78 + </td>
  79 + <td>
  80 + <span ng-bind="info.jName"></span>
  81 + </td>
  82 + <td>
  83 + <span ng-bind="info.jGh"></span>
  84 + </td>
  85 + <td>
  86 + <span ng-bind="info.sName"></span>
  87 + </td>
  88 + <td>
  89 + <span ng-bind="info.sGh"></span>
  90 + </td>
  91 + <td>
  92 + <span ng-bind="info.bcType | dict:'ScheduleType':'未知' "></span>
  93 + </td>
  94 + <td>
  95 + <span ng-bind="info.fcsj"></span>
  96 + </td>
112 97
113 - </table> 98 + <td>
  99 + <!--<a href="details.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 详细 </a>-->
  100 + <!--<a href="edit.html?lineId={{obj.id}}" class="btn default blue-stripe btn-sm"> 修改 </a>-->
  101 + <a ui-sref="#" class="btn default blue-stripe btn-sm"> 详细 </a>
  102 + <a ui-sref="#" class="btn default blue-stripe btn-sm"> 修改 </a>
  103 + </td>
  104 + </tr>
  105 + </tbody>
  106 +
  107 + </table>
  108 + </div>
114 109
115 <div style="text-align: right;"> 110 <div style="text-align: right;">
116 <uib-pagination total-items="ctrl.pageInfo.totalItems" 111 <uib-pagination total-items="ctrl.pageInfo.totalItems"
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/schedulePlanInfoManage.js
@@ -35,9 +35,10 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;SchedulePlanInfoManageService&#39;, [&#39;Schedul @@ -35,9 +35,10 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;SchedulePlanInfoManageService&#39;, [&#39;Schedul
35 * @param params 查询参数 35 * @param params 查询参数
36 * @return 返回一个 promise 36 * @return 返回一个 promise
37 */ 37 */
38 - getPage: function() { 38 + getPage: function(spid) {
39 var params = currentSearchCondition; // 查询条件 39 var params = currentSearchCondition; // 查询条件
40 params.page = currentPageNo - 1; // 服务端页码从0开始 40 params.page = currentPageNo - 1; // 服务端页码从0开始
  41 + params["schedulePlan.id_eq"] = spid; // 排班id
41 return service.rest.list(params).$promise; 42 return service.rest.list(params).$promise;
42 } 43 }
43 44
@@ -45,8 +46,10 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;SchedulePlanInfoManageService&#39;, [&#39;Schedul @@ -45,8 +46,10 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;SchedulePlanInfoManageService&#39;, [&#39;Schedul
45 46
46 }]); 47 }]);
47 48
48 -angular.module('ScheduleApp').controller('SchedulePlanInfoManageCtrl', ['SchedulePlanInfoManageService', '$state', function(schedulePlanInfoManageService, $state) { 49 +angular.module('ScheduleApp').controller('SchedulePlanInfoManageCtrl', ['SchedulePlanInfoManageService', '$state', '$stateParams', '$scope', function(schedulePlanInfoManageService, $state, $stateParams, $scope) {
49 var self = this; 50 var self = this;
  51 + var spid = $stateParams.spid; // 排班规则id
  52 + $scope.spid = spid;
50 53
51 // 切换到form状态 54 // 切换到form状态
52 self.goForm = function() { 55 self.goForm = function() {
@@ -55,7 +58,7 @@ angular.module(&#39;ScheduleApp&#39;).controller(&#39;SchedulePlanInfoManageCtrl&#39;, [&#39;Schedul @@ -55,7 +58,7 @@ angular.module(&#39;ScheduleApp&#39;).controller(&#39;SchedulePlanInfoManageCtrl&#39;, [&#39;Schedul
55 } 58 }
56 }]); 59 }]);
57 60
58 -angular.module('ScheduleApp').controller('SchedulePlanInfoManageListCtrl', ['SchedulePlanInfoManageService', function(schedulePlanInfoManageService) { 61 +angular.module('ScheduleApp').controller('SchedulePlanInfoManageListCtrl', ['SchedulePlanInfoManageService', '$scope', function(schedulePlanInfoManageService, $scope) {
59 var self = this; 62 var self = this;
60 self.pageInfo = { 63 self.pageInfo = {
61 totalItems : 0, 64 totalItems : 0,
@@ -63,8 +66,10 @@ angular.module(&#39;ScheduleApp&#39;).controller(&#39;SchedulePlanInfoManageListCtrl&#39;, [&#39;Sch @@ -63,8 +66,10 @@ angular.module(&#39;ScheduleApp&#39;).controller(&#39;SchedulePlanInfoManageListCtrl&#39;, [&#39;Sch
63 infos: [] 66 infos: []
64 }; 67 };
65 68
  69 + var spid = $scope.spid;
  70 +
66 // 初始创建的时候,获取一次列表数据 71 // 初始创建的时候,获取一次列表数据
67 - schedulePlanInfoManageService.getPage().then( 72 + schedulePlanInfoManageService.getPage(spid).then(
68 function(result) { 73 function(result) {
69 self.pageInfo.totalItems = result.totalElements; 74 self.pageInfo.totalItems = result.totalElements;
70 self.pageInfo.currentPage = result.number + 1; 75 self.pageInfo.currentPage = result.number + 1;
@@ -83,7 +88,7 @@ angular.module(&#39;ScheduleApp&#39;).controller(&#39;SchedulePlanInfoManageListCtrl&#39;, [&#39;Sch @@ -83,7 +88,7 @@ angular.module(&#39;ScheduleApp&#39;).controller(&#39;SchedulePlanInfoManageListCtrl&#39;, [&#39;Sch
83 // 翻页的时候调用 88 // 翻页的时候调用
84 self.pageChanaged = function() { 89 self.pageChanaged = function() {
85 schedulePlanInfoManageService.setCurrentPageNo(self.pageInfo.currentPage); 90 schedulePlanInfoManageService.setCurrentPageNo(self.pageInfo.currentPage);
86 - schedulePlanInfoManageService.getPage().then( 91 + schedulePlanInfoManageService.getPage(spid).then(
87 function(result) { 92 function(result) {
88 self.pageInfo.totalItems = result.totalElements; 93 self.pageInfo.totalItems = result.totalElements;
89 self.pageInfo.currentPage = result.number + 1; 94 self.pageInfo.currentPage = result.number + 1;
src/main/resources/static/pages/scheduleApp/module/main.css
@@ -29,11 +29,21 @@ form input.ng-valid.ng-dirty.ng-valid-required { @@ -29,11 +29,21 @@ form input.ng-valid.ng-dirty.ng-valid-required {
29 margin-left: -10%; 29 margin-left: -10%;
30 } 30 }
31 31
32 -.mixTd { 32 +/* 固定表格,防止内容撑出表格 */
  33 +.fixTable {
  34 + table-layout: fixed;
  35 +}
  36 +
  37 +/** 内容不换行,多余的用...表示 */
  38 +.fixTable thead th {
  39 + white-space: nowrap;
  40 + overflow: hidden;
  41 + text-overflow: ellipsis;
  42 +}
  43 +
  44 +/** 内容不换行,多余的用...表示 */
  45 +.fixTable tbody td {
33 white-space: nowrap; 46 white-space: nowrap;
34 overflow: hidden; 47 overflow: hidden;
35 text-overflow: ellipsis; 48 text-overflow: ellipsis;
36 } 49 }
37 -.fixTable {  
38 - table-layout: fixed;  
39 -}  
40 \ No newline at end of file 50 \ No newline at end of file
src/main/resources/static/pages/scheduleApp/module/main.js
@@ -733,7 +733,7 @@ ScheduleApp.config([&#39;$stateProvider&#39;, &#39;$urlRouterProvider&#39;, function($stateProvi @@ -733,7 +733,7 @@ ScheduleApp.config([&#39;$stateProvider&#39;, &#39;$urlRouterProvider&#39;, function($stateProvi
733 733
734 // 排班计划明细管理模块 734 // 排班计划明细管理模块
735 .state("schedulePlanInfoManage", { 735 .state("schedulePlanInfoManage", {
736 - url: '/schedulePlanInfoManage', 736 + url: '/schedulePlanInfoManage/:spid',
737 views: { 737 views: {
738 "": { 738 "": {
739 templateUrl: 'pages/scheduleApp/module/core/schedulePlanManage/index_info.html' 739 templateUrl: 'pages/scheduleApp/module/core/schedulePlanManage/index_info.html'
@@ -1043,7 +1043,7 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;SchedulePlanInfoManageService_g&#39;, [&#39;$reso @@ -1043,7 +1043,7 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;SchedulePlanInfoManageService_g&#39;, [&#39;$reso
1043 return { 1043 return {
1044 rest : $resource( 1044 rest : $resource(
1045 '/spic/:id', 1045 '/spic/:id',
1046 - {order: 'createDate', direction: 'DESC', id: '@id_route'}, 1046 + {order: 'scheduleDate', direction: 'ASC', id: '@id_route'},
1047 { 1047 {
1048 list: { 1048 list: {
1049 method: 'GET', 1049 method: 'GET',