| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174 | 
							- using Aitex.Core.Common;
 
- using Aitex.Core.RT.SCCore;
 
- using Aitex.Core.Util;
 
- using Caliburn.Micro;
 
- using Caliburn.Micro.Core;
 
- using FurnaceUI.Common;
 
- using FurnaceUI.Models;
 
- using MECF.Framework.Common.DataCenter;
 
- using MECF.Framework.Common.Equipment;
 
- using MECF.Framework.Common.OperationCenter;
 
- using MECF.Framework.Common.SubstrateTrackings;
 
- using MECF.Framework.UI.Client.ClientBase;
 
- using Microsoft.VisualBasic;
 
- using OpenSEMI.ClientBase;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Collections.ObjectModel;
 
- using System.Linq;
 
- using System.Net.Sockets;
 
- using System.Text;
 
- using System.Threading;
 
- using System.Threading.Tasks;
 
- using System.Windows;
 
- namespace FurnaceUI.Views.Jobs
 
- {
 
-     public class LoadJOBTwoViewModel : FurnaceModuleUIViewModelBase
 
-     {
 
-         public bool IsExecuteRTCommand { get; set; } = true;
 
-         public bool IsAutoFillCarrierId { get; set; } = false;
 
-         public bool IsPChecked { get; set; } = true;
 
-         public bool IsMChecked { get; set; } = false;
 
-         public bool IsM1Checked { get; set; } = false;
 
-         public bool IsM2Checked { get; set; } = false;
 
-         public bool IsSDChecked { get; set; } = false;
 
-         public bool IsEDChecked { get; set; } = false;
 
-         public Visibility IsWaferTypeExceptPVisible => IsExecuteRTCommand ? Visibility.Visible : Visibility.Collapsed;
 
-         public Visibility PTypeRadioButtonVisibility { get; set; }
 
-         public Visibility MTypeRadioButtonVisibility { get; set; }
 
-         public Visibility M1TypeRadioButtonVisibility { get; set; }
 
-         public Visibility M2TypeRadioButtonVisibility { get; set; }
 
-         public Visibility SDTypeRadioButtonVisibility { get; set; }
 
-         public Visibility EDTypeRadioButtonVisibility { get; set; }
 
-         public bool IsSetValue { get; set; } = false;
 
-         public LoadJOBTwoViewModel()
 
-         {
 
-         }
 
-         private int MaxValue;
 
-         [Subscription("Stocker1.LotID")]
 
-         public string Stocker1LotID { get; set; }
 
-         [Subscription("Stocker2.LotID")]
 
-         public string Stocker2LotID { get; set; }
 
-         [Subscription("Stocker3.LotID")]
 
-         public string Stocker3LotID { get; set; }
 
-         [Subscription("Stocker4.LotID")]
 
-         public string Stocker4LotID { get; set; }
 
-         [Subscription("Stocker5.LotID")]
 
-         public string Stocker5LotID { get; set; }
 
-         [Subscription("Stocker6.LotID")]
 
-         public string Stocker6LotID { get; set; }
 
-         [Subscription("Stocker7.LotID")]
 
-         public string Stocker7LotID { get; set; }
 
-         [Subscription("Stocker8.LotID")]
 
-         public string Stocker8LotID { get; set; }
 
-         [Subscription("Stocker9.LotID")]
 
-         public string Stocker9LotID { get; set; }
 
-         [Subscription("Stocker10.LotID")]
 
-         public string Stocker10LotID { get; set; }
 
-         [Subscription("Stocker11.LotID")]
 
-         public string Stocker11LotID { get; set; }
 
-         [Subscription("Stocker12.LotID")]
 
-         public string Stocker12LotID { get; set; }
 
-         [Subscription("Stocker13.LotID")]
 
-         public string Stocker13LotID { get; set; }
 
-         [Subscription("Stocker14.LotID")]
 
-         public string Stocker14LotID { get; set; }
 
-         [Subscription("Stocker15.LotID")]
 
-         public string Stocker15LotID { get; set; }
 
-         [Subscription("Stocker16.LotID")]
 
-         public string Stocker16LotID { get; set; }
 
-         [Subscription("Stocker17.LotID")]
 
-         public string Stocker17LotID { get; set; }
 
-         [Subscription("Stocker18.LotID")]
 
-         public string Stocker18LotID { get; set; }
 
-         [Subscription("Stocker19.LotID")]
 
-         public string Stocker19LotID { get; set; }
 
-         [Subscription("Stocker20.LotID")]
 
-         public string Stocker20LotID { get; set; }
 
-         [Subscription("Stocker21.LotID")]
 
-         public string Stocker21LotID { get; set; }
 
-         [Subscription("Stocker1.Carrier")]
 
-         public CarrierInfo Stocker1CarrierData { get; set; }
 
-         [Subscription("Stocker2.Carrier")]
 
-         public CarrierInfo Stocker2CarrierData { get; set; }
 
-         [Subscription("Stocker3.Carrier")]
 
-         public CarrierInfo Stocker3CarrierData { get; set; }
 
-         [Subscription("Stocker4.Carrier")]
 
-         public CarrierInfo Stocker4CarrierData { get; set; }
 
-         [Subscription("Stocker5.Carrier")]
 
-         public CarrierInfo Stocker5CarrierData { get; set; }
 
-         [Subscription("Stocker6.Carrier")]
 
-         public CarrierInfo Stocker6CarrierData { get; set; }
 
-         [Subscription("Stocker7.Carrier")]
 
-         public CarrierInfo Stocker7CarrierData { get; set; }
 
-         [Subscription("Stocker8.Carrier")]
 
-         public CarrierInfo Stocker8CarrierData { get; set; }
 
-         [Subscription("Stocker9.Carrier")]
 
-         public CarrierInfo Stocker9CarrierData { get; set; }
 
-         [Subscription("Stocker10.Carrier")]
 
-         public CarrierInfo Stocker10CarrierData { get; set; }
 
-         [Subscription("Stocker11.Carrier")]
 
-         public CarrierInfo Stocker11CarrierData { get; set; }
 
-         [Subscription("Stocker12.Carrier")]
 
-         public CarrierInfo Stocker12CarrierData { get; set; }
 
-         [Subscription("Stocker13.Carrier")]
 
-         public CarrierInfo Stocker13CarrierData { get; set; }
 
-         [Subscription("Stocker14.Carrier")]
 
-         public CarrierInfo Stocker14CarrierData { get; set; }
 
-         [Subscription("Stocker15.Carrier")]
 
-         public CarrierInfo Stocker15CarrierData { get; set; }
 
-         [Subscription("Stocker16.Carrier")]
 
-         public CarrierInfo Stocker16CarrierData { get; set; }
 
-         [Subscription("Stocker17.Carrier")]
 
-         public CarrierInfo Stocker17CarrierData { get; set; }
 
-         [Subscription("Stocker18.Carrier")]
 
-         public CarrierInfo Stocker18CarrierData { get; set; }
 
-         [Subscription("Stocker19.Carrier")]
 
-         public CarrierInfo Stocker19CarrierData { get; set; }
 
-         [Subscription("Stocker20.Carrier")]
 
-         public CarrierInfo Stocker20CarrierData { get; set; }
 
-         [Subscription("Stocker21.Carrier")]
 
-         public CarrierInfo Stocker21CarrierData { get; set; }
 
-         [Subscription("FIMS1.Carrier")]
 
-         public CarrierInfo FIMS1CarrierData { get; set; }
 
-         [Subscription("FIMS2.Carrier")]
 
-         public CarrierInfo FIMS2CarrierData { get; set; }
 
-         [Subscription("LP1.Carrier")]
 
-         public CarrierInfo LP1CarrierData { get; set; }
 
-         [Subscription("LP2.Carrier")]
 
-         public CarrierInfo LP2CarrierData { get; set; }
 
-         [Subscription("CarrierRobot.Carrier")]
 
-         public CarrierInfo CassetteRobotCarrierData { get; set; }
 
-         public ObservableCollection<CarrierInfo> CarrierDataNameList { get; set; } = new ObservableCollection<CarrierInfo>();
 
-         [Subscription("Scheduler.OccupyStockers")]
 
-         public List<string> OccupyStockers { get; set; }
 
-         private int _stockValue;
 
-         public int StockValue
 
-         {
 
-             get => _stockValue;
 
-             set
 
-             {
 
-                 _stockValue = value;
 
-                 NotifyOfPropertyChange("StockValue");
 
-             }
 
-         }
 
-         private Visibility _pTypeVisibility = Visibility.Visible;
 
-         public Visibility PTypeVisibility
 
-         {
 
-             get => _pTypeVisibility;
 
-             set
 
-             {
 
-                 _pTypeVisibility = value;
 
-                 NotifyOfPropertyChange("PTypeVisibility");
 
-             }
 
-         }
 
-         private Visibility _sdTypeVisibility = Visibility.Hidden;
 
-         public Visibility SDTypeVisibility
 
-         {
 
-             get => _sdTypeVisibility;
 
-             set
 
-             {
 
-                 _sdTypeVisibility = value;
 
-                 NotifyOfPropertyChange("SDTypeVisibility");
 
-             }
 
-         }
 
-         private Visibility _m1TypeVisibility = Visibility.Hidden;
 
-         public Visibility M1TypeVisibility
 
-         {
 
-             get => _m1TypeVisibility;
 
-             set
 
-             {
 
-                 _m1TypeVisibility = value;
 
-                 NotifyOfPropertyChange("M1TypeVisibility");
 
-             }
 
-         }
 
-         private Visibility _m2TypeVisibility = Visibility.Hidden;
 
-         public Visibility M2TypeVisibility
 
-         {
 
-             get => _m2TypeVisibility;
 
-             set
 
-             {
 
-                 _m2TypeVisibility = value;
 
-                 NotifyOfPropertyChange("M2TypeVisibility");
 
-             }
 
-         }
 
-         private Visibility _edTypeVisibility = Visibility.Hidden;
 
-         public Visibility EDTypeVisibility
 
-         {
 
-             get => _edTypeVisibility;
 
-             set
 
-             {
 
-                 _edTypeVisibility = value;
 
-                 NotifyOfPropertyChange("EDTypeVisibility");
 
-             }
 
-         }
 
-         private Visibility _mTypeVisibility = Visibility.Hidden;
 
-         public Visibility MTypeVisibility
 
-         {
 
-             get => _mTypeVisibility;
 
-             set
 
-             {
 
-                 _mTypeVisibility = value;
 
-                 NotifyOfPropertyChange("MTypeVisibility");
 
-             }
 
-         }
 
-         private Visibility _allTypeVisibility = Visibility.Hidden;
 
-         public Visibility AllTypeVisibility
 
-         {
 
-             get => _allTypeVisibility;
 
-             set
 
-             {
 
-                 _allTypeVisibility = value;
 
-                 NotifyOfPropertyChange("ALLTypeVisibility");
 
-             }
 
-         }
 
-         public string ExecCommand { get; set; }
 
-         public string ExecText { get; set; } = "EXEC";
 
-         private string _batchType = "P";
 
-         public string WaferType { get; set; } = "P";
 
-         public string LoadJobPara { get; set; }
 
-         public string LoadJobTypePara { get; set; }
 
-         public ObservableCollection<CarrierInfo> MCarrierlist = new ObservableCollection<CarrierInfo>();
 
-         public ObservableCollection<CarrierInfo> M1Carrierlist = new ObservableCollection<CarrierInfo>();
 
-         public ObservableCollection<CarrierInfo> M2Carrierlist = new ObservableCollection<CarrierInfo>();
 
-         public ObservableCollection<CarrierInfo> SDCarrierlist = new ObservableCollection<CarrierInfo>();
 
-         public ObservableCollection<CarrierInfo> EDCarrierlist = new ObservableCollection<CarrierInfo>();
 
-         public ObservableCollection<CarrierInfo> PCarrierlist = new ObservableCollection<CarrierInfo>();
 
-         public ObservableCollection<CarrierInfo> NoneCarrierlist = new ObservableCollection<CarrierInfo>();
 
-         public ObservableCollection<CarrierInfo> Carrierlist = new ObservableCollection<CarrierInfo>();
 
-         public Dictionary<string, string> stockerWaferTypeDict { get; set; } = new Dictionary<string, string>();
 
-         public ObservableCollection<CarrierMaterialInformation> CarrierM1ItemList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
 
-         public ObservableCollection<CarrierMaterialInformation> CarrierM1ItemTempList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
 
-         public ObservableCollection<CarrierMaterialInformation> CarrierM2ItemList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
 
-         public ObservableCollection<CarrierMaterialInformation> CarrierM2ItemTempList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
 
-         public ObservableCollection<CarrierMaterialInformation> CarrierMItemList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
 
-         public ObservableCollection<CarrierMaterialInformation> CarrierMItemTempList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
 
-         public ObservableCollection<CarrierMaterialInformation> CarrierSDItemList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
 
-         public ObservableCollection<CarrierMaterialInformation> CarrierSDItemTempList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
 
-         public ObservableCollection<CarrierMaterialInformation> CarrierEDItemList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
 
-         public ObservableCollection<CarrierMaterialInformation> CarrierEDItemTempList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
 
-         public ObservableCollection<CarrierMaterialInformation> CarrierPItemList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
 
-         public ObservableCollection<CarrierMaterialInformation> CarrierPItemTempList { get; set; } = new ObservableCollection<CarrierMaterialInformation>();
 
-         public ObservableCollection<CarrierInformation> CarrierInformationList { get; set; } = new ObservableCollection<CarrierInformation>();
 
-         protected override void OnInitialize()
 
-         {
 
-             base.OnInitialize();
 
-             IsAutoFillCarrierId = (bool)QueryDataClient.Instance.Service.GetConfig("System.IsAutoFillCarrierId");
 
-             InitStockerWaferTypeDict();
 
-             if (IsM1Checked)
 
-             {
 
-                 M1TypeVisibility = Visibility.Visible;
 
-                 WaferType = "M1";
 
-             }
 
-             else if (IsM2Checked)
 
-             {
 
-                 M2TypeVisibility = Visibility.Visible;
 
-                 WaferType = "M2";
 
-             }
 
-             else if (IsPChecked)
 
-             {
 
-                 PTypeVisibility = Visibility.Visible;
 
-                 WaferType = "P";
 
-             }
 
-             else if (IsEDChecked)
 
-             {
 
-                 EDTypeVisibility = Visibility.Visible;
 
-                 WaferType = "ED";
 
-             }
 
-             else if (IsSDChecked)
 
-             {
 
-                 SDTypeVisibility = Visibility.Visible;
 
-                 WaferType = "SD";
 
-             }
 
-             else
 
-             {
 
-                 EDTypeVisibility = Visibility.Visible;
 
-                 WaferType = "ED";
 
-             }
 
-             MaxValue = 0;
 
-         }
 
-         private void InitStockerWaferTypeDict()
 
-         {
 
-             for (int i = 1; i <= 18; i++)
 
-             {
 
-                 var dataType = (string)QueryDataClient.Instance.Service.GetConfig($"System.Stocker.Stocker{i}WaferType").ToString();
 
-                 var stockerWaferType = dataType.Replace("1", "").Replace("2", "");
 
-                 var item = stockerWaferType.ToString() + i;
 
-                 stockerWaferTypeDict.Add(item, dataType);
 
-             }
 
-         }
 
-         public void StockerCarrier()
 
-         {
 
-             CarrierDataNameList.Clear();
 
-             if (Stocker1CarrierData != null)
 
-             {
 
-                 Stocker1CarrierData.StockerIndex = 1;
 
-                 CarrierDataNameList.Add(Stocker1CarrierData);
 
-             }
 
-             if (Stocker2CarrierData != null)
 
-             {
 
-                 Stocker2CarrierData.StockerIndex = 2;
 
-                 CarrierDataNameList.Add(Stocker2CarrierData);
 
-             }
 
-             if (Stocker3CarrierData != null)
 
-             {
 
-                 Stocker3CarrierData.StockerIndex = 3;
 
-                 CarrierDataNameList.Add(Stocker3CarrierData);
 
-             }
 
-             if (Stocker4CarrierData != null)
 
-             {
 
-                 Stocker4CarrierData.StockerIndex = 4;
 
-                 CarrierDataNameList.Add(Stocker4CarrierData);
 
-             }
 
-             if (Stocker5CarrierData != null)
 
-             {
 
-                 Stocker5CarrierData.StockerIndex = 5;
 
-                 CarrierDataNameList.Add(Stocker5CarrierData);
 
-             }
 
-             if (Stocker6CarrierData != null)
 
-             {
 
-                 Stocker6CarrierData.StockerIndex = 6;
 
-                 CarrierDataNameList.Add(Stocker6CarrierData);
 
-             }
 
-             if (Stocker7CarrierData != null)
 
-             {
 
-                 Stocker7CarrierData.StockerIndex = 7;
 
-                 CarrierDataNameList.Add(Stocker7CarrierData);
 
-             }
 
-             if (Stocker8CarrierData != null)
 
-             {
 
-                 Stocker8CarrierData.StockerIndex = 8;
 
-                 CarrierDataNameList.Add(Stocker8CarrierData);
 
-             }
 
-             if (Stocker9CarrierData != null)
 
-             {
 
-                 Stocker9CarrierData.StockerIndex = 9;
 
-                 CarrierDataNameList.Add(Stocker9CarrierData);
 
-             }
 
-             if (Stocker10CarrierData != null)
 
-             {
 
-                 Stocker10CarrierData.StockerIndex = 10;
 
-                 CarrierDataNameList.Add(Stocker10CarrierData);
 
-             }
 
-             if (Stocker11CarrierData != null)
 
-             {
 
-                 Stocker11CarrierData.StockerIndex = 11;
 
-                 CarrierDataNameList.Add(Stocker11CarrierData);
 
-             }
 
-             if (Stocker12CarrierData != null)
 
-             {
 
-                 Stocker12CarrierData.StockerIndex = 12;
 
-                 CarrierDataNameList.Add(Stocker12CarrierData);
 
-             }
 
-             if (Stocker13CarrierData != null)
 
-             {
 
-                 Stocker13CarrierData.StockerIndex = 13;
 
-                 CarrierDataNameList.Add(Stocker13CarrierData);
 
-             }
 
-             if (Stocker14CarrierData != null)
 
-             {
 
-                 Stocker14CarrierData.StockerIndex = 14;
 
-                 CarrierDataNameList.Add(Stocker14CarrierData);
 
-             }
 
-             if (Stocker15CarrierData != null)
 
-             {
 
-                 Stocker15CarrierData.StockerIndex = 15;
 
-                 CarrierDataNameList.Add(Stocker15CarrierData);
 
-             }
 
-             if (Stocker16CarrierData != null)
 
-             {
 
-                 Stocker16CarrierData.StockerIndex = 16;
 
-                 CarrierDataNameList.Add(Stocker16CarrierData);
 
-             }
 
-             if (Stocker17CarrierData != null)
 
-             {
 
-                 Stocker17CarrierData.StockerIndex = 17;
 
-                 CarrierDataNameList.Add(Stocker17CarrierData);
 
-             }
 
-             if (Stocker18CarrierData != null)
 
-             {
 
-                 Stocker18CarrierData.StockerIndex = 18;
 
-                 CarrierDataNameList.Add(Stocker18CarrierData);
 
-             }
 
-             foreach (var item in CarrierDataNameList)
 
-             {
 
-                 if (string.IsNullOrEmpty(item.Name))
 
-                 {
 
-                     item.Name = $"Stocker{item.StockerIndex}";
 
-                 }
 
-             }
 
-             if ((bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsFIMS1Installed"))
 
-                 CarrierDataNameList.Add(FIMS1CarrierData);
 
-             if ((bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsFIMS2Installed"))
 
-                 CarrierDataNameList.Add(FIMS2CarrierData);
 
-             CarrierDataNameList.Add(CassetteRobotCarrierData);
 
-         }
 
-         string[] moduleNames = new string[] { "Stocker1", "Stocker2", "Stocker3", "Stocker4", "Stocker5", "Stocker6", "Stocker7", "Stocker8", "Stocker9",
 
-             "Stocker10","Stocker11","Stocker12","Stocker13","Stocker14","Stocker15","Stocker16","Stocker17","Stocker18"};
 
-         protected override void InvokeAfterUpdateProperty(Dictionary<string, object> data)
 
-         {
 
-             base.InvokeAfterUpdateProperty(data);
 
-         }
 
-         protected override void OnViewLoaded(object view)
 
-         {
 
-             base.OnViewLoaded(view);
 
-             StockerCarrier();
 
-             MCarrierlist.Clear();
 
-             M1Carrierlist.Clear();
 
-             M2Carrierlist.Clear();
 
-             EDCarrierlist.Clear();
 
-             SDCarrierlist.Clear();
 
-             PCarrierlist.Clear();
 
-             for (int i = 0; i < CarrierDataNameList.Count; i++)
 
-             {
 
-                 string stockerType = (string)QueryDataClient.Instance.Service.GetConfig($"System.Stocker.Stocker{CarrierDataNameList[i].StockerIndex}WaferType");
 
-                 if (stockerType == null)
 
-                 {
 
-                     continue;
 
-                 }
 
-                 if (OccupyStockers != null && OccupyStockers.Any(x => x == $"Stocker{CarrierDataNameList[i].StockerIndex}"))
 
-                     continue;
 
-                 //有下列几种情况下 stocker不被统计
 
-                 //1:位于CarrierRobot上
 
-                 //2:位于FIMS1/2上
 
-                 //3:放到了其他stocker上
 
-                 var boolCarrierRobot = (CassetteRobotCarrierData != null && CassetteRobotCarrierData.InnerId != Guid.Empty && CassetteRobotCarrierData.InternalModuleName.ToString().Equals(CarrierDataNameList[i].Name));
 
-                 var boolFIMS1 = (FIMS1CarrierData != null && FIMS1CarrierData.InnerId != Guid.Empty && FIMS1CarrierData.InternalModuleName.ToString().Equals(CarrierDataNameList[i].Name));
 
-                 var boolFIMS2 = (FIMS2CarrierData != null && FIMS2CarrierData.InnerId != Guid.Empty && FIMS2CarrierData.InternalModuleName.ToString().Equals(CarrierDataNameList[i].Name));
 
-                 var boolOtherStocker = (CarrierDataNameList[i].Name != CarrierDataNameList[i].InternalModuleName.ToString() && CarrierDataNameList[i].InnerId != Guid.Empty);
 
-                 if (boolCarrierRobot || boolFIMS1 || boolFIMS2 || boolOtherStocker)
 
-                 {
 
-                     continue;
 
-                 }
 
-                 if (stockerType.Equals("M1") || stockerType.Equals(CarrierType.None.ToString()))
 
-                 {
 
-                     CarrierDataNameList[i].CarrierType = stockerType.Equals(CarrierType.M1.ToString()) ? CarrierType.M1 : CarrierType.None;
 
-                     M1Carrierlist.Add(CarrierDataNameList[i]);
 
-                 }
 
-                 if (stockerType.Equals("M2") || stockerType.Equals(CarrierType.None.ToString()))
 
-                 {
 
-                     CarrierDataNameList[i].CarrierType = stockerType.Equals(CarrierType.M2.ToString()) ? CarrierType.M2 : CarrierType.None;
 
-                     M2Carrierlist.Add(CarrierDataNameList[i]);
 
-                 }
 
-                 if (stockerType.Equals("ED") || stockerType.Equals(CarrierType.None.ToString()))
 
-                 {
 
-                     CarrierDataNameList[i].CarrierType = stockerType.Equals(CarrierType.ED.ToString()) ? CarrierType.ED : CarrierType.None;
 
-                     EDCarrierlist.Add(CarrierDataNameList[i]);
 
-                 }
 
-                 if (stockerType.Equals("SD") || stockerType.Equals(CarrierType.None.ToString()))
 
-                 {
 
-                     CarrierDataNameList[i].CarrierType = stockerType.Equals(CarrierType.SD.ToString()) ? CarrierType.SD : CarrierType.None;
 
-                     SDCarrierlist.Add(CarrierDataNameList[i]);
 
-                 }
 
-                 if (stockerType.Contains("P") || stockerType.Equals(CarrierType.None.ToString()))
 
-                 {
 
-                     CarrierDataNameList[i].CarrierType = stockerType.Contains(CarrierType.P.ToString()) ? CarrierType.P : CarrierType.None;
 
-                     PCarrierlist.Add(CarrierDataNameList[i]);
 
-                 }
 
-             }
 
-         }
 
-         protected override void OnViewReady(object view)
 
-         {
 
-             base.OnViewReady(view);
 
-         }
 
-         protected override void OnActivate()
 
-         {
 
-             base.OnActivate();
 
-         }
 
-         public void ValueCmd(string cmdPar)
 
-         {
 
-             switch (cmdPar)
 
-             {
 
-                 case "Add":
 
-                     //最大值调整为动态获取 而不是根据配置项
 
-                     MaxValue = getStockEmptyMaxValue(WaferType);
 
-                     if (StockValue < MaxValue)
 
-                     {
 
-                         StockValue++;
 
-                         //InitialPortName(WaferType);
 
-                         switch (WaferType)
 
-                         {
 
-                             case "P":
 
-                                 CarrierPItemTempList.Clear();
 
-                                 for (int i = 0; i < PCarrierlist.Count; i++)
 
-                                 {
 
-                                     if (CarrierStatus.Normal.Equals(PCarrierlist[i].Status)) continue;
 
-                                     if (!(bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{PCarrierlist[i].StockerIndex}Installed")) continue;
 
-                                     CarrierMaterialInformation carrierInfo = new CarrierMaterialInformation();
 
-                                     carrierInfo.No = $"{PCarrierlist[i].StockerIndex}";
 
-                                     carrierInfo.ModuleName = $"Stocker{PCarrierlist[i].StockerIndex}";
 
-                                     carrierInfo.CarrierType = PCarrierlist[i].CarrierType.ToString();
 
-                                     carrierInfo.CarrierId = PCarrierlist[i].CarrierId;
 
-                                     carrierInfo.WaferCount = PCarrierlist[i].WaferCount.ToString();
 
-                                     carrierInfo.StockerCarrierEnable = true;
 
-                                     CarrierPItemTempList.Add(carrierInfo);
 
-                                 }
 
-                                 CarrierPItemList.Add(CarrierPItemTempList[StockValue - 1]);
 
-                                 break;
 
-                             case "SD":
 
-                                 CarrierSDItemTempList.Clear();
 
-                                 for (int i = 0; i < SDCarrierlist.Count; i++)
 
-                                 {
 
-                                     if (CarrierStatus.Normal.Equals(SDCarrierlist[i].Status)) continue;
 
-                                     if (!(bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{SDCarrierlist[i].StockerIndex}Installed")) continue;
 
-                                     CarrierMaterialInformation carrierInfo = new CarrierMaterialInformation();
 
-                                     carrierInfo.No = $"{SDCarrierlist[i].StockerIndex}"; ;
 
-                                     carrierInfo.ModuleName = $"Stocker{SDCarrierlist[i].StockerIndex}";
 
-                                     carrierInfo.CarrierType = SDCarrierlist[i].CarrierType.ToString();
 
-                                     carrierInfo.CarrierId = SDCarrierlist[i].CarrierId;
 
-                                     carrierInfo.WaferCount = SDCarrierlist[i].WaferCount.ToString();
 
-                                     carrierInfo.StockerCarrierEnable = true;
 
-                                     CarrierSDItemTempList.Add(carrierInfo);
 
-                                 }
 
-                                 CarrierSDItemList.Add(CarrierSDItemTempList[StockValue - 1]);
 
-                                 break;
 
-                             case "ED":
 
-                                 CarrierEDItemTempList.Clear();
 
-                                 for (int i = 0; i < EDCarrierlist.Count; i++)
 
-                                 {
 
-                                     if (CarrierStatus.Normal.Equals(EDCarrierlist[i].Status)) continue;
 
-                                     if (!(bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{EDCarrierlist[i].StockerIndex}Installed")) continue;
 
-                                     CarrierMaterialInformation carrierInfo = new CarrierMaterialInformation();
 
-                                     carrierInfo.No = $"{EDCarrierlist[i].StockerIndex}";
 
-                                     carrierInfo.ModuleName = $"Stocker{EDCarrierlist[i].StockerIndex}";
 
-                                     carrierInfo.CarrierType = EDCarrierlist[i].CarrierType.ToString();
 
-                                     carrierInfo.CarrierId = EDCarrierlist[i].CarrierId;
 
-                                     carrierInfo.WaferCount = EDCarrierlist[i].WaferCount.ToString();
 
-                                     carrierInfo.StockerCarrierEnable = true;
 
-                                     CarrierEDItemTempList.Add(carrierInfo);
 
-                                 }
 
-                                 CarrierEDItemList.Add(CarrierEDItemTempList[StockValue - 1]);
 
-                                 break;
 
-                             case "M":
 
-                                 CarrierMItemTempList.Clear();
 
-                                 for (int i = 0; i < MCarrierlist.Count; i++)
 
-                                 {
 
-                                     if (CarrierStatus.Normal.Equals(MCarrierlist[i].Status)) continue;
 
-                                     if (!(bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{MCarrierlist[i].StockerIndex}Installed")) continue;
 
-                                     CarrierMaterialInformation carrierInfo = new CarrierMaterialInformation();
 
-                                     carrierInfo.No = $"{MCarrierlist[i].StockerIndex}";
 
-                                     //carrierInfo.ModuleName = MCarrierlist[i].InternalModuleName.ToString();
 
-                                     carrierInfo.ModuleName = $"Stocker{MCarrierlist[i].StockerIndex}";
 
-                                     carrierInfo.CarrierType = MCarrierlist[i].CarrierType.ToString();
 
-                                     carrierInfo.CarrierId = MCarrierlist[i].CarrierId;
 
-                                     carrierInfo.WaferCount = MCarrierlist[i].WaferCount.ToString();
 
-                                     carrierInfo.StockerCarrierEnable = true;
 
-                                     CarrierMItemTempList.Add(carrierInfo);
 
-                                 }
 
-                                 CarrierMItemList.Add(CarrierMItemTempList[StockValue - 1]);
 
-                                 break;
 
-                             case "M1":
 
-                                 CarrierM1ItemTempList.Clear();
 
-                                 for (int i = 0; i < M1Carrierlist.Count; i++)
 
-                                 {
 
-                                     if (CarrierStatus.Normal.Equals(M1Carrierlist[i].Status)) continue;
 
-                                     if (!(bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{M1Carrierlist[i].StockerIndex}Installed")) continue;
 
-                                     CarrierMaterialInformation carrierInfo = new CarrierMaterialInformation();
 
-                                     carrierInfo.No = $"{M1Carrierlist[i].StockerIndex}";
 
-                                     carrierInfo.ModuleName = $"Stocker{M1Carrierlist[i].StockerIndex}";
 
-                                     carrierInfo.CarrierType = M1Carrierlist[i].CarrierType.ToString();
 
-                                     carrierInfo.CarrierId = M1Carrierlist[i].CarrierId;
 
-                                     carrierInfo.WaferCount = M1Carrierlist[i].WaferCount.ToString();
 
-                                     carrierInfo.StockerCarrierEnable = true;
 
-                                     CarrierM1ItemTempList.Add(carrierInfo);
 
-                                 }
 
-                                 CarrierM1ItemList.Add(CarrierM1ItemTempList[StockValue - 1]);
 
-                                 break;
 
-                             case "M2":
 
-                                 CarrierM2ItemTempList.Clear();
 
-                                 for (int i = 0; i < M2Carrierlist.Count; i++)
 
-                                 {
 
-                                     if (CarrierStatus.Normal.Equals(M2Carrierlist[i].Status)) continue;
 
-                                     if (!(bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{M2Carrierlist[i].StockerIndex}Installed")) continue;
 
-                                     CarrierMaterialInformation carrierInfo = new CarrierMaterialInformation();
 
-                                     carrierInfo.No = $"{M2Carrierlist[i].StockerIndex}";
 
-                                     carrierInfo.ModuleName = $"Stocker{M2Carrierlist[i].StockerIndex}";
 
-                                     carrierInfo.CarrierType = M2Carrierlist[i].CarrierType.ToString();
 
-                                     carrierInfo.CarrierId = M2Carrierlist[i].CarrierId;
 
-                                     carrierInfo.WaferCount = M2Carrierlist[i].WaferCount.ToString();
 
-                                     carrierInfo.StockerCarrierEnable = true;
 
-                                     CarrierM2ItemTempList.Add(carrierInfo);
 
-                                 }
 
-                                 CarrierM2ItemList.Add(CarrierM2ItemTempList[StockValue - 1]);
 
-                                 break;
 
-                             default:
 
-                                 break;
 
-                         }
 
-                     }
 
-                     break;
 
-                 case "Sub":
 
-                     if (StockValue > 0)
 
-                     {
 
-                         StockValue--;
 
-                         if (WaferType == "M" && CarrierMItemList.Count > 0)
 
-                         {
 
-                             CarrierMItemList.RemoveAt(CarrierMItemList.Count - 1);
 
-                         }
 
-                         if (WaferType == "M1" && CarrierM1ItemList.Count > 0)
 
-                         {
 
-                             CarrierM1ItemList.RemoveAt(CarrierM1ItemList.Count - 1);
 
-                         }
 
-                         if (WaferType == "M2" && CarrierM2ItemList.Count > 0)
 
-                         {
 
-                             CarrierM2ItemList.RemoveAt(CarrierM2ItemList.Count - 1);
 
-                         }
 
-                         if (WaferType == "ED" && CarrierEDItemList.Count > 0)
 
-                         {
 
-                             CarrierEDItemList.RemoveAt(CarrierEDItemList.Count - 1);
 
-                         }
 
-                         if (WaferType == "SD" && CarrierSDItemList.Count > 0)
 
-                         {
 
-                             CarrierSDItemList.RemoveAt(CarrierSDItemList.Count - 1);
 
-                         }
 
-                         if (WaferType == "P" && CarrierPItemList.Count > 0)
 
-                         {
 
-                             CarrierPItemList.RemoveAt(CarrierPItemList.Count - 1);
 
-                         }
 
-                         //InitialPortName(WaferType);
 
-                     }
 
-                     break;
 
-                 default:
 
-                     break;
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 获取指定类型下空Stock数量
 
-         /// </summary>
 
-         /// <param name="stockType"></param>
 
-         /// <returns></returns>
 
-         public int getStockEmptyMaxValue(string stockType)
 
-         {
 
-             if ("P".Equals(stockType))
 
-             {
 
-                 int count = 0;
 
-                 for (int i = 0; i < PCarrierlist.Count; i++)
 
-                 {
 
-                     if ((bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{PCarrierlist[i].StockerIndex}Installed") && CarrierStatus.Empty.Equals(PCarrierlist[i].Status))
 
-                     {
 
-                         count++;
 
-                     }
 
-                 }
 
-                 return count;
 
-             }
 
-             if ("SD".Equals(stockType))
 
-             {
 
-                 int count = 0;
 
-                 for (int i = 0; i < SDCarrierlist.Count; i++)
 
-                 {
 
-                     if ((bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{SDCarrierlist[i].StockerIndex}Installed") && CarrierStatus.Empty.Equals(SDCarrierlist[i].Status))
 
-                     {
 
-                         count++;
 
-                     }
 
-                 }
 
-                 return count;
 
-             }
 
-             if ("ED".Equals(stockType))
 
-             {
 
-                 int count = 0;
 
-                 for (int i = 0; i < EDCarrierlist.Count; i++)
 
-                 {
 
-                     if ((bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{EDCarrierlist[i].StockerIndex}Installed") && CarrierStatus.Empty.Equals(EDCarrierlist[i].Status))
 
-                     {
 
-                         count++;
 
-                     }
 
-                 }
 
-                 return count;
 
-             }
 
-             if ("M1".Equals(stockType))
 
-             {
 
-                 int count = 0;
 
-                 for (int i = 0; i < M1Carrierlist.Count; i++)
 
-                 {
 
-                     if ((bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{M1Carrierlist[i].StockerIndex}Installed") && CarrierStatus.Empty.Equals(M1Carrierlist[i].Status))
 
-                     {
 
-                         count++;
 
-                     }
 
-                 }
 
-                 return count;
 
-             }
 
-             if ("M2".Equals(stockType))
 
-             {
 
-                 int count = 0;
 
-                 for (int i = 0; i < M2Carrierlist.Count; i++)
 
-                 {
 
-                     if ((bool)QueryDataClient.Instance.Service.GetConfig($"System.SetUp.IsStocker{M2Carrierlist[i].StockerIndex}Installed") && CarrierStatus.Empty.Equals(M2Carrierlist[i].Status))
 
-                     {
 
-                         count++;
 
-                     }
 
-                 }
 
-                 return count;
 
-             }
 
-             return 0;
 
-         }
 
-         public void WaferTypeSelect(string type)
 
-         {
 
-             var waferTypeList = QueryDataClient.Instance.Service.GetConfigItemList().Where(m => m.Name.StartsWith(ConstantsCommon.Stocker)).ToList();
 
-             switch (type)
 
-             {
 
-                 case ConstantsCommon.P:
 
-                     StockValue = waferTypeList.Where(n => n.Value.ToString().Contains(ConstantsCommon.P)).Count();
 
-                     PTypeVisibility = Visibility.Visible;
 
-                     SDTypeVisibility = Visibility.Collapsed;
 
-                     EDTypeVisibility = Visibility.Collapsed;
 
-                     MTypeVisibility = Visibility.Collapsed;
 
-                     M1TypeVisibility = Visibility.Collapsed;
 
-                     M2TypeVisibility = Visibility.Collapsed;
 
-                     WaferType = ConstantsCommon.P;
 
-                     CarrierPItemList.Clear();
 
-                     for (int i = 0; i < PCarrierlist.Count; i++)
 
-                     {
 
-                         if (CarrierStatus.Normal.Equals(PCarrierlist[i].Status))
 
-                         {
 
-                             StockValue--;
 
-                             continue;
 
-                         }
 
-                     }
 
-                     break;
 
-                 case ConstantsCommon.SD:
 
-                     StockValue = waferTypeList.Where(n => n.Value.ToString().Contains(ConstantsCommon.SD)).Count();
 
-                     PTypeVisibility = Visibility.Collapsed;
 
-                     SDTypeVisibility = Visibility.Visible;
 
-                     EDTypeVisibility = Visibility.Collapsed;
 
-                     MTypeVisibility = Visibility.Collapsed;
 
-                     M1TypeVisibility = Visibility.Collapsed;
 
-                     M2TypeVisibility = Visibility.Collapsed;
 
-                     WaferType = ConstantsCommon.SD;
 
-                     CarrierSDItemList.Clear();
 
-                     for (int i = 0; i < SDCarrierlist.Count; i++)
 
-                     {
 
-                         if (CarrierStatus.Normal.Equals(SDCarrierlist[i].Status))
 
-                         {
 
-                             StockValue--;
 
-                             continue;
 
-                         }
 
-                     }
 
-                     break;
 
-                 case ConstantsCommon.ED:
 
-                     StockValue = waferTypeList.Where(n => n.Value.ToString().Contains(ConstantsCommon.ED)).Count();
 
-                     PTypeVisibility = Visibility.Collapsed;
 
-                     SDTypeVisibility = Visibility.Collapsed;
 
-                     EDTypeVisibility = Visibility.Visible;
 
-                     MTypeVisibility = Visibility.Collapsed;
 
-                     M1TypeVisibility = Visibility.Collapsed;
 
-                     M2TypeVisibility = Visibility.Collapsed;
 
-                     WaferType = ConstantsCommon.ED;
 
-                     CarrierEDItemList.Clear();
 
-                     for (int i = 0; i < EDCarrierlist.Count; i++)
 
-                     {
 
-                         if (CarrierStatus.Normal.Equals(EDCarrierlist[i].Status))
 
-                         {
 
-                             StockValue--;
 
-                             continue;
 
-                         }
 
-                     }
 
-                     break;
 
-                 case ConstantsCommon.M:
 
-                     StockValue = waferTypeList.Where(n => n.Value.ToString().Contains(ConstantsCommon.M)).Count();
 
-                     PTypeVisibility = Visibility.Collapsed;
 
-                     SDTypeVisibility = Visibility.Collapsed;
 
-                     EDTypeVisibility = Visibility.Collapsed;
 
-                     MTypeVisibility = Visibility.Visible;
 
-                     AllTypeVisibility = Visibility.Visible;
 
-                     M1TypeVisibility = Visibility.Collapsed;
 
-                     M2TypeVisibility = Visibility.Collapsed;
 
-                     WaferType = ConstantsCommon.M;
 
-                     CarrierMItemList.Clear();
 
-                     for (int i = 0; i < MCarrierlist.Count; i++)
 
-                     {
 
-                         if (CarrierStatus.Normal.Equals(MCarrierlist[i].Status))
 
-                         {
 
-                             StockValue--;
 
-                             continue;
 
-                         }
 
-                     }
 
-                     break;
 
-                 case ConstantsCommon.M1:
 
-                     StockValue = waferTypeList.Where(n => n.Value.ToString().Contains(ConstantsCommon.M1)).Count();
 
-                     PTypeVisibility = Visibility.Collapsed;
 
-                     SDTypeVisibility = Visibility.Collapsed;
 
-                     EDTypeVisibility = Visibility.Collapsed;
 
-                     MTypeVisibility = Visibility.Collapsed;
 
-                     M1TypeVisibility = Visibility.Visible;
 
-                     M2TypeVisibility = Visibility.Collapsed;
 
-                     WaferType = ConstantsCommon.M1;
 
-                     CarrierM1ItemList.Clear();
 
-                     for (int i = 0; i < M1Carrierlist.Count; i++)
 
-                     {
 
-                         if (CarrierStatus.Normal.Equals(M1Carrierlist[i].Status))
 
-                         {
 
-                             StockValue--;
 
-                             continue;
 
-                         }
 
-                     }
 
-                     break;
 
-                 case ConstantsCommon.M2:
 
-                     StockValue = waferTypeList.Where(n => n.Value.ToString().Contains(ConstantsCommon.M2)).Count();
 
-                     PTypeVisibility = Visibility.Collapsed;
 
-                     SDTypeVisibility = Visibility.Collapsed;
 
-                     EDTypeVisibility = Visibility.Collapsed;
 
-                     MTypeVisibility = Visibility.Collapsed;
 
-                     M1TypeVisibility = Visibility.Collapsed;
 
-                     M2TypeVisibility = Visibility.Visible;
 
-                     WaferType = ConstantsCommon.M2;
 
-                     CarrierM2ItemList.Clear();
 
-                     for (int i = 0; i < M2Carrierlist.Count; i++)
 
-                     {
 
-                         if (CarrierStatus.Normal.Equals(M2Carrierlist[i].Status))
 
-                         {
 
-                             StockValue--;
 
-                             continue;
 
-                         }
 
-                     }
 
-                     break;
 
-                 default:
 
-                     break;
 
-             }
 
-             MaxValue = StockValue;
 
-             StockValue = 0;
 
-             InitialPortName(WaferType);
 
-         }
 
-         public void GetCarrier()
 
-         {
 
-         }
 
-         public void EditCarrierID(string value)
 
-         {
 
-             var windowManager = IoC.Get<IWindowManager>();
 
-             WaferMapSelectedViewModel inputCarrierInfoViewModel = new WaferMapSelectedViewModel();
 
-             inputCarrierInfoViewModel.WaferType = WaferType;
 
-             inputCarrierInfoViewModel.WaferNo = value;
 
-             CarrierMaterialInformation carr=null;
 
-             switch (WaferType)
 
-             {
 
-                 case "P":
 
-                      carr = CarrierPItemList.FirstOrDefault(x => x.No == value);
 
-                     break;
 
-                 case "SD":
 
-                     carr = CarrierSDItemList.FirstOrDefault(x => x.No == value);
 
-                     break;
 
-                 case "ED":
 
-                     carr = CarrierEDItemList.FirstOrDefault(x => x.No == value);
 
-                     break;
 
-                 case "M1":
 
-                     carr = CarrierM1ItemList.FirstOrDefault(x => x.No == value);
 
-                     break;
 
-                 case "M2":
 
-                     carr = CarrierM2ItemList.FirstOrDefault(x => x.No == value);
 
-                     break;
 
-                 default:
 
-                     break;
 
-             }
 
-             if (carr != null) inputCarrierInfoViewModel.StrSlots = carr.StrSlot;
 
-             inputCarrierInfoViewModel.Wafers = carr.Wafers;
 
-             if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(inputCarrierInfoViewModel, null, "Wafer Map"))
 
-             {
 
-                 foreach (var item in CarrierPItemList)
 
-                 {
 
-                     if (item.No.Equals(inputCarrierInfoViewModel.WaferNo))
 
-                     {
 
-                         item.CarrierId = inputCarrierInfoViewModel.CarrierID;
 
-                         item.WaferCount = inputCarrierInfoViewModel.WaferCount;
 
-                         item.SlotMap = inputCarrierInfoViewModel.SlotMap;
 
-                         item.StrSlot = inputCarrierInfoViewModel.StrSlots;
 
-                         item.ExistSlot = inputCarrierInfoViewModel.IsExistChecked ? "Exist" : "None";
 
-                     }
 
-                 }
 
-                 foreach (var item in CarrierSDItemList)
 
-                 {
 
-                     if (item.No.Equals(inputCarrierInfoViewModel.WaferNo))
 
-                     {
 
-                         item.CarrierId = inputCarrierInfoViewModel.CarrierID;
 
-                         item.WaferCount = inputCarrierInfoViewModel.WaferCount;
 
-                         item.SlotMap = inputCarrierInfoViewModel.SlotMap;
 
-                         item.StrSlot = inputCarrierInfoViewModel.StrSlots;
 
-                         item.ExistSlot = inputCarrierInfoViewModel.IsExistChecked ? "Exist" : "None";
 
-                     }
 
-                 }
 
-                 foreach (var item in CarrierEDItemList)
 
-                 {
 
-                     if (item.No.Equals(inputCarrierInfoViewModel.WaferNo))
 
-                     {
 
-                         item.CarrierId = inputCarrierInfoViewModel.CarrierID;
 
-                         item.WaferCount = inputCarrierInfoViewModel.WaferCount;
 
-                         item.SlotMap = inputCarrierInfoViewModel.SlotMap;
 
-                         item.StrSlot = inputCarrierInfoViewModel.StrSlots;
 
-                         item.ExistSlot = inputCarrierInfoViewModel.IsExistChecked ? "Exist" : "None";
 
-                     }
 
-                 }
 
-                 foreach (var item in CarrierMItemList)
 
-                 {
 
-                     if (item.No.Equals(inputCarrierInfoViewModel.WaferNo))
 
-                     {
 
-                         item.CarrierId = inputCarrierInfoViewModel.CarrierID;
 
-                         item.WaferCount = inputCarrierInfoViewModel.WaferCount;
 
-                         item.SlotMap = inputCarrierInfoViewModel.SlotMap;
 
-                         item.StrSlot = inputCarrierInfoViewModel.StrSlots;
 
-                         item.ExistSlot = inputCarrierInfoViewModel.IsExistChecked ? "Exist" : "None";
 
-                     }
 
-                 }
 
-                 foreach (var item in CarrierM1ItemList)
 
-                 {
 
-                     if (item.No.Equals(inputCarrierInfoViewModel.WaferNo))
 
-                     {
 
-                         item.CarrierId = inputCarrierInfoViewModel.CarrierID;
 
-                         item.WaferCount = inputCarrierInfoViewModel.WaferCount;
 
-                         item.SlotMap = inputCarrierInfoViewModel.SlotMap;
 
-                         item.StrSlot = inputCarrierInfoViewModel.StrSlots;
 
-                         item.ExistSlot = inputCarrierInfoViewModel.IsExistChecked ? "Exist" : "None";
 
-                     }
 
-                 }
 
-                 foreach (var item in CarrierM2ItemList)
 
-                 {
 
-                     if (item.No.Equals(inputCarrierInfoViewModel.WaferNo))
 
-                     {
 
-                         item.CarrierId = inputCarrierInfoViewModel.CarrierID;
 
-                         item.WaferCount = inputCarrierInfoViewModel.WaferCount;
 
-                         item.SlotMap = inputCarrierInfoViewModel.SlotMap;
 
-                         item.StrSlot = inputCarrierInfoViewModel.StrSlots;
 
-                         item.ExistSlot = inputCarrierInfoViewModel.IsExistChecked ? "Exist" : "None";
 
-                     }
 
-                 }
 
-             }
 
-             else
 
-             {
 
-                 
 
-             }
 
-         }
 
-         public void TextChangedCmd()
 
-         {
 
-             if (StockValue < 0) StockValue = 0;
 
-             InitialPortName(_batchType);
 
-         }
 
-         private void InitialPortName(string Type, bool initLotID = false)
 
-         {
 
-             //RightPort1Visibility = false; RightPort2Visibility = false; RightPort3Visibility = false;
 
-             var StockerConfigList = QueryDataClient.Instance.Service.GetConfigItemList().Where(m => m.Name.Contains("WaferType")).ToList();
 
-             int j = 0;
 
-             int x = 0;
 
-             int y = 0;
 
-             for (int i = 1; i <= StockerConfigList.Count; i++)
 
-             {
 
-                 string StockerType = (string)QueryDataClient.Instance.Service.GetConfig($"System.Stocker.Stocker{i}WaferType");
 
-                 if (j == StockValue || j > 12 && Type == "P")
 
-                     break;
 
-                 if (x == StockValue || x > 6 && Type == "ED")
 
-                     break;
 
-             }
 
-         }
 
-         public void LoadPortCheck(string No, string LPName)
 
-         {
 
-             foreach (var item in CarrierPItemList)
 
-             {
 
-                 if (item.No.Equals(No))
 
-                 {
 
-                     item.LoadPortName = LPName;
 
-                 }
 
-             }
 
-             foreach (var item in CarrierSDItemList)
 
-             {
 
-                 if (item.No.Equals(No))
 
-                 {
 
-                     item.LoadPortName = LPName;
 
-                 }
 
-             }
 
-             foreach (var item in CarrierEDItemList)
 
-             {
 
-                 if (item.No.Equals(No))
 
-                 {
 
-                     item.LoadPortName = LPName;
 
-                 }
 
-             }
 
-             foreach (var item in CarrierMItemList)
 
-             {
 
-                 if (item.No.Equals(No))
 
-                 {
 
-                     item.LoadPortName = LPName;
 
-                 }
 
-             }
 
-             foreach (var item in CarrierM1ItemList)
 
-             {
 
-                 if (item.No.Equals(No))
 
-                 {
 
-                     item.LoadPortName = LPName;
 
-                 }
 
-             }
 
-             foreach (var item in CarrierM2ItemList)
 
-             {
 
-                 if (item.No.Equals(No))
 
-                 {
 
-                     item.LoadPortName = LPName;
 
-                 }
 
-             }
 
-         }
 
-         public void LoadPortSelect(string StockerName, string LoadJobPara1)
 
-         {
 
-             string[] StockArray = LoadJobPara.Split(';');
 
-             string para = "";
 
-             foreach (var item in StockArray)
 
-             {
 
-                 if (item.Contains(StockerName))
 
-                 {
 
-                     para = LoadJobPara.Replace(item + ";", LoadJobPara1);
 
-                 }
 
-             }
 
-             LoadJobPara = para;
 
-         }
 
-         public void EXECCmd(string cmdPar)
 
-         {
 
-             //if (!DialogBox.Confirm("Are you sure to execute?"))
 
-             //    return;
 
-             ObservableCollection<CarrierMaterialInformation> itemList = new ObservableCollection<CarrierMaterialInformation>();
 
-             switch (WaferType)
 
-             {
 
-                 case "P":
 
-                     itemList = CarrierPItemList;
 
-                     break;
 
-                 case "M":
 
-                     itemList = CarrierMItemList;
 
-                     break;
 
-                 case "M1":
 
-                     itemList = CarrierM1ItemList;
 
-                     break;
 
-                 case "M2":
 
-                     itemList = CarrierM2ItemList;
 
-                     break;
 
-                 case "SD":
 
-                     itemList = CarrierSDItemList;
 
-                     break;
 
-                 case "ED":
 
-                     itemList = CarrierEDItemList;
 
-                     break;
 
-             }
 
-             LoadJobPara = string.Empty;
 
-             foreach (var item in itemList)
 
-             {
 
-                 item.CarrierId = IsAutoFillCarrierId ? item.No : item.CarrierId;
 
-                 if (!item.StockerCarrierEnable)
 
-                     continue;
 
-                 if (string.IsNullOrEmpty(item.LoadPortName))
 
-                 {
 
-                     DialogBox.ShowWarning($"Number {item.No} LoadPort is empty,please select LoadPort!");
 
-                     return;
 
-                 }
 
-                 var loadJobPara = item.ModuleName + "," + item.CarrierId + "," + item.StrSlot + "," + item.ExistSlot + "," + item.SlotMap + "," + item.LoadPortName + ";";
 
-                 if (!string.IsNullOrEmpty(LoadJobPara) && LoadJobPara.Contains(item.ModuleName))
 
-                 {
 
-                     this.LoadPortSelect(item.ModuleName, loadJobPara);
 
-                 }
 
-                 else
 
-                     LoadJobPara += loadJobPara;
 
-             }
 
-             if (string.IsNullOrEmpty(LoadJobPara))
 
-             {
 
-                 DialogBox.ShowWarning("Load job parameter is empty,please select loadport number!");
 
-                 return;
 
-             }
 
-             //string para = "Stocker1,P_00000036,25,Exist,1111111111111111111111111,LP1;Stocker2,P_00000037,25,Exist,1111111111111111111111111,LP2";
 
-             if (IsExecuteRTCommand && !DialogBox.Confirm("Are you sure to accept?"))
 
-                 return;
 
-             Dictionary<string, object> param = new Dictionary<string, object>()
 
-             {
 
-                 {"WaferType", WaferType },
 
-                 {"CarrierPara", LoadJobPara.TrimEnd(';')},
 
-                 {"TransferType", "Loading"},
 
-             };
 
-             if (IsExecuteRTCommand)
 
-             {
 
-                 InvokeClient.Instance.Service.DoOperation($"System.{ExecCommand}", param);
 
-             }
 
-             ((Window)GetView()).DialogResult = true;
 
-         }
 
-         public void ClosedCmd(string cmdPar)
 
-         {
 
-             (GetView() as Window).Close();
 
-         }
 
-     }
 
- }
 
 
  |