using IWareCC.CacheInfo; using IWareCC.CacheInfo.Container; using IWareCC.ORM; using IWareCC.Properties; using IWareCC.RGV.Entity; using IWareCommon.Enum.Common; using IWareCommon.Help; using IWareCommon.Util; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IWareCC.RGV.Handle.DoRgvTaskAuto { public class 发送Rgv任务: IHandler { /// /// 该节点的下一个节点 /// private IHandler nextHandler = null; public IHandler NextHandler { set { nextHandler = value; } } /// /// 任务容器 /// private PartTaskContainer DecompositionTaskContainer; /// /// 需要执行任务的Rgv /// private RgvEntity Rgv; /// /// 构造函数 /// /// 任务容器 public 发送Rgv任务( PartTaskContainer decompositionTaskContainer) { this.DecompositionTaskContainer = decompositionTaskContainer; } public void Handle() { using (var dbModel = new DbModel()) { try { var task = DecompositionTaskContainer.DecompositionTask; int tdevid = (int)((EDeviceId)task.eqid); var rgv = CacheEntity.Rgvs.FirstOrDefault(x => x.DeviceId == tdevid); Rgv = rgv; var dTask = dbModel.PartTasks.FirstOrDefault(x => x.id == task.id); string msg = ""; var flag = Rgv.SendTask(Rgv.DeviceId,int.Parse(task.taskcode),task.sourceplace,task.toplace,task.containertype,out msg ); if (flag) { dTask.isreleased = (int)EYesOrNo.是; dTask.status = (int)EPartTaskStatus.执行中; dTask.issueTime = DateTime.Now;//下发时间 【EditBy shaocx,2022-09-18】 dTask.plcReceiveTime = DateTime.Now;//plc接收任务时间时间 【EditBy shaocx,2022-09-18】 dTask.iscurrent = (int)EYesOrNo.是; dTask.updatetime = DateTime.Now; dTask.filereason = ""; dbModel.SaveChanges(); LogTextHelper.WriteLine(Resources.LogDir + @"/自动执行Rgv任务流程/" + Rgv.RgvName, "发送Rgv任务:{0},{1},{2},{3}", task.id, flag, task.sourceplace, task.toplace); } else { LogTextHelper.WriteLine(Resources.LogDir + @"/自动执行Rgv任务流程/" + Rgv.RgvName, "发送Rgv任务:{0},{1}", task.id, flag); task.filereason = "任务发送失败!"; dbModel.SaveChanges(); return; } if (nextHandler != null) { nextHandler.Handle(); } } catch (Exception ex) { LogTextHelper.WriteLine(Resources.LogDir + @"/自动执行Rgv任务流程/" + Rgv.RgvName, "发送Rgv任务:{0}", ex.Message); LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Handle", ex.Message); } } } } }