Commit 2f8d0f5fe2a9290ca78530aaa6a91d572f055e2a
Merge branch 'minhang' of http://222.66.0.204:8090/panzhaov5/bsth_control into minhang
Showing
4 changed files
with
153 additions
and
72 deletions
src/main/resources/static/pages/base/timesmodel/css/index.css
src/main/resources/static/pages/base/timesmodel/js/base-fun.js
| ... | ... | @@ -382,87 +382,171 @@ var BaseFun = function() { |
| 382 | 382 | * |
| 383 | 383 | * |
| 384 | 384 | **/ |
| 385 | - abstractBcByWorkTime : function(bxlpbc , map , dataMap , saa , cara , bxrcObj , dgminpcs) { | |
| 386 | - var rsultA = new Array(); | |
| 385 | + abstractBcByWorkTime : function(bxlpbc , map , dataMap , saa , cara , bxrcObj , dgminpcs ,deletebcNum) { | |
| 386 | + var rsultA = new Array() , dgzjsj = baseF.getDateTime('13:00'); | |
| 387 | + // 定义13:00 ~ 晚高峰开始以前剔除规则. 如果剔除的班次数不够,则去晚高峰之后剔除剩下的班次. | |
| 388 | + var xwmaxtcbcNum = parseInt(( dataMap.wgfsjd[0].st - dgzjsj) / (60000 * saa[0].zzsj.dgzzsj)); | |
| 389 | + // 定义早高峰结束 ~ 13:00 剔除规则.如果剔除的班次数不够,则去晚高峰之后剔除剩下的班次. | |
| 390 | + var swmaxtcbcNum = parseInt(( dgzjsj - dataMap.zgfsjd[0].ed) / (60000 * saa[0].zzsj.dgzzsj)); | |
| 391 | + var sumGs = 0; | |
| 387 | 392 | for(var a = 0 ; a < bxlpbc.length ; a++) { |
| 388 | - /*if(a>0) | |
| 389 | - continue;*/ | |
| 390 | 393 | // 定义该版型下对应的路牌的班次数组、班次数组长度、该路牌上是否有首末班车。 |
| 391 | 394 | var lpbc = bxlpbc[a].lpbc, lpbclen_ = lpbc.length; |
| 392 | 395 | if(lpbclen_<=0) |
| 393 | 396 | continue; |
| 394 | - var isFlag = baseF.lpDownIsHaveFirstAndLastBc(lpbc , dataMap.smbcsjArr); | |
| 395 | - // 定义当前路牌的初始工时、班型对应的标准工时 | |
| 396 | - var initCountGs = bxlpbc[a].initCountGs , bzgs = bxlpbc[a].bzgs; | |
| 397 | - // 定义初始工时与日平均工时差值 | |
| 398 | - var initdx = initCountGs - bxlpbc[a].gsavg; | |
| 399 | - // 定义剔除班次数、剔除的时间段. | |
| 400 | - var deletebcNum = Math.ceil((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 | + var isFlag = baseF.lpDownIsHaveFirstAndLastBc(lpbc , dataMap.smbcsjArr) , tcbcgzA = new Array(); | |
| 402 | 398 | if(bxrcObj.type == '五工二休') { |
| 403 | 399 | // 定义晚高峰后能剔除多少班次数. |
| 404 | 400 | 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}); | |
| 401 | + if(isFlag) { | |
| 402 | + // 定义时间段内剔除班次规则. | |
| 403 | + tcbcgzA.push({'minsj': dataMap.zgfsjd[0].ed , 'maxsj' : dataMap.wgfsjd[0].st , 'order' : 'asc' , 'deletebcNum' : deletebcNum}); | |
| 404 | + }else { | |
| 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 | + } | |
| 410 | 409 | // 剔除不在高峰时间段内的班次. |
| 411 | 410 | baseF.spliceBc02(lpbc , tcbcgzA , dataMap , 'desc' , false); |
| 412 | 411 | }else { |
| 413 | - /*console.log(bxlpbc[a].lpNo , initCountGs , bzgs , saa[0].zzsj.dgzzsj , | |
| 414 | - initCountGs - bzgs , (initCountGs - bzgs) /saa[0].zzsj.dgzzsj , | |
| 415 | - initCountGs - bxlpbc[a].gsavg , (initCountGs - bxlpbc[a].gsavg) / saa[0].zzsj.dgzzsj );*/ | |
| 416 | 412 | // 单档 一个路牌一档劳动力 |
| 417 | 413 | if(bxlpbc[a].keepOff==1) { |
| 418 | 414 | // 如果低谷至少配车数大于零,则该班型下的路牌 存在一些 分班路牌,这里的分班 指的是 这个路牌先满足的前提条件就是 是单档。 |
| 419 | 415 | // 为了满足工时的要求,在低谷断开一段时间. |
| 420 | - if(dgminpcs>0 && dgminpcs <= bxrcObj.fpcls ) { | |
| 421 | - if( (a + 1) <= dgminpcs) { | |
| 422 | - var dgzjsj = baseF.getDateTime('13:00'); | |
| 423 | - /*var zgfyh = dataMap.zgfsjd[0].ed; | |
| 424 | - zgfyh.setMinutes(zgfyh.getMinutes()+ Math.min.apply(null, dataMap.dgxxsjArr));*/ | |
| 425 | - if( a % 2 == 0) { | |
| 426 | - // 定义早高峰结束 ~ 12:30 剔除规则.如果剔除的班次数不够,则去晚高峰之后剔除剩下的班次. | |
| 427 | - var swmaxtcbcNum = parseInt(( dgzjsj - dataMap.zgfsjd[0].ed) / (60000 * saa[0].zzsj.dgzzsj)); | |
| 428 | - if(deletebcNum < swmaxtcbcNum || isFlag) { | |
| 429 | - // 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}); | |
| 431 | - }else { | |
| 432 | - tcbcgzA.push({'minsj': dataMap.zgfsjd[0].ed, 'maxsj' : dgzjsj , 'order' : 'asc' , 'deletebcNum' : swmaxtcbcNum}, | |
| 433 | - {'minsj': dataMap.wgfsjd[0].ed , 'maxsj' : dataMap.wgfzhsjd[0].ed, 'order' : 'desc' , 'deletebcNum' : deletebcNum - swmaxtcbcNum}); | |
| 434 | - } | |
| 435 | - }else { | |
| 436 | - // 定义12:30 ~ 晚高峰开始以前剔除规则. 如果剔除的班次数不够,则去晚高峰之后剔除剩下的班次. | |
| 437 | - var xwmaxtcbcNum = parseInt(( dataMap.wgfsjd[0].st - dgzjsj) / (60000 * saa[0].zzsj.dgzzsj)); | |
| 438 | - if(deletebcNum < xwmaxtcbcNum || isFlag) { | |
| 439 | - tcbcgzA.push({'minsj': dgzjsj , 'maxsj' : dataMap.wgfsjd[0].st , 'order' : 'desc', 'deletebcNum' : xwmaxtcbcNum}); | |
| 440 | - }else { | |
| 441 | - tcbcgzA.push({'minsj': dataMap.wgfsjd[0].ed , 'maxsj' : dataMap.wgfzhsjd[0].ed , 'order' : 'desc', 'deletebcNum' : deletebcNum - xwmaxtcbcNum}, | |
| 442 | - {'minsj': dgzjsj , 'maxsj' : dataMap.wgfsjd[0].st , 'order' : 'desc', 'deletebcNum' : xwmaxtcbcNum}); | |
| 443 | - } | |
| 416 | + if(dgminpcs > 0) { | |
| 417 | + if( a % 2 == 0) { | |
| 418 | + if(deletebcNum < swmaxtcbcNum || isFlag) { | |
| 419 | + tcbcgzA.push({'minsj': dataMap.zgfsjd[0].ed , 'maxsj' : dgzjsj , 'order' : 'asc' , 'deletebcNum' : deletebcNum}); | |
| 420 | + }else { | |
| 421 | + tcbcgzA.push({'minsj': dataMap.zgfsjd[0].ed, 'maxsj' : dgzjsj , 'order' : 'asc' , 'deletebcNum' : swmaxtcbcNum}, | |
| 422 | + {'minsj': dataMap.wgfsjd[0].ed , 'maxsj' : dataMap.wgfzhsjd[0].ed, 'order' : 'desc' , 'deletebcNum' : deletebcNum - swmaxtcbcNum}); | |
| 444 | 423 | } |
| 445 | - // 按规则剔除班次.并且分班.路牌班次断开. | |
| 446 | - baseF.spliceBc02(lpbc , tcbcgzA , dataMap , true); | |
| 447 | 424 | }else { |
| 448 | - // 按规则剔除班次.不分班.路牌班次不会断开. | |
| 449 | - baseF.isdk02(lpbc , dataMap , saa , deletebcNum , false); | |
| 425 | + if(deletebcNum < xwmaxtcbcNum || isFlag) { | |
| 426 | + tcbcgzA.push({'minsj': dgzjsj , 'maxsj' : dataMap.wgfsjd[0].st , 'order' : 'desc', 'deletebcNum' : deletebcNum}); | |
| 427 | + }else { | |
| 428 | + tcbcgzA.push({'minsj': dataMap.wgfsjd[0].ed , 'maxsj' : dataMap.wgfzhsjd[0].ed , 'order' : 'desc', 'deletebcNum' : deletebcNum - xwmaxtcbcNum}, | |
| 429 | + {'minsj': dgzjsj , 'maxsj' : dataMap.wgfsjd[0].st , 'order' : 'desc', 'deletebcNum' : xwmaxtcbcNum}); | |
| 430 | + } | |
| 450 | 431 | } |
| 432 | + // 按规则剔除班次.并且分班.路牌班次断开. | |
| 433 | + baseF.spliceBc02(lpbc , tcbcgzA , dataMap , true); | |
| 434 | + baseF.affimBzGs(lpbc , bxlpbc[a].bzgs, dataMap, saa , true , a); | |
| 451 | 435 | // 该班型下的路牌 不存在分班路牌. |
| 452 | 436 | }else if(dgminpcs == 0){ |
| 453 | 437 | // 按规则剔除班次.不分班.路牌班次不会断开. |
| 454 | 438 | baseF.isdk02(lpbc , dataMap , saa , deletebcNum , false); |
| 439 | + //baseF.affimBzGs(lpbc , bxlpbc[a].bzgs, dataMap, saa , false , a); | |
| 455 | 440 | } |
| 456 | 441 | // 双档 一个路牌两档劳动力 |
| 457 | 442 | }else if(bxlpbc[a].keepOff==2) { |
| 458 | 443 | // 按规则剔除班次.分班.但是路牌班次不会断开. |
| 459 | 444 | baseF.isdk02(lpbc , dataMap , saa , deletebcNum , true); |
| 445 | + //baseF.affimBzGs(lpbc , bxlpbc[a].bzgs , dataMap, saa , false , a); | |
| 460 | 446 | } |
| 461 | 447 | } |
| 448 | + // var markAfterGs = baseF.getSumWorkTime(lpbc , dataMap, saa); | |
| 449 | + // sumGs += parseFloat((markAfterGs - bxlpbc[a].bzgs).toFixed(2)); | |
| 450 | + // sumGs += markAfterGs; | |
| 462 | 451 | rsultA = rsultA.concat(lpbc); |
| 463 | 452 | } |
| 453 | + // onsole.log(sumGs); | |
| 464 | 454 | return rsultA; |
| 465 | 455 | }, |
| 456 | + | |
| 457 | + affimBzGs : function(lpbc , bzgs , dataMap, saa , isOff , index_) { | |
| 458 | + var tList = lpbc.concat(); | |
| 459 | + var markAfterGs = baseF.getSumWorkTime(tList , dataMap, saa); | |
| 460 | + var gsDx = parseFloat((markAfterGs - bzgs).toFixed(2)); | |
| 461 | + lpbc.sort(function(m,n){return m.fcno-n.fcno}); | |
| 462 | + if(isOff) { | |
| 463 | + if(gsDx > 1.5) { | |
| 464 | + var hoursDx = parseFloat((gsDx - 1.5).toFixed(2)); | |
| 465 | + // console.log(gsDx , hoursDx ,Math.ceil(hoursDx*60)); | |
| 466 | + var minueDx = Math.ceil(hoursDx*60); | |
| 467 | + var bs = Math.ceil( minueDx / saa[0].zzsj.dgzzsj); | |
| 468 | + for(var s = 0 ; s < lpbc.length; s++) { | |
| 469 | + if(lpbc[s].isfb ==1) { | |
| 470 | + if(index_%2==0) { | |
| 471 | + lpbc.splice( (s+1) , bs*2); | |
| 472 | + }else { | |
| 473 | + lpbc.splice( s , bs*2); | |
| 474 | + } | |
| 475 | + break; | |
| 476 | + } | |
| 477 | + } | |
| 478 | + | |
| 479 | + } | |
| 480 | + }else { | |
| 481 | + | |
| 482 | + } | |
| 483 | + }, | |
| 484 | + | |
| 485 | + updTime : function(lpbc , start , end , minueDx ,type ) { | |
| 486 | + var agvMarkTime = Math.ceil(minueDx / end); | |
| 487 | + for(var u = start ; u < end ; u++) { | |
| 488 | + if(type =='asc'){ | |
| 489 | + var tzDx = lpbc[u].STOPTIME - agvMarkTime , tmvalue = 0; | |
| 490 | + if(tzDx < 0) | |
| 491 | + tmvalue = parseInt(lpbc[u].bcsj*0.1); | |
| 492 | + else | |
| 493 | + tmvalue = tzDx; | |
| 494 | + lpbc[u].STOPTIME = tmvalue ; | |
| 495 | + if( u == start){ | |
| 496 | + var fcsj = baseF.getDateTime(lpbc[u].fcsj); | |
| 497 | + fcsj.setMinutes(fcsj.getMinutes() + minueDx); | |
| 498 | + lpbc[u].fcsj = baseF.getTimeStr(fcsj); | |
| 499 | + fcsj.setMinutes(fcsj.getMinutes() + lpbc[u].bcsj); | |
| 500 | + lpbc[u].ARRIVALTIME = baseF.getTimeStr(fcsj); | |
| 501 | + }else { | |
| 502 | + // 定义到达时间. | |
| 503 | + var ddsj_ = baseF.getDateTime(lpbc[u-1].ARRIVALTIME); | |
| 504 | + ddsj_.setMinutes(ddsj_.getMinutes() + lpbc[u-1].STOPTIME); | |
| 505 | + lpbc[u].fcsj = baseF.getTimeStr(ddsj_); | |
| 506 | + ddsj_.setMinutes(ddsj_.getMinutes() + lpbc[u].bcsj); | |
| 507 | + // 修改最后一个班次的到达时间. | |
| 508 | + lpbc[u].ARRIVALTIME = baseF.getTimeStr(ddsj_); | |
| 509 | + } | |
| 510 | + | |
| 511 | + }else { | |
| 512 | + if( u == start){ | |
| 513 | + var fcsj = baseF.getDateTime(lpbc[u].fcsj); | |
| 514 | + fcsj.setMinutes(fcsj.getMinutes() - minueDx); | |
| 515 | + lpbc[u].fcsj = baseF.getTimeStr(fcsj); | |
| 516 | + fcsj.setMinutes(fcsj.getMinutes() + lpbc[u].bcsj); | |
| 517 | + lpbc[u].ARRIVALTIME = baseF.getTimeStr(fcsj); | |
| 518 | + }else { | |
| 519 | + var tzDx = lpbc[u].STOPTIME - agvMarkTime , tmvalue = 0; | |
| 520 | + if(tzDx < 0) | |
| 521 | + tmvalue = parseInt(lpbc[u].bcsj*0.1); | |
| 522 | + else | |
| 523 | + tmvalue = tzDx; | |
| 524 | + lpbc[u].STOPTIME = tmvalue ; | |
| 525 | + // 定义到达时间. | |
| 526 | + var ddsj_ = baseF.getDateTime(lpbc[u-1].fcsj); | |
| 527 | + ddsj_.setMinutes(ddsj_.getMinutes() - lpbc[u].STOPTIME); | |
| 528 | + lpbc[u].ARRIVALTIME = baseF.getTimeStr(ddsj_); | |
| 529 | + ddsj_.setMinutes(ddsj_.getMinutes() - lpbc[u].bcsj); | |
| 530 | + // 修改最后一个班次的到达时间. | |
| 531 | + lpbc[u].fcsj = baseF.getTimeStr(ddsj_); | |
| 532 | + } | |
| 533 | + } | |
| 534 | + | |
| 535 | + } | |
| 536 | + }, | |
| 537 | + | |
| 538 | + getSumWorkTime : function(lpbc , dataMap , saa) { | |
| 539 | + lpbc.sort(function(x,y){return x.fcno-y.fcno}); | |
| 540 | + var sumWorkTime = dataMap.jcsjArr[baseF.dirDmToIndex(lpbc[0].xlDir)] + | |
| 541 | + dataMap.ccsjArr[baseF.dirDmToIndex(lpbc[lpbc.length-1].xlDir)] + | |
| 542 | + saa[0].lbsj*2; | |
| 543 | + for(var t = 0 ; t < lpbc.length ; t++) { | |
| 544 | + sumWorkTime += lpbc[t].bcsj + lpbc[t].STOPTIME; | |
| 545 | + } | |
| 546 | + return parseFloat((sumWorkTime/60).toFixed(2)); | |
| 547 | + }, | |
| 548 | + | |
| 549 | + | |
| 466 | 550 | /** |
| 467 | 551 | * @description (TODO) 判断某路牌下是否存在首末班车时间班次. |
| 468 | 552 | * @param arr 某路牌下的班次. |
| ... | ... | @@ -471,7 +555,7 @@ var BaseFun = function() { |
| 471 | 555 | lpDownIsHaveFirstAndLastBc : function(arr , smbcsjArr) { |
| 472 | 556 | for(var a = 0 ; a < arr.length ; a++) { |
| 473 | 557 | for(var s = 0 ; s < smbcsjArr.length ; s++) { |
| 474 | - if(arr[a].fcsj == smbcsjArr[s].kssj || arr[a].fcsj == smbcsjArr[s].jssj) | |
| 558 | + if(arr[a].fcsj == smbcsjArr[s].jssj && baseF.dirDmToIndex(arr[a].xlDir) == s) | |
| 475 | 559 | return true; |
| 476 | 560 | } |
| 477 | 561 | } |
| ... | ... | @@ -487,10 +571,11 @@ var BaseFun = function() { |
| 487 | 571 | if(lpbc.length > 0 && deletebcNum > 0) { |
| 488 | 572 | lpbc.sort(function(r,s){return r.fcint-s.fcint}); |
| 489 | 573 | var tcbcgzA = new Array(); |
| 490 | - debugger; | |
| 491 | - if(lpbc[0].fcsj == dataMap.smbcsjArr[0].kssj || lpbc[0].fcsj == dataMap.smbcsjArr[1].kssj) { | |
| 574 | + if( (lpbc[0].fcsj == dataMap.smbcsjArr[0].kssj && baseF.dirDmToIndex(lpbc[0].xlDir) == 0) | |
| 575 | + || (lpbc[0].fcsj == dataMap.smbcsjArr[1].kssj && baseF.dirDmToIndex(lpbc[0].xlDir) == 1)) { | |
| 492 | 576 | tcbcgzA.push({'minsj': dataMap.wgfzhsjd[0].st , 'maxsj' : dataMap.wgfzhsjd[0].ed , 'order' : 'desc', 'deletebcNum' : deletebcNum}); |
| 493 | - }else if(lpbc[lpbc.length-1].fcsj == dataMap.smbcsjArr[0].jssj || lpbc[0].fcsj == dataMap.smbcsjArr[1].jssj) { | |
| 577 | + }else if((lpbc[lpbc.length-1].fcsj == dataMap.smbcsjArr[0].jssj && baseF.dirDmToIndex(lpbc[0].xlDir) == 0) | |
| 578 | + || (lpbc[lpbc.length-1].fcsj == dataMap.smbcsjArr[1].jssj && baseF.dirDmToIndex(lpbc[0].xlDir) == 1)) { | |
| 494 | 579 | tcbcgzA.push({'minsj': dataMap.zgfzqsjd[0].st , 'maxsj' : dataMap.zgfzqsjd[0].ed , 'order' : 'asc', 'deletebcNum' : deletebcNum}); |
| 495 | 580 | }else { |
| 496 | 581 | var zgfzqtcbcNum = parseInt(( dataMap.zgfzqsjd[0].ed - dataMap.zgfzqsjd[0].st ) / (60000 * saa[0].zzsj.dgzzsj)), |
| ... | ... | @@ -498,17 +583,9 @@ var BaseFun = function() { |
| 498 | 583 | tcbcgzA.push({'minsj': dataMap.wgfzhsjd[0].st , 'maxsj' : dataMap.wgfzhsjd[0].ed , 'order' : 'desc', 'deletebcNum' : wgfhtcbcNum}, |
| 499 | 584 | {'minsj': dataMap.zgfzqsjd[0].st , 'maxsj' : dataMap.zgfzqsjd[0].ed , 'order' : 'asc', 'deletebcNum' : zgfzqtcbcNum}); |
| 500 | 585 | } |
| 501 | - /*if( wgfhtcbcNum >= deletebcNum) { | |
| 502 | - | |
| 503 | - }else if(zgfzqtcbcNum >= deletebcNum){ | |
| 504 | - | |
| 505 | - }else if(deletebcNum >= (zgfzqtcbcNum + wgfhtcbcNum)){ | |
| 506 | - | |
| 507 | - }*/ | |
| 508 | 586 | baseF.spliceBc02(lpbc , tcbcgzA , dataMap , isfb); |
| 509 | 587 | } |
| 510 | 588 | }, |
| 511 | - | |
| 512 | 589 | /** |
| 513 | 590 | * @description (TODO) 根据定义规则剔除班次. |
| 514 | 591 | * @param arr 班次数组. |
| ... | ... | @@ -558,7 +635,8 @@ var BaseFun = function() { |
| 558 | 635 | var dgmaxfcjx = parseInt(map.dgmaxfcjx), |
| 559 | 636 | dgmaxtzsj = parseInt(map.dgmaxtzsj); |
| 560 | 637 | // 计算低谷最少配车数 (低谷上行行驶时间 + 低谷下行行驶时间 + 低谷最大停站时间*2) / 低谷最大发车间隙. |
| 561 | - var dgminpcs = Math.round((dataMap.dgxxsjArr[0] + dataMap.dgxxsjArr[1] + dgmaxtzsj*2) / dgmaxfcjx); | |
| 638 | + var dgminpcs = Math.round((dataMap.dgxxsjArr[0] + dataMap.dgxxsjArr[1] + dataMap.dgtzsj[0] + dataMap.dgtzsj[1]) / dgmaxfcjx); | |
| 639 | + // var dgminpcs = 4; | |
| 562 | 640 | // 定义返回数组. |
| 563 | 641 | var rs = new Array(); |
| 564 | 642 | for(var x = 0 ; x < bxrclist.length; x++) { |
| ... | ... | @@ -619,15 +697,20 @@ var BaseFun = function() { |
| 619 | 697 | bxlpbc.push({'bxtyp' : bxrclist[x].type , 'lpNo' : lpNo , |
| 620 | 698 | 'lpbc' : lpbc , 'dygbcfcsj' : lpbc[lpbc.length-1].fcsj, |
| 621 | 699 | 'initCountGs' : initCountGs , |
| 622 | - 'keepOff' : keepOff , 'bzgs' : parseInt(hoursV*60) , 'gsavg' : parseInt(bxrclist[x].gsavg*60) , | |
| 700 | + 'keepOff' : keepOff , 'bzgs' : parseFloat(hoursV.toFixed(1)) , 'gsavg' : parseInt(bxrclist[x].gsavg*60) , | |
| 623 | 701 | 'fcint' : baseF.getDateTime(lpbc[lpbc.length-1].fcsj).getTime()}); |
| 624 | 702 | } |
| 625 | 703 | } |
| 626 | 704 | if(bxlpbc.length > 0 ) { |
| 627 | 705 | bxlpbc.sort(function(x,y){return x.fcint-y.fcint}); |
| 706 | + var avgMakerCarNum = 0; | |
| 707 | + for(var v = 0 ; v<bxlpbc.length ; v++) { | |
| 708 | + avgMakerCarNum += Math.ceil((bxlpbc[v].initCountGs - bxlpbc[v].gsavg) / saa[0].zzsj.dgzzsj); | |
| 709 | + } | |
| 710 | + avgMakerCarNum = parseInt(avgMakerCarNum / bxlpbc.length); | |
| 628 | 711 | // console.log(bxlpbc); |
| 629 | 712 | // 调整某班型下的各个路牌对应的班次以及工时、停站时间、是否分班. |
| 630 | - rs = rs.concat(baseF.abstractBcByWorkTime(bxlpbc , map , dataMap , saa , cara , bxrclist[x] , dgminpcs)); | |
| 713 | + rs = rs.concat(baseF.abstractBcByWorkTime(bxlpbc , map , dataMap , saa , cara , bxrclist[x] , dgminpcs , avgMakerCarNum)); | |
| 631 | 714 | } |
| 632 | 715 | } |
| 633 | 716 | return rs; |
| ... | ... | @@ -697,7 +780,9 @@ var BaseFun = function() { |
| 697 | 780 | var markArray = baseF.markFirstAndLastBusAlsoDietNotInRangeBc(jsonArray , dataMap); |
| 698 | 781 | |
| 699 | 782 | // 第四步 横向调整 |
| 700 | - baseF.resizeByPitStopTime(cara , jsonArray , dataMap); | |
| 783 | + baseF.resizeByPitStopTime(cara , markArray , dataMap); | |
| 784 | + | |
| 785 | + // return {'json':markArray,'bxrcgs':null}; | |
| 701 | 786 | |
| 702 | 787 | /** |
| 703 | 788 | * 第五步 把班型合理的分配到各个路牌上. | ... | ... |
src/main/resources/static/pages/base/timesmodel/js/d3.relationshipgraph.js
| ... | ... | @@ -1134,7 +1134,7 @@ var RelationshipGraph = function () { |
| 1134 | 1134 | // 3.2、定义鼠标按下的x、y坐标 . |
| 1135 | 1135 | var d3MouseDown_x = parseInt(d3.mouse(this)[0]),d3MouseDown_y = parseInt(d3.mouse(this)[1]); |
| 1136 | 1136 | // 3.3、计时鼠标是否按下已有300ms,并且在300ms中鼠标未曾移动,则打开开关,进入鼠标操作过程. |
| 1137 | - stop = setTimeout(function(e) { | |
| 1137 | + stop = setTimeout(function() { | |
| 1138 | 1138 | // 3.4、打开鼠标移动和松开事件开关. |
| 1139 | 1139 | flag = true; |
| 1140 | 1140 | // 3.5、记录当前选择框数 . |
| ... | ... | @@ -1160,6 +1160,7 @@ var RelationshipGraph = function () { |
| 1160 | 1160 | },200); |
| 1161 | 1161 | // 4、给svg容器元素对象 添加鼠标移动事件 . 这里等同于绘制选择框. |
| 1162 | 1162 | }).on('mousemove',function(e){ |
| 1163 | + // $('.ganttSvgContainer').css('overflow','auto'); | |
| 1163 | 1164 | // 4.1 判断开关是否打开状态. |
| 1164 | 1165 | if(flag) { |
| 1165 | 1166 | // 4.1.1、定义鼠标移动的x、y坐标. |
| ... | ... | @@ -1183,6 +1184,7 @@ var RelationshipGraph = function () { |
| 1183 | 1184 | } |
| 1184 | 1185 | // 6、给svg容器元素对象 添加鼠标移出事件.解决鼠标在其他元素上松开而不关闭开关问题.只有在绑定 mouseleave 事件的元素上,将鼠标移出时,才会触发该事件。 |
| 1185 | 1186 | }).on('mouseleave',function() { |
| 1187 | + // $('.ganttSvgContainer').css('overflow','hidden'); | |
| 1186 | 1188 | if(flag) { |
| 1187 | 1189 | layer.closeAll();// 关闭弹出层. |
| 1188 | 1190 | RelationshipGraph.mouseUpEvent(flag); | ... | ... |
src/main/resources/static/pages/base/timesmodel/js/gantt.js
| ... | ... | @@ -747,10 +747,4 @@ |
| 747 | 747 | layer.closeAll(); |
| 748 | 748 | layer.msg('操作成功!已【'+ msg + '】!'); |
| 749 | 749 | } |
| 750 | - | |
| 751 | - $('#scrllmouseEvent').on('mousemove',function() { | |
| 752 | - $('.ganttSvgContainer').css('overflow','auto'); | |
| 753 | - }).on('mouseleave',function() { | |
| 754 | - $('.ganttSvgContainer').css('overflow','hidden'); | |
| 755 | - }); | |
| 756 | 750 | })(); |
| 757 | 751 | \ No newline at end of file | ... | ... |