|
|
|
|
using Aucma.Scada.Business;
|
|
|
|
|
using Aucma.Scada.Model.domain;
|
|
|
|
|
using GalaSoft.MvvmLight;
|
|
|
|
|
using GalaSoft.MvvmLight.Command;
|
|
|
|
|
using HighWayIot.Config;
|
|
|
|
|
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 class MaterialStatisticsViewModel:ViewModelBase
|
|
|
|
|
{
|
|
|
|
|
private AppConfig appConfig = AppConfig.Instance;
|
|
|
|
|
private InventoryInfoBusiness _inventoryInfoBusiness = InventoryInfoBusiness.Instance;
|
|
|
|
|
|
|
|
|
|
public MaterialStatisticsViewModel()
|
|
|
|
|
{
|
|
|
|
|
CloseWindowCommand = new RelayCommand<object>(t => CloseWindow(t));
|
|
|
|
|
RefreshCommand = new RelayCommand(init);
|
|
|
|
|
init();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#region 参数定义
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 箱壳物料库存DataGrid
|
|
|
|
|
/// </summary>
|
|
|
|
|
private ObservableCollection<BaseSpaceInfo> shellMaterialStockDataGrid;
|
|
|
|
|
|
|
|
|
|
public ObservableCollection<BaseSpaceInfo> ShellMaterialStockDataGrid
|
|
|
|
|
{
|
|
|
|
|
get { return shellMaterialStockDataGrid; }
|
|
|
|
|
set { shellMaterialStockDataGrid = value; RaisePropertyChanged(() => ShellMaterialStockDataGrid); }
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 内胆物料库存DataGrid
|
|
|
|
|
/// </summary>
|
|
|
|
|
private ObservableCollection<BaseSpaceInfo> linerMaterialStockDataGrid;
|
|
|
|
|
|
|
|
|
|
public ObservableCollection<BaseSpaceInfo> LinerMaterialStockDataGrid
|
|
|
|
|
{
|
|
|
|
|
get { return linerMaterialStockDataGrid; }
|
|
|
|
|
set { linerMaterialStockDataGrid = value; RaisePropertyChanged(() => LinerMaterialStockDataGrid); }
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 泡前库物料库存DataGrid
|
|
|
|
|
/// </summary>
|
|
|
|
|
private ObservableCollection<BaseSpaceInfo> foamBeforeMaterialStockDataGrid;
|
|
|
|
|
|
|
|
|
|
public ObservableCollection<BaseSpaceInfo> FoamBeforeMaterialStockDataGrid
|
|
|
|
|
{
|
|
|
|
|
get { return foamBeforeMaterialStockDataGrid; }
|
|
|
|
|
set { foamBeforeMaterialStockDataGrid = value; RaisePropertyChanged(() => FoamBeforeMaterialStockDataGrid); }
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 事件定义
|
|
|
|
|
public RelayCommand RefreshCommand { get; set; }
|
|
|
|
|
|
|
|
|
|
public RelayCommand<object> CloseWindowCommand { get; set; }
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
private void init()
|
|
|
|
|
{
|
|
|
|
|
//箱壳物料库存
|
|
|
|
|
ShellMaterialStockDataGrid = new ObservableCollection<BaseSpaceInfo>();
|
|
|
|
|
List<BaseSpaceInfo> shellList = _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<BaseSpaceInfo>();
|
|
|
|
|
List<BaseSpaceInfo> linerList = _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<BaseSpaceInfo>();
|
|
|
|
|
List<BaseSpaceInfo> foamBeforeList = _inventoryInfoBusiness.GetSpaceInfos(appConfig.foamStoreCode);
|
|
|
|
|
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 });
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CloseWindow(object parameter)
|
|
|
|
|
{
|
|
|
|
|
var window = parameter as Window;
|
|
|
|
|
if (window != null)
|
|
|
|
|
{
|
|
|
|
|
window.Close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|