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.FinishRgvTaskAuto { public class 获取当前的Rgv任务: IHandler { /// /// 该节点的下一个节点 /// private IHandler nextHandler = null; public IHandler NextHandler { set { nextHandler = value; } } private RgvEntity Rgv; /// /// 任务容器 /// private PartTaskContainer DecompositionTaskContainer; public 获取当前的Rgv任务(RgvEntity rgv, PartTaskContainer decompositionTaskContainer) { this.Rgv = rgv; this.DecompositionTaskContainer = decompositionTaskContainer; } public void Handle() { using (var dbModel = new DbModel()) { try { if (!Rgv.RTaskFinish && Rgv.WAckTaskFinish) { Rgv.WriteValue(Rgv.OpcWriteItems.Stb, 0); Rgv.WriteValue(Rgv.OpcWriteItems.AckTaskFinish, 0); return; } if (Rgv.RAck && Rgv.WStb) { Rgv.WriteValue(Rgv.OpcWriteItems.Stb, 0); LogTextHelper.WriteLine(Resources.LogDir + @"/自动执行Rgv任务流程/" + Rgv.RgvName, "选择一个未执行的Rgv的任务:Rgv{0}已在任务中,不能下发任务", Rgv.RgvName); return; } var task = dbModel.PartTasks.OrderBy(x => x.finishtimes).FirstOrDefault(x => x.iscurrent == (int)EYesOrNo.是 && x.isreleased == (int)EYesOrNo.是 && x.isfinished == (int)EYesOrNo.否 && x.eqtype == (int)EPartTaskType.Rgv任务 && x.eqid == Rgv.DeviceId); if (task == null) { // LogTextHelper.WriteLine(Resources.LogDir + @"/完成Rgv任务/" + Rgv.RgvName, "获取当前的Rgv任务:{0}", "没有找到待完成的任务"); return; } task.finishtimes += 1; dbModel.SaveChanges(); DecompositionTaskContainer.DecompositionTask = task; LogTextHelper.WriteLine(Resources.LogDir + @"/完成Rgv任务/" + Rgv.RgvName, "获取当前的Rgv任务:{0}", DecompositionTaskContainer.DecompositionTask.id); if (nextHandler != null) { nextHandler.Handle(); } } catch (Exception ex) { LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Handle", ex.Message); } } } } }