60 lines
1.8 KiB
C#
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();
|
|
|
|
|
|
}
|
|
}
|
|
}
|