Commit 7481b893118193b27fa7fc2d883e4ba34667aa22

Authored by 廖磊
2 parents 8a181c1f 06276a73

Merge branch 'minhang' of

http://222.66.0.204:8090/panzhaov5/bsth_control into minhang
src/main/resources/static/pages/base/timesmodel/js/base-fun.js
@@ -229,7 +229,7 @@ var BaseFun = function() { @@ -229,7 +229,7 @@ var BaseFun = function() {
229 * @return : 返回一个数值。这里返回的是行驶时间数值 229 * @return : 返回一个数值。这里返回的是行驶时间数值
230 * 230 *
231 * */ 231 * */
232 - getxssj : function(zg,wg,sj,pc,gf,dir) { 232 + getByDirTravelTime : function(zg,wg,sj,pc,gf,dir) {
233 var xxsj = 0; 233 var xxsj = 0;
234 if(baseF.isgfsjd(zg[0].st,zg[0].ed,sj) || baseF.isgfsjd(wg[0].st,wg[0].ed,sj)) 234 if(baseF.isgfsjd(zg[0].st,zg[0].ed,sj) || baseF.isgfsjd(wg[0].st,wg[0].ed,sj))
235 xxsj = gf[dir]; 235 xxsj = gf[dir];
@@ -303,7 +303,7 @@ var BaseFun = function() { @@ -303,7 +303,7 @@ var BaseFun = function() {
303 dataMap.dira[cctag],xhNo++,0,gatps,0,null,null,null,0,0));// 晚餐班次 303 dataMap.dira[cctag],xhNo++,0,gatps,0,null,null,null,0,0));// 晚餐班次
304 } 304 }
305 var tzsj = dataMap.ztjxA[cctag]; 305 var tzsj = dataMap.ztjxA[cctag];
306 - var _xxsj = baseF.getxssj(dataMap.zgfsjd,dataMap.wgfsjd,kssj,dataMap.pcxssjArr,dataMap.gfxxsjArr,cctag);// 获取行驶时间 306 + var _xxsj = baseF.getByDirTravelTime(dataMap.zgfsjd,dataMap.wgfsjd,kssj,dataMap.pcxssjArr,dataMap.gfxxsjArr,cctag);// 获取行驶时间
307 var tzsj = baseF.isLastbc(kssj,endTime,tzsj,_xxsj) ? 0 : tzsj; 307 var tzsj = baseF.isLastbc(kssj,endTime,tzsj,_xxsj) ? 0 : tzsj;
308 jsonArray.push(baseF.getbcObj( 308 jsonArray.push(baseF.getbcObj(
309 kssj,_xxsj,carArray[a],dataMap.bcTypeArr.normal, 309 kssj,_xxsj,carArray[a],dataMap.bcTypeArr.normal,
@@ -325,21 +325,7 @@ var BaseFun = function() { @@ -325,21 +325,7 @@ var BaseFun = function() {
325 }, 325 },
326 326
327 /** 327 /**
328 - * @description (TODO) 剔除不在上、下行时间范围内的班次.  
329 - *  
330 - *  
331 - */  
332 - tcbzfwndbc02 : function(jsonArray,dataMap) {  
333 - var _obj = baseF.getsxAndxxbc(jsonArray,dataMap);  
334 - // 剔除上行不在时间范围内的班次  
335 - baseF.tcbc(_obj.sxbc,dataMap.smbcsjArr[0].kssj,dataMap.smbcsjArr[0].jssj);  
336 - // 剔除下行不在时间范围内的班次  
337 - baseF.tcbc(_obj.xxbc,dataMap.smbcsjArr[1].kssj,dataMap.smbcsjArr[1].jssj);  
338 - return _obj.sxbc.concat(_obj.xxbc);  
339 - },  
340 -  
341 - /**  
342 - * @description : (TODO) 调整某班型下的各个路牌对应的班次以及工时、停站时间、是否分班. 328 + * @description : (TODO) 调整某班型下的各个路牌对应的班次以及工时、停站时间、是否分班. -- 这里我们也叫抽车
343 * @param bxlpbc 班型下的各个路牌的所有班次数组. 329 * @param bxlpbc 班型下的各个路牌的所有班次数组.
344 * @param map 表单参数信息 330 * @param map 表单参数信息
345 * @param dataMap 封装的 以上、下行方向成对存在的 一些参数数组 [下标0 -- 代表上行 ; 下标1 -- 代表下行]. 331 * @param dataMap 封装的 以上、下行方向成对存在的 一些参数数组 [下标0 -- 代表上行 ; 下标1 -- 代表下行].
@@ -396,30 +382,33 @@ var BaseFun = function() { @@ -396,30 +382,33 @@ var BaseFun = function() {
396 * 382 *
397 * 383 *
398 **/ 384 **/
399 - tzlpgs02 : function(bxlpbc , map , dataMap , saa , cara , bxrcObj , dgminpcs) { 385 + abstractBcByWorkTime : function(bxlpbc , map , dataMap , saa , cara , bxrcObj , dgminpcs) {
400 var rsultA = new Array(); 386 var rsultA = new Array();
401 for(var a = 0 ; a < bxlpbc.length ; a++) { 387 for(var a = 0 ; a < bxlpbc.length ; a++) {
402 - // 定义该版型下对应的路牌的班次数组、班次数组长度。  
403 - var lpbc = bxlpbc[a].lpbc, lpbclen_; 388 + /*if(a>0)
  389 + continue;*/
  390 + // 定义该版型下对应的路牌的班次数组、班次数组长度、该路牌上是否有首末班车。
  391 + var lpbc = bxlpbc[a].lpbc, lpbclen_ = lpbc.length;
  392 + if(lpbclen_<=0)
  393 + continue;
  394 + var isFlag = baseF.lpDownIsHaveFirstAndLastBc(lpbc , dataMap.smbcsjArr);
404 // 定义当前路牌的初始工时、班型对应的标准工时 395 // 定义当前路牌的初始工时、班型对应的标准工时
405 - var initCountGs = bxlpbc[a].initCountGs ,bzgs = bxlpbc[a].bzgs; 396 + var initCountGs = bxlpbc[a].initCountGs , bzgs = bxlpbc[a].bzgs;
406 // 定义初始工时与日平均工时差值 397 // 定义初始工时与日平均工时差值
407 var initdx = initCountGs - bxlpbc[a].gsavg; 398 var initdx = initCountGs - bxlpbc[a].gsavg;
408 // 定义剔除班次数、剔除的时间段. 399 // 定义剔除班次数、剔除的时间段.
409 var deletebcNum = Math.ceil((initCountGs - bxlpbc[a].gsavg) / saa[0].zzsj.dgzzsj) , tcbcgzA = new Array(); 400 var deletebcNum = Math.ceil((initCountGs - bxlpbc[a].gsavg) / saa[0].zzsj.dgzzsj) , tcbcgzA = new Array();
410 // var deletebcNum = parseInt((initCountGs - bxlpbc[a].gsavg) / saa[0].zzsj.dgzzsj) , tcbcgzA = new Array(); 401 // var deletebcNum = parseInt((initCountGs - bxlpbc[a].gsavg) / saa[0].zzsj.dgzzsj) , tcbcgzA = new Array();
411 if(bxrcObj.type == '五工二休') { 402 if(bxrcObj.type == '五工二休') {
412 - if(lpbclen_>0) {  
413 - // 定义晚高峰后能剔除多少班次数.  
414 - var wgfhtcbcNum = parseInt(( dataMap.wgfzhsjd[0].ed - dataMap.wgfsjd[0].ed ) / (60000 * saa[0].zzsj.dgzzsj));  
415 - // 定义时间段内剔除班次规则.  
416 - tcbcgzA.push({'minsj': dataMap.wgfsjd[0].ed , 'maxsj' : dataMap.wgfzhsjd[0].ed , 'deletebcNum' : wgfhtcbcNum},  
417 - {'minsj': dataMap.zgfsjd[0].ed , 'maxsj' : dataMap.wgfsjd[0].st , 'deletebcNum' : deletebcNum - wgfhtcbcNum});  
418 - // 逆序排序剔除.  
419 - lpbc.sort(function(r,s){return s.fcno-r.fcno});  
420 - // 剔除不在高峰时间段内的班次.  
421 - baseF.spliceBc02(lpbc , tcbcgzA , dataMap , 'desc' , true);  
422 - } 403 + // 定义晚高峰后能剔除多少班次数.
  404 + var wgfhtcbcNum = parseInt(( dataMap.wgfzhsjd[0].ed - dataMap.wgfsjd[0].ed ) / (60000 * saa[0].zzsj.dgzzsj));
  405 + // 定义时间段内剔除班次规则.
  406 + tcbcgzA.push({'minsj': dataMap.wgfsjd[0].ed , 'maxsj' : dataMap.wgfzhsjd[0].ed ,'order' : 'desc' , 'deletebcNum' : wgfhtcbcNum},
  407 + {'minsj': dataMap.zgfsjd[0].ed , 'maxsj' : dataMap.wgfsjd[0].st , 'order' : 'asc' , 'deletebcNum' : deletebcNum - wgfhtcbcNum});
  408 + // 逆序排序剔除.
  409 + // lpbc.sort(function(r,s){return s.fcno-r.fcno});
  410 + // 剔除不在高峰时间段内的班次.
  411 + baseF.spliceBc02(lpbc , tcbcgzA , dataMap , 'desc' , false);
423 }else { 412 }else {
424 /*console.log(bxlpbc[a].lpNo , initCountGs , bzgs , saa[0].zzsj.dgzzsj , 413 /*console.log(bxlpbc[a].lpNo , initCountGs , bzgs , saa[0].zzsj.dgzzsj ,
425 initCountGs - bzgs , (initCountGs - bzgs) /saa[0].zzsj.dgzzsj , 414 initCountGs - bzgs , (initCountGs - bzgs) /saa[0].zzsj.dgzzsj ,
@@ -430,72 +419,92 @@ var BaseFun = function() { @@ -430,72 +419,92 @@ var BaseFun = function() {
430 // 为了满足工时的要求,在低谷断开一段时间. 419 // 为了满足工时的要求,在低谷断开一段时间.
431 if(dgminpcs>0 && dgminpcs <= bxrcObj.fpcls ) { 420 if(dgminpcs>0 && dgminpcs <= bxrcObj.fpcls ) {
432 if( (a + 1) <= dgminpcs) { 421 if( (a + 1) <= dgminpcs) {
433 - var dgzjsj = baseF.getDateTime('12:30'); 422 + var dgzjsj = baseF.getDateTime('13:00');
434 /*var zgfyh = dataMap.zgfsjd[0].ed; 423 /*var zgfyh = dataMap.zgfsjd[0].ed;
435 zgfyh.setMinutes(zgfyh.getMinutes()+ Math.min.apply(null, dataMap.dgxxsjArr));*/ 424 zgfyh.setMinutes(zgfyh.getMinutes()+ Math.min.apply(null, dataMap.dgxxsjArr));*/
436 if( a % 2 == 0) { 425 if( a % 2 == 0) {
437 // 定义早高峰结束 ~ 12:30 剔除规则.如果剔除的班次数不够,则去晚高峰之后剔除剩下的班次. 426 // 定义早高峰结束 ~ 12:30 剔除规则.如果剔除的班次数不够,则去晚高峰之后剔除剩下的班次.
438 var swmaxtcbcNum = parseInt(( dgzjsj - dataMap.zgfsjd[0].ed) / (60000 * saa[0].zzsj.dgzzsj)); 427 var swmaxtcbcNum = parseInt(( dgzjsj - dataMap.zgfsjd[0].ed) / (60000 * saa[0].zzsj.dgzzsj));
439 - if(deletebcNum < swmaxtcbcNum) { 428 + if(deletebcNum < swmaxtcbcNum || isFlag) {
440 // tcbcgzA.push({'minsj': dataMap.zgfsjd[0].ed , 'maxsj' : dgzjsj , 'order' : 'asc' , 'deletebcNum' : deletebcNum}); 429 // tcbcgzA.push({'minsj': dataMap.zgfsjd[0].ed , 'maxsj' : dgzjsj , 'order' : 'asc' , 'deletebcNum' : deletebcNum});
441 - tcbcgzA.push({'minsj': dataMap.zgfsjd[0].ed , 'maxsj' : dgzjsj , 'order' : 'asc' , 'deletebcNum' : deletebcNum}); 430 + tcbcgzA.push({'minsj': dataMap.zgfsjd[0].ed , 'maxsj' : dgzjsj , 'order' : 'asc' , 'deletebcNum' : swmaxtcbcNum});
442 }else { 431 }else {
443 tcbcgzA.push({'minsj': dataMap.zgfsjd[0].ed, 'maxsj' : dgzjsj , 'order' : 'asc' , 'deletebcNum' : swmaxtcbcNum}, 432 tcbcgzA.push({'minsj': dataMap.zgfsjd[0].ed, 'maxsj' : dgzjsj , 'order' : 'asc' , 'deletebcNum' : swmaxtcbcNum},
444 {'minsj': dataMap.wgfsjd[0].ed , 'maxsj' : dataMap.wgfzhsjd[0].ed, 'order' : 'desc' , 'deletebcNum' : deletebcNum - swmaxtcbcNum}); 433 {'minsj': dataMap.wgfsjd[0].ed , 'maxsj' : dataMap.wgfzhsjd[0].ed, 'order' : 'desc' , 'deletebcNum' : deletebcNum - swmaxtcbcNum});
445 } 434 }
446 - // tcbcgzA.push({'minsj': dataMap.zgfsjd[0].ed , 'maxsj' : dgzjsj , 'order' : 'asc' , 'deletebcNum' : deletebcNum});  
447 }else { 435 }else {
448 // 定义12:30 ~ 晚高峰开始以前剔除规则. 如果剔除的班次数不够,则去晚高峰之后剔除剩下的班次. 436 // 定义12:30 ~ 晚高峰开始以前剔除规则. 如果剔除的班次数不够,则去晚高峰之后剔除剩下的班次.
449 var xwmaxtcbcNum = parseInt(( dataMap.wgfsjd[0].st - dgzjsj) / (60000 * saa[0].zzsj.dgzzsj)); 437 var xwmaxtcbcNum = parseInt(( dataMap.wgfsjd[0].st - dgzjsj) / (60000 * saa[0].zzsj.dgzzsj));
450 - if(deletebcNum < xwmaxtcbcNum) {  
451 - tcbcgzA.push({'minsj': dgzjsj , 'maxsj' : dataMap.wgfsjd[0].st , 'order' : 'desc', 'deletebcNum' : deletebcNum}); 438 + if(deletebcNum < xwmaxtcbcNum || isFlag) {
  439 + tcbcgzA.push({'minsj': dgzjsj , 'maxsj' : dataMap.wgfsjd[0].st , 'order' : 'desc', 'deletebcNum' : xwmaxtcbcNum});
452 }else { 440 }else {
453 tcbcgzA.push({'minsj': dataMap.wgfsjd[0].ed , 'maxsj' : dataMap.wgfzhsjd[0].ed , 'order' : 'desc', 'deletebcNum' : deletebcNum - xwmaxtcbcNum}, 441 tcbcgzA.push({'minsj': dataMap.wgfsjd[0].ed , 'maxsj' : dataMap.wgfzhsjd[0].ed , 'order' : 'desc', 'deletebcNum' : deletebcNum - xwmaxtcbcNum},
454 {'minsj': dgzjsj , 'maxsj' : dataMap.wgfsjd[0].st , 'order' : 'desc', 'deletebcNum' : xwmaxtcbcNum}); 442 {'minsj': dgzjsj , 'maxsj' : dataMap.wgfsjd[0].st , 'order' : 'desc', 'deletebcNum' : xwmaxtcbcNum});
455 } 443 }
456 - // tcbcgzA.push({'minsj': dgzjsj , 'maxsj' : dataMap.wgfsjd[0].st , 'order' : 'desc', 'deletebcNum' : deletebcNum});  
457 } 444 }
458 // 按规则剔除班次.并且分班.路牌班次断开. 445 // 按规则剔除班次.并且分班.路牌班次断开.
459 baseF.spliceBc02(lpbc , tcbcgzA , dataMap , true); 446 baseF.spliceBc02(lpbc , tcbcgzA , dataMap , true);
460 }else { 447 }else {
461 // 按规则剔除班次.不分班.路牌班次不会断开. 448 // 按规则剔除班次.不分班.路牌班次不会断开.
462 - baseF.isdk02(lpbc , dataMap , deletebcNum , false); 449 + baseF.isdk02(lpbc , dataMap , saa , deletebcNum , false);
463 } 450 }
464 // 该班型下的路牌 不存在分班路牌. 451 // 该班型下的路牌 不存在分班路牌.
465 }else if(dgminpcs == 0){ 452 }else if(dgminpcs == 0){
466 // 按规则剔除班次.不分班.路牌班次不会断开. 453 // 按规则剔除班次.不分班.路牌班次不会断开.
467 - baseF.isdk02(lpbc , dataMap , deletebcNum , false); 454 + baseF.isdk02(lpbc , dataMap , saa , deletebcNum , false);
468 } 455 }
469 // 双档 一个路牌两档劳动力 456 // 双档 一个路牌两档劳动力
470 }else if(bxlpbc[a].keepOff==2) { 457 }else if(bxlpbc[a].keepOff==2) {
471 // 按规则剔除班次.分班.但是路牌班次不会断开. 458 // 按规则剔除班次.分班.但是路牌班次不会断开.
472 - baseF.isdk02(lpbc , dataMap , deletebcNum , true); 459 + baseF.isdk02(lpbc , dataMap , saa , deletebcNum , true);
473 } 460 }
474 } 461 }
475 rsultA = rsultA.concat(lpbc); 462 rsultA = rsultA.concat(lpbc);
476 } 463 }
477 return rsultA; 464 return rsultA;
478 }, 465 },
  466 + /**
  467 + * @description (TODO) 判断某路牌下是否存在首末班车时间班次.
  468 + * @param arr 某路牌下的班次.
  469 + * @param smbcsjArr 首末班车时间点数组集合.
  470 + */
  471 + lpDownIsHaveFirstAndLastBc : function(arr , smbcsjArr) {
  472 + for(var a = 0 ; a < arr.length ; a++) {
  473 + for(var s = 0 ; s < smbcsjArr.length ; s++) {
  474 + if(arr[a].fcsj == smbcsjArr[s].kssj || arr[a].fcsj == smbcsjArr[s].jssj)
  475 + return true;
  476 + }
  477 + }
  478 + return false;
  479 + },
