Commit 06276a731c2b8e78ac6aa7d27cec51a562c630af
1 parent
5c10bae3
bsthlq <2519941818@qq.com>
Showing
1 changed file
with
38 additions
and
39 deletions
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 | /** |