diff --git a/货架标准上位机/ViewModels/AGVTaskViewModel.cs b/货架标准上位机/ViewModels/AGVTaskViewModel.cs new file mode 100644 index 0000000..558d0e1 --- /dev/null +++ b/货架标准上位机/ViewModels/AGVTaskViewModel.cs @@ -0,0 +1,379 @@ +using HandyControl.Controls; +using Ping9719.WpfEx.Mvvm; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Input; +using SqlSugar; +using 智慧物流软件系统.Views.Controls; +using 智慧物流软件系统.Api; +using WCS.Model; +using WCS.Model.ApiModel; +using WCS.Model.ApiModel.MatBaseInfo; +using System.Collections.ObjectModel; +using WCS.Model.ApiModel.Stocktaking; + +namespace 智慧物流软件系统.ViewModel +{ + public class AGVTaskViewModel : BindableBase + { + + public AGVTaskViewModel() + { + //初始化下拉列表框 + StocktakingStatuses.Add("全部"); + var statuses = Enum.GetValues(typeof(StocktakingStatusEnum)) + .Cast() + .ToList(); + foreach (var status in statuses) + { + StocktakingStatuses.Add(status.ToString()); + } + } + + #region Property + private ObservableCollection dataGridItemSource; + public ObservableCollection DataGridItemSource + { + get { return dataGridItemSource; } + set + { + SetProperty(ref dataGridItemSource, value); + } + } + + public MatDetailStocktakingInfoModel selectedataGridItem; + public MatDetailStocktakingInfoModel SelectedataGridItem + { + get { return selectedataGridItem; } + set + { + SetProperty(ref selectedataGridItem, value); + } + } + + /// + /// 物料编码 + /// + private string matCode; + public string MatCode + { + get { return matCode; } + set + { + SetProperty(ref matCode, value); + } + } + + /// + /// 物料名称 + /// + private string matName; + public string MatName + { + get { return matName; } + set + { + SetProperty(ref matName, value); + } + } + + /// + /// 盘点人 + /// + private string stocktakingUser; + public string StocktakingUser + { + get { return stocktakingUser; } + set + { + SetProperty(ref stocktakingUser, value); + } + } + + /// + /// 盘点状态列表 + /// + private List stocktakingStatuses = new List(); + public List StocktakingStatuses + { + get { return stocktakingStatuses; } + set + { + SetProperty(ref stocktakingStatuses, value); + } + } + + private string selectedStocktakingStatus; + public string SelectedStocktakingStatus + { + get { return selectedStocktakingStatus; } + set + { + SetProperty(ref selectedStocktakingStatus, value); + } + } + + #endregion + + #region Command + public ICommand BtnResetCommand { get => new DelegateCommand(BtnReset); } + public void BtnReset() + { + MatCode = string.Empty; + MatName = string.Empty; + StocktakingUser = string.Empty; + SelectedStocktakingStatus = StocktakingStatuses.Where(t => t.Contains("未提交")).First(); + } + + 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; + } + var isSelected = Enum.TryParse(SelectedStocktakingStatus, out StocktakingStatusEnum status); + #region 调用接口获取数据 + var dia = Dialog.Show(new TextDialog()); + try + { + var body = new GetStocktakingInfosRequest() + { + MatCode = MatCode, + MatName = MatName, + StocktakingUser = StocktakingUser, + StocktakingStatus = isSelected ? status : null, + + UserName = LocalStatic.CurrentUser, + DeviceType = LocalFile.Config.DeviceType, + PageNumber = CurrentPage, + PageSize = PageSize, + + }; + var Result = ApiHelp.GetDataFromHttp>(LocalFile.Config.ApiIpHost + "PDAStocktaking/getStocktakingInfos", body, "POST"); + if (Result != null && Result.Data != null && Result.Data.Lists != null) + { + DataGridItemSource = new ObservableCollection(Result.Data.Lists); + MaxPage = Result.Data.MaxPage; + TotalCount = Result.Data.TotalCount; + } + } + catch (Exception ex) + { + Growl.Error("加载数据失败:" + ex.Message); + } + finally + { + dia.Close(); + } + #endregion + } + + + /// + /// 物料删除操作 + /// + public ICommand BtnCommitCommand { get => new DelegateCommand(BtnCommit); } + public async void BtnCommit() + { + Growl.Ask($"是否提交所有勾选的数据?", isConfirmed => + { + if (isConfirmed) + { + //查询勾选的第一个数据 + var needDeleteIds = DataGridItemSource?.Where(t => t.IsSelected == true) + .Select(t => t.Id) + .ToList(); + if (needDeleteIds == null) + { + Growl.Warning("请选择需要提交的数据!"); + } + else + { + var body = new DeleteInfosRequest() + { + UserName = LocalStatic.CurrentUser, + DeviceType = LocalFile.Config.DeviceType, + needDeleteIds = needDeleteIds, + }; + var Result = ApiHelp.GetDataFromHttp>(LocalFile.Config.ApiIpHost + "PDAStocktaking/commitStocktakingInfos", body, "POST"); + if (Result != null && Result.Code == 200) + { + CurrentPage = 1; + Growl.Success("提交成功!" + Result?.Message); + } + else + { + Growl.Error($"{Result?.Message?.ToString()}"); + } + } + } + return true; + }); + } + + /// + /// 物料修改操作 + /// + public ICommand BtnEditCommand { get => new DelegateCommand(BtnEdit); } + public async void BtnEdit() + { + //查询勾选的第一个数据 + var matDetailStocktakingInfo = DataGridItemSource?.Where(t => t.IsSelected == true).FirstOrDefault(); + if (matDetailStocktakingInfo == null) + { + Growl.Warning("请选择需要修改的数据!"); + return; + } + else + { + var updateView = new MatDetailStocktakingInfoUpdateView("修改盘点数据", matDetailStocktakingInfo); + updateView.ShowDialog(); + if (updateView.DialogResult == true) + { + matDetailStocktakingInfo = updateView.matDetailStocktakingInfo; + var body = new UpdateStocktakingInfoRequest() + { + MatDetailStocktakingInfoId = matDetailStocktakingInfo.Id, + StocktakingQty = matDetailStocktakingInfo.StocktakingQty, + UserName = LocalStatic.CurrentUser, + DeviceType = LocalFile.Config.DeviceType, + }; + var Result = ApiHelp.GetDataFromHttp>(LocalFile.Config.ApiIpHost + "PDAStocktaking/updateStocktakingInfos", body, "POST"); + if (Result != null && Result.Code == 200) + { + CurrentPage = 1; + Growl.Success("修改成功!"); + } + else + { + Growl.Error($"{Result?.Message?.ToString()}"); + } + } + } + } + + /// + /// 物料删除操作 + /// + public ICommand BtnDeleteCommand { get => new DelegateCommand(BtnDelete); } + public async void BtnDelete() + { + Growl.Ask($"是否删除所有勾选得数据]!", isConfirmed => + { + if (isConfirmed) + { + //查询勾选的第一个数据 + var needDeleteIds = DataGridItemSource?.Where(t => t.IsSelected == true) + .Select(t => t.Id) + .ToList(); + + if (needDeleteIds == null) + { + Growl.Warning("请选择需要修改的数据!"); + } + else + { + var body = new DeleteInfosRequest() + { + UserName = LocalStatic.CurrentUser, + DeviceType = LocalFile.Config.DeviceType, + needDeleteIds = needDeleteIds, + }; + var Result = ApiHelp.GetDataFromHttp>(LocalFile.Config.ApiIpHost + "PDAStocktaking/deleteStocktakingInfos", body, "POST"); + if (Result != null && Result.Code == 200) + { + CurrentPage = 1; + Growl.Success("删除成功!" + Result?.Message); + } + else + { + Growl.Error($"{Result?.Message?.ToString()}"); + } + } + } + return true; + }); + } + #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); + BtnSearch(true); + } + } + + + 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 + } +} diff --git a/货架标准上位机/Views/AGVTaskView.xaml b/货架标准上位机/Views/AGVTaskView.xaml new file mode 100644 index 0000000..a8553d3 --- /dev/null +++ b/货架标准上位机/Views/AGVTaskView.xaml @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10条/页 + 20条/页 + 50条/页 + 100条/页 + 500条/页 + + + + + + + + + + + + + + +