using MECF.Framework.Common.DataCenter; using System; using System.Collections.Generic; using System.Data; namespace MECF.Framework.UI.Client.TrayThickness { /// /// TrayDataViewSqlHelp /// 1:查询整个Tray对象数据 /// 2:插入或者更新整个Tray对象数据 /// public class TrayDataViewSqlHelp { private string tray_number, tray_inner_number, ring_inner_number, ring_outer_number; /// /// 获取Truy对象整体的数据 /// /// /// public TrayCoatingThickness GetTrayCoatingThickness(string _trayGuid) { //这是一次查询多个对象的 //TrayCoatingThickness trayCoatingThickness = new TrayCoatingThickness(); //try //{ // //根据TrayID获取对应内外编号 // string cmdID = $"select * from tray_thickness_data where wafer_guid = '{_trayGuid}'"; // DataTable DataTable = QueryDataClient.Instance.Service.QueryData(cmdID); // if (DataTable != null && DataTable.Rows.Count > 0) // { // //一次查询整个数据对象 // List listCoatingData = new List(); // string cmd = "select * from tray_thickness_main where " + // $"tray_number='{DataTable.Rows[0]["tray_number"].ToString()}' " + // $"or tray_number = '{DataTable.Rows[0]["tray_inner_number"].ToString()}' " + // $"or tray_number = '{DataTable.Rows[0]["ring_inner_number"].ToString()}' " + // $"or tray_number = '{DataTable.Rows[0]["ring_outer_number"].ToString()}'"; // var dt = QueryDataClient.Instance.Service.QueryData(cmd); // for (int i = 0; i < dt.Rows.Count; i++) // { // if (dt.Rows[i].ItemArray.Length != 0) // { // string str = dt.Rows[i]["tray_number"].ToString(); // CoatingData coatingData = new CoatingData() // { // SerialNumber = dt.Rows[i]["tray_number"].ToString(), // MAX = dt.Rows[i]["tray_max_thickness"].ToString(), // PmOwned = dt.Rows[i]["pm_number"].ToString(), // Current = dt.Rows[i]["tray_coating_thickness"].ToString() // }; // listCoatingData.Add(coatingData); // } // else // listCoatingData.Add(new CoatingData()); // } // trayCoatingThickness.Tray = listCoatingData[0]; // trayCoatingThickness.TrayInner = listCoatingData[1]; // trayCoatingThickness.RingInner = listCoatingData[2]; // trayCoatingThickness.RingOuter = listCoatingData[3]; // //一次查询单个对象,临时屏蔽,后续删除 // //trayCoatingThickness.Tray = GetCoatingData(tray_number, out _); // //trayCoatingThickness.TrayInner = GetCoatingData(tray_inner_number, out _); // //trayCoatingThickness.RingInner = GetCoatingData(ring_inner_number, out _); // //trayCoatingThickness.RingOuter = GetCoatingData(ring_outer_number, out _); // } // return trayCoatingThickness; //} //catch (Exception) //{ // return trayCoatingThickness; //} //这是一次查询一个对象 TrayCoatingThickness trayCoatingThickness = new TrayCoatingThickness(); try { //根据TrayID获取对应内外编号 string cmdID = $"select * from tray_thickness_data where wafer_guid = '{_trayGuid}'"; DataTable DataTable = QueryDataClient.Instance.Service.QueryData(cmdID); if (DataTable != null && DataTable.Rows.Count > 0) { tray_number = DataTable.Rows[0]["tray_number"].ToString(); tray_inner_number = DataTable.Rows[0]["tray_inner_number"].ToString(); ring_inner_number = DataTable.Rows[0]["ring_inner_number"].ToString(); ring_outer_number = DataTable.Rows[0]["ring_outer_number"].ToString(); trayCoatingThickness.Tray = GetCoatingData(tray_number, out _); trayCoatingThickness.TrayInner = GetCoatingData(tray_inner_number, out _); trayCoatingThickness.RingInner = GetCoatingData(ring_inner_number, out _); trayCoatingThickness.RingOuter = GetCoatingData(ring_outer_number, out _); } return trayCoatingThickness; } catch (Exception) { return trayCoatingThickness; } } /// /// 获取单个环的数据 /// /// /// /// public CoatingData GetCoatingData(string sn, out bool isExistedInDb) { var cmd = $"select * from tray_thickness_main where tray_number = '{sn}' ORDER BY creat_time DESC LIMIT 1"; var dt = QueryDataClient.Instance.Service.QueryData(cmd); if (dt is { Rows.Count: > 0 }) { var coatingData = new CoatingData() { SerialNumber = dt.Rows[0]["tray_number"].ToString(), MAX = dt.Rows[0]["tray_max_thickness"].ToString(), PmOwned = dt.Rows[0]["pm_number"].ToString(), Current = dt.Rows[0]["tray_coating_thickness"].ToString() }; isExistedInDb = true; return coatingData; } isExistedInDb = false; return new CoatingData(); } /// /// 保存用户输入的数据到数据库 /// /// /// public bool UpTrayNumberData(TrayCoatingThickness trayCoatingThickness, string trayUid, List coatingData) { List cmdList = new List(); string cmdID = $"select * from tray_thickness_data where wafer_guid = '{trayUid}'"; var dt = QueryDataClient.Instance.Service.QueryData(cmdID); if (dt is { Rows.Count: > 0 }) cmdList.Add(Cmd_update(trayCoatingThickness, trayUid)); else cmdList.Add(Cmd_data_insert(trayCoatingThickness, trayUid)); foreach (var item in coatingData) { cmdList.Add(Cmd_main_insert(item)); } bool result= QueryDataClient.Instance.Service.ExcuteTransAction(cmdList); return result; } public bool GetPartSnByTrayUid(string trayUid, out List coatingData) { coatingData = new List(); var sql = $"select tray_number, tray_inner_number, ring_inner_number, ring_outer_number from tray_thickness_data WHERE wafer_guid = '{trayUid}' limit 1"; var dt = QueryDataClient.Instance.Service.QueryData(sql); if (dt is { Rows.Count: > 0 }) { //partSnList.Add(); } return false; } /// /// Tray中对象编号插入Sql语句拼接 /// /// /// /// private string Cmd_data_insert(TrayCoatingThickness trayCoatingThickness,string trayID) { string cmd_data_insert = "insert into tray_thickness_data" + "(wafer_guid,tray_number, tray_inner_number, ring_inner_number, ring_outer_number)" + $"values ('{trayID}'," + $"'{trayCoatingThickness.Tray.SerialNumber}'," + $"'{trayCoatingThickness.TrayInner.SerialNumber}'," + $"'{trayCoatingThickness.RingInner.SerialNumber}'," + $"'{trayCoatingThickness.RingOuter.SerialNumber}')"; return cmd_data_insert; } /// /// Tray中对象编号更新Sql语句拼接 /// /// /// /// private string Cmd_update(TrayCoatingThickness trayCoatingThickness, string trayID) { string cmd_update = $"update tray_thickness_data set " + $"tray_number = '{trayCoatingThickness.Tray.SerialNumber}', " + $"tray_inner_number= '{trayCoatingThickness.TrayInner.SerialNumber}'," + $"ring_inner_number= '{trayCoatingThickness.RingInner.SerialNumber}'," + $"ring_outer_number= '{trayCoatingThickness.RingOuter.SerialNumber}'" + $"where wafer_guid = '{trayID}'"; return cmd_update; } /// /// 每个环对应的数据插入Sql语句拼接 /// /// /// private string Cmd_main_insert(CoatingData coatingData) { return "insert into tray_thickness_main" + "(tray_guid,tray_number,pm_number, tray_coating_thickness, tray_max_thickness,tray_label,creat_time)" + $"values ('{Guid.NewGuid()}'," + $"'{coatingData.SerialNumber}'," + $"'{coatingData.PmOwned}'," + $"'{coatingData.Current}'," + $"'{coatingData.MAX}'," + $"'{coatingData.Caption}'," + $"'{coatingData.CreatTime}')"; } } }