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;
using MECF.Framework.Common.ProcessCell;
namespace MECF.Framework.Common.DBCore
{
public class MetalUsageRecorder
{
///
/// 加载Metal使用量集合
///
///
public static List GetAllMetalUsages()
{
List result = new List();
string sql = $"SELECT * FROM metal_usage";
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++)
{
MetalUsage data = new MetalUsage();
data.MetalName = ds.Tables[0].Rows[i]["metal_name"].ToString();
data.TotalUsage = double.Parse(ds.Tables[0].Rows[i]["total_usage"].ToString());
data.AnodeAUsage = double.Parse(ds.Tables[0].Rows[i]["anode_a_usage"].ToString());
data.AnodeBUsage = double.Parse(ds.Tables[0].Rows[i]["anode_b_usage"].ToString());
data.MembranceAUsage = double.Parse(ds.Tables[0].Rows[i]["membrance_a_usage"].ToString());
data.MembranceBUsage = double.Parse(ds.Tables[0].Rows[i]["membrance_b_usage"].ToString());
data.TotalWafers = int.Parse(ds.Tables[0].Rows[i]["total_wafers"].ToString());
data.AnodeAWafers = int.Parse(ds.Tables[0].Rows[i]["anode_a_wafers"].ToString());
data.AnodeBWafers = int.Parse(ds.Tables[0].Rows[i]["anode_b_wafers"].ToString());
data.AnodeABathUsage = int.Parse(ds.Tables[0].Rows[i]["anode_a_bath_usage"].ToString());
data.AnodeBBathUsage = int.Parse(ds.Tables[0].Rows[i]["anode_b_bath_usage"].ToString());
data.BathResetTime = DateTime.Parse(ds.Tables[0].Rows[i]["bath_reset_time"].ToString());
result.Add(data);
}
ds.Clear();
return result;
}
///
/// 新增
///
///
///
///
public static int AddMetalUsage(MetalUsage info)
{
string sql = string.Format(@"Insert into metal_usage(metal_name, total_usage,anode_a_usage,anode_b_usage,membrance_a_usage,
membrance_b_usage,total_wafers,anode_a_wafers,anode_b_wafers,anode_a_bath_usage,anode_b_bath_usage,bath_reset_time,create_time, update_time)
Values('{0}',{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},'{11}','{12}','{13}');",
info.MetalName, info.TotalUsage, info.AnodeAUsage, info.AnodeBUsage, info.MembranceAUsage, info.MembranceBUsage,
info.TotalWafers, info.AnodeAWafers, info.AnodeBWafers, info.AnodeABathUsage, info.AnodeBBathUsage, info.BathResetTime.ToString("yyyy-MM-dd HH:mm:ss.fff"), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
return DB.SyncInsert(sql);
}
///
/// 更新
///
///
///
///
public static void UpdateMetalUsageData(string metalName, MetalUsage info)
{
string sql = string.Format(@"update metal_usage set total_usage={0},anode_a_usage={1},anode_b_usage={2},
membrance_a_usage={3},membrance_b_usage={4},total_wafers={5},anode_a_wafers={6},
anode_b_wafers={7},anode_a_bath_usage={8},anode_b_bath_usage={9},bath_reset_time='{10}',update_time='{11}' where metal_name='{12}';",
info.TotalUsage, info.AnodeAUsage, info.AnodeBUsage, info.MembranceAUsage, info.MembranceBUsage,
info.TotalWafers, info.AnodeAWafers, info.AnodeBWafers, info.AnodeABathUsage, info.AnodeBBathUsage, info.BathResetTime.ToString("yyyy-MM-dd HH:mm:ss.fff"),
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), metalName);
DB.Update(sql);
}
///
/// 更新
///
///
///
///
public static int SyncUpdateMetalUsageData(string metalName, MetalUsage info)
{
string sql = string.Format(@"update metal_usage set total_usage={0},anode_a_usage={1},anode_b_usage={2},
membrance_a_usage={3},membrance_b_usage={4},total_wafers={5},anode_a_wafers={6},
anode_b_wafers={7},anode_a_bath_usage={8},anode_b_bath_usage={9},bath_reset_time='{10}',update_time='{11}' where metal_name='{12}';",
info.TotalUsage, info.AnodeAUsage, info.AnodeBWafers, info.MembranceAUsage, info.MembranceBUsage,
info.TotalWafers, info.AnodeAWafers, info.AnodeBWafers, info.AnodeABathUsage, info.AnodeBBathUsage, info.BathResetTime.ToString("yyyy-MM-dd HH:mm:ss.fff"),
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), metalName);
return DB.SyncUpdate(sql);
}
}
}