Commit a7f1581a5bfa7a5742169be5ee598581f2830797

Authored by 廖磊
2 parents a539fb6f 40601a9f

Merge branch 'minhang' of

http://222.66.0.204:8090/panzhaov5/bsth_control into minhang
Showing 32 changed files with 747 additions and 114 deletions
src/main/java/com/bsth/data/gpsdata/arrival/handlers/InOutStationSignalHandle.java
... ... @@ -175,7 +175,7 @@ public class InOutStationSignalHandle extends SignalHandle{
175 175 dayOfSchedule.save(sch);
176 176  
177 177 //清理应发未发标记
178   - LateAdjustHandle.remove(sch);
  178 + LateAdjustHandle.remove(sch.getClZbh());
179 179  
180 180 if(!gps.isService() && !dayOfSchedule.emptyService(sch)){
181 181 //切换成营运状态
... ... @@ -482,7 +482,7 @@ public class InOutStationSignalHandle extends SignalHandle{
482 482 boolean limitPark = StringUtils.isNotEmpty(park);
483 483  
484 484  
485   - if (next.getBcType().equals("in") && config.getOutConfig() == 2 && (next.getBcsj()==0 || next.getJhlcOrig().equals(0))
  485 + if (next.getBcType().equals("in") && config.getOutConfig() == 2 && (next.getBcsj()==0 || next.getJhlcOrig().intValue()==0)
486 486 && (!limitPark || park.equals(next.getZdzCode()))) {
487 487  
488 488 next.setFcsjActualAll(sch.getZdsjActualTime());
... ...
src/main/java/com/bsth/data/gpsdata/recovery/GpsDataRecovery.java
... ... @@ -84,7 +84,7 @@ public class GpsDataRecovery implements ApplicationContextAware {
84 84 Calendar calendar = Calendar.getInstance();
85 85 int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
86 86  
87   - String sql = "select DEVICE_ID,LAT,LON,TS,SPEED_GPS,LINE_ID,SERVICE_STATE from bsth_c_gps_info where days_year=267";// + dayOfYear;
  87 + String sql = "select DEVICE_ID,LAT,LON,TS,SPEED_GPS,LINE_ID,SERVICE_STATE from bsth_c_gps_info where days_year=285";// + dayOfYear;
88 88 JdbcTemplate jdbcTemplate = new JdbcTemplate(DBUtils_MS.getDataSource());
89 89  
90 90 List<GpsEntity> list =
... ...
src/main/java/com/bsth/data/pilot80/PilotReport.java
... ... @@ -162,6 +162,15 @@ public class PilotReport {
162 162  
163 163 LineConfig conf = lineConfigData.get(sch.getXlBm());
164 164 if (conf.getOutConfig() == 1) {
  165 +
  166 + try{
  167 + //最大允许时间阈值 2 小时
  168 + if(Math.abs(d80.getTimestamp() - sch.getDfsjT()) > 1000 * 60 * 60 * 2)
  169 + return;
  170 + }catch (Exception e){
  171 + logger.error("", e);
  172 + }
  173 +
165 174 //为相关班次写入请求出场时间
166 175 sch.setFcsjActualAll(d80.getTimestamp());
167 176  
... ...
src/main/java/com/bsth/data/schedule/late_adjust/LateAdjustHandle.java
... ... @@ -102,12 +102,25 @@ public class LateAdjustHandle implements ApplicationContextAware{
102 102 sch.setLate2(false);
103 103 sch.setLateMinute(0);
104 104 sch.setDfAuto(false);
  105 +
  106 + logger.info("移除误点调整 -" + sch.getClZbh());
105 107 }
106 108 }catch (Exception e){
107 109 logger.error("", e);
108 110 }
109 111 }
110 112  
  113 + public static void remove(String nbbm){
  114 + if(lateSchMap.containsKey(nbbm)){
  115 + ScheduleRealInfo sch = lateSchMap.get(nbbm);
  116 + sch.setLate2(false);
  117 + sch.setLateMinute(0);
  118 + sch.setDfAuto(false);
  119 +
  120 + logger.info("移除误点调整 nbbm -" + nbbm);
  121 + }
  122 + }
  123 +
111 124 /**
112 125 * 车辆到站
113 126 * @param gps
... ... @@ -127,10 +140,17 @@ public class LateAdjustHandle implements ApplicationContextAware{
127 140 /*&& sch.getLateMinute() > 0*/){
128 141 //自动调整待发 到达时间 + 停靠时间
129 142 long dt = Arith.addLong(gps.getTimestamp(), (sch.getLateMinute() * 60 * 1000));
130   - sch.setDfsjAll(dt);
131   - sch.setDfAuto(true);
132   - //取消应发未到标记
133   - sch.setLate2(false);
  143 +
  144 + //超过2小时最大阈值,放弃
  145 + if(Math.abs(dt - sch.getDfsjT()) > 1000 * 60 * 60 * 2){
  146 + logger.info(sch.getClZbh() + " 超过误点调整阈值,放弃");
  147 + }
  148 + else{
  149 + sch.setDfsjAll(dt);
  150 + sch.setDfAuto(true);
  151 + //取消应发未到标记
  152 + sch.setLate2(false);
  153 + }
134 154  
135 155 lateSchMap.remove(sch.getClZbh());
136 156 logger.info("【应发未到】车辆到站 " + sch.getClZbh() + " -" + sch.getDfsj() + " -到站时间:" + gps.getTimestamp() + " -停靠时间:" + sch.getLateMinute() + " -自动设置的待发时间:" + dt);
... ...
src/main/java/com/bsth/service/schedule/rules/shiftloop/ScheduleResults_output.java
... ... @@ -48,6 +48,7 @@ public class ScheduleResults_output {
48 48 groupRuleIdGuideBoardMap.get(s.getRuleId()).add(s);
49 49 }
50 50  
  51 + stringBuilder.append("\n");
51 52 for (String ruleId : groupRuleIdGuideBoardMap.keySet()) {
52 53 Collections.sort(groupRuleIdGuideBoardMap.get(ruleId), new Comparator<ScheduleResult_output>() {
53 54 @Override
... ...
src/main/java/com/bsth/service/traffic/impl/VehicleInoutStopServiceImpl.java
... ... @@ -4,6 +4,7 @@ import com.bsth.entity.traffic.VehicleInoutStop;
4 4 import com.bsth.service.impl.BaseServiceImpl;
5 5 import com.bsth.service.traffic.VehicleInoutStopService;
6 6 import com.bsth.util.DateUtils;
  7 +import com.bsth.util.db.DBUtils_MS;
7 8 import org.springframework.beans.factory.annotation.Autowired;
8 9 import org.springframework.jdbc.core.JdbcTemplate;
9 10 import org.springframework.stereotype.Service;
... ... @@ -51,17 +52,16 @@ public class VehicleInoutStopServiceImpl extends BaseServiceImpl&lt;VehicleInoutSto
51 52 String order = " order by report_date asc"+ " LIMIT "+page*size+","+size;
52 53 int dayNum = DateUtils.calcDaynumberInYear(reportDate_start.substring(0,8)) -1;
53 54 if(!lineId.equals("")){
54   - sql.append(" and l.id = ").append(lineId);
  55 + sql.append(" and line_id = ").append(lineId);
55 56 }
56 57 if(!insideCode.equals("")){
57   - sql.append(" and c.inside_code = ").append("'").append(insideCode.toUpperCase()).append("'");
  58 + sql.append(" and inside_code = ").append("'").append(insideCode.toUpperCase()).append("'");
58 59 }
59 60 if(!carPlate.equals("")){
60   - sql.append(" and c.car_plate = ").append("'").append("沪").append(carPlate.substring(0,1)).append("-")
61   - .append(carPlate.substring(1)).append("'");
  61 + sql.append(" and car_plate = ").append("'").append(carPlate).append("'");
62 62 }
63 63 sql.append(" and FROM_UNIXTIME(REPORT_DATE/1000,'%Y%m%d%H') between '").append(reportDate_start).
64   - append("' and '").append(reportDate_end).append("'").append(" and r.day_year = ").append(dayNum);
  64 + append("' and '").append(reportDate_end).append("'").append(" and day_year = ").append(dayNum);
65 65 if(flag.equals("count")){
66 66 return sql.toString();
67 67 }else{
... ... @@ -75,13 +75,13 @@ public class VehicleInoutStopServiceImpl extends BaseServiceImpl&lt;VehicleInoutSto
75 75 * @return
76 76 */
77 77 public List<Map<String, Object>> getVehicleInoutStopByParam(Map<String,Object> map){
78   - String sql = "SELECT c.branche_company,c.company,l.name,l.shanghai_linecode,inside_code,equipment_code,car_plate," +
79   - "if( r.service_state= 0,'营运','停运') as service_state ," +
80   - "if( r.up_down= 0,'上行','下行') as up_down ," +
81   - "if( r.in_out_stop= 0,'站内','站外') as in_out_stop , " +
82   - "r.stop,r.report_date FROM bsth_c_shreal r LEFT JOIN bsth_c_cars c on r.cars = c.id " +
83   - "LEFT JOIN bsth_c_line l on r.line = l.id" + packageParam(map,"") ;
84   - List<Map<String, Object>> result = jdbcTemplate.queryForList(sql);
  78 + JdbcTemplate jdbcTemp = new JdbcTemplate(DBUtils_MS.getDataSource());
  79 + String sql = "SELECT branche_company,company,name,shanghai_linecode,inside_code,equipment_code,car_plate," +
  80 + "if( service_state= 0,'营运','停运') as service_state ," +
  81 + "if( up_down= 0,'上行','下行') as up_down ," +
  82 + "if( in_out_stop= 0,'站内','站外') as in_out_stop , " +
  83 + "stop,report_date FROM bsth_c_shreal " + packageParam(map,"") ;
  84 + List<Map<String, Object>> result = jdbcTemp.queryForList(sql);
85 85 return result;
86 86 }
87 87  
... ... @@ -91,9 +91,9 @@ public class VehicleInoutStopServiceImpl extends BaseServiceImpl&lt;VehicleInoutSto
91 91 * @return
92 92 */
93 93 public long getVehicleInoutStopCountByParam(Map<String,Object> map){
94   - String sql = "SELECT count(1) COUNT FROM bsth_c_shreal r LEFT JOIN bsth_c_cars c on r.cars = c.id " +
95   - "LEFT JOIN bsth_c_line l on r.line = l.id" + packageParam(map,"count");
96   - long result = Long.valueOf(jdbcTemplate.queryForMap(sql).get("COUNT")+"");
  94 + JdbcTemplate jdbcTemp = new JdbcTemplate(DBUtils_MS.getDataSource());
  95 + String sql = "SELECT count(1) COUNT FROM bsth_c_shreal" + packageParam(map,"count");
  96 + long result = Long.valueOf(jdbcTemp.queryForMap(sql).get("COUNT")+"");
97 97 return result;
98 98 }
99 99 }
... ...
src/main/resources/rules/legacy/shiftloop_fb_2.drl 0 → 100644
  1 +package com.bsth.service.schedule.shiftloop;
  2 +
  3 +import org.joda.time.*;
  4 +import java.util.*;
  5 +
  6 +import com.bsth.service.schedule.rules.ttinfo.LpInfoResult_output;
  7 +
  8 +import com.bsth.service.schedule.utils.Md5Util;
  9 +
  10 +import com.bsth.service.schedule.rules.shiftloop.ScheduleCalcuParam_input;
  11 +import com.bsth.service.schedule.rules.shiftloop.ScheduleRule_input;
  12 +import com.bsth.service.schedule.rules.shiftloop.ScheduleRule_Type;
  13 +import com.bsth.service.schedule.rules.shiftloop.ScheduleResult_output;
  14 +import com.bsth.service.schedule.rules.shiftloop.ScheduleResults_output;
  15 +
  16 +import com.bsth.entity.schedule.temp.SchedulePlanRuleResult;
  17 +
  18 +import com.bsth.service.schedule.rules.ScheduleRuleService;
  19 +
  20 +import org.slf4j.Logger;
  21 +
  22 +global Logger log;
  23 +global ScheduleResults_output scheduleResult;
  24 +global ScheduleRuleService scheduleRuleService;
  25 +
  26 +/*
  27 + 存在(翻班格式)
  28 +*/
  29 +
  30 +//------------------------- 第一阶段、计算规则准备数据(天数) ----------------------------//
  31 +
  32 +declare Calcu_days_result_pre
  33 + ruleId: String // 规则Id
  34 + ruleMd5: String // 规则md5
  35 + ruleEcCount: Integer // 人员范围个数
  36 +
  37 + calcu_index_lp : Integer // 计算之后路牌的起始索引
  38 + calcu_index_ry : Integer // 计算之后人员的起始索引
  39 +
  40 + // 1、第一部分循环需要用到的数据(当开始日期大于启用日期的时候才有)
  41 + calcu_start_date_1: DateTime // 第一部分开始计算日期
  42 + calcu_end_date_1: DateTime // 第一部分结束计算日期
  43 +
  44 + // 2、第二部分循环需要用到的数据
  45 + sdays : Integer // 总共需要排班的天数
  46 + calcu_start_date_2 : DateTime // 开始计算日期
  47 + calcu_end_date_2 : DateTime // 结束计算日期
  48 +
  49 +end
  50 +
  51 +/*
  52 + 计算启用日期,开始计算日期,结束计算日期,相差天数
  53 + 1、规则启用日期小于开始计算日期
  54 + 2、规则启用日期大于等于开始日期,小于等于结束日期
  55 +*/
  56 +// 1、启用日期 < 开始日期
  57 +rule "calcu_days_1_"
  58 + salience 1000
  59 + when
  60 + ScheduleCalcuParam_input(
  61 + fromDate.isBefore(toDate) || fromDate.isEqual(toDate),
  62 + $fromDate : fromDate,
  63 + $toDate : toDate,
  64 + $xlId: xlId
  65 + )
  66 + $sri: ScheduleRule_input(
  67 + $ruleId : ruleId, $qyrq : qyrq,
  68 + $lpindex : startGbdIndex, $ryindex: startEIndex)
  69 + eval($qyrq.isBefore($fromDate))
  70 + then
  71 + scheduleResult.setXlid($xlId);
  72 +
  73 + // 构造Calcu_days_result_pre,用于路牌
  74 + Calcu_days_result_pre cdrp = new Calcu_days_result_pre();
  75 + cdrp.setRuleId($ruleId);
  76 + cdrp.setCalcu_index_lp($lpindex);
  77 + cdrp.setCalcu_index_ry($ryindex);
  78 + cdrp.setCalcu_start_date_1($qyrq);
  79 + cdrp.setCalcu_end_date_1($fromDate);
  80 + Period p2 = new Period($fromDate, $toDate, PeriodType.days());
  81 + cdrp.setSdays(p2.getDays() + 1);
  82 + cdrp.setCalcu_start_date_2($fromDate);
  83 + cdrp.setCalcu_end_date_2($toDate);
  84 +
  85 + /**
  86 + * 规则md5值(不使用id判定,使用md5判定)
  87 + * 使用,启用日期,路牌范围,结合生成md5编码
  88 + */
  89 + String ruleMd5 = Md5Util.getMd5(
  90 + String.valueOf($qyrq.getMillis()) +
  91 + "_" +
  92 + $sri.getSelf().getLpIds() +
  93 + "_" +
  94 + $sri.getSelf().getLpStart().toString()
  95 + );
  96 + cdrp.setRuleMd5(ruleMd5);
  97 + // 人员范围个数
  98 + cdrp.setRuleEcCount($sri.getEmployeeConfigIds().size());
  99 +
  100 + insert(cdrp);
  101 +
  102 +// log.info("总共需要排班的天数 sdays={} ruleId={} from={} to={}", (p2.getDays() + 1), $ruleId, $fromDate, $toDate);
  103 +
  104 +end
  105 +
  106 +// 启用日期 属于 [开始日期,结束日期]
  107 +rule "calcu_days_2_"
  108 + salience 1000
  109 + when
  110 + ScheduleCalcuParam_input(
  111 + fromDate.isBefore(toDate) || fromDate.isEqual(toDate),
  112 + $fromDate : fromDate,
  113 + $toDate : toDate,
  114 + $xlId: xlId
  115 + )
  116 + $sri: ScheduleRule_input(
  117 + $ruleId : ruleId, $qyrq : qyrq,
  118 + $lpindex : startGbdIndex, $ryindex: startEIndex)
  119 + eval((!$qyrq.isBefore($fromDate)) && (!$qyrq.isAfter($toDate)))
  120 + then
  121 + scheduleResult.setXlid($xlId);
  122 +
  123 + // 构造Calcu_days_result_pre,用于路牌
  124 + Calcu_days_result_pre cdrp = new Calcu_days_result_pre();
  125 + cdrp.setRuleId($ruleId);
  126 + cdrp.setCalcu_index_lp($lpindex);
  127 + cdrp.setCalcu_index_ry($ryindex);
  128 + cdrp.setCalcu_start_date_1($qyrq);
  129 + cdrp.setCalcu_end_date_1($qyrq);
  130 + Period p2 = new Period($qyrq, $toDate, PeriodType.days());
  131 + cdrp.setSdays(p2.getDays() + 1);
  132 + cdrp.setCalcu_start_date_2($qyrq);
  133 + cdrp.setCalcu_end_date_2($toDate);
  134 +
  135 + /**
  136 + * 规则md5值(不使用id判定,使用md5判定)
  137 + * 使用,启用日期,路牌范围,结合生成md5编码
  138 + */
  139 + String ruleMd5 = Md5Util.getMd5(
  140 + String.valueOf($qyrq.getMillis()) +
  141 + "_" +
  142 + $sri.getSelf().getLpIds() +
  143 + "_" +
  144 + $sri.getSelf().getLpStart().toString()
  145 + );
  146 + cdrp.setRuleMd5(ruleMd5);
  147 + // 人员范围个数
  148 + cdrp.setRuleEcCount($sri.getEmployeeConfigIds().size());
  149 +
  150 + insert(cdrp);
  151 +
  152 +// log.info("总共需要排班的天数 sdays={} ruleId={} from={} to={}", (p2.getDays() + 1), $ruleId, $qyrq, $toDate);
  153 +
  154 +end
  155 +
  156 +// 使用已经排过班的数据修正Calcu_days_result_pre
  157 +// 1、避免每次从规则的启用日期开始算
  158 +// 2、时刻表会不停的修正,如果每次都从规则启用日期开始算,会出错
  159 +
  160 +declare SchedulePlanRuleResult_wrap
  161 + ruleId: String // 规则Id
  162 + ruleMd5: String // 规则md5编码
  163 + scheduleDate: DateTime // 排班日期
  164 +
  165 + isUsed: Boolean = false // 是否被使用过
  166 +
  167 + self: SchedulePlanRuleResult; // 原始对象数据
  168 +end
  169 +
  170 +rule "Calcu_SchedulePlanRuleResult_wrap"
  171 + salience 950
  172 + when
  173 + ScheduleCalcuParam_input(
  174 + fromDate.isBefore(toDate) || fromDate.isEqual(toDate),
  175 + $fromDate : fromDate,
  176 + $toDate : toDate,
  177 + $xlId: xlId,
  178 + $self: schedulePlan
  179 + )
  180 + eval($self.getIsHistoryPlanFirst() == true) // 是否使用历史排班标识
  181 + $sprr: SchedulePlanRuleResult() from scheduleRuleService.findLastByXl($xlId, $fromDate.toDate())
  182 + eval($sprr.getQyrq() != null)
  183 +
  184 + then
  185 + // 创建班序历史结果数据
  186 + SchedulePlanRuleResult_wrap schedulePlanRuleResult_wrap = new SchedulePlanRuleResult_wrap();
  187 + schedulePlanRuleResult_wrap.setRuleId($sprr.getRuleId());
  188 + schedulePlanRuleResult_wrap.setScheduleDate(new DateTime($sprr.getScheduleDate()));
  189 + schedulePlanRuleResult_wrap.setSelf($sprr);
  190 +
  191 + // 规则Md5编码
  192 + String md5 = Md5Util.getMd5(
  193 + String.valueOf($sprr.getQyrq().getTime()) +
  194 + "_" +
  195 + $sprr.getGids() +
  196 + "_" +
  197 + $sprr.getOrigingidindex()
  198 + );
  199 +
  200 +// System.out.println("修改后的md5:" + md5 + "车辆:" + $sprr.getCcZbh());
  201 +
  202 + schedulePlanRuleResult_wrap.setRuleMd5(md5);
  203 +
  204 + insert(schedulePlanRuleResult_wrap);
  205 +end
  206 +
  207 +
  208 +// 1、启用日期 < 开始日期
  209 +// 2、如果最近的排班规则历史时间在 (启用日期,开始日期) 之间,需要重新修正预处理数据
  210 +rule "calcu_days_1_with_result"
  211 + no-loop
  212 + salience 960
  213 + when
  214 + $cdrp: Calcu_days_result_pre(
  215 + calcu_start_date_1.isBefore(calcu_start_date_2),
  216 + $ruleId: ruleId,
  217 + $ruleMd5: ruleMd5,
  218 + $ruleEcCount: ruleEcCount
  219 + )
  220 + $srrr_wrap: SchedulePlanRuleResult_wrap(
  221 +// ruleId == $ruleId,
  222 + ruleMd5 == $ruleMd5,
  223 + scheduleDate.isAfter($cdrp.calcu_start_date_1),
  224 + scheduleDate.isBefore($cdrp.calcu_start_date_2),
  225 + isUsed == false,
  226 + $scheduleDate: scheduleDate,
  227 + $self: self
  228 + )
  229 + then
  230 + // 修正排班数据
  231 +// log.info("准备修正 ruleId={} historyDate={}", $ruleId, $scheduleDate);
  232 +
  233 + // 路牌范围起始index使用历史数据
  234 + $cdrp.setCalcu_index_lp(Integer.valueOf($self.getGidindex()));
  235 + // 人员范围起始index,需要判定,如果长度都是一样的,使用历史的,否则不更新,使用最新的
  236 + String history_ecids = $self.getEcids();
  237 + if ($ruleEcCount == history_ecids.split(",").length) {
  238 + $cdrp.setCalcu_index_ry(Integer.valueOf($self.getEcindex()));
  239 + }
  240 +
  241 + $cdrp.setCalcu_start_date_1($scheduleDate);
  242 + update($cdrp);
  243 +
  244 + $srrr_wrap.setIsUsed(true);
  245 + update($srrr_wrap);
  246 +
  247 +end
  248 +
  249 +
  250 +
  251 +//------------------------- 第二阶段、计算规则准备数据2(第一组循环) ----------------------------//
  252 +rule "Calcu_loop1_1_" // 路牌在时刻表中存在,就翻
  253 + salience 900
  254 + when
  255 + $cdrp: Calcu_days_result_pre(
  256 + calcu_start_date_1.isBefore(calcu_end_date_1),
  257 + $csd1: calcu_start_date_1,
  258 + $ced1: calcu_end_date_1,
  259 + $ruleId: ruleId,
  260 + $lpindex: calcu_index_lp,
  261 + $ryindex: calcu_index_ry
  262 + )
  263 + $sri: ScheduleRule_input(
  264 + ruleId == $ruleId,
  265 + $gids: guideboardIds,
  266 + $lprangesize : guideboardIds.size(),
  267 + $ryrangesize: employeeConfigIds.size()
  268 + )
  269 + $liro: LpInfoResult_output(
  270 + dateTime.isEqual($csd1),
  271 + $gids.get($lpindex) == lpId,
  272 + $lpId: lpId
  273 + )
  274 + 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));
  278 +
  279 +// log.info("Calcu_loop1_1_ ruleId={}, calcu_index_lp/ry={}/{}",
  280 +// $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry());
  281 +
  282 + update($cdrp);
  283 +end
  284 +
  285 +rule "Calcu_loop1_2_" // 路牌在时刻表中不存在,就不翻
  286 + salience 900
  287 + when
  288 + $cdrp: Calcu_days_result_pre(
  289 + calcu_start_date_1.isBefore(calcu_end_date_1),
  290 + $csd1: calcu_start_date_1,
  291 + $ced1: calcu_end_date_1,
  292 + $ruleId: ruleId
  293 + )
  294 + $sri: ScheduleRule_input(
  295 + ruleId == $ruleId,
  296 + $rangesize : guideboardIds.size()
  297 + )
  298 + 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());
  303 +
  304 + update($cdrp);
  305 +end
  306 +
  307 +//------------------------- 第三阶段、计算规则准备数据2(第二组循环) ----------------------------//
  308 +rule "Calcu_loop2_1_" // 路牌在时刻表中存在,就翻
  309 + salience 800
  310 + when
  311 + ScheduleCalcuParam_input($sp: schedulePlan, $xlid: xlId)
  312 + $cdrp: Calcu_days_result_pre(
  313 + 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),
  315 + $csd2: calcu_start_date_2,
  316 + $ced2: calcu_end_date_2,
  317 + $ruleId: ruleId,
  318 + $lpindex: calcu_index_lp,
  319 + $ryindex: calcu_index_ry
  320 + )
  321 + $sri: ScheduleRule_input(
  322 + ruleId == $ruleId,
  323 + $cid: carConfigId,
  324 + $gids: guideboardIds,
  325 + $eids: employeeConfigIds,
  326 + $lprangesize : guideboardIds.size(),
  327 + $ryrangesize: employeeConfigIds.size(),
  328 + $srf: self
  329 + )
  330 + $liro: LpInfoResult_output(
  331 + dateTime.isEqual($csd2),
  332 + $gids.get($lpindex) == lpId,
  333 + $lpId: lpId,
  334 + $ttinfoId: ttInfoId,
  335 + $ttinfoName: ttInfoName
  336 + )
  337 + 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);
  385 +
  386 + update($cdrp);
  387 +end
  388 +
  389 +rule "Calcu_loop2_2_" // 路牌在时刻表中不存在,就不翻
  390 + salience 800
  391 + when
  392 + ScheduleCalcuParam_input($sp: schedulePlan, $xlid: xlId)
  393 + $cdrp: Calcu_days_result_pre(
  394 + 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),
  396 + $csd2: calcu_start_date_2,
  397 + $ced2: calcu_end_date_2,
  398 + $ruleId: ruleId,
  399 + $lpindex: calcu_index_lp,
  400 + $ryindex: calcu_index_ry
  401 + )
  402 + $sri: ScheduleRule_input(
  403 + ruleId == $ruleId,
  404 + $cid: carConfigId,
  405 + $gids: guideboardIds,
  406 + $eids: employeeConfigIds,
  407 + $srf: self
  408 + )
  409 + 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);
  444 +
  445 + update($cdrp);
  446 +end
  447 +
  448 +
  449 +
  450 +
  451 +
  452 +
... ...
src/main/resources/rules/shiftloop_fb_2.drl
... ... @@ -254,6 +254,10 @@ rule &quot;calcu_days_1_with_result&quot;
254 254 $cdrp.setCalcu_index_ry(Integer.valueOf($self.getEcindex()));
255 255 }
256 256  
  257 + // 翻班格式利用路牌的历史index更新
  258 + int fb_temp = Integer.valueOf($self.getGidindex()) % $cdrp.getFbweeks().size();
  259 + $cdrp.setFbgs_index(fb_temp);
  260 +
257 261 $cdrp.setCalcu_start_date_1($scheduleDate);
258 262 update($cdrp);
259 263  
... ... @@ -266,7 +270,7 @@ end
266 270  
267 271 //------------------------- 第二阶段、计算规则准备数据2(第一组循环) ----------------------------//
268 272  
269   -function void calcu_loop1_fb(Calcu_days_result_pre $cdrp, ScheduleRule_input $sri) {
  273 +function void calcu_loop1_fb(Calcu_days_result_pre $cdrp, ScheduleRule_input $sri, Logger log) {
270 274 Integer $lpindex = $cdrp.getCalcu_index_lp();
271 275 Integer $lprangesize = $sri.getGuideboardIds().size();
272 276 Integer $ryindex = $cdrp.getCalcu_index_ry();
... ... @@ -274,6 +278,8 @@ function void calcu_loop1_fb(Calcu_days_result_pre $cdrp, ScheduleRule_input $sr
274 278 Integer $fbindex = $cdrp.getFbgs_index();
275 279 Integer $fbfangesize = $sri.getWeekdays().size();
276 280 DateTime $csd1 = $cdrp.getCalcu_start_date_1();
  281 + DateTime $ced1 = $cdrp.getCalcu_end_date_1();
  282 +
277 283 String $ruleId = $cdrp.getRuleId();
278 284  
279 285 $cdrp.setCalcu_index_lp(($lpindex + 1) % $lprangesize);
... ... @@ -282,19 +288,21 @@ function void calcu_loop1_fb(Calcu_days_result_pre $cdrp, ScheduleRule_input $sr
282 288 $cdrp.setFbgs_index(($fbindex + 1) % $fbfangesize);
283 289 $cdrp.setCalcu_start_date_1($csd1.plusDays(1));
284 290  
285   -// log.info("calcu_loop1_fb ruleId={}, calcu_index_lp/ry={}/{}",
286   -// $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry());
  291 +// log.info("calcu_loop1_fb ruleId={}, calcu_index_lp/ry={}/{}, from={}, to={}",
  292 +// $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry(), $csd1, $ced1);
  293 +
287 294 }
288   -function void calcu_loop1_not_fb(Calcu_days_result_pre $cdrp, ScheduleRule_input $sri) {
  295 +function void calcu_loop1_not_fb(Calcu_days_result_pre $cdrp, ScheduleRule_input $sri, Logger log) {
289 296 DateTime $csd1 = $cdrp.getCalcu_start_date_1();
  297 + DateTime $ced1 = $cdrp.getCalcu_end_date_1();
290 298 Integer $fbindex = $cdrp.getFbgs_index();
291 299 Integer $fbfangesize = $sri.getWeekdays().size();
292 300  
293 301 $cdrp.setFbgs_index(($fbindex + 1) % $fbfangesize);
294 302 $cdrp.setCalcu_start_date_1($csd1.plusDays(1));
295 303  
296   -// log.info("calcu_loop1_not_fb ruleId={}, calcu_index_lp/ry={}/{}",
297   -// $cdrp.getRuleId(), $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry());
  304 +// log.info("calcu_loop1_not_fb ruleId={}, calcu_index_lp/ry={}/{}, from={}, to={}",
  305 +// $cdrp.getRuleId(), $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry(), $csd1, $ced1);
298 306 }
299 307  
300 308  
... ... @@ -312,7 +320,7 @@ rule &quot;Calcu_loop1_fbtype_with_0_&quot; // 翻班模式为 type=1 使用翻班格式
312 320 weekdays[$fbindex] == false
313 321 )
314 322 then
315   - calcu_loop1_not_fb($cdrp, $sri);
  323 + calcu_loop1_not_fb($cdrp, $sri, log);
316 324 update($cdrp);
317 325 end
318 326  
... ... @@ -337,7 +345,7 @@ rule &quot;Calcu_loop1_fbtype_with_1_lp_&quot; // 翻班模式为 type=1 使用翻班格
337 345 $gids[$lpindex] == lpId
338 346 )
339 347 then
340   - calcu_loop1_fb($cdrp, $sri);
  348 + calcu_loop1_fb($cdrp, $sri, log);
341 349 update($cdrp);
342 350  
343 351 end
... ... @@ -357,7 +365,7 @@ rule &quot;Calcu_loop1_fbtype_with_1_no_lp_&quot; // 翻班模式为 type=1 使用翻班
357 365 weekdays[$fbindex] == true
358 366 )
359 367 then
360   - calcu_loop1_not_fb($cdrp, $sri);
  368 + calcu_loop1_not_fb($cdrp, $sri, log);
361 369 update($cdrp);
362 370 end
363 371  
... ... @@ -381,7 +389,7 @@ rule &quot;Calcu_loop1_timetabletype_with_lp_&quot; // 翻班模式为 type=0 使用时刻
381 389 $gids[$lpindex] == lpId
382 390 )
383 391 then
384   - calcu_loop1_fb($cdrp, $sri);
  392 + calcu_loop1_fb($cdrp, $sri, log);
385 393 update($cdrp);
386 394 end
387 395  
... ... @@ -398,7 +406,7 @@ rule &quot;Calcu_loop1_timetabletype_with_no_lp_&quot; // 翻班模式为 type=0 使用时
398 406 ruleId == $ruleId
399 407 )
400 408 then
401   - calcu_loop1_not_fb($cdrp, $sri);
  409 + calcu_loop1_not_fb($cdrp, $sri, log);
