You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.2 KiB

4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
  1. package schedule
  2. import (
  3. "testing"
  4. "time"
  5. )
  6. // 测试自动调度
  7. func TestScheduler(t *testing.T) {
  8. var (
  9. y1,d1 int
  10. m1 time.Month
  11. schedeng SchedulerSrv
  12. startDate, endDate time.Time
  13. worklinetype string
  14. )
  15. // 建立数据库连接
  16. // 初始化scheduler,默认从当天起计划5天
  17. y1,m1,d1 = time.Now().Date()
  18. startDate = time.Date(y1, m1, d1, 0, 0, 0, 0, time.UTC)
  19. endDate = startDate.Add(24*5*time.Hour)
  20. schedeng = SchedulerSrv{PlantNr:100, StartDate: startDate,EndDate: endDate}
  21. // 指定加载的产线类型
  22. worklinetype= ""
  23. // 加载激活的项目主数据
  24. schedeng.LoadProjectData()
  25. // 加载时间模型,基于调度引擎指定的时间区间
  26. schedeng.LoadTimemodelData()
  27. // 加载产品换型主数据
  28. schedeng.LoadSetupData()
  29. // 加载产线主数据
  30. schedeng.LoadWorklineData(worklinetype)
  31. // 加载产线班组计划出勤数据
  32. schedeng.LoadWorkLineWorkShiftData()
  33. // 生成产线的时间曲线
  34. schedeng.GenerateWorkLineTimeCurve()
  35. // 加载工单数据(调度任务)
  36. schedeng.LoadSchedTaskData()
  37. // 对调度任务进行排序
  38. schedeng.SortUnplannedTask()
  39. // 依次调度未计划工单
  40. schedeng.AutoSchedule()
  41. // 输出排程结果
  42. schedeng.PrintScheduleResult()
  43. }