2023-05-22 18:32:18 +08:00
using Aitex.Core.RT.DBCore ;
using Aitex.Core.RT.Log ;
2023-05-23 11:55:02 +08:00
using DocumentFormat.OpenXml.Office.Word ;
2023-05-22 18:32:18 +08:00
using MECF.Framework.Common.DataCenter ;
using System ;
using System.Collections.Generic ;
using System.Data ;
using System.Linq ;
namespace MECF.Framework.UI.Client.TrayThickness.HistoryData
{
public class HistoryCoatingSqlHelp
{
public List < CoatingData > QueryUpdate ( ) //从数据库整体更新所有数据,在初始化和数据操作后更新
{
List < CoatingData > coatingDataList = new List < CoatingData > ( ) ;
2023-05-24 13:17:09 +08:00
string cmd = $"select * from tray_thickness_main order by creat_time desc" ;
2023-05-22 18:32:18 +08:00
try
{
2023-05-23 11:55:02 +08:00
var dt = QueryDataClient . Instance . Service . QueryData ( cmd ) ; //只能界面用
2023-05-22 18:32:18 +08:00
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 ( )
{
Number = dt . Rows [ i ] [ "tray_number" ] . ToString ( ) ,
MAX = dt . Rows [ i ] [ "tray_max_thickness" ] . ToString ( ) ,
PM_Model = dt . Rows [ i ] [ "pm_number" ] . ToString ( ) ,
Current = dt . Rows [ i ] [ "tray_coating_thickness" ] . ToString ( ) ,
CreatTime = dt . Rows [ i ] [ "creat_time" ] . ToString ( ) ,
Label = dt . Rows [ i ] [ "tray_label" ] . ToString ( ) ,
2023-05-24 13:17:09 +08:00
Index = $"Tray { i / 4 + 1 }"
2023-05-22 18:32:18 +08:00
} ;
coatingDataList . Add ( coatingData ) ;
}
else
coatingDataList . Add ( new CoatingData ( ) ) ;
}
}
catch ( Exception )
{
return null ;
}
return coatingDataList ;
}
public bool GrowTray ( string wafer_guid , double GrowthRate , double Seconds ) //Tray更新增长厚度
{
/ /
try
{
string tray_numbers = "" ;
string sSql = "select * from tray_thickness_data where wafer_guid like '" + wafer_guid . Trim ( ) + "'" ;
2023-05-23 11:55:02 +08:00
DataSet ds = DB . ExecuteDataset ( sSql ) ;
if ( ds = = null )
2023-05-22 18:32:18 +08:00
{
return false ;
}
2023-05-23 11:55:02 +08:00
if ( ds . Tables [ 0 ] . Rows . Count = = 0 )
2023-05-22 18:32:18 +08:00
{
return false ;
}
2023-05-23 11:55:02 +08:00
tray_numbers = "'" + ds . Tables [ 0 ] . Rows [ 0 ] [ "tray_number" ] . ToString ( ) + "','" + ds . Tables [ 0 ] . Rows [ 0 ] [ "tray_inner_number" ] . ToString ( ) + "','" + ds . Tables [ 0 ] . Rows [ 0 ] [ "ring_inner_number" ] . ToString ( ) + "','" + ds . Tables [ 0 ] . Rows [ 0 ] [ "ring_outer_number" ] . ToString ( ) + "'" ;
2023-05-22 18:32:18 +08:00
/ /
double GrowthValue = GrowthRate * Seconds / 3600 ; //μm
string sGrowthValue = string . Format ( "{0:N2}" , GrowthValue ) ;
string sDate = DateTime . Now . ToLongDateString ( ) ;
string sTime = DateTime . Now . ToLongTimeString ( ) ;
string [ ] gCmd = { string . Format ( "update tray_thickness_main set tray_coating_thickness = tray_coating_thickness + {0} where tray_number in ({1}) " , sGrowthValue , tray_numbers )
} ;
return DB . ExcuteTransAction ( gCmd . ToList < string > ( ) ) ;
}
catch ( Exception ex )
{
LOG . Write ( ex , 2 , "WaferDataRecorderEx.cs" , "UpdatePMInfoByPMNumberTrans" ) ;
return false ;
}
}
public bool GrowPM ( string pmName , double GrowthRate , double Seconds ) //PM更新增长厚度
{
try
{
string tray_numbers = "" ;
string sSql = "select * from tray_thickness_data where wafer_guid like 'PM' " ;
2023-05-23 11:55:02 +08:00
DataSet ds = DB . ExecuteDataset ( sSql ) ;
if ( ds = = null )
2023-05-22 18:32:18 +08:00
{
return false ;
}
2023-05-23 11:55:02 +08:00
if ( ds . Tables [ 0 ] . Rows . Count = = 0 )
2023-05-22 18:32:18 +08:00
{
return false ;
}
if ( pmName = = "PM1" )
{
2023-05-23 11:55:02 +08:00
tray_numbers = $"'{ds.Tables[0].Rows[0][" tray_number "].ToString()}','{ds.Tables[0].Rows[0][" tray_inner_number "].ToString()}'" ;
2023-05-22 18:32:18 +08:00
}
else
{
2023-05-23 11:55:02 +08:00
tray_numbers = $"'{ds.Tables[0].Rows[0][" ring_inner_number "].ToString()}','{ds.Tables[0].Rows[0][" ring_outer_number "].ToString()}'" ;
2023-05-22 18:32:18 +08:00
}
/ /
double GrowthValue = GrowthRate * Seconds / 3600 ; //μm
string sGrowthValue = string . Format ( "{0:N2}" , GrowthValue ) ;
string sDate = DateTime . Now . ToLongDateString ( ) ;
string sTime = DateTime . Now . ToLongTimeString ( ) ;
string [ ] gCmd = {
string . Format ( "update tray_thickness_main set tray_coating_thickness = tray_coating_thickness + {0} where tray_number in ({1}) " , sGrowthValue , tray_numbers )
} ;
return DB . ExcuteTransAction ( gCmd . ToList < string > ( ) ) ;
}
catch ( Exception ex )
{
LOG . Write ( ex , 2 , "WaferDataRecorderEx.cs" , "UpdatePMInfoByPMNumberTrans" ) ;
return false ;
}
}
public List < string > Get_Coating_MAX ( string wafer_guid )
{
2023-05-23 11:55:02 +08:00
List < string > inforList = new List < string > ( ) ; //返回查询到的数据集合
string _id = wafer_guid . Contains ( "PM" ) ? "PM" : wafer_guid ;
string sSql = $"select * from tray_thickness_data where wafer_guid like '{_id}'" ;
DataSet ds = DB . ExecuteDataset ( sSql ) ;
if ( ds = = null )
2023-05-22 18:32:18 +08:00
{
2023-05-23 11:55:02 +08:00
return null ;
2023-05-22 18:32:18 +08:00
}
2023-05-23 11:55:02 +08:00
if ( ds . Tables [ 0 ] . Rows . Count = = 0 )
2023-05-22 18:32:18 +08:00
{
return null ;
}
2023-05-23 11:55:02 +08:00
string cmd = "select tray_coating_thickness , tray_max_thickness from tray_thickness_main where " ;
if ( wafer_guid = = "PM1" )
{
cmd + = $"tray_number='{ds.Tables[0].Rows[0][" tray_number "].ToString()}' " +
$"or tray_number = '{ds.Tables[0].Rows[0][" tray_inner_number "].ToString()}'" ;
}
else if ( wafer_guid = = "PM2" )
{
cmd + = $"tray_number = '{ds.Tables[0].Rows[0][" ring_inner_number "].ToString()}' " +
$"or tray_number = '{ds.Tables[0].Rows[0][" ring_outer_number "].ToString()}'" ;
}
else
{
cmd + = $"tray_number='{ds.Tables[0].Rows[0][" tray_number "].ToString()}' " +
$"or tray_number = '{ds.Tables[0].Rows[0][" tray_inner_number "].ToString()}' " +
$"OR tray_number = '{ds.Tables[0].Rows[0][" ring_inner_number "].ToString()}' " +
$"or tray_number = '{ds.Tables[0].Rows[0][" ring_outer_number "].ToString()}'" ;
}
ds = DB . ExecuteDataset ( cmd ) ;
for ( int i = 0 ; i < ds . Tables [ 0 ] . Rows . Count ; i + + )
{
string str = ds . Tables [ 0 ] . Rows [ i ] [ "tray_coating_thickness" ] . ToString ( ) ;
string tray_max_thickness = ds . Tables [ 0 ] . Rows [ i ] [ "tray_max_thickness" ] . ToString ( ) ;
inforList . Add ( str ) ;
inforList . Add ( tray_max_thickness ) ;
}
return inforList ;
2023-05-22 18:32:18 +08:00
}
}
}