using iWareCc.Cache.Entity;
|
using iWareCc.DecomposeTask.Entity;
|
using iWareCcTest.Properties;
|
using iWareCommon.Common.Entity;
|
using iWareCommon.Common.EnumType;
|
using iWareCommon.Utils;
|
using iWareDataCore.BASE.Entity;
|
using iWareDataCore.DEV.Entity;
|
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 equment = new EquipmentEntity();
|
var fromPlace = new PlaceViewEntity();
|
var toPlace = new PlaceViewEntity();
|
int nextnode = 99;
|
int type = 99;
|
if (hTask.NextNode != (int)EInstorgNextNode.stacker)
|
{
|
string conveyorCnName = Enum.GetName(typeof(EEquipmentCnName), EEquipmentCnName.conveyor1);
|
equment = CacheEntity.Equipments.FirstOrDefault(x => x.EquipName == conveyorCnName);
|
type = (int)EPartTaskType.输送机任务;
|
}
|
else
|
{
|
string stackerCnName = Enum.GetName(typeof(EEquipmentCnName), EEquipmentCnName.stacker1);
|
equment = CacheEntity.Equipments.FirstOrDefault(x => x.EquipName == stackerCnName);
|
type = (int)EPartTaskType.堆垛机任务;
|
}
|
int ishandel = (int)EYesOrNo.否;
|
switch (HandleTaskContainer.PartTask.NextNode)
|
{
|
case (int)EInstorgNextNode.gate13:
|
fromPlace = CacheEntity.Places.FirstOrDefault(x => x.Id == hTask.ToPlaceId);
|
toPlace = CacheEntity.Places.FirstOrDefault(x => x.PlaceTypeName == EInstorgNextNode.gate13.ToString());
|
nextnode = (int)EInstorgNextNode.gate14;
|
break;
|
case (int)EInstorgNextNode.gate14:
|
fromPlace = CacheEntity.Places.FirstOrDefault(x => x.Id == hTask.ToPlaceId);
|
toPlace = CacheEntity.Places.FirstOrDefault(x => x.PlaceTypeName == EInstorgNextNode.gate14.ToString());
|
nextnode = (int)EInstorgNextNode.gate15;
|
break;
|
case (int)EInstorgNextNode.gate15:
|
fromPlace = CacheEntity.Places.FirstOrDefault(x => x.Id == hTask.ToPlaceId);
|
toPlace = CacheEntity.Places.FirstOrDefault(x => x.PlaceTypeName == EInstorgNextNode.gate15.ToString());
|
nextnode = (int)EInstorgNextNode.stacker;
|
break;
|
case (int)EInstorgNextNode.stacker:
|
fromPlace = CacheEntity.Places.FirstOrDefault(x => x.Id == hTask.ToPlaceId);
|
toPlace = CacheEntity.Places.FirstOrDefault(x => x.Id == hTask.TargetPlaceId);
|
nextnode = (int)EInstorgNextNode.none;
|
ishandel = (int)EYesOrNo.是;
|
break;
|
}
|
|
NextTaskContainer.PartTask = new PartTaskEntity
|
{
|
Type = type,
|
MainTaskId = hTask.MainTaskId,
|
MainTaskType = hTask.MainTaskType,
|
TaskNo = hTask.TaskNo,
|
SysCode = hTask.SysCode,
|
ExecutionSequence = 2,
|
SourcePlace = fromPlace.Code,
|
SourcePlaceId = fromPlace.Id,
|
SourcePosx = (int)fromPlace.Row,
|
SourcePosy = (int)fromPlace.Layer,
|
SourcePosz = (int)fromPlace.Col,
|
ToPlace = toPlace.Code,
|
ToPlaceId = toPlace.Id,
|
ToPosx = (int)toPlace.Row,
|
ToPosy = (int)toPlace.Layer,
|
ToPosz = (int)toPlace.Col,
|
Status = (int)EPartTaskStatus.未开始,
|
CreateTime = DateTime.Now,
|
UpdateTime = DateTime.Now,
|
EquipId = equment.Id,
|
EquipName = equment.EquipName,
|
TaskProcessStatus = (int)ESrmState.未知,
|
VoidLabel = (int)EYesOrNo.否,
|
Priority = 100,
|
IsMoveTask = (int)EYesOrNo.否,
|
ProcessCardNumber = hTask.ProcessCardNumber,
|
PackageNo = hTask.PackageNo,
|
MaterialCode = hTask.MaterialCode,
|
TargetPlaceId = hTask.TargetPlaceId,
|
Quantity = hTask.Quantity,
|
NextNode=nextnode,
|
IsHandled=ishandel,
|
IsLots=hTask.IsLots
|
};
|
LogTextHelper.WriteLine(Resources.LogDir + @"/处理任务流程", "处理输送机任务:{0}", NextTaskContainer.PartTask.TaskNo);
|
}
|
|
catch (Exception ex)
|
{
|
ResultContainer.Msg = ex.Message;
|
LogTextHelper.WriteLine(Resources.LogDir + @"/处理任务流程", "处理输送机任务:{0}", ex.Message);
|
LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Handle", ex.Message);
|
}
|
}
|
}
|
}
|