123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630 |
- using Aitex.Core.RT.SCCore;
- using Caliburn.Micro;
- using Caliburn.Micro.Core;
- using MECF.Framework.Common.DataCenter;
- using MECF.Framework.Common.RecipeCenter;
- using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using FurnaceUI.Models;
- using FurnaceUI.Views.Parameter;
- using FurnaceUI.Views.Recipes;
- using System.Windows.Controls;
- using FurnaceUI.Views.DataLog;
- using FurnaceUI.Client.Dialog;
- namespace FurnaceUI.Views.Editors
- {
- public class RecipeLayoutSetMonitorTransferViewModel : FurnaceUIViewModelBase
- {
- private Visibility _autoLayoutVisibility = Visibility.Visible;
- public Visibility AutoLayoutVisibility
- {
- get => _autoLayoutVisibility;
- set
- {
- _autoLayoutVisibility = value;
- NotifyOfPropertyChange(nameof(AutoLayoutVisibility));
- }
- }
- private Visibility _boatSlotVisibility = Visibility.Hidden;
- public Visibility BoatSlotVisibility
- {
- get => _boatSlotVisibility;
- set
- {
- _boatSlotVisibility = value;
- NotifyOfPropertyChange(nameof(BoatSlotVisibility));
- }
- }
- private Visibility _directCarrierVisibility = Visibility.Hidden;
- public Visibility DirectCarrierVisibility
- {
- get => _directCarrierVisibility;
- set
- {
- _directCarrierVisibility = value;
- NotifyOfPropertyChange(nameof(DirectCarrierVisibility));
- }
- }
- private Visibility _upperProductVisibility = Visibility.Hidden;
- public Visibility UpperProductVisibility
- {
- get => _upperProductVisibility;
- set
- {
- _upperProductVisibility = value;
- NotifyOfPropertyChange(nameof(UpperProductVisibility));
- }
- }
- private Visibility _autoCarrierVisibility = Visibility.Hidden;
- public Visibility AutoCarrierVisibility
- {
- get => _autoCarrierVisibility;
- set
- {
- _autoCarrierVisibility = value;
- NotifyOfPropertyChange(nameof(AutoCarrierVisibility));
- }
- }
- private Dictionary<string, string> MonitorTransferDict = new Dictionary<string, string>();
- private string _title = "";
- public string Title
- {
- get => _title;
- set
- {
- _title = value;
- NotifyOfPropertyChange(nameof(Title));
- }
- }
- private MonitorTransferType _dialogResultMonitorTransferType = MonitorTransferType.AutoLayout;
- public MonitorTransferType DialogResultMonitorTransferType
- {
- get => _dialogResultMonitorTransferType;
- set
- {
- _dialogResultMonitorTransferType = value;
- NotifyOfPropertyChange(nameof(DialogResultMonitorTransferType));
- }
- }
- public bool IsSave { get; set; }
- private MonitorTransferType _waferChargeMonitor = MonitorTransferType.AutoLayout;
- public MonitorTransferType WaferChargeMonitor
- {
- get => _waferChargeMonitor;
- set
- {
- _waferChargeMonitor = value;
- NotifyOfPropertyChange(nameof(WaferChargeMonitor));
- }
- }
- private string _waferChargeMonitorValue = "";
- public string WaferChargeMonitorValue
- {
- get => _waferChargeMonitorValue;
- set
- {
- _waferChargeMonitorValue = value;
- NotifyOfPropertyChange(nameof(WaferChargeMonitorValue));
- }
- }
- private string _transferCarrier1 = "None";
- public string TransferCarrier1
- {
- get => _transferCarrier1;
- set
- {
- _transferCarrier1 = value;
- NotifyOfPropertyChange(nameof(TransferCarrier1));
- }
- }
- private string _transferCarrier2 = "None";
- public string TransferCarrier2
- {
- get => _transferCarrier2;
- set
- {
- _transferCarrier2 = value;
- NotifyOfPropertyChange(nameof(TransferCarrier2));
- }
- }
- private string _transferCarrier3 = "None";
- public string TransferCarrier3
- {
- get => _transferCarrier3;
- set
- {
- _transferCarrier3 = value;
- NotifyOfPropertyChange(nameof(TransferCarrier3));
- }
- }
- private string _transferCarrier4 = "None";
- public string TransferCarrier4
- {
- get => _transferCarrier4;
- set
- {
- _transferCarrier4 = value;
- NotifyOfPropertyChange(nameof(TransferCarrier4));
- }
- }
- private string _transferCarrier5 = "None";
- public string TransferCarrier5
- {
- get => _transferCarrier5;
- set
- {
- _transferCarrier5 = value;
- NotifyOfPropertyChange(nameof(TransferCarrier5));
- }
- }
- private string _transferCarrier6 = "None";
- public string TransferCarrier6
- {
- get => _transferCarrier6;
- set
- {
- _transferCarrier6 = value;
- NotifyOfPropertyChange(nameof(TransferCarrier6));
- }
- }
- private string _transferCarrier7 = "None";
- public string TransferCarrier7
- {
- get => _transferCarrier7;
- set
- {
- _transferCarrier7 = value;
- NotifyOfPropertyChange(nameof(TransferCarrier7));
- }
- }
- private string _autoCarrier = "None";
- public string AutoCarrier
- {
- get => _autoCarrier;
- set
- {
- _autoCarrier = value;
- NotifyOfPropertyChange(nameof(AutoCarrier));
- }
- }
- private string _returnString = "";
- public string ReturnString
- {
- get => _returnString;
- set
- {
- _returnString = value;
- NotifyOfPropertyChange(nameof(ReturnString));
- }
- }
- public RecipeLayoutSetMonitorTransferViewModel()
- {
- }
- public bool IsEnable => CGlobal.RecipeProcessEditViewEnable;//是否是View模式
- public void MonitorTransferSelectClick(string cmd)
- {
- if (MonitorTransferDict.ContainsKey(cmd))
- {
- Title = MonitorTransferDict[cmd];
- }
- switch (cmd)
- {
- case "AutoLayout":
- SetSelectAutoLayout();
- break;
- case "BoatSlot":
- SetSelectBoatSlot();
- break;
- case "DirectCarrier":
- SetSelectDirectCarrier();
- break;
- case "AutoCarrier":
- SetSelectAutoCarrier();
- break;
- default:
- break;
- }
- }
- private void SetSelectAutoLayout()
- {
- AutoLayoutVisibility = Visibility.Visible;
- BoatSlotVisibility = Visibility.Hidden;
- DirectCarrierVisibility = Visibility.Hidden;
- UpperProductVisibility = Visibility.Hidden;
- AutoCarrierVisibility = Visibility.Hidden;
- DialogResultMonitorTransferType = MonitorTransferType.AutoLayout;
- }
- private void SetSelectBoatSlot()
- {
- AutoLayoutVisibility = Visibility.Hidden;
- BoatSlotVisibility = Visibility.Visible;
- DirectCarrierVisibility = Visibility.Hidden;
- UpperProductVisibility = Visibility.Hidden;
- AutoCarrierVisibility = Visibility.Hidden;
- DialogResultMonitorTransferType = MonitorTransferType.BoatSlot;
- }
- private void SetSelectDirectCarrier()
- {
- AutoLayoutVisibility = Visibility.Hidden;
- BoatSlotVisibility = Visibility.Hidden;
- DirectCarrierVisibility = Visibility.Visible;
- UpperProductVisibility = Visibility.Hidden;
- AutoCarrierVisibility = Visibility.Hidden;
- DialogResultMonitorTransferType = MonitorTransferType.DirectCarrier;
- }
- private void SetSelectAutoCarrier()
- {
- AutoLayoutVisibility = Visibility.Hidden;
- BoatSlotVisibility = Visibility.Hidden;
- DirectCarrierVisibility = Visibility.Hidden;
- UpperProductVisibility = Visibility.Hidden;
- AutoCarrierVisibility = Visibility.Visible;
- DialogResultMonitorTransferType = MonitorTransferType.AutoCarrier;
- }
- public string RecipeType { get; set; }
- protected override void OnViewLoaded(object view)
- {
- base.OnViewLoaded(view);
- LoadData();
- LoadSetDefaultOption(view);
- }
- private void LoadData()
- {
- MonitorTransferDict.Clear();
- MonitorTransferDict.Add("AutoLayout", "Set Monitor Wafer number to transfer the boat. The wafersare arranged for the locations divided the Product areaby the numbers .");
- MonitorTransferDict.Add("BoatSlot", "Set the boat slot numbers to transfer Monitor Wafers.");
- MonitorTransferDict.Add("DirectCarrier", "Set the arrangement of Monitor Wafers between the Product carrier unit on boat.");
- MonitorTransferDict.Add("AutoCarrier", "Set the arrangement of Monitor wafer just under UpperSide-Dummy area.In Product area it is arrangedautomatically.");
- Title = MonitorTransferDict["AutoLayout"];
- ListBoltSlot.Clear();
- for (int i = 0; i < 30; i++)
- {
- ListBoltSlot.Add(new BoltSlot()
- { No = i + 1, SlotValue = 0 });
- }
- SplitCharacter(WaferChargeMonitorValue);
- }
- private void SplitCharacter(string value)
- {
- if (string.IsNullOrEmpty(value) || !value.Contains("|")) return;
- string[] Strlist = value.Split('|');
- if (Strlist.Length != 5) return;
- var subListStr = Strlist[0].Split(';');
- WaferExist = subListStr[0];
- FillReplace = subListStr[1];
- int _wfNum = 0;
- int.TryParse(Strlist[1], out _wfNum);
- WaferNum = _wfNum;
- var subBoltSlotStrList = Strlist[2].Split(';');
- for (int i = 0; i < subBoltSlotStrList.Length; i++)
- {
- var getBoltSlot = ListBoltSlot.Where(x => x.No == i + 1).FirstOrDefault();
- if (getBoltSlot != null)
- {
- int.TryParse(subBoltSlotStrList[i], out int _boltSlotValue);
- getBoltSlot.SlotValue = _boltSlotValue;
- }
- }
- var transferCarrierStrList = Strlist[3].Split(';');
- if (transferCarrierStrList.Length == 7)
- {
- TransferCarrier1 = transferCarrierStrList[0];
- TransferCarrier2 = transferCarrierStrList[1];
- TransferCarrier3 = transferCarrierStrList[2];
- TransferCarrier4 = transferCarrierStrList[3];
- TransferCarrier5 = transferCarrierStrList[4];
- TransferCarrier6 = transferCarrierStrList[5];
- TransferCarrier7 = transferCarrierStrList[6];
- }
- AutoCarrier = Strlist[4];
- }
- private void LoadSetDefaultOption(object view)
- {
- var monitorTransferView = (RecipeLayoutSetMonitorTransferView)view;
- switch (_waferChargeMonitor)
- {
- case MonitorTransferType.AutoLayout:
- monitorTransferView.RdoAutoLayout.IsChecked = true;
- break;
- case MonitorTransferType.BoatSlot:
- monitorTransferView.RdoBoatSlot.IsChecked = true;
- break;
- case MonitorTransferType.DirectCarrier:
- monitorTransferView.RdoDirectCarrier.IsChecked = true;
- break;
- case MonitorTransferType.AutoCarrier:
- monitorTransferView.RdoAutoCarrier.IsChecked = true;
- break;
- case MonitorTransferType.None:
- //monitorTransferView.RdoAutoLayout.IsChecked = true;
- break;
- default:
- break;
- }
- }
- public void TempSetSave()
- {
- IsSave = true;
- GetWaferChargeMonitorValue();
- ((Window)GetView()).DialogResult = true;
- }
- private void GetWaferChargeMonitorValue()
- {
- string[] strReturnList = new string[5];
- strReturnList[0] = $"{WaferExist};{FillReplace}";
- strReturnList[1] = WaferNum.ToString();
- strReturnList[2] = string.Join(";", ListBoltSlot.Select(x => x.SlotValue.ToString()).ToArray());
- strReturnList[3] = $"{TransferCarrier1};{TransferCarrier2};{TransferCarrier3};{TransferCarrier4};{TransferCarrier5};{TransferCarrier6};{TransferCarrier7}";
- strReturnList[4] = AutoCarrier;
- ReturnString = string.Join("|", strReturnList);
- }
- private string _waferExist = "None";
- public string WaferExist
- {
- get => _waferExist;
- set
- {
- _waferExist = value;
- NotifyOfPropertyChange(nameof(WaferExist));
- }
- }
- private string _fillReplace = "None";
- public string FillReplace
- {
- get => _fillReplace;
- set
- {
- _fillReplace = value;
- NotifyOfPropertyChange(nameof(FillReplace));
- }
- }
- private int _waferNum = 0;
- public int WaferNum
- {
- get => _waferNum;
- set
- {
- _waferNum = value;
- NotifyOfPropertyChange(nameof(WaferNum));
- }
- }
- public ObservableCollection<BoltSlot> ListBoltSlot { get; set; } = new ObservableCollection<BoltSlot>();
- public void TextSelectCmdMouseDown(string cmd, object sender)
- {
- var colsender = (TextBox)sender;
- WindowManager wm = new WindowManager();
- bool? dialogReturn = false;
- switch (cmd)
- {
- case "WaferExist":
- SelectExistViewModel selectExistViewModel1 = new SelectExistViewModel();
- selectExistViewModel1.ProductZeroStr = WaferExist;
- dialogReturn = wm.ShowDialogWithTitle(selectExistViewModel1, null, "Select");
- if ((bool)dialogReturn)
- {
- WaferExist = selectExistViewModel1.DialogResultString;
- }
- break;
- case "FillReplace":
- SelectExistViewModel selectExistViewModel2 = new SelectExistViewModel();
- selectExistViewModel2.ProductZeroStr = WaferExist;
- dialogReturn = wm.ShowDialogWithTitle(selectExistViewModel2, null, "Select");
- if ((bool)dialogReturn)
- {
- FillReplace = selectExistViewModel2.DialogResultString;
- }
- break;
- default:
- break;
- }
- }
- public void TransferCmdMouseDown(string cmd, object sender)
- {
- var colsender = (TextBox)sender;
- WindowManager wm = new WindowManager();
- bool? dialogReturn = false;
- SelectExistViewModel selectExistViewModel = new SelectExistViewModel();
- switch (cmd)
- {
- case "1":
- selectExistViewModel.ProductZeroStr = TransferCarrier1;
- dialogReturn = wm.ShowDialogWithTitle(selectExistViewModel, null, "Select");
- if ((bool)dialogReturn)
- {
- TransferCarrier1 = selectExistViewModel.DialogResultString;
- }
- break;
- case "2":
- selectExistViewModel.ProductZeroStr = TransferCarrier2;
- dialogReturn = wm.ShowDialogWithTitle(selectExistViewModel, null, "Select");
- if ((bool)dialogReturn)
- {
- TransferCarrier2 = selectExistViewModel.DialogResultString;
- }
- break;
- case "3":
- selectExistViewModel.ProductZeroStr = TransferCarrier3;
- dialogReturn = wm.ShowDialogWithTitle(selectExistViewModel, null, "Select");
- if ((bool)dialogReturn)
- {
- TransferCarrier3 = selectExistViewModel.DialogResultString;
- }
- break;
- case "4":
- selectExistViewModel.ProductZeroStr = TransferCarrier4;
- dialogReturn = wm.ShowDialogWithTitle(selectExistViewModel, null, "Select");
- if ((bool)dialogReturn)
- {
- TransferCarrier4 = selectExistViewModel.DialogResultString;
- }
- break;
- case "5":
- selectExistViewModel.ProductZeroStr = TransferCarrier5;
- dialogReturn = wm.ShowDialogWithTitle(selectExistViewModel, null, "Select");
- if ((bool)dialogReturn)
- {
- TransferCarrier5 = selectExistViewModel.DialogResultString;
- }
- break;
- case "6":
- selectExistViewModel.ProductZeroStr = TransferCarrier6;
- dialogReturn = wm.ShowDialogWithTitle(selectExistViewModel, null, "Select");
- if ((bool)dialogReturn)
- {
- TransferCarrier6 = selectExistViewModel.DialogResultString;
- }
- break;
- case "7":
- selectExistViewModel.ProductZeroStr = TransferCarrier7;
- dialogReturn = wm.ShowDialogWithTitle(selectExistViewModel, null, "Select");
- if ((bool)dialogReturn)
- {
- TransferCarrier7 = selectExistViewModel.DialogResultString;
- }
- break;
- default:
- break;
- }
- }
- public void AutoCarrierCmdMouseDown(string cmd, object sender)
- {
- var colsender = (TextBox)sender;
- WindowManager wm = new WindowManager();
- bool? dialogReturn = false;
- SelectExistViewModel selectExistViewModel = new SelectExistViewModel();
- switch (cmd)
- {
- case "Transfer":
- selectExistViewModel.ProductZeroStr = AutoCarrier;
- dialogReturn = wm.ShowDialogWithTitle(selectExistViewModel, null, "Select");
- if ((bool)dialogReturn)
- {
- AutoCarrier = selectExistViewModel.DialogResultString;
- }
- break;
- default:
- break;
- }
- }
- public void TempSetCancel()
- {
- IsSave = false;
- ((Window)GetView()).DialogResult = false;
- }
- }
- public enum MonitorTransferType
- {
- AutoLayout,
- BoatSlot,
- DirectCarrier,
- AutoCarrier,
- None
- }
- public class BoltSlot : PropertyChangedBase
- {
- private int _no;
- public int No
- {
- get => _no;
- set
- {
- _no = value;
- NotifyOfPropertyChange("No");
- }
- }
- private int _slotValue;
- public int SlotValue
- {
- get => _slotValue;
- set
- {
- _slotValue = value;
- NotifyOfPropertyChange("SlotValue");
- }
- }
- }
- }
|