using Admin.Core.IService; using Admin.Core.Model; using Admin.Core.Service; using Aucma.Core.CodeBinding.Models; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using log4net; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Xml.Linq; namespace Aucma.Core.CodeBinding.ViewModels { public partial class StatisticsPageViewModel : ObservableObject { private static readonly log4net.ILog log = LogManager.GetLogger(typeof(StatisticsPageViewModel)); private readonly ICodeBindingRecordServices? _codeBindingRecordServices; public StatisticsPageViewModel() { MainWindowViewModel.queryListEvent += ExecQueryAsync; _codeBindingRecordServices = App.ServiceProvider.GetService(); LoadData(); } List materialComplateInfos = new List(); #region 加载DataGrid数据 private async void LoadData() { List records = null; records = await _codeBindingRecordServices.QueryAsync(x => x.BoxCode != null && x.RecordTime2 >= System.DateTime.Now.AddDays(-1), "RECORD_TIME2 desc"); if (records != null) { foreach (CodeBindingRecord record in records) { Application.Current.Dispatcher.Invoke(() => { ListItems.Add(new ReaderInfo() { No = ListItems.Count + 1, BoxCode = record.BoxCode, ProductCode = record.ProductCode, BoxName = record.BoxName, BindingResult = record.BindingResult, IsPlcPass = record.isPlcPass == 2 ? "plc放行成功" : "", RecordTime = record.RecordTime2.ToString() }); }); } } } #endregion #region 初始化datagrid private ObservableCollection listItems = new ObservableCollection(); public ObservableCollection ListItems { get { return listItems; } set { listItems = value; OnPropertyChanged();//属性通知 } } #endregion #region 查询 /// /// 查询 /// [RelayCommand] private async Task ExecQueryAsync(object obj) { try { List list; if (obj == null) { list = await _codeBindingRecordServices.QueryAllByTime(null, null); } else { var result = (StatisticModel)obj; if (string.IsNullOrEmpty(result.BeginTime) && string.IsNullOrEmpty(result.EndTime)) { list = await _codeBindingRecordServices.QueryAllByTime(null, null); } else if (string.IsNullOrEmpty(result.BeginTime)) { list = await _codeBindingRecordServices.QueryAllByTime(null, result.EndTime); } else if (string.IsNullOrEmpty(result.EndTime)) { list = await _codeBindingRecordServices.QueryAllByTime(result.BeginTime, null); } else { DateTime theBeginTime = Convert.ToDateTime(result.BeginTime); DateTime theEndTime = Convert.ToDateTime(result.EndTime); if (theBeginTime > theEndTime) { MessageBox.Show("结束时间要大于开始时间!"); return; } list = await _codeBindingRecordServices.QueryAllByTime(result.BeginTime, result.EndTime); } } if (list != null) { System.Windows.Application.Current.Dispatcher.Invoke((Action)(async () => { ListItems.Clear(); foreach (CodeBindingRecord record in list) { ListItems.Add(new ReaderInfo() { No = ListItems.Count + 1, BoxCode = record.BoxCode, ProductCode = record.ProductCode, BoxName = record.BoxName, BindingResult = record.BindingResult, IsPlcPass = record.isPlcPass == 2 ? "plc放行成功" : "", RecordTime = record.RecordTime2.ToString() }); } })); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } #endregion } }