| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | using Aitex.Core.Common;using Aitex.Core.Util;using PunkHPX8_RT.Dispatch;using MECF.Framework.Common.Equipment;using MECF.Framework.Common.Jobs;using MECF.Framework.Common.SubstrateTrackings;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace PunkHPX8_RT.Modules{    public class FaModuleNotifier : Singleton<FaModuleNotifier>    {        /// <summary>        /// FA回复        /// </summary>        private SchedulerFACallback _schedulerFACallback = new SchedulerFACallback();        /// <summary>        /// 上报SRD Recipe启动        /// </summary>        /// <param name="waferInfo"></param>        /// <param name="recipeId"></param>        public void NotifySRDRecipeStart(ModuleName srdModule, string recipeId)        {            if (WaferManager.Instance.CheckNoWafer(srdModule, 0))            {                return;            }            WaferInfo waferInfo = WaferManager.Instance.GetWafer(srdModule, 0);            if (waferInfo == null || waferInfo.IsEmpty)            {                return;            }            if (waferInfo.ProcessJob == null)            {                return;            }            ControlJobInfo controlJobInfo = JobProcesser.Instance.GetControlJobInfoByName(waferInfo.ProcessJob.ControlJobName);            if (controlJobInfo == null)            {                return;            }            _schedulerFACallback.SrdRecipeStart(controlJobInfo, waferInfo.SequenceName, recipeId, ((ModuleName)waferInfo.Station).ToString(), waferInfo.Slot);        }        /// <summary>        /// 上报SRD Recipe结束        /// </summary>        /// <param name="waferInfo"></param>        /// <param name="recipeId"></param>        public void NotifySRDRecipeEnd(ModuleName srdModule, string recipeId)        {            if (WaferManager.Instance.CheckNoWafer(srdModule, 0))            {                return;            }            WaferInfo waferInfo = WaferManager.Instance.GetWafer(srdModule, 0);            if (waferInfo == null || waferInfo.IsEmpty)            {                return;            }            if (waferInfo.ProcessJob == null)            {                return;            }            ControlJobInfo controlJobInfo = JobProcesser.Instance.GetControlJobInfoByName(waferInfo.ProcessJob.ControlJobName);            if (controlJobInfo == null)            {                return;            }            _schedulerFACallback.SrdRecipeEnd(controlJobInfo, waferInfo.SequenceName, recipeId, ((ModuleName)waferInfo.Station).ToString(), waferInfo.Slot);        }        /// <summary>        /// 上报SRD Recipe失败        /// </summary>        /// <param name="waferInfo"></param>        /// <param name="recipeId"></param>        public void NotifySRDRecipeFailed(ModuleName srdModule, string recipeId)        {            if (WaferManager.Instance.CheckNoWafer(srdModule, 0))            {                return;            }            WaferInfo waferInfo = WaferManager.Instance.GetWafer(srdModule, 0);            if (waferInfo == null || waferInfo.IsEmpty)            {                return;            }            if (waferInfo.ProcessJob == null)            {                return;            }            ControlJobInfo controlJobInfo = JobProcesser.Instance.GetControlJobInfoByName(waferInfo.ProcessJob.ControlJobName);            if (controlJobInfo == null)            {                return;            }            _schedulerFACallback.SrdRecipeFailed(controlJobInfo, waferInfo.SequenceName, recipeId, ((ModuleName)waferInfo.Station).ToString(), waferInfo.Slot);        }    }}
 |