Commit 2c2f2fb2ef51585dc34c5abdeb47cf55db83efe1
Merge branch 'minhang' of http://222.66.0.204:8090/panzhaov5/bsth_control into minhang
Showing
17 changed files
with
172 additions
and
69 deletions
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<SchedulePlan, Long> im | @@ -309,6 +312,8 @@ public class SchedulePlanServiceImpl extends BServiceImpl<SchedulePlan, Long> 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<TTInfoDetail, Long> im | @@ -349,7 +349,7 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> 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 "Calcu_SchedulePlanInfo" | @@ -386,8 +386,14 @@ rule "Calcu_SchedulePlanInfo" | ||
| 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 "calcu_Dylp_CarConfig_Wraps" | @@ -47,7 +47,7 @@ rule "calcu_Dylp_CarConfig_Wraps" | ||
| 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 "calcu_Dylp_EmployeeConfig_Wraps" | @@ -76,10 +76,10 @@ rule "calcu_Dylp_EmployeeConfig_Wraps" | ||
| 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 "calcu_Dylp_ScheduleResult_output_wrap" | @@ -118,6 +118,8 @@ rule "calcu_Dylp_ScheduleResult_output_wrap" | ||
| 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 "calcu_Dylp_rerun_update_dylp" | @@ -133,7 +135,7 @@ rule "calcu_Dylp_rerun_update_dylp" | ||
| 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 "calcu_Dylp_rerun_update_dylp" | @@ -143,7 +145,7 @@ rule "calcu_Dylp_rerun_update_dylp" | ||
| 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('ScheduleApp').factory('GuideboardManageService_g', ['$resource', | @@ -327,7 +327,7 @@ angular.module('ScheduleApp').factory('GuideboardManageService_g', ['$resource', | ||
| 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('ScheduleApp').factory('GuideboardManageService_g', ['$resource', | @@ -3,7 +3,7 @@ angular.module('ScheduleApp').factory('GuideboardManageService_g', ['$resource', | ||
| 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('ScheduleApp').controller( | @@ -169,6 +169,7 @@ angular.module('ScheduleApp').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 |