private void ProcessData() { _rsltPivotDic = new Dictionary <string, IocvData.ResultPivot>(); _rsltChartDic = new Dictionary <string, IocvData.ResultChart>(); var modelContext = this._result.GetCtx <ModelDataContext>(); // ACT_DATE : string 형식 (20161215 180000 위와 같이 데이터 들어옴) //var dtAct = modelContext.InOutAct.Where(x => x.SHOP_ID == this.SelectedShopID // & this.FromTime <= x.ACT_DATE.Replace(" ", "").DbToDateTime() // & x.ACT_DATE.Replace(" ", "").DbToDateTime() < this.ToTime) // .Where(x => this.IsAllProductSeletected ? true : this.SelectedProductList.Contains(x.PRODUCT_ID)) // .Where(x => this.IsAllInOutSeletected ? true : this.SelectedInOutList.Contains(x.IN_OUT.ToUpper())) // .Where(x => x.ACT_QTY > 0) // .GroupBy(x => new { // SHOP_ID = x.SHOP_ID, // IN_OUT_FLAG = x.IN_OUT.ToUpper() == IocvData.Consts.InFlag ? IocvData.Consts.InFlag : // IocvData.Consts.OutFlag, // TARGET_DATE = x.ACT_DATE.Replace(" ", "").DbToDateTime(), // PROD_ID = x.PRODUCT_ID, // PROD_VER = x.PRODUCT_VERSION // }) // .Select(g => new // { // SHOP_ID = g.Key.SHOP_ID, // IN_OUT_FLAG = g.Key.IN_OUT_FLAG, // TARGET_DATE = g.Key.TARGET_DATE, // PROD_ID = g.Key.PROD_ID, // PROD_VER = g.Key.PROD_VER, // DEPT = IocvData.Consts.ACT, // QTY = g.Sum(s => s.ACT_QTY) // }); //foreach (var row in dtAct) //{ // AddResult(row.SHOP_ID, row.IN_OUT_FLAG, row.TARGET_DATE, row.PROD_ID, row.PROD_VER, // IocvData.Consts.ACT, row.QTY); //} // PLAN_DATE : DateTime 형식 (2016-12-08 00:00:00 위와 같이 데이터 들어옴) var dtPlan = modelContext.InOutPlan.Where(x => x.SHOP_ID == this.SelectedShopID) .Where(x => this.IsAllProductSeletected ? true : this.SelectedProductList.Contains(x.PRODUCT_ID)) .Where(x => this.IsAllInOutSeletected ? true : this.SelectedInOutList.Contains(x.IN_OUT.ToUpper())) .Where(x => x.PLAN_QTY > 0) .Select(x => new { SHOP_ID = x.SHOP_ID, IN_OUT_FLAG = x.IN_OUT.Trim().ToUpper() == IocvData.Consts.InFlag ? IocvData.Consts.InFlag : IocvData.Consts.OutFlag, TARGET_DATE = x.PLAN_DATE == x.PLAN_DATE.Date ? ShopCalendar.StartTimeOfDay(x.PLAN_DATE) : //x.PLAN_DATE.AddHours(ShopCalendar.StartTime.Hours) x.PLAN_DATE, // Data가 00:00:00 형식에 대한 예외처리 PROD_ID = x.PRODUCT_ID, //PROD_VER = x.PRODUCT_VERSION, DEPT = IocvData.Consts.PLAN, QTY = (double)x.PLAN_QTY }) .Where(x => this.FromTime <= x.TARGET_DATE & x.TARGET_DATE < this.ToTime); foreach (var row in dtPlan) { AddResult(row.SHOP_ID, row.IN_OUT_FLAG, row.TARGET_DATE, row.PROD_ID, "-",//row.PROD_VER, IocvData.Consts.PLAN, row.QTY); } string filter = Globals.CreateFilter(string.Empty, SmcvData.Schema.SHOP_ID, "=", this.SelectedShopID); filter = Globals.CreateFilter(filter, SimResultData.StepMoveSchema.TARGET_DATE, ">=", this.FromTime.ToString(), "AND"); filter = Globals.CreateFilter(filter, SimResultData.StepMoveSchema.TARGET_DATE, "<", this.ToTime.ToString(), "AND"); DataTable dtStepMove = _result.LoadOutput(SimResultData.OutputName.StepMove, filter); foreach (DataRow row in dtStepMove.Rows) { SimResultData.StepMoveInfo info = new SimResultData.StepMoveInfo(row); if (this.IsAllProductSeletected == false && this.SelectedProductList.Contains(info.ProductID) == false) { continue; } string inStepID = this.SelectedShopID == "ARRAY" ? this.SelectedArrayInStepID : (this.SelectedShopID == "CF" ? this.SelectedCfInStepID : this.SelectedCellInStepID); string outStepID = this.SelectedShopID == "ARRAY" ? this.SelectedArrayOutStepID : (this.SelectedShopID == "CF" ? this.SelectedCfOutStepID : "--"); string inOutFlag = string.Empty; if (info.StepID == inStepID) { inOutFlag = IocvData.Consts.InFlag; } else if (info.StepID == outStepID) { inOutFlag = IocvData.Consts.OutFlag; } else { continue; } if (this.IsAllInOutSeletected == false && this.SelectedInOutList.Contains(inOutFlag) == false) { continue; } double qty = inOutFlag == IocvData.Consts.InFlag ? info.InQty : info.OutQty; AddResult(info.ShopID, inOutFlag, info.TargetDate, info.ProductID, info.ProductVersion, IocvData.Consts.SIM, qty); } }