Esempio n. 1
0
        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());
        }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        /// <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);
        }
Esempio n. 5
0
        /// <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));
        }