402 410 update($cdrp);
403 411 end
404 412  
... ... @@ -477,18 +485,20 @@ function void calcu_loop2_fb(
477 485  
478 486  
479 487  
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);
  488 +// log.info("calcu_loop2_fb ruleId={}, calcu_index_lp/ry={}/{}, from={}, to={}",
  489 +// $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry(), $csd2, $ced2);
482 490  
483 491 }
484 492  
485 493 function void calcu_loop2_not_fb(
486 494 Calcu_days_result_pre $cdrp,
487 495 ScheduleRule_input $sri,
488   - ScheduleResults_output rs) {
  496 + ScheduleResults_output rs,
  497 + Logger log) {
489 498  
490 499 String $ruleId = $cdrp.getRuleId();
491 500 DateTime $csd2 = $cdrp.getCalcu_start_date_2();
  501 + DateTime $ced2 = $cdrp.getCalcu_end_date_2();
492 502 Integer $lpindex = $cdrp.getCalcu_index_lp();
493 503 List $gids = $sri.getGuideboardIds();
494 504 Integer $ryindex = $cdrp.getCalcu_index_ry();
... ... @@ -514,6 +524,10 @@ function void calcu_loop2_not_fb(
514 524  
515 525 $cdrp.setFbgs_index(($fbindex + 1) % $fbfangesize);
516 526 $cdrp.setCalcu_start_date_2($csd2.plusDays(1));
  527 +
  528 +// log.info("calcu_loop2_not_fb ruleId={}, calcu_index_lp/ry={}/{}, from={}, to={}",
  529 +// $ruleId, $cdrp.getCalcu_index_lp(), $cdrp.getCalcu_index_ry(), $csd2, $ced2);
  530 +
517 531 }
518 532  
519 533 rule "Calcu_loop2_fbtype_with_0_" // 翻班模式为 type=1 使用翻班格式翻,当天翻班格式是false,就跳过
... ... @@ -532,7 +546,7 @@ rule &quot;Calcu_loop2_fbtype_with_0_&quot; // 翻班模式为 type=1 使用翻班格式
532 546 weekdays[$fbindex] == false
533 547 )
534 548 then
535   - calcu_loop2_not_fb($cdrp, $sri, scheduleResult);
  549 + calcu_loop2_not_fb($cdrp, $sri, scheduleResult, log);
