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
}
}
}