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;
|
/// <summary>
|
/// 该节点的下一个节点
|
/// </summary>
|
public IHandler NextHandler
|
{
|
set { nextHandler = value; }
|
}
|
|
/// <summary>
|
/// 处理任务容器
|
/// </summary>
|
private PartTaskContainer HandleTaskContainer;
|
|
/// <summary>
|
/// 下一任务容器
|
/// </summary>
|
private PartTaskContainer NextTaskContainer;
|
|
/// <summary>
|
/// 结果容器
|
/// </summary>
|
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();
|
}
|
|
}
|
}
|
}
|