536 550 update($cdrp);
537 551  
538 552 end
... ... @@ -580,7 +594,7 @@ rule &quot;Calcu_loop2_fbtype_with_1_no_lp_&quot; // 翻班模式为 type=1 使用翻班
580 594 weekdays[$fbindex] == true
581 595 )
582 596 then
583   - calcu_loop2_not_fb($cdrp, $sri, scheduleResult);
  597 + calcu_loop2_not_fb($cdrp, $sri, scheduleResult, log);
584 598 update($cdrp);
585 599  
586 600 end
... ... @@ -626,7 +640,7 @@ rule &quot;Calcu_loop2_timetabletype_with_no_lp_&quot; // 翻班模式为 type=0 使用时
626 640 ruleId == $ruleId
627 641 )
628 642 then
629   - calcu_loop2_not_fb($cdrp, $sri, scheduleResult);
  643 + calcu_loop2_not_fb($cdrp, $sri, scheduleResult, log);
630 644 update($cdrp);
631 645 end
632 646  
... ...
src/main/resources/static/pages/base/line/list.html
... ... @@ -5,7 +5,7 @@
5 5 <div class="page-title">
6 6 <h1>线路信息</h1>
7 7 </div>
8   -
  8 +</div>
9 9 <!-- 片段标题 END -->
10 10  
11 11 <!-- 线路信息导航栏组件 START -->
... ... @@ -154,7 +154,6 @@
154 154 </div>
155 155 </div>
156 156 </div>
157   -</div>
158 157 <!--
159 158  
160 159 <td style="vertical-align: middle;">
... ...
src/main/resources/static/pages/base/stationroute/deletesection.html
... ... @@ -136,7 +136,6 @@ $(&#39;#delete_section_mobal&#39;).on(&#39;deleteSectionMobal.show&#39;,function(e, ajaxd, line,
136 136 //ids.push($(this).val());
137 137 });
138 138 if (ids != "" && ids != null && ids != undefined) {
139   - console.log("ids:" + ids);
140 139 ids = ids.substr(1, ids.length - 1);
141 140 var params = {};
142 141 params.ids = ids;
... ... @@ -224,6 +223,8 @@ $(&#39;#delete_section_mobal&#39;).on(&#39;deleteSectionMobal.show&#39;,function(e, ajaxd, line,
224 223 *
225 224 */
226 225 function loadTableDate(param, isPon) {
  226 + // 初始化全选按钮
  227 + document.getElementById('scetionCheckItems').checked = null;
227 228 // 搜索参数
228 229 var params = {};
229 230 if (param)
... ...
src/main/resources/static/pages/base/stationroute/deletestation.html
... ... @@ -225,6 +225,8 @@ $(&#39;#delete_station_mobal&#39;).on(&#39;deleteStationMobal.show&#39;,function(e, ajaxd, line,
225 225 *
226 226 */
227 227 function loadTableDate(param, isPon) {
  228 + // 初始化全选按钮
  229 + document.getElementById('stationCheckItems').checked = null;
228 230 // 搜索参数
229 231 var params = {};
230 232 if (param)
... ...
src/main/resources/static/pages/base/stationroute/js/stationroute-list-function.js
... ... @@ -277,6 +277,7 @@ var PublicFunctions = function () {
277 277  
278 278 /** @param directionV_ :方向 */
279 279 stationRevoke : function(directionV_) {
  280 + debugger
280 281 // 获取树选中节点对象
281 282 var obj = PublicFunctions.getCurrSelNode(directionV_);
282 283 // 是否选中,选中节点是否为站点
... ... @@ -298,9 +299,9 @@ var PublicFunctions = function () {
298 299 // 关闭弹出框
299 300 layer.close(index);
300 301 if(result.status=='SUCCESS'){
301   - layer.msg('撤销上行站点【'+obj[0].text+'】成功!');
  302 + layer.msg('撤销'+(directionV_==0?"上行":"下行")+'站点【'+obj[0].text+'】成功!');
302 303 }else{
303   - layer.msg('撤销上行站点【'+obj[0].text+'】失败!');
  304 + layer.msg('撤销'+(directionV_==0?"上行":"下行")+'站点【'+obj[0].text+'】失败!');
304 305 }
305 306 WorldsBMap.clearMarkAndOverlays();
306 307 var Line = LineObj.getLineObj();
... ...
src/main/resources/static/pages/base/stationroute/js/stationroute-list-reload.js
... ... @@ -58,16 +58,12 @@ $(function(){
58 58 /** 初始化下行树 @param:<Line.id:线路Id;1:下行> */
59 59 PublicFunctions.TreeUpOrDown(Line.id,'1');
60 60  
61   - var start =new Date();
62   - console.log(start);
63 61 /** 查询路段信息 @param:<Line.id:线路Id;dir:方向> @return:data:路段数据 */
64 62 GetAjaxData.getSectionRouteInfo(Line.id,dir,function(data) {
65 63 /** 在地图上画出线路走向 @param:<Line.id:线路Id;0:上行;data:路段数据> */
66 64 PublicFunctions.linePanlThree(Line.id,data,dir);
67 65  
68 66 });
69   - var finish =new Date();
70   - console.log(finish);
71 67 },500);
72 68  
73 69 }else {
... ...
src/main/resources/static/pages/scheduleApp/module/common/prj-common-globalservice.js
1   -//所有模块service配置
  1 +//所有模块service配置
2 2 // 车辆信息service
3 3 angular.module('ScheduleApp').factory(
4 4 'BusInfoManageService_g',
... ... @@ -79,7 +79,7 @@ angular.module(&#39;ScheduleApp&#39;).factory(
79 79  
80 80 }
81 81 ]
82   -);
  82 +);
83 83 // 车辆设备信息service
84 84 angular.module('ScheduleApp').factory('DeviceInfoManageService_g', ['$resource', function($resource) {
85 85 return $resource(
... ... @@ -119,7 +119,7 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;DeviceInfoManageService_g&#39;, [&#39;$resource&#39;,
119 119 }
120 120 }
121 121 );
122   -}]);
  122 +}]);
123 123 // 人员信息service
124 124 angular.module('ScheduleApp').factory(
125 125 'EmployeeInfoManageService_g',
... ... @@ -183,7 +183,7 @@ angular.module(&#39;ScheduleApp&#39;).factory(
183 183 }
184 184 ]
185 185 );
186   -
  186 +
