using iWareCc.DecomposeTask.Entity; using iWareCc.Properties; using iWareCommon.Common.Entity; using iWareCommon.Common.EnumType; using iWareCommon.Utils; using iWareDataCore.BASE.EnumType; using iWareDataCore.ORM; using iWareDataCore.TASK.EnumType; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace iWareCc.DecomposeTask.Chain { public class 保存分解任务 : IHandler { /// /// 主任务容器 /// private MainTaskContainer MainTaskContainer; /// /// 分解任务容器 /// private PartTaskContainer PartTaskContainer; /// /// 呼叫任务容器 /// private PlaceContainer PlaceContainer; private IHandler nextHandler = null; /// /// 该节点的下一个节点 /// public IHandler NextHandler { set { nextHandler = value; } } /// /// 保存分解任务并将主任务标记为已分解 /// public 保存分解任务(MainTaskContainer mainTaskContainer, PartTaskContainer partTaskContainer, PlaceContainer placeContainer) { this.MainTaskContainer = mainTaskContainer; this.PartTaskContainer = partTaskContainer; this.PlaceContainer = placeContainer; } /// /// 将主任务标记为已分解,并将分解任务保存在数据库 /// public void Handle() { using (var dbModel = new DbModelCore()) { try { var lTask = dbModel.TASKMainTasks.FirstOrDefault(x => x.id == MainTaskContainer.MainTask.Id); lTask.status = (int)EMainTaskStatus.已分解; lTask.decompositiontime = DateTime.Now; dbModel.TASKPartTasks.Add(PartTaskContainer.PartTask.ToOrm()); if (PlaceContainer.Place != null) { var place = dbModel.BASEPlaces.FirstOrDefault(x => x.id == PlaceContainer.Place.Id); if (place != null && place.id> 0) { place.isexecute = (int)EYesOrNo.是; place.islock = (int)EYesOrNo.是; place.status = (int)EPlaceStatus.执行中; } } var count = dbModel.SaveChanges(); LogTextHelper.WriteLine(Resources.LogDir + @"/分解任务流程", "保存相应的分解任务:{0}", count); if (nextHandler != null) { nextHandler.Handle(); } } catch (Exception ex) { LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "Handle", ex.Message); } } } } }