Commit 80abe7f7f6dbd697e07927dd4deb0b105d839e66

Authored by 徐烜
1 parent c4d00ef1

Update

src/main/java/com/bsth/entity/schedule/rule/RerunRule.java
@@ -73,10 +73,21 @@ public class RerunRule extends BEntity { @@ -73,10 +73,21 @@ public class RerunRule extends BEntity {
73 /** 车辆配置 */ 73 /** 车辆配置 */
74 @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY) 74 @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
75 private CarConfigInfo useCarConfig; 75 private CarConfigInfo useCarConfig;
  76 +
  77 + private Integer cl; // 冗余字段(车辆id)
  78 + private String clZbh; // 冗余字段(车辆自编号)
  79 +
76 /** 人员配置 */ 80 /** 人员配置 */
77 @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY) 81 @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
78 private EmployeeConfigInfo useEmployeeConfig; 82 private EmployeeConfigInfo useEmployeeConfig;
79 83
  84 + private Integer j; // 冗余字段(驾驶员Id)
  85 + private String jGh; // 冗余字段(驾驶员工号)
  86 + private String jName; // 冗余字段(驾驶员姓名)
  87 + private Integer s; // 冗余字段(售票员Id)
  88 + private String sGh; // 冗余字段(售票员工号)
  89 + private String sName; // 冗余字段(售票员姓名)
  90 +
80 /** 是否删除(标记) */ 91 /** 是否删除(标记) */
81 @Column(nullable = false) 92 @Column(nullable = false)
82 private Boolean isCancel = false; 93 private Boolean isCancel = false;
@@ -176,4 +187,68 @@ public class RerunRule extends BEntity { @@ -176,4 +187,68 @@ public class RerunRule extends BEntity {
176 public void setRerunTtinfodetailFcsjs(String rerunTtinfodetailFcsjs) { 187 public void setRerunTtinfodetailFcsjs(String rerunTtinfodetailFcsjs) {
177 this.rerunTtinfodetailFcsjs = rerunTtinfodetailFcsjs; 188 this.rerunTtinfodetailFcsjs = rerunTtinfodetailFcsjs;
178 } 189 }
  190 +
  191 + public Integer getCl() {
  192 + return cl;
  193 + }
  194 +
  195 + public void setCl(Integer cl) {
  196 + this.cl = cl;
  197 + }
  198 +
  199 + public String getClZbh() {
  200 + return clZbh;
  201 + }
  202 +
  203 + public void setClZbh(String clZbh) {
  204 + this.clZbh = clZbh;
  205 + }
  206 +
  207 + public Integer getJ() {
  208 + return j;
  209 + }
  210 +
  211 + public void setJ(Integer j) {
  212 + this.j = j;
  213 + }
  214 +
  215 + public String getjGh() {
  216 + return jGh;
  217 + }
  218 +
  219 + public void setjGh(String jGh) {
  220 + this.jGh = jGh;
  221 + }
  222 +
  223 + public String getjName() {
  224 + return jName;
  225 + }
  226 +
  227 + public void setjName(String jName) {
  228 + this.jName = jName;
  229 + }
  230 +
  231 + public Integer getS() {
  232 + return s;
  233 + }
  234 +
  235 + public void setS(Integer s) {
  236 + this.s = s;
  237 + }
  238 +
  239 + public String getsGh() {
  240 + return sGh;
  241 + }
  242 +
  243 + public void setsGh(String sGh) {
  244 + this.sGh = sGh;
  245 + }
  246 +
  247 + public String getsName() {
  248 + return sName;
  249 + }
  250 +
  251 + public void setsName(String sName) {
  252 + this.sName = sName;
  253 + }
179 } 254 }
src/main/java/com/bsth/service/schedule/impl/SchedulePlanServiceImpl.java
@@ -12,6 +12,7 @@ import com.bsth.service.schedule.exception.ScheduleException; @@ -12,6 +12,7 @@ import com.bsth.service.schedule.exception.ScheduleException;
12 import com.bsth.service.schedule.rules.ScheduleRuleService; 12 import com.bsth.service.schedule.rules.ScheduleRuleService;
13 import com.bsth.service.schedule.rules.plan.PlanCalcuParam_input; 13 import com.bsth.service.schedule.rules.plan.PlanCalcuParam_input;
14 import com.bsth.service.schedule.rules.plan.PlanResult; 14 import com.bsth.service.schedule.rules.plan.PlanResult;
  15 +import com.bsth.service.schedule.rules.rerun.RerunRule_input;
