Commit dbb8dd28dfaab8a6741829d94b0722b8b7d84886

Authored by 潘钊
1 parent 8912e3af

update

src/main/java/com/bsth/StartCommand.java
1 1 package com.bsth;
2 2  
3 3  
  4 +import com.bsth.entity.Cars;
  5 +import com.bsth.entity.Line;
  6 +import com.bsth.entity.schedule.CarConfigInfo;
  7 +import com.bsth.repository.schedule.CarConfigInfoRepository;
4 8 import com.bsth.security.SecurityMetadataSourceService;
5 9 import com.bsth.service.realcontrol.buffer.GetSchedulePlanThread;
6 10 import com.bsth.service.realcontrol.buffer.SchedulePersistenceThread;
7 11 import com.bsth.util.DateUtils;
8 12 import com.bsth.vehicle.common.CommonRefreshThread;
  13 +import com.bsth.vehicle.directive.service.DirectiveService;
9 14 import com.bsth.vehicle.directive.thread.DirectivePersistenceThread;
10 15 import com.bsth.vehicle.directive.thread.FirstScheduleIssuedThread;
11 16 import com.bsth.vehicle.gpsdata.GpsArrivalStationThread;
... ... @@ -16,6 +21,9 @@ import org.springframework.beans.factory.annotation.Autowired;
16 21 import org.springframework.boot.CommandLineRunner;
17 22 import org.springframework.stereotype.Component;
18 23  
  24 +import java.util.List;
  25 +import java.util.Timer;
  26 +import java.util.TimerTask;
