Exemplo n.º 1
0
        public ActionResult Query(WorkOrderViewModel model)
        {
            MethodReturnResult ReturnResult = new MethodReturnResult();

            using (ERPClient client = new ERPClient())
            {
                MethodReturnResult <DataSet> result = client.GetERPWorkOrder(model.OrderNumber);

                if (result.Code == 0)
                {
                    if (result.Data.Tables[0].Rows.Count <= 0)
                    {
                        ReturnResult.Code    = 1001;
                        ReturnResult.Message = string.Format(StringResource.ERPWorkOrderQuery_Error_Query, model.OrderNumber);
                    }
                }
                else
                {
                    ReturnResult.Code    = result.Code;
                    ReturnResult.Message = result.Message;
                }
            }

            return(Json(ReturnResult));
        }
Exemplo n.º 2
0
        /// <summary> 取得ERP工单信息 </summary>
        /// <param name="OrderNumber"></param>
        /// <returns></returns>
        public async Task <ActionResult> Detail(string OrderNumber)
        {
            MethodReturnResult <ERPWorkOrderController> result = new MethodReturnResult <ERPWorkOrderController>();

            WorkOrderViewModel model = new WorkOrderViewModel();

            try
            {
                string strWOState      = "";
                string strERPOrderType = "";
                string strOrderType    = "";
                string strERPDept      = "";
                string strLocationName = "";
                MethodReturnResult <DataSet> resultWO = new MethodReturnResult <DataSet>();

                using (ERPClient client = new ERPClient())
                {
                    //取得ERP工单信息
                    await Task.Run(() =>
                    {
                        resultWO = client.GetERPWorkOrder(OrderNumber);
                    });

                    if (resultWO.Code == 0 && resultWO.Data.Tables[0].Rows.Count > 0)
                    {
                        //根据ERP工单状态取得MES工单状态
                        strWOState = resultWO.Data.Tables[0].Rows[0]["FBILLSTATE"].ToString();                                  //ERP工单状态

                        //订单需要是投放状态(自由 - -1、审批 - 1、投放 - 2、完工 - 3、关闭 - 4)
                        if (strWOState != "2")
                        {
                            result.Code    = 1002;
                            result.Message = "订单需要为投放状态!";
                            result.Detail  = "";
                        }

                        //根据ERP工单类型取得MES工单类型
                        strERPOrderType = resultWO.Data.Tables[0].Rows[0]["VTRANTYPECODE"].ToString();                          //ERP工单类型

                        strOrderType = model.GetMESOrderType(strERPOrderType);

                        //根据ERP部门代码取得MES对应的工厂代码
                        strERPDept = resultWO.Data.Tables[0].Rows[0]["CJCODE"].ToString();

                        strLocationName = model.GetLocationName(strERPDept);

                        model.OrderNumber     = resultWO.Data.Tables[0].Rows[0]["VBILLCODE"].ToString();                        //工单号
                        model.OrderType       = strOrderType;                                                                   //工单类型
                        model.MaterialCode    = resultWO.Data.Tables[0].Rows[0]["MATERIALCODE"].ToString();                     //物料代码
                        model.ERPWorkOrderKey = resultWO.Data.Tables[0].Rows[0]["PK_DMO"].ToString();                           //ERP工单号主键
                        model.OrderQuantity   = Convert.ToDouble(resultWO.Data.Tables[0].Rows[0]["NNUM"].ToString());           //数量
                        model.LocationName    = strLocationName;                                                                //生产车间
                        model.PlanStartTime   = DateTime.Parse(resultWO.Data.Tables[0].Rows[0]["TPLANSTARTTIME"].ToString());   //计划开始日期
                        model.PlanFinishTime  = DateTime.Parse(resultWO.Data.Tables[0].Rows[0]["TPLANENDTIME"].ToString());     //计划结束日期
                        model.Description     = resultWO.Data.Tables[0].Rows[0]["VNOTE"].ToString();                            //备注
                    }

                    ViewBag.WorkOrder = model;
                }
            }
            catch (Exception e)
            {
                result.Code    = 1002;
                result.Message = e.Message;
                result.Detail  = e.ToString();

                return(Json(result));
            }

            return(View(model));

            //MethodReturnResult<ERPWorkOrderController> result = new MethodReturnResult<ERPWorkOrderController>();

            //WorkOrderViewModel model = new WorkOrderViewModel();

            //try
            //{
            //    string strWOState = "";

            //    using (ERPClient client = new ERPClient())
            //    {
            //        await Task.Run(() =>
            //        {
            //            //取得ERP工单信息
            //            MethodReturnResult<DataSet> resultWO = client.GetERPWorkOrder(OrderNumber);

            //            if (resultWO.Code == 0 && resultWO.Data.Tables[0].Rows.Count > 0)
            //            {
            //                model.OrderNumber = resultWO.Data.Tables[0].Rows[0]["VBILLCODE"].ToString();                            //工单号
            //                model.MaterialCode = resultWO.Data.Tables[0].Rows[0]["MATERIALCODE"].ToString();                        //物料代码

            //                //根据ERP工单状态取得MES工单状态
            //                strWOState = resultWO.Data.Tables[0].Rows[0]["FBILLSTATUS"].ToString();                                 //工单状态

            //                //订单需要是投放状态(自由 - -1、审批 - 1、投放 - 2、完工 - 3、关闭 - 4)
            //                if (strWOState != "2")
            //                {
            //                    result.Code = 1002;
            //                    result.Message = "订单需要为投放状态!";
            //                    result.Detail = "";

            //                    //return Json(result);
            //                }
            //                //model.OrderState = resultWO.Data.Tables[0].Rows[0]["FBILLSTATUS"].ToString();                         //工单状态


            //                model.OrderType = resultWO.Data.Tables[0].Rows[0]["MATERIALTYPE"].ToString();                         //工单类型

            //                model.OrderQuantity = Convert.ToDouble(resultWO.Data.Tables[0].Rows[0]["NNUM"].ToString());           //数量
            //                model.LocationName = resultWO.Data.Tables[0].Rows[0]["CJNAME"].ToString();                            //生产车间
            //                model.PlanStartTime = DateTime.Parse(resultWO.Data.Tables[0].Rows[0]["TPLANSTARTTIME"].ToString());   //计划开始日期
            //                model.PlanFinishTime = DateTime.Parse(resultWO.Data.Tables[0].Rows[0]["TPLANENDTIME"].ToString());    //计划结束日期
            //            }
            //        });

            //        ViewBag.WorkOrder = model;
            //    }
            //}
            //catch (Exception e)
            //{
            //    result.Code = 1002;
            //    result.Message = e.Message;
            //    result.Detail = e.ToString();

            //    return Json(result);
            //}

            //return View(model);
        }