187 187 // 车辆配置service
188 188 angular.module('ScheduleApp').factory('BusConfigService_g', ['$resource', 'UserPrincipal', function($resource, UserPrincipal) {
189 189 return {
... ... @@ -238,7 +238,7 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;BusConfigService_g&#39;, [&#39;$resource&#39;, &#39;UserP
238 238 }
239 239 )
240 240 };
241   -}]);
  241 +}]);
242 242 // 线路运营统计service
243 243 angular.module('ScheduleApp').factory('BusLineInfoStatService_g', ['$resource', function($resource) {
244 244 return $resource(
... ... @@ -254,7 +254,7 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;BusLineInfoStatService_g&#39;, [&#39;$resource&#39;,
254 254 }
255 255 );
256 256 }]);
257   -
  257 +
258 258 // 人员配置service
259 259 angular.module('ScheduleApp').factory('EmployeeConfigService_g', ['$resource', function($resource) {
260 260 return {
... ... @@ -338,7 +338,7 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;EmployeeConfigService_g&#39;, [&#39;$resource&#39;, f
338 338 }
339 339 )
340 340 };
341   -}]);
  341 +}]);
342 342 // 路牌管理service
343 343 angular.module('ScheduleApp').factory('GuideboardManageService_g', ['$resource', function($resource) {
344 344 return {
... ... @@ -411,7 +411,7 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;GuideboardManageService_g&#39;, [&#39;$resource&#39;,
411 411 }
412 412 )
413 413 };
414   -}]);
  414 +}]);