19 27 import java.util.concurrent.Executors;
20 28 import java.util.concurrent.ScheduledExecutorService;
21 29 import java.util.concurrent.TimeUnit;
... ... @@ -50,6 +58,11 @@ public class StartCommand implements CommandLineRunner{
50 58 @Autowired
51 59 FirstScheduleIssuedThread firstScheduleIssuedThread;
52 60  
  61 + @Autowired
  62 + DirectiveService directiveService;
  63 + @Autowired
  64 + CarConfigInfoRepository carConfigInfoRepository;
  65 +
53 66 static Long hourTime = 1000 * 60 * 60L;
54 67  
55 68 @Override
... ... @@ -104,6 +117,30 @@ public class StartCommand implements CommandLineRunner{
104 117 */
105 118 scheduler.scheduleWithFixedDelay(firstScheduleIssuedThread, 60 , 60 * 2, TimeUnit.SECONDS);
106 119  
  120 +
  121 +/* //延迟一会
  122 + new Timer().schedule(new TimerTask() {
  123 +
  124 + @Override
  125 + public void run() {
  126 + //临时全量刷车辆线路
  127 + List<CarConfigInfo> ccis = carConfigInfoRepository.findAll();
  128 + Cars car;
  129 + Line line;
  130 + String lineCode;
  131 + int code;
  132 + for(CarConfigInfo cci : ccis){
  133 + car = cci.getCl();
  134 + line = cci.getXl();
  135 + lineCode = line.getLineCode();
  136 + System.out.println("车辆:" + car.getInsideCode() + "切换线路:" + line.getLineCode());
  137 + code = directiveService.lineChange(car.getInsideCode(), Integer.parseInt(lineCode));
  138 + //directiveService.send60Phrase(car.getInsideCode(), "");
  139 + System.out.println("返回值:" + code);
  140 + }
  141 + }
  142 + }, 1000 * 10);*/
  143 +
107 144 } catch (Exception e) {
108 145 e.printStackTrace();
109 146 }
... ...
src/main/java/com/bsth/entity/realcontrol/ScheduleRealInfo.java
... ... @@ -4,6 +4,8 @@ import com.bsth.entity.sys.SysUser;
4 4  
5 5 import javax.persistence.*;
6 6  
  7 +import org.apache.commons.lang3.StringUtils;
  8 +
7 9 import java.text.ParseException;
8 10 import java.text.SimpleDateFormat;
9 11 import java.util.Date;
... ... @@ -153,11 +155,15 @@ public class ScheduleRealInfo {
153 155 private String qdzArrDatesj;
154 156  
155 157 public void addRemarks(String remark){
156   - String newRem = this.getRemarks();
157   - if(null == newRem || newRem.trim() == "")
  158 + if(StringUtils.isBlank(remark))
158 159 return;
159   - newRem += remark + ";";
160   - this.setRemarks(newRem);
  160 + String old = this.getRemarks();
  161 + if(StringUtils.isBlank(old))
  162 + old = "";
  163 +
  164 + old += remark + ";";
  165 + this.setRemarks(old);
  166 +
161 167 }
162 168  
163 169 public Long getId() {
... ... @@ -661,4 +667,27 @@ public class ScheduleRealInfo {
661 667 public void setRealExecDate(String realExecDate) {
662 668 this.realExecDate = realExecDate;
663 669 }
  670 +
  671 + public void calcStatus() {
  672 + if(this.status == -1)
  673 + return;
  674 +
  675 + this.status = 0;
  676 + if(StringUtils.isNotBlank(this.fcsjActual))
  677 + this.status = 1;
  678 + if(StringUtils.isNotBlank(this.zdsjActual))
  679 + this.status = 2;
  680 + }
  681 +
  682 + public void destroy(){
  683 + this.status = -1;
  684 + }
  685 +
  686 + public boolean isDestroy(){
  687 + return this.status == -1;
  688 + }
  689 +
  690 + public boolean isNotDestroy(){
  691 + return this.status != -1;
  692 + }
664 693 }
... ...
src/main/java/com/bsth/service/realcontrol/buffer/GetSchedulePlanThread.java
... ... @@ -46,6 +46,7 @@ public class GetSchedulePlanThread extends Thread{
46 46 @Override
47 47 public void run() {
48 48 try{
  49 + logger.info("从计划调度抓取排班数据...");
49 50 //清除缓存
50 51 ScheduleBuffer.clear();
51 52 //所有指令入库
... ...
src/main/java/com/bsth/service/realcontrol/buffer/ScheduleBuffer.java
... ... @@ -204,9 +204,9 @@ public class ScheduleBuffer {
204 204  
205 205 //重新排序
206 206 Collections.sort(schedulListMap.get(sch.getXlBm()), scheduleComparator);
  207 + //Collections.sort(vehSchListMap.get(zbh), scheduleComparator);
207 208  
208 209 //重新计算应到时间
209   - //calcArrDateQd(vehLinkedMap.get(zbh));
210 210 calcArrDateQd(vehSchListMap.get(zbh));
211 211 return 0;
212 212 }
... ...
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
1 1 package com.bsth.service.realcontrol.impl;
2 2  
3   -import java.io.File;
4 3 import java.text.DecimalFormat;
5 4 import java.text.ParseException;
6 5 import java.text.SimpleDateFormat;
... ... @@ -101,7 +100,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
101 100 ScheduleRealInfo schedule = ScheduleBuffer.pkSchedulMap.get(id);
102 101 schedule.setDfsjT(sdfMinute.parse(schedule.getRealExecDate() + " " + dfsj).getTime());
103 102 schedule.setDfsj(dfsj);
104   - schedule.addRemarks(remarks + ";");
  103 + schedule.addRemarks(remarks);
105 104 schedule.setClZbh(nbbm);
106 105 if(jsy != null && jsy.indexOf("/") != -1){
107 106 String[] jsyArray = jsy.split("/");
... ... @@ -139,16 +138,15 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
139 138 ScheduleRealInfo schedule = null;
140 139 for (String id : idList) {
141 140 schedule = ScheduleBuffer.pkSchedulMap.get(Long.parseLong(id));
142   - /*if(schedule.getStatus() == -1){
  141 + if(schedule.isDestroy()){
143 142 map.put("status", ResponseCode.ERROR);
144   - map.put("msg", value)
145   - }*/
146   - if (null != schedule) {
147   - schedule.setStatus(-1);
148   - schedule.addRemarks(remarks);
149   -
150   - rsList.add(schedule);
  143 + map.put("msg", "不必要的重复烂班!");
  144 + return map;
151 145 }
  146 +
  147 + schedule.destroy();
  148 + schedule.addRemarks(remarks);
  149 + rsList.add(schedule);
152 150 }
153 151  
154 152 // 调整间隔
... ... @@ -276,8 +274,10 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
276 274 @Override
277 275 public Map<String, Object> save(ScheduleRealInfo t) {
278 276 SysUser user = SecurityUtils.getCurrentUser();
279   -
280   - t.setScheduleDate(new Date());
  277 + Date d = new Date();
  278 +
  279 + t.setScheduleDate(d);
  280 + t.setRealExecDate(sdfMonth.format(d));
281 281 t.setCreateBy(user);
282 282 t.syncTime();
283 283 t.setSflj(true);
... ... @@ -465,9 +465,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
465 465 Map<String, Object> rs = new HashMap<>();
466 466 try {
467 467 ScheduleRealInfo sch = ScheduleBuffer.findOne(id);
468   - String rq = sdfMonth.format(sch.getRealExecDate());
469 468  
470   - sch.setFcsjActualTime(sdfMinute.parse(rq + " " + fcsjActual).getTime());
  469 + sch.setFcsjActualTime(sdfMinute.parse(sch.getRealExecDate() + " " + fcsjActual).getTime());
471 470 sch.setFcsjActual(fcsjActual);
472 471 sch.addRemarks(remarks);
473 472 //改变状态
... ... @@ -614,33 +613,43 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
614 613 sch.setBcType(bcType);
615 614 sch.setClZbh(clZbh);
616 615 sch.setFcsjAll(fcsj);
  616 +
617 617 if(StringUtils.isNotBlank(fcsjActual)){
618 618 //调整实发
619   - sch.setFcsjActualAll(fcsjActual);
620   - sch.setStatus(1);
  619 + if(!fcsjActual.equals(sch.getFcsjActual()))
  620 + sch.setFcsjActualAll(fcsjActual);
621 621 }
622 622 else{
623 623 sch.setFcsjActual(null);
624 624 sch.setFcsjActualTime(null);
625 625 }
626 626  
  627 + //实达时间
627 628 if(StringUtils.isNotBlank(zdsjActual)){
628   - //调整实达
629   - sch.setZdsjActualAll(zdsjActual);
630   - sch.setStatus(2);
631   - //下一班次起点到达
632   - ScheduleRealInfo next = ScheduleBuffer.getNext(sch);
633   - next.setQdzArrDateSJ(zdsjActual);
634   - rs.put("nextSch", next);
  629 + if(!zdsjActual.equals(sch.getZdsjActual())){
  630 + //调整实达
  631 + sch.setZdsjActualAll(zdsjActual);
  632 + //下一班次起点到达时间
  633 + ScheduleRealInfo next = ScheduleBuffer.getNext(sch);
  634 + next.setQdzArrDateSJ(zdsjActual);
  635 + rs.put("nextSch", next);
  636 + }
635 637 }
636   - else{
  638 + else /*if(StringUtils.isNotBlank(sch.getZdsjActual()))*/{
  639 + //清除实达时间
637 640 sch.setZdsjActual(null);
638 641 sch.setZdsjActualTime(null);
  642 + //清除下一班次起点到达时间
  643 + ScheduleRealInfo next = ScheduleBuffer.getNext(sch);
  644 + next.setQdzArrDateSJ(null);
  645 + rs.put("nextSch", next);
639 646 }
640 647  
641 648 sch.setRemarks(remarks);
642 649 }
643 650  
  651 + //班次状态
  652 + sch.calcStatus();
644 653 ScheduleBuffer.persistentList.add(sch);
645 654  
646 655 rs.put("status", ResponseCode.SUCCESS);
... ...
src/main/java/com/bsth/vehicle/directive/service/DirectiveServiceImpl.java
... ... @@ -85,7 +85,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;Directive60, Integer&gt;
85 85 try {
86 86 //如果发车时间距当前时间较远,则不发送
87 87 if(Math.abs(sch.getFcsjT() - System.currentTimeMillis()) > schDiff){
88   - return 0;
  88 + return -2;
89 89 }
90 90  
91 91 String text = "已完成" + finish + "个班次,下一发车时间" + sdfHHmm.format(new Date(sch.getFcsjT()))
... ...
src/main/resources/static/pages/control/line/child_pages/vehicAndper_adjust.html renamed to src/main/resources/static/pages/control/line/child_pages/car_and_persion.html
... ... @@ -253,7 +253,7 @@
253 253 syncSubmit(idArray, params ,function(){
254 254 layer.closeAll();
255 255 layer.msg('操作完成!');
256   - //刷新表格
  256 + //刷新弹出层表格
257 257 refreshMainList();
258 258 });
259 259 });
... ... @@ -274,7 +274,7 @@
274 274 $.post('/realSchedule/adjust', data, function(rs){
275 275 //更新前端缓存
276 276 if(rs.status == 200){
277   - _data.updateSchedule(rs.t);
  277 + _alone.refreshSchedule(rs.t);
278 278 }
279 279  
280 280 i ++;
... ...
src/main/resources/static/pages/control/line/child_pages/outgo_adjust_all.html renamed to src/main/resources/static/pages/control/line/child_pages/dfsj_batch.html
src/main/resources/static/pages/control/line/index.html
... ... @@ -136,14 +136,15 @@
136 136 <li class="menu-separator"></li>
137 137 <li class="menu-item" >
138 138 <button type="button" class="menu-btn" data-multi=1 data-method="spaceAdjust">
139   - <span class="menu-text">间隔调整</span>
  139 + <span class="menu-text">待发间隔调整</span>
140 140 </button>
141 141 </li>
142   - <li class="menu-item disabled" >
  142 + <!-- <li class="menu-item disabled" >
143 143 <button type="button" class="menu-btn">
144 144 <span class="menu-text">误点调整</span>
145 145 </button>
146   - </li>
  146 + </li> -->
  147 + <li class="menu-separator"></li>
147 148 <li class="menu-item" >
148 149 <button type="button" class="menu-btn" data-method="schInfoFineTune">
149 150 <span class="menu-text">发车信息微调</span>
... ... @@ -156,13 +157,12 @@
156 157 <span class="menu-text">临加/子任务</span>
157 158 </button>
158 159 </li>
159   - <li class="menu-separator"></li>
160   - <li class="menu-item disabled" >
  160 +<!-- <li class="menu-item disabled" >
161 161 <button type="button" class="menu-btn">
162 162 <i class="fa fa-reply-all"></i>
163 163 <span class="menu-text">撤销执行</span>
164 164 </button>
165   - </li>
  165 + </li> -->
166 166 <li class="menu-separator"></li>
167 167 <li class="menu-item" >
168 168 <button type="button" class="menu-btn" data-method="vehicAndPerAdjust">
... ...
src/main/resources/static/pages/control/line/js/alone.js
... ... @@ -49,7 +49,7 @@ var _alone = (function(){
49 49 });
50 50 },
51 51 //刷新单个班次
52   - refreshSchedule: function(schedule){
  52 + refreshSchedule: function(schedule, isBatch){
53 53 //更新 _data
54 54 _data.updateSchedule(schedule);
55 55 var tab = '#tab_line_' + schedule.xlBm;
... ... @@ -62,16 +62,20 @@ var _alone = (function(){
62 62  
63 63 var type = schedule.xlDir==0?'up':'down';
64 64 calculateLineNo($('.pb-table[data-type='+type+']', tab)[0]);
  65 +
  66 + if(!isBatch)
  67 + goToSch(schedule);
65 68 },
66 69 //刷新多个班次,刷新完数据再统一计算行号
67 70 refreshScheduleArray: function(array){
68 71 if(!array || array.length == 0)
69 72 return;
70 73 $.each(array, function(){
71   - aloneObject.refreshSchedule(this);
  74 + aloneObject.refreshSchedule(this, 1);
72 75 });
73 76 var table = $('tr[data-id='+array[0].id+']').parents('table')[0];
74 77 calculateLineNo(table);
  78 + initRemarksPop();
75 79 },
76 80 //将班次所在的表格做全量更新
77 81 updateTableBySch: function(schedule){
... ... @@ -83,24 +87,24 @@ var _alone = (function(){
83 87 _data.pushSchedule(this);
84 88 });
85 89  
86   - var upDown = xlDir==0?'up':'down';
  90 + /*var upDown = xlDir==0?'up':'down';
87 91 var tab = $('#tab_line_' + xlBm);
88 92 //重新渲染表格
89   - var table = tab.find('.pb-table[data-type='+upDown+']');
  93 + var table = tab.find('.pb-table[data-type='+upDown+']');*/
  94 + var table = getTableBySch(sch);
90 95 var schArray = _data.findSchByLine(xlBm, xlDir);
91 96 calculateLineNo(
92 97 table.find('tbody').html(template('alone_plan_table_temp', {list: schArray}))[0]
93 98 );
94 99  
95   - var half = tab.find('._body').height() / 2;
96   -
97 100 //定位到新添加的班次
98   - var currTr = table.find('tr[data-id='+schedule.id+']')
  101 + goToSch(schedule);
  102 + /*var currTr = table.find('tr[data-id='+schedule.id+']')
99 103 ,top = parseInt(currTr.find('td[name=lineNo]').text()) * 37 - half;
100 104  
101 105 top = top>0?top:0;
102 106 currTr.addClass('anim-delay animated flash');
103   - currTr.parents('._body').slimScroll({ scrollTo: top + 'px' });
  107 + currTr.parents('._body').slimScroll({ scrollTo: top + 'px' });*/
104 108 });
105 109 },
106 110 update2Table: function(xlBm, schedule){
... ... @@ -113,7 +117,7 @@ var _alone = (function(){
113 117  
114 118 var rs = splitDir(array)
115 119 ,tab = $('#tab_line_' + xlBm)
116   - ,half = tab.find('._body').height() / 2;
  120 + /*,half = tab.find('._body').height() / 2*/;
117 121 //填充表格数据
118 122 calculateLineNo(
119 123 //上行
... ... @@ -123,19 +127,40 @@ var _alone = (function(){
123 127 //下行
124 128 tab.find('table[data-type=down] tbody').html(template('alone_plan_table_temp', {list: rs.down}))[0]
125 129 );
  130 +
126 131 //定位到指定的班次
127   - var currTr = tab.find('tr[data-id='+schedule.id+']')
  132 + goToSch(schedule);
  133 + /*var currTr = tab.find('tr[data-id='+schedule.id+']')
128 134 ,top = parseInt(currTr.find('td[name=lineNo]').text()) * 37 - half;
129 135  
130 136 top = top>0?top:0;
131 137 currTr.addClass('anim-delay animated flash');
132   - currTr.parents('._body').slimScroll({ scrollTo: top + 'px' });
  138 + currTr.parents('._body').slimScroll({ scrollTo: top + 'px' });*/
133 139 });
134 140 },
135 141 //重新计算行号
136 142 calculateLineNo: calculateLineNo
137 143 }
138 144  
  145 + //获取班次所在table
  146 + function getTableBySch(sch){
  147 + var upDown = sch.xlDir==0?'up':'down';
  148 + var tab = $('#tab_line_' + sch.xlBm);
  149 + return tab.find('.pb-table[data-type='+upDown+']');
  150 + }
  151 +
  152 + //定位到班次所在的行
  153 + function goToSch(sch){
  154 + var table = getTableBySch(sch)
  155 + ,half = table.parents('._body').height() / 2
  156 + ,currTr = table.find('tr[data-id='+sch.id+']')
  157 + ,top = parseInt(currTr.find('td[name=lineNo]').text()) * 37 - half;
  158 +
  159 + top = top>0?top:0;
  160 + currTr.addClass('anim-delay animated flash');
  161 + currTr.parents('._body').slimScroll({ scrollTo: top + 'px' });
  162 + }
  163 +
139 164 //计算行号
140 165 function calculateLineNo(table){
141 166 var rows = table.rows;
... ...
src/main/resources/static/pages/control/line/js/main.js
... ... @@ -83,12 +83,9 @@
83 83 setTimeout(function(){
84 84 //打开GPS定时刷新
85 85 _data.startRefreshGpsTimer();
86   -
87   - setTimeout(function(){
88   - //去掉loading
89   - $('.load-anim').fadeOut();
90   - $('menu.menu').show();
91   - }, 100);
  86 + //去掉loading
  87 + $('.load-anim').fadeOut();
  88 + $('menu.menu').show();
92 89 }, 400);
93 90  
94 91 }
... ...
src/main/resources/static/pages/control/line/js/rightMenu.js
... ... @@ -83,11 +83,15 @@ var _menu = (function() {
83 83  
84 84 });
85 85  
  86 + function msg_ct(t){
  87 + layer.msg(t,{offset: 'ct', shift : 5});
  88 + }
  89 +
86 90 //点击路牌
87 91 var lps = '.pb-table.data tr td[data-name=lpName]';
88 92 $('.portlet-fullscreen').on('click', lps, function(e){
89 93 var lp = $(this).text();
90   - layer.msg('高亮路牌:' + lp + '',{offset: 'ct', shift : 5});
  94 + msg_ct('高亮路牌:' + lp);
91 95 var lineCode = $(this).parents('.tab-pane').data('id');
92 96 var schArray = _data.getLineLpMap()[lineCode][lp];
93 97  
... ... @@ -124,7 +128,7 @@ var _menu = (function() {
124 128 ,sch = _data.getSchedulById(schId);
125 129  
126 130 var scroll = false;
127   - console.log(_data.findByCl(clnbbm));
  131 +
128 132 $.each(_data.findByCl(clnbbm), function(){
129 133 if(scroll){
130 134 var nextTr = $('tr[data-id='+this.id+']');
... ... @@ -235,7 +239,7 @@ var _menu = (function() {
235 239 $post('/realSchedule/outgoAdjust', params, function(rs){
236 240 layer.close(index);
237 241 if(rs.t){
238   - layer.msg('调整成功!');
  242 + msg_ct('调整成功!');
239 243 _alone.refreshSchedule(rs.t);
240 244 }
241 245 });
... ... @@ -245,10 +249,10 @@ var _menu = (function() {
245 249 },
246 250 //计划烂班
247 251 planDestroy: function(schedul){
248   - /*if(schedul.status == -1){
249   - layer.alert('不能重复烂班!', {icon: 2, title: '提示', shift: 5});
  252 + if(schedul.status == -1){
  253 + layer.alert('没必要做重复烂班!', {icon: 2, title: '提示', shift: 5});
250 254 return;
251   - }*/
  255 + }
252 256 var array = [];
253 257 //获取未烂班的班次
254 258 $.each(_data.getSchedulByVeh(schedul.clZbh),function(){
... ... @@ -325,7 +329,7 @@ var _menu = (function() {
325 329 layer.close(index);
326 330 //刷新数据
327 331 _alone.refreshScheduleArray(rs.list);
328   - layer.msg('计划烂班成功!');
  332 + msg_ct('计划烂班成功!');
329 333 });
330 334 });
331 335 return false;
... ... @@ -354,7 +358,7 @@ var _menu = (function() {
354 358 $post('/realSchedule/realOutAdjust', params
355 359 ,function(rs){
356 360 if(rs.t){
357   - layer.msg('实发调整成功!');
  361 + msg_ct('实发调整成功!');
358 362 //更新前端数据
359 363 _alone.refreshSchedule(rs.t);
360 364 }
... ... @@ -372,7 +376,7 @@ var _menu = (function() {
372 376 }, function(){
373 377 $post('/realSchedule/revokeRealOutgo', {id: schedul.id}, function(rs){
374 378 if(rs.t){
375   - layer.msg('撤销实发成功!');
  379 + msg_ct('撤销实发成功!');
376 380 //更新前端数据
377 381 _alone.refreshSchedule(rs.t);
378 382 }
... ... @@ -388,7 +392,7 @@ var _menu = (function() {
388 392 }, function(){
389 393 $post('/realSchedule/revokeDestroy', {id: schedul.id}, function(rs){
390 394 if(rs.t){
391   - layer.msg('撤销烂班成功!');
  395 + msg_ct('撤销烂班成功!');
392 396 //更新前端数据
393 397 _alone.refreshSchedule(rs.t);
394 398 }
... ... @@ -415,7 +419,7 @@ var _menu = (function() {
415 419 || rs.status == 200){
416 420 //刷新数据
417 421 _alone.refreshScheduleArray(rs.list);
418   - layer.msg('调整间隔成功!');
  422 + msg_ct('调整间隔成功!');
419 423 }
420 424 },
421 425 error: errorHandle
... ... @@ -451,7 +455,7 @@ var _menu = (function() {
451 455 },
452 456 //调整人车
453 457 vehicAndPerAdjust: function(schedul){
454   - $.get('/pages/control/line/child_pages/vehicAndper_adjust.html', function(content){
  458 + $.get('/pages/control/line/child_pages/car_and_persion.html', function(content){
455 459 layer.open({
456 460 type: 1,
457 461 area: '730px',
... ... @@ -483,7 +487,10 @@ var _menu = (function() {
483 487 $.post('/directive/dispatch', {id: schedul.id},
484 488 function(code){
485 489 if(code == 0){
486   - layer.msg('发送成功');
  490 + msg_ct('发送成功');
  491 + }
  492 + else if(code == -2){
  493 + layer.alert('该班次发车时间距离当前时间较远,系统阻止了该调度指令的下发。', {icon: 2, title: '被拦截的指令'});
487 494 }
488 495 else
489 496 layer.alert('发送调度指令失败', {icon: 2, title: '操作失败'});
... ... @@ -494,7 +501,7 @@ var _menu = (function() {
494 501 schInfoFineTune: function(schedul){
495 502 var index = layer.open({
496 503 type: 1,
497   - area: '630px',
  504 + area: '680px',
498 505 maxmin: true,
499 506 content: template('schinfo_fine_tune_temp', schedul),
500 507 shift: 5,
... ... @@ -550,7 +557,7 @@ var _menu = (function() {
550 557 },
551 558 //基于车辆的待发调整
552 559 outgoAdjustAll: function(schedul){
553   - $.get('/pages/control/line/child_pages/outgo_adjust_all.html', function(content){
  560 + $.get('/pages/control/line/child_pages/dfsj_batch.html', function(content){
554 561 layer.open({
555 562 type: 1,
556 563 area: '830px',
... ...
src/main/resources/static/pages/control/line/temps/alone_tp.html
... ... @@ -136,7 +136,7 @@
136 136 <td data-name="dfsj" data-time="{{item.zdsjT}}">{{item.dfsj}}</td>
137 137  
138 138 {{if item.status == -1}}
139   - <td class="tl-qrlb sfsj-item">烂班</td>
  139 + <td class="tl-qrlb sfsj-item" >烂班</td>
140 140  
141 141 {{else if item.status == 2}}
142 142 <td data-name="sjfcsj" class="tl-yzx sfsj-item">{{item.fcsjActual == null?"?":item.fcsjActual}}<span class="fcsj-diff">{{item.fcsj_diff}}</span></td>
... ... @@ -149,8 +149,8 @@
149 149 {{/if}}
150 150  
151 151 <td class="hide-lt-1080" data-name="remarks">
152   - {{if item.remarks != null && item.length > 0}}
153   - <a class="remarks-popover" href="javascript:;" data-toggle="popover" data-content="{{item.remarks}}" >备注...</a>
  152 + {{if item.remarks != null && item.remarks.length > 0}}
  153 + <a class="remarks-popover" href="javascript:;" data-toggle="popover" data-content="{{item.remarks}}" >查看...</a>
154 154 {{/if}}
155 155 </td>
156 156 <!--<td><a href="javascript:;">主</a></td>-->
... ...
src/main/resources/static/pages/mapmonitor/real/js/real.js
... ... @@ -41,9 +41,9 @@
41 41 }
42 42 var method = $(this).data('click');
43 43  
44   - /*if (!method || playAnimation)
  44 + if (!method /*|| playAnimation*/)
45 45 return;
46   - playAnimation = true;*/
  46 + //playAnimation = true;
47 47  
48 48 $('.mapTools').addClass('disable');
49 49 $('.mapTools div.item.active').removeClass('active');
... ...
src/main/resources/static/pages/mapmonitor/real/js/vehicle.js
... ... @@ -4,6 +4,10 @@
4 4  
5 5 var vehiclePanel = (function() {
6 6  
  7 + //设备号和marker映射
  8 + var gpsMarker = {}
  9 + ,cLineCode;// 当前线路编码
  10 +
7 11 function getCurrMap(){
8 12 return realMap[realMap.getMap().fName];
9 13 }
... ... @@ -16,6 +20,7 @@ var vehiclePanel = (function() {
16 20 // 手风琴收拢
17 21 $('.mapRightWrap').on('hide.bs.collapse', '.panel-collapse', function() {
18 22 $(this).prev().find('span.icon').addClass('rotate');
  23 + cLineCode = null;
19 24 });
20 25  
21 26 // 手风琴展开
... ... @@ -24,16 +29,19 @@ var vehiclePanel = (function() {
24 29 var lineCode = $(this).data('line');
25 30 //收拢其他
26 31 closeAll();
  32 + cLineCode = lineCode;
27 33 drawLineAndGps(lineCode);
28 34 });
29 35  
30 36 //绘制线路和GPS
31 37 function drawLineAndGps(lineCode){
32 38 //过滤出该线路的GPS点
33   - var showList = [];
  39 + var showList = [], gps;
34 40 if(lineGps[lineCode]){
35 41 $.each(lineGps[lineCode], function(){
36   - showList.push(allGps[this]);
  42 + gps = allGps[this];
  43 + showList.push(gps);
  44 + gpsMarker[gps.deviceId] = gps;
37 45 });
38 46 }
39 47 //显示车辆列表
... ... @@ -76,6 +84,7 @@ var vehiclePanel = (function() {
76 84 if(up)
77 85 temp = temp.concat(up);
78 86  
  87 + var gps;
79 88 if(!$(this).is(":hidden")){
80 89 $.each(temp, function(){
81 90 allGps[this.deviceId] = this;
... ... @@ -88,6 +97,17 @@ var vehiclePanel = (function() {
88 97 lineGps[this.lineId].push(this.deviceId);
89 98 })
90 99 }
  100 +
  101 + //先暂时重绘,后面再优化
  102 + if(cLineCode){
  103 + var showList = [];
  104 + if(lineGps[cLineCode]){
  105 + $.each(lineGps[cLineCode], function(){
  106 + showList.push(allGps[this]);
  107 + });
  108 + }
  109 + mapObj.drawGpsMarker(showList);
  110 + }
91 111 });
92 112  
93 113 var exports = {
... ...