예제 #1
0
        static public ReturnValue DataStat_old(string sampleid)
        {
            //A B C D 对应0,1,2,3
            var ec = CheckData.LoadDatasbySampleID(sampleid);

            if (ec.Count == 0)
            {
                return(new ReturnValue(true, (int)QualifyJudgeEnum.UnFinish, "未完成"));
            }

            List <int> checkitems = new List <int>();
            var        order      = ec[0].Order;

            if (order != null && order.GetPlanCheckItemCount > 0)
            {
                checkitems = order.PlanCheckItems;
            }
            EncodeCollection <CheckData> ecFalse = new EncodeCollection <CheckData>();

            foreach (CheckData item in ec)
            {
                item.SetPass();
                if (item.IsFalse)
                {
                    ecFalse.Add(item);
                }
                if (checkitems.Contains(item.CheckItemID))
                {
                    checkitems.Remove(item.CheckItemID);
                }
            }
            if (ecFalse.Count == 0)
            {
                if (checkitems.Count > 0)
                {
                    return(new ReturnValue(true, (int)QualifyJudgeEnum.UnFinish, "合格,但有项目未完成"));
                }
                else
                {
                    return(new ReturnValue(true, (int)QualifyJudgeEnum.Pass, "合格"));
                }
            }
            Dictionary <CheckItemTypeEnum, EncodeCollection <CheckData> > dic = new Dictionary <CheckItemTypeEnum, EncodeCollection <CheckData> >();

            foreach (var item in ecFalse)
            {
                var checkitem = CheckItem.Instance.GetItembyKey(item.CheckItemID.ToString());
                if (checkitem != null)
                {
                    if (!dic.ContainsKey(checkitem.CheckTypeID))
                    {
                        dic.Add(checkitem.CheckTypeID, new EncodeCollection <CheckData>());
                    }
                    dic[checkitem.CheckTypeID].Add(item);
                }
            }
            ReturnValue rv = null;

            if (dic.ContainsKey(CheckItemTypeEnum.A))
            {
                rv = new ReturnValue(false, (int)QualifyJudgeEnum.False, "有1个以上A类不合格");
            }
            else if (dic.ContainsKey(CheckItemTypeEnum.B) && dic[CheckItemTypeEnum.B].Count >= 2)
            {
                rv = new ReturnValue(false, (int)QualifyJudgeEnum.False, "有2个以上B类不合格");
            }
            else if (dic.ContainsKey(CheckItemTypeEnum.D))
            {
                rv = new ReturnValue(false, (int)QualifyJudgeEnum.False, "出现D类不合格");
            }
            else if (dic.ContainsKey(CheckItemTypeEnum.C))
            {
                rv = new ReturnValue(true, (int)QualifyJudgeEnum.UnJudge, "有C类不合格");
            }
            else if (dic.ContainsKey(CheckItemTypeEnum.B))
            {
                rv = new ReturnValue(true, (int)QualifyJudgeEnum.Pass, "有1个B类不合格");
            }
            if (rv != null)
            {
                if (checkitems.Count > 0)
                {
                    return(new ReturnValue(true, (int)QualifyJudgeEnum.UnFinish, "有项目未完成,且" + rv.Message));
                }
                return(rv);
            }
            return(new ReturnValue(true));
        }
예제 #2
0
        static public ReturnValue DataStat(string sampleid)
        {
            //A B C D 对应0,1,2,3
            var ec = CheckData.LoadDatasbySampleID(sampleid);

            if (ec.Count == 0)
            {
                return(new ReturnValue(true, (int)QualifyJudgeEnum.UnFinish, "未完成"));
            }

            List <int> checkitems = new List <int>();
            var        order      = ec[0].Order;

            if (order != null && order.GetPlanCheckItemCount > 0)
            {
                checkitems = order.PlanCheckItems;
            }
            Dictionary <int, List <CheckData> > dicData = new Dictionary <int, List <CheckData> >();

            foreach (CheckData item in ec)
            {
                if (string.IsNullOrWhiteSpace(item.DataValue))
                {
                    continue;
                }
                if (!dicData.ContainsKey(item.CheckItemID))
                {
                    dicData.Add(item.CheckItemID, new List <CheckData>());
                }
                dicData[item.CheckItemID].Add(item);
                if (checkitems.Contains(item.CheckItemID))
                {
                    checkitems.Remove(item.CheckItemID);
                }
            }
            Dictionary <CheckItemTypeEnum, int> dicFalseCount = new Dictionary <CheckItemTypeEnum, int>();

            foreach (var key in dicData.Keys)
            {
                var qj = QualifyOneCheckItemJudge(dicData[key]);
                if (qj == QualifyJudgeEnum.False)
                {
                    CheckItem item = CheckItem.Instance.GetItembyKey(key.ToString());
                    if (item != null)
                    {
                        if (!dicFalseCount.ContainsKey(item.CheckTypeID))
                        {
                            dicFalseCount.Add(item.CheckTypeID, 0);
                        }
                        dicFalseCount[item.CheckTypeID]++;
                    }
                }
            }

            ReturnValue rv = null;

            if (dicFalseCount.Count == 0)
            {
                if (checkitems.Count > 0)
                {
                    return(new ReturnValue(true, (int)QualifyJudgeEnum.UnFinish, "合格,但有项目未完成"));
                }
                else
                {
                    return(new ReturnValue(true, (int)QualifyJudgeEnum.Pass, "合格"));
                }
            }
            if (dicFalseCount.ContainsKey(CheckItemTypeEnum.A))
            {
                rv = new ReturnValue(false, (int)QualifyJudgeEnum.False, "有1个以上A类不合格");
            }
            else if (dicFalseCount.ContainsKey(CheckItemTypeEnum.B) && dicFalseCount[CheckItemTypeEnum.B] >= 2)
            {
                rv = new ReturnValue(false, (int)QualifyJudgeEnum.False, "有2个以上B类不合格");
            }
            else if (dicFalseCount.ContainsKey(CheckItemTypeEnum.D))
            {
                rv = new ReturnValue(false, (int)QualifyJudgeEnum.False, "出现D类不合格");
            }
            else if (dicFalseCount.ContainsKey(CheckItemTypeEnum.C))
            {
                rv = new ReturnValue(true, (int)QualifyJudgeEnum.UnJudge, "有C类不合格");
            }
            else if (dicFalseCount.ContainsKey(CheckItemTypeEnum.B))
            {
                rv = new ReturnValue(true, (int)QualifyJudgeEnum.Pass, "有1个B类不合格");
            }
            if (rv != null)
            {
                if (checkitems.Count > 0)
                {
                    return(new ReturnValue(true, (int)QualifyJudgeEnum.UnFinish, "有项目未完成,且" + rv.Message));
                }
                return(rv);
            }
            return(new ReturnValue(true));
        }