コード例 #1
0
ファイル: PnMainVM.cs プロジェクト: bradqiu1982/SmartLinks
        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);
        }
コード例 #2
0
ファイル: PnMainVM.cs プロジェクト: bradqiu1982/SmartLinks
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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
        }