415 415 // 套跑管理service
416 416 angular.module('ScheduleApp').factory('rerunManageService_g', ['$resource', function($resource) {
417 417 return {
... ... @@ -453,7 +453,7 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;rerunManageService_g&#39;, [&#39;$resource&#39;, func
453 453 }
454 454 )
455 455 };
456   -}]);
  456 +}]);
457 457 // 排班计划管理service
458 458 angular.module('ScheduleApp').factory('SchedulePlanManageService_g', ['$resource', function($resource) {
459 459 return {
... ... @@ -612,13 +612,13 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;SchedulePlanInfoManageService_g&#39;, [&#39;$reso
612 612  
613 613  
614 614 };
615   -}]);
  615 +}]);
616 616 // 排班管理service
617 617 angular.module('ScheduleApp').factory('ScheduleRuleManageService_g', ['$resource', function($resource) {
618 618 return {
619 619 rest: $resource(
620 620 '/sr1fc/:id',
621   - {order: 'xl.id,updateDate,carConfigInfo.cl.insideCode', direction: 'ASC,DESC,ASC', id: '@id'},
  621 + {order: 'xl.id,fbtype,updateDate,carConfigInfo.cl.insideCode', direction: 'ASC,DESC,DESC,ASC', id: '@id'},
622 622 {
623 623 list: {
624 624 method: 'GET',
... ... @@ -671,7 +671,7 @@ angular.module(&#39;ScheduleApp&#39;).factory(&#39;ScheduleRuleManageService_g&#39;, [&#39;$resource
671 671 )
672 672 };
673 673 }]);
674   -
  674 +
675 675 // 时刻表管理service
676 676 angular.module('ScheduleApp').factory(
677 677 'TTInfoManageService_g',
... ... @@ -838,7 +838,7 @@ angular.module(&#39;ScheduleApp&#39;).factory(
838 838 }
839 839  
840 840 ]
841   -);
  841 +);
842 842 // 项目通用的全局service服务,供不同的controller使用,自定义指令不使用
843 843  
844 844 // 文件下载服务
... ...
src/main/resources/static/pages/scheduleApp/module/core/scheduleRuleManage/list.html
... ... @@ -56,7 +56,8 @@
56 56 </tr>
57 57 </thead>
58 58 <tbody>
59   - <tr ng-repeat="info in ctrl.page()['content']" class="odd gradeX">
  59 + <tr ng-repeat="info in ctrl.page()['content']"
  60 + ng-class="{odd: true, gradeX: true, info: ctrl.isFBGSMODE(info.fbtype), 'row-active': ctrl.isFBGSMODE(info.fbtype)}">
60 61 <td>
61 62 <div>
62 63 <a href="#">
... ... @@ -107,7 +108,7 @@
107 108 <td>
108 109 <a href="#"
109 110 tooltip-animation="false"
110   - tooltip-placement="top"
  111 + tooltip-placement="left-top"
111 112 uib-tooltip="{{info.ryDbbms}}"
112 113 tooltip-class="headClass">
113 114 {{info.ryDbbms}}
... ... @@ -116,7 +117,7 @@
116 117 <td>
117 118 <a href="#"
118 119 tooltip-animation="false"
119   - tooltip-placement="top"
  120 + tooltip-placement="left-top"
120 121 uib-tooltip="{{info.fbgs}}"
121 122 tooltip-class="headClass">
122 123 {{info.fbgs}}
... ...
src/main/resources/static/pages/scheduleApp/module/core/scheduleRuleManage/module.js
... ... @@ -245,6 +245,11 @@ angular.module(&#39;ScheduleApp&#39;).controller(
245 245  
246 246 self.doPage();
247 247  
  248 + // 是否是翻班格式模式
  249 + self.isFBGSMODE = function(type) {
  250 + return type == "FBGSMODE";
  251 + }
  252 +
248 253 }
249 254 ]
250 255 );
... ...
src/main/resources/static/pages/summary/work_hours/list.html
... ... @@ -263,8 +263,8 @@
263 263 }
264 264  
265 265 //日期选择器
266   - $('[name=rq_eq]', f).val('2017-09-24');
267   - flatpickr('.ct_search_form_wrap [name=rq_eq]', {"locale": "zh", maxDate: '2017-09-24', minDate: '2017-07-01'});
  266 + $('[name=rq_eq]', f).val('2017-10-10');
  267 + flatpickr('.ct_search_form_wrap [name=rq_eq]', {"locale": "zh", maxDate: '2017-10-10', minDate: '2017-07-01'});
