using Admin.Core.IService; using Admin.Core.Service; using Aucma.Core.BoxFoam.Views; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Messaging; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows; namespace Aucma.Core.BoxFoam.ViewModels { /** * 发泡计划 * * */ public partial class FoamPlanPageViewModel : ObservableObject { protected readonly IBoxFoamPlanServices? _boxFoamPlanServices; public FoamPlanPageViewModel() { _boxFoamPlanServices = App.ServiceProvider.GetService(); WeakReferenceMessenger.Default.Register(this, Recive); Task.Run(() => { while (true) { InitData(); Thread.Sleep(3000); } }); } public void InitData() { try { Id.Clear(); MaterialCode.Clear(); MaterialName.Clear(); PlanAmount.Clear(); ComplateAmount.Clear(); DifferenceAmount.Clear(); var task = _boxFoamPlanServices.QueryAsync(x => x.ProductLineCode == "CX_02" && x.StationCode == "1005" && x.ShiftType == 1).Result; if (task == null) return; task.OrderBy(d => d.ObjId); foreach (var item in task) { Id.Add(item.ObjId); MaterialCode.Add(item.MaterialCode); MaterialName.Add(item.MaterialName); PlanAmount.Add(item.PlanAmount); ComplateAmount.Add(item.CompleteAmount); DifferenceAmount.Add(item.PlanAmount - item.CompleteAmount); } }catch(Exception ex) { Console.WriteLine($"刷新计划列表异常:{ex.Message}"); } } #region MyRegion private ObservableCollection _id = new ObservableCollection(); public ObservableCollection Id { get => _id; set => SetProperty(ref _id, value); } private ObservableCollection _materialCode = new ObservableCollection(); public ObservableCollection MaterialCode { get => _materialCode; set => SetProperty(ref _materialCode, value); } private ObservableCollection _materialName = new ObservableCollection(); public ObservableCollection MaterialName { get => _materialName; set => SetProperty(ref _materialName, value); } private ObservableCollection _planAmount = new ObservableCollection(); public ObservableCollection PlanAmount { get => _planAmount; set => SetProperty(ref _planAmount, value); } private ObservableCollection _complateAmount = new ObservableCollection(); public ObservableCollection ComplateAmount { get => _complateAmount; set => SetProperty(ref _complateAmount, value); } //difference private ObservableCollection _differenceAmount = new ObservableCollection(); public ObservableCollection DifferenceAmount { get => _differenceAmount; set => SetProperty(ref _differenceAmount, value); } #endregion [RelayCommand] public void AddPlan(string objId) { SplitPlanView plan = new SplitPlanView(objId); plan.Show(); } [RelayCommand] public async void ClearPlan(string objId) { MessageBoxResult msg = MessageBox.Show("确定要删除吗?", "系统提醒", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No); if (MessageBoxResult.Yes == msg) { int id = Id.ElementAt(int.Parse(objId)-1); _boxFoamPlanServices.DeleteByIdAsync(id).Wait(); InitData(); MessageBox.Show("执行计划删除成功", "系统信息"); } } private void Recive(object recipient, string message) { if (message == "RefreshTask") { ClearData(); } } public void ClearData() { Id.Clear(); MaterialCode.Clear(); MaterialName.Clear(); PlanAmount.Clear(); ComplateAmount.Clear(); DifferenceAmount.Clear(); } } }