Browse Source

LEO commit

master
leonidxue 3 years ago
parent
commit
e060ee6992
2 changed files with 46 additions and 5 deletions
  1. +1
    -1
      schedule/Schedule_test.go
  2. +45
    -4
      schedule/Scheduler.Ctrl.go

+ 1
- 1
schedule/Schedule_test.go View File

@ -21,7 +21,7 @@ func TestScheduler(t *testing.T) {
y1,m1,d1 = time.Now().Date()
startDate = time.Date(y1, m1, d1, 0, 0, 0, 0, time.UTC)
endDate = startDate.Add(24*5*time.Hour)
schedeng = SchedulerSrv{StartDate: startDate,EndDate: endDate}
schedeng = SchedulerSrv{PlantNr:100, StartDate: startDate,EndDate: endDate}
// 指定加载的产线类型
worklinetype= ""


+ 45
- 4
schedule/Scheduler.Ctrl.go View File

@ -164,7 +164,7 @@ func(schedsrv *SchedulerSrv)LoadSchedTaskData()(err error){
for i = 0; i < len(wotablst); i++ {
tasksrv = TaskSrv{}
tasksrv.Init(wotablst[i])
schedsrv.LockedTaskArray = append(schedsrv.LockedTaskArray, tasksrv)
schedsrv.PlannedTaskArray = append(schedsrv.PlannedTaskArray, tasksrv)
}
// 3. 按指定规则加载未计划的任务
if wotablst, err = wotab.SelectUnPlannedTasks(); err != nil {
@ -177,8 +177,6 @@ func(schedsrv *SchedulerSrv)LoadSchedTaskData()(err error){
schedsrv.LockedTaskArray = append(schedsrv.LockedTaskArray, tasksrv)
}
// 对未计划的订单按照指定规则排序,准备排程
schedsrv.SortUnplannedTask()
return
}
// 撤回计划,将未下达的任务全部更新为未计划
@ -789,11 +787,54 @@ func(schedsrv *SchedulerSrv)SortUnplannedTask(){
}
// 调度引擎自动排程
func(schedsrv *SchedulerSrv)AutoSchedule()(err error){
var(
i int
)
// 遍历已锁定任务,先占位
for i = 0; i < len(schedsrv.LockedTaskArray); i++ {
schedsrv.ScheduleTask(schedsrv.LockedTaskArray[i].SchedResId, schedsrv.LockedTaskArray[i])
}
// 遍历已计划任务,占位
for i = 0; i < len(schedsrv.PlannedTaskArray); i++ {
schedsrv.ScheduleTask(schedsrv.PlannedTaskArray[i].SchedResId, schedsrv.PlannedTaskArray[i])
}
// 将未计划任务排序
// 遍历未计划任务
for i = 0; i < len(schedsrv.UnPlannedTaskArray); i++ {
// 此处可以增加选择调度资源逻辑
// 将未计划任务调度到指定的计划资源上
schedsrv.ScheduleTask(schedsrv.UnPlannedTaskArray[i].SchedResId, schedsrv.UnPlannedTaskArray[i])
}
return
}
// 打印调度引擎排程结果
func(schedsrv *SchedulerSrv)PrintScheduleResult()(err error){
var(
i int
)
// 遍历已锁定任务,先占位
fmt.Println("已锁定任务:")
for i = 0; i < len(schedsrv.LockedTaskArray); i++ {
fmt.Println( i," -- ", fmt.Sprintf("生产订单:%s 计划产线:%s 计划开始时间:%v 计划结束时间:%v ",
schedsrv.LockedTaskArray[i].TaskId, schedsrv.LockedTaskArray[i].SchedResId,
schedsrv.LockedTaskArray[i].SchedStartTime, schedsrv.LockedTaskArray[i].SchedEndTime))
}
// 遍历已计划任务,占位
fmt.Println("已计划任务:")
for i = 0; i < len(schedsrv.PlannedTaskArray); i++ {
fmt.Println( i," -- ", fmt.Sprintf("生产订单:%s 计划产线:%s 计划开始时间:%v 计划结束时间:%v ",
schedsrv.PlannedTaskArray[i].TaskId, schedsrv.PlannedTaskArray[i].SchedResId,
schedsrv.PlannedTaskArray[i].SchedStartTime, schedsrv.PlannedTaskArray[i].SchedEndTime))
}
// 遍历未计划任务
fmt.Println("未计划任务:")
for i = 0; i < len(schedsrv.UnPlannedTaskArray); i++ {
fmt.Println( i," -- ", fmt.Sprintf("生产订单:%s 计划产线:%s 计划开始时间:%v 计划结束时间:%v ",
schedsrv.UnPlannedTaskArray[i].TaskId, schedsrv.UnPlannedTaskArray[i].SchedResId,
schedsrv.UnPlannedTaskArray[i].SchedStartTime, schedsrv.UnPlannedTaskArray[i].SchedEndTime))
}
return
}

Loading…
Cancel
Save