public static List <PnMainVM> RetrievePNList(string searchkey) { var ret = new List <PnMainVM>(); var sql = ""; if (!string.IsNullOrEmpty(searchkey)) { sql = "select PNKey,PN,PNPJ,DefaultResult from PnMainVM where PN like '%<searchkey>%' order by PNPJ"; sql = sql.Replace("<searchkey>", searchkey); } else { sql = "select PNKey,PN,PNPJ,DefaultResult from PnMainVM order by PNPJ"; } var dbret = DBUtility.ExeLocalSqlWithRes(sql); foreach (var line in dbret) { var tempvm = new PnMainVM(); tempvm.PNKey = Convert.ToString(line[0]); tempvm.PN = Convert.ToString(line[1]); tempvm.PNPJ = Convert.ToString(line[2]); tempvm.DefaultResult = Convert.ToString(line[3]); ret.Add(tempvm); } return(ret); }
public static List <PnMainVM> RetrieveAllPnSetting(string pn) { var ret = new List <PnMainVM>(); var sql = "select PNKey,PN,PNPJ,DefaultResult from PnMainVM where PN = '<PN>' order by PNPJ"; sql = sql.Replace("<PN>", pn); var dbret = DBUtility.ExeLocalSqlWithRes(sql); foreach (var line in dbret) { var tempvm = new PnMainVM(); tempvm.PNKey = Convert.ToString(line[0]); tempvm.PN = Convert.ToString(line[1]); tempvm.PNPJ = Convert.ToString(line[2]); tempvm.DefaultResult = Convert.ToString(line[3]); tempvm.PnRuleList = PnRulesVM.RetrieveRule(tempvm.PNKey); ret.Add(tempvm); } return(ret); }
public static List <ScrapTableItem> RetrievePNBySNDC(List <ScrapTableItem> inputdata) { var pnpnkeymap = PnMainVM.PNPNKeyMap(); var hasdatecode = false; var hassn = false; var ret = new List <ScrapTableItem>(); var datecond = " ('"; foreach (var item in inputdata) { if (!string.IsNullOrEmpty(item.DateCode)) { datecond = datecond + item.DateCode + "','"; hasdatecode = true; } } datecond = datecond.Substring(0, datecond.Length - 2); datecond = datecond + ") "; var sncond = " ('"; foreach (var item in inputdata) { if (!string.IsNullOrEmpty(item.SN)) { sncond = sncond + item.SN + "','"; hassn = true; } } sncond = sncond.Substring(0, sncond.Length - 2); sncond = sncond + ") "; var sql = ""; if (hasdatecode && hassn) { sql = "select c.ContainerName,pb.ProductName,c.DateCode from [InsiteDB].[insite].[Container] c (nolock)" + " left join[InsiteDB].[insite].[Product] p(nolock) on p.ProductId = c.ProductId" + " left join[InsiteDB].[insite].[ProductBase] pb (nolock) on pb.ProductBaseId = p.ProductBaseId" + " where c.ContainerName in <sncond> or c.DateCode in <datecond>"; } else if (hasdatecode) { sql = "select c.ContainerName,pb.ProductName,c.DateCode from [InsiteDB].[insite].[Container] c (nolock)" + " left join[InsiteDB].[insite].[Product] p(nolock) on p.ProductId = c.ProductId" + " left join[InsiteDB].[insite].[ProductBase] pb (nolock) on pb.ProductBaseId = p.ProductBaseId" + " where c.DateCode in <datecond>"; } else { sql = "select c.ContainerName,pb.ProductName,c.DateCode from [InsiteDB].[insite].[Container] c (nolock)" + " left join[InsiteDB].[insite].[Product] p(nolock) on p.ProductId = c.ProductId" + " left join[InsiteDB].[insite].[ProductBase] pb (nolock) on pb.ProductBaseId = p.ProductBaseId" + " where c.ContainerName in <sncond>"; } sql = sql.Replace("<sncond>", sncond).Replace("<datecond>", datecond); var dbret = DBUtility.ExeRealMESSqlWithRes(sql); foreach (var line in dbret) { var tempvm = new ScrapTableItem(); tempvm.SN = Convert.ToString(line[0]); tempvm.PN = Convert.ToString(line[1]); if (!string.IsNullOrEmpty(tempvm.SN) && !string.IsNullOrEmpty(tempvm.PN)) { if (line[2] == null) { tempvm.DateCode = ""; } else { tempvm.DateCode = Convert.ToString(line[2]); } if (pnpnkeymap.ContainsKey(tempvm.PN)) { tempvm.PNKey = pnpnkeymap[tempvm.PN]; } ret.Add(tempvm); }//end if } return(ret); }
public static void FinalSetResult(List <ScrapTableItem> scraptable, Controller ctrl) { var pndefresdict = PnMainVM.PNDefaultResMap(); var syscfg = CfgUtility.GetSysConfig(ctrl); var processlist = syscfg["SCRAP4PROCESSNAME"].Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries).ToList(); foreach (var item in scraptable) { if (!string.IsNullOrEmpty(item.TestData.DataID) && string.Compare(item.TestData.ErrAbbr.Trim(), "pass", true) != 0) { if (item.RlueList.Count == 0) { if (pndefresdict.ContainsKey(item.PN)) { item.Result = pndefresdict[item.PN]; item.MatchedRule = "DEFAULT"; } } else { foreach (var rule in item.RlueList) { if (!string.IsNullOrEmpty(rule.Param)) { if (MatchRuleWithParam(item, rule, ctrl)) { item.Result = rule.RuleRes; item.MatchedRule = item.PN + "_" + item.WhichTest + "_" + item.TestData.ErrAbbr + "_" + rule.Param; break; } } else { item.Result = rule.RuleRes; item.MatchedRule = item.PN + "_" + item.WhichTest + "_" + item.TestData.ErrAbbr; break; } } if (string.IsNullOrEmpty(item.Result)) { item.Result = pndefresdict[item.PN]; item.MatchedRule = "DEFAULT"; } } }//end if { var testdatalist = RetrieveLatestSNStep(item.SN); if (testdatalist.Count > 0) { var matchprocess = false; foreach (var p in processlist) { if (testdatalist[0].WhichTest.ToUpper().Contains(p.ToUpper())) { item.TestData.DataID = testdatalist[0].DataID; item.WhichTest = testdatalist[0].WhichTest; item.TestData.ErrAbbr = testdatalist[0].ErrAbbr; item.TestData.TestTime = testdatalist[0].TestTime; item.TestData.ErrAbbr = "PROCESS"; matchprocess = true; break; } }//end foreach if (matchprocess) { item.Result = SCRAPRESULT.DSCRAP; item.MatchedRule = "PROCESS SCRAP"; } //else //{ // if (pndefresdict.ContainsKey(item.PN)) // { // item.Result = pndefresdict[item.PN]; // item.MatchedRule = "DEFAULT"; // } //} } //else //{ // if (pndefresdict.ContainsKey(item.PN)) // { // item.Result = pndefresdict[item.PN]; // item.MatchedRule = "DEFAULT"; // } //} } }//foreach }