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); } } } }