public static Dictionary <string, string> GetJOFromSN(List <string> snlist) { var ret = new Dictionary <string, string>(); var sql = @"select distinct c.ContainerName,jo.MfgOrderName from InsiteDB.insite.Container (nolock) c left join InsiteDB.insite.MfgOrder (nolock) jo on c.MfgOrderId = jo.MfgOrderId where c.ContainerName in <sncond>"; var sncond = "('" + string.Join("','", snlist) + "')"; sql = sql.Replace("<sncond>", sncond); var dbret = DBUtility.ExeRealMESSqlWithRes(sql); foreach (var line in dbret) { var sn = UT.O2S(line[0]).ToUpper(); var jo = UT.O2S(line[1]).ToUpper(); if (!ret.ContainsKey(sn)) { ret.Add(sn, jo); } } foreach (var sn in snlist) { if (!ret.ContainsKey(sn)) { ret.Add(sn.ToUpper(), ""); } } return(ret); }
public static List <PNSNFR4Binning> GetPNSNData(List <string> pnlist, string sdate, string edate) { var ret = new List <PNSNFR4Binning>(); var sndict = new Dictionary <string, bool>(); var pncond = "('" + string.Join("','", pnlist) + "')"; var sql = @"select top 100000 dc.[ModuleSerialNum],dc.AssemblyPartNum,dc.ModulePartNum,dc.TestTimeStamp,dc.ErrAbbr,dce.[ProductGrade],dce.ProdBinPwrConsumption,dce.ModuleTemp_C,ws.WorkflowStepName from [InsiteDB].[insite].[dce_QuickTest_main] dce (nolock) left join [InsiteDB].[insite].[dc_QuickTest] dc (nolock) on dc.dc_QuickTestHistoryId = dce.ParentHistoryID left join InsiteDB.insite.Container c (nolock) on c.containername = dc.[ModuleSerialNum] left join InsiteDB.insite.currentStatus cs (nolock) on c.currentStatusId = cs.currentStatusId left join InsiteDB.insite.workflowstep ws(nolock) on cs.WorkflowStepId = ws.WorkflowStepId where dc.ErrAbbr = 'pass' and dce.ChannelNumber = '0' and dc.[ModuleSerialNum] is not null and dce.CornerID like '1H' and dce.[ProductGrade] is not null and C.[Status] = 1 and c.HoldReasonId is null and ( (dc.AssemblyPartNum in <pncond> and dc.TestTimeStamp > '<sdate>' and dc.TestTimeStamp < '<edate>' ) or dc.[ModuleSerialNum] in <pncond> ) order by dc.[ModuleSerialNum],dc.TestTimeStamp desc"; sql = sql.Replace("<pncond>", pncond).Replace("<sdate>", sdate).Replace("<edate>", edate); var dbret = DBUtility.ExeRealMESSqlWithRes(sql); foreach (var line in dbret) { var sn = UT.O2S(line[0]).ToUpper().Trim(); if (sndict.ContainsKey(sn)) { continue; } sndict.Add(sn, true); ret.Add(new PNSNFR4Binning(UT.O2S(line[0]), UT.O2S(line[1]), UT.O2S(line[2]), UT.O2T(line[3]), UT.O2S(line[4]), UT.O2S(line[5]), UT.O2S(line[6]), UT.O2S(line[7]), UT.O2S(line[8]))); } return(ret); }
private static List <JODetailVM> GetFAFStatus(string jo) { var ret = new List <JODetailVM>(); var sql = "select [Checked],[ConfirmPeople],[ConfirmTime] from [NebulaTrace].[dbo].[FAFJoVM] where JO = @JO"; var dict = new Dictionary <string, string>(); dict.Add("@JO", jo); var dbret = DBUtility.ExeNebulaSqlWithRes(sql, dict); foreach (var line in dbret) { var check = UT.O2S(line[0]).ToUpper(); var tempvm = new JODetailVM(); tempvm.CRTWFName = "NO"; if (check.Contains("TRUE")) { tempvm.CRTWFName = "YES"; } tempvm.CRTWFRev = UT.O2S(line[1]); tempvm.CRTWFStepName = UT.O2S(line[2]); ret.Add(tempvm); break; } return(ret); }
public static string GetWaferArray(string wafernum) { var productfm = GetProductFamilyFromAllen(wafernum); if (string.IsNullOrEmpty(productfm)) { return("1"); } var dict = new Dictionary <string, string>(); dict.Add("@productfm", productfm); var sql = @"select na.Array_Length from [EngrData].[dbo].[NeoMAP_MWR_Arrays] na with (nolock) where na.product_out = @productfm"; var dbret = DBUtility.ExeAllenSqlWithRes(sql, dict); foreach (var line in dbret) { if (line[0] != System.DBNull.Value) { return(UT.O2S(line[0])); } } return("1"); }
public static List <string> WaferList() { var ret = new List <string>(); var sql = "select distinct Wafer from ProbeTestData"; var dbret = DBUtility.ExeLocalSqlWithRes(sql); foreach (var line in dbret) { ret.Add(UT.O2S(line[0])); } return(ret); }
private static string GetAPConst2162FromLocal(string WaferNum) { var sql = "select ApConst from WAT.dbo.WaferAPConst where Wafer= @Wafer"; var dict = new Dictionary <string, string>(); dict.Add("@Wafer", WaferNum); var dbret = DBUtility.ExeWATSqlWithRes(sql, dict); foreach (var line in dbret) { return(UT.O2S(line[0])); } return(string.Empty); }
public static Dictionary <string, string> GetWaferFromSN(List <string> snlist) { var ret = new Dictionary <string, string>(); var sncond = "('" + string.Join("','", snlist) + "')"; var sql = @"SELECT distinct c.ContainerName as SerialName,isnull(dc.[ParamValueString],'') as WaferLot FROM InsiteDB.insite.container c with (nolock) left join InsiteDB.insite.currentStatus cs (nolock) on c.currentStatusId = cs.currentStatusId left join InsiteDB.insite.workflowstep ws(nolock) on cs.WorkflowStepId = ws.WorkflowStepId left join InsiteDB.insite.componentRemoveHistory crh with (nolock) on crh.historyId = c.containerId left join InsiteDB.insite.removeHistoryDetail rhd on rhd.componentRemoveHistoryId = crh.componentRemoveHistoryId left join InsiteDB.insite.starthistorydetail shd(nolock) on c.containerid=shd.containerId and shd.historyId <> shd.containerId left join InsiteDB.insite.container co (nolock) on co.containerid=shd.historyId left join InsiteDB.insite.historyMainline hml with (nolock) on c.containerId = hml.containerId left join InsiteDB.insite.componentIssueHistory cih with (nolock) on hml.historyMainlineId=cih.historyMainlineId left join InsiteDB.insite.issueHistoryDetail ihd with (nolock) on cih.componentIssueHistoryId = ihd.componentIssueHistoryId left join InsiteDB.insite.issueActualsHistory iah with (nolock) on ihd.issueHistoryDetailId = iah.issueHistoryDetailId left join InsiteDB.insite.RemoveHistoryDetail rem with (nolock) on iah.IssueActualsHistoryId = rem.IssueActualsHistoryId left join InsiteDB.insite.RemovalReason re with (nolock) on rem.RemovalReasonId = re.RemovalReasonId left join InsiteDB.insite.container cFrom with (nolock) on iah.fromContainerId = cFrom.containerId left join InsiteDB.insite.product p with (nolock) on cFrom.productId = p.productId left join InsiteDB.insite.productBase pb with (nolock) on p.productBaseId = pb.productBaseId left join InsiteDB.insite.historyMainline hmll with (nolock)on cFrom.OriginalcontainerId=hmll.historyid left join InsiteDB.insite.product pp with (nolock) on c.productid=pp.productid left join InsiteDB.insite.productfamily pf (nolock) on pp.productFamilyId = pf.productFamilyId left join InsiteDB.insite.productbase pbb with (nolock) on pp.productbaseid=pbb.productbaseid left join InsiteDB.insite.dc_AOC_ManualInspection dc (nolock) on hmll.[HistoryMainlineId]=dc.[HistoryMainlineId] WHERE dc.parametername='Trace_ID' and p.description like '%VCSEL%' and dc.[ParamValueString] like '%-%'and c.containername in <SNCOND> "; sql = sql.Replace("<SNCOND>", sncond); var dbret = DBUtility.ExeRealMESSqlWithRes(sql); foreach (var line in dbret) { var sn = UT.O2S(line[0]).ToUpper(); var wafer = UT.O2S(line[1]).Replace("A", ""); if (wafer.Length == 12) { wafer = wafer.Substring(0, 9); } if (!ret.ContainsKey(sn)) { ret.Add(sn, wafer); } } return(ret); }
public static List <ProbeTestData> GetQueryHistory(string wafer, string x, string y) { var sql = ""; var dict = new Dictionary <string, string>(); if (!string.IsNullOrEmpty(wafer) && !string.IsNullOrEmpty(x) && !string.IsNullOrEmpty(y)) { sql = "select Wafer,X,Y,ApSize,APVal1,APVal7,APVal8,APVal9 from ProbeTestData where Wafer=@wafer and X=@x and Y=@y and APVal8 <> '' order by APVal9 desc"; dict.Add("@wafer", wafer); dict.Add("@x", x); dict.Add("@y", y); } else if (!string.IsNullOrEmpty(wafer) && !string.IsNullOrEmpty(x)) { sql = "select Wafer,X,Y,ApSize,APVal1,APVal7,APVal8,APVal9 from ProbeTestData where Wafer=@wafer and X=@x and APVal8 <> '' order by APVal9 desc"; dict.Add("@wafer", wafer); dict.Add("@x", x); } else if (!string.IsNullOrEmpty(wafer) && !string.IsNullOrEmpty(y)) { sql = "select Wafer,X,Y,ApSize,APVal1,APVal7,APVal8,APVal9 from ProbeTestData where Wafer=@wafer and Y=@y and APVal8 <> '' order by APVal9 desc"; dict.Add("@wafer", wafer); dict.Add("@y", y); } else { sql = "select Wafer,X,Y,ApSize,APVal1,APVal7,APVal8,APVal9 from ProbeTestData where Wafer=@wafer and APVal8 <> '' order by APVal9 desc"; dict.Add("@wafer", wafer); } var ret = new List <ProbeTestData>(); var dbret = DBUtility.ExeLocalSqlWithRes(sql, dict); foreach (var line in dbret) { var tempvm = new ProbeTestData(); tempvm.Wafer = UT.O2S(line[0]); tempvm.X = UT.O2S(line[1]); tempvm.Y = UT.O2S(line[2]); tempvm.ApSize = UT.O2S(line[3]); tempvm.APVal1 = UT.O2S(line[4]); tempvm.APVal7 = UT.O2S(line[5]); tempvm.APVal8 = UT.O2S(line[6]); tempvm.APVal9 = UT.O2T(line[7]); ret.Add(tempvm); } return(ret); }
public static List <SimpleNoteVM> GetNote(string doorcode) { var ret = new List <SimpleNoteVM>(); var dict = new Dictionary <string, string>(); dict.Add("@doorcode", doorcode); var sql = "select top 300 notekey,doorcode,note,notedate from SimpleNoteVM where doorcode=@doorcode order by notedate desc"; var dbret = DBUtility.ExeLocalSqlWithRes(sql, dict); foreach (var line in dbret) { ret.Add(new SimpleNoteVM(UT.O2S(line[0]), UT.O2S(line[1]) , UT.O2S(line[2]), Convert.ToDateTime(line[3]).ToString("yyyy-MM-dd"))); } return(ret); }
public static List <ProbeTestData> GetIthFromAllen(string WaferNum) { var ret = new List <ProbeTestData>(); var sql = @"select distinct [WaferID],[Xcoord],[Ycoord],[Ith] from [EngrData].[dbo].[Wuxi_WAT_VR_Report] where [WaferID] = @WaferNum and [Ith] is not null "; var dict = new Dictionary <string, string>(); dict.Add("@WaferNum", WaferNum); var dbret = DBUtility.ExeAllenSqlWithRes(sql, dict); foreach (var line in dbret) { var tempvm = new ProbeTestData(); tempvm.Wafer = UT.O2S(line[0]); tempvm.X = UT.O2S(line[1]); tempvm.Y = UT.O2S(line[2]); tempvm.APVal2 = UT.O2S(line[3]); ret.Add(tempvm); } return(ret); }
private static string GetProductFamilyFromAllen(string wafernum) { var sql = @"select distinct left(pf.productfamilyname,4) from insite.insite.container c with (nolock) inner join [Insite].[insite].[ProductBase] pb ON pb.[RevOfRcdId] = c.[ProductId] inner join insite.insite.Product p with(nolock) on p.[ProductBaseId] = pb.[ProductBaseId] inner join insite.insite.ProductFamily pf with(nolock) on p.ProductFamilyID = pf.ProductFamilyID where containername = @wafernum"; var dict = new Dictionary <string, string>(); dict.Add("@wafernum", wafernum); var dbret = DBUtility.ExeAllenSqlWithRes(sql, dict); foreach (var line in dbret) { return(UT.O2S(line[0])); } return(string.Empty); }
public static ProbeTestData GetApSizeByWafer(string w, string x, string y) { var sql = "select ApSize,APVal1 from ProbeTestData where Wafer=@Wafer and X=@X and Y=@Y"; var dict = new Dictionary <string, string>(); dict.Add("@Wafer", w); dict.Add("@X", x); dict.Add("@Y", y); var ret = new ProbeTestData(); var dbret = DBUtility.ExeLocalSqlWithRes(sql, dict); if (dbret.Count > 0) { ret.ApSize = UT.O2S(dbret[0][0]); ret.APVal1 = UT.O2S(dbret[0][1]); ret.X = x; ret.Y = y; } return(ret); }