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.Navigation; using System.Windows.Shapes; using System.Windows.Threading; using Microsoft.Extensions.DependencyInjection; using Sln.Wcs.Model.Domain; using SqlSugar; namespace Sln_Wpf.Page { /// /// MainPage.xaml 的交互逻辑 /// public partial class MainPage : UserControl { private ISqlSugarClient? sqlSugarClient; public MainPage() { InitializeComponent(); sqlSugarClient = App.ServiceProvider.GetService(); sqlSugarClient.AsTenant().ChangeDatabase("wcs"); LoadStatistics(); DispatcherTimer timer = new DispatcherTimer(); timer.Interval = TimeSpan.FromSeconds(10); timer.Tick += ReloadData; timer.Start(); } private void ReloadData(object sender, EventArgs e) { LoadStatistics(); } /// /// 加载统计数据 /// private void LoadStatistics() { #region 设备连接状态 List agvEquipStatus = sqlSugarClient.Queryable().Where(x => x.EquipType == 1).ToList(); List elevatorEquipStatus = sqlSugarClient.Queryable().Where(x => x.EquipType == 2).ToList(); ElevatorConnectedFlag.Text = "在线:"+$"{elevatorEquipStatus.Where(x => x.UseFlag == 1).Count()}" + "台,离线:"+$"{elevatorEquipStatus.Where(x => x.UseFlag == 0).Count()}" +"台"; AgvConnectedFlag.Text = "在线:"+$"{ agvEquipStatus.Where(x => x.UseFlag == 1).Count()}" + "台,离线:"+$"{ agvEquipStatus.Where(x => x.UseFlag == 0).Count()}" +"台"; #endregion #region 库位储藏状态 List locations = sqlSugarClient.Queryable().ToList(); TotalStorageSpace.Text = locations.Count().ToString(); StorageSpaceUsage.Text = "已用库位:"+$"{locations.Where(x => x.ContainerCode != null).Count()}|空闲"+$"{locations.Where(x => x.ContainerCode == null).Count()}"; StorageSpaceUsageBar.Value = (int)((double)locations.Where(x => x.ContainerCode != null).Count() / locations.Count() * 100); StorageSpaceUsageText.Text = $"库容使用率{StorageSpaceUsageBar.Value}%"; #endregion #region 任务状态 List taskList = sqlSugarClient.Queryable().ToList(); TaskCountText.Text = taskList.Count().ToString(); #endregion } } }