using ServiceCenter.SqlSugars; using System.ComponentModel; using WCS.Core; using WCS.Entity; using WCS.WorkEngineering.Extensions; namespace WCS.WorkEngineering.Worlds { /// /// 非交互世界 /// [Description("非交互世界")] public class NoInteractionWorld : MainWorld { /// /// 世界执行周期间隔 /// 单位:毫秒 /// protected override int Interval => 300; /// /// 更新前执行,重写改方法后请自行添加执行内容 /// 执行内容:清空日志队列 /// protected override void BeforeUpdate() { // 清空日志队列,确保日志队列中只会有当前周期日志 Logs.Clear(); #region 处理所有新建出库任务 SqlSugarHelper.Do(db => { List tasks = new List(); //获取所有新建状态的出库任务 tasks = db.Default.Queryable().Where(t => t.Status == Entity.TaskStatus.NewBuild && t.Type == TaskType.OutDepot).ToList(); if (tasks.Count > 0) { tasks.ForEach(task => { //获取堆垛机到目标地址的路径信息 var ty = DevicePath.GetPath(task.Device, task.AddrTo); //开始处理 task.SrmStation = ty.Points[1].Code; //task.AddrNext = path[2]; task.Status = Entity.TaskStatus.WaitingToExecute; task.AddWCS_TASK_DTL(db, task.Device, $"初始化出库任务信息,放货站台:{task.SrmStation}"); db.Default.Updateable(task).AddQueue(); }); } #endregion 处理所有新建出库任务 #region 处理所有的新增入库任务 tasks = db.Default.Queryable().Where(t => t.Status == Entity.TaskStatus.NewBuild).ToList(); if (tasks.Count > 0) { tasks.ForEach(task => { //开始处理 task.Status = Entity.TaskStatus.WaitingToExecute; task.AddWCS_TASK_DTL(db, task.Device, $"初始化出库任务信息,放货站台:{task.SrmStation}"); db.Default.Updateable(task).AddQueue(); }); } #endregion 处理所有的新增入库任务 db.Default.SaveQueues(); }); } } }