public List <IPQCQualityDetialDto> GetIPQCDetialReport(IPQCQualityReportVM serchModel) { var query = from ipqc in DataContext.IPQCQualityDetial where ipqc.GL_Station.StationID == serchModel.StationID && ipqc.ProductDate == serchModel.ProductDate && ipqc.TimeInterval == serchModel.TimeInterval && ipqc.GL_Station.IsTest == true select new IPQCQualityDetialDto { IPQCQualityDetial_UID = ipqc.IPQCQualityDetial_UID , StationID = ipqc.StationID , ShiftID = ipqc.ShiftID , ProductDate = ipqc.ProductDate , TimeInterval = ipqc.TimeInterval , TimeIntervalIndex = ipqc.TimeIntervalIndex , NGName = ipqc.NGName , NGNumber = ipqc.NGNumber , NGType = ipqc.NGType , ModifyTime = ipqc.ModifyTime }; return(query.ToList()); }
public List <IPQCQualityReportDto> GetIPQCQualityReport(IPQCQualityReportVM serchModel, bool isMonth) { var query = from ipqc in DataContext.IPQCQualityReport where ipqc.GL_Station.Plant_Organization_UID == serchModel.Plant_Organization_UID && ipqc.GL_Station.BG_Organization_UID == serchModel.BG_Organization_UID && //ipqc.GL_Station.FunPlant_Organization_UID == serchModel.FunPlant_Organization_UID && ipqc.GL_Station.GL_Line.CustomerID == serchModel.CustomerID && ipqc.GL_Station.LineID == serchModel.LineID && ipqc.GL_Station.StationID == serchModel.StationID && ipqc.GL_Station.IsTest == true select new IPQCQualityReportDto { IPQCQualityReport_UID = ipqc.IPQCQualityReport_UID, StationID = ipqc.StationID, ShiftID = ipqc.ShiftID, TimeInterval = ipqc.TimeInterval, ProductDate = ipqc.ProductDate, FirstYield = ipqc.FirstYield, FirstTargetYield = ipqc.FirstTargetYield, SecondYield = ipqc.SecondYield, SecondTargetYield = ipqc.SecondTargetYield, InputNumber = ipqc.InputNumber, TestNumber = ipqc.TestNumber, FirstPassNumber = ipqc.FirstPassNumber, SecondPassNumber = ipqc.SecondPassNumber, RepairNumber = ipqc.RepairNumber, NGNumber = ipqc.NGNumber, TimeIntervalIndex = ipqc.TimeIntervalIndex, WIP = ipqc.WIP, FunPlant_Organization_UID = ipqc.GL_Station.GL_Line.FunPlant_Organization_UID, }; if (serchModel.ShiftTimeID != 0) { query = query.Where(p => p.ShiftID == serchModel.ShiftTimeID); } if (serchModel.FunPlant_Organization_UID != 0) { query = query.Where(p => p.FunPlant_Organization_UID == serchModel.FunPlant_Organization_UID); } //月报表 if (isMonth) { query = query.Where(p => p.ProductDate >= serchModel.StartTime && p.ProductDate <= serchModel.EndTime); } else { if (serchModel.ProductDate != null) { query = query.Where(p => p.ProductDate == serchModel.ProductDate); } } return(query.ToList()); }
public PagedListModel <IPQCQualityDetialDto> GetQualityTopDetial(IPQCQualityReportVM model) { var reulltDetial = _IPQCQualityDetialRepository.GetIPQCDetialReport(model); ///获取一次良率的Top5 if (model.VersionNumber == 0) { reulltDetial = reulltDetial.Where(p => p.NGType == "0").ToList(); } else ///获取二次良率的Top5 if (model.VersionNumber == 1) { reulltDetial = reulltDetial.Where(p => p.NGType == "1").ToList(); } reulltDetial = reulltDetial.OrderByDescending(p => p.NGNumber).Take(5).ToList(); reulltDetial = reulltDetial.OrderBy(p => p.NGNumber).ToList(); return(new PagedListModel <IPQCQualityDetialDto>(0, reulltDetial)); }
/// <summary> /// 获取月报表 /// </summary> /// <param name="model"></param> /// <returns></returns> public List <IPQCQualityMonthVM> GetQualityMonthReport(IPQCQualityReportVM model) { var qualityList = IPQCQUalityReportRepository.GetIPQCQualityReport(model, true); var tempModel = qualityList.GroupBy(p => p.ProductDate); var allShiftModel = GL_ShiftTimeRepository.GetAll().ToList(); List <IPQCQualityMonthVM> resultList = new List <IPQCQualityMonthVM>(); //一次良率 tempModel = tempModel.OrderBy(p => p.Key); if (model.VersionNumber == 0) { foreach (var item in tempModel) { //判断是白班还是夜班 var shiftModel = allShiftModel.Where(p => p.ShiftTimeID == item.FirstOrDefault().ShiftID).FirstOrDefault(); var currentStartTime = Convert.ToDateTime("2018-01-01" + " " + shiftModel.StartTime); var currentEnd_Time = Convert.ToDateTime("2018-01-01" + " " + shiftModel.End_Time); var currentDay = string.Empty; var FirstYieldStr = item.Sum(p => p.TestNumber) == 0 ? 0.ToString("p2") : ((item.Sum(p => p.FirstPassNumber) * 1.0 / item.Sum(p => p.TestNumber)).ToString("p2")); var FirstYield = item.Sum(p => p.TestNumber) == 0 ? 0.ToString("f2") : ((item.Sum(p => p.FirstPassNumber) * 1.0 / item.Sum(p => p.TestNumber) * 100).ToString("f2")); var FirstTargetYieldStr = item.FirstOrDefault().FirstTargetYield.ToString("p2"); var FirstTargetYield = (item.FirstOrDefault().FirstTargetYield * 100).ToString("f2"); if (currentStartTime > currentEnd_Time) { //晚班 currentDay = item.Key.ToString("MM/dd") + "N" + "\n" + " " + "\n" + FirstYieldStr + "\n" + " " + "\n" + FirstTargetYieldStr; } else { //白班 currentDay = item.Key.ToString("MM/dd") + "D" + "\n" + " " + "\n" + FirstYieldStr + "\n" + " " + "\n" + FirstTargetYieldStr; } IPQCQualityMonthVM monthModel = new IPQCQualityMonthVM(); monthModel.FirstYield = FirstYield; monthModel.FirstTargetYield = FirstTargetYield; monthModel.ProductDate = currentDay; resultList.Add(monthModel); } } //二次良率 else if (model.VersionNumber == 1) { foreach (var item in tempModel) { //判断是白班还是夜班 var shiftModel = allShiftModel.Where(p => p.ShiftTimeID == item.FirstOrDefault().ShiftID).FirstOrDefault(); var currentStartTime = Convert.ToDateTime("2018-01-01" + " " + shiftModel.StartTime); var currentEnd_Time = Convert.ToDateTime("2018-01-01" + " " + shiftModel.End_Time); var currentDay = string.Empty; var SecondYieldStr = (item.Sum(p => p.SecondPassNumber) + item.Sum(p => p.NGNumber)) == 0 ? 0.ToString("p2") : (item.Sum(p => p.SecondPassNumber) * 1.0 / (item.Sum(p => p.SecondPassNumber) + item.Sum(p => p.NGNumber))).ToString("p2"); var SecondYield = (item.Sum(p => p.SecondPassNumber) + item.Sum(p => p.NGNumber)) == 0 ? 0.ToString("f2") : ((item.Sum(p => p.SecondPassNumber) * 1.0 / (item.Sum(p => p.SecondPassNumber) + item.Sum(p => p.NGNumber))) * 100).ToString("f2"); var SecondTargetYieldStr = item.FirstOrDefault().SecondTargetYield.ToString("p2"); var SecondTargetYield = (item.FirstOrDefault().SecondTargetYield * 100).ToString("f2"); if (currentStartTime > currentEnd_Time) { //晚班 currentDay = item.Key.ToString("MM/dd") + "N" + "\n" + " " + "\n" + SecondYieldStr + "\n" + " " + "\n" + SecondTargetYieldStr; } else { //白班 currentDay = item.Key.ToString("MM/dd") + "D" + "\n" + " " + "\n" + SecondYieldStr + "\n" + " " + "\n" + SecondTargetYieldStr; } IPQCQualityMonthVM monthModel = new IPQCQualityMonthVM(); monthModel.SecondYield = SecondYield; monthModel.SecondTargetYield = SecondTargetYield; monthModel.ProductDate = currentDay; resultList.Add(monthModel); } } return(resultList); }
/// <summary> /// 获取IPQC的报表 /// </summary> /// <returns></returns> public PagedListModel <IPQCQualityResultVM> GetIPQCQualityReport(IPQCQualityReportVM model, Page page) { var qualityList = IPQCQUalityReportRepository.GetIPQCQualityReport(model, false); List <IPQCQualityResultVM> qualityModelList = new List <IPQCQualityResultVM>(); var timeIntervalModel1 = qualityList.Where(p => p.TimeIntervalIndex == 1); var timeIntervalModel2 = qualityList.Where(p => p.TimeIntervalIndex == 2); var timeIntervalModel3 = qualityList.Where(p => p.TimeIntervalIndex == 3); var timeIntervalModel4 = qualityList.Where(p => p.TimeIntervalIndex == 4); var timeIntervalModel5 = qualityList.Where(p => p.TimeIntervalIndex == 5); var timeIntervalModel6 = qualityList.Where(p => p.TimeIntervalIndex == 6); #region foreach (string colorName in Enum.GetNames(typeof(QualityType))) { IPQCQualityResultVM qualityModel = new IPQCQualityResultVM(); switch (Convert.ToInt32(Enum.Parse(typeof(QualityType), colorName))) { case 1: qualityModel.IndexName = EnumHelper.GetDescription(QualityType.FirstYield); qualityModel.TimeInterval1 = timeIntervalModel1.Sum(q => q.FirstYield).ToString("p2"); qualityModel.TimeInterval2 = timeIntervalModel2.Sum(q => q.FirstYield).ToString("p2"); qualityModel.TimeInterval3 = timeIntervalModel3.Sum(q => q.FirstYield).ToString("p2"); qualityModel.TimeInterval4 = timeIntervalModel4.Sum(q => q.FirstYield).ToString("p2"); qualityModel.TimeInterval5 = timeIntervalModel5.Sum(q => q.FirstYield).ToString("p2"); qualityModel.TimeInterval6 = timeIntervalModel6.Sum(q => q.FirstYield).ToString("p2"); qualityModel.Toatal = qualityList.Sum(p => p.TestNumber) == 0 ? 0.ToString("p2") : ((qualityList.Sum(p => p.FirstPassNumber) * 1.0 / qualityList.Sum(p => p.TestNumber)).ToString("p2")); qualityModelList.Add(qualityModel); break; case 0: qualityModel.IndexName = EnumHelper.GetDescription(QualityType.FirstTargetYield); qualityModel.TimeInterval1 = timeIntervalModel1.Sum(q => q.FirstTargetYield).ToString("p2"); qualityModel.TimeInterval2 = timeIntervalModel2.Sum(q => q.FirstTargetYield).ToString("p2"); qualityModel.TimeInterval3 = timeIntervalModel3.Sum(q => q.FirstTargetYield).ToString("p2"); qualityModel.TimeInterval4 = timeIntervalModel4.Sum(q => q.FirstTargetYield).ToString("p2"); qualityModel.TimeInterval5 = timeIntervalModel5.Sum(q => q.FirstTargetYield).ToString("p2"); qualityModel.TimeInterval6 = timeIntervalModel6.Sum(q => q.FirstTargetYield).ToString("p2"); qualityModel.Toatal = timeIntervalModel1.Sum(q => q.FirstTargetYield).ToString("p2"); qualityModelList.Add(qualityModel); break; case 4: qualityModel.IndexName = EnumHelper.GetDescription(QualityType.SecondYield); qualityModel.TimeInterval1 = timeIntervalModel1.Sum(q => q.SecondYield).ToString("p2"); qualityModel.TimeInterval2 = timeIntervalModel2.Sum(q => q.SecondYield).ToString("p2"); qualityModel.TimeInterval3 = timeIntervalModel3.Sum(q => q.SecondYield).ToString("p2"); qualityModel.TimeInterval4 = timeIntervalModel4.Sum(q => q.SecondYield).ToString("p2"); qualityModel.TimeInterval5 = timeIntervalModel5.Sum(q => q.SecondYield).ToString("p2"); qualityModel.TimeInterval6 = timeIntervalModel6.Sum(q => q.SecondYield).ToString("p2"); qualityModel.Toatal = qualityList.Sum(p => p.SecondPassNumber) == 0 ? 0.ToString("p2") : (qualityList.Sum(p => p.SecondPassNumber) * 1.0 / (qualityList.Sum(p => p.SecondPassNumber) + qualityList.Sum(p => p.NGNumber))).ToString("p2"); qualityModelList.Add(qualityModel); break; case 3: qualityModel.IndexName = EnumHelper.GetDescription(QualityType.SecondTargetYield); qualityModel.TimeInterval1 = timeIntervalModel1.Sum(q => q.SecondTargetYield).ToString("p2"); qualityModel.TimeInterval2 = timeIntervalModel2.Sum(q => q.SecondTargetYield).ToString("p2"); qualityModel.TimeInterval3 = timeIntervalModel3.Sum(q => q.SecondTargetYield).ToString("p2"); qualityModel.TimeInterval4 = timeIntervalModel4.Sum(q => q.SecondTargetYield).ToString("p2"); qualityModel.TimeInterval5 = timeIntervalModel5.Sum(q => q.SecondTargetYield).ToString("p2"); qualityModel.TimeInterval6 = timeIntervalModel6.Sum(q => q.SecondTargetYield).ToString("p2"); qualityModel.Toatal = timeIntervalModel1.Sum(q => q.SecondTargetYield).ToString("p2"); qualityModelList.Add(qualityModel); break; case 5: qualityModel.IndexName = EnumHelper.GetDescription(QualityType.InputNumber); qualityModel.TimeInterval1 = timeIntervalModel1.Sum(q => q.InputNumber).ToString(); qualityModel.TimeInterval2 = timeIntervalModel2.Sum(q => q.InputNumber).ToString(); qualityModel.TimeInterval3 = timeIntervalModel3.Sum(q => q.InputNumber).ToString(); qualityModel.TimeInterval4 = timeIntervalModel4.Sum(q => q.InputNumber).ToString(); qualityModel.TimeInterval5 = timeIntervalModel5.Sum(q => q.InputNumber).ToString(); qualityModel.TimeInterval6 = timeIntervalModel6.Sum(q => q.InputNumber).ToString(); qualityModel.Toatal = qualityList.Sum(p => p.InputNumber).ToString(); qualityModelList.Add(qualityModel); break; case 6: qualityModel.IndexName = EnumHelper.GetDescription(QualityType.TestNumber); qualityModel.TimeInterval1 = timeIntervalModel1.Sum(q => q.TestNumber).ToString(); qualityModel.TimeInterval2 = timeIntervalModel2.Sum(q => q.TestNumber).ToString(); qualityModel.TimeInterval3 = timeIntervalModel3.Sum(q => q.TestNumber).ToString(); qualityModel.TimeInterval4 = timeIntervalModel4.Sum(q => q.TestNumber).ToString(); qualityModel.TimeInterval5 = timeIntervalModel5.Sum(q => q.TestNumber).ToString(); qualityModel.TimeInterval6 = timeIntervalModel6.Sum(q => q.TestNumber).ToString(); qualityModel.Toatal = qualityList.Sum(p => p.TestNumber).ToString(); qualityModelList.Add(qualityModel); break; case 7: qualityModel.IndexName = EnumHelper.GetDescription(QualityType.FirstPassNumber); qualityModel.TimeInterval1 = timeIntervalModel1.Sum(q => q.FirstPassNumber).ToString(); qualityModel.TimeInterval2 = timeIntervalModel2.Sum(q => q.FirstPassNumber).ToString(); qualityModel.TimeInterval3 = timeIntervalModel3.Sum(q => q.FirstPassNumber).ToString(); qualityModel.TimeInterval4 = timeIntervalModel4.Sum(q => q.FirstPassNumber).ToString(); qualityModel.TimeInterval5 = timeIntervalModel5.Sum(q => q.FirstPassNumber).ToString(); qualityModel.TimeInterval6 = timeIntervalModel6.Sum(q => q.FirstPassNumber).ToString(); qualityModel.Toatal = qualityList.Sum(p => p.FirstPassNumber).ToString(); qualityModelList.Add(qualityModel); break; case 8: qualityModel.IndexName = EnumHelper.GetDescription(QualityType.SecondPassNumber); qualityModel.TimeInterval1 = timeIntervalModel1.Sum(q => q.SecondPassNumber).ToString(); qualityModel.TimeInterval2 = timeIntervalModel2.Sum(q => q.SecondPassNumber).ToString(); qualityModel.TimeInterval3 = timeIntervalModel3.Sum(q => q.SecondPassNumber).ToString(); qualityModel.TimeInterval4 = timeIntervalModel4.Sum(q => q.SecondPassNumber).ToString(); qualityModel.TimeInterval5 = timeIntervalModel5.Sum(q => q.SecondPassNumber).ToString(); qualityModel.TimeInterval6 = timeIntervalModel6.Sum(q => q.SecondPassNumber).ToString(); qualityModel.Toatal = qualityList.Sum(p => p.SecondPassNumber).ToString(); qualityModelList.Add(qualityModel); break; case 9: qualityModel.IndexName = EnumHelper.GetDescription(QualityType.RepairNumber); qualityModel.TimeInterval1 = timeIntervalModel1.Sum(q => q.RepairNumber).ToString(); qualityModel.TimeInterval2 = timeIntervalModel2.Sum(q => q.RepairNumber).ToString(); qualityModel.TimeInterval3 = timeIntervalModel3.Sum(q => q.RepairNumber).ToString(); qualityModel.TimeInterval4 = timeIntervalModel4.Sum(q => q.RepairNumber).ToString(); qualityModel.TimeInterval5 = timeIntervalModel5.Sum(q => q.RepairNumber).ToString(); qualityModel.TimeInterval6 = timeIntervalModel6.Sum(q => q.RepairNumber).ToString(); qualityModel.Toatal = qualityList.Sum(p => p.RepairNumber).ToString(); qualityModelList.Add(qualityModel); break; case 10: qualityModel.IndexName = EnumHelper.GetDescription(QualityType.NGNumber); qualityModel.TimeInterval1 = timeIntervalModel1.Sum(q => q.NGNumber).ToString(); qualityModel.TimeInterval2 = timeIntervalModel2.Sum(q => q.NGNumber).ToString(); qualityModel.TimeInterval3 = timeIntervalModel3.Sum(q => q.NGNumber).ToString(); qualityModel.TimeInterval4 = timeIntervalModel4.Sum(q => q.NGNumber).ToString(); qualityModel.TimeInterval5 = timeIntervalModel5.Sum(q => q.NGNumber).ToString(); qualityModel.TimeInterval6 = timeIntervalModel6.Sum(q => q.NGNumber).ToString(); qualityModel.Toatal = qualityList.Sum(p => p.NGNumber).ToString(); qualityModelList.Add(qualityModel); break; case 11: qualityModel.IndexName = EnumHelper.GetDescription(QualityType.WIP); qualityModel.TimeInterval1 = timeIntervalModel1.Sum(q => q.WIP).ToString(); qualityModel.TimeInterval2 = timeIntervalModel2.Sum(q => q.WIP).ToString(); qualityModel.TimeInterval3 = timeIntervalModel3.Sum(q => q.WIP).ToString(); qualityModel.TimeInterval4 = timeIntervalModel4.Sum(q => q.WIP).ToString(); qualityModel.TimeInterval5 = timeIntervalModel5.Sum(q => q.WIP).ToString(); qualityModel.TimeInterval6 = timeIntervalModel6.Sum(q => q.WIP).ToString(); qualityModel.Toatal = qualityList.Sum(p => p.WIP).ToString(); qualityModelList.Add(qualityModel); break; default: break; } } #endregion return(new PagedListModel <IPQCQualityResultVM>(0, qualityModelList)); }