1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- using ServiceCenter.SqlSugars;
- using System.ComponentModel;
- using WCS.Core;
- using WCS.Entity;
- using WCS.WorkEngineering.Extensions;
- namespace WCS.WorkEngineering.Worlds
- {
- /// <summary>
- /// 非交互世界
- /// </summary>
- [Description("非交互世界")]
- public class NoInteractionWorld : MainWorld
- {
- /// <summary>
- /// 世界执行周期间隔
- /// 单位:毫秒
- /// </summary>
- protected override int Interval => 300;
- /// <summary>
- /// 更新前执行,重写改方法后请自行添加执行内容
- /// 执行内容:清空日志队列
- /// </summary>
- protected override void BeforeUpdate()
- {
- // 清空日志队列,确保日志队列中只会有当前周期日志
- Logs.Clear();
- #region 处理所有新建出库任务
- SqlSugarHelper.Do(db =>
- {
- List<WCS_TaskInfo> tasks = new List<WCS_TaskInfo>();
- //获取所有新建状态的出库任务
- tasks = db.Default.Queryable<WCS_TaskInfo>().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<WCS_TaskInfo>().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();
- });
- }
- }
- }
|