479 480
480 /** 481 /**
481 * @description (TODO) 定义不断开班次的路牌剔除规则. 482 * @description (TODO) 定义不断开班次的路牌剔除规则.
482 * 483 *
483 * 484 *
484 */ 485 */
485 - isdk02 : function(lpbc , dataMap , deletebcNum , isfb) {  
486 - if(deletebcNum > 0) {  
487 - var zgfzqtcbcNum = parseInt(( dataMap.zgfzqsjd[0].ed - dataMap.zgfzqsjd[0].st ) / (60000 * saa[0].zzsj.dgzzsj)),  
488 - wgfhtcbcNum = parseInt(( dataMap.wgfzhsjd[0].ed - dataMap.wgfzhsjd[0].st ) / (60000 * saa[0].zzsj.dgzzsj))  
489 - tcbcgzA = new Array();  
490 - if( wgfhtcbcNum >= deletebcNum) { 486 + isdk02 : function(lpbc , dataMap , saa , deletebcNum , isfb) {
  487 + if(lpbc.length > 0 && deletebcNum > 0) {
  488 + lpbc.sort(function(r,s){return r.fcint-s.fcint});
  489 + var tcbcgzA = new Array();
  490 + debugger;
  491 + if(lpbc[0].fcsj == dataMap.smbcsjArr[0].kssj || lpbc[0].fcsj == dataMap.smbcsjArr[1].kssj) {
491 tcbcgzA.push({'minsj': dataMap.wgfzhsjd[0].st , 'maxsj' : dataMap.wgfzhsjd[0].ed , 'order' : 'desc', 'deletebcNum' : deletebcNum}); 492 tcbcgzA.push({'minsj': dataMap.wgfzhsjd[0].st , 'maxsj' : dataMap.wgfzhsjd[0].ed , 'order' : 'desc', 'deletebcNum' : deletebcNum});
492 - }else if(zgfzqtcbcNum >= deletebcNum){ 493 + }else if(lpbc[lpbc.length-1].fcsj == dataMap.smbcsjArr[0].jssj || lpbc[0].fcsj == dataMap.smbcsjArr[1].jssj) {
493 tcbcgzA.push({'minsj': dataMap.zgfzqsjd[0].st , 'maxsj' : dataMap.zgfzqsjd[0].ed , 'order' : 'asc', 'deletebcNum' : deletebcNum}); 494 tcbcgzA.push({'minsj': dataMap.zgfzqsjd[0].st , 'maxsj' : dataMap.zgfzqsjd[0].ed , 'order' : 'asc', 'deletebcNum' : deletebcNum});
494 - }else if(deletebcNum >= (zgfzqtcbcNum + wgfhtcbcNum)){ 495 + }else {
  496 + var zgfzqtcbcNum = parseInt(( dataMap.zgfzqsjd[0].ed - dataMap.zgfzqsjd[0].st ) / (60000 * saa[0].zzsj.dgzzsj)),
  497 + wgfhtcbcNum = parseInt(( dataMap.wgfzhsjd[0].ed - dataMap.wgfzhsjd[0].st ) / (60000 * saa[0].zzsj.dgzzsj));
495 tcbcgzA.push({'minsj': dataMap.wgfzhsjd[0].st , 'maxsj' : dataMap.wgfzhsjd[0].ed , 'order' : 'desc', 'deletebcNum' : wgfhtcbcNum}, 498 tcbcgzA.push({'minsj': dataMap.wgfzhsjd[0].st , 'maxsj' : dataMap.wgfzhsjd[0].ed , 'order' : 'desc', 'deletebcNum' : wgfhtcbcNum},
496 - {'minsj': dataMap.zgfzqsjd[0].st , 'maxsj' : dataMap.zgfzqsjd[0].ed , 'order' : 'asc', 'deletebcNum' : zgfzqtcbcNum}); 499 + {'minsj': dataMap.zgfzqsjd[0].st , 'maxsj' : dataMap.zgfzqsjd[0].ed , 'order' : 'asc', 'deletebcNum' : zgfzqtcbcNum});
497 } 500 }
498 - // lpbc.sort(function(m,n){return n.fcno-m.fcno}); 501 + /*if( wgfhtcbcNum >= deletebcNum) {
  502 +
  503 + }else if(zgfzqtcbcNum >= deletebcNum){
  504 +
  505 + }else if(deletebcNum >= (zgfzqtcbcNum + wgfhtcbcNum)){
  506 +
  507 + }*/
499 baseF.spliceBc02(lpbc , tcbcgzA , dataMap , isfb); 508 baseF.spliceBc02(lpbc , tcbcgzA , dataMap , isfb);
500 } 509 }
501 }, 510 },
@@ -518,7 +527,7 @@ var BaseFun = function() { @@ -518,7 +527,7 @@ var BaseFun = function() {
518 for(var a = 0 ; a < arr.length ; a ++) { 527 for(var a = 0 ; a < arr.length ; a ++) {
519 var fcsj = baseF.getDateTime(arr[a].fcsj); 528 var fcsj = baseF.getDateTime(arr[a].fcsj);
520 // 判断是否在高峰时间范围.【true--表示在,false--表示不在】. 529 // 判断是否在高峰时间范围.【true--表示在,false--表示不在】.
521 - if(!baseF.isgfsjd01(fcsj,dataMap) && fcsj > tcbcgzA[t].minsj && fcsj < tcbcgzA[t].maxsj) { 530 + if(!baseF.isPeakTimeScope(fcsj,dataMap) && fcsj > tcbcgzA[t].minsj && fcsj < tcbcgzA[t].maxsj) {
522 if(order == 'asc') { 531 if(order == 'asc') {
523 arr[a-1].isfb = isfb ? 1 : 0; 532 arr[a-1].isfb = isfb ? 1 : 0;
524 arr[a-1].STOPTIME = 0; 533 arr[a-1].STOPTIME = 0;
@@ -544,7 +553,7 @@ var BaseFun = function() { @@ -544,7 +553,7 @@ var BaseFun = function() {
544 * @map map 表单参数. 553 * @map map 表单参数.
545 * @return 返回一个满足单个路牌对应的标准工时、满足某班型下的所有路牌的平均工时对应的日平均工时、停站时间、路牌是否分班的班次集合. 554 * @return 返回一个满足单个路牌对应的标准工时、满足某班型下的所有路牌的平均工时对应的日平均工时、停站时间、路牌是否分班的班次集合.
546 */ 555 */
547 - jslpgsAndbcs : function(bxrclist , jsonArray , cara , saa , dataMap , map) { 556 + abstractCar : function(bxrclist , jsonArray , cara , saa , dataMap , map) {
548 // 定义低谷最大发车时间、最大停站时间来反算出低谷最少配车数. 557 // 定义低谷最大发车时间、最大停站时间来反算出低谷最少配车数.
549 var dgmaxfcjx = parseInt(map.dgmaxfcjx), 558 var dgmaxfcjx = parseInt(map.dgmaxfcjx),
550 dgmaxtzsj = parseInt(map.dgmaxtzsj); 559 dgmaxtzsj = parseInt(map.dgmaxtzsj);
@@ -618,7 +627,7 @@ var BaseFun = function() { @@ -618,7 +627,7 @@ var BaseFun = function() {
618 bxlpbc.sort(function(x,y){return x.fcint-y.fcint}); 627 bxlpbc.sort(function(x,y){return x.fcint-y.fcint});
619 // console.log(bxlpbc); 628 // console.log(bxlpbc);
620 // 调整某班型下的各个路牌对应的班次以及工时、停站时间、是否分班. 629 // 调整某班型下的各个路牌对应的班次以及工时、停站时间、是否分班.
621 - rs = rs.concat(baseF.tzlpgs02(bxlpbc , map , dataMap , saa , cara , bxrclist[x] , dgminpcs)); 630 + rs = rs.concat(baseF.abstractBcByWorkTime(bxlpbc , map , dataMap , saa , cara , bxrclist[x] , dgminpcs));
622 } 631 }
623 } 632 }
624 return rs; 633 return rs;
@@ -637,131 +646,483 @@ var BaseFun = function() { @@ -637,131 +646,483 @@ var BaseFun = function() {
637 } 646 }
638 }, 647 },
639 648
640 - BXPplaceClassesTime02 : function(saa , cara , map , seMap , dataMap , lpNoA) {  
641 - // 得到所有路牌下的班次数[从各路牌下的第一个班次发车时间 到 营运结束时间点并且是连续的班次数].  
642 - var jsonArray = baseF.plgfbc01(saa , cara , map , seMap , dataMap);  
643 - // return {'json':jsonArray,'bxrcgs':null}; 649 + /**
  650 + * @description (TODO) 根据班型/人次/配车 排列时刻表明细.
  651 + * @prarm saa 封装的一些 停站时间、周转时间、行驶时间、行驶里程等.
  652 + * @param cara 路牌数组.
  653 + * @param map 表单参数.
  654 + * @param seMap 营运开始 ~ 结束时间
  655 + * @param dataMap 封装的 以上、下行方向成对存在的 一些参数数组 [下标0 -- 代表上行 ; 下标1 -- 代表下行].
  656 + *
  657 + * ************************************ 思路 **********************************************
  658 + *
  659 + * 第一步 根据表单参数初始化时刻表明细. -- 这里我们也可以叫初始化时刻表明细.
  660 + *
  661 + * 第二步 均匀初始化时刻表明细的发车间隙. -- 这里我们也可以叫纵向调整.
  662 + *
  663 + * 第三步 剔除首末班车以外的班次,并确认首末班车.
  664 + *
  665 + * 第四步 调整均匀发车间隙过程中产生的停站时间问题. -- 这里我们也可以叫横向调整.
  666 + *
  667 + * 第五步 把班型合理的分配到各个路牌上.
  668 + *
  669 + * 切割班型/人次/配车数 字符串 为 数组对象.
  670 + *
  671 + * 把班型分配到对应的具体路牌上.
  672 + *
  673 + * 第六步 根据各个路牌上班型的工时按照规则进行切割. -- 这里我们也叫抽车.
  674 + *
  675 + * 均匀抽车;
  676 + *
  677 + * 各个路牌满足行业班型标准工时 范围在 [1-1.5小时]内浮动;
  678 + *
  679 + * 相同班型下的日平均工时满足 参数的日平均工时 范围在 [10分钟]内浮动.
  680 + *
  681 + *
  682 + * 第七步 确定吃饭时间.
  683 + *
  684 + * 第八步 确定进出场、早晚例保时间.
  685 + *
  686 + * ***************************************************************************************
  687 + */
  688 + BXPplaceClassesTime02 : function(saa , cara , map , seMap , dataMap) {
644 689
  690 + // 第一步 根据表单中的参数得到所有路牌下的班次数[从各路牌下的第一个班次发车时间 到 营运结束时间点并且是连续的班次数].
  691 + var jsonArray = baseF.GetByArgusInitAllLpDownedBcCollections(saa , cara , map , seMap , dataMap);
  692 +
  693 + // 第二步 纵向调整
  694 + baseF.evenStartDepartSpace(jsonArray , dataMap);
  695 +
  696 + // 第三步 剔除首末班车以外的班次,并确认首末班车.
  697 + var markArray = baseF.markFirstAndLastBusAlsoDietNotInRangeBc(jsonArray , dataMap);
  698 +
  699 + // 第四步 横向调整
  700 + baseF.resizeByPitStopTime(cara , jsonArray , dataMap);
  701 +
  702 + /**
  703 + * 第五步 把班型合理的分配到各个路牌上.
  704 + *
  705 + * 切割班型/人次/配车数 字符串 为 数组对象.
  706 + *
  707 + * 把班型分配到对应的具体路牌上.
  708 + */
645 // 切割班型/人次/配车数 字符串 为 数组对象. 709 // 切割班型/人次/配车数 字符串 为 数组对象.
646 - var list = baseF.splitBxRc02(map.bxrc); 710 + var list = baseF.getBxRcListCollection(map.bxrc);
647 // 把班型分配到对应的具体路牌上. 711 // 把班型分配到对应的具体路牌上.
648 - baseF.fprclp01(list,cara);  
649 - // console.log(list);  
650 -  
651 - var tempA = baseF.jslpgsAndbcs(list.data , baseF.tcbzfwndbc02(jsonArray , dataMap) , cara , saa , dataMap , map);  
652 - // return {'json':tempA,'bxrcgs':null}; 712 + baseF.bxAlloTotLp(list,cara);
  713 + // 第六步 抽车来满足工时.
  714 + var tempA = baseF.abstractCar(list , markArray , cara , saa , dataMap , map);
653 return {'json':baseF.addjcclcbc01(cara,tempA,dataMap,saa,map),'bxrcgs':null}; 715 return {'json':baseF.addjcclcbc01(cara,tempA,dataMap,saa,map),'bxrcgs':null};
654 - var ttsmbA = baseF.tzsmbcsj01(tempA,dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap);  
655 -  
656 - baseF.jhfcjx02(ttsmbA,dataMap);  
657 - //return {'json':baseF.addjcclcbc01(cara,ttsmbA,dataMap,saa,map),'bxrcgs':null};  
658 - //return {'json':ttsmbA,'bxrcgs':null};  
659 - var rsjar = baseF.tzsztest02(cara,ttsmbA,dataMap);  
660 - return {'json':rsjar,'bxrcgs':null};  
661 - return {'json':baseF.addjcclcbc01(cara,rsjar,dataMap,saa,map),'bxrcgs':null};  
662 }, 716 },
663 717
664 - tzsztest02 : function(cara,tempa,dataMap) {  
665 - var jsrs = new Array();  
666 - for(var t = 0 ; t < cara.length; t++) {  
667 - if(t>3)  
668 - continue;  
669 - var sslpbcA = new Array();  
670 - for(var j =0 ; j <tempa.length; j++) {  
671 - // 判断当期遍历的班次是否属于当前的路牌.  
672 - if(tempa[j].lpNo == cara[t].lpNo)  
673 - sslpbcA.push(tempa[j]); 718 + /**
  719 + * @description (TODO) 剔除不在上、下行时间范围内的班次.
  720 + * @param jsonArray 初始化路牌下的所有班次并且已经均匀发车间隙的数组集合.
  721 + * @param dataMap 封装的 以上、下行方向成对存在的 一些参数数组 [下标0 -- 代表上行 ; 下标1 -- 代表下行].
  722 + */
  723 + markFirstAndLastBusAlsoDietNotInRangeBc : function(jsonArray , dataMap) {
  724 + // 定义上、下行的正常、区间、空放、直放班次、返回数组集合.
  725 + var listMap = baseF.getUpAndDownBc( jsonArray , dataMap) , resultArray = new Array();
  726 + for(var i = 0 ; i < listMap.length ; i++) {
  727 + if(listMap[i].bc.length > 0){
  728 + // 剔除不在时间范围内的班次
  729 + baseF.dietNotInRangeBc(listMap[i].bc , dataMap.smbcsjArr[i].kssj, dataMap.smbcsjArr[i].jssj);
  730 + // 把班次顺序排序.
  731 + listMap[i].bc.sort(function(a,b){return a.fcint-b.fcint});
  732 + // 确定首末班车时间.
  733 + baseF.markFirstAndLastBusAlso(listMap[i].bc , dataMap , i);
674 } 734 }
675 - sslpbcA.sort(function(a,b){return a.fcno-b.fcno});  
676 - baseF.tztzsjInit02(sslpbcA,dataMap);  
677 - jsrs = jsrs.concat(sslpbcA); 735 + resultArray = resultArray.concat(listMap[i].bc);
678 } 736 }
679 - return jsrs; 737 + return resultArray;
680 }, 738 },
681 739
682 - tztzsjInit02 : function(ar,dataMap) {  
683 - var maxXxsjA = [parseInt(dataMap.map.upTravelTime),parseInt(dataMap.map.downTravelTime)];  
684 - var v1 = Math.max.apply(null, maxXxsjA) *1.5;  
685 - for(var r = 0 ; r< ar.length-1;r++) {  
686 - var sgbcfcsj = baseF.getDateTime(ar[r+1].fcsj),dqbcddsj = baseF.getDateTime(ar[r].ARRIVALTIME);  
687 - var dxmin = parseInt( (sgbcfcsj - dqbcddsj)/60000);  
688 - if(dxmin<0 || ar[r].STOPTIME<0) {  
689 - var cctag = baseF.dirDmToIndex(ar[r].xlDir);  
690 - dxmin = ar[r].bcType == dataMap.bcTypeArr.cf ? 0 : baseF.isgfsjd01(baseF.getDateTime(ar[r].fcsj),dataMap) ? dataMap.gftzsj[cctag] : dataMap.dgtzsj[cctag];  
691 - }else if(dxmin >= v1 && dxmin < 180) {  
692 - if(r==ar.length-2 || baseF.issmbcsjArr(ar[r+1].fcsj,dataMap.smbcsjArr)) {  
693 - dxmin = dxmin;  
694 - }else {  
695 - dxmin = v1;  
696 - } 740 + /**
  741 + * @description (TODO) 确定某方向下的首末班车.
  742 + * @param dirArray 某方向下的数组集合.
  743 + * @param dataMap 封装的 以上、下行方向成对存在的 一些参数数组 [下标0 -- 代表上行 ; 下标1 -- 代表下行].
  744 + * @param dir 方向.
  745 + */
  746 + markFirstAndLastBusAlso : function(dirArray , dataMap , dir) {
  747 + if(dirArray.length>=2) {
  748 + // 定义第一个、最后一个班次.
  749 + var dirFirstBc = dirArray[0],dirLastBc = dirArray[dirArray.length-1];
  750 + // 确认首班车时间
  751 + if(dirFirstBc.fcsj != dataMap.smbcsjArr[dir].kssj) {
  752 + // 定义第一个、最后一个班次.
  753 + var dirFirstBc = dirArray[0],dirLastBc = dirArray[dirArray.length-1];
  754 + // 修改第一个班次的发车时间.
  755 + dirFirstBc.fcsj = dataMap.smbcsjArr[dir].kssj;
  756 + // 修改第一个班次的班次时间.
  757 + dirFirstBc.bcsj = dataMap.gfxxsjArr[dir];
  758 + // 定义到达时间.
  759 + var ddsj = baseF.getDateTime(dirFirstBc.fcsj);
  760 + ddsj.setMinutes(ddsj.getMinutes() + dataMap.gfxxsjArr[dir]);
  761 + // 修改第一个班次的到达时间.
  762 + dirFirstBc.ARRIVALTIME = baseF.getTimeStr(ddsj);
  763 + // dirFirstBc.STOPTIME = parseInt( (baseF.getDateTime(dirArray[1].fcsj) - ddsj) / 60000) ;
  764 +
697 } 765 }
698 - if(ar[r].STOPTIME >0) {  
699 - dqbcddsj.setMinutes(dqbcddsj.getMinutes() + dxmin);  
700 - ar[r+1].fcsj = baseF.getTimeStr(dqbcddsj);  
701 - dqbcddsj.setMinutes(dqbcddsj.getMinutes() + ar[r+1].bcsj);  
702 - ar[r+1].ARRIVALTIME = baseF.getTimeStr(dqbcddsj);  
703 - ar[r].STOPTIME = dxmin >= 180 ? 0 : parseInt(dxmin); 766 + // 确认末班车时间
  767 + if(dirLastBc.fcsj != dataMap.smbcsjArr[dir].jssj) {
  768 + // 修改最后一个班次的发车时间.
  769 + dirLastBc.fcsj = dataMap.smbcsjArr[dir].jssj;
  770 + // 修改最后一个班次的班次时间.
  771 + dirLastBc.bcsj = dataMap.dgxxsjArr[dir];
  772 + // 定义到达时间.
  773 + var ddsj_ = baseF.getDateTime(dirLastBc.fcsj);
  774 + // 修改上一个班次的停站时间.
  775 + // dirArray[dirArray.length-2].STOPTIME = parseInt( (ddsj_ - baseF.getDateTime(dirArray[dirArray.length-2].ARRIVALTIME)) / 60000)
  776 + ddsj_.setMinutes(ddsj_.getMinutes() + dataMap.dgxxsjArr[dir]);
  777 + // 修改最后一个班次的到达时间.
  778 + dirLastBc.ARRIVALTIME = baseF.getTimeStr(ddsj_);
704 } 779 }
705 } 780 }
706 }, 781 },
707 782
  783 + /**
  784 + * @description (TODO) 判断是否首末班车.
  785 + */
  786 + issmbcsjArr : function(str,arr) {
  787 + var tag = false;
  788 + for(var a = 0 ;a < arr.length;a++) {
  789 + if(str == arr[a].kssj || str == arr[a].jssj)
  790 + tag = true;
  791 + }
  792 + return tag;
  793 + },
  794 +
  795 + /**
  796 + * @description (TODO) 获取 上、下行的正常、区间、空放、直放班次.
  797 + * @param 需要分割的班次数据集合.
  798 + * @param 封装的 以上、下行方向成对存在的 一些参数数组 [下标0 -- 代表上行 ; 下标1 -- 代表下行].
  799 + */
  800 + getUpAndDownBc : function(json,dataMap) {
  801 + // 定义上行班次 、 下行班次 数组集合、返回数组集合对象.
  802 + var upArray = new Array(),downArray = new Array(),rs = new Array();
  803 + for(var j = 0 ; j< json.length ; j++) {
  804 + // 判断是否为正常、区间、空放、直放班次
  805 + if(json[j].bcType== dataMap.bcTypeArr.normal ||
  806 + json[j].bcType== dataMap.bcTypeArr.region ||
  807 + json[j].bcType== dataMap.bcTypeArr.major ||
  808 + json[j].bcType== dataMap.bcTypeArr.venting) {
  809 + if(json[j].xlDir == dataMap.dira[0])
  810 + upArray.push(json[j]);
  811 + else if(json[j].xlDir == dataMap.dira[1])
  812 + downArray.push(json[j]);
  813 + }
  814 + }
  815 + rs.push({'bc' : upArray},{'bc' : downArray})
  816 + // 返回数据.
  817 + return rs;
  818 + },
  819 +
  820 + /**
  821 + * @desription (TODO) 剔除不在时间范围内的班次.
  822 + * @param ar 某方向下的班次.
  823 + * @param 开始时间.
  824 + * @param 结束时间.
  825 + */
  826 + dietNotInRangeBc : function(ar , kssj , jssj) {
  827 + for(var s = 0 ; s < ar.length ; s++) {
  828 + if(baseF.isDelete(baseF.getDateTime(kssj),
  829 + baseF.getDateTime(jssj),
  830 + baseF.getDateTime(ar[s].fcsj))) {
  831 + ar.splice(s, 1);
  832 + s--;
  833 + }
  834 + }
  835 + },
  836 +
  837 + /**
  838 + * @description (TODO) 把班型人次合理的分配到不同的路牌上.
  839 + * @param list 班型人次数组集合.
  840 + * @param clzs 路牌数组.
  841 + * @return 返回一个把路牌合理的分配到班型人次下组成的数据集合.
  842 + * */
  843 + bxAlloTotLp : function(list,clzs) {
  844 + // 定义 班型人次数组集合长度 、路牌数组长度.
  845 + var lLen = list.length , cLen = clzs.length;
  846 + if(lLen<= 0 || cLen<=0 )
  847 + return false;
  848 + // 最多车次与总车次的比例.
  849 + var blnum = Math.round(cLen/list[0].fpcls);
  850 + // 定义已经分配出去的路牌.
  851 + var rs = new Array();
  852 + // 遍历
  853 + for(var r = 0 ; r < lLen ; r++) {
  854 + // 得到没有分配出去的路牌.
  855 + var dxa = baseF.chaji_array(clzs,rs);
  856 + // 定义当前车次数.
  857 + var rsnum = list[r].fpcls;
  858 + // 定义记录当前分割路牌的次数下标.分配到班型车次下的路牌数组.
  859 + var index = 0 , sslp = new Array();
  860 + // 当前车次所有占比例.
  861 + var tempint = parseInt(rsnum/blnum);
  862 + // 判断如果比例小1 则为当前车次数.
  863 + blnum = tempint <= 1 ? rsnum : blnum;
  864 + // 判断当前班型车次数组下标值.如果为倒数第二个或者之前.
  865 + if(r < lLen-1) {
  866 + // 遍历
  867 + for(var c = 0 ; c < tempint ; c++) {
  868 + // 创建新的没有分配出去的路牌数组.
  869 + var temp = dxa.concat();
  870 + // 创建切割路牌数组.
  871 + var tagA = new Array();
  872 + // 判断切割的下标值是否小于等于路牌数组的倒数第二个或者之前.
  873 + if(index <= (dxa.length-blnum) ) {
  874 + tagA = temp.splice(index,blnum);
  875 + }else {
  876 + tagA = temp.splice((dxa.length-blnum),blnum);
  877 + }
  878 + // 组合切割路牌数组.赋值给已分配出去的路牌.
  879 + rs = rs.concat(tagA);
  880 + // 赋值给分配到班型车次下的路牌数组.
  881 + sslp = sslp.concat(tagA);
  882 + // 记录切割下标.
  883 + index = index + 1 + blnum;
  884 + }
  885 + // 分配到班型车次下的路牌数组.
  886 + list[r].sslp = sslp;
  887 + }else {
  888 + list[r].sslp = dxa;
  889 + }
  890 + }
  891 + },
  892 + /**
  893 + * @description (TODO) [ 切割 班型/人次/配车数 ]参数 并封装成数组集合对象.
  894 + * @param str 切割 班型/人次/配车数 字符串.
  895 + */
  896 + getBxRcListCollection : function(str) {
  897 + // 如果为空 , 直接return
  898 + if(str=='' || str==null)
  899 + return false;
  900 + // 定义返回数组集合.
  901 + var list = new Array();
  902 + // 获取各个班型对应的工时数组.
  903 + var gsgd = baseF.getBcTypeAndWorkHuorsVConstant();
  904 + // 按多号切开.
  905 + var bxrcAr = str.split(',');
  906 + if(bxrcAr.length>0) {
  907 + for(var s = 0 ; s< bxrcAr.length;s++) {
  908 + // 按反斜杠切开.
  909 + var s1a = bxrcAr[s].split('/');
  910 + if(s1a.length >= 4) {
  911 + // 定义人数、配车数、日平均工时.
  912 + var rs = parseInt(s1a[1]),fpcls = parseInt(s1a[2]),gsavg = parseInt(s1a[3]);
  913 + // 定义班型标准小时系数 、 分钟系数.
  914 + var hoursV = 0.0 , minueV = '' ;
  915 + for(var g = 0 ; g < gsgd.length; g++) {
  916 + // 如果班型字符串相同.
  917 + if(gsgd[g].type == s1a[0]) {
  918 + hoursV = gsgd[g].hoursV;
  919 + minueV = gsgd[g].minueV;
  920 + break;
  921 + }
  922 + }
  923 + // 添加到返回数组集合中.
  924 + list.push({'type' : s1a[0] , 'rs' : rs , 'fpcls' : fpcls , 'hoursV' : hoursV ,
  925 + 'minueV' : minueV , 'gsavg' : gsavg});
  926 + }
  927 + }
  928 + }
  929 + // 返回数据.
  930 + return list.sort(function(a,b){return b.rs-a.rs});
  931 + },
708 932
709 /** 933 /**
710 - * @description : (TODO) 均匀发车间隙 934 + * @description : (TODO) 纵向调整 均匀发车间隙.
  935 + * @params : bcArr--初始化路牌下的所有班次数组集合.
  936 + * @params : dataMap 封装的 以上、下行方向成对存在的 一些参数数组 [下标0 -- 代表上行 ; 下标1 -- 代表下行].
  937 + * @return : 返回一个数组.这里返回的是调整过后 发车间距均匀的班次数组.
711 * 938 *
712 - * @params : [arr--某个方向下的班次数组;dir--方向;zzsj--周转时间] 939 + * ***********************************思路***************************************************
  940 + * 高峰时段发车间隙 : 行业标准,不得超过20分钟.
  941 + * 低谷最大发车间隙 : 以参数设定为准.
  942 + *
  943 + *
  944 + * 第一步 获取某放下的班次数组集合.并按发车时间顺序排序.
  945 + *
  946 + * 第二步 以某方向下的首、末班车时间点作为开始、结束时间点 开始循环. 每一次循环以开始时间点加上不同时间段内的周转时间作为结束点,
  947 + * 来作为一个调整发车间隙过程的时间区间.
  948 + *
  949 + * 均匀发车间隙规则:
  950 + * 算出时间区间内的所有车辆数.
  951 + * 发车间隙 = 该时间段内的周转时间 / 该时间段内的车辆数.
  952 + * 第三步 调整时间区间内的班次[发车时间、行驶时间、到达时间].
  953 + * *****************************************************************************************
713 * 954 *
714 - * @return : 返回一个数组.这里返回的是调整过后 发车间距均匀的班次数组  
715 **/ 955 **/
716 - jhfcjx02 : function(bcArr,dataMap) { 956 + evenStartDepartSpace : function(bcArr,dataMap) {
  957 + // 定义行业标准高峰最大发车间隙、低谷最大发车间隙(包括吃饭时间)
  958 + var gfmaxfcjx = 20 , dgmaxfcjx = dataMap.dgmaxfcjx;
  959 + // 判断班次数组集合长度是否为零.
717 if(bcArr.length<=0) 960 if(bcArr.length<=0)
718 return; 961 return;
  962 + // 定义方向数组集合.
719 var dirA = dataMap.dira; 963 var dirA = dataMap.dira;
  964 + // 定义配车总数(相当于路牌总数).
720 var clzs = parseInt(dataMap.map.clzs); 965 var clzs = parseInt(dataMap.map.clzs);
721 for(var d = 0 ; d < dirA.length; d++) { 966 for(var d = 0 ; d < dirA.length; d++) {
  967 + // 定义方向、该方向下的班次数组集合.
722 var fxdm = dirA[d],fxbc = new Array(); 968 var fxdm = dirA[d],fxbc = new Array();
  969 + // 方向代码转为下标[0代表上行 ; 1代表下行].
723 var cctag = baseF.dirDmToIndex(fxdm); 970 var cctag = baseF.dirDmToIndex(fxdm);
724 for(var b = 0;b<bcArr.length ; b++) { 971 for(var b = 0;b<bcArr.length ; b++) {
  972 + // 获取发车时间转为毫秒数.(用于后面按发车时间顺序排序)
725 bcArr[b].fcint = baseF.getDateTime(bcArr[b].fcsj).getTime(); 973 bcArr[b].fcint = baseF.getDateTime(bcArr[b].fcsj).getTime();
  974 + // 如果方向相同则添加到该方向下的班次数组集合中.
726 if(bcArr[b].xlDir == fxdm) 975 if(bcArr[b].xlDir == fxdm)
727 fxbc.push(bcArr[b]); 976 fxbc.push(bcArr[b]);
728 } 977 }
729 - var kssj = baseF.getDateTime(dataMap.smbcsjArr[cctag].kssj),// 开始时间.  
730 - jssj = baseF.getDateTime(dataMap.smbcsjArr[cctag].jssj);// 结束时间.  
731 - fxbc.sort(function(m,n){return m.fcint - n.fcint});  
732 - while(kssj<=jssj) {  
733 - var tagboolean = baseF.isgfsjd01(kssj,dataMap);  
734 - var zzsj = tagboolean ? dataMap.zzsj.gfzzsj : dataMap.zzsj.dgzzsj;  
735 - if(true){ 978 + // 判断某方向下的班次数组集合的长度是否小于零.
  979 + if(fxbc.length>0) {
  980 + // 按发车时间顺序排序.
  981 + fxbc.sort(function(m,n){return m.fcint - n.fcint});
  982 + // 定义某方向下的开始、结束时间.
  983 + var kssj = baseF.getDateTime(dataMap.smbcsjArr[cctag].kssj),
  984 + jssj = baseF.getDateTime(dataMap.smbcsjArr[cctag].jssj);
  985 + while(kssj<=jssj) {
  986 + // 判断是否高峰时段.
  987 + var tagboolean = baseF.isPeakTimeScope(kssj,dataMap);
  988 + // 定义不同时间段内的周转时间.
  989 + var zzsj = tagboolean ? dataMap.zzsj.gfzzsj : dataMap.zzsj.dgzzsj;
  990 + // 定义时间区间的结束点.
736 var temp = new Date(); 991 var temp = new Date();
737 temp.setHours(kssj.getHours()); 992 temp.setHours(kssj.getHours());
738 temp.setMinutes(kssj.getMinutes()+zzsj); 993 temp.setMinutes(kssj.getMinutes()+zzsj);
739 - var sjdbcArr = baseF.getObjRegion(kssj,temp,fxbc,dataMap);  
740 - var len_ = sjdbcArr.length;  
741 - var bcCount = baseF.getlpNum(sjdbcArr);// 定长度 994 + // 定义该时间区间内的班次数组集合、该数组集合长度.
  995 + var sjdbcArr = baseF.getObjRegion(kssj,temp,fxbc,dataMap),
  996 + len_ = sjdbcArr.length;
  997 + // 定义该时间区间内的车辆数.
  998 + var bcCount = baseF.getlpNum(sjdbcArr);
742 if(len_>0 && bcCount > 0) { 999 if(len_>0 && bcCount > 0) {
  1000 + // 定义该时间区间内的发车间隙.
743 var _fcjx = parseInt(Math.ceil(zzsj/bcCount)); 1001 var _fcjx = parseInt(Math.ceil(zzsj/bcCount));
744 - console.log(_fcjx); 1002 + if(tagboolean) {
  1003 + if(_fcjx>gfmaxfcjx)
  1004 + _fcjx = 20;
  1005 + }else {
  1006 + if(_fcjx>dgmaxfcjx)
  1007 + _fcjx = dgmaxfcjx;
  1008 + }
  1009 + // console.log(_fcjx);
  1010 + // 定义修改班次的起始时间点.
745 var fcnosj = new Date(kssj); 1011 var fcnosj = new Date(kssj);
746 for(var l = 0 ; l< len_ ; l++) { 1012 for(var l = 0 ; l< len_ ; l++) {
747 - // 每个路牌的末班车发车时间不准动.  
748 - /*if(baseF.iszhclzsbc(fxbc, sjdbcArr[l].fcno , clzs)) {  
749 - continue;  
750 - }*/ 1013 + // 修改班次发车时间.
751 sjdbcArr[l].fcsj = baseF.getTimeStr(fcnosj); 1014 sjdbcArr[l].fcsj = baseF.getTimeStr(fcnosj);
752 - var _xxsj = baseF.getxssj(dataMap.zgfsjd, 1015 + sjdbcArr[l].fcint = fcnosj.getTime();
  1016 + // 获取行驶时间.
  1017 + var _xxsj = baseF.getByDirTravelTime(dataMap.zgfsjd,
753 dataMap.wgfsjd,fcnosj,dataMap.pcxssjArr, 1018 dataMap.wgfsjd,fcnosj,dataMap.pcxssjArr,
754 - dataMap.gfxxsjArr,baseF.dirDmToIndex(sjdbcArr[l].xlDir));// 获取行驶时间 1019 + dataMap.gfxxsjArr,baseF.dirDmToIndex(sjdbcArr[l].xlDir));
  1020 + // 修改行驶时间.
755 sjdbcArr[l].bcsj = _xxsj; 1021 sjdbcArr[l].bcsj = _xxsj;
  1022 + // 定义到达时间.
756 var ddsj = new Date(); 1023 var ddsj = new Date();
757 ddsj.setHours(fcnosj.getHours()); 1024 ddsj.setHours(fcnosj.getHours());
758 ddsj.setMinutes(fcnosj.getMinutes()+_xxsj); 1025 ddsj.setMinutes(fcnosj.getMinutes()+_xxsj);
  1026 + // 修改到达时间.
759 sjdbcArr[l].ARRIVALTIME = baseF.getTimeStr(ddsj); 1027 sjdbcArr[l].ARRIVALTIME = baseF.getTimeStr(ddsj);
  1028 + // 重新赋值起始时间点.
760 fcnosj.setMinutes(fcnosj.getMinutes() + _fcjx); 1029 fcnosj.setMinutes(fcnosj.getMinutes() + _fcjx);
761 } 1030 }
762 } 1031 }
  1032 + // 重新赋值开始时间点.来作为下一次的开始时间.
  1033 + kssj = new Date(kssj.setMinutes(kssj.getMinutes() + zzsj));
  1034 + }
  1035 + }
  1036 + }
  1037 + },
  1038 +
  1039 + /**
  1040 + * @description (TODO) 横向调整 调整停站时间.
  1041 + * @param cara 路牌数组.
  1042 + * @param tempa 所有的班次数组集合.
  1043 + * @param dataMap 封装的 以上、下行方向成对存在的 一些参数数组 [下标0 -- 代表上行 ; 下标1 -- 代表下行].
  1044 + *
  1045 + * ******************************** 思路 *************************************************
  1046 + * 第一步 等到每个路牌下的班次数组集合.
  1047 + *
  1048 + * 第二步 顺序排序每个路牌下的班次数组集合.
  1049 + *
  1050 + * 第三步 从第二个班次开始,用第二个班次的发车时间 - 上一个班次的到达时间 得到 上一个班次的停站时间.
  1051 + *
  1052 + * 第四步 修改上一个班次的停站时间.
  1053 + *
  1054 + * 修改停站时间规则:以行驶时间的10%-15% 为标准。
  1055 + * 如果超出该范围。则以录入参数低谷最大停站间隙为准。
  1056 + * 停站时间最大不能超过该停站时间。
  1057 + * 高峰附近的班次的停站时间在离高峰最近一个班次的停站时间浮动范围【1-2】分钟。
  1058 + *
  1059 + * ****************************************************************************************
  1060 + */
  1061 + resizeByPitStopTime : function(cara,tempa,dataMap) {
  1062 + var cLen = cara.length,tLen = tempa.length;
  1063 + if(cLen<= 0 || tLen<=0 || dataMap==null)
  1064 + return;
  1065 + // 定义低谷最大停站时间、行业标准最小、最大停站时间(行驶时间的10%~15%).
  1066 + var dgmaxtzsj = dataMap.dgmaxtzsj,normmintzsj, normmaxtzsj;
  1067 + for(var t = 0 ; t < cLen ; t++) {
  1068 + // 定义当前路牌班次数组集合.
  1069 + var sslpbcA = new Array();
  1070 + for(var j =0 ; j < tLen ; j++) {
  1071 + // 判断当期遍历的班次是否属于当前的路牌.如果是则添加到当前的路牌班次数组集合.
  1072 + if(tempa[j].lpNo == cara[t].lpNo)
  1073 + sslpbcA.push(tempa[j]);
  1074 + }
  1075 + if(sslpbcA.length > 0) {
  1076 + // 按发车时间顺序排序.
  1077 + sslpbcA.sort(function(a,b){return a.fcint-b.fcint});
  1078 + // 按照规则修改停站时间.
  1079 + for(var r = 0 ; r < sslpbcA.length-1 ; r++) {
  1080 + // 定义上一个班次的发车时间、当前班次的到达时间、发车时间.
  1081 + var sgbcfcsj = baseF.getDateTime(sslpbcA[r+1].fcsj),
  1082 + dqbcddsj = baseF.getDateTime(sslpbcA[r].ARRIVALTIME),
  1083 + dqbcfcsj = baseF.getDateTime(sslpbcA[r].fcsj);
  1084 + // 定义每每相邻两个班次之间的时间差分钟数(也就是停站时间.)
  1085 + var dxmin = parseInt( (sgbcfcsj - dqbcddsj)/60000);
  1086 + // 定义当前班次方向下标代码[0代表上行;1代表下行].
  1087 + var cctag = baseF.dirDmToIndex(sslpbcA[r].xlDir);
  1088 + // 定义是否高峰
  1089 + var flag = baseF.isPeakTimeScope(dqbcfcsj , dataMap);
  1090 + // 获取行驶时间.
  1091 + var xxsj = baseF.getByDirTravelTime(dataMap.zgfsjd , dataMap.wgfsjd , dqbcfcsj,
  1092 + dataMap.pcxssjArr , dataMap.gfxxsjArr ,
  1093 + baseF.dirDmToIndex(sslpbcA[r].xlDir));
  1094 + normmintzsj = xxsj*0.1;
  1095 + normmaxtzsj = xxsj*0.15;
  1096 + // 如果小于零
  1097 + if(dxmin <= 0 && sslpbcA[r].isfb ==0 ) {
  1098 + // 根据不同时段的停站时间.重新赋值停站时间.
  1099 + dxmin = flag ? dataMap.gftzsj[cctag] : dataMap.dgtzsj[cctag];
  1100 + }else {
  1101 + // 如果 大于等于低谷最大停站时间 并且 小于等于三小时.则把低谷最大停站时间 作为 停站时间.
  1102 + if(dxmin >= dgmaxtzsj && dxmin < 180) {
  1103 + dxmin = dgmaxtzsj;
  1104 + // 如果大于零 并且 小于等于行业标准的最小停站时间
  1105 + }else if(dxmin > 0 && dxmin <= normmintzsj ) {
  1106 + // dxmin = dxmin;
  1107 + // 如果大于行业标准的最小停站时间 并且 小于等于行业标准的最大停站时间
  1108 + }else if(dxmin > normmintzsj && dxmin <= normmaxtzsj ) {
  1109 + // dxmin = dxmin;
  1110 + // 如果大于行业标准的最大停站时间 并且 小于低谷最大停站时间
  1111 + }else if(dxmin > normmaxtzsj && dxmin < dgmaxtzsj ) {
  1112 + // dxmin = dxmin;
  1113 + }
  1114 + }
  1115 + // 修改当前班次的停站时间.
  1116 + sslpbcA[r].STOPTIME = parseInt(dxmin) ;
  1117 + // 当前班次的到达时间 + 停站时间 作为下一个班次的发车时间.
  1118 + dqbcddsj.setMinutes(dqbcddsj.getMinutes() + dxmin);
  1119 + // 修改下一个班次的发车时间.
  1120 + sslpbcA[r+1].fcsj = baseF.getTimeStr(dqbcddsj);
  1121 + // 下一个班次的发车时间 + 行驶时间 作为下一个班次的到达时间.
  1122 + dqbcddsj.setMinutes(dqbcddsj.getMinutes() + sslpbcA[r+1].bcsj);
  1123 + // 修改下一个班次的到达时间.
  1124 + sslpbcA[r+1].ARRIVALTIME = baseF.getTimeStr(dqbcddsj);
763 } 1125 }
764 - kssj = new Date(kssj.setMinutes(kssj.getMinutes() + zzsj));  
765 } 1126 }
766 } 1127 }
767 }, 1128 },
@@ -769,7 +1130,7 @@ var BaseFun = function() { @@ -769,7 +1130,7 @@ var BaseFun = function() {
769 BXPplaceClassesTime01 : function(saa,cara,map,seMap,dataMap,lpNoA) { 1130 BXPplaceClassesTime01 : function(saa,cara,map,seMap,dataMap,lpNoA) {
770 var jsonArray = baseF.plgfbc(saa,cara,map,seMap,dataMap); 1131 var jsonArray = baseF.plgfbc(saa,cara,map,seMap,dataMap);
771 var list = baseF.splitBxRc(map.bxrc); 1132 var list = baseF.splitBxRc(map.bxrc);
772 - baseF.fprclp01(list,cara); 1133 + baseF.bxAlloTotLp(list,cara);
773 var bxrclist = list.data; 1134 var bxrclist = list.data;
774 var rs = new Array(),bxrcgs= new Array(); 1135 var rs = new Array(),bxrcgs= new Array();
775 // 遍历已分配好路牌的班型人次数组. 1136 // 遍历已分配好路牌的班型人次数组.
@@ -804,7 +1165,7 @@ var BaseFun = function() { @@ -804,7 +1165,7 @@ var BaseFun = function() {
804 cara[l].lpName = bxrclist[x].type + '_' + lpNo ; 1165 cara[l].lpName = bxrclist[x].type + '_' + lpNo ;
805 } 1166 }
806 } 1167 }
807 - var _obj = baseF.getsxAndxxbc(lpbc,dataMap); 1168 + var _obj = baseF.getUpAndDownBc(lpbc,dataMap);
808 baseF.tcbc(_obj.sxbc,dataMap.smbcsjArr[0].kssj,dataMap.smbcsjArr[0].jssj);// 剔除上行不在时间范围内的班次 1169 baseF.tcbc(_obj.sxbc,dataMap.smbcsjArr[0].kssj,dataMap.smbcsjArr[0].jssj);// 剔除上行不在时间范围内的班次
809 baseF.tcbc(_obj.xxbc,dataMap.smbcsjArr[1].kssj,dataMap.smbcsjArr[1].jssj);// 剔除下行不在时间范围内的班次 1170 baseF.tcbc(_obj.xxbc,dataMap.smbcsjArr[1].kssj,dataMap.smbcsjArr[1].jssj);// 剔除下行不在时间范围内的班次
810 var tcnofwlpbc = _obj.sxbc.concat(_obj.xxbc); 1171 var tcnofwlpbc = _obj.sxbc.concat(_obj.xxbc);
@@ -1137,15 +1498,6 @@ var BaseFun = function() { @@ -1137,15 +1498,6 @@ var BaseFun = function() {
1137 obj.ARRIVALTIME = baseF.getTimeStr(zhygbcydx); 1498 obj.ARRIVALTIME = baseF.getTimeStr(zhygbcydx);
1138 }, 1499 },
1139 1500
1140 - issmbcsjArr : function(str,arr) {  
1141 - var tag = false;  
1142 - for(var a = 0 ;a < arr.length;a++) {  
1143 - if(str == arr[a].kssj || str == arr[a].jssj)  
1144 - tag = true;  
1145 - }  
1146 - return tag;  
1147 - },  
1148 -  
1149 getlpbcA : function(lpN_,jar) { 1501 getlpbcA : function(lpN_,jar) {
1150 var lpA = new Array(); 1502 var lpA = new Array();
1151 for(var p = 0 ; p < jar.length; p++ ) { 1503 for(var p = 0 ; p < jar.length; p++ ) {
@@ -1211,7 +1563,7 @@ var BaseFun = function() { @@ -1211,7 +1563,7 @@ var BaseFun = function() {
1211 var dxmin = parseInt( (sgbcfcsj - dqbcddsj)/60000); 1563 var dxmin = parseInt( (sgbcfcsj - dqbcddsj)/60000);
1212 if(dxmin<0 || ar[r].STOPTIME<0) { 1564 if(dxmin<0 || ar[r].STOPTIME<0) {
1213 var cctag = baseF.dirDmToIndex(ar[r].xlDir); 1565 var cctag = baseF.dirDmToIndex(ar[r].xlDir);
1214 - dxmin = ar[r].bcType == dataMap.bcTypeArr.cf ? 0 : baseF.isgfsjd01(baseF.getDateTime(ar[r].fcsj),dataMap) ? dataMap.gftzsj[cctag] : dataMap.dgtzsj[cctag]; 1566 + dxmin = ar[r].bcType == dataMap.bcTypeArr.cf ? 0 : baseF.isPeakTimeScope(baseF.getDateTime(ar[r].fcsj),dataMap) ? dataMap.gftzsj[cctag] : dataMap.dgtzsj[cctag];
1215 /*dqbcddsj.setMinutes(dqbcddsj.getMinutes() + dxmin); 1567 /*dqbcddsj.setMinutes(dqbcddsj.getMinutes() + dxmin);
1216 ar[r+1].fcsj = baseF.getTimeStr(dqbcddsj); 1568 ar[r+1].fcsj = baseF.getTimeStr(dqbcddsj);
1217 dqbcddsj.setMinutes(dqbcddsj.getMinutes() + ar[r+1].bcsj); 1569 dqbcddsj.setMinutes(dqbcddsj.getMinutes() + ar[r+1].bcsj);
@@ -1261,7 +1613,7 @@ var BaseFun = function() { @@ -1261,7 +1613,7 @@ var BaseFun = function() {
1261 jssj = baseF.getDateTime(dataMap.smbcsjArr[cctag].jssj);// 结束时间. 1613 jssj = baseF.getDateTime(dataMap.smbcsjArr[cctag].jssj);// 结束时间.
1262 fxbc.sort(function(m,n){return m.fcint - n.fcint}); 1614 fxbc.sort(function(m,n){return m.fcint - n.fcint});
1263 while(kssj<=jssj) { 1615 while(kssj<=jssj) {
1264 - var tagboolean = baseF.isgfsjd01(kssj,dataMap); 1616 + var tagboolean = baseF.isPeakTimeScope(kssj,dataMap);
1265 var zzsj = tagboolean ? dataMap.zzsj.gfzzsj : dataMap.zzsj.dgzzsj; 1617 var zzsj = tagboolean ? dataMap.zzsj.gfzzsj : dataMap.zzsj.dgzzsj;
1266 if(!tagboolean){ 1618 if(!tagboolean){
1267 var temp = new Date(); 1619 var temp = new Date();
@@ -1280,7 +1632,7 @@ var BaseFun = function() { @@ -1280,7 +1632,7 @@ var BaseFun = function() {
1280 continue; 1632 continue;
1281 } 1633 }
1282 sjdbcArr[l].fcsj = baseF.getTimeStr(fcnosj); 1634 sjdbcArr[l].fcsj = baseF.getTimeStr(fcnosj);
1283 - var _xxsj = baseF.getxssj(dataMap.zgfsjd, 1635 + var _xxsj = baseF.getByDirTravelTime(dataMap.zgfsjd,
1284 dataMap.wgfsjd,fcnosj,dataMap.pcxssjArr, 1636 dataMap.wgfsjd,fcnosj,dataMap.pcxssjArr,
1285 dataMap.gfxxsjArr,baseF.dirDmToIndex(sjdbcArr[l].xlDir));// 获取行驶时间 1637 dataMap.gfxxsjArr,baseF.dirDmToIndex(sjdbcArr[l].xlDir));// 获取行驶时间
1286 sjdbcArr[l].bcsj = _xxsj; 1638 sjdbcArr[l].bcsj = _xxsj;
@@ -1462,8 +1814,8 @@ var BaseFun = function() { @@ -1462,8 +1814,8 @@ var BaseFun = function() {
1462 kssj.setMinutes(parseInt(strArray[1]) + lastObj.STOPTIME); 1814 kssj.setMinutes(parseInt(strArray[1]) + lastObj.STOPTIME);
1463 var cctag = baseF.dirDmToIndex(lastObj.xlDir); 1815 var cctag = baseF.dirDmToIndex(lastObj.xlDir);
1464 cctag = baseF.getfx(1,cctag); 1816 cctag = baseF.getfx(1,cctag);
1465 - var tzsj = baseF.isgfsjd01(kssj,dataMap) ? dataMap.gftzsj[cctag] : dataMap.dgtzsj[cctag];  
1466 - var _xxsj = baseF.getxssj(dataMap.zgfsjd,dataMap.wgfsjd,kssj,dataMap.pcxssjArr,dataMap.gfxxsjArr,cctag);// 获取行驶时间 1817 + var tzsj = baseF.isPeakTimeScope(kssj,dataMap) ? dataMap.gftzsj[cctag] : dataMap.dgtzsj[cctag];
  1818 + var _xxsj = baseF.getByDirTravelTime(dataMap.zgfsjd,dataMap.wgfsjd,kssj,dataMap.pcxssjArr,dataMap.gfxxsjArr,cctag);// 获取行驶时间
1467 // 定义班次序号 1819 // 定义班次序号
1468 var xhNo = lastObj.fcno+1; 1820 var xhNo = lastObj.fcno+1;
1469 var carArray = {'lp':lastObj.lp,'lpNo':lastObj.lpNo,'lpName':lastObj.lpName,'lpType':lastObj.lpType}; 1821 var carArray = {'lp':lastObj.lp,'lpNo':lastObj.lpNo,'lpName':lastObj.lpName,'lpType':lastObj.lpType};
@@ -1514,64 +1866,6 @@ var BaseFun = function() { @@ -1514,64 +1866,6 @@ var BaseFun = function() {
1514 }, 1866 },
1515 1867
1516 /** 1868 /**
1517 - * @description (TODO) 把班型人次合理的分配到不同的路牌上.  
1518 - *  
1519 - * @param [bxgs--班型人次数组长度;list--班型人次数组集合;clzs--路牌数组]  
1520 - *  
1521 - * @return 返回一个把路牌合理的分配到班型人次下组成的数据集合.  
1522 - * */  
1523 - fprclp01 : function(list,clzs) {  
1524 - var bxgs = list.data.length;  
1525 - // 定义总车数.  
1526 - var dxcount = clzs.length;  
1527 - /*for(var t = 1 ; t<bxgs ; t++) {  
1528 - dxcount = dxcount + list.data[t].rs;  
1529 - }*/  
1530 - // 最多车次与总车次的比例.  
1531 - var blnum = Math.round(dxcount/list.data[0].fpcls);  
1532 - var rs = new Array();  
1533 - // 遍历  
1534 - for(var r = 0 ; r<bxgs ;r++) {  
1535 - // 得到没有分配出去的路牌.  
1536 - var dxa = baseF.chaji_array(clzs,rs);  
1537 - // 定义当前车次数.  
1538 - var rsnum = list.data[r].fpcls;  
1539 - // 定义记录当前分割路牌的次数下标.分配到班型车次下的路牌数组.  
1540 - var index = 0,sslp = new Array();  
1541 - // 当前车次所有占比例.  
1542 - var tempint = parseInt(rsnum/blnum);  
1543 - // 判断如果比例小1 则为当前车次数.  
1544 - blnum = tempint <=1 ? rsnum : blnum;  
1545 - // 判断当前班型车次数组下标值.如果为倒数第二个或者之前  
1546 - if(r<bxgs-1) {  
1547 - // 遍历  
1548 - for(var c = 0 ; c<tempint;c++) {  
1549 - // 创建新的没有分配出去的路牌数组.  
1550 - var temp = dxa.concat();  
1551 - // 创建切割路牌数组.  
1552 - var tagA = new Array();  
1553 - // 判断切割的下标值是否小于等于路牌数组的倒数第二个或者之前.  
1554 - if(index<=dxa.length-blnum) {  
1555 - tagA = temp.splice(index,blnum);  
1556 - }else {  
1557 - tagA = temp.splice(dxa.length-blnum,blnum);  
1558 - }  
1559 - // 组合切割路牌数组.赋值给已分配出去的路牌.  
1560 - rs = rs.concat(tagA);  
1561 - // 赋值给分配到班型车次下的路牌数组.  
1562 - sslp = sslp.concat(tagA);  
1563 - // 记录切割下标.  
1564 - index = index + 1 + blnum;  
1565 - }  
1566 - // 分配到班型车次下的路牌数组.  
1567 - list.data[r].sslp = sslp;  
1568 - }else {  
1569 - list.data[r].sslp = dxa;  
1570 - }  
1571 - }  
1572 - },  
1573 -  
1574 - /**  
1575 * @description : (TODO) 根据班型人次与车辆总数排列班次时刻数据. 1869 * @description : (TODO) 根据班型人次与车辆总数排列班次时刻数据.
1576 * 1870 *
1577 * @param [saa--数据配置参数;cara--路牌数组;map--表单配置参数;dataMap--方向成对的数据集合]. 1871 * @param [saa--数据配置参数;cara--路牌数组;map--表单配置参数;dataMap--方向成对的数据集合].
@@ -2045,7 +2339,7 @@ var BaseFun = function() { @@ -2045,7 +2339,7 @@ var BaseFun = function() {
2045 * 2339 *
2046 * ******************************** 思路 ********************************************************* 2340 * ******************************** 思路 *********************************************************
2047 * 2341 *
2048 - * 首先,以早高峰开始时间作为开始点 , 并且作为最后一个路牌的第一个班次的发车时间展开。 2342 + * 首先,以早高峰开始时间作为开始点,并且作为最后一个路牌的第一个班次的发车时间展开。(这里的原因是所有的车必须在早高峰开始点全部出车.)
2049 * 2343 *
2050 * 纵向展开: 2344 * 纵向展开:
2051 * 以最后一个路牌的第一个班次发车时间为开始点,以阶梯形式向上展开. 2345 * 以最后一个路牌的第一个班次发车时间为开始点,以阶梯形式向上展开.
@@ -2059,6 +2353,7 @@ var BaseFun = function() { @@ -2059,6 +2353,7 @@ var BaseFun = function() {
2059 * 倒数第二个路牌的第一个班次的发车时间为 6:39 = 6:31 + 某周转时间段内的发车间隙为:8 2353 * 倒数第二个路牌的第一个班次的发车时间为 6:39 = 6:31 + 某周转时间段内的发车间隙为:8
2060 * 倒数第三个路牌的第一个班次的发车时间为 6:47 = 6:39 + 某周转时间段内的发车间隙为:8 2354 * 倒数第三个路牌的第一个班次的发车时间为 6:47 = 6:39 + 某周转时间段内的发车间隙为:8
2061 * 倒数第四个.... 2355 * 倒数第四个....
  2356 + * ............
2062 * 以此类推. 2357 * 以此类推.
2063 * 2358 *
2064 * 横向展开: 2359 * 横向展开:
@@ -2080,8 +2375,9 @@ var BaseFun = function() { @@ -2080,8 +2375,9 @@ var BaseFun = function() {
2080 * 第四个班次 2375 * 第四个班次
2081 * 第五个班次 2376 * 第五个班次
2082 * ........ 2377 * ........
  2378 + * 以此类推.
2083 */ 2379 */
2084 - plgfbc01 : function(saa , cara , map, seMap , dataMap) { 2380 + GetByArgusInitAllLpDownedBcCollections : function(saa , cara , map, seMap , dataMap) {
2085 // 定义路牌长度 、所有路牌默认出场方向 [0--上行出场;1--下行出场] 、营运结束时间、返回数组. 2381 // 定义路牌长度 、所有路牌默认出场方向 [0--上行出场;1--下行出场] 、营运结束时间、返回数组.
2086 var len = cara.length , cctag , endTime = baseF.getDateTime(seMap.e) , rs = new Array(); 2382 var len = cara.length , cctag , endTime = baseF.getDateTime(seMap.e) , rs = new Array();
2087 // 获取所有路牌默认出场方向.如果是环线则只有一个上行方向. 2383 // 获取所有路牌默认出场方向.如果是环线则只有一个上行方向.
@@ -2098,12 +2394,12 @@ var BaseFun = function() { @@ -2098,12 +2394,12 @@ var BaseFun = function() {
2098 // 开启方向切换. 2394 // 开启方向切换.
2099 fxflag = 1; 2395 fxflag = 1;
2100 // 定义在某时间段内[高峰时间段、低谷时间段]的停站时间. 2396 // 定义在某时间段内[高峰时间段、低谷时间段]的停站时间.
2101 - var tzsj = baseF.isgfsjd01(kssj,dataMap) ? dataMap.gftzsj[fxTagDm] : dataMap.dgtzsj[fxTagDm]; 2397 + var tzsj = baseF.isPeakTimeScope(kssj,dataMap) ? dataMap.gftzsj[fxTagDm] : dataMap.dgtzsj[fxTagDm];
2102 // 定义在某时间段内的行驶时间. 2398 // 定义在某时间段内的行驶时间.
2103 - var _xxsj = baseF.getxssj(dataMap.zgfsjd,dataMap.wgfsjd,kssj,dataMap.pcxssjArr,dataMap.gfxxsjArr,fxTagDm); 2399 + var _xxsj = baseF.getByDirTravelTime(dataMap.zgfsjd,dataMap.wgfsjd,kssj,dataMap.pcxssjArr,dataMap.gfxxsjArr,fxTagDm);
2104 // 定义当前班次的停站时间,这里是为了当计算到了最后一个班次的时候,那么停站时间为0 ,但是后续的班次的发车时间需要加上前一个班次的停站时间. 2400 // 定义当前班次的停站时间,这里是为了当计算到了最后一个班次的时候,那么停站时间为0 ,但是后续的班次的发车时间需要加上前一个班次的停站时间.
2105 var xs_tzsj = baseF.isLastbc(kssj,endTime,tzsj,_xxsj) ? 0 : tzsj; 2401 var xs_tzsj = baseF.isLastbc(kssj,endTime,tzsj,_xxsj) ? 0 : tzsj;
2106 - // 添加正常班次对象. 2402 + // 添加正常班次对象.(这里初始化时,都是正常班次类型.)
2107 rs.push(baseF.getbcObj(kssj , _xxsj , cara[c] , 2403 rs.push(baseF.getbcObj(kssj , _xxsj , cara[c] ,
2108 dataMap.bcTypeArr.normal, 2404 dataMap.bcTypeArr.normal,
2109 dataMap.dira[fxTagDm] , xhNo++, 2405 dataMap.dira[fxTagDm] , xhNo++,
@@ -2114,6 +2410,7 @@ var BaseFun = function() { @@ -2114,6 +2410,7 @@ var BaseFun = function() {
2114 kssj = new Date(kssj.setMinutes(kssj.getMinutes() + tzsj)); 2410 kssj = new Date(kssj.setMinutes(kssj.getMinutes() + tzsj));
2115 } 2411 }
2116 } 2412 }
  2413 + // 返回结果集.
2117 return rs; 2414 return rs;
2118 }, 2415 },
2119 2416
@@ -2148,9 +2445,9 @@ var BaseFun = function() { @@ -2148,9 +2445,9 @@ var BaseFun = function() {
2148 kssj,dataMap.zwcArr[1],cara[c],dataMap.bcTypeArr.cf, 2445 kssj,dataMap.zwcArr[1],cara[c],dataMap.bcTypeArr.cf,
2149 dataMap.dira[cctag],xhNo++,0,map,0,null,null,null,0,0));// 晚餐班次 2446 dataMap.dira[cctag],xhNo++,0,map,0,null,null,null,0,0));// 晚餐班次
2150 }*/ 2447 }*/
2151 - var tzsj = baseF.isgfsjd01(kssj,dataMap) ? dataMap.gftzsj[cctag] : dataMap.dgtzsj[cctag]; 2448 + var tzsj = baseF.isPeakTimeScope(kssj,dataMap) ? dataMap.gftzsj[cctag] : dataMap.dgtzsj[cctag];
2152 // var tzsj = dataMap.ztjxA[cctag]; 2449 // var tzsj = dataMap.ztjxA[cctag];
2153 - var _xxsj = baseF.getxssj(dataMap.zgfsjd,dataMap.wgfsjd,kssj,dataMap.pcxssjArr,dataMap.gfxxsjArr,cctag);// 获取行驶时间 2450 + var _xxsj = baseF.getByDirTravelTime(dataMap.zgfsjd,dataMap.wgfsjd,kssj,dataMap.pcxssjArr,dataMap.gfxxsjArr,cctag);// 获取行驶时间
2154 var xs_tzsj = baseF.isLastbc(kssj,endTime,tzsj,_xxsj) ? 0 : tzsj; 2451 var xs_tzsj = baseF.isLastbc(kssj,endTime,tzsj,_xxsj) ? 0 : tzsj;
2155 rs.push(baseF.getbcObj( 2452 rs.push(baseF.getbcObj(
2156 kssj,_xxsj,cara[c],dataMap.bcTypeArr.normal, 2453 kssj,_xxsj,cara[c],dataMap.bcTypeArr.normal,
@@ -2162,7 +2459,7 @@ var BaseFun = function() { @@ -2162,7 +2459,7 @@ var BaseFun = function() {
2162 return rs; 2459 return rs;
2163 }, 2460 },
2164 2461
2165 - isgfsjd01 : function(kssj,dataMap) { 2462 + isPeakTimeScope : function(kssj,dataMap) {
2166 var tag = false; 2463 var tag = false;
2167 if((dataMap.zgfsjd[0].st <= kssj && kssj<= dataMap.zgfsjd[0].ed ) || 2464 if((dataMap.zgfsjd[0].st <= kssj && kssj<= dataMap.zgfsjd[0].ed ) ||
2168 ( dataMap.wgfsjd[0].st <= kssj && kssj <= dataMap.wgfsjd[0].ed)) 2465 ( dataMap.wgfsjd[0].st <= kssj && kssj <= dataMap.wgfsjd[0].ed))
@@ -2205,38 +2502,9 @@ var BaseFun = function() { @@ -2205,38 +2502,9 @@ var BaseFun = function() {
2205 } 2502 }
2206 return result; 2503 return result;
2207 }, 2504 },
2208 -  
2209 - splitBxRc02 : function(str) {  
2210 - var list = new Array(),rsa = new Array();  
2211 - var gsgd = baseF.getBxLs();  
2212 - var bxrcAr = str.split(',');  
2213 - for(var s = 0 ; s< bxrcAr.length;s++) {  
2214 - var s1a = bxrcAr[s].split('/');  
2215 - var rs = parseInt(s1a[1]);  
2216 - var fpcls = parseInt(s1a[2]);  
2217 - var gsavg = parseInt(s1a[3]);  
2218 - var gsgdIndex = 0,hoursV = 0.0,minueV='' ;  
2219 - for(var g = 0 ; g < gsgd.length; g++) {  
2220 - if(gsgd[g].type == s1a[0]) {  
2221 - gsgdIndex = g;  
2222 - hoursV = gsgd[g].hoursV;  
2223 - minueV = gsgd[g].minueV;  
2224 - }  
2225 - }  
2226 - list.push({'type':s1a[0],  
2227 - 'rs':rs,  
2228 - 'fpcls':fpcls,  
2229 - 'hoursV':hoursV,  
2230 - 'minueV':minueV,  
2231 - 'gsavg' : gsavg});  
2232 - rsa.push(rs);  
2233 - }  
2234 - return {'data':list.sort(function(a,b){return b.rs-a.rs}),'rsa':rsa.sort().reverse()};  
2235 - },  
2236 -  
2237 splitBxRc : function(str) { 2505 splitBxRc : function(str) {
2238 var list = new Array(),rsa = new Array();; 2506 var list = new Array(),rsa = new Array();;
2239 - var gsgd = baseF.getBxLs(); 2507 + var gsgd = baseF.getBcTypeAndWorkHuorsVConstant();
2240 var bxrcAr = str.split(','); 2508 var bxrcAr = str.split(',');
2241 for(var s = 0 ; s< bxrcAr.length;s++) { 2509 for(var s = 0 ; s< bxrcAr.length;s++) {
2242 var s1a = bxrcAr[s].split('/'); 2510 var s1a = bxrcAr[s].split('/');
@@ -2265,7 +2533,7 @@ var BaseFun = function() { @@ -2265,7 +2533,7 @@ var BaseFun = function() {
2265 * 2533 *
2266 * @return 返回一个工时规定数组集合. 2534 * @return 返回一个工时规定数组集合.
2267 * */ 2535 * */
2268 - getBxLs : function() { 2536 + getBcTypeAndWorkHuorsVConstant : function() {
2269 return [{'type':'六工一休','hoursV':6.66, 'minueV':'6:40'}, 2537 return [{'type':'六工一休','hoursV':6.66, 'minueV':'6:40'},
2270 {'type':'五工一休','hoursV':6.85, 'minueV':'6:51'}, 2538 {'type':'五工一休','hoursV':6.85, 'minueV':'6:51'},
2271 {'type':'四工一休','hoursV':7.14, 'minueV':'7:08'}, 2539 {'type':'四工一休','hoursV':7.14, 'minueV':'7:08'},
@@ -2318,7 +2586,7 @@ var BaseFun = function() { @@ -2318,7 +2586,7 @@ var BaseFun = function() {
2318 * @return : 返回一个数组对象。这里返回的是时刻表明细数据 2586 * @return : 返回一个数组对象。这里返回的是时刻表明细数据
2319 **/ 2587 **/
2320 tzsmbcsj : function(list,smbcsj,sj,cl,zd,lbsj) { 2588 tzsmbcsj : function(list,smbcsj,sj,cl,zd,lbsj) {
2321 - var _obj = baseF.getsxAndxxbc(list); 2589 + var _obj = baseF.getUpAndDownBc(list);
2322 baseF.tcbc(_obj.sxbc,smbcsj[0].kssj,smbcsj[0].jssj);// 剔除上行不在时间范围内的班次 2590 baseF.tcbc(_obj.sxbc,smbcsj[0].kssj,smbcsj[0].jssj);// 剔除上行不在时间范围内的班次
2323 baseF.tcbc(_obj.xxbc,smbcsj[1].kssj,smbcsj[1].jssj);// 剔除下行不在时间范围内的班次 2591 baseF.tcbc(_obj.xxbc,smbcsj[1].kssj,smbcsj[1].jssj);// 剔除下行不在时间范围内的班次
2324 baseF.dzsmsj(_obj.xxbc,smbcsj[1].kssj,smbcsj[1].jssj,_obj.sxbc);// 调整下行首末班车时间 2592 baseF.dzsmsj(_obj.xxbc,smbcsj[1].kssj,smbcsj[1].jssj,_obj.sxbc);// 调整下行首末班车时间
@@ -2335,7 +2603,7 @@ var BaseFun = function() { @@ -2335,7 +2603,7 @@ var BaseFun = function() {
2335 * @return : 返回一个数组对象。这里返回的是时刻表明细数据 2603 * @return : 返回一个数组对象。这里返回的是时刻表明细数据
2336 **/ 2604 **/
2337 tzsmbcsj01 : function(list,smbcsj,sj,cl,zd,lbsj,dm) { 2605 tzsmbcsj01 : function(list,smbcsj,sj,cl,zd,lbsj,dm) {
2338 - var _obj = baseF.getsxAndxxbc(list,dm); 2606 + var _obj = baseF.getUpAndDownBc(list,dm);
2339 baseF.tcbc(_obj.sxbc,smbcsj[0].kssj,smbcsj[0].jssj ,_obj.xxbc);// 剔除上行不在时间范围内的班次 2607 baseF.tcbc(_obj.sxbc,smbcsj[0].kssj,smbcsj[0].jssj ,_obj.xxbc);// 剔除上行不在时间范围内的班次
2340 baseF.tcbc(_obj.xxbc,smbcsj[1].kssj,smbcsj[1].jssj,_obj.sxbc);// 剔除下行不在时间范围内的班次 2608 baseF.tcbc(_obj.xxbc,smbcsj[1].kssj,smbcsj[1].jssj,_obj.sxbc);// 剔除下行不在时间范围内的班次
2341 if(smbcsj[1].jssj < smbcsj[0].jssj ) { 2609 if(smbcsj[1].jssj < smbcsj[0].jssj ) {
@@ -2493,23 +2761,6 @@ var BaseFun = function() { @@ -2493,23 +2761,6 @@ var BaseFun = function() {
2493 return tag; 2761 return tag;
2494 }, 2762 },
2495 2763
2496 - getsxAndxxbc : function(json,dataMap) {  
2497 - var upArray = new Array(),downArray = new Array(),qt = new Array();  
2498 - for(var j = 0 ; j< json.length ; j++) {  
2499 - if(json[j].bcType== dataMap.bcTypeArr.normal ||  
2500 - json[j].bcType== dataMap.bcTypeArr.region ||  
2501 - json[j].bcType== dataMap.bcTypeArr.major ||  
2502 - json[j].bcType== dataMap.bcTypeArr.venting) {  
2503 - if(json[j].xlDir == dataMap.dira[0])  
2504 - upArray.push(json[j]);  
2505 - else if(json[j].xlDir == dataMap.dira[1])  
2506 - downArray.push(json[j]);  
2507 - }else if(json[j].bcType == dataMap.bcTypeArr.cf) {  
2508 - qt.push(json[j]);  
2509 - }  
2510 - }  
2511 - return {'sxbc' : upArray,'xxbc' : downArray,'qt': qt};  
2512 - },  
2513 /** 2764 /**
2514 * @description : (TODO) 在同一块路牌下,根据发车序号进行顺序排序 2765 * @description : (TODO) 在同一块路牌下,根据发车序号进行顺序排序
2515 * 2766 *
@@ -2541,13 +2792,13 @@ var BaseFun = function() { @@ -2541,13 +2792,13 @@ var BaseFun = function() {
2541 var ags = {'tcc_id':lastObj.tcc,'skbName':lastObj.ttinfo,'lineName':lastObj.xl+'_'}; 2792 var ags = {'tcc_id':lastObj.tcc,'skbName':lastObj.ttinfo,'lineName':lastObj.xl+'_'};
2542 for(var t = 0 ; t<num;t++){ 2793 for(var t = 0 ; t<num;t++){
2543 cctag = obj.configuration.dataMap.map.linePlayType=='1'? 0: baseF.getfx(1,cctag); 2794 cctag = obj.configuration.dataMap.map.linePlayType=='1'? 0: baseF.getfx(1,cctag);
2544 - var _xxsj = baseF.getxssj(obj.configuration.dataMap.zgfsjd, 2795 + var _xxsj = baseF.getByDirTravelTime(obj.configuration.dataMap.zgfsjd,
2545 obj.configuration.dataMap.wgfsjd, 2796 obj.configuration.dataMap.wgfsjd,
2546 kssj, 2797 kssj,
2547 obj.configuration.dataMap.pcxssjArr, 2798 obj.configuration.dataMap.pcxssjArr,
2548 obj.configuration.dataMap.gfxxsjArr,cctag);// 获取行驶时间 2799 obj.configuration.dataMap.gfxxsjArr,cctag);// 获取行驶时间
2549 // tzsj = obj.configuration.dataMap.ztjxA[cctag]; 2800 // tzsj = obj.configuration.dataMap.ztjxA[cctag];
2550 - var tzjx = baseF.isgfsjd01(kssj,obj.configuration.dataMap) ? obj.configuration.dataMap.gftzsj[cctag] : obj.configuration.dataMap.dgtzsj[cctag]; 2801 + var tzjx = baseF.isPeakTimeScope(kssj,obj.configuration.dataMap) ? obj.configuration.dataMap.gftzsj[cctag] : obj.configuration.dataMap.dgtzsj[cctag];
2551 var temptzsj = ((t == num-1) ? 0 : tzsj); 2802 var temptzsj = ((t == num-1) ? 0 : tzsj);
2552 /*var xs_tzsj = baseF.isLastbc(kssj,endTime,tzsj,_xxsj) ? 0 : tzsj;*/ 2803 /*var xs_tzsj = baseF.isLastbc(kssj,endTime,tzsj,_xxsj) ? 0 : tzsj;*/
2553 jsonArray.push(baseF.getbcObj( kssj, 2804 jsonArray.push(baseF.getbcObj( kssj,
@@ -2643,7 +2894,7 @@ var BaseFun = function() { @@ -2643,7 +2894,7 @@ var BaseFun = function() {
2643 for(var i = 0 ; i<numqs;i++) { 2894 for(var i = 0 ; i<numqs;i++) {
2644 cctag = obj.configuration.dataMap.map.linePlayType=='1' ? 0 : bf.getfx(fxTagDm,cctag); 2895 cctag = obj.configuration.dataMap.map.linePlayType=='1' ? 0 : bf.getfx(fxTagDm,cctag);
2645 fxTagDm = 1; 2896 fxTagDm = 1;
2646 - var _xxsj = bf.getxssj(obj.configuration.dataMap.zgfsjd, 2897 + var _xxsj = bf.getByDirTravelTime(obj.configuration.dataMap.zgfsjd,
2647 obj.configuration.dataMap.wgfsjd,kssj, 2898 obj.configuration.dataMap.wgfsjd,kssj,
2648 obj.configuration.dataMap.pcxssjArr, 2899 obj.configuration.dataMap.pcxssjArr,
2649 obj.configuration.dataMap.gfxxsjArr,cctag);// 获取行驶时间 2900 obj.configuration.dataMap.gfxxsjArr,cctag);// 获取行驶时间
@@ -2743,7 +2994,7 @@ var BaseFun = function() { @@ -2743,7 +2994,7 @@ var BaseFun = function() {
2743 /*if(parseInt((baseF.getDateTime(bcArr[l+1].fcsj) - baseF.getDateTime(bcArr[l].fcsj))/60000) ==_fcjx) 2994 /*if(parseInt((baseF.getDateTime(bcArr[l+1].fcsj) - baseF.getDateTime(bcArr[l].fcsj))/60000) ==_fcjx)
2744 continue;*/ 2995 continue;*/
2745 bcArr[l].fcsj = baseF.getTimeStr(fcnosj); 2996 bcArr[l].fcsj = baseF.getTimeStr(fcnosj);
2746 - var _xxsj = baseF.getxssj(dataMap.zgfsjd, 2997 + var _xxsj = baseF.getByDirTravelTime(dataMap.zgfsjd,
2747 dataMap.wgfsjd,fcnosj,dataMap.pcxssjArr, 2998 dataMap.wgfsjd,fcnosj,dataMap.pcxssjArr,
2748 dataMap.gfxxsjArr,baseF.dirDmToIndex(bcArr[l].xlDir));// 获取行驶时间 2999 dataMap.gfxxsjArr,baseF.dirDmToIndex(bcArr[l].xlDir));// 获取行驶时间
2749 bcArr[l].bcsj = _xxsj; 3000 bcArr[l].bcsj = _xxsj;
@@ -2762,7 +3013,7 @@ var BaseFun = function() { @@ -2762,7 +3013,7 @@ var BaseFun = function() {
2762 ddsj.setHours(fcsj.getHours()); 3013 ddsj.setHours(fcsj.getHours());
2763 ddsj.setMinutes(fcsj.getMinutes()+_fcjx); 3014 ddsj.setMinutes(fcsj.getMinutes()+_fcjx);
2764 sjdbcArr[l].fcsj = baseF.getTimeStr(ddsj); 3015 sjdbcArr[l].fcsj = baseF.getTimeStr(ddsj);
2765 - var _xxsj = baseF.getxssj(dataMap.zgfsjd, 3016 + var _xxsj = baseF.getByDirTravelTime(dataMap.zgfsjd,
2766 dataMap.wgfsjd,ddsj,dataMap.pcxssjArr, 3017 dataMap.wgfsjd,ddsj,dataMap.pcxssjArr,
2767 dataMap.gfxxsjArr,baseF.dirDmToIndex(sjdbcArr[l].xlDir));// 获取行驶时间 3018 dataMap.gfxxsjArr,baseF.dirDmToIndex(sjdbcArr[l].xlDir));// 获取行驶时间
2768 sjdbcArr[l].bcsj = _xxsj; 3019 sjdbcArr[l].bcsj = _xxsj;
@@ -2835,7 +3086,7 @@ var BaseFun = function() { @@ -2835,7 +3086,7 @@ var BaseFun = function() {
2835 xgbc.fcsj = baseF.getTimeStr(dqbcddsj);// 修改下个班次的发车时间. 3086 xgbc.fcsj = baseF.getTimeStr(dqbcddsj);// 修改下个班次的发车时间.
2836 var _xxsj = xgbc.bcsj; 3087 var _xxsj = xgbc.bcsj;
2837 /*if(!tagb && type=='cf') { 3088 /*if(!tagb && type=='cf') {
2838 - _xxsj = baseF.getxssj(dataMap.zgfsjd, 3089 + _xxsj = baseF.getByDirTravelTime(dataMap.zgfsjd,
2839 dataMap.wgfsjd,dqbcddsj,dataMap.pcxssjArr, 3090 dataMap.wgfsjd,dqbcddsj,dataMap.pcxssjArr,
2840 dataMap.gfxxsjArr,baseF.dirDmToIndex(xgbc.xlDir));// 获取行驶时间 3091 dataMap.gfxxsjArr,baseF.dirDmToIndex(xgbc.xlDir));// 获取行驶时间
2841 }*/ 3092 }*/
@@ -2986,7 +3237,7 @@ var BaseFun = function() { @@ -2986,7 +3237,7 @@ var BaseFun = function() {
2986 var cf = 0; 3237 var cf = 0;
2987 while(d1<d2) { 3238 while(d1<d2) {
2988 dir = baseF.getfx(1,dir); 3239 dir = baseF.getfx(1,dir);
2989 - var dx = baseF.getxssj(zg,wa,d1,pc,gf,dir) + ztjxA[dir]; 3240 + var dx = baseF.getByDirTravelTime(zg,wa,d1,pc,gf,dir) + ztjxA[dir];
2990 if(d1> new Date (baseF.getCFDate(10,30)) && 3241 if(d1> new Date (baseF.getCFDate(10,30)) &&
2991 d1<new Date (baseF.getCFDate(12,0)) && cf <=0) { 3242 d1<new Date (baseF.getCFDate(12,0)) && cf <=0) {
2992 dx = dx + 20; 3243 dx = dx + 20;
src/main/resources/static/pages/base/timesmodel/js/gantt.js
@@ -65,7 +65,7 @@ @@ -65,7 +65,7 @@
65 // 采用班型人次数据获取渲染时刻表明细图形的配置参数数据. 65 // 采用班型人次数据获取渲染时刻表明细图形的配置参数数据.
66 // data = BaseFun.BXPplaceClassesTime(stopAraay,CSMap.maxCar,map,seMap,dataMap,getylp(CSMap.maxCar).lpNoA); 66 // data = BaseFun.BXPplaceClassesTime(stopAraay,CSMap.maxCar,map,seMap,dataMap,getylp(CSMap.maxCar).lpNoA);
67 // data = BaseFun.BXPplaceClassesTime01(stopAraay,CSMap.maxCar,map,seMap,dataMap,getylp(CSMap.maxCar).lpNoA); 67 // data = BaseFun.BXPplaceClassesTime01(stopAraay,CSMap.maxCar,map,seMap,dataMap,getylp(CSMap.maxCar).lpNoA);
68 - data = BaseFun.BXPplaceClassesTime02(stopAraay,CSMap.maxCar,map,seMap,dataMap,getylp(CSMap.maxCar).lpNoA); 68 + data = BaseFun.BXPplaceClassesTime02(stopAraay,CSMap.maxCar,map,seMap,dataMap);
69 } 69 }
70 70
71 }else { 71 }else {