using iWareCc.DecomposeTask.Entity;
|
using iWareCc.DecomposeTask.Strategy.出库任务.Chain;
|
using iWareCommon.Common.Entity;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace iWareCc.DecomposeTask.Strategy.出库任务
|
{
|
public class 生成出库堆垛机任务:IStrategy
|
{
|
private ResultContainer ResultContainer;
|
private MainTaskContainer LogisticalTaskContainer;
|
private PartTaskContainer DecompositionTaskContainer;
|
private PlaceContainer PlaceContainer;
|
|
public 生成出库堆垛机任务(ResultContainer resultContainer, MainTaskContainer logisticalTaskContainer, PartTaskContainer decompositionTaskContainer, PlaceContainer placeContainer)
|
{
|
this.ResultContainer = resultContainer;
|
this.LogisticalTaskContainer = logisticalTaskContainer;
|
this.DecompositionTaskContainer = decompositionTaskContainer;
|
this.PlaceContainer = placeContainer;
|
}
|
|
public void DoJob()
|
{
|
var 判断与任务匹配的堆垛机是否空闲 = new 判断堆垛机是否空闲(ResultContainer, LogisticalTaskContainer);
|
var 寻找满足库存条件的库位 = new 寻找满足库存条件的库位(ResultContainer,LogisticalTaskContainer, PlaceContainer);
|
var 生成堆垛机任务 = new 生成堆垛机任务(ResultContainer,LogisticalTaskContainer, DecompositionTaskContainer, PlaceContainer);
|
|
判断与任务匹配的堆垛机是否空闲.NextHandler = 寻找满足库存条件的库位;
|
寻找满足库存条件的库位.NextHandler = 生成堆垛机任务;
|
判断与任务匹配的堆垛机是否空闲.Handle();
|
}
|
}
|
}
|