Переглянути джерело

如果存在CJ且CJ被Pause后,开放设备操作按钮

jiangjy 3 тижнів тому
батько
коміт
0ed9a6b46d

+ 21 - 1
Furnace/FurnaceUI/Views/Maintenances/FIMSSensorViewModel.cs

@@ -17,6 +17,7 @@ using System.Linq;
 using System.Windows;
 using MECF.Framework.UI.Client.CenterViews.Configs.SystemConfig;
 using OpenSEMI.ClientBase;
+using MECF.Framework.Common.Jobs;
 
 namespace FurnaceUI.Views.Maintenances
 {
@@ -39,7 +40,26 @@ namespace FurnaceUI.Views.Maintenances
         private int _fims2CycleCount;
 
 
-        public bool IsSystemStaus => (RtStatus != "AutoRunning");
+        [Subscription("Scheduler.ControlJobList")]
+        public List<ControlJobInfo> ControlJobs
+        {
+            get;
+            set;
+        }
+        public bool IsSystemStaus
+        {
+            get
+            {
+                if (ControlJobs != null && ControlJobs.Count > 0)
+                {
+                    return ControlJobs.FirstOrDefault().State == EnumControlJobState.Paused;
+                }
+
+
+                return (RtStatus != "AutoRunning");
+            }
+            set { }
+        }
         [Subscription("FIMS1.Status")]
         public string FIMS1Status { get; set; }
         [Subscription("FIMS2.Status")]

+ 11 - 0
Furnace/FurnaceUI/Views/Operations/TransferMain/BoatModifyViewModel.cs

@@ -14,6 +14,7 @@ using System.Threading.Tasks;
 using System.Windows;
 using FurnaceUI.Models;
 using FurnaceUI.Views.Editors;
+using MECF.Framework.Common.Jobs;
 
 namespace FurnaceUI.Views.Operations
 {
@@ -101,11 +102,21 @@ namespace FurnaceUI.Views.Operations
         {
             get
             {
+                if (ControlJobs != null && ControlJobs.Count > 0)
+                {
+                    return ControlJobs.FirstOrDefault().State == EnumControlJobState.Paused;
+                }
                 var pmStatus = PM1Status == "Init" || PM1Status == "Idle" || PM1Status == "Error" || (IsProcessCanModifyFoupInfo && PM1Status == "Process");
                 var rtstatus = (RtStatus == "Init" || RtStatus == "Idle" || RtStatus == "Error") || (IsProcessCanModifyFoupInfo && RtStatus == "AutoRunning");
                 return pmStatus && rtstatus;
             }
         }
+        [Subscription("Scheduler.ControlJobList")]
+        public List<ControlJobInfo> ControlJobs
+        {
+            get;
+            set;
+        }
         private List<string> _boatMapWafers = new List<string>();
 
         public List<string> BoatMapWafers

+ 12 - 0
Furnace/FurnaceUI/Views/Operations/TransferMain/CassetteModifyViewModel.cs

@@ -19,6 +19,7 @@ using Aitex.Core.RT.Event;
 using OpenSEMI.Ctrlib.Controls;
 using DocumentFormat.OpenXml.Bibliography;
 using System.Reflection;
+using MECF.Framework.Common.Jobs;
 
 namespace FurnaceUI.Views.Operations
 {
@@ -150,11 +151,22 @@ namespace FurnaceUI.Views.Operations
         {
             get
             {
+                if (ControlJobs != null && ControlJobs.Count > 0)
+                {
+                    return ControlJobs.FirstOrDefault().State == EnumControlJobState.Paused;
+                }
+
                 var pmStatus = PM1Status == "Init" || PM1Status == "Idle" || PM1Status == "Error" || (IsProcessCanModifyFoupInfo && PM1Status == "Process");
                 var rtstatus = (RtStatus == "Init" || RtStatus == "Idle" || RtStatus == "Error") || (IsProcessCanModifyFoupInfo && RtStatus == "AutoRunning");
                 return pmStatus && rtstatus;
             }
         }
+        [Subscription("Scheduler.ControlJobList")]
+        public List<ControlJobInfo> ControlJobs
+        {
+            get;
+            set;
+        }
 
         private ObservableCollection<WaferInfoItem> _cassetteWaferInfoItems = new ObservableCollection<WaferInfoItem>();
         public ObservableCollection<WaferInfoItem> CassetteWaferInfoItems

+ 22 - 2
Furnace/FurnaceUI/Views/Operations/TransferMain/CassetteRobotViewModel.cs

@@ -16,6 +16,7 @@ using Aitex.Core.RT.Log;
 using System.Linq;
 using System.Windows;
 using OpenSEMI.ClientBase;
+using MECF.Framework.Common.Jobs;
 
 namespace FurnaceUI.Views.Maintenances
 {
@@ -33,7 +34,21 @@ namespace FurnaceUI.Views.Maintenances
         public bool IsCarrierRobotOfflineButtonEnable => CarrierRobotIsOnline;
         public bool IsCarrierRobotOnlineButtonEnable => !CarrierRobotIsOnline;
 
-        public bool IsSystemStaus => (RtStatus != "AutoRunning");
+        public bool IsSystemStaus
+        {
+            get
+            {
+                if (ControlJobs != null && ControlJobs.Count > 0)
+                {
+                    return ControlJobs.FirstOrDefault().State == EnumControlJobState.Paused;
+                }
+
+
+                return (RtStatus != "AutoRunning");
+            }
+            set { }
+        }
+
 
         #region test CassetteRobot
         private List<int> _slotsCassetteRobot = new List<int>() { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
@@ -217,7 +232,12 @@ namespace FurnaceUI.Views.Maintenances
             }
         }
         #endregion
-
+        [Subscription("Scheduler.ControlJobList")]
+        public List<ControlJobInfo> ControlJobs
+        {
+            get;
+            set;
+        }
         public CassetteRobotViewModel()
         {
 

+ 12 - 1
Furnace/FurnaceUI/Views/Operations/TransferMain/StockerModifyViewModel.cs

@@ -18,6 +18,7 @@ using Caliburn.Micro;
 using Caliburn.Micro.Core;
 using FurnaceUI.Views.Editors;
 using Newtonsoft.Json;
+using MECF.Framework.Common.Jobs;
 
 namespace FurnaceUI.Views.Operations
 {
@@ -122,13 +123,23 @@ namespace FurnaceUI.Views.Operations
         {
             get
             {
+                if (ControlJobs != null && ControlJobs.Count > 0)
+                {
+                    return ControlJobs.FirstOrDefault().State == EnumControlJobState.Paused;
+                }
 
                 var pmStatus = PM1Status == "Init" || PM1Status == "Idle" || PM1Status == "Error" || (IsProcessCanModifyFoupInfo && PM1Status == "Process");
                 var rtstatus = (RtStatus == "Init" || RtStatus == "Idle" || RtStatus == "Error") || (IsProcessCanModifyFoupInfo && RtStatus == "AutoRunning");
                 return pmStatus && rtstatus;
             }
         }
-
+        [Subscription("Scheduler.ControlJobList")]
+        public List<ControlJobInfo> ControlJobs
+        {
+            get;
+            set;
+        }
+ 
         private int _cassetteSlot = 0;
 
         private ObservableCollection<WaferInfoItem> _stockerWaferInfoItems = new ObservableCollection<WaferInfoItem>();

+ 11 - 0
Furnace/FurnaceUI/Views/Operations/TransferMain/WaferRobotModifyViewModel.cs

@@ -13,6 +13,7 @@ using System.Text;
 using System.Threading.Tasks;
 using System.Windows;
 using FurnaceUI.Models;
+using MECF.Framework.Common.Jobs;
 
 
 namespace FurnaceUI.Views.Operations
@@ -88,11 +89,21 @@ namespace FurnaceUI.Views.Operations
         {
             get
             {
+                if (ControlJobs != null && ControlJobs.Count > 0)
+                {
+                    return ControlJobs.FirstOrDefault().State == EnumControlJobState.Paused;
+                }
                 var pmStatus = PM1Status == "Init" || PM1Status == "Idle" || PM1Status == "Error" || (IsProcessCanModifyFoupInfo && PM1Status == "Process");
                 var rtstatus = (RtStatus == "Init" || RtStatus == "Idle" || RtStatus == "Error") || (IsProcessCanModifyFoupInfo && RtStatus == "AutoRunning");
                 return pmStatus && rtstatus;
             }
         }
+        [Subscription("Scheduler.ControlJobList")]
+        public List<ControlJobInfo> ControlJobs
+        {
+            get;
+            set;
+        }
 
         private ObservableCollection<WaferInfoItem> _waferRobotWaferInfoItems = new ObservableCollection<WaferInfoItem>();
         public ObservableCollection<WaferInfoItem> WaferRobotWaferInfoItems

+ 19 - 2
Furnace/FurnaceUI/Views/Operations/TransferMain/WaferRobotViewModel.cs

@@ -20,6 +20,7 @@ using MECF.Framework.Common.SubstrateTrackings;
 using MECF.Framework.Common.Equipment;
 using System.Text.RegularExpressions;
 using OpenSEMI.ClientBase;
+using MECF.Framework.Common.Jobs;
 
 namespace FurnaceUI.Views.Maintenances
 {
@@ -33,10 +34,26 @@ namespace FurnaceUI.Views.Maintenances
         [Subscription("Rt.Status")]
         public string RtStatus { get; set; }
         public bool IsSelectButtonEnable => IsSystemStaus;
-
-        public bool IsSystemStaus => (RtStatus != "AutoRunning");
+        [Subscription("Scheduler.ControlJobList")]
+        public List<ControlJobInfo> ControlJobs
+        {
+            get;
+            set;
+        }
+        public bool IsSystemStaus
+        {
+            get
+            {
+                if (ControlJobs != null && ControlJobs.Count > 0)
+                {
+                    return ControlJobs.FirstOrDefault().State == EnumControlJobState.Paused;
+                }
 
 
+                return (RtStatus != "AutoRunning");
+            }
+            set { }
+        }
         [Subscription("WaferRobot.IsOnline")]
         public bool WaferRobotIsOnline { get; set; }
         public bool IsWaferRobotOfflineButtonEnable => WaferRobotIsOnline;