using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.Toolkit.Mvvm.ComponentModel; using System.Collections.Concurrent; using System.Collections.ObjectModel; using System.Windows; using BPASmartClient.Helper; using Microsoft.Toolkit.Mvvm.Input; using BPASmartClient.JXJFoodBigStation.Model; using BPASmartClient.JXJFoodBigStation.View; using BPASmartClient.CustomResource.UserControls; using BPASmartClient.CustomResource.UserControls.Model; using BPASmartClient.CustomResource.UserControls.Enum; using System.Windows.Media; using BPASmartClient.CustomResource.UserControls.MessageShow; using BPASmartClient.CustomResource.Pages.Model; using BPASmartClient.JXJFoodBigStation.Model.Siemens; namespace BPASmartClient.JXJFoodBigStation.ViewModel { public class RecipeReceiveViewModel : ObservableObject { public ObservableCollection RawMaterials { get; set; } = new ObservableCollection(); public RecipeReceiveViewModel() { IsUseLocalRecipe = GVL_BigStation.IsUseLocalRecipe; Json.Read(); Recipes = Json.Data.Recipes; DetailsCommand = new RelayCommand((o) => { if (o != null && o is string num) { ActionManage.GetInstance.CancelRegister("RecipeInfo"); RecipeInfosView nrv = new RecipeInfosView(); var res = Json.Data.Recipes.FirstOrDefault(p => p.RecipeCode == num); ActionManage.GetInstance.Send("RecipeInfo", res); nrv.Show(); MessageNotify.GetInstance.ShowUserLog($"编辑配方,配方名称:【{res.RecipeName}】"); } }); NewRecipe = new RelayCommand(() => { RecipeInfosView nrv = new RecipeInfosView(); nrv.ShowDialog(); }); //RefreshRecipe = new RelayCommand(() => //{ // foreach (var item in ProcessControl.GetInstance.RawMaterialsInfo) // { // RawMaterialNames.Add(item.RawMaterialName); // } // foreach (var item in Json.Data.Recipes) // { // foreach (var tep in item.RawMaterial) // { // if (RawMaterialNames.Contains(tep.RawMaterialName)) // { // int index = Array.FindIndex(ProcessControl.GetInstance.RawMaterialsInfo.ToArray(), p => p.RawMaterialName == tep.RawMaterialName); // tep.RawMaterialLocation = ProcessControl.GetInstance.RawMaterialsInfo.ElementAt(index).RawMaterialLocation; // } // } // } //}); //模拟配方 //NewSimulateRecipe = new RelayCommand(() => //{ // RawMaterials.Clear(); // string recipeName = "配方" + (Json.Data.Recipes.Count + 1) + ""; //go: // string recipeCode = new Random().Next(10000, 99999).ToString(); // foreach (var item in Recipes) // { // if (item.RecipeCode == recipeCode) // { // goto go; // } // } // int trayCode = new Random().Next(1,6); // for (int i = 1; i < 13; i++) // { // int a = new Random().Next(1, 5); // if (a == 3) // { // a = 1; // } // RawMaterials.Add(new RawMaterialModel() // { // RawMaterialWeight = new Random().Next(10, 1000), // RawMaterialBarrelNum = a, // RawMaterialLocation = i, // }); // } // Json.Data.Recipes.Add(new RecipeModel() // { // RecipeName = recipeName, // RecipeCode = recipeCode, // TrayCode = trayCode, // RawMaterial = RawMaterials, // }); // Json.Save(); //}); ClearAllRecipe = new RelayCommand(() => { if (!MessageNotify.GetInstance.ShowDialog($"请确认,是否删除所有本地配方?",DialogType.Warning)) { return; } Json.Data.Recipes.Clear(); Json.Data.SelectedRecipes.Clear(); Json.Save(); NoticeDemoViewModel.OpenMsg(EnumPromptType.Success, App.MainWindow, "成功", $"本地配方已全部删除!"); MessageNotify.GetInstance.ShowUserLog($"手动清除所有配方。"); }); RemoveCommand = new RelayCommand((recipeCode) => { if (!MessageNotify.GetInstance.ShowDialog($"请确认,是否删除配方【{recipeCode}】?",DialogType.Warning)) { return; } var res = Recipes.FirstOrDefault(p => p.RecipeCode == recipeCode); if (res != null) { Recipes.Remove(res); Json.Save(); NoticeDemoViewModel.OpenMsg(EnumPromptType.Success, App.MainWindow, "成功", $"配方删除完成"); MessageNotify.GetInstance.ShowUserLog($"手动删除【{res.RecipeName}】配方,编号:【{recipeCode}】,"); } }); } public RelayCommand DetailsCommand { get; set; } // public RelayCommand NewSimulateRecipe { get; set; } public RelayCommand ClearAllRecipe { get; set; } public RelayCommand NewRecipe { get; set; } public RelayCommand RefreshRecipe { get; set; } public bool IsUseLocalRecipe { get { return _isUseLocalRecipe; } set { _isUseLocalRecipe = value; OnPropertyChanged(); } } public bool _isUseLocalRecipe { get; set; } public RelayCommand RemoveCommand { get; set; } public ObservableCollection Recipes { get; set; } = new ObservableCollection(); public ObservableCollection RawMaterialNames { get; set; } = new ObservableCollection(); } }