diff --git a/WPFWCSDemo/Schedules/CircleRGV/Check.cs b/WPFWCSDemo/Schedules/CircleRGV/Check.cs index dd5c541..f96d57b 100644 --- a/WPFWCSDemo/Schedules/CircleRGV/Check.cs +++ b/WPFWCSDemo/Schedules/CircleRGV/Check.cs @@ -35,10 +35,12 @@ namespace WPFWCSDemo.Schedules.CircleRGV 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)) @@ -119,7 +121,7 @@ namespace WPFWCSDemo.Schedules.CircleRGV /// true-相差大于x秒 false-相差小于x秒 public static bool CheckSendTaskTimeInterval(int location) { - int diff = -15; + int diff = -20; 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)) .Count(); - if (count < 1) + if (count == 0) { return true; } @@ -199,7 +201,7 @@ namespace WPFWCSDemo.Schedules.CircleRGV .Where(t => t.TargetLocation == location.ToString()) .Count(); - if (count1 < 1) + if (count1 == 0) { return true; } @@ -394,12 +396,11 @@ namespace WPFWCSDemo.Schedules.CircleRGV if (states is null) return false; - //检查是否有符合条件的小车,如果有则标 + //检查是否有符合条件的小车 //【源站点】匹配 // 任务处于【取货阶段】 - // 无【允许下发】---表示小车在工作中 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(); if (count > 0) diff --git a/WPFWCSDemo/Schedules/CircleRGV/Generate.cs b/WPFWCSDemo/Schedules/CircleRGV/Generate.cs index 6e70177..418347c 100644 --- a/WPFWCSDemo/Schedules/CircleRGV/Generate.cs +++ b/WPFWCSDemo/Schedules/CircleRGV/Generate.cs @@ -174,6 +174,20 @@ namespace WPFWCSDemo.Schedules.CircleRGV 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); if (sourceLocation == RGVStation.LineGH_Pallets_In) diff --git a/WPFWCSDemo/ViewModels/CircleRGVsViewModel.cs b/WPFWCSDemo/ViewModels/CircleRGVsViewModel.cs index dbb9af5..b6b264e 100644 --- a/WPFWCSDemo/ViewModels/CircleRGVsViewModel.cs +++ b/WPFWCSDemo/ViewModels/CircleRGVsViewModel.cs @@ -690,11 +690,8 @@ namespace WPFWCSDemo.ViewModels $"检验码:{Checksum.GetChecksum(circleRGVStationCommand)},尝试下发任务!" ); - //todo @@@可能需要判断设备是否已经开始执行 - //todo @@@可能需要判断设备是否已经开始执行 - //todo @@@可能需要判断设备是否已经开始执行 - Task.Delay(100).Wait(); + Task.Delay(200).Wait(); //【下发完成】写入操作成功 if (result.IsSuccess) @@ -721,8 +718,6 @@ namespace WPFWCSDemo.ViewModels } else { - //需要详细了解可能【接收异常】的情况 - //需要详细了解可能【接收异常】的情况 //需要详细了解可能【接收异常】的情况 Log.Warning($"【WCS写入信息至地面站<接收异常>】任务号:{circleRGVStationCommand.Write_TaskNumber},PLC反馈【接收异常】!"); Log.Warning($"【WCS写入信息至地面站<接收异常>】任务号:{circleRGVStationCommand.Write_TaskNumber},校验码写入:{Checksum.GetChecksum(circleRGVStationCommand)},读取:{stationConnection.ReadInt16("DB60.904").Content},PLC反馈【接收异常】!"); diff --git a/WPFWCSDemo/ViewModels/TaskHistoryViewModel.cs b/WPFWCSDemo/ViewModels/TaskHistoryViewModel.cs index 9053f8f..8c6be8c 100644 --- a/WPFWCSDemo/ViewModels/TaskHistoryViewModel.cs +++ b/WPFWCSDemo/ViewModels/TaskHistoryViewModel.cs @@ -1,5 +1,6 @@ using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; +using Microsoft.Identity.Client.NativeInterop; using Serilog; using System; using System.Collections.Generic; @@ -11,6 +12,7 @@ using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; using System.Windows; +using WPFWCSDemo.Data; using WPFWCSDemo.Models.Tables; using WPFWCSDemo.StateCode; using WPFWCSDemo.Utilities; @@ -129,12 +131,15 @@ namespace WPFWCSDemo.ViewModels TaskHistory.Clear(); - //DataTable? dtCount = SqlHelper.ExecuteTable("SELECT * FROM TASK_HISTORY ORDER BY CREATETIME DESC"); - DataTable? dtCount = SqlHelper.ExecuteTable("SELECT * FROM TASK_HISTORY_VIEW ORDER BY 结束时间 DESC"); + //using var context = new AppDbContext(); + + 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", new SqlParameter("@Rows",page - 1)); + + var datas = dt.Rows; @@ -285,7 +290,7 @@ namespace WPFWCSDemo.ViewModels { 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_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("@Keywords", $"%{Keywords.Trim()}%"), new SqlParameter("@StartTime", dateTimeStart), @@ -306,7 +311,7 @@ namespace WPFWCSDemo.ViewModels { dtCount = SqlHelper.ExecuteTable( //$"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("@FinishTime", dateTimeEnd) ); @@ -505,10 +510,10 @@ namespace WPFWCSDemo.ViewModels void UpdatePageInfo(DataTable dt, int pageCurrent) { //总数据条数 - DataCountNumber = dt.Rows.Count; + DataCountNumber = 30000; //文本显示 - DataCount = $"共 {DataCountNumber} 条"; + DataCount = $"只显示最近5万条数据"; //总页数 if (DataCountNumber % countPerPage == 0) @@ -527,10 +532,10 @@ namespace WPFWCSDemo.ViewModels void UpdatePageInfo(DataTable dt, string pageCurrent) { //总数据条数 - DataCountNumber = dt.Rows.Count; + DataCountNumber = 30000; //文本显示 - DataCount = $"共 {DataCountNumber} 条"; + DataCount = $"只显示最近5万条数据"; //总页数 if (DataCountNumber % countPerPage == 0)