添加项目文件。
This commit is contained in:
132
WPFWCSDemo/Schedules/TaskFinish/Delete.cs
Normal file
132
WPFWCSDemo/Schedules/TaskFinish/Delete.cs
Normal file
@@ -0,0 +1,132 @@
|
||||
using Serilog;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WPFWCSDemo.Common;
|
||||
using WPFWCSDemo.Data;
|
||||
using WPFWCSDemo.Models.Devices.CircleRGVStation;
|
||||
using WPFWCSDemo.StateCode;
|
||||
using WPFWCSDemo.Utilities.Table;
|
||||
using WPFWCSDemo.ViewModels;
|
||||
|
||||
namespace WPFWCSDemo.Schedules.TaskFinish
|
||||
{
|
||||
/// <summary>
|
||||
/// 任务移除
|
||||
/// </summary>
|
||||
public class Delete
|
||||
{
|
||||
/// <summary>
|
||||
/// 完成的调度任务从实时表删除记入历史记录
|
||||
/// </summary>
|
||||
/// <param name="taskRT">当前已完成的任务</param>
|
||||
public static void TaskDelete()
|
||||
{
|
||||
using var context = new AppDbContext();
|
||||
|
||||
//查找符合【任务状态】和【调度状态】的记录
|
||||
var taskRT = context.Tasks
|
||||
.Where(t => t.TaskState == TaskStateCode.Task_Finish ||
|
||||
t.TaskState == TaskStateCode.Task_Finish_Manual ||
|
||||
t.TaskState == TaskStateCode.Task_Finish_Cancel ||
|
||||
t.TaskState == TaskStateCode.Task_Cancel ||
|
||||
t.TaskState == TaskStateCode.Task_Finish_Timeout)
|
||||
.OrderBy(t => t.CreateTime)
|
||||
.ToList();
|
||||
|
||||
if (taskRT is null || taskRT.Count == 0) return;
|
||||
|
||||
for (int i = 0; i < taskRT.Count; i++)
|
||||
{
|
||||
//任务完成状态文本
|
||||
string strTaskState;
|
||||
|
||||
switch (taskRT[i].TaskState)
|
||||
{
|
||||
case TaskStateCode.Task_Finish:
|
||||
strTaskState = "任务自动完成";
|
||||
break;
|
||||
case TaskStateCode.Task_Finish_Manual:
|
||||
strTaskState = "任务手动完成";
|
||||
break;
|
||||
case TaskStateCode.Task_Finish_Cancel:
|
||||
strTaskState = "任务手动取消";
|
||||
break;
|
||||
case TaskStateCode.Task_Cancel:
|
||||
strTaskState = "任务自动作废";
|
||||
break;
|
||||
case TaskStateCode.Task_Finish_Timeout:
|
||||
strTaskState = "任务超时自动完成";
|
||||
break;
|
||||
default:
|
||||
strTaskState = "发生未知异常,请检查后手动处理";//其他状态:异常-手动处理
|
||||
break;
|
||||
}
|
||||
|
||||
Log.Information($"【WCS任务结束】【{strTaskState}】,任务号:{taskRT[i].TaskId}");
|
||||
|
||||
|
||||
|
||||
//---------------------------------------------反馈任务结束成功后:删除表任务添加至历史记录---------------------------------------------
|
||||
int result = TaskManager.Delete(taskRT[i]);
|
||||
|
||||
if (result == 1)
|
||||
{
|
||||
if (taskRT[i].TaskType == TaskType.Goods)
|
||||
Log.Information($"【常规任务-实垛】【{strTaskState}】,任务号:{taskRT[i].TaskId},历史任务记录已保存");
|
||||
|
||||
if (taskRT[i].TaskType == TaskType.Pallet)
|
||||
Log.Information($"【常规任务-空托】【{strTaskState}】,任务号:{taskRT[i].TaskId},历史任务记录已保存");
|
||||
|
||||
if (taskRT[i].TaskType == TaskType.GoToRest)
|
||||
Log.Information($"【进休息区】【{strTaskState}】,作业号:{taskRT[i].JobId} 任务号:{taskRT[i].TaskId},历史任务记录已保存");
|
||||
|
||||
if (taskRT[i].TaskType == TaskType.BackToRail)
|
||||
Log.Information($"【返回轨道】【{strTaskState}】,作业号:{taskRT[i].JobId} 任务号:{taskRT[i].TaskId},历史任务记录已保存");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//LineFlagAutoReset();
|
||||
|
||||
}
|
||||
|
||||
|
||||
///// <summary>
|
||||
///// 防错机制【可下发任务标志】---如果当前某条线无输送任务,则重置该输送线请求标志为true
|
||||
///// </summary>
|
||||
//public static void LineFlagAutoReset()
|
||||
//{
|
||||
// using var context = new AppDbContext();
|
||||
|
||||
// int lineA = context.Tasks.Where(t => t.SourceLocation == RGVStation.LineA_In.ToString()).Count();
|
||||
// if (lineA == 0) LineAIsAvailable = true;
|
||||
|
||||
// int lineB = context.Tasks.Where(t => t.SourceLocation == RGVStation.LineB_In.ToString()).Count();
|
||||
// if (lineB == 0) LineBIsAvailable = true;
|
||||
|
||||
// int lineC = context.Tasks.Where(t => t.SourceLocation == RGVStation.LineC_In.ToString()).Count();
|
||||
// if (lineC == 0) LineCIsAvailable = true;
|
||||
|
||||
// int lineD = context.Tasks.Where(t => t.SourceLocation == RGVStation.LineD_In.ToString()).Count();
|
||||
// if (lineD == 0) LineDIsAvailable = true;
|
||||
|
||||
|
||||
// using CircleRGVStationState? circleRGVStationState = CircleRGVsViewModel.GetCircleRGVStaionState();
|
||||
|
||||
// //地面站【允许下发】
|
||||
// if (circleRGVStationState is null || circleRGVStationState.Read_Permission == 0) return;
|
||||
|
||||
// int lineAB = context.Tasks.Where(t => t.SourceLocation == RGVStation.LineAB_In.ToString()).Count();
|
||||
// if (lineAB == 0 && circleRGVStationState.Read_PutRequest_LineB) LineABIsAvailable = true;
|
||||
|
||||
// int lineCD = context.Tasks.Where(t => t.SourceLocation == RGVStation.LineCD_In.ToString()).Count();
|
||||
// if (lineCD == 0 && circleRGVStationState.Read_PutRequest_LineC) LineCDIsAvailable = true;
|
||||
|
||||
//}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user