using iWareCc.Cache.Entity;
|
using iWareCc.DecomposeTask.Entity;
|
using iWareCcTest.Properties;
|
using iWareCommon.Common.Entity;
|
using iWareCommon.Common.EnumType;
|
using iWareCommon.Utils;
|
using iWareDataCore.DEV.EnumType;
|
using iWareDataCore.TASK.Entity;
|
using iWareDataCore.TASK.EnumType;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace iWareCc.HandleTask.Strategy.出库任务.Strategy
|
{
|
public class 处理堆垛机任务 : IStrategy
|
{
|
private ResultContainer ResultContainer;
|
private PartTaskContainer HandleTaskContainer;
|
private PartTaskContainer NextTaskContainer;
|
|
public 处理堆垛机任务(ResultContainer resultContainer, PartTaskContainer handleTaskContainer, PartTaskContainer nextTaskContainer)
|
{
|
this.ResultContainer = resultContainer;
|
this.HandleTaskContainer = handleTaskContainer;
|
this.NextTaskContainer = nextTaskContainer;
|
}
|
|
public void DoJob()
|
{
|
try
|
{
|
var hTask = HandleTaskContainer.PartTask;
|
|
var conveyor = CacheEntity.Equipments.FirstOrDefault(x => x.EquipName == "conveyor2");
|
var fromPlace = CacheEntity.Places.FirstOrDefault(x => x.PlaceTypeName == "gate21");
|
var toPlace = CacheEntity.Places.FirstOrDefault(x => x.PlaceTypeName == "gate22");
|
|
NextTaskContainer.PartTask = new PartTaskEntity
|
{
|
Type = (int)EPartTaskType.输送机任务,
|
MainTaskId = hTask.MainTaskId,
|
MainTaskType = hTask.MainTaskType,
|
TaskNo = hTask.TaskNo,
|
SysCode = hTask.SysCode,
|
ExecutionSequence = 2,
|
SourcePlace = fromPlace.Code,
|
SourcePlaceId = fromPlace.Id,
|
SourcePosx = (int)fromPlace.Col,
|
SourcePosy = (int)fromPlace.Layer,
|
SourcePosz = (int)fromPlace.Row,
|
ToPlace = toPlace.Code,
|
ToPlaceId = toPlace.Id,
|
ToPosx = (int)toPlace.Col,
|
ToPosy = (int)toPlace.Layer,
|
ToPosz = (int)toPlace.Row,
|
Status = (int)EPartTaskStatus.未开始,
|
CreateTime = DateTime.Now,
|
UpdateTime = DateTime.Now,
|
EquipId = conveyor.Id,
|
EquipName = conveyor.EquipName,
|
TaskProcessStatus = (int)ESrmState.未知,
|
VoidLabel = (int)EYesOrNo.否,
|
Priority = 100,
|
IsMoveTask = (int)EYesOrNo.否,
|
ProcessCardNumber = hTask.ProcessCardNumber,
|
PackageNo = hTask.PackageNo,
|
MaterialCode = hTask.MaterialCode,
|
Quantity = hTask.Quantity,
|
TargetPlaceId = hTask.TargetPlaceId,
|
IsHandled=(int)EYesOrNo.是
|
};
|
LogTextHelper.WriteLine(Resources.LogDir + @"/处理任务流程", "处理堆垛机任务:Id={0}", NextTaskContainer.PartTask.Id);
|
}
|
|
catch (Exception ex)
|
{
|
ResultContainer.Msg = ex.Message;
|
LogTextHelper.WriteLine(Resources.LogDir + @"/处理任务流程", "处理堆垛机任务:{0}", ex.Message);
|
LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Handle", ex.Message);
|
}
|
}
|
}
|
}
|