You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

276 lines
7.8 KiB
C#

using Admin.Core.IService;
using Admin.Core.Model;
using Aucma.Scada.UI.Common;
using Aucma.Scada.UI.Page.AssemblyPlan;
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 IExecutePlanInfoServices _executePlanInfoServices;
private AppConfig appConfig = AppConfig.Instance;
public ObservableCollection<string> RadioOptions { get; set; }
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 ICommand _radioButtonCommand;
public ICommand RadioButtonCommand
{
get
{
if (_radioButtonCommand == null)
{
_radioButtonCommand = new RelayCommand<string>(
(selectedOption) =>
{
RadioButtonClicked(selectedOption);
}
);
}
return _radioButtonCommand;
}
}
private ObservableCollection<string> _configurations = new ObservableCollection<string>();
public ObservableCollection<string> Configurations
{
get => _configurations;
set => SetProperty(ref _configurations, value);
}
#endregion
#region 事件定义
/// <summary>
/// 生产计划下达
/// </summary>
public RelayCommand PlanInfoTransmitCommand { get; set; }
public RelayCommand<object> MouseClickCommand { get; set; }
public RelayCommand<object> CloseWindowCommand { get; set; }
public RelayCommand QueryCommand { get; set; }
public RelayCommand ResetCommand { get; set; }
public RelayCommand SearchCriteriaSetCommand { get; set; }
#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);
}
}
public async void RadioButtonClicked(string selectedOption)
{
List<ProductPlanInfo> planInfos =await _executePlanInfoServices.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 void Query()
{
init();
List<ProductPlanInfo> planInfos = 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 void PlanInfoTransmit()
{
bool result = 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();
}
}
}
}