Commit f295dd747f77e98d90220d564a56b5c7da239aa0

Authored by 王通
1 parent 40e4352c

1.历史班次修正ID和CODE问题修复

src/main/resources/static/pages/history_sch/edit/history_sch_maintain.html
1 -<div class="uk-modal " id="history-sch-maintain-modal" style="">  
2 - <div class="uk-modal-dialog" style="width: 95%;margin: 20px auto;">  
3 - <a href="" class="uk-modal-close uk-close"></a>  
4 - <div class="uk-modal-header">  
5 - <h2>历史路单维护</h2>  
6 - </div>  
7 -  
8 - <div style="padding-left: 12px;margin: 20px 0">  
9 - <ul class="uk-subnav uk-subnav-pill h-s-time">  
10 - </ul>  
11 - </div>  
12 -  
13 - <div class="uk-panel uk-panel-box uk-panel-box-primary">  
14 - <form class="uk-form search-form">  
15 - <fieldset data-uk-margin>  
16 - <span class="horizontal-field">公司</span>  
17 - <select name="companyId" style="width: 110px;"></select>  
18 - <span class="horizontal-field">分公司</span>  
19 - <select name="subCompanyId" style="width: 110px;"></select>  
20 - <span class="horizontal-field">线路</span>  
21 - <select name="xlBm_eq" style="width: 120px;"></select>  
22 - <span class="horizontal-field">路牌</span>  
23 - <select name="lpName_eq" style="width: 80px;"></select>  
24 - <span class="horizontal-field">上下行</span>  
25 - <select name="xlDir_eq">  
26 - <option value="">全部</option>  
27 - <option value="0">上行</option>  
28 - <option value="1">下行</option>  
29 - </select>  
30 - &nbsp;  
31 - <span class="horizontal-field">车辆</span>  
32 - <div class="uk-autocomplete uk-form autocomplete-cars">  
33 - <input type="text" name="clZbh_like" placeholder="自编号" style="width: 80px;">  
34 - </div>  
35 - <span class="horizontal-field">驾驶员</span>  
36 - <div class="uk-autocomplete uk-form autocomplete-jsy">  
37 - <input type="text" name="jGh_like" placeholder="驾驶员" style="width: 80px;">  
38 - </div>  
39 - <button class="uk-button">检索</button>  
40 - <a class="add_lp_link" title="先点击检索后再临加路牌"><i class="uk-icon-plus"></i> 临加路牌</a>  
41 - <button id="reCountBtn" class="uk-button uk-button-danger uk-button-mini" style="position: absolute;right: 12px;bottom: 14px;">  
42 - 重新统计</button>  
43 - </fieldset>  
44 - </form>  
45 - </div>  
46 -  
47 - <div class="ct_table_wrap ct_table_no_border history-sch-wrap" style="height: 510px;">  
48 - <div class="ct_table history-sch-table">  
49 - <div class="ct_table_head">  
50 - <dl>  
51 - <dt>序号</dt>  
52 - <dt>路牌</dt>  
53 - <dt>车辆</dt>  
54 - <dt>驾驶员</dt>  
55 - <dt>起点</dt>  
56 - <dt>终点</dt>  
57 - <dt>计发</dt>  
58 - <dt>待发</dt>  
59 - <dt>实发</dt>  
60 - <dt>终点实达</dt>  
61 - <dt>备注</dt>  
62 - </dl>  
63 - </div>  
64 - <div class="ct_table_body">  
65 - </div>  
66 - </div>  
67 - </div>  
68 -  
69 - <div class="load-panel">  
70 - <i class="uk-icon-spinner uk-icon-spin"></i>  
71 - 正在加载数据  
72 - </div>  
73 - </div>  
74 -  
75 - <script id="history-sch-maintain-table-temp" type="text/html">  
76 - {{each list as sch i}}  
77 - <dl data-id="{{sch.id}}">  
78 - <dd>{{i + 1}}</dd>  
79 - <dd>{{sch.lpName}}</dd>  
80 - <dd>{{sch.clZbh}}</dd>  
81 - <dd>{{sch.jGh}}/{{sch.jName}}</dd>  
82 - <dd title="{{sch.qdzName}}">{{sch.qdzName}}</dd>  
83 - <dd title="{{sch.zdzName}}">{{sch.zdzName}}</dd>  
84 - <dd>{{sch.fcsj}}  
85 - {{if sch.bcType == "out"}}  
86 - <span class="uk-badge uk-badge-success">出场</span>  
87 - {{else if sch.bcType == "in"}}  
88 - <span class="uk-badge uk-badge-warning">进场</span>  
89 - {{else if sch.bcType == "venting"}}  
90 - <span class="uk-badge uk-badge-danger">直放</span>  
91 - {{else if sch.bcType == "major"}}  
92 - <span class="uk-badge uk-badge-danger">放站</span>  
93 - {{else if sch.bcType == "region"}}  
94 - <span class="uk-badge sch_region">区间</span>  
95 - {{else if sch.bcType == "ldks"}}  
96 - <span class="uk-badge sch_ldks">空驶</span>  
97 - {{/if}}  
98 - {{if sch.sflj}}  
99 - <span class="uk-badge uk-badge-danger">临加</span>  
100 - {{/if}}  
101 - {{if sch.cTasks.length > 0}}  
102 - <span class="uk-badge uk-badge-notification">{{sch.cTasks.length}}</span>  
103 - {{/if}}</dd>  
104 - <dd>  
105 - {{sch.dfsj}}  
106 - {{if sch.status==-1}}  
107 - <span class="uk-badge uk-badge-danger">烂班</span>  
108 - {{/if}}  
109 - </dd>  
110 - <dd>{{sch.fcsjActual}}<span class="fcsj-diff">{{sch.fcsj_diff}}</span></dd>  
111 - <dd>{{sch.zdsjActual}}</dd>  
112 - <dd title="{{sch.remarks}}">{{sch.remarks}}</dd>  
113 - </dl>  
114 - {{/each}}  
115 - </script>  
116 -  
117 - <script>  
118 - (function () {  
119 - var modal = '#history-sch-maintain-modal';  
120 -  
121 - //滚动条  
122 - $('.history-sch-wrap', modal).perfectScrollbar({suppressScrollX: true});  
123 - //history-sch-wrap  
124 - $(modal).on('init', function (e, data) {  
125 - e.stopPropagation();  
126 - $.get('/realSchedule/dateArray', function (rs) {  
127 - //日期tab  
128 - var tsStr = '';  
129 - $.each(rs, function (i) {  
130 - tsStr += '<li ' + (i == 0 ? 'class="uk-active"' : '') + '><a>' + this + '</a></li>';  
131 - });  
132 -  
133 - $('.h-s-time', modal).html(tsStr);  
134 - clearLpSelect();  
135 - //reLoadLp=true;  
136 - //jsQuery();  
137 - });  
138 - });  
139 -  
140 - $(modal).on('refresh', function (e, data) {  
141 - if(data){  
142 - var lpName = data.lpName;  
143 - if(is_new_temp_lp(lpName)){  
144 - $('[name=lpName_eq]', modal).append('<option value="'+lpName+'" selected>'+lpName+'</option>');  
145 - }  
146 - }  
147 - jsQuery();  
148 - });  
149 -  
150 - $(modal).on('click', '.h-s-time li,.h-s-line li', function () {  
151 - if(loading)  
152 - return;  
153 - $(this).parent().find('li.uk-active').removeClass('uk-active');  
154 - $(this).addClass('uk-active');  
155 - clearLpSelect();  
156 - //检索之前将滚动条置顶  
157 - $('.history-sch-wrap', modal)[0].scrollTop = 0;  
158 - jsQuery();  
159 - });  
160 -  
161 - $('.search-form', modal).on('submit', function (e) {  
162 - try {  
163 - //检索之前将滚动条置顶  
164 - $('.history-sch-wrap', modal)[0].scrollTop = 0;  
165 - jsQuery();  
166 - }catch(e){  
167 - console.log(e);  
168 - }  
169 - return false;  
170 - });  
171 -  
172 - var reLoadLp;  
173 - var nbbmArray,jsyArray,lpArray,loading;  
174 - var schArray;//主键映射  
175 - function jsQuery(cb) {  
176 - var data = $('.search-form', modal).serializeJSON();  
177 - data.companyId=null;  
178 - data.subCompanyId=null;  
179 - var rq = $('.h-s-time li.uk-active', modal).text();  
180 - data.scheduleDateStr_eq = rq;  
181 - if(!data.xlBm_eq)  
182 - return notify_err('请选择线路...');  
183 - if(data.jGh_like.indexOf('/')!=-1){  
184 - var jsy=data.jGh_like.split('/');  
185 - data.jGh_like=jsy[0];  
186 - data.jName_like=jsy[1];  
187 - }  
188 -  
189 - $('.load-panel', modal).show();  
190 - loading=true;  
191 - $.get('/realSchedule/all', data, function (rs) {  
192 - rs.sort(schedule_sort);  
193 - //可搜索的车辆自编号和驾驶员  
194 - nbbmArray=[];  
195 - jsyArray=[];  
196 - lpArray = [];  
197 - schArray = {};  
198 - $.each(rs, function () {  
199 - nbbmArray.push({value: this.clZbh});  
200 - jsyArray.push({value: this.jGh+'/'+this.jName,  
201 - fullChars: pinyin.getFullChars(this.jName).toUpperCase(),  
202 - camelChars: pinyin.getCamelChars(this.jName)});  
203 - lpArray.push({value: this.lpName});  
204 - calc_sch_real_shift(this);  
205 - schArray[this.id] = this;  
206 - });  
207 -  
208 - var tbodyStr = template('history-sch-maintain-table-temp', {list: rs});  
209 - $('.history-sch-table .ct_table_body', modal).html(tbodyStr);  
210 - //value  
211 - nbbmArray=distinctByField(nbbmArray);  
212 - jsyArray=distinctByField(jsyArray);  
213 - lpArray=distinctByField(lpArray);  
214 -  
215 - if(reLoadLp){  
216 - //路牌下拉框  
217 - var ops = '<option value="">全部</option>';  
218 - $.each(lpArray, function () {  
219 - ops += '<option value="'+this.value+'">'+this.value+'</option>';  
220 - });  
221 - $('[name=lpName_eq]', modal).html(ops);  
222 - reLoadLp = false;  
223 - }  
224 -  
225 - //lpName_eq  
226 - $('.load-panel', modal).hide();  
227 - loading=false;  
228 -  
229 - //更新滚动条高度  
230 - $('.history-sch-wrap', modal).perfectScrollbar('update');  
231 -  
232 - cb && cb();  
233 -  
234 - //初始化依赖数据  
235 - gb_data_basic.initData(data.xlBm_eq);  
236 - });  
237 - }  
238 -  
239 - function clearLpSelect() {  
240 - $('[name=lpName_eq]', modal).val('').html('');  
241 - reLoadLp = true;  
242 - }  
243 -  
244 - //nbbm autocomplete  
245 - var carAutoCom=$('.autocomplete-cars', modal);  
246 - UIkit.autocomplete(carAutoCom, {  
247 - minLength: 1,  
248 - delay: 50,  
249 - source: function(release) {  
250 - var q = $('input', carAutoCom).val().toUpperCase()  
251 - ,rs = [],  
252 - count = 0;  
253 - $.each(nbbmArray, function () {  
254 - if(this.value.indexOf(q) != -1){  
255 - rs.push(this);  
256 - count++;  
257 - }  
258 - if (count >= 15)  
259 - return false;  
260 - });  
261 - release && release(rs);  
262 - }  
263 - });  
264 -  
265 - //jsy autocomplete  
266 - var jsyAutoCom=$('.autocomplete-jsy', modal);  
267 - UIkit.autocomplete(jsyAutoCom, {  
268 - minLength: 1,  
269 - delay: 50,  
270 - source: function(release) {  
271 - var q = $('input', jsyAutoCom).val().toUpperCase()  
272 - ,rs = [],  
273 - count = 0;  
274 -  
275 - $.each(jsyArray, function() {  
276 - if (this.value.indexOf(q) != -1 || this.fullChars.indexOf(q) != -1 || this.camelChars.indexOf(q) != -1){  
277 - rs.push(this);  
278 - count++;  
279 - }  
280 -  
281 - if (count >= 10)  
282 - return false;  
283 - });  
284 - release && release(rs);  
285 - }  
286 - });  
287 -  
288 - function schedule_sort(s1, s2) {  
289 - return (s1.realExecDate+s1.fcsj).localeCompare(s2.realExecDate+s2.fcsj);  
290 - }  
291 -  
292 - function distinctByField(arr, f){  
293 - if(!f)  
294 - f = 'value';  
295 - var rs = {};  
296 - $.each(arr, function () {  
297 - rs[this[f]]=this;  
298 - });  
299 - return gb_common.get_vals(rs);  
300 - }  
301 -  
302 - gb_ct_table.fixedHead($('.ct_table_wrap', modal));  
303 -  
304 - //班次点击  
305 - $(modal).on('click contextmenu', '.history-sch-table .ct_table_body dl', function() {  
306 - $(this).parent().find('.active').removeClass('active');  
307 - $(this).addClass('active');  
308 - });  
309 -  
310 - var modal_opts = {center: false,bgclose: false, modal: false};  
311 - var folder = '/real_control_v2/fragments/north/nav/history_sch';  
312 - var callbackHandler={  
313 - edit: function(id){  
314 - open_modal(folder + '/editor.html', {id: id, parentModal: modal}, modal_opts);  
315 - },  
316 - add: function (id) {  
317 - open_modal(folder + '/h_add_temp_sch.html', {  
318 - sch: schArray[id]  
319 - }, modal_opts);  
320 - },  
321 - delete: function (id) {  
322 - var sch = schArray[id];  
323 - if (!sch || !sch.sflj)  
324 - return notify_err('只能删除临加班次!');  
325 - var str = '<h3>确定要删除临加班次<span style="color:red;margin: 0 5px;">' + sch.clZbh + '( ' + sch.dfsj + ' )</span>?</h3><h5 style="color: #6c6c6c;font-size: 12px;">班次删除后,调度指令会保留</h5>';  
326 - alt_confirm(str, function () {  
327 - gb_common.$del('/realSchedule/history/' + sch.id, function (rs) {  
328 - if($('.history-sch-table .ct_table_body dl', modal).length == 1){  
329 - $('[name=lpName_eq]', modal).val('');  
330 - reLoadLp = true;  
331 - }  
332 -  
333 - jsQuery();  
334 - });  
335 - }, '确定删除');  
336 - }  
337 - };  
338 -  
339 - //计算实发时间差值  
340 - var calc_sch_real_shift = function (sch) {  
341 - if (sch.fcsjActualTime) {  
342 - var diff = parseInt((sch.fcsjActualTime - sch.dfsjT) / 1000 / 60);  
343 - if (diff > 0)  
344 - sch.fcsj_diff = '( +' + diff + ' )';  
345 - else if (diff < 0)  
346 - sch.fcsj_diff = '( ' + diff + ' )';  
347 - else  
348 - sch.fcsj_diff = '';  
349 - }  
350 - };  
351 -  
352 - //右键菜单  
353 - $.contextMenu({  
354 - selector: modal+' .history-sch-table .ct_table_body dl',  
355 - className: 'schedule-ct-menu',  
356 - callback: function(key, options) {  
357 - var id = $('.context-menu-active', modal).data('id');  
358 - callbackHandler[key] && callbackHandler[key](id);  
359 - },  
360 - items: {  
361 - 'edit': {  
362 - name: '编辑'  
363 - },  
364 - 'add': {  
365 - name: '新增临加班次'  
366 - },  
367 - 'delete':{  
368 - name: '删除'  
369 - }  
370 - }  
371 - });  
372 -  
373 - //临加路牌  
374 - $('.add_lp_link', modal).on('click', function () {  
375 - var index = 0, max;  
376 - $.each(lpArray, function (i, obj) {  
377 - var lp = obj.value;  
378 - if (lp.indexOf('临') != -1) {  
379 - max = lp.substr(lp.indexOf('临') + 1);  
380 - if (!isNaN(max))  
381 - index = parseInt(max);  
382 - }  
383 - });  
384 -  
385 - var lpName = '临' + (index + 1);  
386 - var lineSelect = $('[name=xlBm_eq]', modal);  
387 - var rq = $('.h-s-time li.uk-active', modal).text(),  
388 - lineName = lineSelect[0].options[lineSelect[0].selectedIndex].text,//$('.h-s-line li.uk-active', modal).text(),  
389 - lineCode = lineSelect.val();  
390 -  
391 - var sch = {  
392 - scheduleDateStr: rq,  
393 - xlBm: lineCode,  
394 - xlName: lineName,  
395 - lpName: lpName  
396 - };  
397 -  
398 - open_modal(folder + '/h_add_temp_sch.html', {  
399 - sch: sch  
400 - }, modal_opts);  
401 - });  
402 -  
403 - /**  
404 - * 是否是临加路牌  
405 - * @param lpName  
406 - */  
407 - function is_new_temp_lp(lpName) {  
408 - if(lpName.indexOf('临') ==-1)  
409 - return false;  
410 -  
411 - for(var i=0,obj;obj=lpArray[i++];){  
412 - if(obj.value==lpName)  
413 - return false;  
414 - }  
415 -  
416 - return true;  
417 - }  
418 -  
419 -  
420 - var f = $('.search-form', modal);  
421 - var ep = EventProxy.create('query_comps', 'query_lines', function () {  
422 - $('[name=companyId]', f).trigger('change');//公司change  
423 - });  
424 - var comps;  
425 - //构建公司级联下拉框  
426 - $.get('/user/companyData', function (rs) {  
427 - comps = rs;  
428 - var opts = '';  
429 - for(var i=0,obj;obj=comps[i++];){  
430 - opts += '<option value="'+obj.companyCode+'">'+obj.companyName+'</option>';  
431 - }  
432 - $('[name=companyId]', f).html(opts);  
433 - ep.emit('query_comps');  
434 - });  
435 - var lineMapps;  
436 - //加载线路信息  
437 - $.get('/line/all', {'destroy_eq': 0}, function (rs) {  
438 - rs.sort(function (a, b) {  
439 - return a.name.localeCompare(b.name);  
440 - });  
441 - lineMapps={};  
442 - var k;  
443 - $.each(rs, function () {  
444 - k = this.company+'_'+this.brancheCompany;  
445 - if(!lineMapps[k])  
446 - lineMapps[k]=[];  
447 - lineMapps[k].push(this);  
448 - });  
449 -  
450 - ep.emit('query_lines');  
451 - });  
452 -  
453 - $('[name=companyId]', f).on('change', function () {  
454 - var code = $(this).val(), subs=[];  
455 - $.each(comps, function () {  
456 - if(this.companyCode==code)  
457 - subs=this.children;  
458 - });  
459 -  
460 - var opts='';  
461 - $.each(subs, function () {  
462 - opts += '<option value="'+this.code+'">'+this.name+'</option>';  
463 - });  
464 - $('[name=subCompanyId]', f).html(opts).trigger('change');  
465 - });  
466 -  
467 - $('[name=subCompanyId]', f).on('change', function () {  
468 - var k = $('[name=companyId]', f).val() + '_' + $(this).val();  
469 - var array = lineMapps[k];  
470 - var opts = '';  
471 - if(array){  
472 - $.each(array, function () {  
473 - opts += '<option value="'+this.lineCode+'">'+this.name+'</option>';  
474 - });  
475 - }  
476 - $('[name=xlBm_eq]', f).html(opts);  
477 - });  
478 -  
479 - $('[name=xlBm_eq]', f).on('change', clearLpSelect);  
480 - //clearLpSelect  
481 -  
482 -  
483 - /**  
484 - * 重新统计  
485 - */  
486 - $('#reCountBtn', modal).on('click', function () {  
487 - var lineSelect = $('[name=xlBm_eq]', modal);  
488 - var rq = $('.h-s-time li.uk-active', modal).text(),  
489 - lineName = lineSelect[0].options[lineSelect[0].selectedIndex].text,//$('.h-s-line li.uk-active', modal).text(),  
490 - lineCode = lineSelect.val();  
491 -  
492 - var that = this;  
493 - alt_confirm('确定要重新统计 ' + lineName + '('+rq+')的数据吗?',function () {  
494 - $(that).attr('disabled', 'disabled');  
495 - $(that).prepend('<i class="uk-icon-spinner uk-icon-spin"></i>');  
496 -  
497 -  
498 - var reCountEp = EventProxy.create('ylbUpdate', 'calcWaybill', 'scheduleDetail', function () {  
499 - $('i.uk-icon-spin', that).remove();  
500 - $(that).removeAttr('disabled');  
501 - notify_succ('重新统计成功!');  
502 - });  
503 -  
504 - //统计路单 -娄高峰  
505 - gb_common.$get('/calcWaybill/generateNew', {date:rq, line: lineCode}, function () {  
506 - reCountEp.emitLater('calcWaybill');  
507 - });  
508 -  
509 - //统计油 -廖磊  
510 - gb_common.$post('/ylb/updateHistory', {date:rq, line: lineCode}, function () {  
511 - reCountEp.emitLater('ylbUpdate');  
512 - });  
513 -  
514 - //重新统计班次明细  
515 - gb_common.$post('/sch/reCalc/scheduleDetail', {date:rq, line: lineCode}, function () {  
516 - reCountEp.emitLater('scheduleDetail');  
517 - });  
518 -  
519 - }, '我确定');  
520 - });  
521 - })();  
522 - </script> 1 +<div class="uk-modal " id="history-sch-maintain-modal" style="">
  2 + <div class="uk-modal-dialog" style="width: 95%;margin: 20px auto;">
  3 + <a href="" class="uk-modal-close uk-close"></a>
  4 + <div class="uk-modal-header">
  5 + <h2>历史路单维护</h2>
  6 + </div>
  7 +
  8 + <div style="padding-left: 12px;margin: 20px 0">
  9 + <ul class="uk-subnav uk-subnav-pill h-s-time">
  10 + </ul>
  11 + </div>
  12 +
  13 + <div class="uk-panel uk-panel-box uk-panel-box-primary">
  14 + <form class="uk-form search-form">
  15 + <input type="hidden" name="lineId"/>
  16 + <fieldset data-uk-margin>
  17 + <span class="horizontal-field">公司</span>
  18 + <select name="companyId" style="width: 110px;"></select>
  19 + <span class="horizontal-field">分公司</span>
  20 + <select name="subCompanyId" style="width: 110px;"></select>
  21 + <span class="horizontal-field">线路</span>
  22 + <select name="xlBm_eq" style="width: 120px;"></select>
  23 + <span class="horizontal-field">路牌</span>
  24 + <select name="lpName_eq" style="width: 80px;"></select>
  25 + <span class="horizontal-field">上下行</span>
  26 + <select name="xlDir_eq">
  27 + <option value="">全部</option>
  28 + <option value="0">上行</option>
  29 + <option value="1">下行</option>
  30 + </select>
  31 + &nbsp;
  32 + <span class="horizontal-field">车辆</span>
  33 + <div class="uk-autocomplete uk-form autocomplete-cars">
  34 + <input type="text" name="clZbh_like" placeholder="自编号" style="width: 80px;">
  35 + </div>
  36 + <span class="horizontal-field">驾驶员</span>
  37 + <div class="uk-autocomplete uk-form autocomplete-jsy">
  38 + <input type="text" name="jGh_like" placeholder="驾驶员" style="width: 80px;">
  39 + </div>
  40 + <button class="uk-button">检索</button>
  41 + <a class="add_lp_link" title="先点击检索后再临加路牌"><i class="uk-icon-plus"></i> 临加路牌</a>
  42 + <button id="reCountBtn" class="uk-button uk-button-danger uk-button-mini" style="position: absolute;right: 12px;bottom: 14px;">
  43 + 重新统计</button>
  44 + </fieldset>
  45 + </form>
  46 + </div>
  47 +
  48 + <div class="ct_table_wrap ct_table_no_border history-sch-wrap" style="height: 510px;">
  49 + <div class="ct_table history-sch-table">
  50 + <div class="ct_table_head">
  51 + <dl>
  52 + <dt>序号</dt>
  53 + <dt>路牌</dt>
  54 + <dt>车辆</dt>
  55 + <dt>驾驶员</dt>
  56 + <dt>起点</dt>
  57 + <dt>终点</dt>
  58 + <dt>计发</dt>
  59 + <dt>待发</dt>
  60 + <dt>实发</dt>
  61 + <dt>终点实达</dt>
  62 + <dt>备注</dt>
  63 + </dl>
  64 + </div>
  65 + <div class="ct_table_body">
  66 + </div>
  67 + </div>
  68 + </div>
  69 +
  70 + <div class="load-panel">
  71 + <i class="uk-icon-spinner uk-icon-spin"></i>
  72 + 正在加载数据
  73 + </div>
  74 + </div>
  75 +
  76 + <script id="history-sch-maintain-table-temp" type="text/html">
  77 + {{each list as sch i}}
  78 + <dl data-id="{{sch.id}}">
  79 + <dd>{{i + 1}}</dd>
  80 + <dd>{{sch.lpName}}</dd>
  81 + <dd>{{sch.clZbh}}</dd>
  82 + <dd>{{sch.jGh}}/{{sch.jName}}</dd>
  83 + <dd title="{{sch.qdzName}}">{{sch.qdzName}}</dd>
  84 + <dd title="{{sch.zdzName}}">{{sch.zdzName}}</dd>
  85 + <dd>{{sch.fcsj}}
  86 + {{if sch.bcType == "out"}}
  87 + <span class="uk-badge uk-badge-success">出场</span>
  88 + {{else if sch.bcType == "in"}}
  89 + <span class="uk-badge uk-badge-warning">进场</span>
  90 + {{else if sch.bcType == "venting"}}
  91 + <span class="uk-badge uk-badge-danger">直放</span>
  92 + {{else if sch.bcType == "major"}}
  93 + <span class="uk-badge uk-badge-danger">放站</span>
  94 + {{else if sch.bcType == "region"}}
  95 + <span class="uk-badge sch_region">区间</span>
  96 + {{else if sch.bcType == "ldks"}}
  97 + <span class="uk-badge sch_ldks">空驶</span>
  98 + {{/if}}
  99 + {{if sch.sflj}}
  100 + <span class="uk-badge uk-badge-danger">临加</span>
  101 + {{/if}}
  102 + {{if sch.cTasks.length > 0}}
  103 + <span class="uk-badge uk-badge-notification">{{sch.cTasks.length}}</span>
  104 + {{/if}}</dd>
  105 + <dd>
  106 + {{sch.dfsj}}
  107 + {{if sch.status==-1}}
  108 + <span class="uk-badge uk-badge-danger">烂班</span>
  109 + {{/if}}
  110 + </dd>
  111 + <dd>{{sch.fcsjActual}}<span class="fcsj-diff">{{sch.fcsj_diff}}</span></dd>
  112 + <dd>{{sch.zdsjActual}}</dd>
  113 + <dd title="{{sch.remarks}}">{{sch.remarks}}</dd>
  114 + </dl>
  115 + {{/each}}
  116 + </script>
  117 +
  118 + <script>
  119 + (function () {
  120 + var modal = '#history-sch-maintain-modal';
  121 +
  122 + //滚动条
  123 + $('.history-sch-wrap', modal).perfectScrollbar({suppressScrollX: true});
  124 + //history-sch-wrap
  125 + $(modal).on('init', function (e, data) {
  126 + e.stopPropagation();
  127 + $.get('/realSchedule/dateArray', function (rs) {
  128 + //日期tab
  129 + var tsStr = '';
  130 + $.each(rs, function (i) {
  131 + tsStr += '<li ' + (i == 0 ? 'class="uk-active"' : '') + '><a>' + this + '</a></li>';
  132 + });
  133 +
  134 + $('.h-s-time', modal).html(tsStr);
  135 + clearLpSelect();
  136 + //reLoadLp=true;
  137 + //jsQuery();
  138 + });
  139 + });
  140 +
  141 + $(modal).on('refresh', function (e, data) {
  142 + if(data){
  143 + var lpName = data.lpName;
  144 + if(is_new_temp_lp(lpName)){
  145 + $('[name=lpName_eq]', modal).append('<option value="'+lpName+'" selected>'+lpName+'</option>');
  146 + }
  147 + }
  148 + jsQuery();
  149 + });
  150 +
  151 + $(modal).on('click', '.h-s-time li,.h-s-line li', function () {
  152 + if(loading)
  153 + return;
  154 + $(this).parent().find('li.uk-active').removeClass('uk-active');
  155 + $(this).addClass('uk-active');
  156 + clearLpSelect();
  157 + //检索之前将滚动条置顶
  158 + $('.history-sch-wrap', modal)[0].scrollTop = 0;
  159 + jsQuery();
  160 + });
  161 +
  162 + $('.search-form', modal).on('submit', function (e) {
  163 + try {
  164 + //检索之前将滚动条置顶
  165 + $('.history-sch-wrap', modal)[0].scrollTop = 0;
  166 + jsQuery();
  167 + }catch(e){
  168 + console.log(e);
  169 + }
  170 + return false;
  171 + });
  172 +
  173 + var reLoadLp;
  174 + var nbbmArray,jsyArray,lpArray,loading;
  175 + var schArray;//主键映射
  176 + function jsQuery(cb) {
  177 + var data = $('.search-form', modal).serializeJSON();
  178 + data.companyId=null;
  179 + data.subCompanyId=null;
  180 + var rq = $('.h-s-time li.uk-active', modal).text();
  181 + data.scheduleDateStr_eq = rq;
  182 + if(!data.xlBm_eq)
  183 + return notify_err('请选择线路...');
  184 + if(data.jGh_like.indexOf('/')!=-1){
  185 + var jsy=data.jGh_like.split('/');
  186 + data.jGh_like=jsy[0];
  187 + data.jName_like=jsy[1];
  188 + }
  189 +
  190 + $('.load-panel', modal).show();
  191 + loading=true;
  192 + $.get('/realSchedule/all', data, function (rs) {
  193 + rs.sort(schedule_sort);
  194 + //可搜索的车辆自编号和驾驶员
  195 + nbbmArray=[];
  196 + jsyArray=[];
  197 + lpArray = [];
  198 + schArray = {};
  199 + $.each(rs, function () {
  200 + nbbmArray.push({value: this.clZbh});
  201 + jsyArray.push({value: this.jGh+'/'+this.jName,
  202 + fullChars: pinyin.getFullChars(this.jName).toUpperCase(),
  203 + camelChars: pinyin.getCamelChars(this.jName)});
  204 + lpArray.push({value: this.lpName});
  205 + calc_sch_real_shift(this);
  206 + schArray[this.id] = this;
  207 + });
  208 +
  209 + var tbodyStr = template('history-sch-maintain-table-temp', {list: rs});
  210 + $('.history-sch-table .ct_table_body', modal).html(tbodyStr);
  211 + //value
  212 + nbbmArray=distinctByField(nbbmArray);
  213 + jsyArray=distinctByField(jsyArray);
  214 + lpArray=distinctByField(lpArray);
  215 +
  216 + if(reLoadLp){
  217 + //路牌下拉框
  218 + var ops = '<option value="">全部</option>';
  219 + $.each(lpArray, function () {
  220 + ops += '<option value="'+this.value+'">'+this.value+'</option>';
  221 + });
  222 + $('[name=lpName_eq]', modal).html(ops);
  223 + reLoadLp = false;
  224 + }
  225 +
  226 + //lpName_eq
  227 + $('.load-panel', modal).hide();
  228 + loading=false;
  229 +
  230 + //更新滚动条高度
  231 + $('.history-sch-wrap', modal).perfectScrollbar('update');
  232 +
  233 + cb && cb();
  234 +
  235 + //初始化依赖数据
  236 + gb_data_basic.initData(data.xlBm_eq, data.lineId);
  237 + });
  238 + }
  239 +
  240 + function clearLpSelect() {
  241 + $('[name=lpName_eq]', modal).val('').html('');
  242 + $('[name=lineId]', modal).val($(this).data('id'));
  243 + reLoadLp = true;
  244 + }
  245 +
  246 + //nbbm autocomplete
  247 + var carAutoCom=$('.autocomplete-cars', modal);
  248 + UIkit.autocomplete(carAutoCom, {
  249 + minLength: 1,
  250 + delay: 50,
  251 + source: function(release) {
  252 + var q = $('input', carAutoCom).val().toUpperCase()
  253 + ,rs = [],
  254 + count = 0;
  255 + $.each(nbbmArray, function () {
  256 + if(this.value.indexOf(q) != -1){
  257 + rs.push(this);
  258 + count++;
  259 + }
  260 + if (count >= 15)
  261 + return false;
  262 + });
  263 + release && release(rs);
  264 + }
  265 + });
  266 +
  267 + //jsy autocomplete
  268 + var jsyAutoCom=$('.autocomplete-jsy', modal);
  269 + UIkit.autocomplete(jsyAutoCom, {
  270 + minLength: 1,
  271 + delay: 50,
  272 + source: function(release) {
  273 + var q = $('input', jsyAutoCom).val().toUpperCase()
  274 + ,rs = [],
  275 + count = 0;
  276 +
  277 + $.each(jsyArray, function() {
  278 + if (this.value.indexOf(q) != -1 || this.fullChars.indexOf(q) != -1 || this.camelChars.indexOf(q) != -1){
  279 + rs.push(this);
  280 + count++;
  281 + }
  282 +
  283 + if (count >= 10)
  284 + return false;
  285 + });
  286 + release && release(rs);
  287 + }
  288 + });
  289 +
  290 + function schedule_sort(s1, s2) {
  291 + return (s1.realExecDate+s1.fcsj).localeCompare(s2.realExecDate+s2.fcsj);
  292 + }
  293 +
  294 + function distinctByField(arr, f){
  295 + if(!f)
  296 + f = 'value';
  297 + var rs = {};
  298 + $.each(arr, function () {
  299 + rs[this[f]]=this;
  300 + });
  301 + return gb_common.get_vals(rs);
  302 + }
  303 +
  304 + gb_ct_table.fixedHead($('.ct_table_wrap', modal));
  305 +
  306 + //班次点击
  307 + $(modal).on('click contextmenu', '.history-sch-table .ct_table_body dl', function() {
  308 + $(this).parent().find('.active').removeClass('active');
  309 + $(this).addClass('active');
  310 + });
  311 +
  312 + var modal_opts = {center: false,bgclose: false, modal: false};
  313 + var folder = '/real_control_v2/fragments/north/nav/history_sch';
  314 + var callbackHandler={
  315 + edit: function(id){
  316 + open_modal(folder + '/editor.html', {id: id, parentModal: modal}, modal_opts);
  317 + },
  318 + add: function (id) {
  319 + open_modal(folder + '/h_add_temp_sch.html', {
  320 + sch: schArray[id]
  321 + }, modal_opts);
  322 + },
  323 + delete: function (id) {
  324 + var sch = schArray[id];
  325 + if (!sch || !sch.sflj)
  326 + return notify_err('只能删除临加班次!');
  327 + var str = '<h3>确定要删除临加班次<span style="color:red;margin: 0 5px;">' + sch.clZbh + '( ' + sch.dfsj + ' )</span>?</h3><h5 style="color: #6c6c6c;font-size: 12px;">班次删除后,调度指令会保留</h5>';
  328 + alt_confirm(str, function () {
  329 + gb_common.$del('/realSchedule/history/' + sch.id, function (rs) {
  330 + if($('.history-sch-table .ct_table_body dl', modal).length == 1){
  331 + $('[name=lpName_eq]', modal).val('');
  332 + reLoadLp = true;
  333 + }
  334 +
  335 + jsQuery();
  336 + });
  337 + }, '确定删除');
  338 + }
  339 + };
  340 +
  341 + //计算实发时间差值
  342 + var calc_sch_real_shift = function (sch) {
  343 + if (sch.fcsjActualTime) {
  344 + var diff = parseInt((sch.fcsjActualTime - sch.dfsjT) / 1000 / 60);
  345 + if (diff > 0)
  346 + sch.fcsj_diff = '( +' + diff + ' )';
  347 + else if (diff < 0)
  348 + sch.fcsj_diff = '( ' + diff + ' )';
  349 + else
  350 + sch.fcsj_diff = '';
  351 + }
  352 + };
  353 +
  354 + //右键菜单
  355 + $.contextMenu({
  356 + selector: modal+' .history-sch-table .ct_table_body dl',
  357 + className: 'schedule-ct-menu',
  358 + callback: function(key, options) {
  359 + var id = $('.context-menu-active', modal).data('id');
  360 + callbackHandler[key] && callbackHandler[key](id);
  361 + },
  362 + items: {
  363 + 'edit': {
  364 + name: '编辑'
  365 + },
  366 + 'add': {
  367 + name: '新增临加班次'
  368 + },
  369 + 'delete':{
  370 + name: '删除'
  371 + }
  372 + }
  373 + });
  374 +
  375 + //临加路牌
  376 + $('.add_lp_link', modal).on('click', function () {
  377 + var index = 0, max;
  378 + $.each(lpArray, function (i, obj) {
  379 + var lp = obj.value;
  380 + if (lp.indexOf('临') != -1) {
  381 + max = lp.substr(lp.indexOf('临') + 1);
  382 + if (!isNaN(max))
  383 + index = parseInt(max);
  384 + }
  385 + });
  386 +
  387 + var lpName = '临' + (index + 1);
  388 + var lineSelect = $('[name=xlBm_eq]', modal);
  389 + var rq = $('.h-s-time li.uk-active', modal).text(),
  390 + lineName = lineSelect[0].options[lineSelect[0].selectedIndex].text,//$('.h-s-line li.uk-active', modal).text(),
  391 + lineCode = lineSelect.val();
  392 +
  393 + var sch = {
  394 + scheduleDateStr: rq,
  395 + xlBm: lineCode,
  396 + xlName: lineName,
  397 + lpName: lpName
  398 + };
  399 +
  400 + open_modal(folder + '/h_add_temp_sch.html', {
  401 + sch: sch
  402 + }, modal_opts);
  403 + });
  404 +
  405 + /**
  406 + * 是否是临加路牌
  407 + * @param lpName
  408 + */
  409 + function is_new_temp_lp(lpName) {
  410 + if(lpName.indexOf('临') ==-1)
  411 + return false;
  412 +
  413 + for(var i=0,obj;obj=lpArray[i++];){
  414 + if(obj.value==lpName)
  415 + return false;
  416 + }
  417 +
  418 + return true;
  419 + }
  420 +
  421 +
  422 + var f = $('.search-form', modal);
  423 + var ep = EventProxy.create('query_comps', 'query_lines', function () {
  424 + $('[name=companyId]', f).trigger('change');//公司change
  425 + });
  426 + var comps;
  427 + //构建公司级联下拉框
  428 + $.get('/user/companyData', function (rs) {
  429 + comps = rs;
  430 + var opts = '';
  431 + for(var i=0,obj;obj=comps[i++];){
  432 + opts += '<option value="'+obj.companyCode+'">'+obj.companyName+'</option>';
  433 + }
  434 + $('[name=companyId]', f).html(opts);
  435 + ep.emit('query_comps');
  436 + });
  437 + var lineMapps;
  438 + //加载线路信息
  439 + $.get('/line/all', {'destroy_eq': 0}, function (rs) {
  440 + rs.sort(function (a, b) {
  441 + return a.name.localeCompare(b.name);
  442 + });
  443 + lineMapps={};
  444 + var k;
  445 + $.each(rs, function () {
  446 + k = this.company+'_'+this.brancheCompany;
  447 + if(!lineMapps[k])
  448 + lineMapps[k]=[];
  449 + lineMapps[k].push(this);
  450 + });
  451 +
  452 + ep.emit('query_lines');
  453 + });
  454 +
  455 + $('[name=companyId]', f).on('change', function () {
  456 + var code = $(this).val(), subs=[];
  457 + $.each(comps, function () {
  458 + if(this.companyCode==code)
  459 + subs=this.children;
  460 + });
  461 +
  462 + var opts='';
  463 + $.each(subs, function () {
  464 + opts += '<option value="'+this.code+'">'+this.name+'</option>';
  465 + });
  466 + $('[name=subCompanyId]', f).html(opts).trigger('change');
  467 + });
  468 +
  469 + $('[name=subCompanyId]', f).on('change', function () {
  470 + var k = $('[name=companyId]', f).val() + '_' + $(this).val();
  471 + var array = lineMapps[k];
  472 + var opts = '';
  473 + if(array){
  474 + $.each(array, function () {
  475 + opts += '<option value="'+this.lineCode+'" data-id="' + this.id + '">'+this.name+'</option>';
  476 + });
  477 + }
  478 + $('[name=xlBm_eq]', f).html(opts);
  479 + });
  480 +
  481 + $('[name=xlBm_eq]', f).on('change', clearLpSelect);
  482 + //clearLpSelect
  483 +
  484 +
  485 + /**
  486 + * 重新统计
  487 + */
  488 + $('#reCountBtn', modal).on('click', function () {
  489 + var lineSelect = $('[name=xlBm_eq]', modal);
  490 + var rq = $('.h-s-time li.uk-active', modal).text(),
  491 + lineName = lineSelect[0].options[lineSelect[0].selectedIndex].text,//$('.h-s-line li.uk-active', modal).text(),
  492 + lineCode = lineSelect.val();
  493 +
  494 + var that = this;
  495 + alt_confirm('确定要重新统计 ' + lineName + '('+rq+')的数据吗?',function () {
  496 + $(that).attr('disabled', 'disabled');
  497 + $(that).prepend('<i class="uk-icon-spinner uk-icon-spin"></i>');
  498 +
  499 +
  500 + var reCountEp = EventProxy.create('ylbUpdate', 'calcWaybill', 'scheduleDetail', function () {
  501 + $('i.uk-icon-spin', that).remove();
  502 + $(that).removeAttr('disabled');
  503 + notify_succ('重新统计成功!');
  504 + });
  505 +
  506 + //统计路单 -娄高峰
  507 + gb_common.$get('/calcWaybill/generateNew', {date:rq, line: lineCode}, function () {
  508 + reCountEp.emitLater('calcWaybill');
  509 + });
  510 +
  511 + //统计油 -廖磊
  512 + gb_common.$post('/ylb/updateHistory', {date:rq, line: lineCode}, function () {
  513 + reCountEp.emitLater('ylbUpdate');
  514 + });
  515 +
  516 + //重新统计班次明细
  517 + gb_common.$post('/sch/reCalc/scheduleDetail', {date:rq, line: lineCode}, function () {
  518 + reCountEp.emitLater('scheduleDetail');
  519 + });
  520 +
  521 + }, '我确定');
  522 + });
  523 + })();
  524 + </script>
