Commit bdacb35328f6d10109a19011b34d390221b41c00
1 parent
5100c821
Update
Showing
10 changed files
with
924 additions
and
203 deletions
src/main/java/com/bsth/entity/schedule/rule/ScheduleRule1Flat.java
| @@ -73,13 +73,29 @@ public class ScheduleRule1Flat extends BEntity { | @@ -73,13 +73,29 @@ public class ScheduleRule1Flat extends BEntity { | ||
| 73 | @NotNull | 73 | @NotNull |
| 74 | private Integer ryStart; | 74 | private Integer ryStart; |
| 75 | 75 | ||
| 76 | - /** 翻班格式(类似格式:1110011)*/ | 76 | + /** 翻班格式(类似格式:1110011),其中0表示当天不做跳过,1表示跳 */ |
| 77 | private String fbgs; | 77 | private String fbgs; |
| 78 | 78 | ||
| 79 | + @Enumerated(EnumType.ORDINAL) | ||
| 80 | + private FbgsTypeEnum fbtype = FbgsTypeEnum.TIMETABLEMODE; | ||
| 81 | + | ||
| 79 | /** 备注 */ | 82 | /** 备注 */ |
| 80 | @Column(length = 1000) | 83 | @Column(length = 1000) |
| 81 | private String remark; | 84 | private String remark; |
| 82 | 85 | ||
| 86 | + /** 翻班格式类型 */ | ||
| 87 | + public static enum FbgsTypeEnum { | ||
| 88 | + /** | ||
| 89 | + * 时刻表模式,当前翻到的路牌如果在当前时刻表中不存在,则跳过 | ||
| 90 | + */ | ||
| 91 | + TIMETABLEMODE, | ||
| 92 | + /** | ||
| 93 | + * 翻班格式模式,使用格式决定跳不跳过翻班, | ||
| 94 | + * 翻班格式(类似格式:1110011),其中0表示当天不做跳过,1表示跳 | ||
| 95 | + */ | ||
| 96 | + FBGSMODE; | ||
| 97 | + } | ||
| 98 | + | ||
| 83 | public Long getId() { | 99 | public Long getId() { |
| 84 | return id; | 100 | return id; |
| 85 | } | 101 | } |
| @@ -175,4 +191,12 @@ public class ScheduleRule1Flat extends BEntity { | @@ -175,4 +191,12 @@ public class ScheduleRule1Flat extends BEntity { | ||
| 175 | public void setRemark(String remark) { | 191 | public void setRemark(String remark) { |
| 176 | this.remark = remark; | 192 | this.remark = remark; |
| 177 | } | 193 | } |
| 194 | + | ||
| 195 | + public FbgsTypeEnum getFbtype() { | ||
| 196 | + return fbtype; | ||
| 197 | + } | ||
| 198 | + | ||
| 199 | + public void setFbtype(FbgsTypeEnum fbtype) { | ||
| 200 | + this.fbtype = fbtype; | ||
| 201 | + } | ||
| 178 | } | 202 | } |
src/main/java/com/bsth/service/schedule/rules/shiftloop/ScheduleRule_input.java
| @@ -34,7 +34,9 @@ public class ScheduleRule_input { | @@ -34,7 +34,9 @@ public class ScheduleRule_input { | ||
| 34 | /** 车辆配置id */ | 34 | /** 车辆配置id */ |
| 35 | private String carConfigId; | 35 | private String carConfigId; |
| 36 | 36 | ||
| 37 | - /** 车辆翻版(周一到周日是否启用) */ | 37 | + /** 翻班模式 */ |
| 38 | + private Integer fbtype; | ||
| 39 | + /** 车辆翻班(周一到周日是否启用,可能是多个星期的组合,有的翻班是做六休一加做五休二) */ | ||
| 38 | private List<Boolean> weekdays = new ArrayList<>(); | 40 | private List<Boolean> weekdays = new ArrayList<>(); |
| 39 | 41 | ||
| 40 | /** 排班输入规则类型 */ | 42 | /** 排班输入规则类型 */ |
| @@ -66,19 +68,30 @@ public class ScheduleRule_input { | @@ -66,19 +68,30 @@ public class ScheduleRule_input { | ||
| 66 | this.carConfigId = String.valueOf(scheduleRule1Flat.getCarConfigInfo().getId()); | 68 | this.carConfigId = String.valueOf(scheduleRule1Flat.getCarConfigInfo().getId()); |
| 67 | 69 | ||
| 68 | /** 车辆翻版(周一到周日是否启用)*/ | 70 | /** 车辆翻版(周一到周日是否启用)*/ |
| 69 | - String fbgs_temp = null; | ||
| 70 | - if (StringUtils.isEmpty(scheduleRule1Flat.getFbgs()) || "1".equals(scheduleRule1Flat.getFbgs())) { | ||
| 71 | - fbgs_temp = "1,1,1,1,1,1,1"; | 71 | + if (scheduleRule1Flat.getFbtype() == null || scheduleRule1Flat.getFbtype() == ScheduleRule1Flat.FbgsTypeEnum.TIMETABLEMODE) { |
| 72 | + fbtype = ScheduleRule1Flat.FbgsTypeEnum.TIMETABLEMODE.ordinal(); | ||
| 73 | + weekdays.add(true); | ||
| 72 | } else { | 74 | } else { |
| 73 | - fbgs_temp = "1,1,1,1,1,0,0"; | ||
| 74 | -// fbgs_temp = scheduleRule1Flat.getFbgs(); | ||
| 75 | - } | ||
| 76 | - String[] days = fbgs_temp.split(","); | ||
| 77 | - for (int i = 0; i < 7; i++) { | ||
| 78 | - if ("1".equals(days[i])) { | 75 | + fbtype = ScheduleRule1Flat.FbgsTypeEnum.FBGSMODE.ordinal(); |
| 76 | + if (StringUtils.isEmpty(scheduleRule1Flat.getFbgs())) { // 全1 | ||
| 79 | weekdays.add(true); | 77 | weekdays.add(true); |
| 80 | - } else { | ||
| 81 | - weekdays.add(false); | 78 | + } else if (scheduleRule1Flat.getFbgs().indexOf(",") >= 0) { // 逗号分隔 |
| 79 | + for (String fb : scheduleRule1Flat.getFbgs().split(",")) { | ||
| 80 | + if ("1".equals(fb)) { | ||
| 81 | + weekdays.add(true); | ||
| 82 | + } else { | ||
| 83 | + weekdays.add(false); | ||
| 84 | + } | ||
| 85 | + } | ||
| 86 | + } else { // 一个一个字符分隔 | ||
| 87 | + for (int i = 0; i < scheduleRule1Flat.getFbgs().length(); i++) { | ||
| 88 | + if ("1".equals(scheduleRule1Flat.getFbgs().substring(i, i + 1))) { | ||
| 89 | + weekdays.add(true); | ||
| 90 | + } else { | ||
| 91 | + weekdays.add(false); | ||
| 92 | + } | ||
| 93 | + } | ||
| 94 | + | ||
| 82 | } | 95 | } |
| 83 | } | 96 | } |
| 84 | 97 | ||
| @@ -174,4 +187,12 @@ public class ScheduleRule_input { | @@ -174,4 +187,12 @@ public class ScheduleRule_input { | ||
| 174 | public void setsType(ScheduleRule_Type sType) { | 187 | public void setsType(ScheduleRule_Type sType) { |
| 175 | this.sType = sType; | 188 | this.sType = sType; |
| 176 | } | 189 | } |
| 190 | + | ||
| 191 | + public Integer getFbtype() { | ||
| 192 | + return fbtype; | ||
| 193 | + } | ||
| 194 | + | ||
| 195 | + public void setFbtype(Integer fbtype) { | ||
| 196 | + this.fbtype = fbtype; | ||
| 197 | + } | ||
| 177 | } | 198 | } |
src/main/resources/rules/shiftloop_fb_2.drl
| @@ -15,6 +15,8 @@ import com.bsth.service.schedule.rules.shiftloop.ScheduleResults_output; | @@ -15,6 +15,8 @@ import com.bsth.service.schedule.rules.shiftloop.ScheduleResults_output; | ||
| 15 | 15 | ||
| 16 | import com.bsth.entity.schedule.temp.SchedulePlanRuleResult; | 16 | import com.bsth.entity.schedule.temp.SchedulePlanRuleResult; |
| 17 | 17 | ||
| 18 | +import com.bsth.entity.schedule.SchedulePlan; | ||
| 19 | + | ||
| 18 | import com.bsth.service.schedule.rules.ScheduleRuleService; | 20 | import com.bsth.service.schedule.rules.ScheduleRuleService; |
| 19 | 21 | ||
| 20 | import org.slf4j.Logger; | 22 | import org.slf4j.Logger; |
| @@ -37,6 +39,10 @@ declare Calcu_days_result_pre | @@ -37,6 +39,10 @@ declare Calcu_days_result_pre | ||
| 37 | calcu_index_lp : Integer // 计算之后路牌的起始索引 | 39 | calcu_index_lp : Integer // 计算之后路牌的起始索引 |
| 38 | calcu_index_ry : Integer // 计算之后人员的起始索引 | 40 | calcu_index_ry : Integer // 计算之后人员的起始索引 |
| 39 | 41 | ||
| 42 | + fbtype: Integer // 翻班type,0:时刻表type 1:翻班格式type | ||
| 43 | + fbweeks: List // 翻班格式,如:1111001111001 | ||
| 44 | + fbgs_index: Integer // 翻班格式起始索引(从0开始) | ||
| 45 | + | ||
| 40 | // 1、第一部分循环需要用到的数据(当开始日期大于启用日期的时候才有) | 46 | // 1、第一部分循环需要用到的数据(当开始日期大于启用日期的时候才有) |
| 41 | calcu_start_date_1: DateTime // 第一部分开始计算日期 | 47 | calcu_start_date_1: DateTime // 第一部分开始计算日期 |
| 42 | calcu_end_date_1: DateTime // 第一部分结束计算日期 | 48 | calcu_end_date_1: DateTime // 第一部分结束计算日期 |
| @@ -82,6 +88,11 @@ rule "calcu_days_1_" | @@ -82,6 +88,11 @@ rule "calcu_days_1_" | ||
| 82 | cdrp.setCalcu_start_date_2($fromDate); | 88 | cdrp.setCalcu_start_date_2($fromDate); |
| 83 | cdrp.setCalcu_end_date_2($toDate); | 89 | cdrp.setCalcu_end_date_2($toDate); |
| 84 | 90 | ||
| 91 | + // 翻班相关 | ||
| 92 | + cdrp.setFbtype($sri.getFbtype()); | ||
| 93 | + cdrp.setFbgs_index(0); | ||
| 94 | + cdrp.setFbweeks($sri.getWeekdays()); | ||
| 95 | + | ||
| 85 | /** | 96 | /** |
| 86 | * 规则md5值(不使用id判定,使用md5判定) | 97 | * 规则md5值(不使用id判定,使用md5判定) |
| 87 | * 使用,启用日期,路牌范围,结合生成md5编码 | 98 | * 使用,启用日期,路牌范围,结合生成md5编码 |
| @@ -132,6 +143,11 @@ rule "calcu_days_2_" | @@ -132,6 +143,11 @@ rule "calcu_days_2_" | ||
| 132 | cdrp.setCalcu_start_date_2($qyrq); | 143 | cdrp.setCalcu_start_date_2($qyrq); |
| 133 | cdrp.setCalcu_end_date_2($toDate); | 144 | cdrp.setCalcu_end_date_2($toDate); |
| 134 | 145 | ||
| 146 | + // 翻班相关 | ||
| 147 | + cdrp.setFbtype($sri.getFbtype()); | ||
| 148 | + cdrp.setFbgs_index(0); | ||
| 149 | + cdrp.setFbweeks($sri.getWeekdays()); | ||
| 150 | + | ||
| 135 | /** | 151 | /** |
| 136 | * 规则md5值(不使用id判定,使用md5判定) | 152 | * 规则md5值(不使用id判定,使用md5判定) |
| 137 | * 使用,启用日期,路牌范围,结合生成md5编码 | 153 | * 使用,启用日期,路牌范围,结合生成md5编码 |
| @@ -249,63 +265,279 @@ end | @@ -249,63 +265,279 @@ end | ||
| 249 | 265 | ||
| 250 | 266 | ||
| 251 | //------------------------- 第二阶段、计算规则准备数据2(第一组循环) ----------------------------// | 267 | //------------------------- 第二阶段、计算规则准备数据2(第一组循环) ----------------------------// |
| 252 | -rule "Calcu_loop1_1_" // 路牌在时刻表中存在,就翻 | 268 | + |
| 269 | +function void calcu_loop1_fb(Calcu_days_result_pre $cdrp, ScheduleRule_input $sri) { | ||
| 270 | + Integer $lpindex = $cdrp.getCalcu_index_lp(); | ||
| 271 | + Integer $lprangesize = $sri.getGuideboardIds().size(); | ||
| 272 | + Integer $ryindex = $cdrp.getCalcu_index_ry(); | ||
| 273 | + Integer $ryrangesize = $sri.getEmployeeConfigIds().size(); | ||
| 274 | + Integer $fbindex = $cdrp.getFbgs_index(); | ||
| 275 | + Integer $fbfangesize = $sri.getWeekdays().size(); | ||
| 276 | + DateTime $csd1 = $cdrp.getCalcu_start_date_1(); | ||
| 277 | + String $ruleId = $cdrp.getRuleId(); | ||
| 278 | + | ||
| 279 | + $cdrp.setCalcu_index_lp(($lpindex + 1) % $lprangesize); | ||
| 280 | + $cdrp.setCalcu_index_ry(($ryindex + 1) % $ryrangesize); | ||
| 281 | + | ||
| 282 | + $cdrp.setFbgs_index(($fbindex + 1) % $fbfangesize); | ||
| 283 | + $cdrp.setCalcu_start_date_1($csd1.plusDays(1)); | ||
| 284 | + | ||
| 285 | +// log.info("calcu_loop1_fb ruleId={}, calcu_index_lp/ry={}/{}", | ||
| 286 | +// $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry()); | ||
| 287 | +} | ||
| 288 | +function void calcu_loop1_not_fb(Calcu_days_result_pre $cdrp, ScheduleRule_input $sri) { | ||
| 289 | + DateTime $csd1 = $cdrp.getCalcu_start_date_1(); | ||
| 290 | + Integer $fbindex = $cdrp.getFbgs_index(); | ||
| 291 | + Integer $fbfangesize = $sri.getWeekdays().size(); | ||
| 292 | + | ||
| 293 | + $cdrp.setFbgs_index(($fbindex + 1) % $fbfangesize); | ||
| 294 | + $cdrp.setCalcu_start_date_1($csd1.plusDays(1)); | ||
| 295 | + | ||
| 296 | +// log.info("calcu_loop1_not_fb ruleId={}, calcu_index_lp/ry={}/{}", | ||
| 297 | +// $cdrp.getRuleId(), $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry()); | ||
| 298 | +} | ||
| 299 | + | ||
| 300 | + | ||
| 301 | +rule "Calcu_loop1_fbtype_with_0_" // 翻班模式为 type=1 使用翻班格式翻,当天翻班格式是false,就跳过 | ||
| 302 | + salience 900 | ||
| 303 | + when | ||
| 304 | + $cdrp: Calcu_days_result_pre( | ||
| 305 | + calcu_start_date_1.isBefore(calcu_end_date_1), | ||
| 306 | + $ruleId: ruleId, | ||
| 307 | + fbtype == "1", | ||
| 308 | + $fbindex : fbgs_index | ||
| 309 | + ) | ||
| 310 | + $sri: ScheduleRule_input( | ||
| 311 | + ruleId == $ruleId, | ||
| 312 | + weekdays[$fbindex] == false | ||
| 313 | + ) | ||
| 314 | + then | ||
| 315 | + calcu_loop1_not_fb($cdrp, $sri); | ||
| 316 | + update($cdrp); | ||
| 317 | +end | ||
| 318 | + | ||
| 319 | +rule "Calcu_loop1_fbtype_with_1_lp_" // 翻班模式为 type=1 使用翻班格式翻,当天翻班格式是true,并且当天时刻表里存在指定路牌,就翻 | ||
| 253 | salience 900 | 320 | salience 900 |
| 254 | when | 321 | when |
| 255 | $cdrp: Calcu_days_result_pre( | 322 | $cdrp: Calcu_days_result_pre( |
| 256 | calcu_start_date_1.isBefore(calcu_end_date_1), | 323 | calcu_start_date_1.isBefore(calcu_end_date_1), |
| 257 | $csd1: calcu_start_date_1, | 324 | $csd1: calcu_start_date_1, |
| 258 | - $ced1: calcu_end_date_1, | ||
| 259 | $ruleId: ruleId, | 325 | $ruleId: ruleId, |
| 326 | + fbtype == "1", | ||
| 260 | $lpindex: calcu_index_lp, | 327 | $lpindex: calcu_index_lp, |
| 261 | - $ryindex: calcu_index_ry | 328 | + $fbindex : fbgs_index |
| 262 | ) | 329 | ) |
| 263 | $sri: ScheduleRule_input( | 330 | $sri: ScheduleRule_input( |
| 264 | ruleId == $ruleId, | 331 | ruleId == $ruleId, |
| 265 | $gids: guideboardIds, | 332 | $gids: guideboardIds, |
| 266 | - $lprangesize : guideboardIds.size(), | ||
| 267 | - $ryrangesize: employeeConfigIds.size() | 333 | + weekdays[$fbindex] == true |
| 268 | ) | 334 | ) |
| 269 | $liro: LpInfoResult_output( | 335 | $liro: LpInfoResult_output( |
| 270 | dateTime.isEqual($csd1), | 336 | dateTime.isEqual($csd1), |
| 271 | - $gids.get($lpindex) == lpId, | ||
| 272 | - $lpId: lpId | 337 | + $gids[$lpindex] == lpId |
| 273 | ) | 338 | ) |
| 274 | then | 339 | then |
| 275 | - $cdrp.setCalcu_index_lp(($lpindex + 1) % $lprangesize); | ||
| 276 | - $cdrp.setCalcu_index_ry(($ryindex + 1) % $ryrangesize); | ||
| 277 | - $cdrp.setCalcu_start_date_1($csd1.plusDays(1)); | 340 | + calcu_loop1_fb($cdrp, $sri); |
| 341 | + update($cdrp); | ||
| 278 | 342 | ||
| 279 | -// log.info("Calcu_loop1_1_ ruleId={}, calcu_index_lp/ry={}/{}", | ||
| 280 | -// $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry()); | 343 | +end |
| 281 | 344 | ||
| 345 | +rule "Calcu_loop1_fbtype_with_1_no_lp_" // 翻班模式为 type=1 使用翻班格式翻,当天翻班格式是true,并且当天时刻表里不存在指定路牌,就跳过 | ||
| 346 | + salience 900 | ||
| 347 | + when | ||
| 348 | + $cdrp: Calcu_days_result_pre( | ||
| 349 | + calcu_start_date_1.isBefore(calcu_end_date_1), | ||
| 350 | + $csd1: calcu_start_date_1, | ||
| 351 | + $ruleId: ruleId, | ||
| 352 | + fbtype == "1", | ||
| 353 | + $fbindex : fbgs_index | ||
| 354 | + ) | ||
| 355 | + $sri: ScheduleRule_input( | ||
| 356 | + ruleId == $ruleId, | ||
| 357 | + weekdays[$fbindex] == true | ||
| 358 | + ) | ||
| 359 | + then | ||
| 360 | + calcu_loop1_not_fb($cdrp, $sri); | ||
| 282 | update($cdrp); | 361 | update($cdrp); |
| 283 | end | 362 | end |
| 284 | 363 | ||
| 285 | -rule "Calcu_loop1_2_" // 路牌在时刻表中不存在,就不翻 | 364 | + |
| 365 | +rule "Calcu_loop1_timetabletype_with_lp_" // 翻班模式为 type=0 使用时刻表格式翻,路牌在时刻表中存在,就翻 | ||
| 286 | salience 900 | 366 | salience 900 |
| 287 | when | 367 | when |
| 288 | $cdrp: Calcu_days_result_pre( | 368 | $cdrp: Calcu_days_result_pre( |
| 289 | calcu_start_date_1.isBefore(calcu_end_date_1), | 369 | calcu_start_date_1.isBefore(calcu_end_date_1), |
| 290 | $csd1: calcu_start_date_1, | 370 | $csd1: calcu_start_date_1, |
| 291 | - $ced1: calcu_end_date_1, | ||
| 292 | - $ruleId: ruleId | 371 | + $ruleId: ruleId, |
| 372 | + fbtype == "0", | ||
| 373 | + $lpindex: calcu_index_lp | ||
| 293 | ) | 374 | ) |
| 294 | $sri: ScheduleRule_input( | 375 | $sri: ScheduleRule_input( |
| 295 | ruleId == $ruleId, | 376 | ruleId == $ruleId, |
| 296 | - $rangesize : guideboardIds.size() | 377 | + $gids: guideboardIds |
| 378 | + ) | ||
| 379 | + $liro: LpInfoResult_output( | ||
| 380 | + dateTime.isEqual($csd1), | ||
| 381 | + $gids[$lpindex] == lpId | ||
| 297 | ) | 382 | ) |
| 298 | then | 383 | then |
| 299 | - $cdrp.setCalcu_start_date_1($csd1.plusDays(1)); | ||
| 300 | - | ||
| 301 | -// log.info("Calcu_loop1_2_ ruleId={}, calcu_index_lp/ry={}/{}", | ||
| 302 | -// $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry()); | 384 | + calcu_loop1_fb($cdrp, $sri); |
| 385 | + update($cdrp); | ||
| 386 | +end | ||
| 303 | 387 | ||
| 388 | +rule "Calcu_loop1_timetabletype_with_no_lp_" // 翻班模式为 type=0 使用时刻表格式翻,路牌在时刻表中不存在,就跳过 | ||
| 389 | + salience 900 | ||
| 390 | + when | ||
| 391 | + $cdrp: Calcu_days_result_pre( | ||
| 392 | + calcu_start_date_1.isBefore(calcu_end_date_1), | ||
| 393 | + $csd1: calcu_start_date_1, | ||
| 394 | + $ruleId: ruleId, | ||
| 395 | + fbtype == "0" | ||
| 396 | + ) | ||
| 397 | + $sri: ScheduleRule_input( | ||
| 398 | + ruleId == $ruleId | ||
| 399 | + ) | ||
| 400 | + then | ||
| 401 | + calcu_loop1_not_fb($cdrp, $sri); | ||
| 304 | update($cdrp); | 402 | update($cdrp); |
| 305 | end | 403 | end |
| 306 | 404 | ||
| 307 | //------------------------- 第三阶段、计算规则准备数据2(第二组循环) ----------------------------// | 405 | //------------------------- 第三阶段、计算规则准备数据2(第二组循环) ----------------------------// |
| 308 | -rule "Calcu_loop2_1_" // 路牌在时刻表中存在,就翻 | 406 | + |
| 407 | +function void calcu_loop2_fb( | ||
| 408 | + SchedulePlan $sp, | ||
| 409 | + Calcu_days_result_pre $cdrp, | ||
| 410 | + ScheduleRule_input $sri, | ||
| 411 | + LpInfoResult_output $liro, | ||
| 412 | + ScheduleResults_output rs, | ||
| 413 | + Logger log) { | ||
| 414 | + String $ruleId = $cdrp.getRuleId(); | ||
| 415 | + DateTime $csd2 = $cdrp.getCalcu_start_date_2(); | ||
| 416 | + DateTime $ced2 = $cdrp.getCalcu_end_date_2(); | ||
| 417 | + Integer $lpindex = $cdrp.getCalcu_index_lp(); | ||
| 418 | + List $gids = $sri.getGuideboardIds(); | ||
| 419 | + Integer $lprangesize = $sri.getGuideboardIds().size(); | ||
| 420 | + Integer $ryindex = $cdrp.getCalcu_index_ry(); | ||
| 421 | + List $eids = $sri.getEmployeeConfigIds(); | ||
| 422 | + Integer $ryrangesize = $sri.getEmployeeConfigIds().size(); | ||
| 423 | + Integer $fbindex = $cdrp.getFbgs_index(); | ||
| 424 | + Integer $fbfangesize = $sri.getWeekdays().size(); | ||
| 425 | + String $cid = $sri.getCarConfigId(); | ||
| 426 | + String $xlid = $sri.getXlId(); | ||
| 427 | + | ||
| 428 | + com.bsth.entity.schedule.rule.ScheduleRule1Flat $srf = $sri.getSelf(); | ||
| 429 | + | ||
| 430 | + String $ttinfoId = $liro.getTtInfoId(); | ||
| 431 | + String $ttinfoName = $liro.getTtInfoName(); | ||
| 432 | + | ||
| 433 | + ScheduleResult_output ro = new ScheduleResult_output(); | ||
| 434 | + ro.setRuleId($ruleId); | ||
| 435 | + ro.setSd($csd2); | ||
| 436 | + ro.setGuideboardId(String.valueOf($gids.get($lpindex))); | ||
| 437 | + ro.setEmployeeConfigId(String.valueOf($eids.get($ryindex))); | ||
| 438 | + ro.setCarConfigId($cid); | ||
| 439 | + ro.setXlId($xlid); | ||
| 440 | + | ||
| 441 | + // 类型 | ||
| 442 | + ro.setsType($sri.getsType()); | ||
| 443 | + | ||
| 444 | + rs.getResults().add(ro); | ||
| 445 | + | ||
| 446 | +// log.info("gogoogogogogo"); | ||
| 447 | + | ||
| 448 | + $cdrp.setCalcu_index_lp(($lpindex + 1) % $lprangesize); | ||
| 449 | + $cdrp.setCalcu_index_ry(($ryindex + 1) % $ryrangesize); | ||
| 450 | + | ||
| 451 | + $cdrp.setFbgs_index(($fbindex + 1) % $fbfangesize); | ||
| 452 | + $cdrp.setCalcu_start_date_2($csd2.plusDays(1)); | ||
| 453 | + | ||
| 454 | + if ($sri.getsType() == ScheduleRule_Type.NORMAL) { | ||
| 455 | + // 保存排班规则循环结果 --> SchedulePlanRuleResult | ||
| 456 | + SchedulePlanRuleResult schedulePlanRuleResult = new SchedulePlanRuleResult($sp); | ||
| 457 | +// schedulePlanRuleResult.setXlId(String.valueOf($srf.getXl().getId())); | ||
| 458 | + schedulePlanRuleResult.setXlId($srf.getXl().getId()); | ||
| 459 | + schedulePlanRuleResult.setXlName($srf.getXl().getName()); | ||
| 460 | + schedulePlanRuleResult.setRuleId($ruleId); | ||
| 461 | + schedulePlanRuleResult.setCcId($cid); | ||
| 462 | + schedulePlanRuleResult.setCcZbh($srf.getCarConfigInfo().getCl().getInsideCode()); | ||
| 463 | + schedulePlanRuleResult.setGids($srf.getLpIds()); // 参与md5计算 | ||
| 464 | + schedulePlanRuleResult.setGnames($srf.getLpNames()); | ||
| 465 | + schedulePlanRuleResult.setGidindex(String.valueOf($lpindex)); | ||
| 466 | + schedulePlanRuleResult.setEcids($srf.getRyConfigIds()); | ||
| 467 | + schedulePlanRuleResult.setEcdbbms($srf.getRyDbbms()); | ||
| 468 | + schedulePlanRuleResult.setEcindex(String.valueOf($ryindex)); | ||
| 469 | + schedulePlanRuleResult.setScheduleDate($csd2.toDate()); | ||
| 470 | + schedulePlanRuleResult.setTtinfoId($ttinfoId); | ||
| 471 | + schedulePlanRuleResult.setTtinfoName($ttinfoName); | ||
| 472 | + schedulePlanRuleResult.setQyrq($sri.getQyrq().toDate()); // 参与md5计算 | ||
| 473 | + schedulePlanRuleResult.setOrigingidindex(String.valueOf($sri.getSelf().getLpStart())); // 参与md5计算 | ||
| 474 | + | ||
| 475 | + rs.getSchedulePlanRuleResults().add(schedulePlanRuleResult); | ||
| 476 | + } | ||
| 477 | + | ||
| 478 | + | ||
| 479 | + | ||
| 480 | + log.info("calcu_loop2_fb ruleId={}, calcu_index_lp/ry={}/{}, from={}, to={}", | ||
| 481 | + $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry(), $csd2, $ced2); | ||
| 482 | + | ||
| 483 | +} | ||
| 484 | + | ||
| 485 | +function void calcu_loop2_not_fb( | ||
| 486 | + Calcu_days_result_pre $cdrp, | ||
| 487 | + ScheduleRule_input $sri, | ||
| 488 | + ScheduleResults_output rs) { | ||
| 489 | + | ||
| 490 | + String $ruleId = $cdrp.getRuleId(); | ||
| 491 | + DateTime $csd2 = $cdrp.getCalcu_start_date_2(); | ||
| 492 | + Integer $lpindex = $cdrp.getCalcu_index_lp(); | ||
| 493 | + List $gids = $sri.getGuideboardIds(); | ||
| 494 | + Integer $ryindex = $cdrp.getCalcu_index_ry(); | ||
| 495 | + List $eids = $sri.getEmployeeConfigIds(); | ||
| 496 | + Integer $fbindex = $cdrp.getFbgs_index(); | ||
| 497 | + Integer $fbfangesize = $sri.getWeekdays().size(); | ||
| 498 | + String $cid = $sri.getCarConfigId(); | ||
| 499 | + String $xlid = $sri.getXlId(); | ||
| 500 | + | ||
| 501 | + ScheduleResult_output ro = new ScheduleResult_output(); | ||
| 502 | + ro.setRuleId($ruleId); | ||
| 503 | + ro.setSd($csd2); | ||
| 504 | +// ro.setGuideboardId(String.valueOf($gids.get($lpindex))); | ||
| 505 | + ro.setGuideboardId("not_fb_lp"); // 不翻班,路牌id用假的,后面会过滤 | ||
| 506 | + ro.setEmployeeConfigId(String.valueOf($eids.get($ryindex))); | ||
| 507 | + ro.setCarConfigId($cid); | ||
| 508 | + ro.setXlId($xlid); | ||
| 509 | + | ||
| 510 | + // 类型 | ||
| 511 | + ro.setsType($sri.getsType()); | ||
| 512 | + | ||
| 513 | + rs.getResults().add(ro); | ||
| 514 | + | ||
| 515 | + $cdrp.setFbgs_index(($fbindex + 1) % $fbfangesize); | ||
| 516 | + $cdrp.setCalcu_start_date_2($csd2.plusDays(1)); | ||
| 517 | +} | ||
| 518 | + | ||
| 519 | +rule "Calcu_loop2_fbtype_with_0_" // 翻班模式为 type=1 使用翻班格式翻,当天翻班格式是false,就跳过 | ||
| 520 | + salience 800 | ||
| 521 | + when | ||
| 522 | + ScheduleCalcuParam_input($sp: schedulePlan, $xlid: xlId) | ||
| 523 | + $cdrp: Calcu_days_result_pre( | ||
| 524 | + calcu_start_date_1.isEqual(calcu_end_date_1), | ||
| 525 | + calcu_start_date_2.isBefore(calcu_end_date_2) || calcu_start_date_2.isEqual(calcu_end_date_2), | ||
| 526 | + $ruleId: ruleId, | ||
| 527 | + fbtype == "1", | ||
| 528 | + $fbindex : fbgs_index | ||
| 529 | + ) | ||
| 530 | + $sri: ScheduleRule_input( | ||
| 531 | + ruleId == $ruleId, | ||
| 532 | + weekdays[$fbindex] == false | ||
| 533 | + ) | ||
| 534 | + then | ||
| 535 | + calcu_loop2_not_fb($cdrp, $sri, scheduleResult); | ||
| 536 | + update($cdrp); | ||
| 537 | + | ||
| 538 | +end | ||
| 539 | + | ||
| 540 | +rule "Calcu_loop2_fbtype_with_1_lp_" // 翻班模式为 type=1 使用翻班格式翻,当天翻班格式是true,并且当天时刻表里存在指定路牌,就翻 | ||
| 309 | salience 800 | 541 | salience 800 |
| 310 | when | 542 | when |
| 311 | ScheduleCalcuParam_input($sp: schedulePlan, $xlid: xlId) | 543 | ScheduleCalcuParam_input($sp: schedulePlan, $xlid: xlId) |
| @@ -313,80 +545,47 @@ rule "Calcu_loop2_1_" // 路牌在时刻表中存在,就翻 | @@ -313,80 +545,47 @@ rule "Calcu_loop2_1_" // 路牌在时刻表中存在,就翻 | ||
| 313 | calcu_start_date_1.isEqual(calcu_end_date_1), | 545 | calcu_start_date_1.isEqual(calcu_end_date_1), |
| 314 | calcu_start_date_2.isBefore(calcu_end_date_2) || calcu_start_date_2.isEqual(calcu_end_date_2), | 546 | calcu_start_date_2.isBefore(calcu_end_date_2) || calcu_start_date_2.isEqual(calcu_end_date_2), |
| 315 | $csd2: calcu_start_date_2, | 547 | $csd2: calcu_start_date_2, |
| 316 | - $ced2: calcu_end_date_2, | ||
| 317 | $ruleId: ruleId, | 548 | $ruleId: ruleId, |
| 549 | + fbtype == "1", | ||
| 318 | $lpindex: calcu_index_lp, | 550 | $lpindex: calcu_index_lp, |
| 319 | - $ryindex: calcu_index_ry | 551 | + $fbindex : fbgs_index |
| 320 | ) | 552 | ) |
| 321 | $sri: ScheduleRule_input( | 553 | $sri: ScheduleRule_input( |
| 322 | ruleId == $ruleId, | 554 | ruleId == $ruleId, |
| 323 | - $cid: carConfigId, | ||
| 324 | $gids: guideboardIds, | 555 | $gids: guideboardIds, |
| 325 | - $eids: employeeConfigIds, | ||
| 326 | - $lprangesize : guideboardIds.size(), | ||
| 327 | - $ryrangesize: employeeConfigIds.size(), | ||
| 328 | - $srf: self | 556 | + weekdays[$fbindex] == true |
| 329 | ) | 557 | ) |
| 330 | $liro: LpInfoResult_output( | 558 | $liro: LpInfoResult_output( |
| 331 | dateTime.isEqual($csd2), | 559 | dateTime.isEqual($csd2), |
| 332 | - $gids.get($lpindex) == lpId, | ||
| 333 | - $lpId: lpId, | ||
| 334 | - $ttinfoId: ttInfoId, | ||
| 335 | - $ttinfoName: ttInfoName | 560 | + $gids[$lpindex] == lpId |
| 336 | ) | 561 | ) |
| 337 | then | 562 | then |
| 338 | - ScheduleResult_output ro = new ScheduleResult_output(); | ||
| 339 | - ro.setRuleId($ruleId); | ||
| 340 | - ro.setSd($csd2); | ||
| 341 | - ro.setGuideboardId(String.valueOf($gids.get($lpindex))); | ||
| 342 | - ro.setEmployeeConfigId(String.valueOf($eids.get($ryindex))); | ||
| 343 | - ro.setCarConfigId($cid); | ||
| 344 | - ro.setXlId($xlid); | ||
| 345 | - | ||
| 346 | - // 类型 | ||
| 347 | - ro.setsType($sri.getsType()); | ||
| 348 | - | ||
| 349 | - scheduleResult.getResults().add(ro); | ||
| 350 | - | ||
| 351 | -// log.info("gogoogogogogo"); | ||
| 352 | - | ||
| 353 | - $cdrp.setCalcu_index_lp(($lpindex + 1) % $lprangesize); | ||
| 354 | - $cdrp.setCalcu_index_ry(($ryindex + 1) % $ryrangesize); | ||
| 355 | - $cdrp.setCalcu_start_date_2($csd2.plusDays(1)); | ||
| 356 | - | ||
| 357 | - if ($sri.getsType() == ScheduleRule_Type.NORMAL) { | ||
| 358 | - // 保存排班规则循环结果 --> SchedulePlanRuleResult | ||
| 359 | - SchedulePlanRuleResult schedulePlanRuleResult = new SchedulePlanRuleResult($sp); | ||
| 360 | -// schedulePlanRuleResult.setXlId(String.valueOf($srf.getXl().getId())); | ||
| 361 | - schedulePlanRuleResult.setXlId($srf.getXl().getId()); | ||
| 362 | - schedulePlanRuleResult.setXlName($srf.getXl().getName()); | ||
| 363 | - schedulePlanRuleResult.setRuleId($ruleId); | ||
| 364 | - schedulePlanRuleResult.setCcId($cid); | ||
| 365 | - schedulePlanRuleResult.setCcZbh($srf.getCarConfigInfo().getCl().getInsideCode()); | ||
| 366 | - schedulePlanRuleResult.setGids($srf.getLpIds()); // 参与md5计算 | ||
| 367 | - schedulePlanRuleResult.setGnames($srf.getLpNames()); | ||
| 368 | - schedulePlanRuleResult.setGidindex(String.valueOf($lpindex)); | ||
| 369 | - schedulePlanRuleResult.setEcids($srf.getRyConfigIds()); | ||
| 370 | - schedulePlanRuleResult.setEcdbbms($srf.getRyDbbms()); | ||
| 371 | - schedulePlanRuleResult.setEcindex(String.valueOf($ryindex)); | ||
| 372 | - schedulePlanRuleResult.setScheduleDate($csd2.toDate()); | ||
| 373 | - schedulePlanRuleResult.setTtinfoId($ttinfoId); | ||
| 374 | - schedulePlanRuleResult.setTtinfoName($ttinfoName); | ||
| 375 | - schedulePlanRuleResult.setQyrq($sri.getQyrq().toDate()); // 参与md5计算 | ||
| 376 | - schedulePlanRuleResult.setOrigingidindex(String.valueOf($sri.getSelf().getLpStart())); // 参与md5计算 | ||
| 377 | - | ||
| 378 | - scheduleResult.getSchedulePlanRuleResults().add(schedulePlanRuleResult); | ||
| 379 | - } | ||
| 380 | - | ||
| 381 | - | ||
| 382 | - | ||
| 383 | -// log.info("Calcu_loop2_1_ ruleId={}, calcu_index_lp/ry={}/{}, from={}, to={}", | ||
| 384 | -// $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry(), $csd2, $ced2); | 563 | + calcu_loop2_fb($sp, $cdrp, $sri, $liro, scheduleResult, log); |
| 564 | + update($cdrp); | ||
| 565 | +end | ||
| 385 | 566 | ||
| 567 | +rule "Calcu_loop2_fbtype_with_1_no_lp_" // 翻班模式为 type=1 使用翻班格式翻,当天翻班格式是true,并且当天时刻表里不存在指定路牌,就跳过 | ||
| 568 | + salience 800 | ||
| 569 | + when | ||
| 570 | + ScheduleCalcuParam_input($sp: schedulePlan, $xlid: xlId) | ||
| 571 | + $cdrp: Calcu_days_result_pre( | ||
| 572 | + calcu_start_date_1.isEqual(calcu_end_date_1), | ||
| 573 | + calcu_start_date_2.isBefore(calcu_end_date_2) || calcu_start_date_2.isEqual(calcu_end_date_2), | ||
| 574 | + $ruleId: ruleId, | ||
| 575 | + fbtype == "1", | ||
| 576 | + $fbindex : fbgs_index | ||
| 577 | + ) | ||
| 578 | + $sri: ScheduleRule_input( | ||
| 579 | + ruleId == $ruleId, | ||
| 580 | + weekdays[$fbindex] == true | ||
| 581 | + ) | ||
| 582 | + then | ||
| 583 | + calcu_loop2_not_fb($cdrp, $sri, scheduleResult); | ||
| 386 | update($cdrp); | 584 | update($cdrp); |
| 585 | + | ||
| 387 | end | 586 | end |
| 388 | 587 | ||
| 389 | -rule "Calcu_loop2_2_" // 路牌在时刻表中不存在,就不翻 | 588 | +rule "Calcu_loop2_timetabletype_with_lp_" // 翻班模式为 type=0 使用时刻表格式翻,路牌在时刻表中存在,就翻 |
| 390 | salience 800 | 589 | salience 800 |
| 391 | when | 590 | when |
| 392 | ScheduleCalcuParam_input($sp: schedulePlan, $xlid: xlId) | 591 | ScheduleCalcuParam_input($sp: schedulePlan, $xlid: xlId) |
| @@ -394,54 +593,40 @@ rule "Calcu_loop2_2_" // 路牌在时刻表中不存在,就不翻 | @@ -394,54 +593,40 @@ rule "Calcu_loop2_2_" // 路牌在时刻表中不存在,就不翻 | ||
| 394 | calcu_start_date_1.isEqual(calcu_end_date_1), | 593 | calcu_start_date_1.isEqual(calcu_end_date_1), |
| 395 | calcu_start_date_2.isBefore(calcu_end_date_2) || calcu_start_date_2.isEqual(calcu_end_date_2), | 594 | calcu_start_date_2.isBefore(calcu_end_date_2) || calcu_start_date_2.isEqual(calcu_end_date_2), |
| 396 | $csd2: calcu_start_date_2, | 595 | $csd2: calcu_start_date_2, |
| 397 | - $ced2: calcu_end_date_2, | ||
| 398 | $ruleId: ruleId, | 596 | $ruleId: ruleId, |
| 597 | + fbtype == "0", | ||
| 399 | $lpindex: calcu_index_lp, | 598 | $lpindex: calcu_index_lp, |
| 400 | - $ryindex: calcu_index_ry | 599 | + $fbindex : fbgs_index |
| 401 | ) | 600 | ) |
| 402 | $sri: ScheduleRule_input( | 601 | $sri: ScheduleRule_input( |
| 403 | ruleId == $ruleId, | 602 | ruleId == $ruleId, |
| 404 | - $cid: carConfigId, | ||
| 405 | - $gids: guideboardIds, | ||
| 406 | - $eids: employeeConfigIds, | ||
| 407 | - $srf: self | 603 | + $gids: guideboardIds |
| 604 | + ) | ||
| 605 | + $liro: LpInfoResult_output( | ||
| 606 | + dateTime.isEqual($csd2), | ||
| 607 | + $gids[$lpindex] == lpId | ||
| 408 | ) | 608 | ) |
| 409 | then | 609 | then |
| 410 | - ScheduleResult_output ro = new ScheduleResult_output(); | ||
| 411 | - ro.setRuleId($ruleId); | ||
| 412 | - ro.setSd($csd2); | ||
| 413 | - ro.setGuideboardId(String.valueOf($gids.get($lpindex))); | ||
| 414 | - ro.setEmployeeConfigId(String.valueOf($eids.get($ryindex))); | ||
| 415 | - ro.setCarConfigId($cid); | ||
| 416 | - ro.setXlId($xlid); | ||
| 417 | - | ||
| 418 | - // 类型 | ||
| 419 | - ro.setsType($sri.getsType()); | ||
| 420 | - | ||
| 421 | - scheduleResult.getResults().add(ro); | ||
| 422 | - | ||
| 423 | - $cdrp.setCalcu_start_date_2($csd2.plusDays(1)); | ||
| 424 | - | ||
| 425 | -// // 保存排班规则循环结果 --> SchedulePlanRuleResult | ||
| 426 | -// SchedulePlanRuleResult schedulePlanRuleResult = new SchedulePlanRuleResult($sp); | ||
| 427 | -// schedulePlanRuleResult.setXlId(String.valueOf($srf.getXl().getId())); | ||
| 428 | -// schedulePlanRuleResult.setXlName($srf.getXl().getName()); | ||
| 429 | -// schedulePlanRuleResult.setRuleId($ruleId); | ||
| 430 | -// schedulePlanRuleResult.setCcId($cid); | ||
| 431 | -// schedulePlanRuleResult.setCcZbh($srf.getCarConfigInfo().getCl().getInsideCode()); | ||
| 432 | -// schedulePlanRuleResult.setGids($srf.getLpIds()); | ||
| 433 | -// schedulePlanRuleResult.setGnames($srf.getLpNames()); | ||
| 434 | -// schedulePlanRuleResult.setGidindex(String.valueOf($lpindex)); | ||
| 435 | -// schedulePlanRuleResult.setEcids($srf.getRyConfigIds()); | ||
| 436 | -// schedulePlanRuleResult.setEcdbbms($srf.getRyDbbms()); | ||
| 437 | -// schedulePlanRuleResult.setEcindex(String.valueOf($ryindex)); | ||
| 438 | -// schedulePlanRuleResult.setScheduleDate($csd2.toDate()); | ||
| 439 | -// | ||
| 440 | -// scheduleResult.getSchedulePlanRuleResults().add(schedulePlanRuleResult); | ||
| 441 | - | ||
| 442 | -// log.info("Calcu_loop2_2_ ruleId={}, calcu_index_lp/ry={}/{}, from={}, to={}", | ||
| 443 | -// $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry(), $csd2, $ced2); | 610 | + calcu_loop2_fb($sp, $cdrp, $sri, $liro, scheduleResult, log); |
| 611 | + update($cdrp); | ||
| 612 | + | ||
| 613 | +end | ||
| 444 | 614 | ||
| 615 | +rule "Calcu_loop2_timetabletype_with_no_lp_" // 翻班模式为 type=0 使用时刻表格式翻,路牌在时刻表中不存在,就跳过 | ||
| 616 | + salience 800 | ||
| 617 | + when | ||
| 618 | + ScheduleCalcuParam_input($sp: schedulePlan, $xlid: xlId) | ||
| 619 | + $cdrp: Calcu_days_result_pre( | ||
| 620 | + calcu_start_date_1.isEqual(calcu_end_date_1), | ||
| 621 | + calcu_start_date_2.isBefore(calcu_end_date_2) || calcu_start_date_2.isEqual(calcu_end_date_2), | ||
| 622 | + $ruleId: ruleId, | ||
| 623 | + fbtype == "0" | ||
| 624 | + ) | ||
| 625 | + $sri: ScheduleRule_input( | ||
| 626 | + ruleId == $ruleId | ||
| 627 | + ) | ||
| 628 | + then | ||
| 629 | + calcu_loop2_not_fb($cdrp, $sri, scheduleResult); | ||
| 445 | update($cdrp); | 630 | update($cdrp); |
| 446 | end | 631 | end |
| 447 | 632 | ||
| @@ -450,3 +635,5 @@ end | @@ -450,3 +635,5 @@ end | ||
| 450 | 635 | ||
| 451 | 636 | ||
| 452 | 637 | ||
| 638 | + | ||
| 639 | + |
src/main/resources/static/pages/base/timesmodel/add.html
| @@ -134,6 +134,9 @@ | @@ -134,6 +134,9 @@ | ||
| 134 | <label > | 134 | <label > |
| 135 | <input type="radio" class="icheck" name="baseRes" value=1 checked> 班型/人次/车辆 | 135 | <input type="radio" class="icheck" name="baseRes" value=1 checked> 班型/人次/车辆 |
| 136 | </label> | 136 | </label> |
| 137 | + <label> | ||
| 138 | + <input type="radio" class="icheck" name="baseRes" value=2> 发车间隔分析 | ||
| 139 | + </label> | ||
| 137 | <label> | 140 | <label> |
| 138 | <input type="radio" class="icheck" name="baseRes" value=0> 客流大数据分析 | 141 | <input type="radio" class="icheck" name="baseRes" value=0> 客流大数据分析 |
| 139 | </label> | 142 | </label> |
src/main/resources/static/pages/base/timesmodel/js/add-form-wizard.js
| @@ -322,6 +322,8 @@ var SKBFormWizard = function() { | @@ -322,6 +322,8 @@ var SKBFormWizard = function() { | ||
| 322 | tempName = 'carnum_temp'; | 322 | tempName = 'carnum_temp'; |
| 323 | else if(n==1) | 323 | else if(n==1) |
| 324 | tempName = 'bctype_temp'; | 324 | tempName = 'bctype_temp'; |
| 325 | + else if (n==2) | ||
| 326 | + tempName = 'fcjx_temp'; | ||
| 325 | // 2、获参数详情模版html内容. | 327 | // 2、获参数详情模版html内容. |
| 326 | $.get('/pages/base/timesmodel/tepms/'+ tempName + '.html', function(html){ | 328 | $.get('/pages/base/timesmodel/tepms/'+ tempName + '.html', function(html){ |
| 327 | $('#tab3').append(html); | 329 | $('#tab3').append(html); |
| @@ -381,7 +383,12 @@ var SKBFormWizard = function() { | @@ -381,7 +383,12 @@ var SKBFormWizard = function() { | ||
| 381 | }else if(n==1) { | 383 | }else if(n==1) { |
| 382 | // 返回参数详情模版. | 384 | // 返回参数详情模版. |
| 383 | return cb && cb ({'forminput':template(tempName,{map:map}),'datadisplay': template(tempName +'config',{map:null})}); | 385 | return cb && cb ({'forminput':template(tempName,{map:map}),'datadisplay': template(tempName +'config',{map:null})}); |
| 384 | - } | 386 | + }else if (n==2) { |
| 387 | + return cb && cb({ | ||
| 388 | + 'forminput': template(tempName, {map: map}), | ||
| 389 | + 'datadisplay': template(tempName + '_config', {map: null}) | ||
| 390 | + }); | ||
| 391 | + } | ||
| 385 | }); | 392 | }); |
| 386 | } | 393 | } |
| 387 | 394 | ||
| @@ -829,34 +836,105 @@ var SKBFormWizard = function() { | @@ -829,34 +836,105 @@ var SKBFormWizard = function() { | ||
| 829 | getHtmlTemp(baseRes,r.content[0],lineId,krl,function(htlMap) { | 836 | getHtmlTemp(baseRes,r.content[0],lineId,krl,function(htlMap) { |
| 830 | $('#tab3').html(htlMap.forminput); | 837 | $('#tab3').html(htlMap.forminput); |
| 831 | $('#tab4').html(htlMap.datadisplay); | 838 | $('#tab4').html(htlMap.datadisplay); |
| 832 | - $('#linePlayTypeSelect').val(r.content[0].line.linePlayType); | ||
| 833 | - if(baseRes==1) | ||
| 834 | - ComponentsBootstrapTagsinput.init();// 初始化班型人次Input Tag. | ||
| 835 | - // 日期控件 | ||
| 836 | - $('#qdzsbsjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 起始站首班时间 | ||
| 837 | - $('#qdzmbsjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 起始站末班时间 | ||
| 838 | - $('#zdzsbsjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 终点站首班时间 | ||
| 839 | - $('#zdzmbsjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 终点站末班时间 | ||
| 840 | - $('#zgfkssjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 早高峰开始时间 | ||
| 841 | - $('#zgfjssjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 早高峰结束时间 | ||
| 842 | - $('#wgfkssjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 晚高峰开始时间 | ||
| 843 | - $('#wgfjssjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 晚高峰结束时间 | ||
| 844 | - // 初始化停车场下拉框. | ||
| 845 | - gettccInfo(function(cd) { | ||
| 846 | - var options = '<option value="">请选择...</option><optgroup label="停车场">'; | ||
| 847 | - var $_len = cd.length; | ||
| 848 | - if($_len>0) { | ||
| 849 | - $.each(cd, function(i, d){ | ||
| 850 | - options += '<option value="'+d.parkCode+'">'+d.parkName+'</option>'; | ||
| 851 | - }); | ||
| 852 | - | ||
| 853 | - } | ||
| 854 | - options += '</optgroup>'; | ||
| 855 | - $('#carParkSelect').html(options).select2(); | ||
| 856 | - $('#carParkSelect').select2("val",r.content[0].carPark); | ||
| 857 | - // 关闭弹出加载层 | ||
| 858 | - layer.close(i); | ||
| 859 | - }); | 839 | + |
| 840 | + if (baseRes == 0) { // 客流大数据分析 | ||
| 841 | + $('#linePlayTypeSelect').val(r.content[0].line.linePlayType); | ||
| 842 | + // 日期控件 | ||
| 843 | + $('#qdzsbsjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 起始站首班时间 | ||
| 844 | + $('#qdzmbsjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 起始站末班时间 | ||
| 845 | + $('#zdzsbsjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 终点站首班时间 | ||
| 846 | + $('#zdzmbsjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 终点站末班时间 | ||
| 847 | + $('#zgfkssjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 早高峰开始时间 | ||
| 848 | + $('#zgfjssjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 早高峰结束时间 | ||
| 849 | + $('#wgfkssjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 晚高峰开始时间 | ||
| 850 | + $('#wgfjssjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 晚高峰结束时间 | ||
| 851 | + // 初始化停车场下拉框. | ||
| 852 | + gettccInfo(function(cd) { | ||
| 853 | + var options = '<option value="">请选择...</option><optgroup label="停车场">'; | ||
| 854 | + var $_len = cd.length; | ||
| 855 | + if($_len>0) { | ||
| 856 | + $.each(cd, function(i, d){ | ||
| 857 | + options += '<option value="'+d.parkCode+'">'+d.parkName+'</option>'; | ||
| 858 | + }); | ||
| 859 | + | ||
| 860 | + } | ||
| 861 | + options += '</optgroup>'; | ||
| 862 | + $('#carParkSelect').html(options).select2(); | ||
| 863 | + $('#carParkSelect').select2("val",r.content[0].carPark); | ||
| 864 | + // 关闭弹出加载层 | ||
| 865 | + layer.close(i); | ||
| 866 | + }); | ||
| 867 | + | ||
| 868 | + } else if (baseRes == 1) { // 班次/人次/车辆 | ||
| 869 | + $('#linePlayTypeSelect').val(r.content[0].line.linePlayType); | ||
| 870 | + ComponentsBootstrapTagsinput.init();// 初始化班型人次Input Tag. | ||
| 871 | + // 日期控件 | ||
| 872 | + $('#qdzsbsjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 起始站首班时间 | ||
| 873 | + $('#qdzmbsjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 起始站末班时间 | ||
| 874 | + $('#zdzsbsjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 终点站首班时间 | ||
| 875 | + $('#zdzmbsjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 终点站末班时间 | ||
| 876 | + $('#zgfkssjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 早高峰开始时间 | ||
| 877 | + $('#zgfjssjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 早高峰结束时间 | ||
| 878 | + $('#wgfkssjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 晚高峰开始时间 | ||
| 879 | + $('#wgfjssjInput').datetimepicker({format : 'HH:mm',locale: 'zh-cn'});// 晚高峰结束时间 | ||
| 880 | + // 初始化停车场下拉框. | ||
| 881 | + gettccInfo(function(cd) { | ||
| 882 | + var options = '<option value="">请选择...</option><optgroup label="停车场">'; | ||
| 883 | + var $_len = cd.length; | ||
| 884 | + if($_len>0) { | ||
| 885 | + $.each(cd, function(i, d){ | ||
| 886 | + options += '<option value="'+d.parkCode+'">'+d.parkName+'</option>'; | ||
| 887 | + }); | ||
| 888 | + | ||
| 889 | + } | ||
| 890 | + options += '</optgroup>'; | ||
| 891 | + $('#carParkSelect').html(options).select2(); | ||
| 892 | + $('#carParkSelect').select2("val",r.content[0].carPark); | ||
| 893 | + // 关闭弹出加载层 | ||
| 894 | + layer.close(i); | ||
| 895 | + }); | ||
| 896 | + | ||
| 897 | + } else if (baseRes == 2) { // 发车间隔分析 | ||
| 898 | + // 上下行首末班日期控件 | ||
| 899 | + $('#startStationFirstTime_id').datetimepicker({format : 'HH:mm',locale: 'zh-cn'}); | ||
| 900 | + $('#startStationEndTime_id').datetimepicker({format : 'HH:mm',locale: 'zh-cn'}); | ||
| 901 | + $('#endStationFirstTime_id').datetimepicker({format : 'HH:mm',locale: 'zh-cn'}); | ||
| 902 | + $('#endStationEndTime_id').datetimepicker({format : 'HH:mm',locale: 'zh-cn'}); | ||
| 903 | + | ||
| 904 | + // 早高峰晚高峰日期控件 | ||
| 905 | + $('#earlyStartTime_id').datetimepicker({format : 'HH:mm',locale: 'zh-cn'}); | ||
| 906 | + $('#earlyEndTime_id').datetimepicker({format : 'HH:mm',locale: 'zh-cn'}); | ||
| 907 | + $('#lateStartTime_id').datetimepicker({format : 'HH:mm',locale: 'zh-cn'}); | ||
| 908 | + $('#lateEndTime_id').datetimepicker({format : 'HH:mm',locale: 'zh-cn'}); | ||
| 909 | + | ||
| 910 | + // 线路规划类型日期控件 | ||
| 911 | + $('#linePlayType_id').val(r.content[0].line.linePlayType); | ||
| 912 | + | ||
| 913 | + // 停车场下拉框控件 | ||
| 914 | + gettccInfo(function(cd) { | ||
| 915 | + var options = '<option value="">请选择...</option><optgroup label="停车场">'; | ||
| 916 | + var $_len = cd.length; | ||
| 917 | + if($_len>0) { | ||
| 918 | + $.each(cd, function(i, d){ | ||
| 919 | + options += '<option value="'+d.parkCode+'">'+d.parkName+'</option>'; | ||
| 920 | + }); | ||
| 921 | + | ||
| 922 | + } | ||
| 923 | + options += '</optgroup>'; | ||
| 924 | + $('#carPark_id').html(options).select2(); | ||
| 925 | + $('#carPark_id').select2("val",r.content[0].carPark); | ||
| 926 | + // 关闭弹出加载层 | ||
| 927 | + layer.close(i); | ||
| 928 | + }); | ||
| 929 | + | ||
| 930 | + // 发车间隙选择控件 | ||
| 931 | + ComponentsBootstrapTagsinput.init_fcjx(); | ||
| 932 | + | ||
| 933 | + // TODO:发车间隔分析参数设置 | ||
| 934 | + | ||
| 935 | + layer.close(i); | ||
| 936 | + } | ||
| 937 | + | ||
| 860 | }); | 938 | }); |
| 861 | }); | 939 | }); |
| 862 | } | 940 | } |
src/main/resources/static/pages/base/timesmodel/js/base-fun.js
| @@ -794,44 +794,44 @@ var BaseFun = function() { | @@ -794,44 +794,44 @@ var BaseFun = function() { | ||
| 794 | 794 | ||
| 795 | // 第一步 根据表单中的参数得到所有路牌下的班次数[从各路牌下的第一个班次发车时间 到 营运结束时间点并且是连续的班次数]. | 795 | // 第一步 根据表单中的参数得到所有路牌下的班次数[从各路牌下的第一个班次发车时间 到 营运结束时间点并且是连续的班次数]. |
| 796 | var allLMapBc = baseF.GetByArgusInitAllLpDownedBcCollections(saa , cara , map , seMap , dataMap); | 796 | var allLMapBc = baseF.GetByArgusInitAllLpDownedBcCollections(saa , cara , map , seMap , dataMap); |
| 797 | - //return {'json':allLMapBc,'bxrcgs':null}; | 797 | + return {'json':allLMapBc,'bxrcgs':null}; |
| 798 | 798 | ||
| 799 | - // 第二步 纵向调整 | ||
| 800 | - baseF.evenStartDepartSpace(allLMapBc , dataMap); | ||
| 801 | - //return {'json':allLMapBc,'bxrcgs':null}; | ||
| 802 | - | ||
| 803 | - // 第三步 剔除首末班车以外的班次,并确认首末班车. | ||
| 804 | - var markArray = baseF.markFirstAndLastBusAlsoDietNotInRangeBc(allLMapBc , dataMap); | ||
| 805 | - //return {'json':markArray,'bxrcgs':null}; | ||
| 806 | - // 第四步 横向调整 | ||
| 807 | - baseF.resizeByPitStopTime(cara , markArray , dataMap); | ||
| 808 | - //return {'json':markArray,'bxrcgs':null}; | ||
| 809 | - /** | ||
| 810 | - * 第五步 把班型合理的分配到各个路牌上. | ||
| 811 | - * | ||
| 812 | - * 切割班型/人次/配车数 字符串 为 数组对象. | ||
| 813 | - * | ||
| 814 | - * 把班型分配到对应的具体路牌上. | ||
| 815 | - */ | ||
| 816 | - // 切割班型/人次/配车数 字符串 为 数组对象. | ||
| 817 | - var list = baseF.getBxRcListCollection(map.bxrc); | ||
| 818 | - // 把班型分配到对应的具体路牌上. | ||
| 819 | - baseF.bxAlloTotLp(list,cara); | ||
| 820 | - ////return {'json':markArray,'bxrcgs':null}; | 799 | + //// 第二步 纵向调整 |
| 800 | + //baseF.evenStartDepartSpace(allLMapBc , dataMap); | ||
| 801 | + ////return {'json':allLMapBc,'bxrcgs':null}; | ||
| 821 | // | 802 | // |
| 822 | - // | ||
| 823 | - // 第六步 抽车来满足工时. | ||
| 824 | - var tempA = baseF.abstractCar(list , markArray , cara , saa , dataMap , map); | ||
| 825 | - //return {'json':tempA,'bxrcgs':null}; | ||
| 826 | - // 第七步 确定吃饭时间. | ||
| 827 | - if (map.cfdd) { // NEW,没有选择吃饭地点,不设定吃饭班次 | ||
| 828 | - baseF.markeEatTime(list , tempA , cara , saa , dataMap ,map); | ||
| 829 | - } | ||
| 830 | - baseF.resizeByPitStopTime(cara , tempA , dataMap); | ||
| 831 | - baseF.updfcno01(tempA,0); | ||
| 832 | - //return {'json':tempA,'bxrcgs':null}; | ||
| 833 | - // 确定进出场、早晚例保时间.并返回班次数组集合 | ||
| 834 | - return {'json':baseF.addInOutFieldBc(cara,tempA,dataMap,saa,map),'bxrcgs':null}; | 803 | + //// 第三步 剔除首末班车以外的班次,并确认首末班车. |
| 804 | + //var markArray = baseF.markFirstAndLastBusAlsoDietNotInRangeBc(allLMapBc , dataMap); | ||
| 805 | + ////return {'json':markArray,'bxrcgs':null}; | ||
| 806 | + //// 第四步 横向调整 | ||
| 807 | + //baseF.resizeByPitStopTime(cara , markArray , dataMap); | ||
| 808 | + ////return {'json':markArray,'bxrcgs':null}; | ||
| 809 | + ///** | ||
| 810 | + // * 第五步 把班型合理的分配到各个路牌上. | ||
| 811 | + // * | ||
| 812 | + // * 切割班型/人次/配车数 字符串 为 数组对象. | ||
| 813 | + // * | ||
| 814 | + // * 把班型分配到对应的具体路牌上. | ||
| 815 | + // */ | ||
| 816 | + //// 切割班型/人次/配车数 字符串 为 数组对象. | ||
| 817 | + //var list = baseF.getBxRcListCollection(map.bxrc); | ||
| 818 | + //// 把班型分配到对应的具体路牌上. | ||
| 819 | + //baseF.bxAlloTotLp(list,cara); | ||
| 820 | + //////return {'json':markArray,'bxrcgs':null}; | ||
| 821 | + //// | ||
| 822 | + //// | ||
| 823 | + //// 第六步 抽车来满足工时. | ||
| 824 | + //var tempA = baseF.abstractCar(list , markArray , cara , saa , dataMap , map); | ||
| 825 | + ////return {'json':tempA,'bxrcgs':null}; | ||
| 826 | + //// 第七步 确定吃饭时间. | ||
| 827 | + //if (map.cfdd) { // NEW,没有选择吃饭地点,不设定吃饭班次 | ||
| 828 | + // baseF.markeEatTime(list , tempA , cara , saa , dataMap ,map); | ||
| 829 | + //} | ||
| 830 | + //baseF.resizeByPitStopTime(cara , tempA , dataMap); | ||
| 831 | + //baseF.updfcno01(tempA,0); | ||
| 832 | + ////return {'json':tempA,'bxrcgs':null}; | ||
| 833 | + //// 确定进出场、早晚例保时间.并返回班次数组集合 | ||
| 834 | + //return {'json':baseF.addInOutFieldBc(cara,tempA,dataMap,saa,map),'bxrcgs':null}; | ||
| 835 | }, | 835 | }, |
| 836 | 836 | ||
| 837 | markeEatTime : function(list , markArray , cara , saa , dataMap ,map) { | 837 | markeEatTime : function(list , markArray , cara , saa , dataMap ,map) { |
src/main/resources/static/pages/base/timesmodel/js/gantt.js
| @@ -50,11 +50,16 @@ | @@ -50,11 +50,16 @@ | ||
| 50 | var CSMap = null,data = null; | 50 | var CSMap = null,data = null; |
| 51 | if(map.baseRes== '0') { | 51 | if(map.baseRes== '0') { |
| 52 | CSMap = getMaxCarAndStopSpace0(map,seMap); | 52 | CSMap = getMaxCarAndStopSpace0(map,seMap); |
| 53 | + // 发车间隙 | ||
| 54 | + map.fcjx = CSMap.fcjx; | ||
| 53 | }else if(map.baseRes== '1') { | 55 | }else if(map.baseRes== '1') { |
| 54 | CSMap = getMaxCarAndStopSpace1(map); | 56 | CSMap = getMaxCarAndStopSpace1(map); |
| 55 | - } | ||
| 56 | - // 发车间隙 | ||
| 57 | - map.fcjx = CSMap.fcjx; | 57 | + // 发车间隙 |
| 58 | + map.fcjx = CSMap.fcjx; | ||
| 59 | + }else if (map.baseRes == '2') { | ||
| 60 | + // TODO:之后可能有新的参数加入 | ||
| 61 | + } | ||
| 62 | + | ||
| 58 | // 定义时间参数. | 63 | // 定义时间参数. |
| 59 | var stopAraay = getsj(map); | 64 | var stopAraay = getsj(map); |
| 60 | if(isNull(objD)) { | 65 | if(isNull(objD)) { |
| @@ -66,7 +71,11 @@ | @@ -66,7 +71,11 @@ | ||
| 66 | // data = BaseFun.BXPplaceClassesTime(stopAraay,CSMap.maxCar,map,seMap,dataMap,getylp(CSMap.maxCar).lpNoA); | 71 | // data = BaseFun.BXPplaceClassesTime(stopAraay,CSMap.maxCar,map,seMap,dataMap,getylp(CSMap.maxCar).lpNoA); |
| 67 | // data = BaseFun.BXPplaceClassesTime01(stopAraay,CSMap.maxCar,map,seMap,dataMap,getylp(CSMap.maxCar).lpNoA); | 72 | // data = BaseFun.BXPplaceClassesTime01(stopAraay,CSMap.maxCar,map,seMap,dataMap,getylp(CSMap.maxCar).lpNoA); |
| 68 | data = BaseFun.BXPplaceClassesTime02(stopAraay,CSMap.maxCar,map,seMap,dataMap); | 73 | data = BaseFun.BXPplaceClassesTime02(stopAraay,CSMap.maxCar,map,seMap,dataMap); |
| 69 | - } | 74 | + } else if (map.baseRes == '2') { |
| 75 | + // TODO:绘制gantt图表 | ||
| 76 | + // TODO:var seDate = getksjssj(null,seMap.s); 关联参数必须设置 | ||
| 77 | + alert("TODO:gantt图表数据"); | ||
| 78 | + } | ||
| 70 | 79 | ||
| 71 | }else { | 80 | }else { |
| 72 | var jsonA = JSON.parse(objD); | 81 | var jsonA = JSON.parse(objD); |
src/main/resources/static/pages/base/timesmodel/js/tagsinput.js
| @@ -78,10 +78,53 @@ var ComponentsBootstrapTagsinput = function() { | @@ -78,10 +78,53 @@ var ComponentsBootstrapTagsinput = function() { | ||
| 78 | tag = false; | 78 | tag = false; |
| 79 | return tag; | 79 | return tag; |
| 80 | } | 80 | } |
| 81 | - } | 81 | + }; |
| 82 | + | ||
| 83 | + var handelDemo3 = function() { | ||
| 84 | + // 定义tags控件class | ||
| 85 | + var elt = $('#fcjx_tagsinput'); | ||
| 86 | + elt.tagsinput({ | ||
| 87 | + tagClass: function(item) { | ||
| 88 | + return 'label label-danger label-important'; | ||
| 89 | + }, | ||
| 90 | + itemValue: 'value', | ||
| 91 | + itemText: 'text' | ||
| 92 | + }); | ||
| 93 | + | ||
| 94 | + // 初始化内部控件,时间控件 | ||
| 95 | + $('#fcjx_tagsinput_starttime').datetimepicker({format : 'HH:mm',locale: 'zh-cn'}); | ||
| 96 | + $('#fcjx_tagsinput_endtime').datetimepicker({format : 'HH:mm',locale: 'zh-cn'}); | ||
| 97 | + | ||
| 98 | + $('#fcjx_tagsinput').on('beforeItemAdd', function(event) { | ||
| 99 | + // TODO:这里可以做一些逻辑判定 | ||
| 100 | + }); | ||
| 101 | + | ||
| 102 | + $('#fcjx_tagsinput_add').on('click', function(){ | ||
| 103 | + var starttime = $('#fcjx_tagsinput_starttime').val(); | ||
| 104 | + var endtime = $('#fcjx_tagsinput_endtime').val(); | ||
| 105 | + var fcjx = $('#fcjx_tagsinput_value').val(); | ||
| 106 | + | ||
| 107 | + if (starttime && endtime && fcjx) { | ||
| 108 | + // TODO:这里做一些逻辑判定 | ||
| 109 | + | ||
| 110 | + elt.tagsinput('add', { | ||
| 111 | + "value": starttime + '/' + endtime + '/' + fcjx, | ||
| 112 | + "text": starttime + '/' + endtime + '/' + fcjx | ||
| 113 | + }); | ||
| 114 | + $('#fcjx_tagsinput_starttime').val(null); | ||
| 115 | + $('#fcjx_tagsinput_endtime').val(null); | ||
| 116 | + $('#fcjx_tagsinput_value').val(null); | ||
| 117 | + } | ||
| 118 | + }); | ||
| 119 | + | ||
| 120 | + | ||
| 121 | + }; | ||
| 82 | return { | 122 | return { |
| 83 | init: function() { | 123 | init: function() { |
| 84 | handleDemo2(); | 124 | handleDemo2(); |
| 125 | + }, | ||
| 126 | + init_fcjx: function() { | ||
| 127 | + handelDemo3(); | ||
| 85 | } | 128 | } |
| 86 | }; | 129 | }; |
| 87 | }(); | 130 | }(); |
| 88 | \ No newline at end of file | 131 | \ No newline at end of file |
src/main/resources/static/pages/base/timesmodel/tepms/fcjx_temp.html
0 → 100644
| 1 | +<script type="text/html" id = "fcjx_temp"> | ||
| 2 | + | ||
| 3 | + <div class="form-group"> | ||
| 4 | + <div class="col-md-6"> | ||
| 5 | + <label class="control-label col-md-5"> | ||
| 6 | + <span class="required"> * </span> 上行首班时间 : | ||
| 7 | + </label> | ||
| 8 | + <div class="col-md-5"> | ||
| 9 | + <input type="text" class="form-control" name="startStationFirstTime" value="{{map.line.startStationFirstTime}}" id="startStationFirstTime_id" | ||
| 10 | + placeholder="请输入起始站首班时间"> | ||
| 11 | + </div> | ||
| 12 | + </div> | ||
| 13 | + <div class="col-md-6"> | ||
| 14 | + <label class="control-label col-md-5"> | ||
| 15 | + <span class="required"> * </span> 上行末班时间 : | ||
| 16 | + </label> | ||
| 17 | + <div class="col-md-5"> | ||
| 18 | + <input type="text" class="form-control" name="startStationEndTime" value="{{map.line.startStationEndTime}}" id="startStationEndTime_id" | ||
| 19 | + placeholder="请输入起始站末班时间"> | ||
| 20 | + </div> | ||
| 21 | + </div> | ||
| 22 | + </div> | ||
| 23 | + | ||
| 24 | + <div class="form-group"> | ||
| 25 | + <div class="col-md-6"> | ||
| 26 | + <label class="control-label col-md-5"> | ||
| 27 | + <span class="required"> * </span> 下行首班时间 : | ||
| 28 | + </label> | ||
| 29 | + <div class="col-md-5"> | ||
| 30 | + <input type="text" class="form-control" name="endStationFirstTime" value="{{map.line.endStationFirstTime}}" id="endStationFirstTime_id" | ||
| 31 | + placeholder="请输入终点站首班时间"> | ||
| 32 | + </div> | ||
| 33 | + </div> | ||
| 34 | + <div class="col-md-6"> | ||
| 35 | + <label class="control-label col-md-5"> | ||
| 36 | + <span class="required"> * </span> 下行末班时间 : | ||
| 37 | + </label> | ||
| 38 | + <div class="col-md-5"> | ||
| 39 | + <input type="text" class="form-control" name="endStationEndTime" value="{{map.line.endStationEndTime}}" id="endStationEndTime_id" | ||
| 40 | + placeholder="请输入终点站末班时间"> | ||
| 41 | + </div> | ||
| 42 | + </div> | ||
| 43 | + </div> | ||
| 44 | + | ||
| 45 | + <div class="form-group"> | ||
| 46 | + <div class="col-md-6"> | ||
| 47 | + <label class="control-label col-md-5"> | ||
| 48 | + <span class="required"> * </span> 早高峰开始时间 : | ||
| 49 | + </label> | ||
| 50 | + <div class="col-md-5"> | ||
| 51 | + <input type="text" class="form-control" name="earlyStartTime" value="{{map.earlyStartTime}}" id="earlyStartTime_id" | ||
| 52 | + placeholder="请输入早高峰开始时间"> | ||
| 53 | + </div> | ||
| 54 | + </div> | ||
| 55 | + <div class="col-md-6"> | ||
| 56 | + <label class="control-label col-md-5"> | ||
| 57 | + <span class="required"> * </span> 早高峰结束时间 : | ||
| 58 | + </label> | ||
| 59 | + <div class="col-md-5"> | ||
| 60 | + <input type="text" class="form-control" name="earlyEndTime" value="{{map.earlyEndTime}}" id="earlyEndTime_id" | ||
| 61 | + placeholder="请输入早高峰结束时间"> | ||
| 62 | + </div> | ||
| 63 | + </div> | ||
| 64 | + </div> | ||
| 65 | + | ||
| 66 | + <div class="form-group"> | ||
| 67 | + <div class="col-md-6"> | ||
| 68 | + <label class="control-label col-md-5"> | ||
| 69 | + <span class="required"> * </span> 晚高峰开始时间 : | ||
| 70 | + </label> | ||
| 71 | + <div class="col-md-5"> | ||
| 72 | + <input type="text" class="form-control" name="lateStartTime" value="{{map.lateStartTime}}" id="lateStartTime_id" | ||
| 73 | + placeholder="请输入晚高峰开始时间"> | ||
| 74 | + </div> | ||
| 75 | + </div> | ||
| 76 | + <div class="col-md-6"> | ||
| 77 | + <label class="control-label col-md-5"> | ||
| 78 | + <span class="required"> * </span> 晚高峰结束时间 : | ||
| 79 | + </label> | ||
| 80 | + <div class="col-md-5"> | ||
| 81 | + <input type="text" class="form-control" name="lateEndTime" value="{{map.lateEndTime}}" id="lateEndTime_id" | ||
| 82 | + placeholder="请输入晚高峰结束时间"> | ||
| 83 | + </div> | ||
| 84 | + </div> | ||
| 85 | + </div> | ||
| 86 | + | ||
| 87 | + <div class="form-group"> | ||
| 88 | + <div class="col-md-6"> | ||
| 89 | + <label class="control-label col-md-5"> | ||
| 90 | + <span class="required"> * </span> 线路规划类型 : | ||
| 91 | + </label> | ||
| 92 | + <div class="col-md-5"> | ||
| 93 | + <select name="linePlayType" class="form-control" id="linePlayType_id"> | ||
| 94 | + <option value="">-- 请选择线路类型 --</option> | ||
| 95 | + <option value="0">双向</option> | ||
| 96 | + <option value="1">环线</option> | ||
| 97 | + </select> | ||
| 98 | + </div> | ||
| 99 | + </div> | ||
| 100 | + <div class="col-md-6"> | ||
| 101 | + <label class="control-label col-md-5">吃饭地点 :</label> | ||
| 102 | + <div class="col-md-5"> | ||
| 103 | + <select type="text" class="form-control" name="cfdd" id="cfdd_id"> | ||
| 104 | + <option value="">请选择...</option> | ||
| 105 | + <option value="0">{{map.line.startStationName}}</option> | ||
| 106 | + <option value="1">{{map.line.endStationName}}</option> | ||
| 107 | + <option value="allYes">起终点站都可以</option> | ||
| 108 | + </select> | ||
| 109 | + </div> | ||
| 110 | + </div> | ||
| 111 | + </div> | ||
| 112 | + | ||
| 113 | + <div class="form-group"> | ||
| 114 | + <div class="col-md-6"> | ||
| 115 | + <label class="control-label col-md-5">早晚例行保养 :</label> | ||
| 116 | + <div class="col-md-5"> | ||
| 117 | + <input type="text" class="form-control" name="lb" value="{{map.lb}}" id="lb_id" | ||
| 118 | + placeholder="请输入早晚例行保养"> | ||
| 119 | + </div> | ||
| 120 | + </div> | ||
| 121 | + <div class="col-md-6"> | ||
| 122 | + <label class="control-label col-md-5">停车场 :</label> | ||
| 123 | + <div class="col-md-5"> | ||
| 124 | + <select name="carPark" class="form-control" id="carPark_id" style="width:100%"></select> | ||
| 125 | + </div> | ||
| 126 | + </div> | ||
| 127 | + </div> | ||
| 128 | + | ||
| 129 | + <div class="form-group"> | ||
| 130 | + <div class="col-md-6"> | ||
| 131 | + <label class="control-label col-md-5">工作餐午餐时间 :</label> | ||
| 132 | + <div class="col-md-5"> | ||
| 133 | + <input type="text" class="form-control" name="workeLunch" value="{{map.workeLunch}}" id="workeLunch_id" | ||
| 134 | + placeholder="请输入工作餐午餐时间"> | ||
| 135 | + </div> | ||
| 136 | + </div> | ||
| 137 | + <div class="col-md-6"> | ||
| 138 | + <label class="control-label col-md-5">工作餐晚餐时间 :</label> | ||
| 139 | + <div class="col-md-5"> | ||
| 140 | + <input type="text" class="form-control" name="workeDinner" value="{{map.workeDinner}}" id="workeDinner_id" | ||
| 141 | + placeholder="请输入工作餐晚餐时间"> | ||
| 142 | + </div> | ||
| 143 | + </div> | ||
| 144 | + </div> | ||
| 145 | + | ||
| 146 | + <div class="form-group"> | ||
| 147 | + <div class="col-md-6 "> | ||
| 148 | + <label class="control-label col-md-5"><span class="required"> * </span>发车间隔时段 :</label> | ||
| 149 | + <div class="col-md-5 tagsDiv"> | ||
| 150 | + <div class="row" style="margin-left: 15px;"> | ||
| 151 | + <input type="text" value="" name="fcjx" id="fcjx_tagsinput" style="display: none;"> | ||
| 152 | + </div> | ||
| 153 | + | ||
| 154 | + <div class="row" style="margin-top: 10px;"> | ||
| 155 | + <label class="control-label col-md-4">开始时间:</label> | ||
| 156 | + <div class="col-md-8"> | ||
| 157 | + <input type="text" class="form-control" placeholder="时段开始时间" id="fcjx_tagsinput_starttime"> | ||
| 158 | + </div> | ||
| 159 | + </div> | ||
| 160 | + | ||
| 161 | + <div class="row" style="margin-top: 10px;"> | ||
| 162 | + <label class="control-label col-md-4">结束时间:</label> | ||
| 163 | + <div class="col-md-8"> | ||
| 164 | + <input type="text" class="form-control" placeholder="时段结束时间" id="fcjx_tagsinput_endtime"> | ||
| 165 | + </div> | ||
| 166 | + </div> | ||
| 167 | + | ||
| 168 | + <div class="row" style="margin-top: 10px;"> | ||
| 169 | + <label class="control-label col-md-4">间隔值:</label> | ||
| 170 | + <div class="col-md-8"> | ||
| 171 | + <input type="number" class="form-control" placeholder="间隔时间" id="fcjx_tagsinput_value" min="1"> | ||
| 172 | + </div> | ||
| 173 | + </div> | ||
| 174 | + | ||
| 175 | + <div class="row" style="margin-top: 10px;margin-left: 116px;"> | ||
| 176 | + <a href="javascript:" class="btn red" id="fcjx_tagsinput_add">添加</a> | ||
| 177 | + </div> | ||
| 178 | + </div> | ||
| 179 | + </div> | ||
| 180 | + </div> | ||
| 181 | + | ||
| 182 | + <!-- 隐藏字段-时间 --> | ||
| 183 | + <!-- 上下行行驶时间 --> | ||
| 184 | + <input type="hidden" name="upTravelTime" value="{{map.upTravelTime}}" id="upTravelTime_id"/> | ||
| 185 | + <input type="hidden" name="downTravelTime" value="{{map.downTravelTime}}" id="downTravelTime_id"/> | ||
| 186 | + <!-- 早高峰/晚高峰上下行行驶时间 --> | ||
| 187 | + <input type="hidden" name="earlyUpTime" value="{{map.earlyUpTime}}" id="earlyUpTime_id" /> | ||
| 188 | + <input type="hidden" name="earlyDownTime" value="{{map.earlyDownTime}}" id="earlyDownTime_id" /> | ||
| 189 | + <input type="hidden" name="lateUpTime" value="{{map.lateUpTime}}" id="lateUpTime_id"/> | ||
| 190 | + <input type="hidden" name="lateDownTime" value="{{map.lateDownTime}}" id="lateDownTime_id"/> | ||
| 191 | + <!-- 低谷上下行行驶时间 --> | ||
| 192 | + <input type="hidden" name="troughUpTime" value="{{map.troughUpTime}}" id="troughUpTime_id"/> | ||
| 193 | + <input type="hidden" name="troughDownTime" value="{{map.troughDownTime}}" id="troughDownTime_id"/> | ||
| 194 | + <!-- 上下行进场出场时间 --> | ||
| 195 | + <input type="hidden" name="upInTimer" value="{{map.upInTimer}}" id="upInTimer_id"/> | ||
| 196 | + <input type="hidden" name="downInTimer" value="{{map.downInTimer}}" id="downInTimer_id"/> | ||
| 197 | + <input type="hidden" name="upOutTimer" value="{{map.upOutTimer}}" id="upOutTimer_id"/> | ||
| 198 | + <input type="hidden" name="downOutTimer" value="{{map.downOutTimer}}" id="downOutTimer_id"/> | ||
| 199 | + | ||
| 200 | + <!-- 隐藏字段-里程 --> | ||
| 201 | + <!-- 上下行行驶里程 --> | ||
| 202 | + <input type="hidden" name="upMileage" value="{{map.upMileage}}" id="upMileage_id"/> | ||
| 203 | + <input type="hidden" name="downMileage" value="{{map.downMileage}}" id="downMileage_id"/> | ||
| 204 | + <!-- 上下行进场出场里程 --> | ||
| 205 | + <input type="hidden" name="upInMileage" value="{{map.upInMileage}}" id="upInMileage_id"/> | ||
| 206 | + <input type="hidden" name="downInMileage" value="{{map.downInMileage}}" id="downInMileage_id"/> | ||
| 207 | + <input type="hidden" name="upOutMileage" value="{{map.upOutMileage}}" id="upOutMileage_id"/> | ||
| 208 | + <input type="hidden" name="downOutMileage" value="{{map.downOutMileage}}" id="downOutMileage_id"/> | ||
| 209 | + | ||
| 210 | +</script> | ||
| 211 | + | ||
| 212 | +<script type="text/html" id="fcjx_temp_config"> | ||
| 213 | + <h4 class="form-section"> 时刻表与线路名称 </h4> | ||
| 214 | + <div class="form-group"> | ||
| 215 | + <div class="col-md-6"> | ||
| 216 | + <label class="control-label col-md-5"> 时刻表名称 : </label> | ||
| 217 | + <div class="col-md-7"> | ||
| 218 | + <p class="form-control-static" data-display="skbName"> </p> | ||
| 219 | + </div> | ||
| 220 | + </div> | ||
| 221 | + <div class="col-md-6"> | ||
| 222 | + <label class="control-label col-md-5"> 线路名称 :</label> | ||
| 223 | + <div class="col-md-4"> | ||
| 224 | + <p class="form-control-static" data-display="lineName"> </p> | ||
| 225 | + </div> | ||
| 226 | + </div> | ||
| 227 | + </div> | ||
| 228 | + <h4 class="form-section"> 参数详情 </h4> | ||
| 229 | + | ||
| 230 | + <div class="form-group"> | ||
| 231 | + <div class="col-md-6"> | ||
| 232 | + <label class="control-label col-md-5"> | ||
| 233 | + <span class="required"> * </span> 上行首班时间 : | ||
| 234 | + </label> | ||
| 235 | + <div class="col-md-4"> | ||
| 236 | + <p class="form-control-static" data-display="startStationFirstTime"> </p> | ||
| 237 | + </div> | ||
| 238 | + </div> | ||
| 239 | + <div class="col-md-6"> | ||
| 240 | + <label class="control-label col-md-5"> | ||
| 241 | + <span class="required"> * </span> 上行末班时间 : | ||
| 242 | + </label> | ||
| 243 | + <div class="col-md-4"> | ||
| 244 | + <p class="form-control-static" data-display="startStationEndTime"> </p> | ||
| 245 | + </div> | ||
| 246 | + </div> | ||
| 247 | + </div> | ||
| 248 | + | ||
| 249 | + <div class="form-group"> | ||
| 250 | + <div class="col-md-6"> | ||
| 251 | + <label class="control-label col-md-5"> | ||
| 252 | + <span class="required"> * </span> 下行首班时间 : | ||
| 253 | + </label> | ||
| 254 | + <div class="col-md-4"> | ||
| 255 | + <p class="form-control-static" data-display="endStationFirstTime"> </p> | ||
| 256 | + </div> | ||
| 257 | + </div> | ||
| 258 | + <div class="col-md-6"> | ||
| 259 | + <label class="control-label col-md-5"> | ||
| 260 | + <span class="required"> * </span> 下行末班时间 : | ||
| 261 | + </label> | ||
| 262 | + <div class="col-md-4"> | ||
| 263 | + <p class="form-control-static" data-display="endStationEndTime"> </p> | ||
| 264 | + </div> | ||
| 265 | + </div> | ||
| 266 | + </div> | ||
| 267 | + | ||
| 268 | + <div class="form-group"> | ||
| 269 | + <div class="col-md-6"> | ||
| 270 | + <label class="control-label col-md-5"> | ||
| 271 | + <span class="required"> * </span> 早高峰开始时间 : | ||
| 272 | + </label> | ||
| 273 | + <div class="col-md-4"> | ||
| 274 | + <p class="form-control-static" data-display="earlyStartTime"> </p> | ||
| 275 | + </div> | ||
| 276 | + </div> | ||
| 277 | + <div class="col-md-6"> | ||
| 278 | + <label class="control-label col-md-5"> | ||
| 279 | + <span class="required"> * </span> 早高峰结束时间 : | ||
| 280 | + </label> | ||
| 281 | + <div class="col-md-4"> | ||
| 282 | + <p class="form-control-static" data-display="earlyEndTime"> </p> | ||
| 283 | + </div> | ||
| 284 | + </div> | ||
| 285 | + </div> | ||
| 286 | + | ||
| 287 | + <div class="form-group"> | ||
| 288 | + <div class="col-md-6"> | ||
| 289 | + <label class="control-label col-md-5"> | ||
| 290 | + <span class="required"> * </span> 晚高峰开始时间 : | ||
| 291 | + </label> | ||
| 292 | + <div class="col-md-4"> | ||
| 293 | + <p class="form-control-static" data-display="lateStartTime"> </p> | ||
| 294 | + </div> | ||
| 295 | + </div> | ||
| 296 | + <div class="col-md-6"> | ||
| 297 | + <label class="control-label col-md-5"> | ||
| 298 | + <span class="required"> * </span> 晚高峰结束时间 : | ||
| 299 | + </label> | ||
| 300 | + <div class="col-md-4"> | ||
| 301 | + <p class="form-control-static" data-display="lateEndTime"> </p> | ||
| 302 | + </div> | ||
| 303 | + </div> | ||
| 304 | + </div> | ||
| 305 | + | ||
| 306 | + <div class="form-group"> | ||
| 307 | + <div class="col-md-6"> | ||
| 308 | + <label class="control-label col-md-5"> | ||
| 309 | + <span class="required"> * </span> 线路规划类型 : | ||
| 310 | + </label> | ||
| 311 | + <div class="col-md-4"> | ||
| 312 | + <p class="form-control-static" data-display="linePlayType"> </p> | ||
| 313 | + </div> | ||
| 314 | + </div> | ||
| 315 | + <div class="col-md-6"> | ||
| 316 | + <label class="control-label col-md-5">吃饭地点 :</label> | ||
| 317 | + <div class="col-md-7"> | ||
| 318 | + <p class="form-control-static" data-display="cfdd"> </p> | ||
| 319 | + </div> | ||
| 320 | + </div> | ||
| 321 | + </div> | ||
| 322 | + | ||
| 323 | + <div class="form-group"> | ||
| 324 | + <div class="col-md-6"> | ||
| 325 | + <label class="control-label col-md-5">早晚例行保养 :</label> | ||
| 326 | + <div class="col-md-4"> | ||
| 327 | + <p class="form-control-static" data-display="lb"> </p> | ||
| 328 | + </div> | ||
| 329 | + </div> | ||
| 330 | + <div class="col-md-6"> | ||
| 331 | + <label class="control-label col-md-5">停车场 :</label> | ||
| 332 | + <div class="col-md-7"> | ||
| 333 | + <p class="form-control-static" data-display="carPark"> </p> | ||
| 334 | + </div> | ||
| 335 | + </div> | ||
| 336 | + </div> | ||
| 337 | + | ||
| 338 | + <div class="form-group"> | ||
| 339 | + <div class="col-md-6"> | ||
| 340 | + <label class="control-label col-md-5"> 工作餐午餐时间 : </label> | ||
| 341 | + <div class="col-md-4"> | ||
| 342 | + <p class="form-control-static" data-display="workeLunch"> </p> | ||
| 343 | + </div> | ||
| 344 | + </div> | ||
| 345 | + <div class="col-md-6"> | ||
| 346 | + <label class="control-label col-md-5"> 工作餐晚餐时间 : </label> | ||
| 347 | + <div class="col-md-4"> | ||
| 348 | + <p class="form-control-static" data-display="workeDinner"> </p> | ||
| 349 | + </div> | ||
| 350 | + </div> | ||
| 351 | + </div> | ||
| 352 | + | ||
| 353 | +</script> | ||
| 0 | \ No newline at end of file | 354 | \ No newline at end of file |
src/main/resources/static/pages/scheduleApp/module/core/scheduleRuleManage/module.js
| @@ -285,6 +285,9 @@ angular.module('ScheduleApp').controller( | @@ -285,6 +285,9 @@ angular.module('ScheduleApp').controller( | ||
| 285 | 285 | ||
| 286 | // 提交方法 | 286 | // 提交方法 |
| 287 | self.submit = function() { | 287 | self.submit = function() { |
| 288 | + //// test | ||
| 289 | + //self.scheduleRuleManageForSave.fbtype = 0; | ||
| 290 | + | ||
| 288 | // 保存或更新 | 291 | // 保存或更新 |
| 289 | self.scheduleRuleManageForSave.$save(function() { | 292 | self.scheduleRuleManageForSave.$save(function() { |
| 290 | $state.go("scheduleRuleManage"); | 293 | $state.go("scheduleRuleManage"); |