Browse Source

Merge pull request '产线占比计算' (#354) from fix_rate into develop

Reviewed-on: http://101.201.121.115:3000/leo/LAPP_GAAS_GFrame_BACKEND/pulls/354
Reviewed-by: zhangxin <xin.zhang@le-it.com.cn>
pull/357/head
zhangxin 3 years ago
parent
commit
dc9d067ae8
3 changed files with 19 additions and 14 deletions
  1. +1
    -0
      services/base/implments/WorkLine.service.impl.go
  2. +0
    -4
      services/schedule/Scheduler.Ctrl.go
  3. +18
    -10
      services/schedule/TimeCurve.Ctrl.go

+ 1
- 0
services/base/implments/WorkLine.service.impl.go View File

@ -871,6 +871,7 @@ func (impl *WorkLineServiceImplement) WorkLineSchedulerManualr(user *models.User
TemData := make([]schedule.TaskSrv, 0)
schedeng.WorklineDict[result.WorkLineId].SchedTaskArray = TemData
schedeng.WorklineDict[result.WorkLineId].SchedTimeCurve = schedeng.WorklineDict[result.WorkLineId].TimeCurve
schedeng.WorklineDict[result.WorkLineId].SchedTimeCurve.GetLineList()
}
//第三步:生成调度
err = schedeng.ManualrSchedule()


+ 0
- 4
services/schedule/Scheduler.Ctrl.go View File

@ -482,13 +482,9 @@ func (schedsrv *SchedulerSrv) ManualrScheduleTask(worklineid string, task *TaskS
// 将调度任务添加到产线的调度队列中
task.SchedResId = wlsrv.WorklineId
wlsrv.SchedTaskArray = append(wlsrv.SchedTaskArray, *task)
if wlsrv.SchedTimeCurve.TimeLineList == nil {
return
}
// 更新产线的时间线
err = wlsrv.SchedTimeCurve.SubTimeLine(tlinesrv)
if err != nil {
return
}
wlsrv.SchedTimeCurve.GetLineArray()


+ 18
- 10
services/schedule/TimeCurve.Ctrl.go View File

@ -413,7 +413,6 @@ func (tcs *TimeCurveSrv) SubTimeLine(subtlsrv TimeLineSrv) (err error) {
if subtlsrv.StartTime.Unix() >= tcs.StartTime.Unix() && subtlsrv.EndTime.Unix() <= tcs.EndTime.Unix() {
if nodeBeg, err = tcs.GetTimeLine(subtlsrv.StartTime); err != nil || nodeBeg == nil {
return
}
@ -438,7 +437,6 @@ func (tcs *TimeCurveSrv) SubTimeLine(subtlsrv TimeLineSrv) (err error) {
}
// 更新开始节点的结束时间
//tlb.EndTime = subtlsrv.StartTime
tlsrv = TimeLineSrv{}
tlsrv.StartTime = tlb.StartTime
tlsrv.EndTime = subtlsrv.StartTime
@ -482,7 +480,6 @@ func (tcs *TimeCurveSrv) SubTimeLine(subtlsrv TimeLineSrv) (err error) {
}
// 更新结束节点的开始时间
//tle.StartTime = subtlsrv.EndTime
tlsrv = TimeLineSrv{}
tlsrv.StartTime = subtlsrv.EndTime
tlsrv.EndTime = tle.EndTime
@ -501,32 +498,43 @@ func (tcs *TimeCurveSrv) SubTimeLine(subtlsrv TimeLineSrv) (err error) {
tlb = nodeBeg.Value.(TimeLineSrv)
tle = nodeEnd.Value.(TimeLineSrv)
if tlb != tle {
/**********
1 /------/ /----/ /-------/ 可用时间
/--------------/ 任务占用时间
/---/ /-----/ 得到的结果
********************/
// 删除两节点之间的所有节点
for e = nodeBeg.Next(); e != nil && e != nodeEnd; e = next {
next = e.Next()
tcs.TimeLineList.Remove(e)
}
// 更新起始时间点
//tlb.EndTime = subtlsrv.StartTime
//tle.StartTime = subtlsrv.EndTime
//拆成两部分
tlsrv = TimeLineSrv{}
tlsrv.StartTime = tlb.StartTime
tlsrv.EndTime = subtlsrv.StartTime
tlsrv.EffFactor = subtlsrv.EffFactor
tlsrv.Duration = tcs.CalDuration(tlsrv.StartTime,tlsrv.EndTime)
tcs.TimeLineList.InsertBefore(tlsrv, nodeBeg)
tlsrv = TimeLineSrv{}
tlsrv.StartTime = tlb.EndTime
tlsrv.EndTime = subtlsrv.EndTime
tlsrv.StartTime = subtlsrv.EndTime
tlsrv.EndTime = tle.EndTime
tlsrv.EffFactor = subtlsrv.EffFactor
tlsrv.Duration = tcs.CalDuration(tlsrv.StartTime,tlsrv.EndTime)
tcs.TimeLineList.InsertAfter(tlsrv, nodeBeg)
//删除当前的
tcs.TimeLineList.Remove(nodeBeg)
tcs.TimeLineList.Remove(nodeEnd)
}
} else {
tlb = nodeBeg.Value.(TimeLineSrv)
/**********
2 /------------------/ 可用时间
/-------/ 任务占用时间
********************/
tlb = nodeBeg.Value.(TimeLineSrv)
//先插入,再删除
tlsrv = TimeLineSrv{}
tlsrv.StartTime = tlb.StartTime


Loading…
Cancel
Save