Commit e86195b1d30a1b1bfa825db2afb71d61578cfa76
1 parent
8f6b2e0f
update...
Showing
9 changed files
with
116 additions
and
109 deletions
src/main/java/com/bsth/controller/directive/DirectiveController.java
| ... | ... | @@ -165,11 +165,11 @@ public class DirectiveController { |
| 165 | 165 | * @throws |
| 166 | 166 | */ |
| 167 | 167 | @RequestMapping(value = "/list", method = RequestMethod.GET) |
| 168 | - public Map<String, Object> findDirective(String nbbm,@RequestParam int dType | |
| 168 | + public Map<String, Object> findDirective(String nbbms,@RequestParam int dType | |
| 169 | 169 | , @RequestParam(defaultValue = "0") int page, |
| 170 | 170 | @RequestParam(defaultValue = "10") int size){ |
| 171 | 171 | |
| 172 | - return directiveService.findDirective(nbbm, dType, page, size); | |
| 172 | + return directiveService.findDirective(nbbms, dType, page, size); | |
| 173 | 173 | } |
| 174 | 174 | |
| 175 | 175 | @RequestMapping(value = "/c0a4", method = RequestMethod.POST) | ... | ... |
src/main/java/com/bsth/service/directive/DirectiveServiceImpl.java
| ... | ... | @@ -365,11 +365,21 @@ public class DirectiveServiceImpl extends BaseServiceImpl<D60, Integer> implemen |
| 365 | 365 | } |
| 366 | 366 | |
| 367 | 367 | @Override |
| 368 | - public Map<String, Object> findDirective(String nbbm, int dType, int page, int size) { | |
| 368 | + public Map<String, Object> findDirective(String nbbms, int dType, int page, int size) { | |
| 369 | 369 | Map<String, Object> rsMap = new HashMap<>(); |
| 370 | 370 | try{ |
| 371 | - List<Directive> list = new ArrayList<>(); | |
| 372 | 371 | |
| 372 | + List<String> carArray = new ArrayList<>(), deviceArray=new ArrayList<>(); | |
| 373 | + if(StringUtils.isNotEmpty(nbbms)){ | |
| 374 | + carArray = Splitter.on(",").splitToList(nbbms); | |
| 375 | + //转换成设备号 | |
| 376 | + Map<String, String> nbbm2deviceMap = BasicData.deviceId2NbbmMap.inverse(); | |
| 377 | + for(int i = 0, len=carArray.size(); i < len; i++){ | |
| 378 | + deviceArray.add(nbbm2deviceMap.get(carArray.get(i))); | |
| 379 | + } | |
| 380 | + } | |
| 381 | + | |
| 382 | + List<Directive> list = new ArrayList<>(); | |
| 373 | 383 | switch (dType) { |
| 374 | 384 | case -1: |
| 375 | 385 | //所有指令 |
| ... | ... | @@ -409,18 +419,22 @@ public class DirectiveServiceImpl extends BaseServiceImpl<D60, Integer> implemen |
| 409 | 419 | |
| 410 | 420 | // 时间倒序 |
| 411 | 421 | Collections.sort(list, new DayOfDirectives.DComparator()); |
| 412 | - if (StringUtils.isNotBlank(nbbm)) { | |
| 413 | - String deviceId = BasicData.deviceId2NbbmMap.inverse().get(nbbm); | |
| 414 | - //按车辆过滤 | |
| 422 | + if(deviceArray.size() > 0){ | |
| 423 | + //按设备号过滤 | |
| 415 | 424 | List<Directive> subList = new ArrayList<>(); |
| 416 | 425 | for (Directive d : list) { |
| 417 | - if (d.getDeviceId().equals(deviceId)) { | |
| 426 | + if (deviceArray.contains(d.getDeviceId())) { | |
| 418 | 427 | subList.add(d); |
| 419 | 428 | } |
| 420 | 429 | } |
| 421 | 430 | list = subList; |
| 422 | 431 | } |
| 423 | 432 | |
| 433 | + for(Directive d : list){ | |
| 434 | + d.setTimeHHmm(fmtHHmm.print(d.getTimestamp())); | |
| 435 | + d.setNbbm(BasicData.deviceId2NbbmMap.get(d.getDeviceId())); | |
| 436 | + } | |
| 437 | + | |
| 424 | 438 | int count = list.size(); |
| 425 | 439 | // 分页 |
| 426 | 440 | int s = page * size, e = s + size; |
| ... | ... | @@ -429,15 +443,6 @@ public class DirectiveServiceImpl extends BaseServiceImpl<D60, Integer> implemen |
| 429 | 443 | e = count; |
| 430 | 444 | |
| 431 | 445 | List<Directive> rs = list.subList(s, e); |
| 432 | - | |
| 433 | - // 时间格式化,车辆自编号转换 | |
| 434 | - for (Directive d : rs) { | |
| 435 | - if (d.getTimeHHmm() == null) | |
| 436 | - d.setTimeHHmm(fmtHHmm.print(d.getTimestamp())); | |
| 437 | - if (d.getNbbm() == null) | |
| 438 | - d.setNbbm(BasicData.deviceId2NbbmMap.get(d.getDeviceId())); | |
| 439 | - } | |
| 440 | - | |
| 441 | 446 | rsMap.put("list", rs); |
| 442 | 447 | rsMap.put("totalPages", count % size == 0 ? (count / size - 1) : count / size); |
| 443 | 448 | rsMap.put("page", page); |
| ... | ... | @@ -450,51 +455,6 @@ public class DirectiveServiceImpl extends BaseServiceImpl<D60, Integer> implemen |
| 450 | 455 | |
| 451 | 456 | @Override |
| 452 | 457 | public Map<String, Object> findAll80(Map<String, Object> map, int page, int size) { |
| 453 | - /*List<D80> d80s = new ArrayList<>(); | |
| 454 | - | |
| 455 | - Object nbbm = map.get("nbbm"); | |
| 456 | - if (null != nbbm && StringUtils.isNotEmpty(nbbm.toString())) { | |
| 457 | - d80s.addAll(pilotReport.findByCar(nbbm.toString())); | |
| 458 | - } else { | |
| 459 | - d80s.addAll(pilotReport.findAll()); | |
| 460 | - } | |
| 461 | - | |
| 462 | - Short requestCode = Short.parseShort(map.get("requestCode").toString()); | |
| 463 | - if (requestCode != -1) { | |
| 464 | - List<D80> temps = new ArrayList<>(); | |
| 465 | - for (D80 d80 : d80s) { | |
| 466 | - if (d80.getData().getRequestCode().equals(requestCode)) | |
| 467 | - temps.add(d80); | |
| 468 | - } | |
| 469 | - d80s = temps; | |
| 470 | - } | |
| 471 | - | |
| 472 | - //排序 | |
| 473 | - Collections.sort(d80s, new Comparator<D80>() { | |
| 474 | - @Override | |
| 475 | - public int compare(D80 o1, D80 o2) { | |
| 476 | - return (int) (o2.getTimestamp() - o1.getTimestamp()); | |
| 477 | - } | |
| 478 | - }); | |
| 479 | - | |
| 480 | - //分页 | |
| 481 | - int count = d80s.size(); | |
| 482 | - // 分页 | |
| 483 | - int s = page * size, e = s + size; | |
| 484 | - | |
| 485 | - if (e > count) | |
| 486 | - e = count; | |
| 487 | - | |
| 488 | - //SimpleDateFormat sdfHHmm = new SimpleDateFormat("HH:mm"); | |
| 489 | - List<D80> rs = d80s.subList(s, e); | |
| 490 | - for (D80 d80 : rs) { | |
| 491 | - d80.setTimeStr(fmtHHmm.print(d80.getTimestamp())); | |
| 492 | - } | |
| 493 | - | |
| 494 | - Map<String, Object> rsMap = new HashMap<>(); | |
| 495 | - rsMap.put("list", rs); | |
| 496 | - rsMap.put("totalPages", count % size == 0 ? count / size - 1 : count / size); | |
| 497 | - rsMap.put("page", page);*/ | |
| 498 | 458 | |
| 499 | 459 | List all = ListFilterUtils.filter(pilotReport.findAll(), map, D80.class); |
| 500 | 460 | //排序 | ... | ... |
src/main/resources/static/pages/history_sch/edit/main_page.html
| ... | ... | @@ -144,6 +144,19 @@ |
| 144 | 144 | var hide_wait_modal = function () { |
| 145 | 145 | UIkit.modal('#gb_wait_modal').hide(); |
| 146 | 146 | }; |
| 147 | + | |
| 148 | + var alt_confirm = function (content, succ, okBtn, noCenter) { | |
| 149 | + var modalEl = UIkit.modal.confirm(content, function () { | |
| 150 | + succ && succ(); | |
| 151 | + modalEl.hide(); | |
| 152 | + }, { | |
| 153 | + labels: { | |
| 154 | + Ok: okBtn, | |
| 155 | + Cancel: '取消' | |
| 156 | + } | |
| 157 | + , center: !noCenter | |
| 158 | + }); | |
| 159 | + }; | |
| 147 | 160 | </script> |
| 148 | 161 | </body> |
| 149 | 162 | </html> |
| 150 | 163 | \ No newline at end of file | ... | ... |
src/main/resources/static/real_control_v2/fragments/line_schedule/sys_mailbox.html
| 1 | 1 | <div> |
| 2 | 2 | <script id="sys-note-80-temp" type="text/html"> |
| 3 | - <div class="uk-width-medium-1-1 sys-note-80 sys-mail-item" data-id={{id}}> | |
| 3 | + <div class="uk-width-medium-1-1 sys-note-80 sys-mail-item" data-id={{id}} data-schid="{{schId}}"> | |
| 4 | 4 | <div class="uk-panel uk-panel-box uk-panel-box-primary"> |
| 5 | 5 | <h4 class="uk-panel-title">{{data.nbbm}} {{text}}</h4> |
| 6 | 6 | <code>{{dateStr}}</code> | ... | ... |
src/main/resources/static/real_control_v2/fragments/north/nav/directive_history.html
| ... | ... | @@ -21,9 +21,13 @@ |
| 21 | 21 | <option value="1">运营指令</option> |
| 22 | 22 | <option value="2">线路切换指令</option> |
| 23 | 23 | </select> |
| 24 | + <span class="horizontal-field">线路</span> | |
| 25 | + <select name="lineCode" style="width: 140px;"> | |
| 26 | + <option value="">全部</option> | |
| 27 | + </select> | |
| 24 | 28 | <span class="horizontal-field">车辆</span> |
| 25 | 29 | <div class="uk-autocomplete uk-form" id="uk-autocomplete-cars"> |
| 26 | - <input type="text" name="nbbm" placeholder="车辆自编号"> | |
| 30 | + <input type="text" name="nbbms" placeholder="车辆自编号"> | |
| 27 | 31 | </div> |
| 28 | 32 | |
| 29 | 33 | <button class="uk-button">检索</button> |
| ... | ... | @@ -81,43 +85,18 @@ |
| 81 | 85 | var form = $('.search-form', modal); |
| 82 | 86 | var page = 0; |
| 83 | 87 | var pageSize = 12; |
| 84 | - //all car nbbm | |
| 85 | - var cars; | |
| 86 | - //custom autocomplete search function | |
| 87 | - var carInput = $('#uk-autocomplete-cars input'); | |
| 88 | - var search_nbbm = function(release) { | |
| 89 | - var q = carInput.val().toUpperCase(), | |
| 90 | - rs = [], | |
| 91 | - max = 12, | |
| 92 | - count = 0; | |
| 93 | - | |
| 94 | - $.each(cars, function(i, item) { | |
| 95 | - if (item.indexOf(q) != -1){ | |
| 96 | - rs.push({ | |
| 97 | - value: item, | |
| 98 | - title: item | |
| 99 | - }); | |
| 100 | - count ++; | |
| 101 | - } | |
| 102 | - if (count >= max) | |
| 103 | - return false; | |
| 104 | - }); | |
| 105 | 88 | |
| 106 | - release && release(rs); | |
| 107 | - } | |
| 89 | + //线路下拉框 | |
| 90 | + var opts = '<option value="">全部</option>'; | |
| 91 | + $.each(gb_data_basic.activeLines, function () { | |
| 92 | + opts += '<option value="'+this.lineCode+'">'+this.name+'</option>'; | |
| 93 | + }); | |
| 94 | + $('[name=lineCode]', form).html(opts); | |
| 108 | 95 | |
| 109 | 96 | $('#directive-history-modal').on('init', function(e, data) { |
| 110 | 97 | e.stopPropagation(); |
| 111 | - // autocomplete | |
| 112 | - $.get('/basic/cars', function(rs) { | |
| 113 | - cars = rs; | |
| 114 | - | |
| 115 | - UIkit.autocomplete('#uk-autocomplete-cars', { | |
| 116 | - source: search_nbbm, | |
| 117 | - minLength: 1, | |
| 118 | - delay: 50 | |
| 119 | - }); | |
| 120 | - }); | |
| 98 | + //车辆 autocomplete | |
| 99 | + gb_common.carAutocomplete($('#uk-autocomplete-cars', modal), gb_data_basic.carsArray()); | |
| 121 | 100 | query(); |
| 122 | 101 | }); |
| 123 | 102 | |
| ... | ... | @@ -133,6 +112,17 @@ |
| 133 | 112 | var data = form.serializeJSON(); |
| 134 | 113 | data.page = page; |
| 135 | 114 | data.size = pageSize; |
| 115 | + if(data.lineCode){ | |
| 116 | + //有选择线路,重新设置车辆字符串 | |
| 117 | + var nbbmArray=data.nbbms=gb_schedule_table.findNbbmByLineCode(data.lineCode); | |
| 118 | + if(nbbmArray.length>0){ | |
| 119 | + data.nbbms=''; | |
| 120 | + for(var i=0,n;n=nbbmArray[i++];){ | |
| 121 | + data.nbbms+=n+','; | |
| 122 | + } | |
| 123 | + data.nbbms=data.nbbms.substr(0, data.nbbms.length-1); | |
| 124 | + } | |
| 125 | + } | |
| 136 | 126 | |
| 137 | 127 | $.get('/directive/list', data, function(rs) { |
| 138 | 128 | $.each(rs.list, function(i, e){ | ... | ... |
src/main/resources/static/real_control_v2/fragments/north/nav/report_80.html
| ... | ... | @@ -14,10 +14,12 @@ |
| 14 | 14 | <select name="requestCode"> |
| 15 | 15 | <option value="">全部</option> |
| 16 | 16 | </select> |
| 17 | - <span class="horizontal-field">线路</span> | |
| 17 | + <!--<span class="horizontal-field">线路</span> | |
| 18 | 18 | <div class="uk-autocomplete uk-form autocomplete-line" > |
| 19 | 19 | <input type="text" name="lineId" placeholder="线路"> |
| 20 | - </div> | |
| 20 | + </div>--> | |
| 21 | + <span class="horizontal-field">线路</span> | |
| 22 | + <select name="lineId" style="width: 140px;"></select> | |
| 21 | 23 | <span class="horizontal-field">车辆</span> |
| 22 | 24 | <div class="uk-autocomplete uk-form autocomplete-cars" > |
| 23 | 25 | <input type="text" name="nbbm" placeholder="车辆自编号"> |
| ... | ... | @@ -80,6 +82,13 @@ |
| 80 | 82 | var page = 0; |
| 81 | 83 | var pageSize = 12; |
| 82 | 84 | |
| 85 | + //线路下拉框 | |
| 86 | + var opts = '<option value="">全部</option>'; | |
| 87 | + $.each(gb_data_basic.activeLines, function () { | |
| 88 | + opts += '<option value="'+this.lineCode+'">'+this.name+'</option>'; | |
| 89 | + }); | |
| 90 | + $('[name=lineId]', form).html(opts); | |
| 91 | + | |
| 83 | 92 | $(modal).on('init', function(e, data) { |
| 84 | 93 | e.stopPropagation(); |
| 85 | 94 | var opt=''; |
| ... | ... | @@ -90,7 +99,7 @@ |
| 90 | 99 | //车辆 autocomplete |
| 91 | 100 | gb_common.carAutocomplete($('.autocomplete-cars', modal), gb_data_basic.carsArray()); |
| 92 | 101 | //线路 autocomplete |
| 93 | - gb_common.lineAutocomplete($('.autocomplete-line', modal)); | |
| 102 | + //gb_common.lineAutocomplete($('.autocomplete-line', modal)); | |
| 94 | 103 | query(); |
| 95 | 104 | }); |
| 96 | 105 | |
| ... | ... | @@ -106,12 +115,12 @@ |
| 106 | 115 | var data = form.serializeJSON(); |
| 107 | 116 | data.page = page; |
| 108 | 117 | data.size = pageSize; |
| 109 | - //线路转换成编码 | |
| 118 | + /*//线路转换成编码 | |
| 110 | 119 | if(data.lineId){ |
| 111 | 120 | var lineCode = gb_data_basic.findCodeByLinename(data.lineId); |
| 112 | 121 | if(lineCode) |
| 113 | 122 | data.lineId=lineCode; |
| 114 | - } | |
| 123 | + }*/ | |
| 115 | 124 | $.get('/directive/findAll80', data, function(rs) { |
| 116 | 125 | $.each(rs.list, function(){ |
| 117 | 126 | //命令字转中文 | ... | ... |
src/main/resources/static/real_control_v2/js/common.js
| ... | ... | @@ -62,6 +62,18 @@ var gb_common = (function () { |
| 62 | 62 | return rs; |
| 63 | 63 | }; |
| 64 | 64 | |
| 65 | + /** | |
| 66 | + * 从班次集合里提取车辆 | |
| 67 | + * @param list | |
| 68 | + */ | |
| 69 | + var extractNbbm = function (list) { | |
| 70 | + var rs = {}; | |
| 71 | + $.each(list, function () { | |
| 72 | + rs[this.clZbh]=1; | |
| 73 | + }); | |
| 74 | + return rs; | |
| 75 | + }; | |
| 76 | + | |
| 65 | 77 | var compileTempByDom = function (dom, opts) { |
| 66 | 78 | var tps = {}, |
| 67 | 79 | id; |
| ... | ... | @@ -435,7 +447,8 @@ var gb_common = (function () { |
| 435 | 447 | adjustExps: adjustExps, |
| 436 | 448 | inOutExps: inOutExps, |
| 437 | 449 | next_elem: next_elem, |
| 438 | - getDisabledVal: getDisabledVal | |
| 450 | + getDisabledVal: getDisabledVal, | |
| 451 | + extractNbbm: extractNbbm | |
| 439 | 452 | |
| 440 | 453 | //whichTransitionEvent:whichTransitionEvent |
| 441 | 454 | }; | ... | ... |
src/main/resources/static/real_control_v2/js/line_schedule/sch_table.js
| ... | ... | @@ -651,6 +651,17 @@ var gb_schedule_table = (function () { |
| 651 | 651 | var refreshAll = function () { |
| 652 | 652 | show(); |
| 653 | 653 | }; |
| 654 | + | |
| 655 | + /** | |
| 656 | + * 获取线路下营运的车辆 | |
| 657 | + */ | |
| 658 | + var findNbbmByLineCode = function (lineCode) { | |
| 659 | + try{ | |
| 660 | + return gb_common.get_keys(gb_common.extractNbbm(gb_common.get_vals(line2Schedule[lineCode]))); | |
| 661 | + }catch (e){ | |
| 662 | + return []; | |
| 663 | + } | |
| 664 | + }; | |
| 654 | 665 | |
| 655 | 666 | return { |
| 656 | 667 | show: show, |
| ... | ... | @@ -673,6 +684,7 @@ var gb_schedule_table = (function () { |
| 673 | 684 | showLateBadge: showLateBadge, |
| 674 | 685 | cancelLateBadge: cancelLateBadge, |
| 675 | 686 | refreshAll: refreshAll, |
| 676 | - getNextNormalSch: getNextNormalSch | |
| 687 | + getNextNormalSch: getNextNormalSch, | |
| 688 | + findNbbmByLineCode:findNbbmByLineCode | |
| 677 | 689 | }; |
| 678 | 690 | })(); | ... | ... |
src/main/resources/static/real_control_v2/js/websocket/sch_websocket.js
| ... | ... | @@ -235,23 +235,37 @@ var gb_sch_websocket = (function () { |
| 235 | 235 | dl.addClass('relevance-active intimity').find('dd:eq(5)').trigger('click'); |
| 236 | 236 | }); |
| 237 | 237 | |
| 238 | + //80消息点击 | |
| 239 | + $(document).on('click', '.sys-mailbox .sys-note-80', function () { | |
| 240 | + var lineCode = $(this).parents('li.line_schedule').data('id') | |
| 241 | + , id = $(this).data('schid'); | |
| 242 | + var sch = gb_schedule_table.findScheduleByLine(lineCode)[id]; | |
| 243 | + var dl = gb_schedule_table.scroToDl(sch); | |
| 244 | + //高亮 | |
| 245 | + gb_schedule_table.reset_drag_active_all(dl); | |
| 246 | + dl.addClass('relevance-active intimity').find('dd:eq(5)').trigger('click'); | |
| 247 | + }); | |
| 238 | 248 | |
| 239 | 249 | //80同意 |
| 240 | - $(document).on('click', '.sys-mailbox .sys-note-80 .uk-button-primary', function () { | |
| 250 | + $(document).on('click', '.sys-mailbox .sys-note-80 .uk-button-primary', function (e) { | |
| 251 | + e.stopPropagation(); | |
| 241 | 252 | $(this).attr('disabled', 'disabled'); |
| 242 | 253 | var panel = $(this).parents('.sys-note-80') |
| 243 | 254 | , id = panel.data('id'); |
| 244 | 255 | |
| 245 | 256 | reply80({id: id, reply: 0}); |
| 257 | + return false; | |
| 246 | 258 | }); |
| 247 | 259 | |
| 248 | 260 | //80不同意 |
| 249 | 261 | $(document).on('click', '.sys-mailbox .sys-note-80 .uk-button.reject', function () { |
| 262 | + e.stopPropagation(); | |
| 250 | 263 | $(this).attr('disabled', 'disabled'); |
| 251 | 264 | var panel = $(this).parents('.sys-note-80') |
| 252 | 265 | , id = panel.data('id'); |
| 253 | 266 | |
| 254 | 267 | reply80({id: id, reply: -1}); |
| 268 | + return false; | |
| 255 | 269 | }); |
| 256 | 270 | |
| 257 | 271 | var reply80 = function (data, cb) { |
| ... | ... | @@ -344,10 +358,6 @@ var gb_sch_websocket = (function () { |
| 344 | 358 | return; |
| 345 | 359 | |
| 346 | 360 | gb_schedule_context_menu.fcxxwt(sch); |
| 347 | - var dl = gb_schedule_table.scroToDl(sch); | |
| 348 | - //高亮 | |
| 349 | - gb_schedule_table.reset_drag_active_all(dl); | |
| 350 | - dl.addClass('relevance-active intimity').find('dd:eq(5)').trigger('click'); | |
| 351 | 361 | }); |
| 352 | 362 | |
| 353 | 363 | return { | ... | ... |