Commit 06276a731c2b8e78ac6aa7d27cec51a562c630af

Authored by 李强
1 parent 5c10bae3

bsthlq <2519941818@qq.com>

src/main/resources/static/pages/base/timesmodel/js/base-fun.js
@@ -325,7 +325,7 @@ var BaseFun = function() { @@ -325,7 +325,7 @@ var BaseFun = function() {
325 }, 325 },
326 326
327 /** 327 /**
328 - * @description : (TODO) 调整某班型下的各个路牌对应的班次以及工时、停站时间、是否分班. 328 + * @description : (TODO) 调整某班型下的各个路牌对应的班次以及工时、停站时间、是否分班. -- 这里我们也叫抽车
329 * @param bxlpbc 班型下的各个路牌的所有班次数组. 329 * @param bxlpbc 班型下的各个路牌的所有班次数组.
330 * @param map 表单参数信息 330 * @param map 表单参数信息
331 * @param dataMap 封装的 以上、下行方向成对存在的 一些参数数组 [下标0 -- 代表上行 ; 下标1 -- 代表下行]. 331 * @param dataMap 封装的 以上、下行方向成对存在的 一些参数数组 [下标0 -- 代表上行 ; 下标1 -- 代表下行].
@@ -385,8 +385,13 @@ var BaseFun = function() { @@ -385,8 +385,13 @@ var BaseFun = function() {
385 abstractBcByWorkTime : function(bxlpbc , map , dataMap , saa , cara , bxrcObj , dgminpcs) { 385 abstractBcByWorkTime : function(bxlpbc , map , dataMap , saa , cara , bxrcObj , dgminpcs) {
386 var rsultA = new Array(); 386 var rsultA = new Array();
387 for(var a = 0 ; a < bxlpbc.length ; a++) { 387 for(var a = 0 ; a < bxlpbc.length ; a++) {
  388 + /*if(a>0)
  389 + continue;*/
388 // 定义该版型下对应的路牌的班次数组、班次数组长度、该路牌上是否有首末班车。 390 // 定义该版型下对应的路牌的班次数组、班次数组长度、该路牌上是否有首末班车。
389 - var lpbc = bxlpbc[a].lpbc, lpbclen_ , isFlag = baseF.lpDownIsHaveFirstAndLastBc(lpbc , dataMap.smbcsjArr); 391 + var lpbc = bxlpbc[a].lpbc, lpbclen_ = lpbc.length;
  392 + if(lpbclen_<=0)
  393 + continue;
  394 + var isFlag = baseF.lpDownIsHaveFirstAndLastBc(lpbc , dataMap.smbcsjArr);
