Files
FT479/WPFWCSDemo/Schedules/TaskFinish/Finish.cs
2026-06-29 14:46:32 +08:00

60 lines
1.8 KiB
C#

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
{
/// <summary>
/// 任务完成
/// </summary>
public class Finish
{
/// <summary>
/// 更新【任务自动完成】状态
/// </summary>
public static void TaskFinish()
{
using var context = new AppDbContext();
//---------------------------------------------查询【调度状态】为已完成的任务---------------------------------------------
//var query = context.Set<TaskRT>()
// .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();
}
}
}