Browse Source

fix 绑定SVID:BoatCurrentFilmThicknes数据

jiangjy 1 month ago
parent
commit
329c78dce0

+ 23 - 6
Furnace/FurnaceRT/Equipments/PMs/PMModule.cs

@@ -451,12 +451,12 @@ namespace FurnaceRT.Equipments.PMs
             });
 
 
+            InitScheduleData();
 
             FDCSubscribe();
 
             InitOtherData();
             InitN2PurgeData();
-            InitScheduleMaintenanceSubscribe();
         }
 
         private void InitStats()
@@ -1737,9 +1737,19 @@ namespace FurnaceRT.Equipments.PMs
 
         }
         #region 
+
+        #region 
         private string _processRecipeStepName = "";
         private string _subRecipeStepName = "";
         private string _subRecipeStepNumber = "";
+        private string _currentFilmThickness = "";
+        private string _dryClearCount = "";
+        /// <summary>
+        /// 更新FDC采集的数据
+        /// </summary>
+        /// <param name="isSub"></param>
+        /// <param name="stepName"></param>
+        /// <param name="stepNo"></param>
         public void SetFDCRecipeStepName(bool isSub, string stepName, string stepNo = "")
         {
             if (isSub)
@@ -1755,22 +1765,29 @@ namespace FurnaceRT.Equipments.PMs
 
             }
         }
+        #endregion
+
         public void ResetFDCRecipeStepName()
         {
-
             _subRecipeStepName = "";
             _subRecipeStepNumber = "";
             _processRecipeStepName = "";
-
         }
-
+        public void SetCurrentFilmThickness(float value)
+        {
+            _currentFilmThickness = value.ToString();
+        }
+        public void SetDryClearCount(float value)
+        {
+            _dryClearCount = value.ToString();
+        }
         public void FDCSubscribe()
         {
-
+            DATA.Subscribe($"DryClearCount", () => _dryClearCount);
+            DATA.Subscribe($"BoatCurrentFilmThickness", () => _currentFilmThickness);
             DATA.Subscribe($"ProcessRecipeStepName", () => _processRecipeStepName);
             DATA.Subscribe($"SubRecipeStepName", () => _subRecipeStepName);
             DATA.Subscribe($"SubRecipeStepNumber", () => _subRecipeStepNumber);
-
         }
         #endregion
     }

+ 38 - 13
Furnace/FurnaceRT/Equipments/PMs/PMScheduleMaintenance.cs

@@ -32,25 +32,47 @@ namespace FurnaceRT.Equipments.PMs
 {
     public partial class PMModule
     {
-        public void InitScheduleMaintenanceSubscribe()
-        {
-            DATA.Subscribe($"Boat.CurrentFilmThickness", () => GetBoatCurrentFilmThicknes());
-        }
 
         private List<ScheduleMaintenanceDataItem> _dbRecords { get; set; } = new List<ScheduleMaintenanceDataItem>();
 
-        public string GetBoatCurrentFilmThicknes()
+        public void InitScheduleData()
         {
-            var item = _dbRecords.FirstOrDefault(a => a.Item == MaintenanceItemEnum.BoatRecipeThickness1.ToString() && a.Path == $"{DataItemEnum.Boat}");
+            if (_dbRecords == null || _dbRecords.Count == 0)
+            {
+                GetAllDBRecord();
+            }
 
+            InitBoatCurrentFilmThicknes();
+        }
+        private void InitBoatCurrentFilmThicknes()
+        {
+            float value = 0;
+            var item = _dbRecords.FirstOrDefault(a => a.Item == MaintenanceItemEnum.BoatRecipeThickness1.ToString() && a.Path == $"{DataItemEnum.Boat}");
             if (item == null)
-                return "0";
-
-            if (item != null && item.Item == MaintenanceItemEnum.BoatRecipeThickness1.ToString())
-                return item.CurrentValue.ToString();
-
-            return "0";
-
+            {
+                value = 0;
+            }
+            else
+            {
+                if (item != null && item.Item == MaintenanceItemEnum.BoatRecipeThickness1.ToString())
+                    value = item.CurrentValue;
+            }
+            SetCurrentFilmThickness(value);
+        }
+        private void InitDryClearCount()
+        {
+            float value = 0;
+            var item = _dbRecords.FirstOrDefault(a => a.Item == MaintenanceItemEnum.RecipeStepExecuteFreq2.ToString() && a.Path.StartsWith($"{DataItemEnum.Reactor}"));
+            if (item == null)
+            {
+                value = 0;
+            }
+            else
+            {
+                if (item != null && item.Item == MaintenanceItemEnum.RecipeStepExecuteFreq2.ToString())
+                    value = item.CurrentValue;
+            }
+            SetDryClearCount(value);
         }
         public void GetAllDBRecord()
         {
@@ -191,7 +213,10 @@ namespace FurnaceRT.Equipments.PMs
                 return;
 
             if (item != null && item.Item == MaintenanceItemEnum.BoatRecipeThickness1.ToString())
+            {
                 Singleton<ScheduleMaintenanceDataManager>.Instance.Increase(item.Item, thickness);
+                SetCurrentFilmThickness(Singleton<ScheduleMaintenanceDataManager>.Instance.GetItem(item.Item).CurrentValue);
+            }
         }
 
         /// <summary>