using iWareCc.DecomposeTask.Entity; using iWareCc.HandleTask.Strategy.出库任务; using iWareCc.HandleTask.Strategy.入库任务; using iWareCcTest.Properties; using iWareCommon.Common.Entity; using iWareCommon.Utils; using iWareDataCore.DEV.EnumType; using iWareDataCore.ORM; using iWareDataCore.TASK.EnumType; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace iWareCc.HandleTask.Chain { public class 根据任务类型获取下一阶段任务 : IHandler { private IHandler nextHandler = null; /// /// 该节点的下一个节点 /// public IHandler NextHandler { set { nextHandler = value; } } /// /// 处理任务容器 /// private PartTaskContainer HandleTaskContainer; /// /// 下一任务容器 /// private PartTaskContainer NextTaskContainer; /// /// 结果容器 /// private ResultContainer ResultContainer; public 根据任务类型获取下一阶段任务(PartTaskContainer handleTaskContainer, PartTaskContainer nextTaskContainer, ResultContainer resultContainer) { this.HandleTaskContainer = handleTaskContainer; this.NextTaskContainer = nextTaskContainer; this.ResultContainer = resultContainer; } public void Handle() { if (HandleTaskContainer.PartTask.MainTaskType == (int)EMainTaskType.入库任务) { new Context(new 处理入库任务(ResultContainer, HandleTaskContainer, NextTaskContainer)).Invoke(); } else if (HandleTaskContainer.PartTask.MainTaskType == (int)EMainTaskType.出库任务) { new Context(new 处理出库任务(ResultContainer, HandleTaskContainer, NextTaskContainer)).Invoke(); } else { //任务类型不对 LogTextHelper.WriteLine(Resources.LogDir + @"/处理任务流程", "任务类型有误"); return; } if (!string.IsNullOrEmpty(ResultContainer.Msg)) { LogTextHelper.WriteLine(Resources.LogDir + @"/处理任务流程", "根据相应的任务类型获取下一阶段任务:{0}", ResultContainer.Msg); return; } var task = NextTaskContainer.PartTask; LogTextHelper.WriteLine(Resources.LogDir + @"/处理任务流程", "根据相应的任务类型获取下一阶段任务:{2} {0}--->{1}", task == null ? "" : task.SourcePlace, task == null ? "" : task.ToPlace, task == null ? EPartTaskType.堆垛机任务 : (EPartTaskType)task.Type); if (nextHandler != null) { nextHandler.Handle(); } } } }