第二代基于事件的高级计划排程引擎
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.

46 lines
1.1 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. package service
  2. import (
  3. "leit.com/aps_engine/common"
  4. "leit.com/aps_engine/models"
  5. )
  6. // 工位组类型资源组对象
  7. type WorkPlaceGrpSrv struct{
  8. WorkPlaceGrpNr int
  9. Wpgtab models.Workplacegrp
  10. WorkPlaceDict map[int]*WorkPlaceSrv
  11. WaitTaskArray []OperationSrv // 任务等待队列
  12. SchedTaskArray []SchedTaskSrv // 已计划任务队列
  13. }
  14. // 初始化对象
  15. func(wpgs *WorkPlaceGrpSrv)Init(wpgnr int){
  16. wpgs.WorkPlaceGrpNr = wpgnr
  17. wpgs.WorkPlaceDict = make(map[int]*WorkPlaceSrv)
  18. wpgs.WaitTaskArray = []OperationSrv{}
  19. wpgs.SchedTaskArray = []SchedTaskSrv{}
  20. }
  21. // 初始化对象
  22. func(wpgs *WorkPlaceGrpSrv)Create(wpgtab models.Workplacegrp){
  23. wpgs.WorkPlaceGrpNr = wpgtab.Workplacegrpnr
  24. wpgs.Wpgtab = wpgtab
  25. wpgs.WorkPlaceDict = make(map[int]*WorkPlaceSrv)
  26. wpgs.WaitTaskArray = []OperationSrv{}
  27. wpgs.SchedTaskArray = []SchedTaskSrv{}
  28. }
  29. // 判断工位组内当前是否有工位状态可用
  30. func(wpgs *WorkPlaceGrpSrv)ExistAvailableWorkPlace()(exist bool){
  31. exist = false
  32. for _, wp := range wpgs.WorkPlaceDict{
  33. if wp.Status == common.RES_STATUS_AVAIL {
  34. exist = true
  35. return
  36. }
  37. }
  38. return
  39. }