| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 | using ServiceCenter.SqlSugars;using WCS.Core;using WCS.Entity;using WCS.WorkEngineering.Worlds.Logs;namespace WCS.WorkEngineering.Extensions{    /// <summary>    /// 任务扩展    /// </summary>    public static class TaskExtension    {        /// <summary>        /// 更新任务执行记录        /// </summary>        /// <param name="task">任务信息</param>        /// <param name="db">数据库上下文</param>        /// <param name="curPoint">当前地址</param>        /// <param name="desc">描述</param>        public static void AddWCS_TASK_DTL(this WCS_TaskInfo task, SqlSugarHelper db, string curPoint, string desc)        {            db.Default.Insertable(new WCS_TaskDtl            {                ParentTaskCode = task.ID,                CurPoint = curPoint,                NextPoint = "",                Desc = desc,                AddWho = "WCS"            }).AddQueue();        }        /// <summary>        /// 更新任务执行记录        /// </summary>        /// <param name="task">任务信息</param>        /// <param name="db">数据库上下文</param>        /// <param name="curPoint">当前地址</param>        /// <param name="NextPoint">下一个地址</param>        /// <param name="desc">描述</param>        public static void AddWCS_TASK_DTL(this WCS_TaskInfo task, SqlSugarHelper db, string curPoint, string NextPoint, string desc)        {            db.Default.Insertable(new WCS_TaskDtl            {                ParentTaskCode = task.ID,                CurPoint = curPoint,                NextPoint = NextPoint,                Desc = desc,                AddWho = "WCS"            }).AddQueue();        }        /// <summary>        /// 完成或取消任务        /// </summary>        /// <param name="taskInfo"></param>        /// <param name="db"></param>        public static void CompleteOrCancelTasks(this WCS_TaskInfo taskInfo, SqlSugarHelper db, World world)        {            if (taskInfo.Status is not Entity.TaskStatus.Finish and not Entity.TaskStatus.Cancel)            {                world.Log("任务未完成或取消,无法执行WCS_TaskInfo与WCS_TaskOld同步动作", LogLevelEnum.Mid, ErrorTypeEnum.Kown, LogUpLoadEnum.NotUpLoad);            }            else // 任务完成或取消,进行相关同步动作            {                WCS_TaskOld taskOld = db.Default.Queryable<WCS_TaskOld>().Where(v => v.WcsTaskID == taskInfo.ID).OrderByDescending(v => v.AddTime).First();                if (taskOld is null)                {                    world.Log($"WCS_TaskOld表中不存在任务:{taskInfo.ID},无法执行WCS_TaskInfo与WCS_TaskOld同步动作", LogLevelEnum.Mid, ErrorTypeEnum.Kown, LogUpLoadEnum.UpLoadWMS);                }                else                {                    //状态                    taskOld.Status = taskInfo.Status;                    taskOld.Uploaded = taskInfo.Uploaded;                    //任务号                    taskOld.WmsTask = taskInfo.WmsTask;                    taskOld.AgvTaskID = taskInfo.AgvTaskID;                    taskOld.TaskGroupKey = taskInfo.TaskGroupKey;                    taskOld.Priority = taskInfo.Priority;                    //时间与用户                    taskOld.AddTime = taskInfo.AddTime;                    taskOld.AddWho = taskInfo.AddWho;                    taskOld.StartTime = taskInfo.StartTime;                    taskOld.EedTime = taskInfo.EedTime;                    taskOld.EditWho = taskInfo.EditWho;                    taskOld.EditTime = taskInfo.EditTime;                    //条码与地址                    taskOld.BarCode = taskInfo.BarCode;                    taskOld.MaterialCode = taskInfo.MaterialCode;                    taskOld.AddrFrom = taskInfo.AddrFrom;                    taskOld.AddrTo = taskInfo.AddrTo;                    taskOld.LastInteractionPoint = taskInfo.LastInteractionPoint;                    taskOld.AddrNext = taskInfo.AddrNext;                    taskOld.Tunnel = taskInfo.Tunnel;                    taskOld.Floor = taskInfo.Floor;                    taskOld.Device = taskInfo.Device;                    taskOld.SrmStation = taskInfo.SrmStation;                    //码垛信息                    taskOld.DocID = taskInfo.DocID;                    taskOld.PalletType = taskInfo.PalletType;                    taskOld.ProdLine = taskInfo.ProdLine;                    taskOld.FullQty = taskInfo.FullQty;                    //外形信息                    taskOld.Height = taskInfo.Height;                    taskOld.Length = taskInfo.Length;                    //手动处理备注                    taskOld.ManualRemarks = taskInfo.ManualRemarks;                    //更新任务历史表,删除任务当前表                    db.Default.Updateable(taskOld).AddQueue();                    db.Default.Deleteable(taskInfo).AddQueue();                }            }        }    }}
 |