|
|
@ -22,6 +22,27 @@ type SchedulerSrv struct { |
|
|
|
UnPlannedTaskArray []TaskSrv // 未计划的任务队列
|
|
|
|
} |
|
|
|
|
|
|
|
// 加载激活的项目
|
|
|
|
func(schedsrv *SchedulerSrv)LoadProjectData()(err error){ |
|
|
|
var( |
|
|
|
i int |
|
|
|
projtab models.MeProject |
|
|
|
projtablst []models.MeProject |
|
|
|
) |
|
|
|
// 初始化
|
|
|
|
schedsrv.ProjDict = make(map[string]models.MeProject) |
|
|
|
// 读取激活的项目数据
|
|
|
|
projtab = models.MeProject{Plantnr: schedsrv.PlantNr} |
|
|
|
if projtablst, err = projtab.SelectActiveProjects(); err != nil{ |
|
|
|
err = errors.New(fmt.Sprintf("获取工厂%d的激活的项目失败%v !", schedsrv.PlantNr, err)) |
|
|
|
return |
|
|
|
} |
|
|
|
// 加载项目
|
|
|
|
for i = 0; i < len(projtablst); i++ { |
|
|
|
schedsrv.ProjDict[projtablst[i].Projectid] = projtablst[i] |
|
|
|
} |
|
|
|
return |
|
|
|
} |
|
|
|
// 加载产线及其相关数据
|
|
|
|
func(schedsrv *SchedulerSrv)LoadWorklineData(wltype string)(err error){ |
|
|
|
var( |
|
|
@ -95,25 +116,17 @@ func(schedsrv *SchedulerSrv)LoadSetupData()(err error){ |
|
|
|
|
|
|
|
return |
|
|
|
} |
|
|
|
// 加载激活的项目
|
|
|
|
func(schedsrv *SchedulerSrv)LoadProjectData()(err error){ |
|
|
|
// 生成产线的调度曲线
|
|
|
|
func(schedsrv *SchedulerSrv)GenerateWorkLineTimeCurve()(err error){ |
|
|
|
var( |
|
|
|
i int |
|
|
|
projtab models.MeProject |
|
|
|
projtablst []models.MeProject |
|
|
|
wlsrv *WorklineSrv |
|
|
|
) |
|
|
|
// 初始化
|
|
|
|
schedsrv.ProjDict = make(map[string]models.MeProject) |
|
|
|
// 读取激活的项目数据
|
|
|
|
projtab = models.MeProject{Plantnr: schedsrv.PlantNr} |
|
|
|
if projtablst, err = projtab.SelectActiveProjects(); err != nil{ |
|
|
|
err = errors.New(fmt.Sprintf("获取工厂%d的激活的项目失败%v !", schedsrv.PlantNr, err)) |
|
|
|
return |
|
|
|
} |
|
|
|
// 加载项目
|
|
|
|
for i = 0; i < len(projtablst); i++ { |
|
|
|
schedsrv.ProjDict[projtablst[i].Projectid] = projtablst[i] |
|
|
|
// 遍历产线
|
|
|
|
for _, wlsrv = range schedsrv.WorklineDict { |
|
|
|
// 基于产线的时间模型和排班获取产线在指定时间区间内的时间线集合
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return |
|
|
|
} |
|
|
|
// 加载调度任务
|
|
|
@ -770,4 +783,14 @@ func(schedsrv *SchedulerSrv)SortUnplannedTask(){ |
|
|
|
j := v.FieldByName("Create_time") |
|
|
|
return i.String() < j.String() |
|
|
|
}) |
|
|
|
} |
|
|
|
// 调度引擎自动排程
|
|
|
|
func(schedsrv *SchedulerSrv)AutoSchedule()(err error){ |
|
|
|
|
|
|
|
return |
|
|
|
} |
|
|
|
// 打印调度引擎排程结果
|
|
|
|
func(schedsrv *SchedulerSrv)PrintScheduleResult()(err error){ |
|
|
|
|
|
|
|
return |
|
|
|
} |