Commit 3379a6ba1b9d1f69e1beae48248bbcaaf76446bb
1 parent
1219d3f0
bsthlq <2519941818@qq.com>
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,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 | for(var a = 0 ; a < bxlpbc.length ; a++) { | 392 | for(var a = 0 ; a < bxlpbc.length ; a++) { |
| 388 | - /*if(a>0) | ||
| 389 | - continue;*/ | ||
| 390 | // 定义该版型下对应的路牌的班次数组、班次数组长度、该路牌上是否有首末班车。 | 393 | // 定义该版型下对应的路牌的班次数组、班次数组长度、该路牌上是否有首末班车。 |
| 391 | var lpbc = bxlpbc[a].lpbc, lpbclen_ = lpbc.length; | 394 | var lpbc = bxlpbc[a].lpbc, lpbclen_ = lpbc.length; |
| 392 | if(lpbclen_<=0) | 395 | if(lpbclen_<=0) |
| 393 | continue; | 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 | if(bxrcObj.type == '五工二休') { | 398 | if(bxrcObj.type == '五工二休') { |
| 403 | // 定义晚高峰后能剔除多少班次数. | 399 | // 定义晚高峰后能剔除多少班次数. |
| 404 | var wgfhtcbcNum = parseInt(( dataMap.wgfzhsjd[0].ed - dataMap.wgfsjd[0].ed ) / (60000 * saa[0].zzsj.dgzzsj)); | 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 | baseF.spliceBc02(lpbc , tcbcgzA , dataMap , 'desc' , false); | 410 | baseF.spliceBc02(lpbc , tcbcgzA , dataMap , 'desc' , false); |
| 412 | }else { | 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 | if(bxlpbc[a].keepOff==1) { | 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 | }else { | 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 | }else if(dgminpcs == 0){ | 436 | }else if(dgminpcs == 0){ |
| 453 | // 按规则剔除班次.不分班.路牌班次不会断开. | 437 | // 按规则剔除班次.不分班.路牌班次不会断开. |
| 454 | baseF.isdk02(lpbc , dataMap , saa , deletebcNum , false); | 438 | baseF.isdk02(lpbc , dataMap , saa , deletebcNum , false); |
| 439 | + //baseF.affimBzGs(lpbc , bxlpbc[a].bzgs, dataMap, saa , false , a); | ||
| 455 | } | 440 | } |
| 456 | // 双档 一个路牌两档劳动力 | 441 | // 双档 一个路牌两档劳动力 |
| 457 | }else if(bxlpbc[a].keepOff==2) { | 442 | }else if(bxlpbc[a].keepOff==2) { |
| 458 | // 按规则剔除班次.分班.但是路牌班次不会断开. | 443 | // 按规则剔除班次.分班.但是路牌班次不会断开. |
| 459 | baseF.isdk02(lpbc , dataMap , saa , deletebcNum , true); | 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 | rsultA = rsultA.concat(lpbc); | 451 | rsultA = rsultA.concat(lpbc); |
| 463 | } | 452 | } |
| 453 | + // onsole.log(sumGs); | ||
| 464 | return rsultA; | 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 | * @description (TODO) 判断某路牌下是否存在首末班车时间班次. | 551 | * @description (TODO) 判断某路牌下是否存在首末班车时间班次. |
| 468 | * @param arr 某路牌下的班次. | 552 | * @param arr 某路牌下的班次. |
| @@ -471,7 +555,7 @@ var BaseFun = function() { | @@ -471,7 +555,7 @@ var BaseFun = function() { | ||
| 471 | lpDownIsHaveFirstAndLastBc : function(arr , smbcsjArr) { | 555 | lpDownIsHaveFirstAndLastBc : function(arr , smbcsjArr) { |
| 472 | for(var a = 0 ; a < arr.length ; a++) { | 556 | for(var a = 0 ; a < arr.length ; a++) { |
| 473 | for(var s = 0 ; s < smbcsjArr.length ; s++) { | 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 | return true; | 559 | return true; |
| 476 | } | 560 | } |
| 477 | } | 561 | } |
| @@ -487,10 +571,11 @@ var BaseFun = function() { | @@ -487,10 +571,11 @@ var BaseFun = function() { | ||
| 487 | if(lpbc.length > 0 && deletebcNum > 0) { | 571 | if(lpbc.length > 0 && deletebcNum > 0) { |
| 488 | lpbc.sort(function(r,s){return r.fcint-s.fcint}); | 572 | lpbc.sort(function(r,s){return r.fcint-s.fcint}); |
| 489 | var tcbcgzA = new Array(); | 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 | tcbcgzA.push({'minsj': dataMap.wgfzhsjd[0].st , 'maxsj' : dataMap.wgfzhsjd[0].ed , 'order' : 'desc', 'deletebcNum' : deletebcNum}); | 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 | tcbcgzA.push({'minsj': dataMap.zgfzqsjd[0].st , 'maxsj' : dataMap.zgfzqsjd[0].ed , 'order' : 'asc', 'deletebcNum' : deletebcNum}); | 579 | tcbcgzA.push({'minsj': dataMap.zgfzqsjd[0].st , 'maxsj' : dataMap.zgfzqsjd[0].ed , 'order' : 'asc', 'deletebcNum' : deletebcNum}); |
| 495 | }else { | 580 | }else { |
| 496 | var zgfzqtcbcNum = parseInt(( dataMap.zgfzqsjd[0].ed - dataMap.zgfzqsjd[0].st ) / (60000 * saa[0].zzsj.dgzzsj)), | 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,17 +583,9 @@ var BaseFun = function() { | ||
| 498 | tcbcgzA.push({'minsj': dataMap.wgfzhsjd[0].st , 'maxsj' : dataMap.wgfzhsjd[0].ed , 'order' : 'desc', 'deletebcNum' : wgfhtcbcNum}, | 583 | tcbcgzA.push({'minsj': dataMap.wgfzhsjd[0].st , 'maxsj' : dataMap.wgfzhsjd[0].ed , 'order' : 'desc', 'deletebcNum' : wgfhtcbcNum}, |
| 499 | {'minsj': dataMap.zgfzqsjd[0].st , 'maxsj' : dataMap.zgfzqsjd[0].ed , 'order' : 'asc', 'deletebcNum' : zgfzqtcbcNum}); | 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 | baseF.spliceBc02(lpbc , tcbcgzA , dataMap , isfb); | 586 | baseF.spliceBc02(lpbc , tcbcgzA , dataMap , isfb); |
| 509 | } | 587 | } |
| 510 | }, | 588 | }, |
| 511 | - | ||
| 512 | /** | 589 | /** |
| 513 | * @description (TODO) 根据定义规则剔除班次. | 590 | * @description (TODO) 根据定义规则剔除班次. |
| 514 | * @param arr 班次数组. | 591 | * @param arr 班次数组. |
| @@ -558,7 +635,8 @@ var BaseFun = function() { | @@ -558,7 +635,8 @@ var BaseFun = function() { | ||
| 558 | var dgmaxfcjx = parseInt(map.dgmaxfcjx), | 635 | var dgmaxfcjx = parseInt(map.dgmaxfcjx), |
| 559 | dgmaxtzsj = parseInt(map.dgmaxtzsj); | 636 | dgmaxtzsj = parseInt(map.dgmaxtzsj); |
| 560 | // 计算低谷最少配车数 (低谷上行行驶时间 + 低谷下行行驶时间 + 低谷最大停站时间*2) / 低谷最大发车间隙. | 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 | var rs = new Array(); | 641 | var rs = new Array(); |
| 564 | for(var x = 0 ; x < bxrclist.length; x++) { | 642 | for(var x = 0 ; x < bxrclist.length; x++) { |
| @@ -619,15 +697,20 @@ var BaseFun = function() { | @@ -619,15 +697,20 @@ var BaseFun = function() { | ||
| 619 | bxlpbc.push({'bxtyp' : bxrclist[x].type , 'lpNo' : lpNo , | 697 | bxlpbc.push({'bxtyp' : bxrclist[x].type , 'lpNo' : lpNo , |
| 620 | 'lpbc' : lpbc , 'dygbcfcsj' : lpbc[lpbc.length-1].fcsj, | 698 | 'lpbc' : lpbc , 'dygbcfcsj' : lpbc[lpbc.length-1].fcsj, |
| 621 | 'initCountGs' : initCountGs , | 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 | 'fcint' : baseF.getDateTime(lpbc[lpbc.length-1].fcsj).getTime()}); | 701 | 'fcint' : baseF.getDateTime(lpbc[lpbc.length-1].fcsj).getTime()}); |
| 624 | } | 702 | } |
| 625 | } | 703 | } |
| 626 | if(bxlpbc.length > 0 ) { | 704 | if(bxlpbc.length > 0 ) { |
| 627 | bxlpbc.sort(function(x,y){return x.fcint-y.fcint}); | 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 | // console.log(bxlpbc); | 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 | return rs; | 716 | return rs; |
| @@ -697,7 +780,9 @@ var BaseFun = function() { | @@ -697,7 +780,9 @@ var BaseFun = function() { | ||
| 697 | var markArray = baseF.markFirstAndLastBusAlsoDietNotInRangeBc(jsonArray , dataMap); | 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,7 +1134,7 @@ var RelationshipGraph = function () { | ||
| 1134 | // 3.2、定义鼠标按下的x、y坐标 . | 1134 | // 3.2、定义鼠标按下的x、y坐标 . |
| 1135 | var d3MouseDown_x = parseInt(d3.mouse(this)[0]),d3MouseDown_y = parseInt(d3.mouse(this)[1]); | 1135 | var d3MouseDown_x = parseInt(d3.mouse(this)[0]),d3MouseDown_y = parseInt(d3.mouse(this)[1]); |
| 1136 | // 3.3、计时鼠标是否按下已有300ms,并且在300ms中鼠标未曾移动,则打开开关,进入鼠标操作过程. | 1136 | // 3.3、计时鼠标是否按下已有300ms,并且在300ms中鼠标未曾移动,则打开开关,进入鼠标操作过程. |
| 1137 | - stop = setTimeout(function(e) { | 1137 | + stop = setTimeout(function() { |
| 1138 | // 3.4、打开鼠标移动和松开事件开关. | 1138 | // 3.4、打开鼠标移动和松开事件开关. |
| 1139 | flag = true; | 1139 | flag = true; |
| 1140 | // 3.5、记录当前选择框数 . | 1140 | // 3.5、记录当前选择框数 . |
| @@ -1160,6 +1160,7 @@ var RelationshipGraph = function () { | @@ -1160,6 +1160,7 @@ var RelationshipGraph = function () { | ||
| 1160 | },200); | 1160 | },200); |
| 1161 | // 4、给svg容器元素对象 添加鼠标移动事件 . 这里等同于绘制选择框. | 1161 | // 4、给svg容器元素对象 添加鼠标移动事件 . 这里等同于绘制选择框. |
| 1162 | }).on('mousemove',function(e){ | 1162 | }).on('mousemove',function(e){ |
| 1163 | + // $('.ganttSvgContainer').css('overflow','auto'); | ||
| 1163 | // 4.1 判断开关是否打开状态. | 1164 | // 4.1 判断开关是否打开状态. |
| 1164 | if(flag) { | 1165 | if(flag) { |
| 1165 | // 4.1.1、定义鼠标移动的x、y坐标. | 1166 | // 4.1.1、定义鼠标移动的x、y坐标. |
| @@ -1183,6 +1184,7 @@ var RelationshipGraph = function () { | @@ -1183,6 +1184,7 @@ var RelationshipGraph = function () { | ||
| 1183 | } | 1184 | } |
| 1184 | // 6、给svg容器元素对象 添加鼠标移出事件.解决鼠标在其他元素上松开而不关闭开关问题.只有在绑定 mouseleave 事件的元素上,将鼠标移出时,才会触发该事件。 | 1185 | // 6、给svg容器元素对象 添加鼠标移出事件.解决鼠标在其他元素上松开而不关闭开关问题.只有在绑定 mouseleave 事件的元素上,将鼠标移出时,才会触发该事件。 |
| 1185 | }).on('mouseleave',function() { | 1186 | }).on('mouseleave',function() { |
| 1187 | + // $('.ganttSvgContainer').css('overflow','hidden'); | ||
| 1186 | if(flag) { | 1188 | if(flag) { |
| 1187 | layer.closeAll();// 关闭弹出层. | 1189 | layer.closeAll();// 关闭弹出层. |
| 1188 | RelationshipGraph.mouseUpEvent(flag); | 1190 | RelationshipGraph.mouseUpEvent(flag); |
src/main/resources/static/pages/base/timesmodel/js/gantt.js
| @@ -747,10 +747,4 @@ | @@ -747,10 +747,4 @@ | ||
| 747 | layer.closeAll(); | 747 | layer.closeAll(); |
| 748 | layer.msg('操作成功!已【'+ msg + '】!'); | 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 | \ No newline at end of file | 751 | \ No newline at end of file |