You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AUCMA_SCADA/Aucma.Core.BoxFoam/ViewModels/EnterWarehouseStatisticsPag...

147 lines
5.5 KiB
C#

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<MaterialComplateInfo> materialComplateInfos = new List<MaterialComplateInfo>();
1 year ago
public readonly IRecordInStoreServices? _recordInstoreServices;
1 year ago
public EnterWarehouseStatisticsPageViewModel()
{
1 year ago
_recordInstoreServices = App.ServiceProvider.GetService<IRecordInStoreServices>();
LoadDataAsync();
1 year ago
}
#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<EnterLibView> materialDataGrid = new ObservableCollection<EnterLibView>();
public ObservableCollection<EnterLibView> MaterialDataGrid
{
get { return materialDataGrid; }
set
{
materialDataGrid = value;
OnPropertyChanged();//属性通知
}
}
#endregion
#region 查询
/// <summary>
/// 查询
/// </summary>
[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);
1 year ago
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"));
1 year ago
System.Windows.Application.Current.Dispatcher.Invoke((Action)(async () =>
{
1 year ago
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
}
}