390 // 定义当前路牌的初始工时、班型对应的标准工时 395 // 定义当前路牌的初始工时、班型对应的标准工时
391 var initCountGs = bxlpbc[a].initCountGs , bzgs = bxlpbc[a].bzgs; 396 var initCountGs = bxlpbc[a].initCountGs , bzgs = bxlpbc[a].bzgs;
392 // 定义初始工时与日平均工时差值 397 // 定义初始工时与日平均工时差值
@@ -395,17 +400,15 @@ var BaseFun = function() { @@ -395,17 +400,15 @@ var BaseFun = function() {
395 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();
396 // 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();
397 if(bxrcObj.type == '五工二休') { 402 if(bxrcObj.type == '五工二休') {
398 - if(lpbclen_>0) {  
399 - // 定义晚高峰后能剔除多少班次数.  
400 - var wgfhtcbcNum = parseInt(( dataMap.wgfzhsjd[0].ed - dataMap.wgfsjd[0].ed ) / (60000 * saa[0].zzsj.dgzzsj));  
401 - // 定义时间段内剔除班次规则.  
402 - tcbcgzA.push({'minsj': dataMap.wgfsjd[0].ed , 'maxsj' : dataMap.wgfzhsjd[0].ed , 'deletebcNum' : wgfhtcbcNum},  
403 - {'minsj': dataMap.zgfsjd[0].ed , 'maxsj' : dataMap.wgfsjd[0].st , 'deletebcNum' : deletebcNum - wgfhtcbcNum});  
404 - // 逆序排序剔除.  
405 - lpbc.sort(function(r,s){return s.fcno-r.fcno});  
406 - // 剔除不在高峰时间段内的班次.  
407 - baseF.spliceBc02(lpbc , tcbcgzA , dataMap , 'desc' , true);  
408 - } 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);
409 }else { 412 }else {
410 /*console.log(bxlpbc[a].lpNo , initCountGs , bzgs , saa[0].zzsj.dgzzsj , 413 /*console.log(bxlpbc[a].lpNo , initCountGs , bzgs , saa[0].zzsj.dgzzsj ,
411 initCountGs - bzgs , (initCountGs - bzgs) /saa[0].zzsj.dgzzsj , 414 initCountGs - bzgs , (initCountGs - bzgs) /saa[0].zzsj.dgzzsj ,
@@ -416,7 +419,7 @@ var BaseFun = function() { @@ -416,7 +419,7 @@ var BaseFun = function() {
416 // 为了满足工时的要求,在低谷断开一段时间. 419 // 为了满足工时的要求,在低谷断开一段时间.
417 if(dgminpcs>0 && dgminpcs <= bxrcObj.fpcls ) { 420 if(dgminpcs>0 && dgminpcs <= bxrcObj.fpcls ) {
418 if( (a + 1) <= dgminpcs) { 421 if( (a + 1) <= dgminpcs) {
419 - var dgzjsj = baseF.getDateTime('12:30'); 422 + var dgzjsj = baseF.getDateTime('13:00');
420 /*var zgfyh = dataMap.zgfsjd[0].ed; 423 /*var zgfyh = dataMap.zgfsjd[0].ed;
421 zgfyh.setMinutes(zgfyh.getMinutes()+ Math.min.apply(null, dataMap.dgxxsjArr));*/ 424 zgfyh.setMinutes(zgfyh.getMinutes()+ Math.min.apply(null, dataMap.dgxxsjArr));*/
422 if( a % 2 == 0) { 425 if( a % 2 == 0) {
@@ -443,17 +446,17 @@ var BaseFun = function() { @@ -443,17 +446,17 @@ var BaseFun = function() {
443 baseF.spliceBc02(lpbc , tcbcgzA , dataMap , true); 446 baseF.spliceBc02(lpbc , tcbcgzA , dataMap , true);
444 }else { 447 }else {
445 // 按规则剔除班次.不分班.路牌班次不会断开. 448 // 按规则剔除班次.不分班.路牌班次不会断开.
446 - baseF.isdk02(lpbc , dataMap , deletebcNum , false); 449 + baseF.isdk02(lpbc , dataMap , saa , deletebcNum , false);
447 } 450 }
448 // 该班型下的路牌 不存在分班路牌. 451 // 该班型下的路牌 不存在分班路牌.
449 }else if(dgminpcs == 0){ 452 }else if(dgminpcs == 0){
450 // 按规则剔除班次.不分班.路牌班次不会断开. 453 // 按规则剔除班次.不分班.路牌班次不会断开.
451 - baseF.isdk02(lpbc , dataMap , deletebcNum , false); 454 + baseF.isdk02(lpbc , dataMap , saa , deletebcNum , false);
452 } 455 }
453 // 双档 一个路牌两档劳动力 456 // 双档 一个路牌两档劳动力
454 }else if(bxlpbc[a].keepOff==2) { 457 }else if(bxlpbc[a].keepOff==2) {
455 // 按规则剔除班次.分班.但是路牌班次不会断开. 458 // 按规则剔除班次.分班.但是路牌班次不会断开.
456 - baseF.isdk02(lpbc , dataMap , deletebcNum , true); 459 + baseF.isdk02(lpbc , dataMap , saa , deletebcNum , true);
457 } 460 }
458 } 461 }
459 rsultA = rsultA.concat(lpbc); 462 rsultA = rsultA.concat(lpbc);
@@ -480,20 +483,28 @@ var BaseFun = function() { @@ -480,20 +483,28 @@ var BaseFun = function() {
480 * 483 *
481 * 484 *
482 */ 485 */
483 - isdk02 : function(lpbc , dataMap , deletebcNum , isfb) {  
484 - if(deletebcNum > 0) {  
485 - var zgfzqtcbcNum = parseInt(( dataMap.zgfzqsjd[0].ed - dataMap.zgfzqsjd[0].st ) / (60000 * saa[0].zzsj.dgzzsj)),  
486 - wgfhtcbcNum = parseInt(( dataMap.wgfzhsjd[0].ed - dataMap.wgfzhsjd[0].st ) / (60000 * saa[0].zzsj.dgzzsj))  
487 - tcbcgzA = new Array();  
488 - 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) {
489 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});
490 - }else if(zgfzqtcbcNum >= deletebcNum){ 493 + }else if(lpbc[lpbc.length-1].fcsj == dataMap.smbcsjArr[0].jssj || lpbc[0].fcsj == dataMap.smbcsjArr[1].jssj) {
491 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});
492 - }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));
493 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},
494 - {'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});
495 } 500 }
496 - // 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 + }*/
497 baseF.spliceBc02(lpbc , tcbcgzA , dataMap , isfb); 508 baseF.spliceBc02(lpbc , tcbcgzA , dataMap , isfb);
498 } 509 }
499 }, 510 },
@@ -699,21 +710,9 @@ var BaseFun = function() { @@ -699,21 +710,9 @@ var BaseFun = function() {
699 var list = baseF.getBxRcListCollection(map.bxrc); 710 var list = baseF.getBxRcListCollection(map.bxrc);
700 // 把班型分配到对应的具体路牌上. 711 // 把班型分配到对应的具体路牌上.
701 baseF.bxAlloTotLp(list,cara); 712 baseF.bxAlloTotLp(list,cara);
702 -  
703 // 第六步 抽车来满足工时. 713 // 第六步 抽车来满足工时.
704 var tempA = baseF.abstractCar(list , markArray , cara , saa , dataMap , map); 714 var tempA = baseF.abstractCar(list , markArray , cara , saa , dataMap , map);
705 -  
706 return {'json':baseF.addjcclcbc01(cara,tempA,dataMap,saa,map),'bxrcgs':null}; 715 return {'json':baseF.addjcclcbc01(cara,tempA,dataMap,saa,map),'bxrcgs':null};
707 - // return {'json':baseF.addjcclcbc01(cara,tempA,dataMap,saa,map),'bxrcgs':null};  
708 - // return {'json':tempA,'bxrcgs':null};  
709 -  
710 -  
711 -  
712 - // return {'json':tempA,'bxrcgs':null};  
713 - // return {'json':baseF.addjcclcbc01(cara,ttsmbA,dataMap,saa,map),'bxrcgs':null};  
714 - // return {'json':ttsmbA,'bxrcgs':null};  
715 - // return {'json':rsjar,'bxrcgs':null};  
716 - // return {'json':baseF.addjcclcbc01(cara,rsjar,dataMap,saa,map),'bxrcgs':null};  
717 }, 716 },
718 717
719 /** 718 /**