|
|
@ -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 { |
|
|
|