任务限制优化
This commit is contained in:
@@ -35,10 +35,12 @@ namespace WPFWCSDemo.Schedules.CircleRGV
|
|||||||
if (QueryForIsRequestReset(sourceLocation, 3)) return false;
|
if (QueryForIsRequestReset(sourceLocation, 3)) return false;
|
||||||
|
|
||||||
//校验---目标站点请求
|
//校验---目标站点请求
|
||||||
if (QueryForIsRequestReset(targetLocation, 3)) return false;
|
if (QueryForIsRequestReset(targetLocation, 3))
|
||||||
|
return false;
|
||||||
|
|
||||||
//校验---系统异常
|
//校验---系统异常
|
||||||
if (!isNotException) return false;
|
if (!isNotException)
|
||||||
|
return false;
|
||||||
|
|
||||||
//校验---同输送口相邻任务生成时间间隔过短
|
//校验---同输送口相邻任务生成时间间隔过短
|
||||||
if (!CheckSendTaskTimeInterval(targetLocation, 120))
|
if (!CheckSendTaskTimeInterval(targetLocation, 120))
|
||||||
@@ -119,7 +121,7 @@ namespace WPFWCSDemo.Schedules.CircleRGV
|
|||||||
/// <returns> true-相差大于x秒 false-相差小于x秒</returns>
|
/// <returns> true-相差大于x秒 false-相差小于x秒</returns>
|
||||||
public static bool CheckSendTaskTimeInterval(int location)
|
public static bool CheckSendTaskTimeInterval(int location)
|
||||||
{
|
{
|
||||||
int diff = -15;
|
int diff = -20;
|
||||||
|
|
||||||
using var context = new AppDbContext();
|
using var context = new AppDbContext();
|
||||||
|
|
||||||
@@ -184,7 +186,7 @@ namespace WPFWCSDemo.Schedules.CircleRGV
|
|||||||
.Where(t => t.SourceLocation == location.ToString() && (t.ScheduleState==ScheduleStateCode.Trans_CircleRGV_Ready || t.ScheduleState == ScheduleStateCode.Trans_CircleRGV_PickOnTheWay || t.ScheduleState == ScheduleStateCode.Trans_CircleRGV_Picking))
|
.Where(t => t.SourceLocation == location.ToString() && (t.ScheduleState==ScheduleStateCode.Trans_CircleRGV_Ready || t.ScheduleState == ScheduleStateCode.Trans_CircleRGV_PickOnTheWay || t.ScheduleState == ScheduleStateCode.Trans_CircleRGV_Picking))
|
||||||
.Count();
|
.Count();
|
||||||
|
|
||||||
if (count < 1)
|
if (count == 0)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -199,7 +201,7 @@ namespace WPFWCSDemo.Schedules.CircleRGV
|
|||||||
.Where(t => t.TargetLocation == location.ToString())
|
.Where(t => t.TargetLocation == location.ToString())
|
||||||
.Count();
|
.Count();
|
||||||
|
|
||||||
if (count1 < 1)
|
if (count1 == 0)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -394,12 +396,11 @@ namespace WPFWCSDemo.Schedules.CircleRGV
|
|||||||
|
|
||||||
if (states is null) return false;
|
if (states is null) return false;
|
||||||
|
|
||||||
//检查是否有符合条件的小车,如果有则标
|
//检查是否有符合条件的小车
|
||||||
//【源站点】匹配
|
//【源站点】匹配
|
||||||
// 任务处于【取货阶段】
|
// 任务处于【取货阶段】
|
||||||
// 无【允许下发】---表示小车在工作中
|
|
||||||
var count = states
|
var count = states
|
||||||
.Where(a => a.Read_SourceLocation == (sourceLocation - 1000).ToString() && a.Read_Phase < 3 && !a.Read_Permission)
|
.Where(a => a.Read_SourceLocation == (sourceLocation - 1000).ToString() && a.Read_Phase < 3 && a.Read_Phase > 0)
|
||||||
.Count();
|
.Count();
|
||||||
|
|
||||||
if (count > 0)
|
if (count > 0)
|
||||||
|
|||||||
@@ -174,6 +174,20 @@ namespace WPFWCSDemo.Schedules.CircleRGV
|
|||||||
CreateTime = DateTime.Now,
|
CreateTime = DateTime.Now,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var count = context.Tasks
|
||||||
|
.Where(t => t.SourceLocation == sourceLocation.ToString() &&
|
||||||
|
(t.ScheduleState == ScheduleStateCode.Trans_CircleRGV_Ready ||
|
||||||
|
t.ScheduleState == ScheduleStateCode.Trans_CircleRGV_Picking ||
|
||||||
|
t.ScheduleState == ScheduleStateCode.Trans_CircleRGV_PickOnTheWay))
|
||||||
|
.Count();
|
||||||
|
|
||||||
|
if (count > 0)
|
||||||
|
{
|
||||||
|
Log.Warning($"【提示】任务号:{taskNumber},取货站点:{sourceLocation}(该条可忽略)");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
context.Tasks.Add(taskRT);
|
context.Tasks.Add(taskRT);
|
||||||
|
|
||||||
if (sourceLocation == RGVStation.LineGH_Pallets_In)
|
if (sourceLocation == RGVStation.LineGH_Pallets_In)
|
||||||
|
|||||||
@@ -690,11 +690,8 @@ namespace WPFWCSDemo.ViewModels
|
|||||||
$"检验码:{Checksum.GetChecksum(circleRGVStationCommand)},尝试下发任务!"
|
$"检验码:{Checksum.GetChecksum(circleRGVStationCommand)},尝试下发任务!"
|
||||||
);
|
);
|
||||||
|
|
||||||
//todo @@@可能需要判断设备是否已经开始执行
|
|
||||||
//todo @@@可能需要判断设备是否已经开始执行
|
|
||||||
//todo @@@可能需要判断设备是否已经开始执行
|
|
||||||
|
|
||||||
Task.Delay(100).Wait();
|
Task.Delay(200).Wait();
|
||||||
|
|
||||||
//【下发完成】写入操作成功
|
//【下发完成】写入操作成功
|
||||||
if (result.IsSuccess)
|
if (result.IsSuccess)
|
||||||
@@ -721,8 +718,6 @@ namespace WPFWCSDemo.ViewModels
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//需要详细了解可能【接收异常】的情况
|
|
||||||
//需要详细了解可能【接收异常】的情况
|
|
||||||
//需要详细了解可能【接收异常】的情况
|
//需要详细了解可能【接收异常】的情况
|
||||||
Log.Warning($"【WCS写入信息至地面站<接收异常>】任务号:{circleRGVStationCommand.Write_TaskNumber},PLC反馈【接收异常】!");
|
Log.Warning($"【WCS写入信息至地面站<接收异常>】任务号:{circleRGVStationCommand.Write_TaskNumber},PLC反馈【接收异常】!");
|
||||||
Log.Warning($"【WCS写入信息至地面站<接收异常>】任务号:{circleRGVStationCommand.Write_TaskNumber},校验码写入:{Checksum.GetChecksum(circleRGVStationCommand)},读取:{stationConnection.ReadInt16("DB60.904").Content},PLC反馈【接收异常】!");
|
Log.Warning($"【WCS写入信息至地面站<接收异常>】任务号:{circleRGVStationCommand.Write_TaskNumber},校验码写入:{Checksum.GetChecksum(circleRGVStationCommand)},读取:{stationConnection.ReadInt16("DB60.904").Content},PLC反馈【接收异常】!");
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
|
using Microsoft.Identity.Client.NativeInterop;
|
||||||
using Serilog;
|
using Serilog;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -11,6 +12,7 @@ using System.Runtime.Serialization;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
|
using WPFWCSDemo.Data;
|
||||||
using WPFWCSDemo.Models.Tables;
|
using WPFWCSDemo.Models.Tables;
|
||||||
using WPFWCSDemo.StateCode;
|
using WPFWCSDemo.StateCode;
|
||||||
using WPFWCSDemo.Utilities;
|
using WPFWCSDemo.Utilities;
|
||||||
@@ -129,13 +131,16 @@ namespace WPFWCSDemo.ViewModels
|
|||||||
|
|
||||||
TaskHistory.Clear();
|
TaskHistory.Clear();
|
||||||
|
|
||||||
//DataTable? dtCount = SqlHelper.ExecuteTable("SELECT * FROM TASK_HISTORY ORDER BY CREATETIME DESC");
|
//using var context = new AppDbContext();
|
||||||
DataTable? dtCount = SqlHelper.ExecuteTable("SELECT * FROM TASK_HISTORY_VIEW ORDER BY 结束时间 DESC");
|
|
||||||
|
DataTable? dtCount = SqlHelper.ExecuteTable("SELECT TOP 30000 * FROM TASK_HISTORY_VIEW ORDER BY 结束时间 DESC");
|
||||||
|
|
||||||
|
|
||||||
//DataTable? dt = SqlHelper.ExecuteTable("SELECT * FROM TASK_HISTORY ORDER BY CREATETIME DESC OFFSET @Rows ROW FETCH NEXT 10 ROW ONLY",
|
|
||||||
DataTable? dt = SqlHelper.ExecuteTable("SELECT * FROM TASK_HISTORY_VIEW ORDER BY 结束时间 DESC OFFSET @Rows ROW FETCH NEXT 10 ROW ONLY",
|
DataTable? dt = SqlHelper.ExecuteTable("SELECT * FROM TASK_HISTORY_VIEW ORDER BY 结束时间 DESC OFFSET @Rows ROW FETCH NEXT 10 ROW ONLY",
|
||||||
new SqlParameter("@Rows",page - 1));
|
new SqlParameter("@Rows",page - 1));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var datas = dt.Rows;
|
var datas = dt.Rows;
|
||||||
|
|
||||||
//遍历表中每行数据并初始化值
|
//遍历表中每行数据并初始化值
|
||||||
@@ -285,7 +290,7 @@ namespace WPFWCSDemo.ViewModels
|
|||||||
{
|
{
|
||||||
dtCount = SqlHelper.ExecuteTable(
|
dtCount = SqlHelper.ExecuteTable(
|
||||||
//$"SELECT * FROM TASK_HISTORY WHERE @ColumnName like @Keywords AND FINISHTIME>=@StartTime AND FINISHTIME<@FinishTime ORDER BY CREATETIME DESC",
|
//$"SELECT * FROM TASK_HISTORY WHERE @ColumnName like @Keywords AND FINISHTIME>=@StartTime AND FINISHTIME<@FinishTime ORDER BY CREATETIME DESC",
|
||||||
$"SELECT * FROM TASK_HISTORY_VIEW WHERE {ColumnName} LIKE @Keywords AND 结束时间>=@StartTime AND 结束时间<@FinishTime ORDER BY 结束时间 DESC",
|
$"SELECT TOP 30000 * FROM TASK_HISTORY_VIEW WHERE {ColumnName} LIKE @Keywords AND 结束时间>=@StartTime AND 结束时间<@FinishTime ORDER BY 结束时间 DESC",
|
||||||
//new SqlParameter("@ColumnName", ColumnName),
|
//new SqlParameter("@ColumnName", ColumnName),
|
||||||
new SqlParameter("@Keywords", $"%{Keywords.Trim()}%"),
|
new SqlParameter("@Keywords", $"%{Keywords.Trim()}%"),
|
||||||
new SqlParameter("@StartTime", dateTimeStart),
|
new SqlParameter("@StartTime", dateTimeStart),
|
||||||
@@ -306,7 +311,7 @@ namespace WPFWCSDemo.ViewModels
|
|||||||
{
|
{
|
||||||
dtCount = SqlHelper.ExecuteTable(
|
dtCount = SqlHelper.ExecuteTable(
|
||||||
//$"SELECT * FROM TASK_HISTORY WHERE FINISHTIME>=@StartTime AND FINISHTIME<@FinishTime ORDER BY CREATETIME DESC",
|
//$"SELECT * FROM TASK_HISTORY WHERE FINISHTIME>=@StartTime AND FINISHTIME<@FinishTime ORDER BY CREATETIME DESC",
|
||||||
$"SELECT * FROM TASK_HISTORY_VIEW WHERE 结束时间>=@StartTime AND 结束时间<@FinishTime ORDER BY 结束时间 DESC",
|
$"SELECT TOP 30000 * FROM TASK_HISTORY_VIEW WHERE 结束时间>=@StartTime AND 结束时间<@FinishTime ORDER BY 结束时间 DESC",
|
||||||
new SqlParameter("@StartTime", dateTimeStart),
|
new SqlParameter("@StartTime", dateTimeStart),
|
||||||
new SqlParameter("@FinishTime", dateTimeEnd)
|
new SqlParameter("@FinishTime", dateTimeEnd)
|
||||||
);
|
);
|
||||||
@@ -505,10 +510,10 @@ namespace WPFWCSDemo.ViewModels
|
|||||||
void UpdatePageInfo(DataTable dt, int pageCurrent)
|
void UpdatePageInfo(DataTable dt, int pageCurrent)
|
||||||
{
|
{
|
||||||
//总数据条数
|
//总数据条数
|
||||||
DataCountNumber = dt.Rows.Count;
|
DataCountNumber = 30000;
|
||||||
|
|
||||||
//文本显示
|
//文本显示
|
||||||
DataCount = $"共 {DataCountNumber} 条";
|
DataCount = $"只显示最近5万条数据";
|
||||||
|
|
||||||
//总页数
|
//总页数
|
||||||
if (DataCountNumber % countPerPage == 0)
|
if (DataCountNumber % countPerPage == 0)
|
||||||
@@ -527,10 +532,10 @@ namespace WPFWCSDemo.ViewModels
|
|||||||
void UpdatePageInfo(DataTable dt, string pageCurrent)
|
void UpdatePageInfo(DataTable dt, string pageCurrent)
|
||||||
{
|
{
|
||||||
//总数据条数
|
//总数据条数
|
||||||
DataCountNumber = dt.Rows.Count;
|
DataCountNumber = 30000;
|
||||||
|
|
||||||
//文本显示
|
//文本显示
|
||||||
DataCount = $"共 {DataCountNumber} 条";
|
DataCount = $"只显示最近5万条数据";
|
||||||
|
|
||||||
//总页数
|
//总页数
|
||||||
if (DataCountNumber % countPerPage == 0)
|
if (DataCountNumber % countPerPage == 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user