NoInteractionWorld.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using ServiceCenter.SqlSugars;
  2. using System.ComponentModel;
  3. using WCS.Core;
  4. using WCS.Entity;
  5. using WCS.WorkEngineering.Extensions;
  6. namespace WCS.WorkEngineering.Worlds
  7. {
  8. /// <summary>
  9. /// 非交互世界
  10. /// </summary>
  11. [Description("非交互世界")]
  12. public class NoInteractionWorld : MainWorld
  13. {
  14. /// <summary>
  15. /// 世界执行周期间隔
  16. /// 单位:毫秒
  17. /// </summary>
  18. protected override int Interval => 300;
  19. /// <summary>
  20. /// 更新前执行,重写改方法后请自行添加执行内容
  21. /// 执行内容:清空日志队列
  22. /// </summary>
  23. protected override void BeforeUpdate()
  24. {
  25. // 清空日志队列,确保日志队列中只会有当前周期日志
  26. Logs.Clear();
  27. #region 处理所有新建出库任务
  28. SqlSugarHelper.Do(db =>
  29. {
  30. List<WCS_TaskInfo> tasks = new List<WCS_TaskInfo>();
  31. //获取所有新建状态的出库任务
  32. tasks = db.Default.Queryable<WCS_TaskInfo>().Where(t => t.Status == Entity.TaskStatus.NewBuild && t.Type == TaskType.OutDepot).ToList();
  33. if (tasks.Count > 0)
  34. {
  35. tasks.ForEach(task =>
  36. {
  37. //获取堆垛机到目标地址的路径信息
  38. var ty = DevicePath.GetPath(task.Device, task.AddrTo);
  39. //开始处理
  40. task.SrmStation = ty.Points[1].Code;
  41. //task.AddrNext = path[2];
  42. task.Status = Entity.TaskStatus.WaitingToExecute;
  43. task.AddWCS_TASK_DTL(db, task.Device, $"初始化出库任务信息,放货站台:{task.SrmStation}");
  44. db.Default.Updateable(task).AddQueue();
  45. });
  46. }
  47. #endregion 处理所有新建出库任务
  48. #region 处理所有的新增入库任务
  49. tasks = db.Default.Queryable<WCS_TaskInfo>().Where(t => t.Status == Entity.TaskStatus.NewBuild).ToList();
  50. if (tasks.Count > 0)
  51. {
  52. tasks.ForEach(task =>
  53. {
  54. //开始处理
  55. task.Status = Entity.TaskStatus.WaitingToExecute;
  56. task.AddWCS_TASK_DTL(db, task.Device, $"初始化出库任务信息,放货站台:{task.SrmStation}");
  57. db.Default.Updateable(task).AddQueue();
  58. });
  59. }
  60. #endregion 处理所有的新增入库任务
  61. db.Default.SaveQueues();
  62. });
  63. }
  64. }
  65. }