Commit 2114bebc94a0fa1c015ff34e189446b8c651c95e

Authored by 徐烜
1 parent 6b4e6d80

Update

src/main/java/com/bsth/entity/schedule/SchedulePlanInfo.java
@@ -178,40 +178,77 @@ public class SchedulePlanInfo { @@ -178,40 +178,77 @@ public class SchedulePlanInfo {
178 } 178 }
179 179
180 // 对应路牌套跑 180 // 对应路牌套跑
181 - public void setRerunInfoDylp(CarConfigInfo cc, EmployeeConfigInfo ec) {  
182 - // 关联的车辆信息  
183 - this.cl = cc.getCl().getId(); // 车辆id  
184 - this.clZbh = cc.getCl().getInsideCode(); // 自编号/内部编号  
185 -  
186 - // 关联的驾驶员  
187 - EmployeeConfigInfo employeeConfigInfo = ec; 181 + public void setRerunInfoDylp(CarConfigInfo cc, EmployeeConfigInfo ec, String useType) {
  182 + if ("hr".equals(useType)) {
  183 + // 关联的驾驶员
  184 + EmployeeConfigInfo employeeConfigInfo = ec;
188 185
189 - this.j = employeeConfigInfo.getJsy().getId(); 186 + this.j = employeeConfigInfo.getJsy().getId();
190 // this.jGh = employeeConfigInfo.getJsy().getJobCode(); 187 // this.jGh = employeeConfigInfo.getJsy().getJobCode();
191 - if (StringUtils.isNotEmpty(employeeConfigInfo.getJsy().getJobCode())) {  
192 - String[] jsy_temp = employeeConfigInfo.getJsy().getJobCode().split("-");  
193 - if (jsy_temp.length > 1) {  
194 - this.jGh = jsy_temp[1];  
195 - } else {  
196 - this.jGh = jsy_temp[0]; 188 + if (StringUtils.isNotEmpty(employeeConfigInfo.getJsy().getJobCode())) {
  189 + String[] jsy_temp = employeeConfigInfo.getJsy().getJobCode().split("-");
  190 + if (jsy_temp.length > 1) {
  191 + this.jGh = jsy_temp[1];
  192 + } else {
  193 + this.jGh = jsy_temp[0];
  194 + }
197 } 195 }
198 - }  
199 - this.jName = employeeConfigInfo.getJsy().getPersonnelName();  
200 - // 关联的售票员  
201 - if (employeeConfigInfo.getSpy() != null) {  
202 - this.s = employeeConfigInfo.getSpy().getId(); 196 + this.jName = employeeConfigInfo.getJsy().getPersonnelName();
  197 + // 关联的售票员
  198 + if (employeeConfigInfo.getSpy() != null) {
  199 + this.s = employeeConfigInfo.getSpy().getId();
203 // this.sGh = employeeConfigInfo.getSpy().getJobCode(); 200 // this.sGh = employeeConfigInfo.getSpy().getJobCode();
204 - if (StringUtils.isNotEmpty(employeeConfigInfo.getSpy().getJobCode())) {  
205 - String[] spy_temp = employeeConfigInfo.getSpy().getJobCode().split("-");  
206 - if (spy_temp.length > 1) {  
207 - this.sGh = spy_temp[1]; 201 + if (StringUtils.isNotEmpty(employeeConfigInfo.getSpy().getJobCode())) {
  202 + String[] spy_temp = employeeConfigInfo.getSpy().getJobCode().split("-");
  203 + if (spy_temp.length > 1) {
  204 + this.sGh = spy_temp[1];
  205 + } else {
  206 + this.sGh = spy_temp[0];
  207 + }
  208 + }
  209 +
  210 + this.sName = employeeConfigInfo.getSpy().getPersonnelName();
  211 + }
  212 + } else if ("hc".equals(useType)) {
  213 + // 关联的车辆信息
  214 + this.cl = cc.getCl().getId(); // 车辆id
  215 + this.clZbh = cc.getCl().getInsideCode(); // 自编号/内部编号
  216 + } else { // 所有的
  217 + // 关联的车辆信息
  218 + this.cl = cc.getCl().getId(); // 车辆id
  219 + this.clZbh = cc.getCl().getInsideCode(); // 自编号/内部编号
  220 +
  221 + // 关联的驾驶员
  222 + EmployeeConfigInfo employeeConfigInfo = ec;
  223 +
  224 + this.j = employeeConfigInfo.getJsy().getId();
  225 +// this.jGh = employeeConfigInfo.getJsy().getJobCode();
  226 + if (StringUtils.isNotEmpty(employeeConfigInfo.getJsy().getJobCode())) {
  227 + String[] jsy_temp = employeeConfigInfo.getJsy().getJobCode().split("-");
  228 + if (jsy_temp.length > 1) {
  229 + this.jGh = jsy_temp[1];
208 } else { 230 } else {
209 - this.sGh = spy_temp[0]; 231 + this.jGh = jsy_temp[0];
210 } 232 }
211 } 233 }
  234 + this.jName = employeeConfigInfo.getJsy().getPersonnelName();
  235 + // 关联的售票员
  236 + if (employeeConfigInfo.getSpy() != null) {
  237 + this.s = employeeConfigInfo.getSpy().getId();
  238 +// this.sGh = employeeConfigInfo.getSpy().getJobCode();
  239 + if (StringUtils.isNotEmpty(employeeConfigInfo.getSpy().getJobCode())) {
  240 + String[] spy_temp = employeeConfigInfo.getSpy().getJobCode().split("-");
  241 + if (spy_temp.length > 1) {
  242 + this.sGh = spy_temp[1];
  243 + } else {
  244 + this.sGh = spy_temp[0];
  245 + }
  246 + }
212 247
213 - this.sName = employeeConfigInfo.getSpy().getPersonnelName(); 248 + this.sName = employeeConfigInfo.getSpy().getPersonnelName();
  249 + }
214 } 250 }
  251 +
215 } 252 }
216 253
217 public SchedulePlanInfo( 254 public SchedulePlanInfo(
src/main/java/com/bsth/entity/schedule/rule/RerunRule.java
@@ -68,6 +68,8 @@ public class RerunRule extends BEntity { @@ -68,6 +68,8 @@ public class RerunRule extends BEntity {
68 /** 使用路牌 */ 68 /** 使用路牌 */
69 @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY) 69 @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
70 private GuideboardInfo useLp; 70 private GuideboardInfo useLp;
  71 + /** 对应路牌替换类型,hr;换人,hc:换车,all:换人换车 */
  72 + private String useType;
71 73
72 //--------- 对应班车 ----------/ 74 //--------- 对应班车 ----------/
73 /** 车辆配置 */ 75 /** 车辆配置 */
@@ -251,4 +253,12 @@ public class RerunRule extends BEntity { @@ -251,4 +253,12 @@ public class RerunRule extends BEntity {
251 public void setsName(String sName) { 253 public void setsName(String sName) {
252 this.sName = sName; 254 this.sName = sName;
253 } 255 }
  256 +
  257 + public String getUseType() {
  258 + return useType;
  259 + }
  260 +
  261 + public void setUseType(String useType) {
  262 + this.useType = useType;
  263 + }
254 } 264 }
src/main/java/com/bsth/entity/schedule/rule/ScheduleRule1Flat.java
@@ -76,6 +76,10 @@ public class ScheduleRule1Flat extends BEntity { @@ -76,6 +76,10 @@ public class ScheduleRule1Flat extends BEntity {
76 /** 翻班格式(类似格式:1110011)*/ 76 /** 翻班格式(类似格式:1110011)*/
77 private String fbgs; 77 private String fbgs;
78 78
  79 + /** 备注 */
  80 + @Column(length = 1000)
  81 + private String remark;
  82 +
79 public Long getId() { 83 public Long getId() {
80 return id; 84 return id;
81 } 85 }
@@ -164,4 +168,11 @@ public class ScheduleRule1Flat extends BEntity { @@ -164,4 +168,11 @@ public class ScheduleRule1Flat extends BEntity {
164 this.fbgs = fbgs; 168 this.fbgs = fbgs;
165 } 169 }
166 170
  171 + public String getRemark() {
  172 + return remark;
  173 + }
  174 +
  175 + public void setRemark(String remark) {
  176 + this.remark = remark;
  177 + }
167 } 178 }
src/main/java/com/bsth/service/schedule/impl/SchedulePlanServiceImpl.java
@@ -254,12 +254,15 @@ public class SchedulePlanServiceImpl extends BServiceImpl<SchedulePlan, Long> im @@ -254,12 +254,15 @@ public class SchedulePlanServiceImpl extends BServiceImpl<SchedulePlan, Long> im
254 List<RerunRule_input> rerunRule_inputs = scheduleRuleService.findRerunrule(Integer.parseInt(planResult.getXlId())); 254 List<RerunRule_input> rerunRule_inputs = scheduleRuleService.findRerunrule(Integer.parseInt(planResult.getXlId()));
255 logger.info("套跑数量 {} 组", rerunRule_inputs.size()); 255 logger.info("套跑数量 {} 组", rerunRule_inputs.size());
256 256
  257 + // 主线路id
  258 + Integer mainXlId = schedulePlan.getXl().getId();
  259 +
257 if (rerunRule_inputs.size() > 0) { 260 if (rerunRule_inputs.size() > 0) {
258 // 找出是对应路牌类型的线路,计算循环规则输出 261 // 找出是对应路牌类型的线路,计算循环规则输出
259 Set<String> xlids = new HashSet<>(); 262 Set<String> xlids = new HashSet<>();
260 for (RerunRule_input rerunRule_input: rerunRule_inputs) { 263 for (RerunRule_input rerunRule_input: rerunRule_inputs) {
261 if ("dylp".equals(rerunRule_input.getType())) { 264 if ("dylp".equals(rerunRule_input.getType())) {
262 - xlids.add(rerunRule_input.getXl()); 265 + xlids.add(rerunRule_input.getS_xl()); // 参与套跑的线路
263 } 266 }
264 } 267 }
265 268
@@ -309,6 +312,8 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im @@ -309,6 +312,8 @@ public class SchedulePlanServiceImpl extends BServiceImpl&lt;SchedulePlan, Long&gt; im
309 Date end1 = new Date(); 312 Date end1 = new Date();
310 logger.info("套跑规则计算,耗时 {} ms", end1.getTime() - start1.getTime()); 313 logger.info("套跑规则计算,耗时 {} ms", end1.getTime() - start1.getTime());
311 314
  315 + schedulePlan.getXl().setId(mainXlId);
  316 +
312 } 317 }
313 318
314 } 319 }
src/main/java/com/bsth/service/schedule/impl/TTInfoDetailServiceImpl.java
@@ -349,7 +349,7 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im @@ -349,7 +349,7 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
349 349
350 // 计算班次里程 350 // 计算班次里程
351 if (StringUtils.isNotEmpty(jhlc)) { 351 if (StringUtils.isNotEmpty(jhlc)) {
352 - if ("in".equals(bctype) || "out".equals(bctype)) { 352 + if ("in".equals(bctype) || "out".equals(bctype) || "ldks".equals(bctype)) {
353 bc_ks += 1; 353 bc_ks += 1;
354 lc_ks += Double.valueOf(jhlc); 354 lc_ks += Double.valueOf(jhlc);
355 355
src/main/java/com/bsth/service/schedule/rules/ScheduleRuleServiceImpl.java
@@ -44,6 +44,7 @@ public class ScheduleRuleServiceImpl implements ScheduleRuleService { @@ -44,6 +44,7 @@ public class ScheduleRuleServiceImpl implements ScheduleRuleService {
44 ", rerun_ttinfodetail_fcsjs as m_fcsjs " + 44 ", rerun_ttinfodetail_fcsjs as m_fcsjs " +
45 ", use_xl as s_dylp_xl " + 45 ", use_xl as s_dylp_xl " +
46 ", use_lp as s_dylp_lp " + 46 ", use_lp as s_dylp_lp " +
  47 + ", use_type as s_dylp_type " +
47 ", cl as s_dybc_cl " + 48 ", cl as s_dybc_cl " +
48 ", cl_zbh as s_dybc_clzbh " + 49 ", cl_zbh as s_dybc_clzbh " +
49 ", j as s_dybc_j " + 50 ", j as s_dybc_j " +
@@ -53,7 +54,7 @@ public class ScheduleRuleServiceImpl implements ScheduleRuleService { @@ -53,7 +54,7 @@ public class ScheduleRuleServiceImpl implements ScheduleRuleService {
53 ", s_gh as s_dybc_sgh " + 54 ", s_gh as s_dybc_sgh " +
54 ", s_name as s_dybc_sname " + 55 ", s_name as s_dybc_sname " +
55 "from bsth_c_s_rerun_rule " + 56 "from bsth_c_s_rerun_rule " +
56 - "where rerun_xl = ? "; 57 + "where is_cancel = 0 and rerun_xl = ? ";
57 58
58 final List<RerunRule_input> rerunRule_inputs = new ArrayList<>(); 59 final List<RerunRule_input> rerunRule_inputs = new ArrayList<>();
59 60
@@ -74,6 +75,7 @@ public class ScheduleRuleServiceImpl implements ScheduleRuleService { @@ -74,6 +75,7 @@ public class ScheduleRuleServiceImpl implements ScheduleRuleService {
74 if ("dylp".equals(resultSet.getString("type"))) { 75 if ("dylp".equals(resultSet.getString("type"))) {
75 rerunRule_input.setS_xl(String.valueOf(resultSet.getInt("s_dylp_xl"))); 76 rerunRule_input.setS_xl(String.valueOf(resultSet.getInt("s_dylp_xl")));
76 rerunRule_input.setS_lp(String.valueOf(resultSet.getLong("s_dylp_lp"))); 77 rerunRule_input.setS_lp(String.valueOf(resultSet.getLong("s_dylp_lp")));
  78 + rerunRule_input.setUsetype(resultSet.getString("s_dylp_type"));
77 } else if ("dybc".equals(resultSet.getString("type"))) { 79 } else if ("dybc".equals(resultSet.getString("type"))) {
78 rerunRule_input.setCl(resultSet.getInt("s_dybc_cl")); 80 rerunRule_input.setCl(resultSet.getInt("s_dybc_cl"));
79 rerunRule_input.setZbh(resultSet.getString("s_dybc_clzbh")); 81 rerunRule_input.setZbh(resultSet.getString("s_dybc_clzbh"));
src/main/java/com/bsth/service/schedule/rules/rerun/RerunRule_input.java
@@ -12,6 +12,7 @@ public class RerunRule_input { @@ -12,6 +12,7 @@ public class RerunRule_input {
12 private String type; // 套跑类型(dylp-对应路牌, dybc-对应班车) 12 private String type; // 套跑类型(dylp-对应路牌, dybc-对应班车)
13 private String s_xl; // 对应路牌,线路Id 13 private String s_xl; // 对应路牌,线路Id
14 private String s_lp; // 对应路牌,路牌Id 14 private String s_lp; // 对应路牌,路牌Id
  15 + private String usetype; // 对应路牌替换类型
15 16
16 private Integer cl; // 对应班车,车辆Id 17 private Integer cl; // 对应班车,车辆Id
17 private String zbh; // 对应班车,车辆自编号 18 private String zbh; // 对应班车,车辆自编号
@@ -141,4 +142,12 @@ public class RerunRule_input { @@ -141,4 +142,12 @@ public class RerunRule_input {
141 public void setSname(String sname) { 142 public void setSname(String sname) {
142 this.sname = sname; 143 this.sname = sname;
143 } 144 }
  145 +
  146 + public String getUsetype() {
  147 + return usetype;
  148 + }
  149 +
  150 + public void setUsetype(String usetype) {
  151 + this.usetype = usetype;
  152 + }
144 } 153 }
src/main/resources/rules/plan.drl
@@ -386,8 +386,14 @@ rule &quot;Calcu_SchedulePlanInfo&quot; @@ -386,8 +386,14 @@ rule &quot;Calcu_SchedulePlanInfo&quot;
386 // 时刻表id 386 // 时刻表id
387 String ttInfoId = ttInfoId_sd($lr.getTtInfoMapLoop(), sd); 387 String ttInfoId = ttInfoId_sd($lr.getTtInfoMapLoop(), sd);
388 TTInfoDetail_Wraps ttInfoDetail_wraps = (TTInfoDetail_Wraps) $tts.getWrapsMap().get(ttInfoId); 388 TTInfoDetail_Wraps ttInfoDetail_wraps = (TTInfoDetail_Wraps) $tts.getWrapsMap().get(ttInfoId);
389 - List detaillist = (List) ttInfoDetail_wraps.getDetailsMap().get(gid); 389 + if (ttInfoDetail_wraps == null) {
  390 + // 时刻表为空,直接跳过
  391 + // 如1118路,周末不开,此是时刻表指定一个空表
  392 + // TODO:这个以后要改的,选时刻表的规则要修正,没有默认的时刻表
  393 + continue;
  394 + }
390 395
  396 + List detaillist = (List) ttInfoDetail_wraps.getDetailsMap().get(gid);
391 if (detaillist == null) { 397 if (detaillist == null) {
392 // 这里翻到的路牌时刻表里可能没有, 398 // 这里翻到的路牌时刻表里可能没有,
393 // 因为没有考虑翻班格式(就是做几休几) 399 // 因为没有考虑翻班格式(就是做几休几)
src/main/resources/rules/rerun.drl
@@ -47,7 +47,7 @@ rule &quot;calcu_Dylp_CarConfig_Wraps&quot; @@ -47,7 +47,7 @@ rule &quot;calcu_Dylp_CarConfig_Wraps&quot;
47 $rp: RerunRule_param($xlId: mxlid) 47 $rp: RerunRule_param($xlId: mxlid)
48 $dylpxlid: String() from $rp.getXlIds_dylp() 48 $dylpxlid: String() from $rp.getXlIds_dylp()
49 then 49 then
50 - List carConfigInfos = carConfigInfoRepository.findByXlId(Integer.parseInt($xlId)); 50 + List carConfigInfos = carConfigInfoRepository.findByXlId(Integer.parseInt($dylpxlid));
51 51
52 Dylp_CarConfig_Wraps carConfig_wraps = new Dylp_CarConfig_Wraps(); 52 Dylp_CarConfig_Wraps carConfig_wraps = new Dylp_CarConfig_Wraps();
53 carConfig_wraps.setXlId($dylpxlid); 53 carConfig_wraps.setXlId($dylpxlid);
@@ -76,10 +76,10 @@ rule &quot;calcu_Dylp_EmployeeConfig_Wraps&quot; @@ -76,10 +76,10 @@ rule &quot;calcu_Dylp_EmployeeConfig_Wraps&quot;
76 $rp: RerunRule_param($xlId: mxlid) 76 $rp: RerunRule_param($xlId: mxlid)
77 $dylpxlid: String() from $rp.getXlIds_dylp() 77 $dylpxlid: String() from $rp.getXlIds_dylp()
78 then 78 then
79 - List employeeConfigInfos = employeeConfigInfoRepository.findByXlId(Integer.parseInt($xlId)); 79 + List employeeConfigInfos = employeeConfigInfoRepository.findByXlId(Integer.parseInt($dylpxlid));
80 80
81 Dylp_EmployeeConfig_Wraps employeeConfig_wraps = new Dylp_EmployeeConfig_Wraps(); 81 Dylp_EmployeeConfig_Wraps employeeConfig_wraps = new Dylp_EmployeeConfig_Wraps();
82 - employeeConfig_wraps.setXlId($xlId); 82 + employeeConfig_wraps.setXlId($dylpxlid);
83 employeeConfig_wraps.setEcMap(new HashMap()); 83 employeeConfig_wraps.setEcMap(new HashMap());
84 84
85 for (int i = 0; i < employeeConfigInfos.size(); i++) { 85 for (int i = 0; i < employeeConfigInfos.size(); i++) {
@@ -118,6 +118,8 @@ rule &quot;calcu_Dylp_ScheduleResult_output_wrap&quot; @@ -118,6 +118,8 @@ rule &quot;calcu_Dylp_ScheduleResult_output_wrap&quot;
118 wrap.setCc((CarConfigInfo) $ccmap.get($sr.getCarConfigId())); 118 wrap.setCc((CarConfigInfo) $ccmap.get($sr.getCarConfigId()));
119 wrap.setEc((EmployeeConfigInfo) $ecmap.get($sr.getEmployeeConfigId())); 119 wrap.setEc((EmployeeConfigInfo) $ecmap.get($sr.getEmployeeConfigId()));
120 120
  121 +// log.info("xlid = {}", $xlId);
  122 +
121 insert(wrap); 123 insert(wrap);
122 end 124 end
123 125
@@ -133,7 +135,7 @@ rule &quot;calcu_Dylp_rerun_update_dylp&quot; @@ -133,7 +135,7 @@ rule &quot;calcu_Dylp_rerun_update_dylp&quot;
133 ttinfo == $ttinfo.toString(), 135 ttinfo == $ttinfo.toString(),
134 lp == $lp.toString(), 136 lp == $lp.toString(),
135 fcsj == $fcsj, 137 fcsj == $fcsj,
136 - $sxl: s_xl, $slp: s_lp 138 + $sxl: s_xl, $slp: s_lp, $type: usetype
137 ) 139 )
138 $dsro: Dylp_ScheduleResult_output_wrap( 140 $dsro: Dylp_ScheduleResult_output_wrap(
139 xlId == $sxl, 141 xlId == $sxl,
@@ -143,7 +145,7 @@ rule &quot;calcu_Dylp_rerun_update_dylp&quot; @@ -143,7 +145,7 @@ rule &quot;calcu_Dylp_rerun_update_dylp&quot;
143 then 145 then
144 // log.info("TODO:测试 {}", $fcsj); 146 // log.info("TODO:测试 {}", $fcsj);
145 147
146 - $spi.setRerunInfoDylp($dsro.getCc(), $dsro.getEc()); 148 + $spi.setRerunInfoDylp($dsro.getCc(), $dsro.getEc(), $type);
147 149
148 end 150 end
149 151
src/main/resources/static/pages/scheduleApp/module/common/prj-common-globalservice.js
@@ -327,7 +327,7 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;GuideboardManageService_g&#39;, [&#39;$resource&#39;, @@ -327,7 +327,7 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;GuideboardManageService_g&#39;, [&#39;$resource&#39;,
327 return { 327 return {
328 rest: $resource( 328 rest: $resource(
329 '/gic/:id', 329 '/gic/:id',
330 - {order: 'xl,isCancel', direction: 'DESC,ASC', id: '@id'}, 330 + {order: 'xl,isCancel,lpNo', direction: 'DESC,ASC,ASC', id: '@id'},
331 { 331 {
332 list: { 332 list: {
333 method: 'GET', 333 method: 'GET',
src/main/resources/static/pages/scheduleApp/module/core/guideboardManage/service.js
@@ -3,7 +3,7 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;GuideboardManageService_g&#39;, [&#39;$resource&#39;, @@ -3,7 +3,7 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;GuideboardManageService_g&#39;, [&#39;$resource&#39;,
3 return { 3 return {
4 rest: $resource( 4 rest: $resource(
5 '/gic/:id', 5 '/gic/:id',
6 - {order: 'xl,isCancel', direction: 'DESC,ASC', id: '@id'}, 6 + {order: 'xl,isCancel,lpNo', direction: 'DESC,ASC,ASC', id: '@id'},
7 { 7 {
8 list: { 8 list: {
9 method: 'GET', 9 method: 'GET',
src/main/resources/static/pages/scheduleApp/module/core/rerunManage/edit.html
@@ -175,6 +175,14 @@ @@ -175,6 +175,14 @@
175 </div> 175 </div>
176 </div> 176 </div>
177 177
  178 + <div class="form-group has-success has-feedback"
  179 + ng-if="ctrl.rerunManageForSave.rerunType == 'dylp'">
  180 + <label class="col-md-2 control-label">替换类型:</label>
  181 + <div class="col-md-3">
  182 + <sa-Radiogroup model="ctrl.rerunManageForSave.useType" dicgroup="dylptype" name="useType"></sa-Radiogroup>
  183 + </div>
  184 + </div>
  185 +
178 186
179 <div class="form-group has-success has-feedback" ng-if="ctrl.rerunManageForSave.rerunType == 'dybc'"> 187 <div class="form-group has-success has-feedback" ng-if="ctrl.rerunManageForSave.rerunType == 'dybc'">
180 <label class="col-md-2 control-label">车辆配置*:</label> 188 <label class="col-md-2 control-label">车辆配置*:</label>
src/main/resources/static/pages/scheduleApp/module/core/rerunManage/form.html
@@ -175,6 +175,14 @@ @@ -175,6 +175,14 @@
175 </div> 175 </div>
176 </div> 176 </div>
177 177
  178 + <div class="form-group has-success has-feedback"
  179 + ng-if="ctrl.rerunManageForSave.rerunType == 'dylp'">
  180 + <label class="col-md-2 control-label">替换类型:</label>
  181 + <div class="col-md-3">
  182 + <sa-Radiogroup model="ctrl.rerunManageForSave.useType" dicgroup="dylptype" name="useType"></sa-Radiogroup>
  183 + </div>
  184 + </div>
  185 +
178 186
179 <div class="form-group has-success has-feedback" ng-if="ctrl.rerunManageForSave.rerunType == 'dybc'"> 187 <div class="form-group has-success has-feedback" ng-if="ctrl.rerunManageForSave.rerunType == 'dybc'">
180 <label class="col-md-2 control-label">车辆配置*:</label> 188 <label class="col-md-2 control-label">车辆配置*:</label>
src/main/resources/static/pages/scheduleApp/module/core/rerunManage/module.js
@@ -169,6 +169,7 @@ angular.module(&#39;ScheduleApp&#39;).controller( @@ -169,6 +169,7 @@ angular.module(&#39;ScheduleApp&#39;).controller(
169 } else { 169 } else {
170 // 初始表单,从查询条件中获取线路id 170 // 初始表单,从查询条件中获取线路id
171 self.rerunManageForSave.rerunXl.id = service.getSearchCondition()['rerunXl.id_eq']; 171 self.rerunManageForSave.rerunXl.id = service.getSearchCondition()['rerunXl.id_eq'];
  172 + self.rerunManageForSave.useType = "all";
172 } 173 }
173 174
174 // 提交方法 175 // 提交方法
src/main/resources/static/pages/scheduleApp/module/core/ttInfoManage/edit.html
@@ -167,20 +167,20 @@ @@ -167,20 +167,20 @@
167 required > 167 required >
168 </sa-Checkboxgroup> 168 </sa-Checkboxgroup>
169 169
170 - <input type="hidden" name="rule_days_h" ng-model="ctrl.ttInfoManageForForm.rule_days"  
171 - remote-Validation  
172 - remotevtype="tic_n_d"  
173 - remotevparam="{{ {'id_eq': ctrl.ttInfoManageForForm.id, 'xl.id_eq': ctrl.ttInfoManageForForm.xl.id, 'rule_days_eq': ctrl.ttInfoManageForForm.rule_days} | json}}"  
174 - /> 170 + <!--<input type="hidden" name="rule_days_h" ng-model="ctrl.ttInfoManageForForm.rule_days"-->
  171 + <!--remote-Validation-->
  172 + <!--remotevtype="tic_n_d"-->
  173 + <!--remotevparam="{{ {'id_eq': ctrl.ttInfoManageForForm.id, 'xl.id_eq': ctrl.ttInfoManageForForm.xl.id, 'rule_days_eq': ctrl.ttInfoManageForForm.rule_days} | json}}"-->
  174 + <!--/>-->
175 175
176 176
177 </div> 177 </div>
178 <div class="alert alert-danger well-sm" ng-show="myForm.rule_days.$error.required"> 178 <div class="alert alert-danger well-sm" ng-show="myForm.rule_days.$error.required">
179 请操作一下1 179 请操作一下1
180 </div> 180 </div>
181 - <div class="alert alert-danger well-sm" ng-show="myForm.rule_days_h.$error.remote">  
182 - 常规有效日重复  
183 - </div> 181 + <!--<div class="alert alert-danger well-sm" ng-show="myForm.rule_days_h.$error.remote">-->
  182 + <!--常规有效日重复-->
  183 + <!--</div>-->
184 </div> 184 </div>
185 185
186 <div class="form-group"> 186 <div class="form-group">
@@ -193,18 +193,18 @@ @@ -193,18 +193,18 @@
193 > 193 >
194 </sa-Dategroup> 194 </sa-Dategroup>
195 195
196 - <input type="hidden" name="special_days_h" ng-model="ctrl.ttInfoManageForForm.special_days"  
197 - remote-Validation  
198 - remotevtype="tic_s_d"  
199 - remotevparam="{{ {'id_eq': ctrl.ttInfoManageForForm.id, 'xl.id_eq': ctrl.ttInfoManageForForm.xl.id, 'special_days_eq': ctrl.ttInfoManageForForm.special_days} | json}}"  
200 - /> 196 + <!--<input type="hidden" name="special_days_h" ng-model="ctrl.ttInfoManageForForm.special_days"-->
  197 + <!--remote-Validation-->
  198 + <!--remotevtype="tic_s_d"-->
  199 + <!--remotevparam="{{ {'id_eq': ctrl.ttInfoManageForForm.id, 'xl.id_eq': ctrl.ttInfoManageForForm.xl.id, 'special_days_eq': ctrl.ttInfoManageForForm.special_days} | json}}"-->
  200 + <!--/>-->
201 </div> 201 </div>
202 <div class="alert alert-danger well-sm" ng-show="myForm.special_days.$error.required"> 202 <div class="alert alert-danger well-sm" ng-show="myForm.special_days.$error.required">
203 请操作一下2 203 请操作一下2
204 </div> 204 </div>
205 - <div class="alert alert-danger well-sm" ng-show="myForm.special_days_h.$error.remote">  
206 - 特殊有效日重复  
207 - </div> 205 + <!--<div class="alert alert-danger well-sm" ng-show="myForm.special_days_h.$error.remote">-->
  206 + <!--特殊有效日重复-->
  207 + <!--</div>-->
208 </div> 208 </div>
209 209
210 <!--<div class="form-group">--> 210 <!--<div class="form-group">-->
src/main/resources/static/pages/scheduleApp/module/core/ttInfoManage/form.html
@@ -167,18 +167,18 @@ @@ -167,18 +167,18 @@
167 required > 167 required >
168 </sa-Checkboxgroup> 168 </sa-Checkboxgroup>
169 169
170 - <input type="hidden" name="rule_days_h" ng-model="ctrl.ttInfoManageForForm.rule_days"  
171 - remote-Validation  
172 - remotevtype="tic_n_d"  
173 - remotevparam="{{ {'id_eq': ctrl.ttInfoManageForForm.id, 'xl.id_eq': ctrl.ttInfoManageForForm.xl.id, 'rule_days_eq': ctrl.ttInfoManageForForm.rule_days} | json}}"  
174 - /> 170 + <!--<input type="hidden" name="rule_days_h" ng-model="ctrl.ttInfoManageForForm.rule_days"-->
  171 + <!--remote-Validation-->
  172 + <!--remotevtype="tic_n_d"-->
  173 + <!--remotevparam="{{ {'id_eq': ctrl.ttInfoManageForForm.id, 'xl.id_eq': ctrl.ttInfoManageForForm.xl.id, 'rule_days_eq': ctrl.ttInfoManageForForm.rule_days} | json}}"-->
  174 + <!--/>-->
175 </div> 175 </div>
176 <div class="alert alert-danger well-sm" ng-show="myForm.rule_days.$error.required"> 176 <div class="alert alert-danger well-sm" ng-show="myForm.rule_days.$error.required">
177 请操作一下1 177 请操作一下1
178 </div> 178 </div>
179 - <div class="alert alert-danger well-sm" ng-show="myForm.rule_days_h.$error.remote">  
180 - 常规有效日重复  
181 - </div> 179 + <!--<div class="alert alert-danger well-sm" ng-show="myForm.rule_days_h.$error.remote">-->
  180 + <!--常规有效日重复-->
  181 + <!--</div>-->
182 </div> 182 </div>
183 183
184 <div class="form-group"> 184 <div class="form-group">
@@ -191,19 +191,19 @@ @@ -191,19 +191,19 @@
191 > 191 >
192 </sa-Dategroup> 192 </sa-Dategroup>
193 193
194 - <input type="hidden" name="special_days_h" ng-model="ctrl.ttInfoManageForForm.special_days"  
195 - remote-Validation  
196 - remotevtype="tic_s_d"  
197 - remotevparam="{{ {'id_eq': ctrl.ttInfoManageForForm.id, 'xl.id_eq': ctrl.ttInfoManageForForm.xl.id, 'special_days_eq': ctrl.ttInfoManageForForm.special_days} | json}}"  
198 - /> 194 + <!--<input type="hidden" name="special_days_h" ng-model="ctrl.ttInfoManageForForm.special_days"-->
  195 + <!--remote-Validation-->
  196 + <!--remotevtype="tic_s_d"-->
  197 + <!--remotevparam="{{ {'id_eq': ctrl.ttInfoManageForForm.id, 'xl.id_eq': ctrl.ttInfoManageForForm.xl.id, 'special_days_eq': ctrl.ttInfoManageForForm.special_days} | json}}"-->
  198 + <!--/>-->
199 </div> 199 </div>
200 <div class="alert alert-danger well-sm" ng-show="myForm.special_days.$error.required"> 200 <div class="alert alert-danger well-sm" ng-show="myForm.special_days.$error.required">
201 请操作一下2 201 请操作一下2
202 </div> 202 </div>
203 203
204 - <div class="alert alert-danger well-sm" ng-show="myForm.special_days_h.$error.remote">  
205 - 特殊有效日重复  
206 - </div> 204 + <!--<div class="alert alert-danger well-sm" ng-show="myForm.special_days_h.$error.remote">-->
  205 + <!--特殊有效日重复-->
  206 + <!--</div>-->
207 </div> 207 </div>
208 208
209 <!--<div class="form-group">--> 209 <!--<div class="form-group">-->
src/test/resources/testdata/problem.properties
@@ -9,10 +9,14 @@ @@ -9,10 +9,14 @@
9 9=下拉框貌似中文不能搜索 9 9=下拉框貌似中文不能搜索
10 10=时刻表明细编辑,环线,选上下行,上下的站点在下行站点列表里 10 10=时刻表明细编辑,环线,选上下行,上下的站点在下行站点列表里
11 ##11=人员基础信息导入问题,工号前要加公司代码 11 ##11=人员基础信息导入问题,工号前要加公司代码
12 -12=套跑规则嵌入到主排班规则中 12 +##12=套跑规则嵌入到主排班规则中
13 13=导入数据功能,需要加用户名 13 13=导入数据功能,需要加用户名
14 14=路牌编号自动生成 14 14=路牌编号自动生成
15 15=时刻表导入的时候表头后面不需要加数字 15 15=时刻表导入的时候表头后面不需要加数字
16 16=时间框中文 16 16=时间框中文
17 17=人员工号前公司编码自动加 17 17=人员工号前公司编码自动加
  18 +18=排班计划明细可以修改(修改到每个班次)
  19 +19=线路运营概览
  20 +20=排班规则备注
  21 +21=时刻表,两点间空驶,算空驶
18 22