using Serilog; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WPFWCSDemo.Data; using WPFWCSDemo.StateCode; namespace WPFWCSDemo.Schedules.TaskFinish { /// /// 任务完成 /// public class Finish { /// /// 更新【任务自动完成】状态 /// public static void TaskFinish() { using var context = new AppDbContext(); //---------------------------------------------查询【调度状态】为已完成的任务--------------------------------------------- //var query = context.Set() // .Where(t => t.ScheduleState == ScheduleStateCode.Trans_CircleRGV_Finish && t.TaskState == TaskStateCode.Task_Running) // .OrderBy(t => t.CreateTime); //string s = query.ToQueryString(); //查询 //调度状态【环穿-执行完成】 //任务状态【执行中】 //的符合条件的任务 var taskRT = context.Tasks? .Where(t => t.ScheduleState == ScheduleStateCode.Trans_CircleRGV_Finish && t.TaskState == TaskStateCode.Task_Running) .OrderBy(t => t.CreateTime) .ToList(); if (taskRT is null || taskRT.Count == 0) return; //所有符合上述条件的任务 for (int i = 0; i < taskRT.Count; i++) { if (taskRT[i] is null) continue; //任务状态更新为【自动完成】 taskRT[i].TaskState = TaskStateCode.Task_Finish; Log.Information($"【WCS更新调度状态】任务号:{taskRT[i].TaskId},环穿输送完成"); } context.SaveChanges(); } } }