using Aitex.Core.Common; using Aitex.Core.RT.DBCore; using DocumentFormat.OpenXml.EMMA; using MECF.Framework.Common.Equipment; using MECF.Framework.Common.SubstrateTrackings; using MECF.Framework.Common.WaferHolder; using CyberX8_Core; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MECF.Framework.Common.DBCore { public class WaferHolderDataRecorder { /// /// 加载所有载具 /// /// public static List GetAllWaferHolderDatas() { List result = new List(); string sql = $"SELECT * FROM wafer_holder"; DataSet ds = DB.ExecuteDataset(sql); if (ds == null) return result; if (ds.Tables.Count == 0) return result; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { WaferHolderInfo data = new WaferHolderInfo(); data.Id = ds.Tables[0].Rows[i]["id"].ToString(); data.TotalUses = int.Parse(ds.Tables[0].Rows[i]["total_uses"].ToString()); data.BufferId = int.Parse(ds.Tables[0].Rows[i]["buffer_id"].ToString()); data.CrsType = ds.Tables[0].Rows[i]["crs_type"].ToString(); data.Enabled = bool.Parse(ds.Tables[0].Rows[i]["enabled"].ToString()); data.WaferSize = int.Parse(ds.Tables[0].Rows[i]["wafer_size"].ToString()); data.Chemistry = ds.Tables[0].Rows[i]["chemistry"].ToString(); data.CrsAId = ds.Tables[0].Rows[i]["crsa_id"].ToString(); data.CrsATotalUses = int.Parse(ds.Tables[0].Rows[i]["crsa_total_uses"].ToString()); data.CrsAUsesSincePadClean =int.Parse(ds.Tables[0].Rows[i]["crsa_pad_uses"].ToString()); data.CrsAUsesSinceSealClean =int.Parse(ds.Tables[0].Rows[i]["crsa_seal_uses"].ToString()); data.CrsBId = ds.Tables[0].Rows[i]["crsb_id"].ToString(); data.CrsBTotalUses = int.Parse(ds.Tables[0].Rows[i]["crsb_total_uses"].ToString()); data.CrsBUsesSincePadClean = int.Parse(ds.Tables[0].Rows[i]["crsb_pad_uses"].ToString()); data.CrsBUsesSinceSealClean = int.Parse(ds.Tables[0].Rows[i]["crsb_seal_uses"].ToString()); data.TotalDummyWafers = int.Parse(ds.Tables[0].Rows[i]["total_dummy_wafers"].ToString()); data.TotalProductWafers = int.Parse(ds.Tables[0].Rows[i]["total_product_wafers"].ToString()); data.CurrentLocation = ds.Tables[0].Rows[i]["current_location"].ToString(); data.Status = (WaferHolderStatus)int.Parse(ds.Tables[0].Rows[i]["status"].ToString()); data.WaferAId = ds.Tables[0].Rows[i]["wafera_id"].ToString(); data.WaferBId = ds.Tables[0].Rows[i]["waferb_id"].ToString(); data.WaferAType = int.Parse(ds.Tables[0].Rows[i]["wafera_type"].ToString()); data.WaferBType = int.Parse(ds.Tables[0].Rows[i]["waferb_type"].ToString()); result.Add(data); } ds.Clear(); return result; } /// /// 根据Location加载WaferHolder信息 /// /// public static WaferHolderInfo GetWaferHolderDataByLocation(string location) { WaferHolderInfo data = new WaferHolderInfo(); string sql = $"SELECT * FROM wafer_holder WHERE current_location='{location}'"; DataSet ds = DB.ExecuteDataset(sql); if (ds == null) return null; if (ds.Tables[0].Rows.Count == 0) return null; data.Id = ds.Tables[0].Rows[0]["id"].ToString(); data.BufferId = int.Parse(ds.Tables[0].Rows[0]["buffer_id"].ToString()); data.TotalUses = int.Parse(ds.Tables[0].Rows[0]["total_uses"].ToString()); data.CrsType = ds.Tables[0].Rows[0]["crs_type"].ToString(); data.Enabled = bool.Parse(ds.Tables[0].Rows[0]["enabled"].ToString()); data.WaferSize = int.Parse(ds.Tables[0].Rows[0]["wafer_size"].ToString()); data.Chemistry = ds.Tables[0].Rows[0]["chemistry"].ToString(); data.CrsAId = ds.Tables[0].Rows[0]["crsa_id"].ToString(); data.CrsATotalUses = int.Parse(ds.Tables[0].Rows[0]["crsa_total_uses"].ToString()); data.CrsAUsesSincePadClean = int.Parse(ds.Tables[0].Rows[0]["crsa_pad_uses"].ToString()); data.CrsAUsesSinceSealClean = int.Parse(ds.Tables[0].Rows[0]["crsa_seal_uses"].ToString()); data.CrsBId = ds.Tables[0].Rows[0]["crsb_id"].ToString(); data.CrsBTotalUses = int.Parse(ds.Tables[0].Rows[0]["crsb_total_uses"].ToString()); data.CrsBUsesSincePadClean = int.Parse(ds.Tables[0].Rows[0]["crsb_pad_uses"].ToString()); data.CrsBUsesSinceSealClean = int.Parse(ds.Tables[0].Rows[0]["crsb_seal_uses"].ToString()); data.TotalDummyWafers = int.Parse(ds.Tables[0].Rows[0]["total_dummy_wafers"].ToString()); data.TotalProductWafers = int.Parse(ds.Tables[0].Rows[0]["total_product_wafers"].ToString()); data.CurrentLocation = ds.Tables[0].Rows[0]["current_location"].ToString(); data.Status = (WaferHolderStatus)int.Parse(ds.Tables[0].Rows[0]["status"].ToString()); data.WaferAId = ds.Tables[0].Rows[0]["wafera_id"].ToString(); data.WaferBId = ds.Tables[0].Rows[0]["waferb_id"].ToString(); data.WaferAType = int.Parse(ds.Tables[0].Rows[0]["wafera_type"].ToString()); data.WaferBType = int.Parse(ds.Tables[0].Rows[0]["waferb_type"].ToString()); ds.Clear(); return data; } /// /// /// /// /// public static int UpdateWaferHolderEnable(string waferHodlerId,bool enable) { string sql = string.Format("UPDATE wafer_holder SET enabled={0},Status={3},update_time='{2}' WHERE id='{1}';", enable, waferHodlerId, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"),enable?(int)WaferHolderStatus.Normal:(int)WaferHolderStatus.Disabled); return DB.SyncUpdate(sql); } /// 301 /// 新增 /// /// /// /// public static int AddWaferHolderData(int bufferId, WaferHolderInfo info) { string sql =string.Format(@"Insert into wafer_holder(id, buffer_id, crs_type, wafer_size, enabled, chemistry, crsa_id, crsa_total_uses, crsa_pad_uses, crsa_seal_uses, crsb_id, crsb_total_uses, crsb_pad_uses, crsb_seal_uses, total_dummy_wafers, total_product_wafers,current_location,status, create_time, update_time,wafera_id,waferb_id, wafera_type,waferb_type,total_uses) Values('{0}',{1},'{2}',{3},{4},'{5}','{6}',{7},{8},{9}, '{10}',{11},{12},{13},{14},{15},'{16}',{17},'{18}','{19}','{20}','{21}',{22},{23},{24});", info.Id,bufferId,info.CrsType,info.WaferSize,info.Enabled,info.Chemistry,info.CrsAId,info.CrsATotalUses,info.CrsAUsesSincePadClean, info.CrsAUsesSinceSealClean,info.CrsBId,info.CrsBTotalUses,info.CrsBUsesSincePadClean,info.CrsBUsesSinceSealClean,info.TotalDummyWafers,info.TotalProductWafers, info.CurrentLocation, (int)info.Status,DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"),info.WaferAId,info.WaferBId, info.WaferAType,info.WaferBType,info.TotalUses); return DB.SyncInsert(sql); } /// /// 更新 /// /// /// /// public static void UpdateWaferHolderData(string waferHolderId, WaferHolderInfo info) { string sql = string.Format(@"update wafer_holder set crs_type='{0}', wafer_size={1},chemistry='{2}', crsa_id='{3}', crsa_total_uses={4}, crsa_pad_uses={5}, crsa_seal_uses={6},crsb_id='{7}', crsb_total_uses={8}, crsb_pad_uses={9}, crsb_seal_uses={10}, total_dummy_wafers={11}, total_product_wafers={12}, update_time='{13}',current_location='{14}',buffer_id={15}, wafera_id='{16}',waferb_id='{17}',wafera_type={18},waferb_type={19},id='{21}',total_uses={22} where id='{20}';", info.CrsType, info.WaferSize,info.Chemistry, info.CrsAId, info.CrsATotalUses, info.CrsAUsesSincePadClean, info.CrsAUsesSinceSealClean, info.CrsBId, info.CrsBTotalUses, info.CrsBUsesSincePadClean, info.CrsBUsesSinceSealClean, info.TotalDummyWafers, info.TotalProductWafers,DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"),info.CurrentLocation,info.BufferId, info.WaferAId, info.WaferBId,info.WaferAType, info.WaferBType,waferHolderId,info.Id,info.TotalUses); DB.Update(sql); } /// /// 更新 /// /// /// /// public static int SyncUpdateWaferHolderData(string waferHolderId, WaferHolderInfo info) { string sql = string.Format(@"update wafer_holder set id='{0}',crs_type='{1}', wafer_size={2},chemistry='{3}', crsa_id='{4}', crsa_total_uses={5}, crsa_pad_uses={6}, crsa_seal_uses={7},crsb_id='{8}', crsb_total_uses={9}, crsb_pad_uses={10}, crsb_seal_uses={11}, total_dummy_wafers={12}, total_product_wafers={13}, update_time='{14}',current_location='{15}',buffer_id={16}, wafera_id='{17}',waferb_id='{18}',wafera_type={19},waferb_type={20},total_uses={22} where id='{21}';", info.Id, info.CrsType, info.WaferSize, info.Chemistry, info.CrsAId, info.CrsATotalUses, info.CrsAUsesSincePadClean, info.CrsAUsesSinceSealClean, info.CrsBId, info.CrsBTotalUses, info.CrsBUsesSincePadClean, info.CrsBUsesSinceSealClean, info.TotalDummyWafers, info.TotalProductWafers, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), info.CurrentLocation, info.BufferId, info.WaferAId, info.WaferBId, info.WaferAType, info.WaferBType, waferHolderId,info.TotalUses); return DB.SyncUpdate(sql); } /// /// 删除 /// /// /// public static int DeleteWaferHolderData(string waferHolderId) { string sql = string.Format(@"delete from wafer_holder where id='{0}'", waferHolderId); return DB.SyncUpdate(sql); } } }