using iWareCc.DecomposeTask.Entity; using iWareCcTest.Properties; using iWareCommon.Common.Entity; using iWareCommon.Common.EnumType; using iWareCommon.Utils; using iWareDataCore.BASE.EnumType; using iWareDataCore.ORM; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace iWareCc.HandleTask.Chain { public class 保存处理信息 : IHandler { private IHandler nextHandler = null; /// /// 该节点的下一个节点 /// public IHandler NextHandler { set { nextHandler = value; } } /// /// 处理任务容器 /// private PartTaskContainer HandleTaskContainer; /// /// 下一任务容器 /// private PartTaskContainer NextTaskContainer; /// /// 保存处理任务 /// public 保存处理信息(PartTaskContainer handleTaskContainer, PartTaskContainer nextTaskContainer) { this.HandleTaskContainer = handleTaskContainer; this.NextTaskContainer = nextTaskContainer; } /// /// 数据库里更新处理任务,保存下一任务 /// public void Handle() { using (var dbModel = new DbModelCore()) { try { var hTask = dbModel.TASKPartTasks.FirstOrDefault(x => x.id == HandleTaskContainer.PartTask.Id); hTask.ishandled = (int)EYesOrNo.是; hTask.updatetime = DateTime.Now; var nTask = NextTaskContainer.PartTask; if (nTask != null) { dbModel.TASKPartTasks.Add(nTask.ToOrm()); var toPlace = dbModel.BASEPlaces.FirstOrDefault(x => x.id == nTask.ToPlaceId); if (toPlace != null) { toPlace.isexecute = (int)EYesOrNo.是; toPlace.islock = (int)EYesOrNo.是; toPlace.status = (int)EPlaceStatus.执行中; } var fromPlace = dbModel.BASEPlaces.FirstOrDefault(x => x.id == nTask.SourcePlaceId); if (fromPlace != null) { fromPlace.isexecute = (int)EYesOrNo.是; fromPlace.islock = (int)EYesOrNo.是; fromPlace.status = (int)EPlaceStatus.执行中; } } dbModel.SaveChanges(); LogTextHelper.WriteLine(Resources.LogDir + @"/处理任务流程", "保存处理信息"); if (nextHandler != null) { nextHandler.Handle(); } } catch (Exception ex) { LogTextHelper.WriteLine(Resources.LogDir + @"/处理任务流程", "保存处理信息:{0}", ex.Message); LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Handle", ex.Message); } } } } }