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);
}
}
}