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