using Admin.Core.IService; using Admin.Core.Service; using Aucma.Core.Palletiz.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.Tasks; using System.Windows; namespace Aucma.Core.Palletiz.ViewModels { /** * 发泡计划 * * */ public partial class FoamPlanPageViewModel : ObservableObject { protected readonly IBoxFoamPlanServices? _boxFoamPlanServices; public FoamPlanPageViewModel() { _boxFoamPlanServices = App.ServiceProvider.GetService(); WeakReferenceMessenger.Default.Register(this, Recive); InitData(); } public async void InitData() { var task =await _boxFoamPlanServices.QueryAsync(); 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); } } #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); } #endregion [RelayCommand] public void AddPlan(string objId) { SplitPlanView plan = new SplitPlanView(objId); plan.Show(); } [RelayCommand] public async void ClearPlan(string objId) { int id=int.Parse(objId); var obj=await _boxFoamPlanServices.FirstAsync(d=>d.ObjId== id); obj.MaterialCode = ""; obj.MaterialName = ""; obj.PlanAmount = 0; var result= await _boxFoamPlanServices.UpdateAsync(obj); if (result) { ClearData(); MessageBox.Show("清除计划成功!", "系统提醒"); } else { MessageBox.Show("清除计划失败!", "系统提醒"); } } private void Recive(object recipient, string message) { if (message == "RefreshTask") { ClearData(); } } public void ClearData() { Id.Clear(); MaterialCode.Clear(); MaterialName.Clear(); PlanAmount.Clear(); InitData(); } } }