Files
wcs/货架标准上位机/ViewModels/OutInventoryDocumentViewModel.cs

470 lines
15 KiB
C#

using HandyControl.Controls;
using Ping9719.WpfEx.Mvvm;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
using WCS.Model;
using WCS.Model.ApiModel.MatBaseInfo;
using WCS.Model.ApiModel.OutStore;
using .Api;
namespace .ViewModels
{
public class OutInventoryDocumentViewModel : BindableBase
{
public OutInventoryDocumentViewModel()
{
BtnSearch();
}
#region Properties界面绑定的实体
private ObservableCollection<OutOrderModel> dataGridItemSource;
public ObservableCollection<OutOrderModel> DataGridItemSource
{
get { return dataGridItemSource; }
set
{
SetProperty(ref dataGridItemSource, value);
}
}
public OutOrderModel selectedataGridItem;
public OutOrderModel SelectedataGridItem
{
get { return selectedataGridItem; }
set
{
SetProperty(ref selectedataGridItem, value);
}
}
private string orderNumber;
public string OrderNumber
{
get { return orderNumber; }
set
{
SetProperty(ref orderNumber, value);
}
}
private string orderType;
public string OrderType
{
get { return orderType; }
set
{
SetProperty(ref orderType, value);
}
}
private string orderSource;
public string OrderSource
{
get { return orderSource; }
set
{
SetProperty(ref orderSource, value);
}
}
#endregion
#region Command
public ICommand BtnSearchCommand { get => new DelegateCommand(BtnSearchReset); }
public void BtnSearchReset()
{
BtnSearch(true);
}
public void BtnSearch(bool IsPageReset = true)
{
if (CurrentPage == 0 || IsPageReset)
{
CurrentPage = 1;
return;
}
#region
try
{
var body = new GetOutOrderListRequest()
{
OrderNumber = OrderNumber,
OrderType = OrderType,
OrderSource = OrderSource,
UserName = LocalStatic.CurrentUser,
DeviceType = LocalFile.Config.DeviceType,
PageNumber = CurrentPage,
PageSize = PageSize,
};
var Result = ApiHelp.GetDataFromHttp<PageQueryResponse<OutOrderModel>>(LocalFile.Config.ApiIpHost + "outStore/GetOutOrderList", body, "POST");
if (Result != null && Result.Data != null && Result.Data.Lists != null)
{
DataGridItemSource = new ObservableCollection<OutOrderModel>(Result.Data.Lists);
MaxPage = Result.Data.MaxPage;
TotalCount = Result.Data.TotalCount;
}
}
catch (Exception ex)
{
Growl.Error("加载数据失败:" + ex.Message);
}
finally
{
}
#endregion
}
public ICommand BtnResetCommand { get => new DelegateCommand(BtnReset); }
public void BtnReset()
{
OrderNumber = string.Empty;
OrderType = string.Empty;
OrderSource = string.Empty;
}
//public ICommand BtnDeleteCommand { get => new DelegateCommand(BtnDelete); }
//public void BtnDelete()
//{
//}
public ICommand BtnOutOrderCommand { get => new DelegateCommand(BtnOutOrder); }
public void BtnOutOrder()
{
var window = new OutInventoryAddDucumentView();
window.Owner = Application.Current.MainWindow;
var result = window.ShowDialog();
if (result == true)
BtnSearch(true);
}
//导入出库
public ICommand BtnImportDocumentCommand { get => new DelegateCommand(BtnImportDocument); }
public void BtnImportDocument()
{
var window = new OutInventoryImportDucumentView();
window.Owner = Application.Current.MainWindow;
var result = window.ShowDialog();
if (result == true)
BtnSearch(true);
}
public ICommand BtnOrderDetailCommand { get => new DelegateCommand(BtnOrderDetail); }
public void BtnOrderDetail()
{
try
{
if (DataGridItemSource == null)
{
Growl.Warning("未勾选数据!");
return;
}
//判断是否勾选数据
var selectedOutOrder = DataGridItemSource.Where(t => t.IsSelected)
.FirstOrDefault();
if (selectedOutOrder == null)
{
Growl.Warning("未勾选数据!");
return;
}
#region
var body = new GetOutOrderDetailRequest()
{
OrderId = selectedOutOrder.Id,
OrderNumber = selectedOutOrder.OrderNumber,
UserName = LocalStatic.CurrentUser,
DeviceType = LocalFile.Config.DeviceType,
};
var Result = ApiHelp.GetDataFromHttp<ResponseCommon<List<OutOrderDetailModel>>>(LocalFile.Config.ApiIpHost + "outStore/getOutOrderDetail", body, "POST");
if (Result != null && Result.Code == 200)
{
if (Result.Data.Count > 0)
{
//打开窗体
var window = new OutInventoryDocumentDetailView(Result.Data);
window.Owner = Application.Current.MainWindow;
window.ShowDialog();
}
else
{
Growl.Warning("该单据没有单据明细!");
}
}
else if (Result != null)
{
Growl.Warning(Result.Message);
}
else
{
Growl.Warning("调用接口失败!");
}
#endregion
}
catch (Exception ex)
{
Growl.Error("出现异常:" + ex.Message);
}
finally
{
}
}
public ICommand BtnOrderMatDetailCommand { get => new DelegateCommand(BtnOrderMatDetail); }
public void BtnOrderMatDetail()
{
try
{
if (DataGridItemSource == null)
{
Growl.Warning("未勾选数据!");
return;
}
//判断是否勾选数据
var selectedOutOrder = DataGridItemSource.Where(t => t.IsSelected)
.FirstOrDefault();
if (selectedOutOrder == null)
{
Growl.Warning("未勾选数据!");
return;
}
#region
var body = new GetOutOrderDetailRequest()
{
OrderId = selectedOutOrder.Id,
OrderNumber = selectedOutOrder.OrderNumber,
UserName = LocalStatic.CurrentUser,
DeviceType = LocalFile.Config.DeviceType,
};
var Result = ApiHelp.GetDataFromHttp<ResponseCommon<List<OutOrderMatDetailModel>>>(LocalFile.Config.ApiIpHost + "outStore/getOutOrderMatDetail", body, "POST");
if (Result != null && Result.Code == 200)
{
if (Result.Data.Count > 0)
{
//打开窗体
var window = new OutInventoryDocumentMatDetailView(Result.Data);
window.Owner = Application.Current.MainWindow;
window.ShowDialog();
}
else
{
Growl.Warning("该单据没有发料明细!");
}
}
else if (Result != null)
{
Growl.Warning(Result.Message);
}
else
{
Growl.Warning("调用接口失败!");
}
#endregion
}
catch (Exception ex)
{
Growl.Error("出现异常:" + ex.Message);
}
finally
{
}
}
//开始入库 如果成功就直接跳转出库界面
public ICommand BtnStartCommand { get => new DelegateCommand(BtnStart); }
public void BtnStart()
{
try
{
if (DataGridItemSource == null)
{
Growl.Warning("未勾选数据!");
return;
}
//判断是否勾选数据
var selectedOutOrder = DataGridItemSource.Where(t => t.IsSelected)
.FirstOrDefault();
if (selectedOutOrder == null)
{
Growl.Warning("未勾选数据!");
return;
}
#region
var body = new GetOutOrderDetailRequest()
{
OrderId = selectedOutOrder.Id,
OrderNumber = selectedOutOrder.OrderNumber,
IsStart = true,
UserName = LocalStatic.CurrentUser,
DeviceType = LocalFile.Config.DeviceType,
};
var Result = ApiHelp.GetDataFromHttp<ResponseCommon>(LocalFile.Config.ApiIpHost + "outStore/goInOutstore", body, "POST");
if (Result != null && Result.Code == 200)
{
//成功后直接跳转
MainWindow1.viewModel.GoToOutVentoryView = true;
//刷新出库单列表
OutVentoryView.viewModel.RefreshOutOrderList(selectedOutOrder.OrderNumber);
Growl.Success("已跳转到物料出库页面!");
}
else if (Result != null)
{
Growl.Warning(Result.Message);
}
else
{
Growl.Warning("调用接口失败!");
}
#endregion
}
catch (Exception ex)
{
Growl.Error("出现异常:" + ex.Message);
}
finally
{
}
}
public ICommand BtnPauseCommand { get => new DelegateCommand(BtnPause); }
public void BtnPause()
{
try
{
if (DataGridItemSource == null)
{
Growl.Warning("未勾选数据!");
return;
}
//判断是否勾选数据
var selectedOutOrder = DataGridItemSource.Where(t => t.IsSelected)
.FirstOrDefault();
if (selectedOutOrder == null)
{
Growl.Warning("未勾选数据!");
return;
}
#region
var body = new GetOutOrderDetailRequest()
{
OrderId = selectedOutOrder.Id,
OrderNumber = selectedOutOrder.OrderNumber,
IsPause = true,
UserName = LocalStatic.CurrentUser,
DeviceType = LocalFile.Config.DeviceType,
};
var Result = ApiHelp.GetDataFromHttp<ResponseCommon>(LocalFile.Config.ApiIpHost + "outStore/goOutOutstore", body, "POST");
if (Result != null && Result.Code == 200)
{
//刷新出库单列表
OutVentoryView.viewModel.RefreshOutOrderList(selectedOutOrder.OrderNumber);
Growl.Success("已暂停出库!");
}
else if (Result != null)
{
OutVentoryView.viewModel.RefreshOutOrderList(OutVentoryView.viewModel.SelectedOutOrder?.OrderNumber);
Growl.Warning(Result.Message);
}
else
{
Growl.Warning("调用接口失败!");
}
#endregion
}
catch (Exception ex)
{
Growl.Error("出现异常:" + ex.Message);
}
finally
{
}
}
#endregion
#region PageOperation
private int currentPage;
public int CurrentPage
{
get { return currentPage; }
set
{
SetProperty(ref currentPage, value);
BtnSearch(false);
}
}
private int maxPage;
public int MaxPage
{
get { return maxPage; }
set { SetProperty(ref maxPage, value); }
}
//总数量
private int totalCount;
public int TotalCount
{
get { return totalCount; }
set { SetProperty(ref totalCount, value); }
}
private int pageSize = 10;
public int PageSize
{
get => pageSize;
set { SetProperty(ref pageSize, value); }
}
public ICommand BtnFirstPageCommand { get => new DelegateCommand(BtnFirstPage); }
public void BtnFirstPage()
{
CurrentPage = 1;
}
public ICommand BtnPrePageCommand { get => new DelegateCommand(BtnPrePage); }
public void BtnPrePage()
{
if (CurrentPage > 1)
{
CurrentPage--;
}
}
public ICommand BtnNextPageCommand { get => new DelegateCommand(BtnNextPage); }
public void BtnNextPage()
{
if (CurrentPage < MaxPage)
{
CurrentPage++;
}
}
public ICommand BtnLastPageCommand { get => new DelegateCommand(BtnLastPage); }
public void BtnLastPage()
{
if (CurrentPage != MaxPage)
{
CurrentPage = MaxPage;
}
}
#endregion
}
}