268 268  
269 269 var comps;
270 270 //构建公司级联下拉框
... ...
src/main/resources/static/pages/trafficManage/js/lineStationUploadRecord.js
... ... @@ -99,6 +99,9 @@
99 99 alert("请选择时间");
100 100 return ;
101 101 }
  102 + if(pagination){
  103 + page = 0;
  104 + }
102 105 var params = {};
103 106 // 排序(按方向与序号)
104 107 params['order'] = 'reportDate';
... ...
src/main/resources/static/real_control_v2/css/handicapped_style.css 0 → 100644
  1 +/** 为残疾人提供的一份样式 , .ct_table.line-schedule-table dl dt*/
  2 +
  3 +.ct_table.line-schedule-table dl dd{
  4 + border-right-color: #000000 !important;
  5 + border-top: 1px solid #000000 !important;
  6 + color: #000000;
  7 +}
  8 +
  9 +.schedule-body .ct_table.line-schedule-table dl:nth-child(even){
  10 + background: rgba(114, 197, 210, 0.33) !important;
  11 +}
  12 +
  13 +.tl-yzx{
  14 + background: rgb(151, 151, 223) !important;
  15 +}
  16 +
  17 +.tl-zzzx {
  18 + background: rgb(152, 217, 54) !important;
  19 +}
  20 +
  21 +.tl-xxfc {
  22 + background: rgb(15, 220, 220) !important;
  23 +}
  24 +
  25 +.ct_table>.ct_table_body{
  26 + border-bottom: 1px solid #000000 !important;
  27 +}
