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.

224 lines
6.6 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Command;
using Microsoft.Extensions.DependencyInjection;
using SlnMesnac.Business;
using SlnMesnac.Model.domain;
using SlnMesnac.Model.dto;
using SlnMesnac.WPF.MessageTips;
using SlnMesnac.WPF.Model;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* 版权所有 (c) 2024 WenJY 保留所有权利。
* CLR版本4.0.30319.42000
* 机器名称LAPTOP-E0N2L34V
* 命名空间SlnMesnac.WPF.ViewModel
* 唯一标识14008fcc-0a31-4f1e-bc80-9f9ea84d3de5
*
* 创建者WenJY
* 电子邮箱wenjy@mesnac.com
* 创建时间2024-04-10 16:18:57
* 版本V1.0.0
* 描述:
*
*--------------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
*
* 版本V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace SlnMesnac.WPF.ViewModel
{
/// <summary>
/// 生产统计ViewModel
/// </summary>
internal class ProdStatisticsViewModel : ViewModelBase
{
private readonly PalletStowBusiness _palletStowBusiness;
private readonly ProdCompletionBusiness _prodCompletionBusiness;
private readonly ISqlSugarClient sqlClient;
public ProdStatisticsViewModel()
{
_palletStowBusiness = App.ServiceProvider.GetService<PalletStowBusiness>();
_prodCompletionBusiness = App.ServiceProvider.GetService<ProdCompletionBusiness>();
sqlClient = App.ServiceProvider.GetService<ISqlSugarClient>();
QueryCommand = new RelayCommand<object>(obj => Query(obj));
DeletePalletCommand = new RelayCommand<string>(DeletePallet);
BeginDate = DateTime.Now.AddDays(-3);
EndDate = DateTime.Now;
}
#region 时间查询
private async Task Query(object obj)
{
try
{
if (EndDate <= BeginDate)
{
Application.Current.Dispatcher.Invoke(() =>
{
Msg.MsgShow("结束时间要大于开始时间", 2, 3);
});
return;
}
else
{
await RefreshWmsRawOutstockDetailDataGrid(BeginDate, EndDate);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
#endregion
/// <summary>
/// 刷新原材料出库记录及图表
/// </summary>
private async Task RefreshWmsRawOutstockDetailDataGrid(DateTime beginDate, DateTime endDate)
{
List<WmsRawOutstockDetail> list;
list = await sqlClient.AsTenant().GetConnection("mes").Queryable<WmsRawOutstockDetail>().Where(x => x.WarehouseId==311 && x.OutstockTime >= beginDate && x.OutstockTime <= endDate).OrderBy(t => t.OutstockTime).ToListAsync();
if (list != null && list.Count > 0)
{
await App.Current.Dispatcher.BeginInvoke((Action)(() =>
{
WmsRawOutstockDetailDataGrid.Clear();
int i = 1;
foreach (WmsRawOutstockDetail verify in list)
{
verify.RawOutstockDetailId = i++;
WmsRawOutstockDetailDataGrid.Add(verify);
}
}));
// 刷新图表
// ModelList(list);
}
}
#region 参数定义
private DateTime _BeginDate;
public DateTime BeginDate
{
get { return _BeginDate; }
set
{
if (_BeginDate != value)
{
_BeginDate = value;
RaisePropertyChanged();//属性通知
}
}
}
private DateTime _EndDate;
public DateTime EndDate
{
get { return _EndDate; }
set
{
_EndDate = value;
RaisePropertyChanged();//属性通知
}
}
/// <summary>
/// 托盘队列DataGrid
/// </summary>
private ObservableCollection<WmsRawOutstockDetail> wmsRawOutstockDetailDataGrid = new ObservableCollection<WmsRawOutstockDetail>();
public ObservableCollection<WmsRawOutstockDetail> WmsRawOutstockDetailDataGrid
{
get { return wmsRawOutstockDetailDataGrid; }
set { wmsRawOutstockDetailDataGrid = value; RaisePropertyChanged(() => WmsRawOutstockDetailDataGrid); }
}
/// <summary>
/// 条码队列DataGrid
/// </summary>
private ObservableCollection<MesPrdBarcodeInfo> barCodeTaskDataGrid;
public ObservableCollection<MesPrdBarcodeInfo> BarCodeTaskDataGrid
{
get { return barCodeTaskDataGrid; }
set { barCodeTaskDataGrid = value; RaisePropertyChanged(() => BarCodeTaskDataGrid); }
}
#endregion
#region 事件定义
/// <summary>
/// 时间查询事件
/// </summary>
public RelayCommand<object> QueryCommand { get; set; }
public RelayCommand<string> DeletePalletCommand { get;set; }
public RelayCommand<string> DeleteBarCodeCommand { get; set; }
#endregion
///// <summary>
///// 刷新条码队列信息
///// </summary>
///// <param name="barCodeTasks"></param>
//private void RefreshBarCodeTaskDataGrid(List<RealBarCodeTask> barCodeTasks)
//{
// BarCodeTaskDataGrid = new ObservableCollection<RealBarCodeTask>();
// foreach (var task in barCodeTasks)
// {
// BarCodeTaskDataGrid.Add(task);
// }
//}
/// <summary>
/// 移除托盘队列信息
/// </summary>
/// <param name="palletCode"></param>
private void DeletePallet(string palletCode)
{
_palletStowBusiness.RemovePalletInfo(palletCode);
}
///// <summary>
///// 移除小包条码队列信息
///// </summary>
///// <param name="barCode"></param>
//private void DeleteBarCode(string barCode)
//{
// _prodCompletionBusiness.RemoveBarCode(barCode);
//}
}
}