Browse Source

Merge pull request '时间模型修改' (#288) from fix_scheduler into develop

Reviewed-on: http://101.201.121.115:3000/leo/LAPP_GAAS_GFrame_BACKEND/pulls/288
Reviewed-by: weichenglei <chenglei.wei@le-it.com.cn>
pull/289/head
weichenglei 3 years ago
parent
commit
df66c23df7
4 changed files with 94 additions and 16 deletions
  1. +1
    -1
      models/om/SerialOrderStatusRecLst.model.go
  2. +1
    -1
      models/om/WorkOrderStatusRecLst.model.go
  3. +1
    -0
      services/schedule/Scheduler.Ctrl.go
  4. +91
    -14
      services/schedule/TimeCurve.Ctrl.go

+ 1
- 1
models/om/SerialOrderStatusRecLst.model.go View File

@ -22,7 +22,7 @@ import (
type SerialOrderStatusRecLst struct {
PlantNr int `xorm:"pk int 'PlantNr'" json:"OM_SerialOrderStatusRecLst-PlantNr"`
SerialOrderId string `xorm:"pk nvarchar(40) 'SerialOrderId'" json:"OM_SerialOrderStatusRecLst-SerialOrderId"`
Pos int `xorm:"pk int 'Pos'" json:"OM_SerialOrderStatusRecLst-Pos"`
Pos int `xorm:"pk int 'Pos' autoincr" json:"OM_SerialOrderStatusRecLst-Pos"`
PrevStatus int `xorm:"int 'PrevStatus' not null" json:"OM_SerialOrderStatusRecLst-PrevStatus"`
Status int `xorm:"int 'Status' not null" json:"OM_SerialOrderStatusRecLst-Status"`
StartTime grmi.DateTime `xorm:"datetime 'StartTime'" json:"OM_SerialOrderStatusRecLst-StartTime"`


+ 1
- 1
models/om/WorkOrderStatusRecLst.model.go View File

@ -22,7 +22,7 @@ import (
type WorkOrderStatusRecLst struct {
PlantNr int `xorm:"pk int 'PlantNr'" json:"OM_WorkOrderStatusRecLst-PlantNr"`
WorkOrderId string `xorm:"pk nvarchar(40) 'WorkOrderId'" json:"OM_WorkOrderStatusRecLst-WorkOrderId"`
Pos int `xorm:"pk int 'Pos'" json:"OM_WorkOrderStatusRecLst-Pos"`
Pos int `xorm:"pk int 'Pos' autoincr" json:"OM_WorkOrderStatusRecLst-Pos"`
PrevStatus int `xorm:"int 'PrevStatus' not null" json:"OM_WorkOrderStatusRecLst-PrevStatus"`
Status int `xorm:"int 'Status' not null" json:"OM_WorkOrderStatusRecLst-Status"`
StartTime grmi.DateTime `xorm:"datetime 'StartTime'" json:"OM_WorkOrderStatusRecLst-StartTime"`


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

@ -347,6 +347,7 @@ func (schedsrv *SchedulerSrv) ScheduleTask(worklineid string, task *TaskSrv) (er
return
}
wlsrv.SchedTimeCurve.GetLineArray()
//计算负载
wlsrv.CalDailyWorkload()
return


+ 91
- 14
services/schedule/TimeCurve.Ctrl.go View File

@ -3,7 +3,6 @@ package schedule
import (
"LAPP_GAAS_GFrame_BACKEND/utils"
"container/list"
"fmt"
"time"
)
@ -48,7 +47,6 @@ func (tcs *TimeCurveSrv) GetTimeLine(tp time.Time) (node *list.Element, err erro
*/
if tp.Unix() < tcs.StartTime.Unix() || tp.Unix() > tcs.EndTime.Unix() {
node = nil
fmt.Println(11)
return
}
@ -186,6 +184,7 @@ func (tcs *TimeCurveSrv) AddTimeLine(addtlsrv TimeLineSrv) (err error) {
tlsrv.StartTime = addtlsrv.StartTime
tlsrv.EndTime = addtlsrv.EndTime
tlsrv.EffFactor = tcs.EffFactor
tlsrv.Duration = tcs.CalDuration(tlsrv.StartTime,tlsrv.EndTime)
tcs.TimeLineList.PushFront(tlsrv)
tcs.StartTime = addtlsrv.StartTime
}
@ -218,7 +217,17 @@ func (tcs *TimeCurveSrv) AddTimeLine(addtlsrv TimeLineSrv) (err error) {
}
}
// 更新开始节点的结束时间
tlb.EndTime = addtlsrv.EndTime
//tlb.EndTime = addtlsrv.EndTime
tlsrv = TimeLineSrv{}
tlsrv.StartTime = tlb.StartTime
tlsrv.EndTime = addtlsrv.EndTime
tlsrv.EffFactor = addtlsrv.EffFactor
tlsrv.Duration = tcs.CalDuration(tlsrv.StartTime,tlsrv.EndTime)
tcs.TimeLineList.InsertBefore(tlsrv, nodeBeg)
// 删除当前节点
tcs.TimeLineList.Remove(nodeBeg)
}
/**
情况二 |-------| |-------|
@ -261,7 +270,17 @@ func (tcs *TimeCurveSrv) AddTimeLine(addtlsrv TimeLineSrv) (err error) {
}
}
// 更新结束节点的开始时间
tle.StartTime = addtlsrv.StartTime
//tle.StartTime = addtlsrv.StartTime
tlsrv = TimeLineSrv{}
tlsrv.StartTime = addtlsrv.StartTime
tlsrv.EndTime = tle.EndTime
tlsrv.EffFactor = addtlsrv.EffFactor
tlsrv.Duration = tcs.CalDuration(tlsrv.StartTime,tlsrv.EndTime)
tcs.TimeLineList.InsertBefore(tlsrv, nodeEnd)
// 删除当前节点
tcs.TimeLineList.Remove(nodeEnd)
}
/**
情况四 |-------| |-------|
@ -278,7 +297,16 @@ func (tcs *TimeCurveSrv) AddTimeLine(addtlsrv TimeLineSrv) (err error) {
tcs.TimeLineList.Remove(e)
}
// 更新起始时间点
tlb.EndTime = tle.EndTime
//tlb.EndTime = tle.EndTime
tlsrv = TimeLineSrv{}
tlsrv.StartTime = tlb.StartTime
tlsrv.EndTime = tle.EndTime
tlsrv.EffFactor = addtlsrv.EffFactor
tlsrv.Duration = tcs.CalDuration(tlsrv.StartTime,tlsrv.EndTime)
tcs.TimeLineList.InsertBefore(tlsrv, nodeEnd)
tcs.TimeLineList.Remove(nodeBeg)
tcs.TimeLineList.Remove(nodeEnd)
}
}
@ -382,7 +410,10 @@ 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
}
@ -406,7 +437,16 @@ func (tcs *TimeCurveSrv) SubTimeLine(subtlsrv TimeLineSrv) (err error) {
}
}
// 更新开始节点的结束时间
tlb.EndTime = subtlsrv.StartTime
//tlb.EndTime = subtlsrv.StartTime
tlsrv = TimeLineSrv{}
tlsrv.StartTime = tlb.StartTime
tlsrv.EndTime = subtlsrv.StartTime
tlsrv.EffFactor = subtlsrv.EffFactor
tlsrv.Duration = tcs.CalDuration(tlsrv.StartTime,tlsrv.EndTime)
tcs.TimeLineList.InsertAfter(tlsrv, nodeBeg)
//删除
tcs.TimeLineList.Remove(nodeBeg)
}
/**
情况二 |-------| |-------|
@ -441,7 +481,16 @@ func (tcs *TimeCurveSrv) SubTimeLine(subtlsrv TimeLineSrv) (err error) {
}
}
// 更新结束节点的开始时间
tle.StartTime = subtlsrv.EndTime
//tle.StartTime = subtlsrv.EndTime
tlsrv = TimeLineSrv{}
tlsrv.StartTime = subtlsrv.EndTime
tlsrv.EndTime = tle.EndTime
tlsrv.EffFactor = subtlsrv.EffFactor
tlsrv.Duration = tcs.CalDuration(tlsrv.StartTime,tlsrv.EndTime)
tcs.TimeLineList.InsertBefore(tlsrv, nodeEnd)
//删除
tcs.TimeLineList.Remove(nodeEnd)
}
/**
情况四 |-------| |-------|
@ -458,16 +507,44 @@ func (tcs *TimeCurveSrv) SubTimeLine(subtlsrv TimeLineSrv) (err error) {
tcs.TimeLineList.Remove(e)
}
// 更新起始时间点
tlb.EndTime = subtlsrv.StartTime
tle.StartTime = subtlsrv.EndTime
//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.EffFactor = subtlsrv.EffFactor
tlsrv.Duration = tcs.CalDuration(tlsrv.StartTime,tlsrv.EndTime)
tcs.TimeLineList.InsertAfter(tlsrv, nodeBeg)
}
} else {
tlb.EndTime = subtlsrv.StartTime
tlsrv = TimeLineSrv{}
tlsrv.StartTime = subtlsrv.StartTime
tlsrv.EndTime = subtlsrv.EndTime
tlb = nodeBeg.Value.(TimeLineSrv)
//先插入,再删除
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 = subtlsrv.EndTime
tlsrv.EndTime = tlb.EndTime
tlsrv.EffFactor = subtlsrv.EffFactor
tlsrv.Duration = tcs.CalDuration(tlsrv.StartTime,tlsrv.EndTime)
tcs.TimeLineList.InsertAfter(tlsrv, nodeBeg)
// 删除当前节点
tcs.TimeLineList.Remove(nodeBeg)
}
}
}
@ -476,7 +553,6 @@ func (tcs *TimeCurveSrv) SubTimeLine(subtlsrv TimeLineSrv) (err error) {
<------>
*/
if subtlsrv.StartTime.Unix() >= tcs.StartTime.Unix() && subtlsrv.StartTime.Unix() < tcs.EndTime.Unix() && subtlsrv.EndTime.Unix() > tcs.EndTime.Unix() {
fmt.Println(777)
if nodeBeg, err = tcs.GetTimeLine(subtlsrv.StartTime); err != nil {
return
}
@ -485,6 +561,7 @@ func (tcs *TimeCurveSrv) SubTimeLine(subtlsrv TimeLineSrv) (err error) {
tl.EndTime = subtlsrv.StartTime
tcs.RemoveListAllAfterItem(nodeBeg, false)
tcs.EndTime = subtlsrv.StartTime
} else {
// 删除时段内的节点
for e = tcs.TimeLineList.Front(); e != nil; e = next {


Loading…
Cancel
Save