| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337 | 
							- using Aitex.Core.Common.DeviceData;
 
- using Caliburn.Micro;
 
- using Caliburn.Micro.Core;
 
- using MECF.Framework.Common.DataCenter;
 
- using MECF.Framework.Common.OperationCenter;
 
- using MECF.Framework.Common.RecipeCenter;
 
- using MECF.Framework.UI.Client.CenterViews.Configs.SystemConfig;
 
- using MECF.Framework.UI.Client.CenterViews.Dialogs;
 
- using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;
 
- using MECF.Framework.UI.Core.Control;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Collections.ObjectModel;
 
- using System.Linq;
 
- using System.Windows;
 
- using System.Windows.Controls;
 
- using FurnaceUI.Models;
 
- using RecipeEditorLib.RecipeModel.Params;
 
- using MECF.Framework.Common.Utilities;
 
- namespace FurnaceUI.Views.Editors
 
- {
 
-     public class RecipeMFCSettingViewModel : FurnaceUIViewModelBase
 
-     {
 
-         public Dictionary<string, bool> ExternalOutSets { get; set; } = new Dictionary<string, bool>();
 
-         public ObservableCollection<MFCData> MFCSets { get; set; }
 
-         //public MFMValue MFMSets { get; set; } = new MFMValue();
 
-         public bool IsSave { get; set; } = false;
 
-         private Visibility _gridMFCVisibility = Visibility.Hidden;
 
-         public Visibility GridMFCVisibility
 
-         {
 
-             get => _gridMFCVisibility;
 
-             set
 
-             {
 
-                 _gridMFCVisibility = value;
 
-                 NotifyOfPropertyChange("GridMFCVisibility");
 
-             }
 
-         }
 
-         private string _Value;
 
-         public string Value
 
-         {
 
-             get => _Value;
 
-             set
 
-             {
 
-                 _Value = value;
 
-                 NotifyOfPropertyChange("Value");
 
-             }
 
-         }
 
-         public Dictionary<string, ObservableCollection<RecipeTemplateColumnBase>> _recipeTemplate;
 
-         public Dictionary<string, ObservableCollection<RecipeTemplateColumnBase>> RecipeTemplate
 
-         {
 
-             get => _recipeTemplate;
 
-             set
 
-             {
 
-                 _recipeTemplate = value;
 
-                 MFCTemplateColumn = RecipeTemplate["MFC"];
 
-                 int index = 1;
 
-                 //foreach (var item in MFCTemplateColumn)
 
-                 //{
 
-                 //    var isInstalled = QueryDataClient.Instance.Service.GetConfig($"PM1.MFC.{item.ModuleName}.IsMFCInstalled");
 
-                 //    if (!(bool)isInstalled) continue;
 
-                 //    MFCDataList.Add(new MFCData()
 
-                 //    {
 
-                 //        ScaleValue= SystemConfigProvider.Instance.GetValueByName($"PM1.MFC.{item.ModuleName}.N2Scale"),
 
-                 //        No = index,
 
-                 //        ControlName = item.ModuleName,
 
-                 //        SetValueParam =new DoubleParam() { Name = "SetValue", Value = item.Value.ToString() },
 
-                 //        SetUnit = MFCSets[item.ControlName].SetUnit,
 
-                 //        Rampng = MFCSets[item.ControlName].Rampng,
 
-                 //        RampngUnit = MFCSets[item.ControlName].RampngUnit,
 
-                 //        AlarmValue = MFCSets[item.ControlName].AlarmValue == null ? "None" : MFCSets[item.ControlName].AlarmValue,
 
-                 //        DisplayName = SystemConfigProvider.Instance.GetValueByName($"PM1.MFC.{item.ModuleName}.GasName"),
 
-                 //        Unit = SystemConfigProvider.Instance.GetValueByName($"PM1.MFC.{item.ModuleName}.FlowUnit"),
 
-                 //        MaxValue = MFCSets[item.ControlName].MaxValue, //SystemConfigProvider.Instance.GetValueByName($"PM1.MFC.{item.ModuleName}.N2Scale"),
 
-                 //        MinValue = MFCSets[item.ControlName].MinValue, //SystemConfigProvider.Instance.GetValueByName($"PM1.MFC.{item.ModuleName}.PhyScale"),
 
-                 //        IsCheck = MFCSets[item.ControlName].IsCheck,
 
-                 //        IsEnable = IsEnable
 
-                 //    }); ;
 
-                 //    index++;
 
-                 //}
 
-                 NotifyOfPropertyChange("RecipeTemplate");
 
-             }
 
-         }
 
-         private ObservableCollection<RecipeTemplateColumnBase> _mFCTemplateColumn;
 
-         public ObservableCollection<RecipeTemplateColumnBase> MFCTemplateColumn
 
-         {
 
-             get => _mFCTemplateColumn;
 
-             set
 
-             {
 
-                 _mFCTemplateColumn = value;
 
-                 NotifyOfPropertyChange("MFCTemplateColumn");
 
-             }
 
-         }
 
-         public bool IsEnable => CGlobal.RecipeProcessEditViewEnable;//是否是View模式
 
-         public string RecipeType { get; set; }
 
-         public RecipeMFCSettingViewModel()
 
-         {
 
-         }
 
-         private ObservableCollection<MFCData> oldMFCData = new ObservableCollection<MFCData>();
 
-         protected override void OnViewLoaded(object view)
 
-         {
 
-             base.OnViewLoaded(view);
 
-             RefreshUpdate();
 
-             oldMFCData.Clear();
 
-             MFCSets.ToList().ForEach(x => oldMFCData.Add((MFCData)CloneUtil.CloneObject(x)));
 
-         }
 
-         private string ShowNumberKeyboard(Control control, string defaultValue)
 
-         {
 
-             NumberKeyboard numberKeyboard = new NumberKeyboard("", defaultValue);
 
-             var point = control.PointFromScreen(new Point(0, 0));
 
-             double wx = SystemParameters.WorkArea.Width;
 
-             double hy = SystemParameters.WorkArea.Height;
 
-             if (-point.Y + control.ActualHeight + 5 + numberKeyboard.Height < hy)
 
-             {
 
-                 numberKeyboard.Top = -point.Y + control.ActualHeight + 5;
 
-             }
 
-             else
 
-             {
 
-                 numberKeyboard.Top = -point.Y - numberKeyboard.Height - 5;
 
-             }
 
-             if (-point.X + numberKeyboard.Width < wx)
 
-             {
 
-                 numberKeyboard.Left = -point.X;
 
-             }
 
-             else
 
-             {
 
-                 numberKeyboard.Left = -point.X - (numberKeyboard.Width - control.ActualWidth);
 
-             }
 
-             if ((bool)numberKeyboard.ShowDialog())
 
-                 return numberKeyboard.ValueString;
 
-             else
 
-                 return "Cancel";
 
-         }
 
-         public void TextValueChanged(object senderName, object sender, object typeName)
 
-         {
 
-             var controlName = (string)senderName;
 
-             var tempMFCTemplateColumn = MFCTemplateColumn.Where(x => x.ModuleName == controlName).FirstOrDefault();
 
-             if (tempMFCTemplateColumn != null)
 
-             {
 
-                 switch (typeName.ToString())
 
-                 {
 
-                     case "Value":
 
-                         string strRetValue = (sender as TextBox).Text;
 
-                         if (strRetValue != "Cancel")
 
-                         {
 
-                             if (MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault().SetValue.Value != strRetValue)
 
-                             {
 
-                                 //MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault().SetValue.SetValue(strRetValue);
 
-                             }
 
-                         }
 
-                         break;
 
-                     case "Rampng":
 
-                         strRetValue = (sender as TextBox).Text;
 
-                         if (strRetValue != "Cancel")
 
-                         {
 
-                             if (MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault().Rampng.Value != strRetValue)
 
-                             {
 
-                                 // MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault().Rampng.SetValue(strRetValue);
 
-                             }
 
-                         }
 
-                         break;
 
-                     //case "AlarmValue":
 
-                     //    RecipeGASSettingMFCAlarmViewModel view = new RecipeGASSettingMFCAlarmViewModel(MFCDataList.Where(x => x.ControlName == controlName).FirstOrDefault().AlarmValue.ToString());
 
-                     //    WindowManager wm = IoC.Get<IWindowManager>() as WindowManager;
 
-                     //    if (!(bool)wm.ShowDialogWithTitle(view, null, "Select Flow Alarm Table")) break;
 
-                     //    MFCDataList.Where(x => x.ControlName == controlName).FirstOrDefault().AlarmValue = view.CurrentValue;
 
-                     //    break;
 
-                     case "MaxValue":
 
-                         strRetValue = (sender as TextBox).Text;
 
-                         if (strRetValue != "Cancel")
 
-                         {
 
-                             int max = 0;
 
-                             int.TryParse(strRetValue, out max);
 
-                             //MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault().MaxValue.SetValue(max.ToString("F3"));
 
-                         }
 
-                         return;
 
-                     case "MinValue":
 
-                         strRetValue = (sender as TextBox).Text;
 
-                         if (strRetValue != "Cancel")
 
-                         {
 
-                             double min = 0;
 
-                             double.TryParse(strRetValue, out min);
 
-                             // MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault().MinValue.SetValue(min.ToString("F3"));
 
-                         }
 
-                         return;
 
-                     default:
 
-                         break;
 
-                 }
 
-                 var mfcData = MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault();
 
-                 if (mfcData != null)
 
-                 {
 
-                     InvokeClient.Instance.Service.DoOperation($"PM1.{controlName}.SetMfcVirtualValue", $"{mfcData.SetValue.Value};{mfcData.Rampng.Value};{mfcData.AlarmValue}");
 
-                 }
 
-                 NotifyOfPropertyChange("MFCTemplateColumn");
 
-             }
 
-         }
 
-         public void MFCButtonClickCmd(object senderName, object sender, object typeName)
 
-         {
 
-             var controlName = (string)senderName;
 
-             var tempMFCTemplateColumn = MFCTemplateColumn.Where(x => x.ModuleName == controlName).FirstOrDefault();
 
-             if (tempMFCTemplateColumn != null)
 
-             {
 
-                 MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault().IsCheck.SetValue((!(MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault().IsCheck.Value)));
 
-             }
 
-         }
 
-         public void MFCShowVauleCmd(object senderName, object sender, object maxValue)
 
-         {
 
-             var windowManager = IoC.Get<IWindowManager>();
 
-             var controlName = (string)senderName;
 
-             var control = (Button)sender;
 
-             RecipeFlowSettingViewModel recipeFlowSettingViewModel = new RecipeFlowSettingViewModel();
 
-             recipeFlowSettingViewModel.RecipeType = RecipeType;
 
-             recipeFlowSettingViewModel.SelectMfcFlow = controlName;
 
-             recipeFlowSettingViewModel.SelectFlowValue = control.Content.ToString().Contains("Force") ? "0.0" : control.Content.ToString();
 
-             recipeFlowSettingViewModel.MaxValue = Convert.ToDouble(maxValue);
 
-             if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(recipeFlowSettingViewModel, null, "Recipe Flow Setting"))
 
-             {
 
-                 Value = recipeFlowSettingViewModel.SelectFlow;
 
-                 MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault().SetValue.Value = recipeFlowSettingViewModel.SelectFlow;
 
-                 var mfcData = MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault();
 
-                 if (mfcData != null)
 
-                 {
 
-                     InvokeClient.Instance.Service.DoOperation($"PM1.{controlName}.SetMfcVirtualValue", $"{mfcData.SetValue};{mfcData.Rampng};{mfcData.AlarmValue}");
 
-                 }
 
-                 NotifyOfPropertyChange("MFCTemplateColumn");
 
-             }
 
-         }
 
-         public void GASSettingSave()
 
-         {
 
-             IsSave = true;
 
-             if (_mFCTemplateColumn != null)
 
-             {
 
-             }
 
-             ((Window)GetView()).DialogResult = true;
 
-         }
 
-         public void GASSettingCancel()
 
-         {
 
-             foreach (var item in MFCSets)
 
-             {
 
-                 var findMFC = oldMFCData.FirstOrDefault(x => x.ControlName == item.ControlName);
 
-                 if (findMFC != null)
 
-                 {
 
-                     if (item.SetValue.IsSaved != findMFC.SetValue.IsSaved || item.Rampng.IsSaved != findMFC.Rampng.IsSaved)
 
-                     {
 
-                         item.UndoChanges();
 
-                         InvokeClient.Instance.Service.DoOperation($"PM1.{item.ControlName}.SetMfcVirtualValue", $"{item.SetValue.Value};{item.Rampng.Value};{item.AlarmValue}");
 
-                     }
 
-                 }
 
-                 else
 
-                 {
 
-                     item.UndoChanges();
 
-                     InvokeClient.Instance.Service.DoOperation($"PM1.{item.ControlName}.SetMfcVirtualValue", $"{item.SetValue.Value};{item.Rampng.Value};{item.AlarmValue}");
 
-                 }
 
-             }
 
-             ((Window)GetView()).DialogResult = false;
 
-         }
 
-         public void RefreshUpdate()
 
-         {
 
-             //if (MFCSets != null)
 
-             //{
 
-             //    foreach (var item in MFCSets)
 
-             //    {
 
-             //        string getMFCName = item.Replace(".Flow", "").Trim();
 
-             //        if (MFCDataList.Where(x => x.ControlName == getMFCName).FirstOrDefault() != null)
 
-             //        {
 
-             //            var mfcData = MFCDataList.Where(x => x.ControlName == getMFCName).FirstOrDefault();
 
-             //            mfcData.SetValueParam = MFCSets[item].SetValueParam;
 
-             //            mfcData.Rampng=MFCSets[item].Rampng;
 
-             //            mfcData.MaxValue =MFCSets[item].MaxValue;
 
-             //            mfcData.MinValue = MFCSets[item].MinValue;
 
-             //            mfcData.IsCheck = MFCSets[item].IsCheck;
 
-             //            mfcData.Unit = MFCSets[item].Unit;
 
-             //            // MFCDataList.Where(x => x.ControlName == item).FirstOrDefault().Name = SystemConfigProvider.Instance.GetValueByName($"PM1.MFC.{item}.GasName");
 
-             //            //MFCDataList.Where(x => x.ControlName == item).FirstOrDefault().MaxValue = SystemConfigProvider.Instance.GetValueByName($"PM1.MFC.{item}.N2Scale");
 
-             //        }
 
-             //    }
 
-             //}
 
-         }
 
-         public void UnitClick(string unit, MFCData mcfData)
 
-         {
 
-             var windowManager = IoC.Get<IWindowManager>();
 
-             RecipeMFCUnitButton2SelectViewModel recipeMFCUnitButton2SelectViewModel = new RecipeMFCUnitButton2SelectViewModel();
 
-             recipeMFCUnitButton2SelectViewModel.UnitStr = unit;
 
-             if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(recipeMFCUnitButton2SelectViewModel, null, "Button Select"))
 
-             {
 
-                 mcfData.SetUnit.SetValue(recipeMFCUnitButton2SelectViewModel.SelectButtonCommand);
 
-             }
 
-         }
 
-         public void RampngUnitClick(string RampngUnit, MFCData mcfData)
 
-         {
 
-             var windowManager = IoC.Get<IWindowManager>();
 
-             RecipeMFCUnitButtonSelectViewModel recipeMFCUnitButtonSelectViewModel = new RecipeMFCUnitButtonSelectViewModel();
 
-             recipeMFCUnitButtonSelectViewModel.UnitStr = RampngUnit;
 
-             if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(recipeMFCUnitButtonSelectViewModel, null, "The Button Select"))
 
-             {
 
-                 mcfData.RampngUnit.SetValue(recipeMFCUnitButtonSelectViewModel.SelectButtonCommand);
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |