Example #1
0
        public IEnumerable <SelectListItem> GetOrderNumberList()
        {
            IList <WorkOrder> lstValues = new List <WorkOrder>();

            using (WorkOrderServiceClient client = new WorkOrderServiceClient())
            {
                PagingConfig cfg = new PagingConfig()
                {
                    IsPaging = false,
                    Where    = string.Format("CloseType='{0}'", Convert.ToInt32(EnumWorkOrderCloseType.None)),
                    OrderBy  = "Key"
                };

                MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg);
                if (result.Code <= 0 && result.Data != null)
                {
                    lstValues = result.Data;
                }
            }
            return(from item in lstValues
                   select new SelectListItem()
            {
                Text = item.Key,
                Value = item.Key
            });
        }
Example #2
0
        public ActionResult GetOrderNumbers()
        {
            IList <WorkOrder> lstWorkOrder = new List <WorkOrder>();

            using (WorkOrderServiceClient client = new WorkOrderServiceClient())
            {
                PagingConfig cfg = new PagingConfig()
                {
                    IsPaging = false,
                    Where    = string.Format(@"CloseType='{0}' "
                                             , Convert.ToInt32(EnumCloseType.None))
                };

                MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg);
                if (result.Code <= 0)
                {
                    lstWorkOrder = result.Data;
                }
            }
            return(Json(from item in lstWorkOrder
                        select new
            {
                Text = item.Key,
                Value = item.Key
            }, JsonRequestBehavior.AllowGet));
        }
Example #3
0
        public IEnumerable <SelectListItem> GetOrderNumbers()
        {
            using (WorkOrderServiceClient client = new WorkOrderServiceClient())
            {
                PagingConfig cfg = new PagingConfig()
                {
                    IsPaging = false,
                    Where    = string.Format(@"CloseType='{0}' "
                                             , Convert.ToInt32(EnumCloseType.None))
                };

                MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg);
                if (result.Code == 0)
                {
                    IEnumerable <SelectListItem> lst = from item in result.Data
                                                       select new SelectListItem()
                    {
                        Text  = item.Key,
                        Value = item.Key
                    };
                    return(lst);
                }
                return(new List <SelectListItem>());
            }
        }
        //获取工单号
        public ActionResult GetOrderNumber(string q)
        {
            IList <WorkOrder> lstDetail = new List <WorkOrder>();

            using (WorkOrderServiceClient client = new WorkOrderServiceClient())
            {
                PagingConfig cfg = new PagingConfig()
                {
                    IsPaging = false,
                    Where    = string.Format(@"Key LIKE '{0}%' AND OrderState='0' AND CloseType=0"
                                             , q),
                    OrderBy = "Key"
                };

                MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg);
                if (result.Code <= 0 && result.Data != null)
                {
                    lstDetail = result.Data;
                }
            }

            var lnq = from item in lstDetail
                      select item.Key;

            return(Json(from item in lstDetail
                        select new
            {
                @label = item.Key + "-" + item.MaterialCode,
                @value = item.Key,
                @ProductCode = item.MaterialCode
            }, JsonRequestBehavior.AllowGet));
        }
Example #5
0
        public async Task <ActionResult> Query(MaterialReceiptQueryViewModel model)
        {
            using (ERPClient client = new ERPClient())
            {
                MethodReturnResult           ReturnResult = new MethodReturnResult();
                MethodReturnResult <DataSet> result       = client.GetERPMaterialReceipt(model.ReceiptNo);

                if (result.Code == 0)
                {
                    if (result.Data.Tables[0].Rows.Count > 0)
                    {
                        WorkOrderServiceClient         workClient = new WorkOrderServiceClient();
                        MethodReturnResult <WorkOrder> rst        = await workClient.GetAsync(result.Data.Tables[0].Rows[0]["VPRODUCTBATCH"].ToString());

                        if (rst.Data == null)
                        {
                            ReturnResult.Code    = 1001;
                            ReturnResult.Message = string.Format(StringResource.ERPWorkOrder_Error_Query, model.ReceiptNo, result.Data.Tables[0].Rows[0]["VPRODUCTBATCH"].ToString());
                        }
                    }
                    else
                    {
                        ReturnResult.Code    = 1001;
                        ReturnResult.Message = string.Format(StringResource.ERPMaterialReceipt_Error_Query, model.ReceiptNo);
                    }
                }
                else
                {
                    ReturnResult.Code    = result.Code;
                    ReturnResult.Message = result.Message;
                }
                return(Json(ReturnResult));
            }
        }
Example #6
0
        public async Task <ActionResult> Query(WorkOrderQueryViewModel model)
        {
            if (ModelState.IsValid)
            {
                using (WorkOrderServiceClient client = new WorkOrderServiceClient())
                {
                    await Task.Run(() =>
                    {
                        StringBuilder where = new StringBuilder();
                        if (model != null)
                        {
                            if (!string.IsNullOrEmpty(model.OrderNumber))
                            {
                                where.AppendFormat(" {0} Key LIKE '{1}%'"
                                                   , where.Length > 0 ? "AND" : string.Empty
                                                   , model.OrderNumber);
                            }
                        }
                        PagingConfig cfg = new PagingConfig()
                        {
                            OrderBy = "Key",
                            Where   = where.ToString()
                        };
                        MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg);

                        if (result.Code == 0)
                        {
                            ViewBag.PagingConfig = cfg;
                            ViewBag.List         = result.Data;
                        }
                    });
                }
            }
            return(PartialView("_ListPartial"));
        }
Example #7
0
        /// <summary> 初始化查询界面 </summary>
        /// <returns></returns>
        public async Task <ActionResult> Index()
        {
            using (WorkOrderServiceClient client = new WorkOrderServiceClient())
            {
                await Task.Run(() =>
                {
                    PagingConfig cfg = new PagingConfig()
                    {
                        Where = string.Format(" OrderState = '{0}'"
                                              , EnumWorkOrderState.Open.GetHashCode()),
                        OrderBy = "EditTime DESC"
                    };

                    MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg);

                    if (result.Code == 0)
                    {
                        ViewBag.PagingConfig = cfg;
                        ViewBag.List         = result.Data;
                    }
                });
            }

            return(View(new WorkOrderQueryViewModel()));
        }
Example #8
0
        public ActionResult GetOrderNumber(string q)
        {
            using (WorkOrderServiceClient client = new WorkOrderServiceClient())
            {
                PagingConfig cfg = new PagingConfig()
                {
                    IsPaging = false,
                    Where    = string.Format("Key LIKE '{0}%' AND CloseType='{1}'"
                                             , q
                                             , Convert.ToInt32(EnumWorkOrderCloseType.None))
                };

                MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg);
                if (result.Code <= 0)
                {
                    return(Json(from item in result.Data
                                select new
                    {
                        @label = item.Key,
                        @value = item.Key
                    }, JsonRequestBehavior.AllowGet));
                }
            }
            return(Json(null, JsonRequestBehavior.AllowGet));
        }
Example #9
0
        public async Task <ActionResult> Save(WorkOrderViewModel model)
        {
            MethodReturnResult rst = new MethodReturnResult();

            try
            {
                using (WorkOrderServiceClient client = new WorkOrderServiceClient())
                {
                    //创建工单对象
                    WorkOrder obj = new WorkOrder()
                    {
                        Key            = model.OrderNumber.ToUpper(),   //工单号
                        MaterialCode   = model.MaterialCode.ToUpper(),  //产品代码
                        OrderQuantity  = model.OrderQuantity,           //生产数量
                        OrderType      = model.OrderType,               //工单类型
                        LocationName   = model.LocationName.ToUpper(),  //生产车间
                        PlanStartTime  = model.PlanStartTime,           //计划开工日期
                        PlanFinishTime = model.PlanFinishTime,          //计划完工日期
                        StartTime      = model.PlanStartTime,           //开始时间
                        FinishTime     = model.PlanFinishTime,          //完工时间

                        LeftQuantity   = model.OrderQuantity,           //剩余数量
                        FinishQuantity = 0,                             //完工数量
                        ReworkQuantity = 0,                             //返工数量
                        RepairQuantity = 0,                             //返修数量
                        CloseType      = model.CloseType,               //关闭状态
                        OrderState     = model.OrderState,              //工单状态
                        Priority       = model.Priority,                //优先级

                        Description = model.Description,                //说明
                        CreateTime  = DateTime.Now,                     //创建时间
                        Creator     = User.Identity.Name,               //创建人
                        EditTime    = DateTime.Now,                     //编辑时间
                        Editor      = User.Identity.Name                //编辑人
                    };

                    rst = await client.AddAsync(obj);

                    if (rst.Code == 0)
                    {
                        rst.Message = string.Format(PPMResources.StringResource.WorkOrder_Save_Success
                                                    , model.OrderNumber);
                    }
                }
            }
            catch (Exception ex)
            {
                rst.Code    = 1000;
                rst.Message = ex.Message;
                rst.Detail  = ex.ToString();
            }

            return(Json(rst));
        }
Example #10
0
 public ActionResult GetProductNumber(string orderNumber)
 {
     using (WorkOrderServiceClient client = new WorkOrderServiceClient())
     {
         MethodReturnResult <WorkOrder> result = client.Get(orderNumber);
         if (result.Code <= 0)
         {
             return(Json(result.Data.MaterialCode, JsonRequestBehavior.AllowGet));
         }
     }
     return(Json(string.Empty, JsonRequestBehavior.AllowGet));
 }
Example #11
0
        public ActionResult GetLineStoreNames(string orderNumber)
        {
            string locationName = string.Empty;

            using (WorkOrderServiceClient client = new WorkOrderServiceClient())
            {
                MethodReturnResult <WorkOrder> result = client.Get(orderNumber);
                if (result.Code <= 0 && result.Data != null)
                {
                    locationName = result.Data.LocationName;
                }
            }

            IList <LineStore> lstLineStore = new List <LineStore>();

            using (LineStoreServiceClient client = new LineStoreServiceClient())
            {
                PagingConfig cfg = new PagingConfig()
                {
                    IsPaging = false,
                    Where    = string.Format("LocationName='{0}' AND Type='{1}' AND Status='{2}'"
                                             , locationName
                                             , Convert.ToInt32(EnumLineStoreType.Material)
                                             , Convert.ToInt32(EnumObjectStatus.Available))
                };

                MethodReturnResult <IList <LineStore> > result = client.Get(ref cfg);
                if (result.Code <= 0 && result.Data != null)
                {
                    lstLineStore = result.Data;
                }
            }

            IList <Resource> lstResource = new List <Resource>();

            using (UserAuthenticateServiceClient client = new UserAuthenticateServiceClient())
            {
                MethodReturnResult <IList <Resource> > result = client.GetResourceList(User.Identity.Name, ResourceType.LineStore);
                if (result.Code <= 0 && result.Data != null)
                {
                    lstResource = result.Data;
                }
            }

            var lnq = from item in lstLineStore
                      where lstResource.Any(m => m.Data == item.Key)
                      select new
            {
                Key = item.Key
            };

            return(Json(lnq, JsonRequestBehavior.AllowGet));
        }
        //获取工单明细
        public WorkOrder GetWorkOrder(string orderNumber)
        {
            WorkOrder workOrder = new WorkOrder();

            using (WorkOrderServiceClient client = new WorkOrderServiceClient())
            {
                MethodReturnResult <WorkOrder> result = client.Get(orderNumber);
                if (result.Code <= 0)
                {
                    workOrder = result.Data;
                }
            }
            return(workOrder);
        }
Example #13
0
        public async Task <ActionResult> Delete(string key)
        {
            MethodReturnResult result = new MethodReturnResult();

            using (WorkOrderServiceClient client = new WorkOrderServiceClient())
            {
                result = await client.DeleteAsync(key);

                if (result.Code == 0)
                {
                    result.Message = string.Format(PPMResources.StringResource.WorkOrder_Delete_Success
                                                   , key);
                }
                return(Json(result));
            }
        }
Example #14
0
        public async Task <ActionResult> SaveModify(WorkOrderViewModel model)
        {
            MethodReturnResult rst = new MethodReturnResult();

            try
            {
                using (WorkOrderServiceClient client = new WorkOrderServiceClient())
                {
                    MethodReturnResult <WorkOrder> result = await client.GetAsync(model.OrderNumber);

                    if (result.Code == 0 && result.Data != null)
                    {
                        result.Data.CloseType     = model.CloseType;
                        result.Data.Description   = model.Description;
                        result.Data.FinishTime    = model.FinishTime;
                        result.Data.LocationName  = model.LocationName.ToUpper();
                        result.Data.MaterialCode  = model.MaterialCode.ToUpper();
                        result.Data.LeftQuantity  = result.Data.LeftQuantity + (model.OrderQuantity - result.Data.OrderQuantity);
                        result.Data.OrderQuantity = model.OrderQuantity;
                        result.Data.OrderState    = model.OrderState;
                        result.Data.OrderType     = model.OrderType;
                        result.Data.Priority      = model.Priority;
                        result.Data.RevenueType   = model.RevenueType;
                        result.Data.StartTime     = model.StartTime;
                        result.Data.Description   = model.Description;
                        result.Data.Editor        = User.Identity.Name;
                        result.Data.EditTime      = DateTime.Now;

                        rst = await client.ModifyAsync(result.Data);

                        if (rst.Code == 0)
                        {
                            rst.Message = string.Format(PPMResources.StringResource.WorkOrder_Save_Success
                                                        , model.OrderNumber);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                rst.Code    = 1000;
                rst.Message = ex.Message;
                rst.Detail  = ex.ToString();
            }
            return(Json(rst));
        }
Example #15
0
        /// <summary> 修改信息查询 </summary>
        /// <param name="key">工单号</param>
        /// <returns></returns>
        public async Task <ActionResult> Modify(string key)
        {
            WorkOrderViewModel viewModel = new WorkOrderViewModel();

            using (WorkOrderServiceClient client = new WorkOrderServiceClient())
            {
                MethodReturnResult <WorkOrder> result = await client.GetAsync(key);

                if (result.Code == 0)
                {
                    viewModel = new WorkOrderViewModel()
                    {
                        CloseType      = result.Data.CloseType,
                        FinishQuantity = result.Data.FinishQuantity,
                        FinishTime     = result.Data.FinishTime,
                        PlanStartTime  = result.Data.PlanStartTime,
                        PlanFinishTime = result.Data.PlanFinishTime,
                        LeftQuantity   = result.Data.LeftQuantity,
                        MaterialCode   = result.Data.MaterialCode,
                        OrderNumber    = result.Data.Key,
                        OrderQuantity  = result.Data.OrderQuantity,
                        OrderState     = result.Data.OrderState,
                        OrderType      = result.Data.OrderType,
                        Priority       = result.Data.Priority,
                        RepairQuantity = result.Data.RepairQuantity,
                        RevenueType    = result.Data.RevenueType,
                        ReworkQuantity = result.Data.ReworkQuantity,
                        ScrapQuantity  = result.Data.ScrapQuantity,
                        StartTime      = result.Data.StartTime,
                        WIPQuantity    = result.Data.WIPQuantity,
                        LocationName   = result.Data.LocationName,
                        CreateTime     = result.Data.CreateTime,
                        Creator        = result.Data.Creator,
                        Description    = result.Data.Description,
                        Editor         = result.Data.Editor,
                        EditTime       = result.Data.EditTime
                    };
                    return(PartialView("_ModifyPartial", viewModel));
                }
                else
                {
                    ModelState.AddModelError("", result.Message);
                }
            }
            return(PartialView("_ModifyPartial"));
        }
Example #16
0
        public async Task <ActionResult> Save(WorkOrderViewModel model)
        {
            MethodReturnResult rst = new MethodReturnResult();

            try
            {
                using (WorkOrderServiceClient client = new WorkOrderServiceClient())
                {
                    WorkOrder obj = new WorkOrder()
                    {
                        CloseType      = model.CloseType,
                        CreateTime     = DateTime.Now,
                        Creator        = User.Identity.Name,
                        Description    = model.Description,
                        Editor         = User.Identity.Name,
                        MaterialCode   = model.MaterialCode.ToUpper(),
                        EditTime       = DateTime.Now,
                        Key            = model.OrderNumber.ToUpper(),
                        FinishQuantity = model.FinishQuantity,
                        FinishTime     = model.FinishTime,
                        LocationName   = model.LocationName.ToUpper(),
                        OrderQuantity  = model.OrderQuantity,
                        OrderState     = model.OrderState,
                        OrderType      = model.OrderType,
                        Priority       = model.Priority,
                        RevenueType    = model.RevenueType,
                        StartTime      = model.StartTime
                    };
                    rst = await client.AddAsync(obj);

                    if (rst.Code == 0)
                    {
                        rst.Message = string.Format(PPMResources.StringResource.WorkOrder_Save_Success
                                                    , model.OrderNumber);
                    }
                }
            }
            catch (Exception ex)
            {
                rst.Code    = 1000;
                rst.Message = ex.Message;
                rst.Detail  = ex.ToString();
            }
            return(Json(rst));
        }
Example #17
0
        public ActionResult GetOrderNumber(string q, string lineCode)
        {
            string where = string.Format(@"Key LIKE '{0}%' AND CloseType = '{1}'
                                            AND OrderState = '{2}'"
                                         , q
                                         , Convert.ToInt32(EnumWorkOrderCloseType.None)
                                         , EnumWorkOrderState.Open.GetHashCode());

            if (lineCode != null && lineCode != "")
            {
                where += string.Format(@" AND EXISTS(FROM Location as loca
                                                     WHERE loca.ParentLocationName = self.LocationName
                                                        AND EXISTS(FROM ProductionLine as line
                                                                   WHERE line.LocationName = loca.Key
                                                                      AND line.Key = '{0}'))",
                                       lineCode);
            }

            //ProductionLine pl = new ProductionLine();
            //Location l = new Location();

            using (WorkOrderServiceClient client = new WorkOrderServiceClient())
            {
                PagingConfig cfg = new PagingConfig()
                {
                    IsPaging = false,
                    Where    = where,
                    OrderBy  = "EditTime DESC"
                };

                MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg);

                if (result.Code <= 0)
                {
                    return(Json(from item in result.Data
                                select new
                    {
                        @label = item.Key + " " + item.Description,
                        @value = item.Key
                    }, JsonRequestBehavior.AllowGet));
                }
            }

            return(Json(null, JsonRequestBehavior.AllowGet));
        }
Example #18
0
        //根据工单号获取工单产品编码
        public ActionResult GetMaterialCodes(string orderNumber)
        {
            List <string> lstMaterial = new List <string>();

            using (WorkOrderServiceClient client = new WorkOrderServiceClient())
            {
                MethodReturnResult <WorkOrder> result = client.Get(orderNumber);
                if (result.Code <= 0 && result.Data != null)
                {
                    string materialCode = result.Data.MaterialCode;
                    lstMaterial.Add(materialCode);
                }
            }
            var lnq = from item in lstMaterial
                      select item;

            return(Json(lnq.Distinct(), JsonRequestBehavior.AllowGet));
        }
Example #19
0
        public WorkOrder GetWorkOrder(string workOrder)
        {
            using (WorkOrderServiceClient client = new WorkOrderServiceClient())
            {
                PagingConfig cfg = new PagingConfig()
                {
                    PageNo   = 0,
                    PageSize = 1,
                    Where    = string.Format("Key='{0}'", workOrder)
                };
                MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg);

                if (result.Code == 0 && result.Data != null & result.Data.Count > 0)
                {
                    return(result.Data[0]);
                }
            }
            return(null);
        }
Example #20
0
        //
        // GET: /PPM/WorkOrder/
        public async Task <ActionResult> Index()
        {
            using (WorkOrderServiceClient client = new WorkOrderServiceClient())
            {
                await Task.Run(() =>
                {
                    PagingConfig cfg = new PagingConfig()
                    {
                        OrderBy = "Key"
                    };
                    MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg);

                    if (result.Code == 0)
                    {
                        ViewBag.PagingConfig = cfg;
                        ViewBag.List         = result.Data;
                    }
                });
            }
            return(View(new WorkOrderQueryViewModel()));
        }
Example #21
0
        public async Task <ActionResult> PagingQuery(string where, string orderBy, int?currentPageNo, int?currentPageSize)
        {
            if (ModelState.IsValid)
            {
                int pageNo   = currentPageNo ?? 0;
                int pageSize = currentPageSize ?? 20;
                if (Request["PageNo"] != null)
                {
                    pageNo = Convert.ToInt32(Request["PageNo"]);
                }
                if (Request["PageSize"] != null)
                {
                    pageSize = Convert.ToInt32(Request["PageSize"]);
                }

                using (WorkOrderServiceClient client = new WorkOrderServiceClient())
                {
                    await Task.Run(() =>
                    {
                        PagingConfig cfg = new PagingConfig()
                        {
                            PageNo   = pageNo,
                            PageSize = pageSize,
                            Where    = where ?? string.Empty,
                            OrderBy  = orderBy ?? string.Empty
                        };
                        MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg);
                        if (result.Code == 0)
                        {
                            ViewBag.PagingConfig = cfg;
                            ViewBag.List         = result.Data;
                        }
                    });
                }
            }

            WorkOrderViewModel model = new WorkOrderViewModel();

            return(PartialView("_ListPartial", model));
        }
Example #22
0
        static void Main(string[] args)
        {
            try
            {
                var AUTHKEY = "";
                System.Diagnostics.Debug.Write("Here");
                // Create the workorder service client.
                var workOrderServiceClient = new WorkOrderServiceClient();
                System.Diagnostics.Debug.Write("New Client");
                JobPartialEntity job = new JobPartialEntity
                {
                    GUID = new Guid("0B67EAA4-6CC3-429E-9BD3-C254CF7B133D"),
                    SiteOrderGUID = new Guid("C8000C32-4F92-E311-88F3-8B711F764498"),
                    ActionGUID = new Guid("892D0325-4F92-E311-88F3-8B711F764498"),
                    ContainerTypeGUID = new Guid("DD2D0325-4F92-E311-88F3-8B711F764498"),
                    ConsignmentNoteNoPart1 = "note1",
                    ConsignmentNoteNoPart2 = "note2",
                    HazardousLoadReference = "load ref",
                    TicketNo = "My Ticket",
                    DestinationLocationGUID = new Guid("3A2E0325-4F92-E311-88F3-8B711F764498"),
                    DateRequired = DateTime.Now.Date,
                    AccessNotes = "Some accessnotes",
                    AccessStartTime = DateTime.Now,
                    AccessEndTime = DateTime.Now,
                };

                // Save route
                var jobGUID = workOrderServiceClient.SaveJob(AUTHKEY, job);

                System.Diagnostics.Debug.Write("Successfully saved job.");

                // Always close the client.
                workOrderServiceClient.Close();

            }
            catch (System.ServiceModel.FaultException ex)
            {
                System.Diagnostics.Debug.Write("Failed to save job.- {0}", ex.Message);
            }
        }
Example #23
0
        //
        // GET: /PPM/WorkOrderBOM/
        public async Task <ActionResult> Index(string orderNumber)
        {
            using (WorkOrderServiceClient client = new WorkOrderServiceClient())
            {
                MethodReturnResult <WorkOrder> result = await client.GetAsync(orderNumber ?? string.Empty);

                if (result.Code > 0 || result.Data == null)
                {
                    return(RedirectToAction("Index", "WorkOrder"));
                }
                ViewBag.WorkOrder = result.Data;
            }

            using (WorkOrderBOMServiceClient client = new WorkOrderBOMServiceClient())
            {
                await Task.Run(() =>
                {
                    PagingConfig cfg = new PagingConfig()
                    {
                        Where = string.Format(" Key.OrderNumber = '{0}'"
                                              , orderNumber),
                        OrderBy = "Key.ItemNo"
                    };
                    MethodReturnResult <IList <WorkOrderBOM> > result = client.Get(ref cfg);

                    if (result.Code == 0)
                    {
                        ViewBag.PagingConfig = cfg;
                        ViewBag.List         = result.Data;
                    }
                });
            }

            //return View(new WorkOrderBOMViewModel() { OrderNumber = orderNumber });
            return(View(new WorkOrderBOMQueryViewModel()
            {
                OrderNumber = orderNumber
            }));
        }
Example #24
0
        public ActionResult GetWorkOrderNo()
        {
            string prefix = string.Format("1MO-{0:yyMM}", DateTime.Now);
            int    itemNo = 0;

            using (WorkOrderServiceClient client = new WorkOrderServiceClient())
            {
                PagingConfig cfg = new PagingConfig()
                {
                    PageNo   = 0,
                    PageSize = 1,
                    Where    = string.Format("Key LIKE '{0}%'", prefix),
                    OrderBy  = "Key Desc"
                };
                MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg);
                if (result.Code <= 0 && result.Data != null && result.Data.Count > 0)
                {
                    string sItemNo = result.Data[0].Key.Replace(prefix, "");
                    int.TryParse(sItemNo, out itemNo);
                }
            }
            return(Json(prefix + (itemNo + 1).ToString("0000"), JsonRequestBehavior.AllowGet));
        }
Example #25
0
        public IEnumerable <SelectListItem> GetOrderNumberList()
        {
            IList <WorkOrder> lst = new List <WorkOrder>();
            PagingConfig      cfg = new PagingConfig()
            {
                IsPaging = false,
                Where    = " OrderState = 0"
            };

            using (WorkOrderServiceClient client = new WorkOrderServiceClient())
            {
                MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg);
                if (result.Code <= 0 && result.Data != null)
                {
                    lst = result.Data;
                }
            }
            return(from item in lst
                   select new SelectListItem()
            {
                Text = item.Key,
                Value = item.Key
            });
        }
        public async Task <ActionResult> Save(WorkOrderGroupDetailViewModel model)
        {
            DateTime           now = DateTime.Now;
            MethodReturnResult rst = new MethodReturnResult();

            if (model.WorkOrderGroupNo == "" || model.WorkOrderGroupNo == null)
            {
                rst.Code    = 1000;
                rst.Message = "混工单组号不可为空!";
                return(Json(rst));
            }
            if (model.OrderNumber == "" || model.OrderNumber == null)
            {
                rst.Code    = 1000;
                rst.Message = "工单不可为空!";
                return(Json(rst));
            }
            if (model.ProductCode == "" || model.ProductCode == null)
            {
                rst.Code    = 1000;
                rst.Message = "产品编码不可为空!";
                return(Json(rst));
            }

            using (WorkOrderServiceClient client0 = new WorkOrderServiceClient())
            {
                PagingConfig cfg0 = new PagingConfig()
                {
                    IsPaging = false,
                    Where    = string.Format(@"Key LIKE '{0}%' AND OrderState='0' AND CloseType=0"
                                             , model.OrderNumber.Trim().ToUpper()),
                    OrderBy = "Key"
                };

                MethodReturnResult <IList <WorkOrder> > result0 = client0.Get(ref cfg0);
                if (result0.Code <= 0 && result0.Data != null)
                {
                    if (model.ProductCode.Trim().ToUpper() == result0.Data[0].MaterialCode.ToString())
                    {
                        #region 新增规则
                        using (WorkOrderGroupDetailServiceClient client = new WorkOrderGroupDetailServiceClient())
                        {
                            //获取混工单组规则中该组的最大序列号
                            StringBuilder where = new StringBuilder();
                            if (model != null)
                            {
                                if (!string.IsNullOrEmpty(model.WorkOrderGroupNo))
                                {
                                    where.AppendFormat(" {0} Key.WorkOrderGroupNo LIKE '{1}%'"
                                                       , where.Length > 0 ? "AND" : string.Empty
                                                       , model.WorkOrderGroupNo.ToString().Trim().ToUpper());
                                }
                            }
                            PagingConfig cfg = new PagingConfig()
                            {
                                OrderBy = "ItemNo Desc",
                                Where   = where.ToString()
                            };
                            MethodReturnResult <IList <WorkOrderGroupDetail> > result = client.Gets(ref cfg);
                            if (result != null && result.Data.Count > 0)
                            {
                                //判断新增工单是否已存在至混工单组
                                StringBuilder where1 = new StringBuilder();
                                if (model != null)
                                {
                                    if (!string.IsNullOrEmpty(model.WorkOrderGroupNo))
                                    {
                                        where1.AppendFormat(" {0} Key.OrderNumber = '{1}'"
                                                            , where1.Length > 0 ? "AND" : string.Empty
                                                            , model.OrderNumber.ToString().Trim().ToUpper());
                                    }
                                }
                                PagingConfig cfg1 = new PagingConfig()
                                {
                                    //OrderBy = "ItemNo Desc",
                                    Where = where1.ToString()
                                };
                                MethodReturnResult <IList <WorkOrderGroupDetail> > result1 = client.Gets(ref cfg1);
                                if (result1 != null && result1.Data.Count > 0)
                                {
                                    rst.Code    = 1000;
                                    rst.Message = string.Format("新增工单{0}已存在至混工单组{1}中!"
                                                                , model.OrderNumber.Trim().ToUpper()
                                                                , result1.Data[0].Key.WorkOrderGroupNo.ToString());
                                    return(Json(rst));
                                }

                                if (model.ProductCode.Trim().ToUpper() == result.Data[0].Key.ProductCode.ToString())
                                {
                                    int i = 1;
                                    if (result.Code == 0 && result.Data.Count > 0)
                                    {
                                        i = Convert.ToInt32(result.Data[0].ItemNo.ToString()) + 1;
                                    }

                                    string n = model.WorkOrderGroupNo.ToString().Trim().ToUpper();
                                    WorkOrderGroupDetail obj = new WorkOrderGroupDetail()
                                    {
                                        Key = new WorkOrderGroupDetailKey()
                                        {
                                            WorkOrderGroupNo = model.WorkOrderGroupNo.ToString().Trim().ToUpper(),
                                            OrderNumber      = model.OrderNumber.ToString().Trim().ToUpper(),
                                            ProductCode      = model.ProductCode.ToString().Trim().ToUpper()
                                        },
                                        Nums        = Convert.ToInt32(n.Substring(5, n.Length - 5)),
                                        ItemNo      = i,
                                        CreateTime  = DateTime.Now,
                                        Creator     = User.Identity.Name,
                                        Editor      = User.Identity.Name,
                                        EditTime    = DateTime.Now,
                                        Description = result.Data[0].Description
                                    };
                                    rst = await client.AddAsync(obj);

                                    if (rst.Code == 0)
                                    {
                                        rst.Message = string.Format(PPMResources.StringResource.WorkOrderGroupDetail_Save_Success, obj.Key.ToString());
                                    }
                                    return(Json(rst));
                                }
                                else
                                {
                                    rst.Code    = 1000;
                                    rst.Message = string.Format("新增工单{0}的产品编码{1}与混工单组的产品编码{2}不一致!"
                                                                , model.OrderNumber.Trim().ToUpper()
                                                                , model.ProductCode.Trim().ToUpper()
                                                                , result.Data[0].Key.ProductCode.ToString());
                                    return(Json(rst));
                                }
                            }
                            else
                            {
                                //获取混工单组规则中该组的最大序列号
                                StringBuilder where1 = new StringBuilder();
                                if (model != null)
                                {
                                    if (!string.IsNullOrEmpty(model.WorkOrderGroupNo))
                                    {
                                        where1.AppendFormat(" {0} Key.OrderNumber = '{1}'"
                                                            , where1.Length > 0 ? "AND" : string.Empty
                                                            , model.OrderNumber.ToString().Trim().ToUpper());
                                    }
                                }
                                PagingConfig cfg1 = new PagingConfig()
                                {
                                    //OrderBy = "ItemNo Desc",
                                    Where = where1.ToString()
                                };
                                MethodReturnResult <IList <WorkOrderGroupDetail> > result1 = client.Gets(ref cfg1);
                                if (result1 != null && result1.Data.Count > 0)
                                {
                                    rst.Code    = 1000;
                                    rst.Message = string.Format("新增工单{0}已存在至混工单组{1}中!"
                                                                , model.OrderNumber.Trim().ToUpper()
                                                                , result1.Data[0].Key.WorkOrderGroupNo.ToString());
                                    return(Json(rst));
                                }
                                else
                                {
                                    int    i = 1;
                                    string n = model.WorkOrderGroupNo.ToString().Trim().ToUpper();
                                    WorkOrderGroupDetail obj = new WorkOrderGroupDetail()
                                    {
                                        Key = new WorkOrderGroupDetailKey()
                                        {
                                            WorkOrderGroupNo = model.WorkOrderGroupNo.ToString().Trim().ToUpper(),
                                            OrderNumber      = model.OrderNumber.ToString().Trim().ToUpper(),
                                            ProductCode      = model.ProductCode.ToString().Trim().ToUpper()
                                        },
                                        Nums        = Convert.ToInt32(n.Substring(5, n.Length - 5)),
                                        ItemNo      = i,
                                        CreateTime  = DateTime.Now,
                                        Creator     = User.Identity.Name,
                                        Editor      = User.Identity.Name,
                                        EditTime    = DateTime.Now,
                                        Description = model.Description,
                                    };
                                    rst = await client.AddAsync(obj);

                                    if (rst.Code == 0)
                                    {
                                        rst.Message = string.Format(PPMResources.StringResource.WorkOrderGroupDetail_Save_Success, obj.Key.ToString());
                                    }
                                    return(Json(rst));
                                }
                            }
                        }
                        #endregion
                    }
                    else
                    {
                        rst.Code    = 1000;
                        rst.Message = string.Format("工单号{0}对应的产品编码{1}与界面上的产品编码{2}不一致!"
                                                    , model.OrderNumber.Trim().ToUpper()
                                                    , result0.Data[0].MaterialCode.ToString()
                                                    , model.ProductCode.Trim().ToUpper());
                        return(Json(rst));
                    }
                }
                else
                {
                    rst.Code    = 1000;
                    rst.Message = string.Format("工单号{0}不存在或已关闭!", model.OrderNumber.Trim().ToUpper());
                    return(Json(rst));
                }
            }
        }