15 import com.bsth.service.schedule.rules.shiftloop.ScheduleCalcuParam_input; 16 import com.bsth.service.schedule.rules.shiftloop.ScheduleCalcuParam_input;
16 import com.bsth.service.schedule.rules.shiftloop.ScheduleResults_output; 17 import com.bsth.service.schedule.rules.shiftloop.ScheduleResults_output;
17 import com.bsth.service.schedule.rules.shiftloop.ScheduleRule_input; 18 import com.bsth.service.schedule.rules.shiftloop.ScheduleRule_input;
@@ -101,7 +102,7 @@ public class SchedulePlanServiceImpl extends BServiceImpl<SchedulePlan, Long> im @@ -101,7 +102,7 @@ public class SchedulePlanServiceImpl extends BServiceImpl<SchedulePlan, Long> im
101 // 执行完毕销毁,有日志的也要关闭 102 // 执行完毕销毁,有日志的也要关闭
102 session.dispose(); 103 session.dispose();
103 104
104 - logger.info("循环规则输出={}", scheduleResults_output.showGuideboardDesc1()); 105 +// logger.info("循环规则输出={}", scheduleResults_output.showGuideboardDesc1());
105 106
106 return scheduleResults_output; 107 return scheduleResults_output;
107 } 108 }
@@ -258,6 +259,8 @@ public class SchedulePlanServiceImpl extends BServiceImpl<SchedulePlan, Long> im @@ -258,6 +259,8 @@ public class SchedulePlanServiceImpl extends BServiceImpl<SchedulePlan, Long> im
258 PlanResult planResult = SchedulePlanWithOutRerun(schedulePlan); 259 PlanResult planResult = SchedulePlanWithOutRerun(schedulePlan);
259 260
260 // TODO 3、确定套跑规则 261 // TODO 3、确定套跑规则
  262 + List<RerunRule_input> rerunRule_inputs = scheduleRuleService.findRerunrule(schedulePlan.getXl().getId());
  263 + logger.info("套跑数量 {} 组", rerunRule_inputs.size());
