public ActionResult Query(WIPDisplayQueryViewModel model) { DataTable dtWIPData = new DataTable(); using (WIPDisplayServiceClient client = new WIPDisplayServiceClient()) { MethodReturnResult <DataSet> rst = client.Get(new WIPDisplayGetParameter() { LocationName = model.LocationName, MaterialCode = model.MaterialCode, OnlineTime = model.OnlineTime, OrderNumber = model.OrderNumber }); if (rst.Code <= 0 && rst.Data != null && rst.Data.Tables.Count > 0) { dtWIPData = rst.Data.Tables[0]; } } IList <RouteOperation> lstRouteOperation = new List <RouteOperation>(); using (RouteOperationServiceClient client = new RouteOperationServiceClient()) { PagingConfig cfg = new PagingConfig() { IsPaging = false, Where = "Status=1", OrderBy = "SortSeq" }; MethodReturnResult <IList <RouteOperation> > rst = client.Get(ref cfg); if (rst.Code <= 0 && rst.Data != null) { lstRouteOperation = rst.Data; } } #region 整理成显示格式的数据 const string SUMMARY_COLUMN_NAME = "合计"; DataTable dt = new DataTable(); //增加状态列 DataColumn dcStatus = new DataColumn("状态"); dt.Columns.Add(dcStatus); DataRow dr0 = dt.NewRow(); dr0[0] = "暂停"; dt.Rows.Add(dr0); DataRow dr1 = dt.NewRow(); dr1[0] = "等待"; dt.Rows.Add(dr1); DataRow dr2 = dt.NewRow(); dr2[0] = "运行"; dt.Rows.Add(dr2); DataRow dr3 = dt.NewRow(); dr3[0] = "总计"; dt.Rows.Add(dr3); //增加工序列表 for (int i = 0; i < lstRouteOperation.Count; i++) { string colName = lstRouteOperation[i].Key; DataColumn col = new DataColumn(colName); col.DataType = typeof(double); dt.Columns.Add(col); dr0[col] = "0"; dr1[col] = "0"; dr2[col] = "0"; dr3[col] = "0"; } //增加合计列 DataColumn dcSum = new DataColumn(SUMMARY_COLUMN_NAME); dcSum.DataType = typeof(double); dt.Columns.Add(dcSum); double sumHold = 0; double sumWait = 0; double sumRun = 0; ///凑数据源的表头 for (int i = 0; i < dtWIPData.Rows.Count; i++) { //工序 string stepName = Convert.ToString(dtWIPData.Rows[i]["ROUTE_STEP_NAME"]); //状态 string strState_flag = Convert.ToString(dtWIPData.Rows[i]["STATE_FLAG"]); //数量 double qty = Convert.ToDouble(dtWIPData.Rows[i]["QTY"]); switch (strState_flag) { case "暂停": dr0[stepName] = qty.ToString(); sumHold += qty; break; case "等待": dr1[stepName] = qty.ToString(); sumWait += qty; break; case "运行": dr2[stepName] = qty.ToString(); sumRun += qty; break; default: break; } dr3[stepName] = Convert.ToInt32(dr0[stepName]) + Convert.ToInt32(dr1[stepName]) + Convert.ToInt32(dr2[stepName]); } dr0[SUMMARY_COLUMN_NAME] = sumHold; dr1[SUMMARY_COLUMN_NAME] = sumWait; dr2[SUMMARY_COLUMN_NAME] = sumRun; dr3[SUMMARY_COLUMN_NAME] = sumWait + sumRun + sumHold; #endregion string key = Convert.ToString(Session.SessionID); string routeOperationKey = string.Format("{0}_RouteOperation", key); HttpContext.Cache[key] = dtWIPData; HttpContext.Cache[routeOperationKey] = lstRouteOperation; ViewBag.ListData = dt; ViewBag.Key = key; if (Request.IsAjaxRequest()) { return(PartialView("_ListPartial", model)); } else { return(View(model)); } }
// // GET: /RPT/WIPDisplay/ public ActionResult Index(WIPDisplayQueryViewModel model) { return(Query(model)); }