Example #27
0
        public ActionResult Finish(LotPackageViewModel model)
        {
            MethodReturnResult result = new MethodReturnResult();

            try
            {
                //如果包装号为空。
                if (string.IsNullOrEmpty(model.PackageNo))
                {
                    result.Code    = 1001;
                    result.Message = string.Format("包装号不能为空。");
                    return(Json(result));
                }
                Package obj = null;
                //如果当前数量为空,获取当前数量
                using (PackageQueryServiceClient client = new PackageQueryServiceClient())
                {
                    MethodReturnResult <Package> rst2 = client.Get(model.PackageNo);
                    if (rst2.Code > 0)
                    {
                        return(Json(rst2));
                    }
                    //检查包装状态
                    if (rst2.Data.PackageState != EnumPackageState.Packaging)
                    {
                        result.Code    = 1001;
                        result.Message = string.Format("包 {0} 非{1}状态,不能操作。"
                                                       , model.PackageNo.ToUpper()
                                                       , EnumPackageState.Packaging.GetDisplayName());
                        return(Json(result));
                    }
                    //设置当前数量。
                    if (rst2.Code <= 0 && rst2.Data != null)
                    {
                        obj = rst2.Data;
                        model.CurrentQuantity = rst2.Data.Quantity;
                    }
                }
                //如果满包数量为空,获取满包数量
                if (model.FullQuantity == 0)
                {
                    using (WorkOrderAttributeServiceClient client = new WorkOrderAttributeServiceClient())
                    {
                        MethodReturnResult <WorkOrderAttribute> rst1 = client.Get(new WorkOrderAttributeKey()
                        {
                            OrderNumber   = obj.OrderNumber,
                            AttributeName = "FullPackageQuantity"
                        });
                        double fullQuantity = 25;
                        if (rst1.Code == 1000)
                        {
                            return(Json(rst1));
                        }

                        if (rst1.Data != null &&
                            !string.IsNullOrEmpty(rst1.Data.AttributeValue))
                        {
                            double.TryParse(rst1.Data.AttributeValue, out fullQuantity);
                        }
                        model.FullQuantity = fullQuantity;
                    }
                }
                //非尾包,不能完成包装并过站
                if (model.IsFinishPackage == true &&
                    model.IsLastestPackage == false &&
                    model.CurrentQuantity != model.FullQuantity)
                {
                    result.Code    = 1;
                    result.Message = string.Format("包({0})非尾包,包装数量未达到满包数量,不能完成包装。"
                                                   , model.PackageNo);
                    return(Json(result));
                }
                //判断批次所在车间和当前线所在车间是否匹配。
                //获取线别车间。
                string locationName = string.Empty;
                using (ProductionLineServiceClient client = new ProductionLineServiceClient())
                {
                    MethodReturnResult <ProductionLine> r = client.Get(model.LineCode);
                    if (r.Code <= 0)
                    {
                        locationName = r.Data.LocationName;
                    }
                }
                if (!string.IsNullOrEmpty(locationName))
                {
                    using (LocationServiceClient client = new LocationServiceClient())
                    {
                        MethodReturnResult <Location> r = client.Get(locationName);
                        if (r.Code <= 0)
                        {
                            locationName = r.Data.ParentLocationName;
                        }
                    }
                }
                //获取包装号所在车间。
                string currentLocationName = string.Empty;
                using (WorkOrderServiceClient client = new WorkOrderServiceClient())
                {
                    MethodReturnResult <WorkOrder> rst1 = client.Get(obj.OrderNumber);
                    if (rst1.Code <= 0 && rst1.Data != null)
                    {
                        currentLocationName = rst1.Data.LocationName;
                    }
                }
                //检查包所在车间和线别车间是否匹配。
                if (currentLocationName != locationName)
                {
                    result.Code    = 3;
                    result.Message = string.Format("包({0})属于({1})车间,不能在({2})车间线别上操作。"
                                                   , obj.Key
                                                   , currentLocationName
                                                   , locationName);
                    return(Json(result));
                }
                result = Package(model);
                //返回包装结果。
                if (result.Code <= 0)
                {
                    MethodReturnResult <LotPackageViewModel> rstFinal = new MethodReturnResult <LotPackageViewModel>()
                    {
                        Code     = result.Code,
                        Data     = model,
                        Detail   = result.Detail,
                        HelpLink = result.HelpLink,
                        Message  = result.Message
                    };
                    return(Json(rstFinal));
                }
            }
            catch (Exception ex)
            {
                result.Code    = 1000;
                result.Message = ex.Message;
                result.Detail  = ex.ToString();
            }
            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return(Json(result));
        }
        //
        // POST: /WIP/LotCreate/Detail
        public ActionResult Detail(LotCreateMainViewModel model)
        {
            LotCreateDetailViewModel viewModel = new LotCreateDetailViewModel()
            {
                LineStoreName       = model.LineStoreName,
                MaterialLot         = model.MaterialLot,
                MaterialCode        = model.MaterialCode,
                LotType             = model.LotType,
                OrderNumber         = model.OrderNumber,
                Count               = model.Count,
                Description         = string.Empty,
                MaterialQty         = 0,
                ProductCode         = string.Empty,
                Quantity            = 0,
                RawQuantity         = 0,
                RouteEnterpriseName = string.Empty,
                RouteName           = string.Empty,
                RouteStepName       = string.Empty,
                SupplierCode        = string.Empty
            };

            if (string.IsNullOrEmpty(model.MaterialLot))
            {
                return(View(viewModel));
            }

            //获取工单信息。
            using (WorkOrderServiceClient client = new WorkOrderServiceClient())
            {
                MethodReturnResult <WorkOrder> result = client.Get(model.OrderNumber);
                if (result.Code <= 0 && result.Data != null)
                {
                    result.Code    = 1000;
                    result.Message = "工单号错误!";

                    return(Json(result));

                    //viewModel.ProductCode = result.Data.MaterialCode;
                }
            }

            //获取工单工艺信息。
            using (WorkOrderRouteServiceClient client = new WorkOrderRouteServiceClient())
            {
                PagingConfig cfg = new PagingConfig()
                {
                    PageNo   = 0,
                    PageSize = 1,
                    Where    = string.Format("Key.OrderNumber='{0}'", model.OrderNumber),
                    OrderBy  = "Key.ItemNo"
                };
                if (model.LotType == EnumLotType.Rework)
                {
                    cfg.Where += " AND IsRework=1";
                }
                else
                {
                    cfg.Where += " AND IsRework=0";
                }
                MethodReturnResult <IList <WorkOrderRoute> > result = client.Get(ref cfg);
                if (result.Code <= 0 && result.Data != null && result.Data.Count > 0)
                {
                    viewModel.RouteEnterpriseName = result.Data[0].RouteEnterpriseName;
                    viewModel.RouteName           = result.Data[0].RouteName;
                    viewModel.RouteStepName       = result.Data[0].RouteStepName;
                }
            }
            //获取线边仓物料信息
            using (LineStoreMaterialServiceClient client = new LineStoreMaterialServiceClient())
            {
                LineStoreMaterialDetailKey key = new LineStoreMaterialDetailKey()
                {
                    LineStoreName = model.LineStoreName,
                    OrderNumber   = model.OrderNumber,
                    MaterialCode  = model.MaterialCode,
                    MaterialLot   = model.MaterialLot
                };
                MethodReturnResult <LineStoreMaterialDetail> result = client.GetDetail(key);
                if (result.Code <= 0 && result.Data != null)
                {
                    viewModel.MaterialQty  = result.Data.CurrentQty;
                    viewModel.SupplierCode = result.Data.SupplierCode;
                }
            }
            //根据物料获取每批原材料建议数量和每批产品建议数量。
            using (MaterialServiceClient client = new MaterialServiceClient())
            {
                MethodReturnResult <Material> result = client.Get(viewModel.ProductCode);
                if (result.Code <= 0 && result.Data != null)
                {
                    viewModel.RawQuantity = result.Data.MainRawQtyPerLot;
                    viewModel.Quantity    = result.Data.MainProductQtyPerLot;
                }
            }
            //根据工单号和批次个数生成批次号。
            IList <string> lstLot = new List <string>();

            using (LotCreateServiceClient client = new LotCreateServiceClient())
            {
                MethodReturnResult <IList <string> > result = client.Generate(model.LotType, model.OrderNumber, model.Count, model.LineCode);
                if (result.Code <= 0 && result.Data != null && result.Data.Count > 0)
                {
                    lstLot = result.Data;
                }
            }
            ViewBag.LotList = lstLot;
            //获取需要录入的批次号自定义特性
            IList <BaseAttribute> lstAttribute = new List <BaseAttribute>();

            using (BaseAttributeServiceClient client = new BaseAttributeServiceClient())
            {
                PagingConfig cfg = new PagingConfig()
                {
                    IsPaging = false,
                    Where    = string.Format("Key.CategoryName='{0}'", "LotCreateAttribute")
                };

                MethodReturnResult <IList <BaseAttribute> > result = client.Get(ref cfg);
                if (result.Code <= 0 && result.Data != null && result.Data.Count > 0)
                {
                    lstAttribute = result.Data;
                }
            }
            ViewBag.AttributeList = lstAttribute;

            return(View(viewModel));
        }
        public async Task <ActionResult> Save(SupplierToManufacturerViewModel model)
        {
            DateTime           now = DateTime.Now;
            MethodReturnResult rst = new MethodReturnResult();

            #region 界面录入信息合规性检查
            using (MaterialServiceClient client = new MaterialServiceClient())
            {
                MethodReturnResult <Material> result = client.Get(model.MaterialCode);
                if (result.Code != 0)
                {
                    rst.Code    = 1001;
                    rst.Message = String.Format("MES中不存在物料编码:{0}", model.MaterialCode);
                    return(Json(rst));
                }
                else
                {
                    if (model.OrderNumber != "*")
                    {
                        using (WorkOrderServiceClient clientOfWorkOrder = new WorkOrderServiceClient())
                        {
                            MethodReturnResult <WorkOrder> resultOfOrder = clientOfWorkOrder.Get(model.OrderNumber);
                            if (resultOfOrder.Code != 0)
                            {
                                rst.Code    = 1001;
                                rst.Message = String.Format("MES中不存在工单:{0}", model.OrderNumber);
                                return(Json(rst));
                            }
                        }
                    }
                }
            }
            #endregion

            using (ERPClient erpClient = new ERPClient())
            {
                MethodReturnResult <DataSet> ds_supplier     = erpClient.GetERPSupplier(model.SupplierCode);
                MethodReturnResult <DataSet> ds_manufacturer = erpClient.GetByCodeERPManufacturer(model.ManufacturerCode);
                if (ds_supplier == null || ds_supplier.Data.Tables[0].Rows.Count == 0)
                {
                    rst.Code    = 1001;
                    rst.Message = String.Format("ERP中不存在供应商:{0}", model.SupplierCode);
                    return(Json(rst));
                }
                if (ds_manufacturer == null || ds_manufacturer.Data.Tables[0].Rows.Count == 0)
                {
                    rst.Code    = 1001;
                    rst.Message = String.Format("ERP中不存在生产厂商:{0}", model.ManufacturerCode);
                    return(Json(rst));
                }
                //新增转换供应商
                using (SupplierServiceClient supplierClient = new SupplierServiceClient())
                {
                    MethodReturnResult <Supplier> result = await supplierClient.GetAsync(model.SupplierCode);

                    if (result.Code != 0)
                    {
                        Supplier supplier = new Supplier()
                        {
                            Key         = ds_supplier.Data.Tables[0].Rows[0]["CUSCODE"].ToString(),
                            Name        = ds_supplier.Data.Tables[0].Rows[0]["CUSNAME"].ToString(),
                            NickName    = " ",
                            CreateTime  = now,
                            EditTime    = now,
                            Creator     = User.Identity.Name,
                            Editor      = User.Identity.Name,
                            Description = ""
                        };
                        rst = await supplierClient.AddAsync(supplier);

                        if (rst.Code != 0)
                        {
                            return(Json(rst));
                        }
                    }
                }
                //新增转换生产厂商
                using (ManufacturerServiceClient manufacturerClient = new ManufacturerServiceClient())
                {
                    MethodReturnResult <Manufacturer> result = await manufacturerClient.GetAsync(model.ManufacturerCode);

                    if (result.Code != 0)
                    {
                        Manufacturer manufacturer = new Manufacturer()
                        {
                            Key         = ds_manufacturer.Data.Tables[0].Rows[0]["CSCODE"].ToString(),
                            Name        = ds_manufacturer.Data.Tables[0].Rows[0]["CSNAME"].ToString(),
                            NickName    = " ",
                            CreateTime  = now,
                            EditTime    = now,
                            Creator     = User.Identity.Name,
                            Editor      = User.Identity.Name,
                            Description = ""
                        };
                        rst = await manufacturerClient.AddAsync(manufacturer);

                        if (rst.Code != 0)
                        {
                            return(Json(rst));
                        }
                    }
                }
                //新增转换规则
                using (SupplierToManufacturerServiceClient client = new SupplierToManufacturerServiceClient())
                {
                    SupplierToManufacturer obj = new SupplierToManufacturer()
                    {
                        Key = new SupplierToManufacturerKey()
                        {
                            MaterialCode = model.MaterialCode.ToString().Trim().ToUpper(),
                            OrderNumber  = model.OrderNumber.ToString().Trim().ToUpper(),
                            SupplierCode = model.SupplierCode.ToString().Trim().ToUpper()
                        },
                        ManufacturerCode = model.ManufacturerCode.ToString().Trim().ToUpper(),
                        CreateTime       = now,
                        EditTime         = now,
                        Creator          = User.Identity.Name,
                        Editor           = User.Identity.Name
                    };
                    rst = await client.AddAsync(obj);

                    if (rst.Code == 0)
                    {
                        rst.Message = string.Format(ZPVMResources.StringResource.SupplierToManufacturer_Save_Success);
                    }
                    return(Json(rst));
                }
            }
        }