... ...
src/main/resources/static/real_control_v2/css/main.css
... ... @@ -1411,10 +1411,11 @@ ul.left_tabs_lg li{
1411 1411 border-bottom: none;
1412 1412 }
1413 1413  
1414   -.add_range_wrap>.err_panel{
1415   - font-size: 16px;
1416   - color: #a44a4a;
  1414 +.err_panel{
  1415 + font-size: 12px;
  1416 + color: #7e7d7d;
1417 1417 font-family: 微软雅黑;
  1418 + margin-top: 5px;
1418 1419 }
1419 1420  
1420 1421 #schedule-lp_change-modal .ct_table dl{
... ... @@ -1458,6 +1459,16 @@ ul.left_tabs_lg li{
1458 1459 background: #ffffff;
1459 1460 }
1460 1461  
  1462 +.sub_task_form_v2.service_form.temp_service:before{
  1463 + content: '营运 (临加)';
  1464 + color: #9C27B0;
  1465 + background: #ffffff;
  1466 +}
  1467 +
  1468 +.sub_task_form_v2.service_form.temp_service {
  1469 + background: #faf0fd;
  1470 +}
  1471 +
1461 1472 .sub_task_form_v2.empty_form:before{
1462 1473 content: '空驶';
1463 1474 color: #928f92;
... ... @@ -1699,4 +1710,13 @@ dl.active&gt;dd.disabled{
1699 1710  
1700 1711 .display_hide{
1701 1712 display: none;
  1713 +}
  1714 +
  1715 +.ct_eye_icon{
  1716 + font-size: 16px;
  1717 + cursor: pointer;
  1718 +}
  1719 +
  1720 +.ct_eye_icon.active{
  1721 + color: #444;
1702 1722 }
1703 1723 \ No newline at end of file
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/fcxxwt.html
... ... @@ -197,15 +197,19 @@
197 197 return;
198 198 }
199 199  
200   - if(!data.adjustExps && (data.status==-1
201   - || (data.jhlc==0 && sch.bcType != 'in' && sch.bcType != 'out'))){
  200 + //正常班次里程修改为0
  201 + var normalDestory = data.jhlc==0 && sch.bcType != 'in' && sch.bcType != 'out';
  202 + //修改里程
  203 + var editJhlc = data.jhlc != sch.jhlc && data.jhlc != 0;
  204 + if(!data.adjustExps && (data.status==-1 || normalDestory || editJhlc)){
202 205 notify_err("当前操作需要选择调整原因!");
203 206 return;
204 207 }
205 208  
206 209 //里程有修改
207   - if(data.jhlc != sch.jhlc && data.jhlc != 0){
208   - var confHtml = '<h4 style="color: #c04c4c;margin-bottom: 9px;">确认要将班次里程由'+sch.jhlc+' 修改为'+data.jhlc+' </h4><small>备注:</small>';
  210 + //if(data.jhlc != sch.jhlc && data.jhlc != 0){
  211 +
  212 + /*var confHtml = '<h4 style="color: #c04c4c;margin-bottom: 9px;">确认要将班次里程由'+sch.jhlc+' 修改为'+data.jhlc+' </h4><small>备注:</small>';
209 213 UIkit.modal.prompt(confHtml, data.remarks, function(remarks){
210 214 if(remarks){
211 215 //在这里写操作日志
... ... @@ -221,10 +225,10 @@
221 225 Ok: '确定修改公里并保存',
222 226 Cancel: '取消'
223 227 }
224   - });
225   - }
226   - else
227   - postData(data);
  228 + });*/
  229 + //}
  230 + //else
  231 + postData(data);
228 232 });
229 233  
230 234 var postData = function (data) {
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task_v2/add_custom.html
... ... @@ -3,7 +3,7 @@
3 3 <span class="plus_icon_span">
4 4 <i class="uk-icon-plus"></i>
5 5 </span>
6   - <form class="uk-form remarks_form">
  6 +<!-- <form class="uk-form remarks_form">
7 7 <div class="uk-grid">
8 8 <div class="uk-width-1-1">
9 9 <div class="uk-form-row ct-stacked">
... ... @@ -14,7 +14,7 @@
14 14 </div>
15 15 </div>
16 16 </div>
17   - </form>
  17 + </form>-->
18 18 <div class="uk-modal-footer uk-text-right" style="margin-top: 5px;">
19 19 <button type="button" class="uk-button uk-modal-close">取消</button>
20 20 <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> &nbsp;保存</button>
... ... @@ -76,7 +76,7 @@
76 76 e.preventDefault();
77 77  
78 78 dataArray.push($.extend($(this).serializeJSON(), gb_common.getDisabledVal(this)
79   - , {remarks: $('#form-s-t',wrap).val(), 'schedule.id': sch.id}));
  79 + , {/*remarks: $('#form-s-t',wrap).val(), */'schedule.id': sch.id}));
80 80 $(this).data('valid', true);
81 81  
82 82 if(allValidSuccess()){
... ... @@ -93,21 +93,21 @@
93 93 }
94 94 var data = dataArray[i];
95 95 //营运里程为0的不保存
96   - if(data.mileageType == 'service' && data.mileage==0){
  96 + /*if(data.mileageType == 'service' && data.mileage==0){
97 97 i++;
98 98 f();
99 99 }
100   - else{
  100 + else{*/
101 101 //营运子任务不写备注
102   - if(data.mileageType == 'service' && !data.destroy)
103   - data.remarks = '';
  102 + /*if(data.mileageType == 'service' && !data.destroy)
  103 + data.remarks = '';*/
104 104 gb_common.$post('/childTask', data, function (rs) {
105 105 notify_succ('子任务添加成功');
106 106 rst = rs.t;
107 107 i++;
108 108 f();
109 109 });
110   - }
  110 + //}
111 111 })();
112 112 }
113 113 });
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task_v2/add_in_out.html
1 1 <div class="add_inOut_wrap">
2 2 <div class="forms"></div>
3   - <form class="uk-form remarks_form">
  3 +<!-- <form class="uk-form remarks_form">
4 4 <div class="uk-grid">
5 5 <div class="uk-width-1-1">
6 6 <div class="uk-form-row ct-stacked">
... ... @@ -11,7 +11,7 @@
11 11 </div>
12 12 </div>
13 13 </div>
14   - </form>
  14 + </form>-->
15 15 <div class="uk-modal-footer uk-text-right" style="margin-top: 5px;">
16 16 <button type="button" class="uk-button uk-modal-close">取消</button>
17 17 <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> &nbsp;保存</button>
... ... @@ -276,7 +276,7 @@
276 276 e.preventDefault();
277 277  
278 278 dataArray.push($.extend($(this).serializeJSON(), gb_common.getDisabledVal(this)
279   - , {remarks: $('#form-s-t',wrap).val(), 'schedule.id': sch.id}));
  279 + , {/*remarks: $('#form-s-t',wrap).val(), */'schedule.id': sch.id}));
