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)); }
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)); }