Browse Source

自动化排程提交

pull/97/head
娄文智 3 years ago
parent
commit
7efaebbc96
2 changed files with 35 additions and 29 deletions
  1. +2
    -2
      services/schedule/SchedTask.Ctrl.go
  2. +33
    -27
      services/schedule/Schedule_test.go

+ 2
- 2
services/schedule/SchedTask.Ctrl.go View File

@ -127,9 +127,9 @@ func (tasksrv *TaskSrv) Init(custOrder plnModel.CustOrder) {
if custOrder.QuantityPerHour <= 0 || calQty <= 0 {
tasksrv.Duration = 0
} else {
//tasksrv.Duration = time.Duration(float64(calQty)/wotab.QuantityPerHour) * time.Hour
tasksrv.Duration = time.Duration(calQty/custOrder.QuantityPerHour*3600) * time.Second
tasksrv.Duration = time.Duration(float64(calQty)/float64(custOrder.QuantityPerHour)*3600) * time.Second
}
//}
//if wotab.TimePerItemToggle {
// perItemSeconds := float64(wotab.OpTimePerItem) * GetTimeUomSeconds(wotab.TimeUomId)


+ 33
- 27
services/schedule/Schedule_test.go View File

@ -42,7 +42,8 @@ func TestScheduler(t *testing.T) {
glog.Infoln("启动日志", "InitDB return success")
// 建立数据库连接
//加载配置
err = conf.ReadYamlConfig("C:\\Users\\Leit\\Desktop\\workspace\\LAPP_Acura_MES_Backend\\conf\\config.yaml")
err = conf.ReadYamlConfig("D:\\GoWrok\\src\\leit.com\\LAPP_Acura_MES_Backend\\conf\\config.yaml")
if err != nil {
fmt.Printf("failed to read yaml config due to: %v", err)
return
@ -74,23 +75,23 @@ func TestScheduler(t *testing.T) {
t.Error(err.Error())
}
fmt.Println()
fmt.Printf("LoadProjectData:%v", schedeng.ProjDict)
//fmt.Printf("LoadProjectData:%v", schedeng.ProjDict)
// 加载时间模型,基于调度引擎指定的时间区间
schedeng.LoadTimeModelData(worklineid)
fmt.Println()
d, _ := json.MarshalIndent(schedeng, "", " ")
fmt.Println(string(d))
fmt.Printf("WorkShiftDict:%v", schedeng.Tmsrv.WorkShiftDict)
fmt.Println()
fmt.Printf("LoadTimeModelData:%v", schedeng.Tmsrv.WorkShiftDict)
fmt.Println()
//fmt.Println()
//d, _ := json.MarshalIndent(schedeng, "", " ")
//fmt.Println(string(d))
//fmt.Printf("WorkShiftDict:%v", schedeng.Tmsrv.WorkShiftDict)
//fmt.Println()
//fmt.Printf("LoadTimeModelData:%v", schedeng.Tmsrv.WorkShiftDict)
//fmt.Println()
// 加载产品换型主数据
err = schedeng.LoadSetupData()
if err != nil {
t.Error(err.Error())
}
fmt.Println()
fmt.Printf("LoadSetupData:%v", schedeng.SetupDict)
//fmt.Printf("LoadSetupData:%v", schedeng.SetupDict)
// 加载产线主数据
err = schedeng.LoadWorkLineData(worklineid)
if err != nil {
@ -98,37 +99,42 @@ func TestScheduler(t *testing.T) {
}
fmt.Println()
fmt.Printf("LoadWorkLineData:%v", schedeng.WorklineDict)
//fmt.Printf("LoadWorkLineData:%v", schedeng.WorklineDict)
fmt.Println()
fmt.Printf("ACURA_CARSET:%v", schedeng.WorklineDict["ACURA_CARSET"])
//fmt.Printf("ACURA_CARSET:%v", schedeng.WorklineDict["ACURA_CARSET"])
// 加载产线班组计划出勤数据
err = schedeng.LoadWorkLineWorkShiftData()
if err != nil {
t.Error(err.Error())
}
fmt.Println()
fmt.Printf("LoadWorkLineWorkShiftData:%v", schedeng.WorklineDict)
//fmt.Printf("LoadWorkLineWorkShiftData:%v", schedeng.WorklineDict)
fmt.Println()
fmt.Printf("ACURA_CARSET:%v", schedeng.WorklineDict["ACURA_CARSET"])
//fmt.Printf("ACURA_CARSET:%v", schedeng.WorklineDict["ACURA_CARSET"])
// 生成产线的时间曲线
err = schedeng.GenerateWorkLineTimeCurve()
if err != nil {
t.Error(err.Error())
}
fmt.Println()
fmt.Printf("TimeLineArray:%v", schedeng.WorklineDict["ACURA_CARSET"].TimeCurve.TimeLineArray)
fmt.Println()
fmt.Printf("SchedTimeCurve:%v", schedeng.WorklineDict["ACURA_CARSET"].SchedTimeCurve)
//fmt.Println()
//fmt.Printf("TimeLineArray:%v", schedeng.WorklineDict["ACURA_CARSET"].TimeCurve.TimeLineArray)
//fmt.Println()
//fmt.Printf("SchedTimeCurve:%v", schedeng.WorklineDict["ACURA_CARSET"].SchedTimeCurve)
// 加载工单数据(调度任务)
err = schedeng.LoadSchedTaskData(worklineid)
if err != nil {
t.Error(err.Error())
}
fmt.Printf("ACURA_CARSET Task:%v", schedeng.WorklineDict["ACURA_CARSET"].SchedTaskArray)
fmt.Println()
// 对调度任务进行排序
schedeng.SortUnplannedTask()
fmt.Printf("SortUnplannedTask:%v", schedeng.UnPlannedTaskArray)
fmt.Println()
//fmt.Println()
//fmt.Printf("SortUnplannedTask:%v", schedeng.UnPlannedTaskArray)
fmt.Println("未排程任务:")
for i := 0; i < len(schedeng.UnPlannedTaskArray); i++ {
fmt.Println(i, " -- ", fmt.Sprintf("生产订单:%v 计划产线:%v ", schedeng.UnPlannedTaskArray[i].CustOrder.CustOrderId, schedeng.UnPlannedTaskArray[i].CustOrderStatus.Status))
}
// 依次调度未计划工单
err = schedeng.AutoSchedule()
if err != nil {
@ -152,15 +158,15 @@ func TestScheduler(t *testing.T) {
schedeng.TaskId = cacheInfo.TaskId
}
fmt.Printf("WorkShiftDict:%v", schedeng.WorklineDict)
//fmt.Printf("WorkShiftDict:%v", schedeng.WorklineDict)
fmt.Println("ACURA_CARSET")
fmt.Printf("ACURA_CARSET Task:%v", schedeng.WorklineDict["ACURA_CARSET"].SchedTaskArray)
fmt.Println()
fmt.Printf("ACURA_CARSET TimeCurve:%v", schedeng.WorklineDict["ACURA_CARSET"].TimeCurve)
fmt.Println()
fmt.Printf("ACURA_CARSET SchedTimeCurve:%v", schedeng.WorklineDict["ACURA_CARSET"].SchedTimeCurve)
fmt.Println()
fmt.Printf("ACURA_CARSET WorkLoadArray:%v", schedeng.WorklineDict["ACURA_CARSET"].WorkLoadArray)
//fmt.Printf("ACURA_CARSET TimeCurve:%v", schedeng.WorklineDict["ACURA_CARSET"].TimeCurve)
//fmt.Println()
//fmt.Printf("ACURA_CARSET SchedTimeCurve:%v", schedeng.WorklineDict["ACURA_CARSET"].SchedTimeCurve)
//fmt.Println()
//fmt.Printf("ACURA_CARSET WorkLoadArray:%v", schedeng.WorklineDict["ACURA_CARSET"].WorkLoadArray)
fmt.Println()
// 排程任务
fmt.Println("排程任务:")


Loading…
Cancel
Save