| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | using MECF.Framework.Common.DataCenter;using OpenSEMI.ClientBase;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using ACC = Aitex.Core.Common;namespace Venus_MainPages.Unity{    public class WaferStatusImp    {        public WaferStatusImp(IQueryDataService dataService)        {            DataService = dataService;        }        public List<WaferInfo> GetWaferStatus(string moduleID)        {            List<WaferInfo> result = new List<WaferInfo>();            string param = moduleID + ".ModuleWaferList";            ACC.WaferInfo[] wafers = QueryDataClient.Instance.Service.GetData(param) as ACC.WaferInfo[];            if (wafers != null)            {                for (int i = 0; i < wafers.Length; i++)                {                    result.Add(WaferInfoConverter(wafers[i], moduleID, i));                }            }            return result;        }        private WaferInfo WaferInfoConverter(ACC.WaferInfo awafer, string modid, int slotid)        {            WaferInfo wafer = new WaferInfo();            wafer.ModuleID = modid;            wafer.SlotID = slotid;            wafer.SlotIndex = slotid + 1;            wafer.WaferID = awafer.WaferID;            wafer.SourceName = awafer.WaferOrigin;            wafer.WaferStatus = WaferStatusConverter(awafer);            return wafer;        }        //0: trans?        //1:goden        //2:blue        //3:cyan        //4:green        //5:error        private int WaferStatusConverter(ACC.WaferInfo awafer)        {            if (awafer.Status == ACC.WaferStatus.Empty)                return 0;            if (awafer.Status == ACC.WaferStatus.Normal)            {                switch (awafer.ProcessState)                {                    case ACC.EnumWaferProcessStatus.InProcess: return 3;                    case ACC.EnumWaferProcessStatus.Completed: return 4;                    case ACC.EnumWaferProcessStatus.Failed: return 5;                    case ACC.EnumWaferProcessStatus.Idle: return awafer.ProcessJob == null ? 1 : 2;                }            }            if (awafer.Status == ACC.WaferStatus.Dummy)            {                return 1;            }            return 5;        }        private IQueryDataService DataService;    }}
 |