using iWareCc.DecomposeTask.Entity;
using iWareCc.Properties;
using iWareCc.Srm.Entity;
using iWareCommon.Common.Entity;
using iWareCommon.Common.EnumType;
using iWareCommon.Utils;
using iWareDataCore.ORM;
using iWareDataCore.TASK.EnumType;
using iWareLog.ORM;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iWareCc.FinishStackerTask.Chain
{
public class 保存出入库明细信息 : IHandler
{
///
/// 该节点的下一个节点
///
private IHandler nextHandler = null;
public IHandler NextHandler
{
set { nextHandler = value; }
}
private StackerEntity Stacker;
///
/// 任务容器
///
private PartTaskContainer DecompositionTaskContainer;
public 保存出入库明细信息(StackerEntity stacker, PartTaskContainer decompositionTaskContainer)
{
this.Stacker = stacker;
this.DecompositionTaskContainer = decompositionTaskContainer;
}
public void Handle()
{
using (var dbModel = new DbModelLog())
{
try
{
var task = DecompositionTaskContainer.PartTask;
int materid = 0;
using (var dbModelcore = new DbModelCore())
{
var mater = dbModelcore.BASEMaterials.FirstOrDefault(x => x.code == task.MaterialCode);
if (mater != null)
{
materid = mater.id;
}
}
;
int tp = 0;
int? _isSendToMes = null;//是否发送给MES 【Editby shaocx,2025-09-25】
switch (task.MainTaskType)
{
case (int)EMainTaskType.入库任务:
tp = 0;
_isSendToMes = (int)EIsSendToMes.待推送;
break;
case (int)EMainTaskType.出库任务:
tp = 1;
_isSendToMes = (int)EIsSendToMes.待推送;
break;
case (int)EMainTaskType.移库任务:
tp = 2;
task.IsHandled = (int)EYesOrNo.是;
break;
default:
tp = 3;
task.IsHandled = (int)EYesOrNo.是;
break;
}
InOutStorageDetail iosd = new InOutStorageDetail()
{
fromplacecode = task.SourcePlace,
formplaceid = task.SourcePlaceId,
toplacecode = task.ToPlace,
toplaceid = task.ToPlaceId,
equipid = task.EquipId,
equipname = task.EquipName,
updatetime = DateTime.Now,
createtime = task.CreateTime,
materialcode = task.MaterialCode,
materialid = materid,
type = tp,
isSendToMes = _isSendToMes //是否发送给MES 【Editby shaocx,2025-09-25】
};
dbModel.InOutStorageDetails.Add(iosd);
dbModel.SaveChanges();
LogTextHelper.WriteLine(Resources.LogDir + @"/完成堆垛机任务/" + Stacker.Equipment.EquipName, "保存出入库明细信息:{0}", task.Id);
if (nextHandler != null)
{
nextHandler.Handle();
}
}
catch (Exception ex)
{
LogTextHelper.WriteLine(Resources.LogDir + @"/完成堆垛机任务/" + Stacker.Equipment.EquipName, "保存出入库明细信息:{0}", ex.Message);
LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Handle", ex.Message);
}
}
}
}
}