コード例 #1
0
        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));
            }
        }
コード例 #2
0
 //
 // GET: /RPT/WIPDisplay/
 public ActionResult Index(WIPDisplayQueryViewModel model)
 {
     return(Query(model));
 }