using Admin.Core.Model; using Aucma.Scada.UI.Common; using Aucma.Scada.UI.PlanBusiness; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; 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.Scada.UI.ViewModel.InventoryInfo { public partial class MaterialStatisticsViewModel : ObservableObject { private AppConfig appConfig = AppConfig.Instance; private InventoryInfoBusiness _inventoryInfoBusiness = InventoryInfoBusiness.Instance; public MaterialStatisticsViewModel() { init(); } #region 参数定义 /// /// 箱壳物料库存DataGrid /// private ObservableCollection shellMaterialStockDataGrid; public ObservableCollection ShellMaterialStockDataGrid { get => shellMaterialStockDataGrid; set => SetProperty(ref shellMaterialStockDataGrid, value); } /// /// 内胆物料库存DataGrid /// private ObservableCollection linerMaterialStockDataGrid; public ObservableCollection LinerMaterialStockDataGrid { get => linerMaterialStockDataGrid; set => SetProperty(ref linerMaterialStockDataGrid, value); } /// /// 泡前库物料库存DataGrid /// private ObservableCollection foamBeforeMaterialStockDataGrid; public ObservableCollection FoamBeforeMaterialStockDataGrid { get => foamBeforeMaterialStockDataGrid; set => SetProperty(ref foamBeforeMaterialStockDataGrid, value); } #endregion [RelayCommand] private async void init() { //箱壳物料库存 ShellMaterialStockDataGrid = new ObservableCollection(); List shellList =await _inventoryInfoBusiness.GetSpaceInfos(appConfig.shellStoreCode); var shellResult = from m in shellList group m by m.MaterialType into g select new BaseSpaceInfo() { MaterialType = g.Key, SpaceStock = g.Sum(m => m.SpaceStock) }; foreach( var item in shellResult) { if (string.IsNullOrEmpty(item.MaterialType)) continue; ShellMaterialStockDataGrid.Add(new BaseSpaceInfo() { MaterialType = item.MaterialType, SpaceStock = item.SpaceStock }); } //内胆物料库存 LinerMaterialStockDataGrid = new ObservableCollection(); List linerList =await _inventoryInfoBusiness.GetSpaceInfos(appConfig.linerStoreCode); var linerResult = from m in linerList group m by m.MaterialType into g select new BaseSpaceInfo() { MaterialType = g.Key, SpaceStock = g.Sum(m => m.SpaceStock) }; foreach (var item in linerResult) { if (string.IsNullOrEmpty(item.MaterialType)) continue; LinerMaterialStockDataGrid.Add(new BaseSpaceInfo() { MaterialType = item.MaterialType, SpaceStock = item.SpaceStock }); } //泡前库物料库存 FoamBeforeMaterialStockDataGrid = new ObservableCollection(); List foamBeforeList =await _inventoryInfoBusiness.GetSpaceInfos(appConfig.foamBeforeStoreCode); var foamBeforeResult = from m in foamBeforeList group m by m.MaterialType into g select new BaseSpaceInfo() { MaterialType = g.Key, SpaceStock = g.Sum(m => m.SpaceStock) }; foreach (var item in foamBeforeResult) { if (string.IsNullOrEmpty(item.MaterialType)) continue; FoamBeforeMaterialStockDataGrid.Add(new BaseSpaceInfo() { MaterialType = item.MaterialType, SpaceStock = item.SpaceStock }); } } [RelayCommand] private void CloseWindow(object parameter) { var window = parameter as Window; if (window != null) { window.Close(); } } } }