Пример #1
0
 private void GetSplitTimeOfDay()
 {
     using (var db = new RPTContext())
     {
         SplitTimeOfDay = TimeSpan.Parse(db.TimeSplitConfig.Any(w => w.RptID == "Rpt018") ? db.TimeSplitConfig.Where(w => w.RptID == "Rpt018").First().TimeValue : db.TimeSplitConfig.Where(w => w.RptID == "global").First().TimeValue);
     }
 }
Пример #2
0
        private ReqRpt018DataBase GetEntityByDayRange(string EqpID, DateTime firstDay, DateTime lastDay)
        {
            ReqRpt018DataBase entity = new ReqRpt018DataBase();

            using (RPTContext db = new RPTContext())
            {
                var    list   = db.EQP_UPm_018.Where(w => w.EqpID == EqpID && DbFunctions.TruncateTime(w.Date) >= firstDay && DbFunctions.TruncateTime(w.Date) <= lastDay).ToList();
                double pr     = list.Sum(s => s.PRDMin);
                double ns     = list.Sum(s => s.NSTMin);
                double sb     = list.Sum(s => s.SBYMin);
                double sd     = list.Sum(s => s.SDTMin);
                double ud     = list.Sum(s => s.UDTMin);
                double en     = list.Sum(s => s.ENGMin);
                double ot     = pr + sb + sd + ud + en;
                double ut     = pr + sb;
                double pdtest = list.Sum(s => s.PRDTestMin);
                double pm     = list.Sum(s => s.PMMin);
                if (ot + ns > 0)
                {
                    entity.UPm         = ot == 0 ? 0 : (pr + sb) / ot;
                    entity.UUm         = ut == 0 ? 0 : pr / ut;
                    entity.SD          = ot == 0 ? 0 : sd / ot;
                    entity.UD          = ot == 0 ? 0 : ud / ot;
                    entity.PRDHour     = pr / 60;
                    entity.SBYHour     = sb / 60;
                    entity.SDTHour     = sd / 60;
                    entity.UDTHour     = ud / 60;
                    entity.NSTHour     = ns / 60;
                    entity.ENGHour     = en / 60;
                    entity.PRDTestHour = pdtest / 60;
                    entity.PMHour      = pm / 60;
                }
                return(entity);
            }
        }
Пример #3
0
        public static void Test()
        {
            using (var db = new RPTContext())
            {
                TimeSplitConfigEntity configEntity = new TimeSplitConfigEntity()
                {
                    RptID     = "global",
                    TimeValue = "8:00:00"
                };
                db.TimeSplitConfig.Add(configEntity);
                db.SaveChanges();

                foreach (var item in db.TimeSplitConfig)
                {
                    Console.WriteLine("Name:" + item.RptID);
                    Console.WriteLine("Value:" + item.TimeValue);
                }
            }
        }
Пример #4
0
        private void GetTbodyEntities()
        {
            var list = PostModel.EqpTypes.Split(',');

            //获取Actual值
            using (RPTContext db = new RPTContext())
            {
                var rawList = db.EQP_UPm_018.Where(w => DbFunctions.TruncateTime(w.Date) >= sqlStartDate && DbFunctions.TruncateTime(w.Date) <= sqlEndDate && list.Contains(w.EqpType));
                foreach (var item in list)
                {
                    ReqRpt020TBodyEntity bodyEntity = new ReqRpt020TBodyEntity();
                    bodyEntity.TotalRow.EqpType = item;
                    if (rawList.Count() > 0)
                    {
                        var rowList = rawList.Where(w => w.EqpType == item).GroupBy(g => g.EqpID).Select(s => new
                        {
                            EqpID = s.Key,
                            sd    = s.Sum(su => su.SDTMin),
                            pr    = s.Sum(su => su.PRDMin),
                            sb    = s.Sum(su => su.SBYMin),
                            en    = s.Sum(su => su.ENGMin),
                            nd    = s.Sum(su => su.UDTMin),
                            rwk   = s.Sum(su => su.ReworkQty),
                            pass  = s.Sum(su => su.Passqty),
                            eff   = s.Sum(su => su.EffMove)
                        });
                        foreach (var row in rowList)
                        {
                            ReqRpt020TableRowEntity rowEntity = new ReqRpt020TableRowEntity();
                            double ot   = row.pr + row.sb + row.sd + row.nd + row.en;
                            double ut   = row.pr + row.sb;
                            int    days = (D_EndDate - D_StartDate).Days + 1;
                            rowEntity.EqpType    = row.EqpID;
                            rowEntity.UpmActual  = ot == 0 ? 0 : ut / ot;
                            rowEntity.UumActual  = ut == 0 ? 0 : row.pr / ut;
                            rowEntity.RwkActual  = row.rwk / days;
                            rowEntity.EffActual  = row.eff / days;
                            rowEntity.PassActual = row.pass / days;
                            rowEntity.ThrActual  = row.pr == 0 ? 0 : row.pass / row.pr;
                            bodyEntity.RowEntities.Add(rowEntity);
                        }
                        double ot_all = rowList.Sum(s => s.pr + s.sb + s.sd + s.nd + s.en);
                        double ut_all = rowList.Sum(s => s.pr + s.sb);
                        double pr_all = rowList.Sum(s => s.pr);
                        bodyEntity.TotalRow.UpmActual  = ot_all == 0?0:ut_all / ot_all;
                        bodyEntity.TotalRow.UumActual  = ut_all == 0?0:pr_all / ut_all;
                        bodyEntity.TotalRow.RwkActual  = bodyEntity.RowEntities.Average(a => a.RwkActual);
                        bodyEntity.TotalRow.PassActual = bodyEntity.RowEntities.Average(a => a.PassActual);
                        bodyEntity.TotalRow.EffActual  = bodyEntity.RowEntities.Average(a => a.EffActual);
                        bodyEntity.TotalRow.ThrActual  = pr_all == 0 ? 0 : rowList.Sum(s => s.pass) / pr_all;
                    }
                    TbodyEntities.Add(bodyEntity);
                }
            }
            //获取Target值
            string condition = string.Join("','", list);
            DB2DataCatcher <RPT_EQP_PERFM_TARGET> TargetCatcher = new DB2DataCatcher <RPT_EQP_PERFM_TARGET>("ISTRPT.RPT_EQP_PERFM_TARGET");

            TargetCatcher.Conditions = string.Format("where eqp_type in ('{0}')", condition);
            var tarList = TargetCatcher.GetEntities().EntityList;

            foreach (var item in tarList)
            {
                var body = TbodyEntities.Where(w => w.TotalRow.EqpType == item.Eqp_Type).First();
                body.TotalRow.UpmTarget  = item.Upm_Target;
                body.TotalRow.UumTarget  = item.Uum_Target;
                body.TotalRow.PassTarget = item.PassQty_Target;
                body.TotalRow.RwkTarget  = item.Rework_Target;
                body.TotalRow.EffTarget  = item.Eff_Target;
                body.TotalRow.ThrTarget  = item.Wph;
                foreach (var row in body.RowEntities)
                {
                    row.UpmTarget  = item.Upm_Target;
                    row.UumTarget  = item.Uum_Target;
                    row.EffTarget  = item.Eff_Target;
                    row.PassTarget = item.PassQty_Target;
                    row.RwkTarget  = item.Rework_Target;
                    row.ThrTarget  = item.Wph;
                }
            }
        }