261 264
262 // 4、保存数据(jdbcTemplate 批量插入) 265 // 4、保存数据(jdbcTemplate 批量插入)
263 Date start4 = new Date(); 266 Date start4 = new Date();
src/main/java/com/bsth/service/schedule/impl/TTInfoDetailServiceImpl.java
@@ -98,10 +98,10 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im @@ -98,10 +98,10 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
98 public List<Map<String, Object>> findZdAndTcc(int lineid, int xldir) { 98 public List<Map<String, Object>> findZdAndTcc(int lineid, int xldir) {
99 String sql = "select * from " + 99 String sql = "select * from " +
100 "(" + 100 "(" +
101 - "select station_code as zcode, station_name as zname from bsth_c_stationroute " + 101 + "select station_code as zcode, station_name as zname, concat(station_name, '(站点)') as aname from bsth_c_stationroute " +
102 "where destroy = 0 and line = ? and directions = ? " + 102 "where destroy = 0 and line = ? and directions = ? " +
103 "union all " + 103 "union all " +
104 - "select park_code as zcode, park_name as zname from bsth_c_car_park " + 104 + "select park_code as zcode, park_name as zname, concat(park_name, '(停车场)') as aname from bsth_c_car_park " +
105 "where destroy = 0 " + 105 "where destroy = 0 " +
106 ") a "; 106 ") a ";
107 107
src/main/java/com/bsth/service/schedule/rules/ScheduleRuleService.java
@@ -3,6 +3,7 @@ package com.bsth.service.schedule.rules; @@ -3,6 +3,7 @@ package com.bsth.service.schedule.rules;
3 import com.bsth.entity.schedule.SchedulePlan; 3 import com.bsth.entity.schedule.SchedulePlan;
4 import com.bsth.entity.schedule.SchedulePlanInfo; 4 import com.bsth.entity.schedule.SchedulePlanInfo;
5 import com.bsth.entity.schedule.temp.SchedulePlanRuleResult; 5 import com.bsth.entity.schedule.temp.SchedulePlanRuleResult;
  6 +import com.bsth.service.schedule.rules.rerun.RerunRule_input;
6 7
7 import java.util.Date; 8 import java.util.Date;
8 import java.util.List; 9 import java.util.List;
@@ -42,5 +43,13 @@ public interface ScheduleRuleService { @@ -42,5 +43,13 @@ public interface ScheduleRuleService {
42 * @param dateto 结束日期 43 * @param dateto 结束日期
43 */ 44 */
44 void deelteSchedulePlanInfo(Integer xlid, Date datefrom, Date dateto); 45 void deelteSchedulePlanInfo(Integer xlid, Date datefrom, Date dateto);
  46 +
  47 + /**
  48 + * 查找线路的套跑规则,并封装成规则输入对象。
  49 + * @param xlid
  50 + * @return
  51 + */
  52 + List<RerunRule_input> findRerunrule(Integer xlid);
  53 +
45 } 54 }
46 55
src/main/java/com/bsth/service/schedule/rules/ScheduleRuleServiceImpl.java
@@ -3,13 +3,11 @@ package com.bsth.service.schedule.rules; @@ -3,13 +3,11 @@ package com.bsth.service.schedule.rules;
3 import com.bsth.entity.schedule.SchedulePlan; 3 import com.bsth.entity.schedule.SchedulePlan;
4 import com.bsth.entity.schedule.SchedulePlanInfo; 4 import com.bsth.entity.schedule.SchedulePlanInfo;
5 import com.bsth.entity.schedule.temp.SchedulePlanRuleResult; 5 import com.bsth.entity.schedule.temp.SchedulePlanRuleResult;
  6 +import com.bsth.service.schedule.rules.rerun.RerunRule_input;
6 import org.slf4j.Logger; 7 import org.slf4j.Logger;
7 import org.slf4j.LoggerFactory; 8 import org.slf4j.LoggerFactory;
8 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.beans.factory.annotation.Autowired;
9 -import org.springframework.jdbc.core.BatchPreparedStatementSetter;  
10 -import org.springframework.jdbc.core.JdbcTemplate;  
11 -import org.springframework.jdbc.core.PreparedStatementCreator;  
12 -import org.springframework.jdbc.core.RowMapper; 10 +import org.springframework.jdbc.core.*;
13 import org.springframework.jdbc.support.GeneratedKeyHolder; 11 import org.springframework.jdbc.support.GeneratedKeyHolder;
14 import org.springframework.jdbc.support.KeyHolder; 12 import org.springframework.jdbc.support.KeyHolder;
15 import org.springframework.stereotype.Service; 13 import org.springframework.stereotype.Service;
@@ -37,6 +35,75 @@ public class ScheduleRuleServiceImpl implements ScheduleRuleService { @@ -37,6 +35,75 @@ public class ScheduleRuleServiceImpl implements ScheduleRuleService {
37 private JdbcTemplate jdbcTemplate; 35 private JdbcTemplate jdbcTemplate;
38 36
39 @Override 37 @Override
  38 + public List<RerunRule_input> findRerunrule(Integer xlid) {
  39 + String sql = "select " +
  40 + "rerun_type as type " +
  41 + ", rerun_xl as m_xl " +
  42 + ", rerun_ttinfo as m_ttinfo " +
  43 + ", rerun_lp as m_lp " +
  44 + ", rerun_ttinfodetail_fcsjs as m_fcsjs " +
  45 + ", use_xl as s_dylp_xl " +
  46 + ", use_lp as s_dylp_lp " +
  47 + ", cl as s_dybc_cl " +
  48 + ", cl_zbh as s_dybc_clzbh " +
  49 + ", j as s_dybc_j " +
  50 + ", j_gh as s_dybc_jgh " +
  51 + ", j_name as s_dybc_jname " +
  52 + ", s as s_dybc_s " +
  53 + ", s_gh as s_dybc_sgh " +
  54 + ", s_name as s_dybc_sname " +
  55 + "from bsth_c_s_rerun_rule " +
  56 + "where rerun_xl = ? ";
  57 +
  58 + final List<RerunRule_input> rerunRule_inputs = new ArrayList<>();
  59 +
  60 + jdbcTemplate.query(sql, new Object[]{xlid}, new RowCallbackHandler() {
  61 + @Override
  62 + public void processRow(ResultSet resultSet) throws SQLException {
  63 + // 发车时间
  64 + String[] fcsjs = resultSet.getString("m_fcsjs").split(",");
  65 + for (String fcsj: fcsjs) {
  66 + RerunRule_input rerunRule_input = new RerunRule_input();
  67 + rerunRule_input.setXl(String.valueOf(resultSet.getInt("m_xl")));
  68 + rerunRule_input.setTtinfo(String.valueOf(resultSet.getLong("m_ttinfo")));
  69 + rerunRule_input.setLp(String.valueOf(resultSet.getLong("m_lp")));
  70 + rerunRule_input.setFcsj(fcsj);
  71 +
  72 + rerunRule_input.setType(resultSet.getString("type"));
  73 + // 对应班次类型
  74 + if ("dybc".equals(resultSet.getString("type"))) {
  75 + rerunRule_input.setS_xl(String.valueOf(resultSet.getInt("s_dylp_xl")));
  76 + rerunRule_input.setS_lp(String.valueOf(resultSet.getLong("s_dylp_lp")));
  77 + } else if ("dylp".equals(resultSet.getString("type"))) {
  78 + rerunRule_input.setCl(resultSet.getInt("s_dybc_cl"));
  79 + rerunRule_input.setZbh(resultSet.getString("s_dybc_clzbh"));
  80 + rerunRule_input.setJ(resultSet.getInt("s_dybc_j"));
  81 + rerunRule_input.setJgh(resultSet.getString("s_dybc_jgh"));
  82 + rerunRule_input.setJname(resultSet.getString("s_dybc_jname"));
  83 + rerunRule_input.setS(resultSet.getInt("s_dybc_s"));
  84 + rerunRule_input.setSgh(resultSet.getString("s_dybc_sgh"));
  85 + rerunRule_input.setSname(resultSet.getString("s_dybc_sname"));
  86 + }
  87 +
  88 + rerunRule_inputs.add(rerunRule_input);
  89 + }
  90 +
  91 + }
  92 + });
  93 +
  94 + return rerunRule_inputs;
  95 + }
  96 +
  97 + public void test() {
  98 + jdbcTemplate.query("", new RowCallbackHandler() {
  99 + @Override
  100 + public void processRow(ResultSet resultSet) throws SQLException {
  101 +
  102 + }
  103 + });
  104 + }
  105 +
  106 + @Override
40 public List<SchedulePlanRuleResult> findLastByXl(String xlid, Date from) { 107 public List<SchedulePlanRuleResult> findLastByXl(String xlid, Date from) {
41 String sql = "select * from bsth_c_s_sp_rule_rst a " + 108 String sql = "select * from bsth_c_s_sp_rule_rst a " +
42 "where exists (select 1 from " + 109 "where exists (select 1 from " +
src/main/java/com/bsth/service/schedule/rules/rerun/RerunRule_input.java 0 → 100644
  1 +package com.bsth.service.schedule.rules.rerun;
  2 +
  3 +/**
  4 + * Created by xu on 17/4/26.
  5 + */
  6 +public class RerunRule_input {
  7 + private String xl; // 主线路Id
  8 + private String ttinfo; // 时刻表Id
  9 + private String lp; // 路牌
  10 + private String fcsj; // 发车时间
  11 +
  12 + private String type; // 套跑类型(dylp-对应路牌, dybc-对应班车)
  13 + private String s_xl; // 对应路牌,线路Id
  14 + private String s_lp; // 对应路牌,路牌Id
  15 +
  16 + private Integer cl; // 对应班车,车辆Id
  17 + private String zbh; // 对应班车,车辆自编号
  18 + private Integer j; // 对应班车,驾驶员Id
  19 + private String jgh; // 对应班车,驾驶员工号
  20 + private String jname; // 对应班车,驾驶员姓名
  21 + private Integer s; // 对应班车,售票员Id
  22 + private String sgh; // 对应班车,售票员工号
  23 + private String sname; // 对应班车,售票员姓名
  24 +
  25 + public String getXl() {
  26 + return xl;
  27 + }
  28 +
  29 + public void setXl(String xl) {
  30 + this.xl = xl;
  31 + }
  32 +
  33 + public String getTtinfo() {
  34 + return ttinfo;
  35 + }
  36 +
  37 + public void setTtinfo(String ttinfo) {
  38 + this.ttinfo = ttinfo;
  39 + }
  40 +
  41 + public String getLp() {
  42 + return lp;
  43 + }
  44 +
  45 + public void setLp(String lp) {
  46 + this.lp = lp;
  47 + }
  48 +
  49 + public String getFcsj() {
  50 + return fcsj;
  51 + }
  52 +
  53 + public void setFcsj(String fcsj) {
  54 + this.fcsj = fcsj;
  55 + }
  56 +
  57 + public String getType() {
  58 + return type;
  59 + }
  60 +
  61 + public void setType(String type) {
  62 + this.type = type;
  63 + }
  64 +
  65 + public String getS_xl() {
  66 + return s_xl;
  67 + }
  68 +
  69 + public void setS_xl(String s_xl) {
  70 + this.s_xl = s_xl;
  71 + }
  72 +
  73 + public String getS_lp() {
  74 + return s_lp;
  75 + }
  76 +
  77 + public void setS_lp(String s_lp) {
  78 + this.s_lp = s_lp;
  79 + }
  80 +
  81 + public Integer getCl() {
  82 + return cl;
  83 + }
  84 +
  85 + public void setCl(Integer cl) {
  86 + this.cl = cl;
  87 + }
  88 +
  89 + public String getZbh() {
  90 + return zbh;
  91 + }
  92 +
  93 + public void setZbh(String zbh) {
  94 + this.zbh = zbh;
  95 + }
  96 +
  97 + public Integer getJ() {
  98 + return j;
  99 + }
  100 +
  101 + public void setJ(Integer j) {
  102 + this.j = j;
  103 + }
  104 +
  105 + public String getJgh() {
  106 + return jgh;
  107 + }
  108 +
  109 + public void setJgh(String jgh) {
  110 + this.jgh = jgh;
  111 + }
  112 +
  113 + public String getJname() {
  114 + return jname;
  115 + }
  116 +
  117 + public void setJname(String jname) {
  118 + this.jname = jname;
  119 + }
  120 +
  121 + public Integer getS() {
  122 + return s;
  123 + }
  124 +
  125 + public void setS(Integer s) {
  126 + this.s = s;
  127 + }
  128 +
  129 + public String getSgh() {
  130 + return sgh;
  131 + }
  132 +
  133 + public void setSgh(String sgh) {
  134 + this.sgh = sgh;
  135 + }
  136 +
  137 + public String getSname() {
  138 + return sname;
  139 + }
  140 +
  141 + public void setSname(String sname) {
  142 + this.sname = sname;
  143 + }
  144 +}
src/main/resources/application-dev.properties
@@ -6,7 +6,7 @@ spring.jpa.hibernate.ddl-auto= update @@ -6,7 +6,7 @@ spring.jpa.hibernate.ddl-auto= update
6 spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy 6 spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy
7 #DATABASE 7 #DATABASE
8 spring.jpa.database= MYSQL 8 spring.jpa.database= MYSQL
9 -spring.jpa.show-sql= true 9 +spring.jpa.show-sql= false
10 spring.datasource.driver-class-name= com.mysql.jdbc.Driver 10 spring.datasource.driver-class-name= com.mysql.jdbc.Driver
11 spring.datasource.url= jdbc:mysql://127.0.0.1/control?useUnicode=true&characterEncoding=utf-8&useSSL=false 11 spring.datasource.url= jdbc:mysql://127.0.0.1/control?useUnicode=true&characterEncoding=utf-8&useSSL=false
12 spring.datasource.username= root 12 spring.datasource.username= root
src/main/resources/rules/shiftloop_fb_2.drl
@@ -76,7 +76,7 @@ rule &quot;calcu_days_1_&quot; @@ -76,7 +76,7 @@ rule &quot;calcu_days_1_&quot;
76 76
77 insert(cdrp); 77 insert(cdrp);
78 78
79 - log.info("总共需要排班的天数 sdays={} ruleId={} from={} to={}", (p2.getDays() + 1), $ruleId, $fromDate, $toDate); 79 +// log.info("总共需要排班的天数 sdays={} ruleId={} from={} to={}", (p2.getDays() + 1), $ruleId, $fromDate, $toDate);
80 80
81 end 81 end
82 82
@@ -108,7 +108,7 @@ rule &quot;calcu_days_2_&quot; @@ -108,7 +108,7 @@ rule &quot;calcu_days_2_&quot;
108 108
109 insert(cdrp); 109 insert(cdrp);
110 110
111 - log.info("总共需要排班的天数 sdays={} ruleId={} from={} to={}", (p2.getDays() + 1), $ruleId, $qyrq, $toDate); 111 +// log.info("总共需要排班的天数 sdays={} ruleId={} from={} to={}", (p2.getDays() + 1), $ruleId, $qyrq, $toDate);
112 112
113 end 113 end
114 114
@@ -169,7 +169,7 @@ rule &quot;calcu_days_1_with_result&quot; @@ -169,7 +169,7 @@ rule &quot;calcu_days_1_with_result&quot;
169 ) 169 )
170 then 170 then
171 // 修正排班数据 171 // 修正排班数据
172 - log.info("准备修正 ruleId={} historyDate={}", $ruleId, $scheduleDate); 172 +// log.info("准备修正 ruleId={} historyDate={}", $ruleId, $scheduleDate);
173 173
174 $cdrp.setCalcu_index_lp(Integer.valueOf($self.getGidindex())); 174 $cdrp.setCalcu_index_lp(Integer.valueOf($self.getGidindex()));
175 $cdrp.setCalcu_index_ry(Integer.valueOf($self.getEcindex())); 175 $cdrp.setCalcu_index_ry(Integer.valueOf($self.getEcindex()));
@@ -211,8 +211,8 @@ rule &quot;Calcu_loop1_1_&quot; // 路牌在时刻表中存在,就翻 @@ -211,8 +211,8 @@ rule &quot;Calcu_loop1_1_&quot; // 路牌在时刻表中存在,就翻
211 $cdrp.setCalcu_index_ry(($ryindex + 1) % $ryrangesize); 211 $cdrp.setCalcu_index_ry(($ryindex + 1) % $ryrangesize);
212 $cdrp.setCalcu_start_date_1($csd1.plusDays(1)); 212 $cdrp.setCalcu_start_date_1($csd1.plusDays(1));
213 213
214 - log.info("Calcu_loop1_1_ ruleId={}, calcu_index_lp/ry={}/{}",  
215 - $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry()); 214 +// log.info("Calcu_loop1_1_ ruleId={}, calcu_index_lp/ry={}/{}",
  215 +// $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry());
216 216
217 update($cdrp); 217 update($cdrp);
218 end 218 end
@@ -233,8 +233,8 @@ rule &quot;Calcu_loop1_2_&quot; // 路牌在时刻表中不存在,就不翻 @@ -233,8 +233,8 @@ rule &quot;Calcu_loop1_2_&quot; // 路牌在时刻表中不存在,就不翻
233 then 233 then
234 $cdrp.setCalcu_start_date_1($csd1.plusDays(1)); 234 $cdrp.setCalcu_start_date_1($csd1.plusDays(1));
235 235
236 - log.info("Calcu_loop1_2_ ruleId={}, calcu_index_lp/ry={}/{}",  
237 - $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry()); 236 +// log.info("Calcu_loop1_2_ ruleId={}, calcu_index_lp/ry={}/{}",
  237 +// $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry());
238 238
239 update($cdrp); 239 update($cdrp);
240 end 240 end
@@ -304,8 +304,8 @@ rule &quot;Calcu_loop2_1_&quot; // 路牌在时刻表中存在,就翻 @@ -304,8 +304,8 @@ rule &quot;Calcu_loop2_1_&quot; // 路牌在时刻表中存在,就翻
304 scheduleResult.getSchedulePlanRuleResults().add(schedulePlanRuleResult); 304 scheduleResult.getSchedulePlanRuleResults().add(schedulePlanRuleResult);
305 305
306 306
307 - log.info("Calcu_loop2_1_ ruleId={}, calcu_index_lp/ry={}/{}, from={}, to={}",  
308 - $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry(), $csd2, $ced2); 307 +// log.info("Calcu_loop2_1_ ruleId={}, calcu_index_lp/ry={}/{}, from={}, to={}",
  308 +// $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry(), $csd2, $ced2);
309 309
310 update($cdrp); 310 update($cdrp);
311 end 311 end
@@ -359,8 +359,8 @@ rule &quot;Calcu_loop2_2_&quot; // 路牌在时刻表中不存在,就不翻 @@ -359,8 +359,8 @@ rule &quot;Calcu_loop2_2_&quot; // 路牌在时刻表中不存在,就不翻
359 // 359 //
360 // scheduleResult.getSchedulePlanRuleResults().add(schedulePlanRuleResult); 360 // scheduleResult.getSchedulePlanRuleResults().add(schedulePlanRuleResult);
361 361
362 - log.info("Calcu_loop2_2_ ruleId={}, calcu_index_lp/ry={}/{}, from={}, to={}",  
363 - $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry(), $csd2, $ced2); 362 +// log.info("Calcu_loop2_2_ ruleId={}, calcu_index_lp/ry={}/{}, from={}, to={}",
  363 +// $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry(), $csd2, $ced2);
364 364
365 update($cdrp); 365 update($cdrp);
366 end 366 end
src/main/resources/rules/ttinfo.drl
@@ -82,7 +82,7 @@ rule &quot;calcu_days&quot; @@ -82,7 +82,7 @@ rule &quot;calcu_days&quot;
82 cdr.setCalcu_end_date(($toDate)); 82 cdr.setCalcu_end_date(($toDate));
83 cdr.setXlId($xlId); 83 cdr.setXlId($xlId);
84 84
85 - log.info("总共需要计算的天数 calcu_days={} 之后的计算从第1天开始 ", p.getDays() + 1); 85 +// log.info("总共需要计算的天数 calcu_days={} 之后的计算从第1天开始 ", p.getDays() + 1);
86 86
87 insert(cdr); // 插入fact数据,进入下一个阶段 87 insert(cdr); // 插入fact数据,进入下一个阶段
88 end 88 end
@@ -107,7 +107,7 @@ rule &quot;calcu_ttinfo_enable&quot; @@ -107,7 +107,7 @@ rule &quot;calcu_ttinfo_enable&quot;
107 cter.setTtInfo_input_list($ttInfo_input_list); 107 cter.setTtInfo_input_list($ttInfo_input_list);
108 cter.setCalcu_date($calcu_date); 108 cter.setCalcu_date($calcu_date);
109 109
110 - log.info("启用的时刻表:xlId={} 时刻表个数={}", $xlId, $ttInfo_input_list.size()); 110 +// log.info("启用的时刻表:xlId={} 时刻表个数={}", $xlId, $ttInfo_input_list.size());
111 111
112 insert (cter); 112 insert (cter);
113 113
@@ -130,7 +130,7 @@ rule &quot;calcu_ttinfo_special_day&quot; // 特殊日期匹配 @@ -130,7 +130,7 @@ rule &quot;calcu_ttinfo_special_day&quot; // 特殊日期匹配
130 $calcu_days_result.setCalcu_date(new_calcu_date); 130 $calcu_days_result.setCalcu_date(new_calcu_date);
131 $calcu_days_result.setCalcu_weekday(new_calcu_date.getDayOfWeek()); 131 $calcu_days_result.setCalcu_weekday(new_calcu_date.getDayOfWeek());
132 132
133 - log.info("启用特殊日期时刻表:xlId={} 时刻表个数={} 特殊日期={}", $xlId, $ttinfolist.size(), $calcu_date); 133 +// log.info("启用特殊日期时刻表:xlId={} 时刻表个数={} 特殊日期={}", $xlId, $ttinfolist.size(), $calcu_date);
134 134
135 // $ttinfolist按时间倒排序,result输出 135 // $ttinfolist按时间倒排序,result输出
136 Collections.sort($ttinfolist); 136 Collections.sort($ttinfolist);
@@ -161,7 +161,7 @@ rule &quot;calcu_ttinfo_normal_day&quot; // 平日匹配 @@ -161,7 +161,7 @@ rule &quot;calcu_ttinfo_normal_day&quot; // 平日匹配
161 $calcu_days_result.setCalcu_date(new_calcu_date); 161 $calcu_days_result.setCalcu_date(new_calcu_date);
162 $calcu_days_result.setCalcu_weekday(new_calcu_date.getDayOfWeek()); 162 $calcu_days_result.setCalcu_weekday(new_calcu_date.getDayOfWeek());
163 163
164 - log.info("启用常规日期时刻表:xlId={} 时刻表个数={} 常规日期={} 星期几={} 路牌size={}", $xlId, $ttinfolist.size(), $calcu_date, $calcu_weekday, $lpInfoResults.size()); 164 +// log.info("启用常规日期时刻表:xlId={} 时刻表个数={} 常规日期={} 星期几={} 路牌size={}", $xlId, $ttinfolist.size(), $calcu_date, $calcu_weekday, $lpInfoResults.size());
165 165
166 // $ttinfolist按时间倒排序,result输出 166 // $ttinfolist按时间倒排序,result输出
167 Collections.sort($ttinfolist); 167 Collections.sort($ttinfolist);
@@ -192,7 +192,7 @@ rule &quot;calcu_ttinfo_other_day&quot; // 都没有的情况下,匹配 @@ -192,7 +192,7 @@ rule &quot;calcu_ttinfo_other_day&quot; // 都没有的情况下,匹配
192 $calcu_days_result.setCalcu_date(new_calcu_date); 192 $calcu_days_result.setCalcu_date(new_calcu_date);
193 $calcu_days_result.setCalcu_weekday(new_calcu_date.getDayOfWeek()); 193 $calcu_days_result.setCalcu_weekday(new_calcu_date.getDayOfWeek());
194 194
195 - log.info("启用默认日期时刻表:xlId={} 时刻表个数={} 常规日期={} 星期几={}", $xlId, $ttinfolist.size(), $calcu_date, $calcu_weekday); 195 +// log.info("启用默认日期时刻表:xlId={} 时刻表个数={} 常规日期={} 星期几={}", $xlId, $ttinfolist.size(), $calcu_date, $calcu_weekday);
196 196
197 // $ttinfolist按时间倒排序,result输出 197 // $ttinfolist按时间倒排序,result输出
198 Collections.sort($ttinfolist); 198 Collections.sort($ttinfolist);
src/main/resources/static/pages/scheduleApp/module/core/rerunManage/edit.html
@@ -181,7 +181,7 @@ @@ -181,7 +181,7 @@
181 <div class="col-md-3"> 181 <div class="col-md-3">
182 <sa-Select5 name="useCarConfig" 182 <sa-Select5 name="useCarConfig"
183 model="ctrl.rerunManageForSave" 183 model="ctrl.rerunManageForSave"
184 - cmaps="{'useCarConfig.id' : 'id'}" 184 + cmaps="{'useCarConfig.id' : 'id', 'cl': 'cl.id', 'clZbh': 'cl.insideCode'}"
185 dcname="useCarConfig.id" 185 dcname="useCarConfig.id"
186 icname="id" 186 icname="id"
187 dsparams="{{ {type: 'ajax', param:{'type': 'all', 'isCancel_eq': false}, atype:'cci2' } | json }}" 187 dsparams="{{ {type: 'ajax', param:{'type': 'all', 'isCancel_eq': false}, atype:'cci2' } | json }}"
@@ -203,7 +203,7 @@ @@ -203,7 +203,7 @@
203 <div class="col-md-5"> 203 <div class="col-md-5">
204 <sa-Select5 name="useEmployeeConfig" 204 <sa-Select5 name="useEmployeeConfig"
205 model="ctrl.rerunManageForSave" 205 model="ctrl.rerunManageForSave"
206 - cmaps="{'useEmployeeConfig.id' : 'id'}" 206 + cmaps="{'useEmployeeConfig.id' : 'id', 'j': 'jsy.id', 'jGh': 'jsy.jobCode', 'jName': 'jsy.personnelName', 's': 'spy.id', 'sGh': 'spy.jobCode', 'sName': 'spy.personnelName'}"
207 dcname="useEmployeeConfig.id" 207 dcname="useEmployeeConfig.id"
208 icname="id" 208 icname="id"
209 dsparams="{{ {type: 'ajax', param:{'type': 'all', 'isCancel_eq': false}, atype:'eci3' } | json }}" 209 dsparams="{{ {type: 'ajax', param:{'type': 'all', 'isCancel_eq': false}, atype:'eci3' } | json }}"
src/main/resources/static/pages/scheduleApp/module/core/rerunManage/form.html
@@ -181,7 +181,7 @@ @@ -181,7 +181,7 @@
181 <div class="col-md-3"> 181 <div class="col-md-3">
182 <sa-Select5 name="useCarConfig" 182 <sa-Select5 name="useCarConfig"
183 model="ctrl.rerunManageForSave" 183 model="ctrl.rerunManageForSave"
184 - cmaps="{'useCarConfig.id' : 'id'}" 184 + cmaps="{'useCarConfig.id' : 'id', 'cl': 'cl.id', 'clZbh': 'cl.insideCode'}"
185 dcname="useCarConfig.id" 185 dcname="useCarConfig.id"
186 icname="id" 186 icname="id"
187 dsparams="{{ {type: 'ajax', param:{'type': 'all', 'isCancel_eq': false}, atype:'cci2' } | json }}" 187 dsparams="{{ {type: 'ajax', param:{'type': 'all', 'isCancel_eq': false}, atype:'cci2' } | json }}"
@@ -203,7 +203,7 @@ @@ -203,7 +203,7 @@
203 <div class="col-md-5"> 203 <div class="col-md-5">
204 <sa-Select5 name="useEmployeeConfig" 204 <sa-Select5 name="useEmployeeConfig"
205 model="ctrl.rerunManageForSave" 205 model="ctrl.rerunManageForSave"
206 - cmaps="{'useEmployeeConfig.id' : 'id'}" 206 + cmaps="{'useEmployeeConfig.id' : 'id', 'j': 'jsy.id', 'jGh': 'jsy.jobCode', 'jName': 'jsy.personnelName', 's': 'spy.id', 'sGh': 'spy.jobCode', 'sName': 'spy.personnelName'}"
207 dcname="useEmployeeConfig.id" 207 dcname="useEmployeeConfig.id"
208 icname="id" 208 icname="id"
209 dsparams="{{ {type: 'ajax', param:{'type': 'all', 'isCancel_eq': false}, atype:'eci3' } | json }}" 209 dsparams="{{ {type: 'ajax', param:{'type': 'all', 'isCancel_eq': false}, atype:'eci3' } | json }}"
src/main/resources/static/pages/scheduleApp/module/core/ttInfoManage/detailedit/edit-detail.html
@@ -95,9 +95,9 @@ @@ -95,9 +95,9 @@
95 icname="zcode" 95 icname="zcode"
96 dsparams="{{ {type: 'ajax', param:{'lineid': ctrl.TimeTableDetailForSave.xl.id, 'xldir': ctrl.TimeTableDetailForSave.xlDir}, atype:'zd_tcc' } | json }}" 96 dsparams="{{ {type: 'ajax', param:{'lineid': ctrl.TimeTableDetailForSave.xl.id, 'xldir': ctrl.TimeTableDetailForSave.xlDir}, atype:'zd_tcc' } | json }}"
97 iterobjname="item" 97 iterobjname="item"
98 - iterobjexp="item.zname" 98 + iterobjexp="item.aname"
99 searchph="请输拼音..." 99 searchph="请输拼音..."
100 - searchexp="this.zname" 100 + searchexp="this.aname"
101 required > 101 required >
102 </sa-Select5> 102 </sa-Select5>
103 </div> 103 </div>
@@ -116,9 +116,9 @@ @@ -116,9 +116,9 @@
116 icname="zcode" 116 icname="zcode"
117 dsparams="{{ {type: 'ajax', param:{'lineid': ctrl.TimeTableDetailForSave.xl.id, 'xldir': ctrl.TimeTableDetailForSave.xlDir}, atype:'zd_tcc' } | json }}" 117 dsparams="{{ {type: 'ajax', param:{'lineid': ctrl.TimeTableDetailForSave.xl.id, 'xldir': ctrl.TimeTableDetailForSave.xlDir}, atype:'zd_tcc' } | json }}"
118 iterobjname="item" 118 iterobjname="item"
119 - iterobjexp="item.zname" 119 + iterobjexp="item.aname"
120 searchph="请输拼音..." 120 searchph="请输拼音..."
121 - searchexp="this.zname" 121 + searchexp="this.aname"
122 required > 122 required >
123 </sa-Select5> 123 </sa-Select5>
124 </div> 124 </div>
src/main/resources/static/pages/scheduleApp/module/core/ttInfoManage/detailedit/edit-detail2.html
@@ -76,9 +76,9 @@ @@ -76,9 +76,9 @@
76 icname="zcode" 76 icname="zcode"
77 dsparams="{{ {type: 'ajax', param:{'lineid': ctrl.xlid, 'xldir': ctrl.tt.xlDir}, atype:'zd_tcc' } | json }}" 77 dsparams="{{ {type: 'ajax', param:{'lineid': ctrl.xlid, 'xldir': ctrl.tt.xlDir}, atype:'zd_tcc' } | json }}"
78 iterobjname="item" 78 iterobjname="item"
79 - iterobjexp="item.zname" 79 + iterobjexp="item.aname"
80 searchph="请输拼音..." 80 searchph="请输拼音..."
81 - searchexp="this.zname" 81 + searchexp="this.aname"
82 required > 82 required >
83 </sa-Select5> 83 </sa-Select5>
84 </div> 84 </div>
@@ -93,9 +93,9 @@ @@ -93,9 +93,9 @@
93 icname="zcode" 93 icname="zcode"
94 dsparams="{{ {type: 'ajax', param:{'lineid': ctrl.xlid, 'xldir': ctrl.tt.xlDir}, atype:'zd_tcc' } | json }}" 94 dsparams="{{ {type: 'ajax', param:{'lineid': ctrl.xlid, 'xldir': ctrl.tt.xlDir}, atype:'zd_tcc' } | json }}"
95 iterobjname="item" 95 iterobjname="item"
96 - iterobjexp="item.zname" 96 + iterobjexp="item.aname"
97 searchph="请输拼音..." 97 searchph="请输拼音..."
98 - searchexp="this.zname" 98 + searchexp="this.aname"
99 required > 99 required >
100 </sa-Select5> 100 </sa-Select5>
101 </div> 101 </div>
src/test/resources/testdata/problem.properties
@@ -11,4 +11,6 @@ @@ -11,4 +11,6 @@
11 ##11=人员基础信息导入问题,工号前要加公司代码 11 ##11=人员基础信息导入问题,工号前要加公司代码
12 12=套跑规则嵌入到主排班规则中 12 12=套跑规则嵌入到主排班规则中
13 13=导入数据功能,需要加用户名 13 13=导入数据功能,需要加用户名
14 -14=路牌编号自动生成  
15 \ No newline at end of file 14 \ No newline at end of file
  15 +14=路牌编号自动生成
  16 +15=时刻表导入的时候表头后面不需要加数字
  17 +16=时间框中文
16 \ No newline at end of file 18 \ No newline at end of file