Example #30
0
        public async Task <ActionResult> Save(MaterialReplaceViewModel model)
        {
            DateTime           now = DateTime.Now;
            MethodReturnResult rst = new MethodReturnResult();

            #region 界面录入信息合规性检查
            using (MaterialServiceClient client = new MaterialServiceClient())
            {
                MethodReturnResult <Material> result = client.Get(model.ProductCode);
                if (result.Code != 0)
                {
                    rst.Code    = 1001;
                    rst.Message = String.Format("MES中不存在产品编码:{0}", model.ProductCode);
                    return(Json(rst));
                }
                else
                {
                    if (result.Data.IsProduct != true)
                    {
                        rst.Code    = 1001;
                        rst.Message = String.Format("物料编码[{0}]非产品!", model.ProductCode);
                        return(Json(rst));
                    }
                    if (model.OrderNumber != "*")
                    {
                        using (WorkOrderServiceClient clientOfWorkOrder = new WorkOrderServiceClient())
                        {
                            MethodReturnResult <WorkOrder> resultOfOrder = clientOfWorkOrder.Get(model.OrderNumber);
                            if (resultOfOrder.Code != 0)
                            {
                                rst.Code    = 1001;
                                rst.Message = String.Format("MES中不存在工单:{0}", model.OrderNumber);
                                return(Json(rst));
                            }
                            else
                            {
                                if (resultOfOrder.Data.MaterialCode != model.ProductCode)
                                {
                                    rst.Code    = 1001;
                                    rst.Message = String.Format("产品编码{0}与工单{1}不匹配!", model.ProductCode, model.OrderNumber);
                                    return(Json(rst));
                                }
                            }
                        }
                    }
                }
            }
            #endregion

            using (ERPClient erpClient = new ERPClient())
            {
                MethodReturnResult <DataSet> ds_supplier  = erpClient.GetERPSupplier(model.OldMaterialSupplier);
                MethodReturnResult <DataSet> ds_supplier1 = erpClient.GetERPSupplier(model.NewMaterialSupplier);
                if (model.OldMaterialSupplier != "*")
                {
                    if (ds_supplier.Data == null || ds_supplier.Data.Tables[0].Rows.Count == 0)
                    {
                        rst.Code    = 1001;
                        rst.Message = String.Format("ERP中不存在供应商:{0}", model.OldMaterialSupplier);
                        return(Json(rst));
                    }
                    if (ds_supplier.Data != null || ds_supplier.Data.Tables[0].Rows.Count > 0)
                    {
                        //新增替换前供应商
                        using (SupplierServiceClient supplierClient = new SupplierServiceClient())
                        {
                            MethodReturnResult <Supplier> result = await supplierClient.GetAsync(model.OldMaterialSupplier);

                            if (result.Code != 0)
                            {
                                Supplier supplier = new Supplier()
                                {
                                    Key         = ds_supplier.Data.Tables[0].Rows[0]["CUSCODE"].ToString(),
                                    Name        = ds_supplier.Data.Tables[0].Rows[0]["CUSNAME"].ToString(),
                                    NickName    = " ",
                                    CreateTime  = now,
                                    EditTime    = now,
                                    Creator     = User.Identity.Name,
                                    Editor      = User.Identity.Name,
                                    Description = ""
                                };
                                rst = await supplierClient.AddAsync(supplier);

                                if (rst.Code != 0)
                                {
                                    return(Json(rst));
                                }
                            }
                        }
                    }
                }
                if (model.NewMaterialSupplier != "000000")
                {
                    if (ds_supplier1.Data == null || ds_supplier1.Data.Tables[0].Rows.Count == 0)
                    {
                        rst.Code    = 1001;
                        rst.Message = String.Format("ERP中不存在供应商:{0}", model.NewMaterialSupplier);
                        return(Json(rst));
                    }
                    //新增替换后供应商
                    using (SupplierServiceClient supplierClient1 = new SupplierServiceClient())
                    {
                        MethodReturnResult <Supplier> result = await supplierClient1.GetAsync(model.NewMaterialSupplier);

                        if (result.Code != 0)
                        {
                            Supplier supplier = new Supplier()
                            {
                                Key         = ds_supplier1.Data.Tables[0].Rows[0]["CUSCODE"].ToString(),
                                Name        = ds_supplier1.Data.Tables[0].Rows[0]["CUSNAME"].ToString(),
                                NickName    = " ",
                                CreateTime  = now,
                                EditTime    = now,
                                Creator     = User.Identity.Name,
                                Editor      = User.Identity.Name,
                                Description = ""
                            };
                            rst = await supplierClient1.AddAsync(supplier);

                            if (rst.Code != 0)
                            {
                                return(Json(rst));
                            }
                        }
                    }
                }

                //新增替换规则
                using (MaterialReplaceServiceClient client = new MaterialReplaceServiceClient())
                {
                    MaterialReplace obj = new MaterialReplace()
                    {
                        Key = new MaterialReplaceKey()
                        {
                            ProductCode         = model.ProductCode.ToString().Trim().ToUpper(),
                            OrderNumber         = model.OrderNumber.ToString().Trim().ToUpper(),
                            OldMaterialCode     = model.OldMaterialCode.ToString().Trim().ToUpper(),
                            OldMaterialSupplier = model.OldMaterialSupplier.ToString().Trim().ToUpper()
                        },
                        NewMaterialCode     = model.NewMaterialCode.ToString().Trim().ToUpper(),
                        NewMaterialSupplier = model.NewMaterialSupplier.ToString().Trim().ToUpper(),
                        Creator             = User.Identity.Name,
                        Editor      = User.Identity.Name,
                        CreateTime  = DateTime.Now,
                        EditTime    = DateTime.Now,
                        Description = model.Description
                    };
                    rst = await client.AddAsync(obj);

                    if (rst.Code == 0)
                    {
                        rst.Message = string.Format(ZPVMResources.StringResource.MaterialReplace_Save_Success);
                    }
                    return(Json(rst));
                }
            }
        }
