using Admin.Core.IService; using Admin.Core.Model; using Aucma.Scada.UI.Common; using Aucma.Scada.UI.Page.AssemblyPlan; using Aucma.Scada.UI; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using SqlSugar; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Windows; using System.Windows.Input; namespace Aucma.Scada.UI.ViewModel.AssemblyPlan { public partial class PlanInfoEditViewModel : ObservableObject { private AssemblyPlanBusiness assemblyPlanBusiness = new AssemblyPlanBusiness();// AssemblyPlanBusiness.Instance; public ObservableCollection<string> RadioOptions { get; set; } private AppConfig appConfig = new AppConfig();//AppConfig.Instance; public PlanInfoEditViewModel() { //RadioOptions = new ObservableCollection<string> //{ // "Option 1", // "Option 2", // "Option 3", // "Option 4", // "Option 5", // "Option 6", // "Option 7", // "Option 8", // "Option 9", // "Option 10" //}; init(); Query(); } #region 参数定义 private string _search = string.Empty; public string Search { get => _search; set => SetProperty(ref _search, value); } /// <summary> /// 下拉框 /// </summary> public string _materialTypeCombox; public string MaterialTypeCombox { get => _materialTypeCombox; set => SetProperty(ref _materialTypeCombox, value); } /// <summary> /// 生产计划编号 /// </summary> private string _ProductPlanCode = string.Empty; public string ProductPlanCode { get => _ProductPlanCode; set => SetProperty(ref _ProductPlanCode, value); } /// <summary> /// 物料编号 /// </summary> private string _MaterialCode = string.Empty; public string MaterialCode { get => _MaterialCode; set => SetProperty(ref _MaterialCode, value); } /// <summary> /// 物料编号 /// </summary> private int _TransmitAmount = 0; public int TransmitAmount { get => _TransmitAmount; set => SetProperty(ref _TransmitAmount, value); } private ProductPlanInfo selectedDataItem; public ProductPlanInfo SelectedDataItem { get => selectedDataItem; set => SetProperty(ref selectedDataItem, value); } /// <summary> /// 计划列表DataGrid /// </summary> private ObservableCollection<ProductPlanInfo> planInfoDataGrid; public ObservableCollection<ProductPlanInfo> PlanInfoDataGrid { get => planInfoDataGrid; set => SetProperty(ref planInfoDataGrid, value); } private ObservableCollection<string> _configurations = new ObservableCollection<string>(); public ObservableCollection<string> Configurations { get => _configurations; set => SetProperty(ref _configurations, value); } #endregion private void init() { Configurations = new ObservableCollection<string>(); var searchItems = appConfig.searchItems; var split = searchItems.Trim().Split('%'); foreach (var item in split) { if (string.IsNullOrEmpty(item.Trim())) continue; Configurations.Add(item); } } [RelayCommand] public async void RadioButtonClicked(string selectedOption) { List<ProductPlanInfo> planInfos =await assemblyPlanBusiness.GetProductPlanInfosByProductLineCode(_search); if (planInfos != null) { PlanInfoDataGrid = new ObservableCollection<ProductPlanInfo>(); if (planInfos.Count > 0) { planInfos.ForEach( arg => { if (arg.MaterialName.Contains(selectedOption)) { PlanInfoDataGrid.Add(arg); } }); } } } /// <summary> /// 箱壳入库任务列表查询 /// </summary> [RelayCommand] public async void Query() { init(); List<ProductPlanInfo> planInfos =await assemblyPlanBusiness.GetProductPlanInfosByProductLineCode(_search); PlanInfoDataGrid = new ObservableCollection<ProductPlanInfo>(); if (planInfos != null) { planInfos.ForEach( arg => { PlanInfoDataGrid.Add(arg); }); } } /// <summary> /// 重置 /// </summary> [RelayCommand] public void Reset() { init(); Search = string.Empty; MaterialTypeCombox = string.Empty; this.Query(); } /// <summary> /// 搜索条件设置 /// </summary> [RelayCommand] public void SearchCriteriaSet() { SearchCriteriaWindow searchCriteriaWindow = new SearchCriteriaWindow(); bool? dialogResult = searchCriteriaWindow.ShowDialog(); if (dialogResult == false) // 用户点击了“取消”按钮或关闭窗口 { init(); } } [RelayCommand] private async void PlanInfoTransmit() { bool result =await assemblyPlanBusiness.PlanTransmitByProductPlan(_ProductPlanCode, _TransmitAmount); if (result) { MessageBox.Show("执行计划维护成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly); } } [RelayCommand] public void MouseClick(object obj) { //TransmitAmount = 0; var info = SelectedDataItem as ProductPlanInfo; if (info != null) { //ProductPlanCode = info.planCode; //MaterialCode = info.materialName; QuantityIssuedWindow quantityIssuedWindow = new QuantityIssuedWindow(info); quantityIssuedWindow.ShowDialog(); } } [RelayCommand] private void CloseWindow(object parameter) { var window = parameter as Window; if (window != null) { window.Close(); } } } }