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 325 },
326 326  
327 327 /**
328   - * @description : (TODO) 调整某班型下的各个路牌对应的班次以及工时、停站时间、是否分班.
  328 + * @description : (TODO) 调整某班型下的各个路牌对应的班次以及工时、停站时间、是否分班. -- 这里我们也叫抽车
329 329 * @param bxlpbc 班型下的各个路牌的所有班次数组.
330 330 * @param map 表单参数信息
331 331 * @param dataMap 封装的 以上、下行方向成对存在的 一些参数数组 [下标0 -- 代表上行 ; 下标1 -- 代表下行].
... ... @@ -385,8 +385,13 @@ var BaseFun = function() {
385 385 abstractBcByWorkTime : function(bxlpbc , map , dataMap , saa , cara , bxrcObj , dgminpcs) {
386 386 var rsultA = new Array();
387 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 396 var initCountGs = bxlpbc[a].initCountGs , bzgs = bxlpbc[a].bzgs;
392 397 // 定义初始工时与日平均工时差值
... ... @@ -395,17 +400,15 @@ var BaseFun = function() {
395 400 var deletebcNum = Math.ceil((initCountGs - bxlpbc[a].gsavg) / saa[0].zzsj.dgzzsj) , tcbcgzA = new Array();
396 401 // var deletebcNum = parseInt((initCountGs - bxlpbc[a].gsavg) / saa[0].zzsj.dgzzsj) , tcbcgzA = new Array();
397 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 412 }else {
410 413 /*console.log(bxlpbc[a].lpNo , initCountGs , bzgs , saa[0].zzsj.dgzzsj ,
411 414 initCountGs - bzgs , (initCountGs - bzgs) /saa[0].zzsj.dgzzsj ,
... ... @@ -416,7 +419,7 @@ var BaseFun = function() {
416 419 // 为了满足工时的要求,在低谷断开一段时间.
417 420 if(dgminpcs>0 && dgminpcs <= bxrcObj.fpcls ) {
418 421 if( (a + 1) <= dgminpcs) {
419   - var dgzjsj = baseF.getDateTime('12:30');
  422 + var dgzjsj = baseF.getDateTime('13:00');
420 423 /*var zgfyh = dataMap.zgfsjd[0].ed;
421 424 zgfyh.setMinutes(zgfyh.getMinutes()+ Math.min.apply(null, dataMap.dgxxsjArr));*/
422 425 if( a % 2 == 0) {
... ... @@ -443,17 +446,17 @@ var BaseFun = function() {
443 446 baseF.spliceBc02(lpbc , tcbcgzA , dataMap , true);
444 447 }else {
445 448 // 按规则剔除班次.不分班.路牌班次不会断开.
446   - baseF.isdk02(lpbc , dataMap , deletebcNum , false);
  449 + baseF.isdk02(lpbc , dataMap , saa , deletebcNum , false);
447 450 }
448 451 // 该班型下的路牌 不存在分班路牌.
449 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 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 462 rsultA = rsultA.concat(lpbc);
... ... @@ -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 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 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 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 508 baseF.spliceBc02(lpbc , tcbcgzA , dataMap , isfb);
498 509 }
499 510 },
... ... @@ -699,21 +710,9 @@ var BaseFun = function() {
699 710 var list = baseF.getBxRcListCollection(map.bxrc);
700 711 // 把班型分配到对应的具体路牌上.
701 712 baseF.bxAlloTotLp(list,cara);
702   -
703 713 // 第六步 抽车来满足工时.
704 714 var tempA = baseF.abstractCar(list , markArray , cara , saa , dataMap , map);
705   -
706 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 /**
... ...