From d0a336877f67bdf77bb477efef105a20fc9c197c Mon Sep 17 00:00:00 2001 From: liuwf Date: Tue, 10 Dec 2024 16:55:28 +0800 Subject: [PATCH] =?UTF-8?q?add-=E5=90=91=E5=85=B6=E4=BB=96=E6=A5=BC?= =?UTF-8?q?=E5=B1=82=E8=BE=93=E5=87=BA=E6=89=98=E7=9B=98=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E6=97=B6=EF=BC=8CAGV=E6=8A=8A=E6=89=98=E7=9B=98=E6=94=BE?= =?UTF-8?q?=E7=BD=AE=E5=88=B0=E6=8E=A5=E9=A9=B3=E4=BD=8D=E5=90=8E=EF=BC=8C?= =?UTF-8?q?=E5=9C=A8=E8=B0=83=E5=BA=A6=E7=95=8C=E9=9D=A2=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E2=80=9C=E6=89=98=E7=9B=98=E5=85=A5=E8=BD=BF=E5=8E=A2=E7=AD=89?= =?UTF-8?q?=E5=BE=85=E7=A1=AE=E8=AE=A4=E2=80=9D=E6=8F=90=E7=A4=BA=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs | 71 +++++++++++++++++++ .../WindowPage/MessageBoxWindow.xaml | 12 ++++ .../WindowPage/MessageBoxWindow.xaml.cs | 31 ++++++++ 3 files changed, 114 insertions(+) create mode 100644 src/Khd.Core.Wpf/WindowPage/MessageBoxWindow.xaml create mode 100644 src/Khd.Core.Wpf/WindowPage/MessageBoxWindow.xaml.cs diff --git a/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs b/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs index f8dcc14..f8ab0ea 100644 --- a/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs +++ b/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs @@ -34,6 +34,7 @@ using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; +using System.Timers; using System.Windows; using System.Windows.Controls; using System.Windows.Input; @@ -78,6 +79,11 @@ namespace Khd.Core.Wpf.Form private object updateLock = new object(); private readonly List locationDtos = new List(); private ObservableCollection itemsControlItems; + //消息提示弹窗 + private MessageBoxWindow messageBoxWindow ; + //3楼向其他楼层输出托盘流程时,AGV把托盘放置到接驳位后,在调度界面增加“托盘入轿厢等待确认”提示信息 + int systemRunTimerCount = 0; + System.Timers.Timer systemRunTimer = new System.Timers.Timer(1000 * 60); //人工叫料选中类 public class SelectItemModel @@ -126,7 +132,72 @@ namespace Khd.Core.Wpf.Form InitializeComponent(); InventoryMaterialWindow.RefreshInventoryListEvent += GetInvertoryData; AddTask.RefreTaskListEvent += GetTask; + + systemRunTimer.Elapsed += new System.Timers.ElapsedEventHandler(CalculateTaskWaitTime); + systemRunTimer.AutoReset = true; + systemRunTimer.Enabled = true; + systemRunTimer.Start(); } + + + + + /// + /// 3楼向其他楼层输出托盘流程时,AGV把托盘放置到接驳位后,在调度界面增加“托盘入轿厢等待确认”提示信息 + /// 计算任务等待时长 + /// + /// + /// + /// + private void CalculateTaskWaitTime(object? sender, ElapsedEventArgs e) + { + try + { + using var scope = _host.Services.CreateScope(); + var dbContext = scope.ServiceProvider.GetRequiredService(); + // 给提升机已经下发入库指令,判断超时4分钟 + var task = dbContext.WcsTask.Where(t => t.nextPointId == 6 && t.taskStatus==2).FirstOrDefault(); + task = new WcsTask(); + task.fromFloorNo = 3; + if (task != null) + { + + if (systemRunTimerCount++ == 4 ) + { + Dispatcher.Invoke(() => + { + messageBoxWindow = new MessageBoxWindow($"{task.fromFloorNo}楼下发入库指令,超过5分钟未反馈,请前往{task.fromFloorNo}楼点击蓝色确认按钮,或排查提升机故障"); + messageBoxWindow.Show(); + + }); + + } + } + else + { + systemRunTimerCount = 0; + // 如果 task 为空并且窗口是可见的,关闭窗口 + if (messageBoxWindow !=null) + { + Dispatcher.Invoke(() => + { + messageBoxWindow.Close(); + }); + + messageBoxWindow = null; + systemRunTimerCount = 0; + } + } + + } + catch (Exception ex) + { + HandyControl.Controls.MessageBox.Error($"计算系统运行时长异常:{ex.Message}"); + + } + } + + /// /// 页面加载事件 /// diff --git a/src/Khd.Core.Wpf/WindowPage/MessageBoxWindow.xaml b/src/Khd.Core.Wpf/WindowPage/MessageBoxWindow.xaml new file mode 100644 index 0000000..ce8c33b --- /dev/null +++ b/src/Khd.Core.Wpf/WindowPage/MessageBoxWindow.xaml @@ -0,0 +1,12 @@ + + + + + diff --git a/src/Khd.Core.Wpf/WindowPage/MessageBoxWindow.xaml.cs b/src/Khd.Core.Wpf/WindowPage/MessageBoxWindow.xaml.cs new file mode 100644 index 0000000..5cce3d0 --- /dev/null +++ b/src/Khd.Core.Wpf/WindowPage/MessageBoxWindow.xaml.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace Khd.Core.Wpf.WindowPage +{ + /// + /// MessageBoxWindow.xaml 的交互逻辑 + /// + public partial class MessageBoxWindow : Window + { + + public MessageBoxWindow(string msg) + { + InitializeComponent(); + this.Msg.Text = msg; + } + + + } +}