using IWareCC.CacheInfo.Container; using IWareCC.ORM; using IWareCC.Properties; using IWareCC.SRM.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.SRM.Handle.FinishStackerTaskAuto { public class 将完成结果更新至数据库 : IHandler { /// /// 该节点的下一个节点 /// private IHandler nextHandler = null; public IHandler NextHandler { set { nextHandler = value; } } private SrmEntity Stacker; /// /// 任务容器 /// private PartTaskContainer DecompositionTaskContainer; public 将完成结果更新至数据库(SrmEntity stacker, PartTaskContainer decompositionTaskContainer) { this.Stacker = stacker; this.DecompositionTaskContainer = decompositionTaskContainer; } public void Handle() { using (var dbModel = new DbModel()) { try { var task = DecompositionTaskContainer.DecompositionTask; var parttask = dbModel.PartTasks.FirstOrDefault(x => x.isfinished == (int)EYesOrNo.否 && x.id == task.id); parttask.isfinished = (int)EYesOrNo.是; parttask.status = (int)EPartTaskStatus.已完成; parttask.finishTime = DateTime.Now;//完成时间 【EditBy shaocx,2022-09-18】 parttask.updatetime = DateTime.Now; parttask.iscurrent = (int)EYesOrNo.否; parttask.filereason = ""; if (parttask.nexthandel == (int)ENextHandelTask.已全部完成) { var maintask = dbModel.MainTasks.OrderByDescending(x => x.id).FirstOrDefault(x => x.id == parttask.maintaskid); if (maintask != null) { maintask.finishstatus = 1;//任务已经全部完成,使用枚举 EMainTaskFinishstatus } } dbModel.SaveChanges(); LogTextHelper.WriteLine(Resources.LogDir + @"/完成堆垛机任务/" + Stacker.SrmName, "将完成结果更新至数据库:{0}", "保存成功"); if (nextHandler != null) { nextHandler.Handle(); } } catch (Exception ex) { LogTextHelper.WriteLine(Resources.LogDir + @"/完成堆垛机任务/" + Stacker.SrmName, "将完成结果更新至数据库:{0}", ex.Message); LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Handle", ex.Message); } } } } }