diff --git a/Aucma.Core.Palletiz/Business/InstoreBusiness.cs b/Aucma.Core.Palletiz/Business/InstoreBusiness.cs index 9ceea115..9f319776 100644 --- a/Aucma.Core.Palletiz/Business/InstoreBusiness.cs +++ b/Aucma.Core.Palletiz/Business/InstoreBusiness.cs @@ -54,7 +54,14 @@ namespace Aucma.Core.Palletiz.Business /// public delegate void RefreshMsg(string msg); public static event RefreshMsg? RefreshMsgEvent; - + + + /// + ///入库时DataGrid添加一条DataGrid记录 + /// + public delegate void AddData(RecordInStore record); + public static event AddData? AddDataEvent; + #endregion @@ -177,6 +184,8 @@ namespace Aucma.Core.Palletiz.Business } _ = _recordInstoreServices.AddAsync(recordInstore).Result; + //刷新页面 + AddDataEvent?.Invoke(recordInstore); #endregion if (!result) @@ -267,7 +276,7 @@ namespace Aucma.Core.Palletiz.Business if (plcCon == null) { - Task.Delay(1000 * 5).Wait(); + Task.Delay(1000 * 3).Wait(); plcCon = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("InStoreAPlc")); if(plcCon == null) diff --git a/Aucma.Core.Palletiz/ViewModels/HandPalletizViewModel.cs b/Aucma.Core.Palletiz/ViewModels/HandPalletizViewModel.cs index 49058440..381dabac 100644 --- a/Aucma.Core.Palletiz/ViewModels/HandPalletizViewModel.cs +++ b/Aucma.Core.Palletiz/ViewModels/HandPalletizViewModel.cs @@ -97,14 +97,18 @@ namespace Aucma.Core.Palletiz.ViewModels [RelayCommand] public void Save(Window window) { - Console.WriteLine(Area); + if (Area == null) + { + MessageBox.Show("请先选择区域"); + return; + } if (string.IsNullOrEmpty(ProductCode)) { MessageBox.Show("请先选择产品型号"); return; } - HandSendEvent?.Invoke("A", productCode); + HandSendEvent?.Invoke(Area.Content.ToString(), productCode); MessageBox.Show("手动入库成功"); window.Close(); // 入库 diff --git a/Aucma.Core.Palletiz/ViewModels/IndexPageViewModel.cs b/Aucma.Core.Palletiz/ViewModels/IndexPageViewModel.cs index 48f294cf..78ec4a3f 100644 --- a/Aucma.Core.Palletiz/ViewModels/IndexPageViewModel.cs +++ b/Aucma.Core.Palletiz/ViewModels/IndexPageViewModel.cs @@ -8,6 +8,8 @@ using System.Collections.ObjectModel; using System.Linq; using Aucma.Core.Palletiz.Views; using CommunityToolkit.Mvvm.ComponentModel; +using System.Threading.Tasks; +using static Aucma.Core.Palletiz.ViewModels.StatisticsPageViewModel; /* * 成品分垛入库首页信息 @@ -24,6 +26,7 @@ namespace Aucma.Core.Palletiz.ViewModels new InStoreBusiness().Init(); SelectTypeViewModel.RefreshPageEvent += Init; + StatisticsPageViewModel.CountInstoreEvent += CountInstore; this.inStoreBusiness = App.ServiceProvider.GetService(); InStoreBusiness.RefreshMsgEvent += RefreshMsg; InStoreBusiness.RefreshProductInfoEvent += RefreshProductInfo; @@ -31,20 +34,26 @@ namespace Aucma.Core.Palletiz.ViewModels { Console.WriteLine($"{obj};设置"); BaseSpaceInfo space = inStoreBusiness.GetSpaceinfosById(obj); - if(space != null ) + if (space != null) { SelectType direct = new SelectType(space); direct.ShowDialog(); } - + }); this.Init(); - InStoreAmount = inStoreAmount + "19"; + InStoreTaskContent = new StatisticsPageView(); } + public void CountInstore(int count) + { + InStoreAmount = "入库数量:"; + InStoreAmount = inStoreAmount + count; + } + #region 参数定义 public string productSNCode = string.Empty; @@ -55,12 +64,12 @@ namespace Aucma.Core.Palletiz.ViewModels } - public string productModel = string.Empty; + public string productModel = string.Empty; public string ProductModel { get { return this.productModel; } set => SetProperty(ref productModel, value); - + } public string orderCode = string.Empty; @@ -69,7 +78,7 @@ namespace Aucma.Core.Palletiz.ViewModels get { return this.orderCode; } set => SetProperty(ref orderCode, value); - + } public string productScanTime = string.Empty; @@ -77,7 +86,7 @@ namespace Aucma.Core.Palletiz.ViewModels { get { return this.productScanTime; } - set => SetProperty(ref productScanTime, value); + set => SetProperty(ref productScanTime, value); } public string msg = string.Empty; @@ -85,7 +94,7 @@ namespace Aucma.Core.Palletiz.ViewModels { get { return this.msg; } set => SetProperty(ref msg, value); - + } public string inStoreAmount = "入库数量:"; public string InStoreAmount @@ -93,7 +102,7 @@ namespace Aucma.Core.Palletiz.ViewModels get { return this.inStoreAmount; } set => SetProperty(ref inStoreAmount, value); - + } public System.Windows.Controls.UserControl _content; @@ -104,7 +113,7 @@ namespace Aucma.Core.Palletiz.ViewModels set => SetProperty(ref _content, value); - + } /// @@ -116,7 +125,7 @@ namespace Aucma.Core.Palletiz.ViewModels { get { return _areaA_SpaceInfo; } set => SetProperty(ref _areaA_SpaceInfo, value); - + } /// @@ -128,7 +137,7 @@ namespace Aucma.Core.Palletiz.ViewModels { get { return _areaB_SpaceInfo; } set => SetProperty(ref _areaB_SpaceInfo, value); - + } #endregion @@ -160,46 +169,55 @@ namespace Aucma.Core.Palletiz.ViewModels OrderCode = orderCode; ProductScanTime = DateTime.Now.ToString(); } - private void Init() + private async Task Init() { - - var info = inStoreBusiness.GetBaseSpaceinfos("A"); - info = info.OrderByDescending(x => x.ObjId).ToList(); - if (info != null) + await Task.Run(() => { - App.Current.Dispatcher.BeginInvoke((Action)(() => + var info = inStoreBusiness.GetBaseSpaceinfos("A"); + info = info.OrderByDescending(x => x.ObjId).ToList(); + if (info != null) { - if (spaceItems.Count > 0) + App.Current.Dispatcher.BeginInvoke((Action)(() => { - spaceItems.Clear(); - } - foreach (var item in info) + if (spaceItems.Count > 0) + { + spaceItems.Clear(); + } + foreach (var item in info) + { + spaceItems.Add(item); + } + AreaA_SpaceInfo = spaceItems; + })); + } + + var info2 = inStoreBusiness.GetBaseSpaceinfos("A"); + info2 = info2.OrderBy(x => x.ObjId).ToList(); + if (info2 != null) + { + App.Current.Dispatcher.BeginInvoke((Action)(() => { - spaceItems.Add(item); - } - AreaA_SpaceInfo = spaceItems; - })); - } - - - //var info2 = inStoreBusiness.GetBaseSpaceinfos("A"); - //info2 = info2.OrderBy(x => x.ObjId).ToList(); - //if (info2 != null) - //{ - // App.Current.Dispatcher.BeginInvoke((Action)(() => - // { - // if (spaceItemsB.Count > 0) - // { - // spaceItemsB.Clear(); - // } - // foreach (var item in info2) - // { - // spaceItemsB.Add(item); - // } - // AreaB_SpaceInfo = spaceItemsB; - // })); - //} + if (spaceItemsB.Count > 0) + { + spaceItemsB.Clear(); + } + foreach (var item in info2) + { + spaceItemsB.Add(item); + } + AreaB_SpaceInfo = spaceItemsB; + })); + } + + }); + + } + + + + } } + diff --git a/Aucma.Core.Palletiz/ViewModels/PalletizPageViewModel.cs b/Aucma.Core.Palletiz/ViewModels/PalletizPageViewModel.cs index 250eb1e5..d4b6d6b5 100644 --- a/Aucma.Core.Palletiz/ViewModels/PalletizPageViewModel.cs +++ b/Aucma.Core.Palletiz/ViewModels/PalletizPageViewModel.cs @@ -20,7 +20,7 @@ namespace Aucma.Core.Palletiz.ViewModels public PalletizPageViewModel() { _baseSpaceInfoServices = App.ServiceProvider.GetService(); LoadDataGrid(); - SelectTypeViewModel.RefreshPageEvent += LoadDataGrid; + // SelectTypeViewModel.RefreshPageEvent += LoadDataGrid; } public void LoadDataGrid() diff --git a/Aucma.Core.Palletiz/ViewModels/SelectTypeViewModel.cs b/Aucma.Core.Palletiz/ViewModels/SelectTypeViewModel.cs index d4257d3c..651afb9f 100644 --- a/Aucma.Core.Palletiz/ViewModels/SelectTypeViewModel.cs +++ b/Aucma.Core.Palletiz/ViewModels/SelectTypeViewModel.cs @@ -33,7 +33,7 @@ namespace Aucma.Core.Palletiz.ViewModels /// 刷新货道页面 /// /// - public delegate void RefreshPage(); + public delegate Task RefreshPage(); public static event RefreshPage RefreshPageEvent; private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(BaseSpaceInfoServices)); diff --git a/Aucma.Core.Palletiz/ViewModels/StatisticsPageViewModel.cs b/Aucma.Core.Palletiz/ViewModels/StatisticsPageViewModel.cs index 69cfb168..08348c86 100644 --- a/Aucma.Core.Palletiz/ViewModels/StatisticsPageViewModel.cs +++ b/Aucma.Core.Palletiz/ViewModels/StatisticsPageViewModel.cs @@ -1,6 +1,7 @@ using Admin.Core.Common; using Admin.Core.IService; using Admin.Core.Model; +using Aucma.Core.Palletiz.Business; using Aucma.Core.Palletiz.Models; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; @@ -13,15 +14,28 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; +using System.Windows.Documents; namespace Aucma.Core.Palletiz.ViewModels { public partial class StatisticsPageViewModel : ObservableObject { - // private static readonly Lazy lazy = new Lazy(() => new StatisticsPageViewModel()); - // public static StatisticsPageViewModel Instance => lazy.Value; - public StatisticsPageViewModel() { + + + /// + /// 入库数量统计 + /// + public delegate void CountInstore(int count); + public static event CountInstore? CountInstoreEvent; + + + + // private static readonly Lazy lazy = new Lazy(() => new StatisticsPageViewModel()); + // public static StatisticsPageViewModel Instance => lazy.Value; + public StatisticsPageViewModel() + { MainWindowViewModel.RefreshInfoEvent += LoadData; + InStoreBusiness.AddDataEvent += AddData; LoadData(); } private readonly IRecordInStoreServices? _recordInstoreServices = App.ServiceProvider.GetService(); @@ -30,36 +44,46 @@ namespace Aucma.Core.Palletiz.ViewModels public string storeCodeB = Appsettings.app("StoreInfo", "PalletizStoreCodeB"); - + + /// + /// 入库时DataGrid添加一条记录 + /// + /// + public void AddData(RecordInStore record) + { + MaterialDataGrid.Add(record); + CountInstoreEvent?.Invoke(MaterialDataGrid.Count); + } + #region 加载DataGrid数据 - private async Task LoadData() + private async Task LoadData() { + await Task.Run(() => + { + try + { - await Task.Run(() => - { - try - { + List list = _recordInstoreServices.QueryAsync(x => (x.StoreCode == storeCodeA || x.StoreCode == storeCodeB) && x.InStoreTime >= DateTime.Today).Result; + if (list != null && list.Count > 0) + { + CountInstoreEvent?.Invoke(list.Count); + list.OrderByDescending(x => x.InStoreTime); + foreach (RecordInStore record in list) + { + App.Current.Dispatcher.Invoke(() => + { + MaterialDataGrid.Add(record); + }); + } + } + } + catch (Exception ex) + { + Console.WriteLine("" + ex.Message.ToString()); - List list = _recordInstoreServices.QueryAsync(x => (x.StoreCode == storeCodeA || x.StoreCode == storeCodeB) && x.InStoreTime >= DateTime.Today).Result; - if (list != null && list.Count > 0) - { - list.OrderByDescending(x => x.InStoreTime); - foreach (RecordInStore record in list) - { - App.Current.Dispatcher.Invoke(() => - { - MaterialDataGrid.Add(record); - }); - } - } - } - catch (Exception ex) - { - Console.WriteLine("" + ex.Message.ToString()); + } + }); - } - }); - //MaterialDataGrid.Add(new MaterialComplateInfo() { No = 1, ProductPlanCode = "8659452123",MaterialCode = "8659452123", MaterialName = "SC-AUCMA-农夫山泉,SC", PlanAmount = 50, CompleteAmount = 10 }); } @@ -93,14 +117,14 @@ namespace Aucma.Core.Palletiz.ViewModels List list = _recordInstoreServices.QueryAsync(x => (x.StoreCode == storeCodeA || x.StoreCode == storeCodeB) && x.BarCodeCode.Contains(result)).Result; if (list != null && list.Count > 0) { - MaterialDataGrid.Clear(); - foreach (RecordInStore record in list) + App.Current.Dispatcher.Invoke(() => { - App.Current.Dispatcher.Invoke(() => + MaterialDataGrid.Clear(); + foreach (RecordInStore record in list) { MaterialDataGrid.Add(record); - }); - } + } + }); } }); } diff --git a/Aucma.Core.Palletiz/Views/StatisticsPageView.xaml b/Aucma.Core.Palletiz/Views/StatisticsPageView.xaml index 518741da..4c377bb6 100644 --- a/Aucma.Core.Palletiz/Views/StatisticsPageView.xaml +++ b/Aucma.Core.Palletiz/Views/StatisticsPageView.xaml @@ -108,12 +108,20 @@ + - + + + + + + + + diff --git a/Aucma.Core.Palletiz/Views/StatisticsPageView.xaml.cs b/Aucma.Core.Palletiz/Views/StatisticsPageView.xaml.cs index 5eae4837..9b6d4ddf 100644 --- a/Aucma.Core.Palletiz/Views/StatisticsPageView.xaml.cs +++ b/Aucma.Core.Palletiz/Views/StatisticsPageView.xaml.cs @@ -27,5 +27,9 @@ namespace Aucma.Core.Palletiz.Views this.DataContext = new StatisticsPageViewModel(); } + private void DataGrid_LoadingRow(object sender, DataGridRowEventArgs e) + { + e.Row.Header = (e.Row.GetIndex() + 1).ToString(); + } } }