using System; using CommunityToolkit.Mvvm.Input; using Aucma.Core.Palletiz.Business; using Admin.Core.Model; using Aucma.Core.Palletiz.Models; using Microsoft.Extensions.DependencyInjection; 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; /* * 成品分垛入库首页信息 * 2024-02-28 */ namespace Aucma.Core.Palletiz.ViewModels { internal class IndexControlViewModel : ObservableObject { private InStoreBusiness inStoreBusiness; public IndexControlViewModel() { new InStoreBusiness().Init(); SelectTypeViewModel.RefreshPageEvent += Init; StatisticsPageViewModel.CountInstoreEvent += CountInstore; this.inStoreBusiness = App.ServiceProvider.GetService(); InStoreBusiness.RefreshMsgEvent += RefreshMsg; InStoreBusiness.RefreshProductInfoEvent += RefreshProductInfo; UpdateInStoreFlagCommand = new RelayCommand(obj => { Console.WriteLine($"{obj};设置"); BaseSpaceInfo space = inStoreBusiness.GetSpaceinfosById(obj); if (space != null) { SelectType direct = new SelectType(space); direct.ShowDialog(); } }); this.Init(); InStoreTaskContent = new StatisticsPageView(); } public void CountInstore(int count) { InStoreAmount = "入库数量:"; InStoreAmount = inStoreAmount + count; } #region 参数定义 public string productSNCode = string.Empty; public string ProductSNCode { get { return this.productSNCode; } set => SetProperty(ref productSNCode, value); } public string productModel = string.Empty; public string ProductModel { get { return this.productModel; } set => SetProperty(ref productModel, value); } public string orderCode = string.Empty; public string OrderCode { get { return this.orderCode; } set => SetProperty(ref orderCode, value); } public string productScanTime = string.Empty; public string ProductScanTime { get { return this.productScanTime; } set => SetProperty(ref productScanTime, value); } public string msg = string.Empty; public string Msg { get { return this.msg; } set => SetProperty(ref msg, value); } public string inStoreAmount = "入库数量:"; public string InStoreAmount { get { return this.inStoreAmount; } set => SetProperty(ref inStoreAmount, value); } public System.Windows.Controls.UserControl _content; public System.Windows.Controls.UserControl InStoreTaskContent { get { return this._content; } set => SetProperty(ref _content, value); } /// /// A区域货道集合 /// public ObservableCollection _areaA_SpaceInfo; public ObservableCollection AreaA_SpaceInfo { get { return _areaA_SpaceInfo; } set => SetProperty(ref _areaA_SpaceInfo, value); } /// /// B区域货道集合 /// public ObservableCollection _areaB_SpaceInfo; public ObservableCollection AreaB_SpaceInfo { get { return _areaB_SpaceInfo; } set => SetProperty(ref _areaB_SpaceInfo, value); } #endregion public RelayCommand UpdateInStoreFlagCommand { get; set; } private ObservableCollection spaceItems = new ObservableCollection(); private ObservableCollection spaceItemsB = new ObservableCollection(); /// /// 刷新界面提示信息 /// /// public void RefreshMsg(string msg) { Msg = msg; } /// /// 刷新界面扫码信息 /// /// /// /// public void RefreshProductInfo(string productCode, string productModel, string orderCode) { ProductSNCode = productCode; ProductModel = productModel; OrderCode = orderCode; ProductScanTime = DateTime.Now.ToString(); } private async Task Init() { await Task.Run(() => { var info = inStoreBusiness.GetBaseSpaceinfos("A"); info = info.OrderByDescending(x => x.ObjId).ToList(); if (info != null) { App.Current.Dispatcher.BeginInvoke((Action)(() => { 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)(() => { if (spaceItemsB.Count > 0) { spaceItemsB.Clear(); } foreach (var item in info2) { spaceItemsB.Add(item); } AreaB_SpaceInfo = spaceItemsB; })); } }); } } }