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