Example #31
0
        public async Task <ActionResult> SaveModify(WorkOrderViewModel model)
        {
            MethodReturnResult rst = new MethodReturnResult();

            try
            {
                using (WorkOrderServiceClient client = new WorkOrderServiceClient())
                {
                    MethodReturnResult <WorkOrder> result = await client.GetAsync(model.OrderNumber);

                    if (result.Code == 0 && result.Data != null)
                    {
                        //判断工单数量是否满足已投批数量
                        if (result.Data.LeftQuantity + (model.OrderQuantity - result.Data.OrderQuantity) < 0)
                        {
                            rst.Code    = 1000;
                            rst.Message = string.Format("工单数量({0})小于已创批数量({1})!",
                                                        model.OrderQuantity,
                                                        result.Data.OrderQuantity - result.Data.LeftQuantity);
                            rst.Detail = rst.Message;

                            return(Json(rst));
                        }

                        result.Data.PlanStartTime  = model.PlanStartTime;                                                          //计划开工日期
                        result.Data.PlanFinishTime = model.PlanFinishTime;                                                         //计划完工日期
                        result.Data.LeftQuantity   = result.Data.LeftQuantity + (model.OrderQuantity - result.Data.OrderQuantity); //剩余数量
                        result.Data.OrderQuantity  = model.OrderQuantity;                                                          //工单数量
                        result.Data.OrderType      = model.OrderType;                                                              //工单类型

                        result.Data.StartTime   = model.PlanStartTime;                                                             //开工时间
                        result.Data.FinishTime  = model.PlanFinishTime;                                                            //完工时间
                        result.Data.Description = model.Description;                                                               //描述

                        result.Data.Editor     = User.Identity.Name;                                                               //编辑人
                        result.Data.EditTime   = DateTime.Now;                                                                     //编辑日期
                        result.Data.CloseType  = model.CloseType;                                                                  //工单关闭类型
                        result.Data.OrderState = model.OrderState;                                                                 //工单状态

                        //result.Data.Description = model.Description;
                        //result.Data.FinishTime = model.FinishTime;
                        //result.Data.LocationName = model.LocationName.ToUpper();
                        //result.Data.MaterialCode = model.MaterialCode.ToUpper();
                        //result.Data.LeftQuantity = result.Data.LeftQuantity + (model.OrderQuantity - result.Data.OrderQuantity);
                        //result.Data.OrderQuantity = model.OrderQuantity;
                        //result.Data.OrderState = model.OrderState;
                        //result.Data.OrderType = model.OrderType;
                        //result.Data.Priority = model.Priority;
                        //result.Data.RevenueType = model.RevenueType;
                        //result.Data.StartTime = model.StartTime;
                        //result.Data.Description = model.Description;
                        //result.Data.Editor = User.Identity.Name;
                        //result.Data.EditTime = DateTime.Now;

                        rst = await client.ModifyAsync(result.Data);

                        if (rst.Code == 0)
                        {
                            rst.Message = string.Format(PPMResources.StringResource.WorkOrder_Save_Success
                                                        , model.OrderNumber);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                rst.Code    = 1000;
                rst.Message = ex.Message;
                rst.Detail  = ex.ToString();
            }

            return(Json(rst));
        }