523 </div> 525 </div>
524 \ No newline at end of file 526 \ No newline at end of file
src/main/resources/static/pages/history_sch/edit/js/data_basic.js
1 -/* 基础数据管理模块 */  
2 -  
3 -var gb_data_basic = (function () {  
4 -  
5 - var allPersonnel;  
6 - var stationRoutes, lineInformations, codeToLine={};  
7 - var ep = EventProxy.create("all_personnel"  
8 - , function (all_personnel) {  
9 - allPersonnel = all_personnel;  
10 - //gb_main_ep.emitLater('data-basic');  
11 - });  
12 -  
13 -/* //线路标准信息  
14 - gb_common.$get('/lineInformation/line/multi', {lineCodes: line_idx}, function (rs) {  
15 - var informations = {};  
16 - $.each(rs, function () {  
17 - informations[this.line.lineCode] = this;  
18 - delete this['line'];  
19 - });  
20 - ep.emit('lineInformations', informations);  
21 - });*/  
22 -  
23 - //人员信息  
24 - loadAllPersonnel(function (data) {  
25 - ep.emit('all_personnel', data);  
26 - });  
27 - function loadAllPersonnel(cb) {  
28 - $.get('/personnel/all_py', function (rs) {  
29 - //转换成自动补全组件需要的数据  
30 - var data = [], code;  
31 - for(var i =0, p; p = rs[i++];){  
32 - code = p['workId'].indexOf('-')!=-1?p['workId'].split('-')[1]:p['workId'];  
33 - data.push({  
34 - value: code + '/' + p.name,  
35 - fullChars: p.fullChars.toUpperCase(),  
36 - camelChars: p.camelChars.toUpperCase()  
37 - });  
38 - }  
39 - cb && cb(data);  
40 - });  
41 - }  
42 -  
43 - var carparks = {};  
44 - //停车场数据  
45 - gb_common.$get('/realMap/carParkSpatialData', {}, function (rs) {  
46 - rs.list.sort(function (a, b) {  
47 - return a.parkName.localeCompare(b.parkName);  
48 - });  
49 - $.each(rs.list, function () {  
50 - carparks[this.parkCode] = this;  
51 - });  
52 - });  
53 -  
54 - //车辆数据  
55 - var carsArray;  
56 - $.get('/basic/cars?t=' + Math.random(), function (rs) {  
57 - carsArray = rs;  
58 - });  
59 -  
60 - var getCarparkByCode = function (code) {  
61 - return carparks[code];  
62 - };  
63 -  
64 - //line code to name  
65 - $.get('/basic/lineCode2Name', function (rs) {  
66 - ep.emit('lineCode2Name', rs);  
67 - });  
68 -  
69 - var getLineInformation = function (lineCode) {  
70 - return lineInformations[lineCode];  
71 - };  
72 -  
73 - var stationRouteSort = function (a, b) {  
74 - return a.stationRouteCode - b.stationRouteCode;  
75 - };  
76 -  
77 - function findLineByCodes(codeArr) {  
78 - var rs = [];  
79 - $.each(codeArr, function () {  
80 - rs.push(codeToLine[this]);  
81 - });  
82 - return rs;  
83 - }  
84 -  
85 - return {  
86 - getLineInformation: getLineInformation,  
87 - allInformations: function () {  
88 - return {};  
89 - },  
90 - allPersonnel: function () {  
91 - return allPersonnel;  
92 - },  
93 - getSvgAttr: function (lineCode) {  
94 - return svgAttrs[lineCode];  
95 - },  
96 - //刷新员工信息  
97 - refreshAllPersonnel: function (cb) {  
98 - loadAllPersonnel(function (data) {  
99 - allPersonnel = data;  
100 - cb && cb();  
101 - });  
102 - },  
103 - carsArray: function () {  
104 - return carsArray;  
105 - },  
106 - simpleParksArray: function () {  
107 - var map = {};  
108 - for(var code in carparks)  
109 - map[code] = carparks[code].parkName;  
110 - return map;  
111 - },  
112 - getLineInformation: getLineInformation,  
113 - allInformations: function () {  
114 - return lineInformations;  
115 - },  
116 - stationRoutes: function (lineCode) {  
117 - return stationRoutes[lineCode]  
118 - },  
119 - remarksMapps: function () {  
120 - return "";  
121 - },  
122 - findLineByCodes: findLineByCodes,  
123 - //初始化依赖数据  
124 - initData: function (lineCode) {  
125 - var ep = EventProxy.create("stationRoutes", "lineInformations", "codeToLineMap", function (routes, informations, _codeToLine) {  
126 - stationRoutes = routes;  
127 - lineInformations = informations;  
128 - codeToLine[_codeToLine.lineCode] = _codeToLine;  
129 - });  
130 -  
131 - //站点路由  
132 - gb_common.$get('/stationroute/multiLine', {lineIds: lineCode}, function (rs) {  
133 - var list = rs.list;  
134 - var routeData = gb_common.groupBy(list, 'lineCode');  
135 - //排序  
136 - for (var lineCode in routeData) {  
137 - routeData[lineCode].sort(stationRouteSort);  
138 - }  
139 - ep.emitLater('stationRoutes', routeData);  
140 - });  
141 -  
142 - //线路标准信息  
143 - gb_common.$get('/lineInformation/line/multi', {lineCodes: lineCode}, function (rs) {  
144 - var _informations = {};  
145 - $.each(rs, function () {  
146 - _informations[this.line.lineCode] = this;  
147 - delete this['line'];  
148 - });  
149 - ep.emitLater('lineInformations', _informations);  
150 - });  
151 -  
152 - //线路基础信息  
153 - gb_common.$get('/line/' + lineCode, {}, function (rs) {  
154 - ep.emitLater('codeToLineMap', rs);  
155 - });  
156 - }  
157 - };  
158 -})(); 1 +/* 基础数据管理模块 */
  2 +
  3 +var gb_data_basic = (function () {
  4 +
  5 + var allPersonnel;
  6 + var stationRoutes, lineInformations, codeToLine={};
  7 + var ep = EventProxy.create("all_personnel"
  8 + , function (all_personnel) {
  9 + allPersonnel = all_personnel;
  10 + //gb_main_ep.emitLater('data-basic');
  11 + });
  12 +
  13 +/* //线路标准信息
  14 + gb_common.$get('/lineInformation/line/multi', {lineCodes: line_idx}, function (rs) {
  15 + var informations = {};
  16 + $.each(rs, function () {
  17 + informations[this.line.lineCode] = this;
  18 + delete this['line'];
  19 + });
  20 + ep.emit('lineInformations', informations);
  21 + });*/
  22 +
  23 + //人员信息
  24 + loadAllPersonnel(function (data) {
  25 + ep.emit('all_personnel', data);
  26 + });
  27 + function loadAllPersonnel(cb) {
  28 + $.get('/personnel/all_py', function (rs) {
  29 + //转换成自动补全组件需要的数据
  30 + var data = [], code;
  31 + for(var i =0, p; p = rs[i++];){
  32 + code = p['workId'].indexOf('-')!=-1?p['workId'].split('-')[1]:p['workId'];
  33 + data.push({
  34 + value: code + '/' + p.name,
  35 + fullChars: p.fullChars.toUpperCase(),
  36 + camelChars: p.camelChars.toUpperCase()
  37 + });
  38 + }
  39 + cb && cb(data);
  40 + });
  41 + }
  42 +
  43 + var carparks = {};
  44 + //停车场数据
  45 + gb_common.$get('/realMap/carParkSpatialData', {}, function (rs) {
  46 + rs.list.sort(function (a, b) {
  47 + return a.parkName.localeCompare(b.parkName);
  48 + });
  49 + $.each(rs.list, function () {
  50 + carparks[this.parkCode] = this;
  51 + });
  52 + });
  53 +
  54 + //车辆数据
  55 + var carsArray;
  56 + $.get('/basic/cars?t=' + Math.random(), function (rs) {
  57 + carsArray = rs;
  58 + });
  59 +
  60 + var getCarparkByCode = function (code) {
  61 + return carparks[code];
  62 + };
  63 +
  64 + //line code to name
  65 + $.get('/basic/lineCode2Name', function (rs) {
  66 + ep.emit('lineCode2Name', rs);
  67 + });
  68 +
  69 + var getLineInformation = function (lineCode) {
  70 + return lineInformations[lineCode];
  71 + };
  72 +
  73 + var stationRouteSort = function (a, b) {
  74 + return a.stationRouteCode - b.stationRouteCode;
  75 + };
  76 +
  77 + function findLineByCodes(codeArr) {
  78 + var rs = [];
  79 + $.each(codeArr, function () {
  80 + rs.push(codeToLine[this]);
  81 + });
  82 + return rs;
  83 + }
  84 +
  85 + return {
  86 + getLineInformation: getLineInformation,
  87 + allInformations: function () {
  88 + return {};
  89 + },
  90 + allPersonnel: function () {
  91 + return allPersonnel;
  92 + },
  93 + getSvgAttr: function (lineCode) {
  94 + return svgAttrs[lineCode];
  95 + },
  96 + //刷新员工信息
  97 + refreshAllPersonnel: function (cb) {
  98 + loadAllPersonnel(function (data) {
  99 + allPersonnel = data;
  100 + cb && cb();
  101 + });
  102 + },
  103 + carsArray: function () {
  104 + return carsArray;
  105 + },
  106 + simpleParksArray: function () {
  107 + var map = {};
  108 + for(var code in carparks)
  109 + map[code] = carparks[code].parkName;
  110 + return map;
  111 + },
  112 + getLineInformation: getLineInformation,
  113 + allInformations: function () {
  114 + return lineInformations;
  115 + },
  116 + stationRoutes: function (lineCode) {
  117 + return stationRoutes[lineCode]
  118 + },
  119 + remarksMapps: function () {
  120 + return "";
  121 + },
  122 + findLineByCodes: findLineByCodes,
  123 + //初始化依赖数据
  124 + initData: function (lineCode, lineId) {
  125 + var ep = EventProxy.create("stationRoutes", "lineInformations", "codeToLineMap", function (routes, informations, _codeToLine) {
  126 + stationRoutes = routes;
  127 + lineInformations = informations;
  128 + codeToLine[_codeToLine.lineCode] = _codeToLine;
  129 + });
  130 +
  131 + //站点路由
  132 + gb_common.$get('/stationroute/multiLine', {lineIds: lineCode}, function (rs) {
  133 + var list = rs.list;
  134 + var routeData = gb_common.groupBy(list, 'lineCode');
  135 + //排序
  136 + for (var lineCode in routeData) {
  137 + routeData[lineCode].sort(stationRouteSort);
  138 + }
  139 + ep.emitLater('stationRoutes', routeData);
  140 + });
  141 +
  142 + //线路标准信息
  143 + gb_common.$get('/lineInformation/line/multi', {lineCodes: lineCode}, function (rs) {
  144 + var _informations = {};
  145 + $.each(rs, function () {
  146 + _informations[this.line.lineCode] = this;
  147 + delete this['line'];
  148 + });
  149 + ep.emitLater('lineInformations', _informations);
  150 + });
  151 +
  152 + //线路基础信息
  153 + gb_common.$get('/line/' + lineId, {}, function (rs) {
  154 + ep.emitLater('codeToLineMap', rs);
  155 + });
  156 + }
  157 + };
  158 +})();