using Aucma.Scada.Business; using Aucma.Scada.Model.domain; using Aucma.Scada.UI.Page.AssemblyPlan; using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; using HighWayIot.Config; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Windows; using System.Windows.Input; namespace Aucma.Scada.UI.viewModel.AssemblyPlan { public class PlanInfoEditViewModel : ViewModelBase { private AssemblyPlanBusiness assemblyPlanBusiness = AssemblyPlanBusiness.Instance; private AppConfig appConfig = AppConfig.Instance; public PlanInfoEditViewModel() { PlanInfoTransmitCommand = new RelayCommand(PlanInfoTransmit); MouseClickCommand = new RelayCommand(MouseClick); CloseWindowCommand = new RelayCommand(t => CloseWindow(t)); SearchCriteriaSetCommand = new RelayCommand(SearchCriteriaSet); QueryCommand = new RelayCommand(Query); ResetCommand = new RelayCommand(Reset); Search = "12"; Query(); } #region 参数定义 private string _search = string.Empty; public string Search { get { return _search; } set { _search = value; RaisePropertyChanged(nameof(Search)); } } /// /// 生产计划编号 /// private string _ProductPlanCode = string.Empty; public string ProductPlanCode { get { return _ProductPlanCode; } set { _ProductPlanCode = value; RaisePropertyChanged(nameof(ProductPlanCode)); } } /// /// 物料编号 /// private string _MaterialCode = string.Empty; public string MaterialCode { get { return _MaterialCode; } set { _MaterialCode = value; RaisePropertyChanged(nameof(MaterialCode)); } } /// /// 物料编号 /// private int _TransmitAmount = 0; public int TransmitAmount { get { return _TransmitAmount; } set { _TransmitAmount = value; RaisePropertyChanged(nameof(TransmitAmount)); } } private ProductPlanInfo selectedDataItem; public ProductPlanInfo SelectedDataItem { get { return selectedDataItem; } set { selectedDataItem = value; RaisePropertyChanged(nameof(SelectedDataItem)); } } /// /// 计划列表DataGrid /// private ObservableCollection planInfoDataGrid; public ObservableCollection PlanInfoDataGrid { get { return planInfoDataGrid; } set { planInfoDataGrid = value; RaisePropertyChanged(() => PlanInfoDataGrid); } } private ObservableCollection _configurations = new ObservableCollection(); public ObservableCollection Configurations { get { return _configurations; } set { _configurations = value; RaisePropertyChanged(nameof(Configurations)); } } private ICommand _radioButtonCommand; public ICommand RadioButtonCommand { get { if (_radioButtonCommand == null) { _radioButtonCommand = new RelayCommand( (selectedOption) => { RadioButtonClicked(selectedOption); } ); } return _radioButtonCommand; } } #endregion #region 事件定义 /// /// 生产计划下达 /// public RelayCommand PlanInfoTransmitCommand { get; set; } public RelayCommand MouseClickCommand { get; set; } public RelayCommand 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(); var searchItems = appConfig.searchItems; var split = searchItems.Trim().Split('%'); foreach (var item in split) { if (string.IsNullOrEmpty(item.Trim())) continue; Configurations.Add(item); } } public void RadioButtonClicked(string selectedOption) { List planInfos = assemblyPlanBusiness.GetProductPlanInfosByProductLineCode(); if (planInfos != null) { PlanInfoDataGrid = new ObservableCollection(); if (planInfos.Count > 0) { planInfos.ForEach( arg => { if (arg.materialName.Contains(selectedOption)) { PlanInfoDataGrid.Add(arg); } }); } } } /// /// 箱壳入库任务列表查询 /// public void Query() { init(); var models = assemblyPlanBusiness.GetProductPlanInfosByProductLineCode(); PlanInfoDataGrid = new ObservableCollection(); if (models != null) { models.ForEach( arg => { PlanInfoDataGrid.Add(arg); }); } } /// /// 重置 /// public void Reset() { init(); Search = string.Empty; this.Query(); } private void PlanInfoTransmit() { bool result = assemblyPlanBusiness.PlanTransmitByProductPlan(_ProductPlanCode, _TransmitAmount); if (result) { MessageBox.Show("执行计划维护成功"); } } public void MouseClick(object obj) { var info = SelectedDataItem as ProductPlanInfo; if (info != null) { //ProductPlanCode = info.planCode; //MaterialCode = info.materialName; QuantityIssuedWindow quantityIssuedWindow = new QuantityIssuedWindow(info); quantityIssuedWindow.ShowDialog(); } } /// /// 搜索条件设置 /// public void SearchCriteriaSet() { SearchCriteriaWindow searchCriteriaWindow = new SearchCriteriaWindow(); bool? dialogResult = searchCriteriaWindow.ShowDialog(); if (dialogResult == false) // 用户点击了“取消”按钮或关闭窗口 { init(); } } private void CloseWindow(object parameter) { var window = parameter as Window; if (window != null) { window.Close(); } } } }