280 280 $(this).data('valid', true);
281 281  
282 282 if(allValidSuccess()){
... ... @@ -299,8 +299,8 @@
299 299 }
300 300 else{
301 301 //营运子任务不写备注
302   - if(data.mileageType == 'service' && !data.destroy)
303   - data.remarks = '';
  302 + /*if(data.mileageType == 'service' && !data.destroy)
  303 + data.remarks = '';*/
304 304 gb_common.$post('/childTask', data, function (rs) {
305 305 notify_succ('子任务添加成功');
306 306 rst = rs.t;
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task_v2/add_range_normal.html 0 → 100644
  1 +<!-- 区间变全程 -->
  2 +<div class="add_range_2_normal">
  3 + <div class="err_panel">暂不开放使用</div>
  4 + <!--<div class="forms"></div>
  5 +
  6 + <div class="uk-modal-footer uk-text-right" style="margin-top: 5px;">
  7 + <button type="button" class="uk-button uk-modal-close">取消</button>
  8 + <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> &nbsp;保存</button>
  9 + </div>
  10 + <script>
  11 + (function () {
  12 + var wrap = '#add-sub-task-main-modal .add_range_2_normal',
  13 + sch,f1,tf1;
  14 +
  15 + $(wrap).on('init', function (e, data) {
  16 + e.stopPropagation();
  17 + sch = data.sch;
  18 +
  19 + f1 = addTaskForm();
  20 + tf1 = addTaskForm();
  21 + tf1.addClass('temp_service');
  22 + });
  23 +
  24 + function addTaskForm() {
  25 + var htmlStr = template('sub-task-v2-form-temp', {sch: sch});
  26 + var f = $(htmlStr);
  27 + $('.forms', wrap).append(f);
  28 + //字典转换
  29 + dictionaryUtils.transformDom($('.nt-dictionary', f));
  30 +
  31 + //班次类型切换
  32 + $('select[name=type2]', f).trigger('change');
  33 +
  34 + //滚动条到底
  35 + $('.forms', wrap).scrollTop($('.forms', wrap)[0].scrollHeight);
  36 +
  37 + f.formValidation({
  38 + framework: 'uikit',
  39 + locale: 'zh_CN'
  40 + }).on('add_reason_field', function () {
  41 + $(this).formValidation('addField', 'reason');
  42 + });
  43 + return f;
  44 + }
  45 + })();
  46 + </script>-->
  47 +</div>
0 48 \ No newline at end of file
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task_v2/add_range_turn.html
... ... @@ -30,7 +30,7 @@
30 30 </div>
31 31  
32 32 <div class="forms"></div>
33   - <form class="uk-form remarks_form">
  33 +<!-- <form class="uk-form remarks_form">
34 34 <div class="uk-grid">
35 35 <div class="uk-width-1-1">
36 36 <div class="uk-form-row ct-stacked">
... ... @@ -41,7 +41,7 @@
41 41 </div>
42 42 </div>
43 43 </div>
44   - </form>
  44 + </form>-->
45 45 <div class="uk-modal-footer uk-text-right" style="margin-top: 5px;">
46 46 <button type="button" class="uk-button uk-modal-close">取消</button>
47 47 <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> &nbsp;保存</button>
... ... @@ -55,9 +55,9 @@
55 55 $(wrap).on('init', function (e, data) {
56 56 e.stopPropagation();
57 57 sch = data.sch;
58   - nextSch = gb_schedule_table.getNextNormalSch(sch);
59   - if(!nextSch || nextSch.bcType!='normal'){
60   - $(wrap).html('<div class="err_panel">无法做区间调头,原因是没有找到返程班次!</div>');
  58 + nextSch = gb_schedule_table.getNextSch(sch);
  59 + if(!nextSch || nextSch.bcType=='in' || nextSch.bcType=='out'){
  60 + $(wrap).html('<div class="err_panel">当前班次类型不支持直接应用区间调头模板!</div>');
61 61 return;
62 62 }
63 63  
... ... @@ -67,7 +67,7 @@
67 67 }), 'directions');
68 68 //第一段营运
69 69 f1 = addTaskForm();
70   - $f('startStation', f1).trigger('change');
  70 + $f('startStation', f1).val(sch.qdzCode).trigger('change');
71 71  
72 72 disabled_form(f1);
73 73 $('.domains', f1).empty();
... ... @@ -247,7 +247,7 @@
247 247 e.preventDefault();
248 248  
249 249 dataArray.push($.extend($(this).serializeJSON(), gb_common.getDisabledVal(this)
250   - , {remarks: $('#form-s-t',wrap).val()}));
  250 + /*, {remarks: $('#form-s-t',wrap).val()}*/));
251 251 $(this).data('valid', true);
252 252  
253 253 if (allValidSuccess()) {
... ... @@ -267,8 +267,8 @@
267 267 }
268 268 var data = dataArray[i];
269 269 //营运子任务不写备注
270   - if(data.mileageType == 'service' && !data.destroy)
271   - data.remarks = '';
  270 + /*if(data.mileageType == 'service' && !data.destroy)
  271 + data.remarks = '';*/
272 272 gb_common.$post('/childTask', data, function (rs) {
273 273 notify_succ('子任务添加成功');
274 274 gb_schedule_table.updateSchedule(rs.t);
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task_v2/main.html
... ... @@ -10,7 +10,7 @@
10 10 <li name="normal"><a>1、子任务</a></li>
11 11 <li name="in_out"><a>2、进出场</a></li>
12 12 <li name="range_turn"><a>3、区间调头</a></li>
13   - <!--<li name="range_to_normal"><a>4、区间变全程</a></li>-->
  13 + <li name="range_to_normal"><a>4、区间变全程</a></li>
14 14 </ul>
15 15 </div>
16 16 <div class="uk-width-8-10">
... ... @@ -18,7 +18,7 @@
18 18 <li class="tab_cont normalCont"></li>
19 19 <li class="tab_cont inOutCont"></li>
20 20 <li class="tab_cont rangeTurnCont"></li>
21   - <!--<li class="tab_cont rangeToNormal"></li>-->
  21 + <li class="tab_cont rangeToNormal"></li>
22 22 </ul>
23 23 </div>
24 24 </div>
... ... @@ -95,10 +95,12 @@
95 95 </div>
96 96 <div class="uk-width-1-3">
97 97 <div class="uk-form-row">
98   - <label class="uk-form-label">公里</label>
  98 + <label class="uk-form-label">公里</label>
99 99 <div class="uk-form-controls">
100 100 <input class="form-control" name="mileage" max=222 data-fv-lessthan-inclusive="false"
101   - required>
  101 + required style="width: 42%;">
  102 + <select class="form-control nt-dictionary" required name="mileageType"
  103 + data-group="MileageType" style="width: 52%;"></select>
102 104 </div>
103 105 </div>
104 106 </div>
... ... @@ -108,10 +110,10 @@
108 110 <div class="uk-width-2-3 domains"></div>
109 111 <div class="uk-width-1-3">
110 112 <div class="uk-form-row">
111   - <label class="uk-form-label">里程类型</label>
  113 + <label class="uk-form-label">备注</label>
112 114 <div class="uk-form-controls">
113   - <select class="form-control nt-dictionary" required name="mileageType"
114   - data-group="MileageType"></select>
  115 + <!--<select class="form-control nt-dictionary" required name="remarks"></select>-->
  116 + <input class="form-control" name="remarks" data-fv-stringlength-max="50" data-fv-stringlength="true">
115 117 </div>
116 118 </div>
117 119 </div>
... ... @@ -245,6 +247,8 @@
245 247 $('.rangeTurnCont', modal).html(st_doms.range_dom);
246 248 $('.add_range_wrap', modal).trigger('init', data);
247 249 //区间变全程
  250 + $('.rangeToNormal', modal).html(st_doms.range_2_normal_dom);
  251 + //$('.add_range_2_normal', modal).trigger('init', data);
248 252 }
249 253 });
250 254  
... ... @@ -505,7 +509,7 @@
505 509 }
506 510 else {
507 511 var cont = f.parents('li.tab_cont'),
508   - remInput = $('.remarks_form [name=remarks]', cont);
  512 + remInput = $('[name=remarks]', cont);
509 513  
510 514 if(remInput.val()==reason + ',')
511 515 return;
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/sch_table.html
... ... @@ -23,6 +23,7 @@
23 23 </a>
24 24 </div>
25 25 </div>
  26 + <i class="uk-icon-eye uk-icon-hover ct_eye_icon"></i>
26 27 <div class="search_sch_panel">
27 28 <form class="uk-form" onsubmit="javascript:return false;">
28 29 <div class="uk-autocomplete sch-search-autocom">
... ...
src/main/resources/static/real_control_v2/js/line_schedule/context_menu.js
... ... @@ -19,6 +19,9 @@ var gb_schedule_context_menu = (function () {
19 19 $.get(folder + '/sub_task_v2/add_range_turn.html', function (dom) {
20 20 st_doms.range_dom=dom;
21 21 });
  22 + $.get(folder + '/sub_task_v2/add_range_normal.html', function (dom) {
  23 + st_doms.range_2_normal_dom=dom;
  24 + });
22 25 //提前缓存临加的片段页面
23 26 var add_sch_doms={};
24 27 $.get(folder + '/temp_sch/add_normal.html', function (dom) {
... ...
src/main/resources/static/real_control_v2/js/line_schedule/legend.js
... ... @@ -8,7 +8,7 @@ var gb_sch_legend = (function () {
8 8 var animationend = 'webkitAnimationEnd animationend';
9 9 var initLegend = function (cont) {
10 10 //双击展开
11   - $('.schedule-wrap i.uk-icon-question-circle', cont).dblclick(openLegend);
  11 + /*$('.schedule-wrap i.uk-icon-question-circle', cont).dblclick(openLegend);
12 12  
13 13 //关闭事件
14 14 $('.schedule-wrap .fixed_legend_close', cont).on('click', function () {
... ... @@ -35,13 +35,34 @@ var gb_sch_legend = (function () {
35 35  
36 36 var flag=storage.getItem(locaKey);
37 37 if(flag && flag==1)
38   - openLegend();
  38 + openLegend();*/
  39 +
  40 + //eye init
  41 + var eyeState = storage.getItem('eye_state');
  42 + if(eyeState && eyeState==1)
  43 + $(eye_dom).eq(0).trigger('click');
39 44 };
40 45  
  46 + var eye_dom = '.schedule-wrap i.ct_eye_icon';
  47 + $(document).on('click', eye_dom, changeHandicappedStyle);
  48 + function changeHandicappedStyle() {
  49 + if($(this).hasClass('active')){
  50 + $(eye_dom).removeClass('active');
  51 + $('#handicappedStyleLink', 'head').remove();
  52 + storage.setItem('eye_state', 0);
  53 + }
  54 + else{
  55 + $(eye_dom).addClass('active');
  56 + $("<link>").attr({rel: "stylesheet", type: "text/css", href: "/real_control_v2/css/handicapped_style.css",
  57 + id: 'handicappedStyleLink'
  58 + }).appendTo("head");
  59 + storage.setItem('eye_state', 1);
  60 + }
  61 + }
41 62  
42 63 //展开图例
43 64 var openLegend = function () {
44   - $('.qtip.sch-tl-tip').qtip('destroy', true);
  65 + /*$('.qtip.sch-tl-tip').qtip('destroy', true);
45 66  
46 67 //隐藏ICON
47 68 $('.schedule-wrap i.uk-icon-question-circle').hide();
... ... @@ -58,7 +79,7 @@ var gb_sch_legend = (function () {
58 79 $('.schedule-wrap .fixed_legend').css('display', 'inline-block');
59 80  
60 81 //记录状态
61   - storage.setItem(locaKey, 1);
  82 + storage.setItem(locaKey, 1);*/
62 83 };
63 84  
64 85 return {
... ...
src/main/resources/static/real_control_v2/js/line_schedule/sch_table.js
... ... @@ -105,8 +105,10 @@ var gb_schedule_table = (function () {
105 105 //标记路牌最后一个班次
106 106 markerLastByLine(lineCode);
107 107 //初始化图例相关,dbclick 不能代理事件
108   - gb_sch_legend.init(this);
  108 + //gb_sch_legend.init(this);
109 109 });
  110 + //初始化图例
  111 + gb_sch_legend.init();
110 112 var content = $('.line_schedule .ct_table_wrap');
111 113 //初始化滚动条
112 114 content.perfectScrollbar({suppressScrollX: true});
... ...
src/main/resources/static/real_control_v2/js/main.js
... ... @@ -47,7 +47,7 @@ var gb_main_ep = new EventProxy(),
47 47 $('li.map-panel', '#main-tab-content').load('/real_control_v2/mapmonitor/real.html');
48 48 }, 1000);
49 49 //弹出更新说明
50   - showUpdateDescription();
  50 + //showUpdateDescription();
51 51 });
52 52  
53 53 function g_emit(id) {
... ...
src/main/resources/static/real_control_v2/js/utils/ct_table.js
... ... @@ -49,7 +49,7 @@ var gb_ct_table = (function() {
49 49 $tbody.empty().append(dls);
50 50 //console.log('replaceAfter..', replaceAfter);
51 51 replaceAfter && replaceAfter($tbody);
52   - }
  52 + };
53 53  
54 54 function toggleOrder(that) {
55 55 var order = $(that).data('order');
... ...