using Admin.Core.Common; using Admin.Core.IService; using Admin.Core.Model.ViewModels; using Aucma.Core.BoxFoam.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; /* * 入库统计 * */ namespace Aucma.Core.BoxFoam.ViewModels { public partial class EnterWarehouseStatisticsPageViewModel : ObservableObject { private static readonly log4net.ILog log = LogManager.GetLogger(typeof(EnterWarehouseStatisticsPageViewModel)); List materialComplateInfos = new List(); public readonly IRecordInStoreServices? _recordInstoreServices; public EnterWarehouseStatisticsPageViewModel() { _recordInstoreServices = App.ServiceProvider.GetService(); LoadDataAsync(); } #region 加载DataGrid数据 private async void LoadDataAsync() { try { MaterialDataGrid.Clear(); var storeCode = Appsettings.app("StoreInfo", "BeforeStoreCode"); DateTime startTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")); DateTime endTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 23:59:59")); var list = await _recordInstoreServices.queryRecordToDb(storeCode, startTime, endTime); if (list == null) return; int count = 0; foreach (var item in list) { MaterialDataGrid.Add(new EnterLibView { No = ++count, SpaceCode = item.SpaceCode, MaterialBarCode = item.BarCodeCode, MaterialType = item.MaterialType, InstoreTime = item.InStoreTime, }); }; } catch (Exception ex) { log.Error($"查询入库记录异常:{ex.Message}"); } //MaterialDataGrid.Add(new MaterialComplateInfo() { No = 1, MaterialBarCode= "8659452123", ProductPlanCode = "8659452123", MaterialCode = "8659452123", MaterialName = "SC-AUCMA-农夫山泉,SC", PlanAmount = 50, CompleteAmount = 10, EnterWarehouseTime=DateTime.Now }); } #endregion #region 初始化datagrid private ObservableCollection materialDataGrid = new ObservableCollection(); public ObservableCollection MaterialDataGrid { get { return materialDataGrid; } set { materialDataGrid = value; OnPropertyChanged();//属性通知 } } #endregion #region 查询 /// /// 查询 /// [RelayCommand] private async Task ExecQuery(Object obj) { var result = (StatisticModel)obj; if (result==null) { MessageBox.Show("查询参数不能为空!"); return; } if (string.IsNullOrEmpty(result.BeginTime)) { MessageBox.Show("开始时间不能为空!"); return; } if (string.IsNullOrEmpty(result.EndTime)) { MessageBox.Show("结束时间不能为空!"); return; } DateTime theBeginTime = Convert.ToDateTime(result.BeginTime); DateTime theEndTime = Convert.ToDateTime(result.EndTime); if (theBeginTime> theEndTime) { MessageBox.Show("结束时间要大于开始时间!"); return; } var storeCode = Appsettings.app("StoreInfo", "BeforeStoreCode"); DateTime startTime = Convert.ToDateTime(theBeginTime.ToString("yyyy-MM-dd 00:00:00")); DateTime endTime = Convert.ToDateTime(theEndTime.ToString("yyyy-MM-dd 23:59:59")); System.Windows.Application.Current.Dispatcher.Invoke((Action)(async () => { if (!string.IsNullOrEmpty(result.BeginTime)) { MaterialDataGrid.Clear(); var list = await _recordInstoreServices.queryRecordToDb(storeCode, startTime, endTime); if (list == null) return; int count = 0; foreach (var item in list) { MaterialDataGrid.Add(new EnterLibView { No = ++count, SpaceCode = item.SpaceCode, MaterialBarCode = item.BarCodeCode, MaterialType = item.MaterialType, InstoreTime = item.InStoreTime, }); }; } else { MaterialDataGrid.Clear(); LoadDataAsync(); } //Datalist.Insert(0, Datalist[Datalist.Count - 1]); //Datalist.RemoveAt(Datalist.Count - 1); })); } #endregion } }