Exemplo n.º 1
0
        /// <summary>
        /// TrackoutPackageNo
        /// </summary>
        /// <param name="obj">批次对象。</param>
        /// <param name="model">包装模型对象。</param>
        /// <returns>返回结果。</returns>
        private MethodReturnResult TrackOutPackageNo(ZPVMLotPackageViewModel model)
        {
            MethodReturnResult result = new MethodReturnResult();
            //进行批次包装作业。
            PackageParameter p = new PackageParameter()
            {
                Creator            = User.Identity.Name,
                EquipmentCode      = model.EquipmentCode,
                IsFinishPackage    = model.IsFinishPackage,
                IsLastestPackage   = model.IsLastestPackage,
                LineCode           = model.LineCode,
                LotNumbers         = new List <string>(),
                OperateComputer    = Request.UserHostAddress,
                Operator           = User.Identity.Name,
                PackageNo          = model.PackageNo.ToUpper(),
                Remark             = model.Description,
                RouteOperationName = model.RouteOperationName
            };

            using (LotPackageServiceClient client = new LotPackageServiceClient())
            {
                result = client.TrackOutPackage(p);
                if (result.Code == 0)
                {
                    result.Message = string.Format("包装号 {0} 过账成功。"
                                                   , model.PackageNo);
                }
            }
            return(result);
        }
Exemplo n.º 2
0
        public ActionResult UnPackage(string packageNo, int itemNo, string lotNumber)
        {

            MethodReturnResult result = new MethodReturnResult();
            //进行批次包装作业。
            PackageParameter p = new PackageParameter()
            {
                Creator = User.Identity.Name,             
                LotNumbers = new List<string>(),
                OperateComputer = Request.UserHostAddress,
                Operator = User.Identity.Name,
                PackageNo = packageNo.ToUpper(),
            };
            p.LotNumbers.Add(lotNumber.ToUpper());

            try
            {
                //获取包装记录
                using (PackageQueryServiceClient client = new PackageQueryServiceClient())
                {
                    MethodReturnResult<Package> rst1 = client.Get(packageNo);
                    if (rst1.Code > 0 || rst1.Data == null)
                    {
                        return Json(rst1);
                    }
                    //判断包装记录目前是否处于包装中状态。
                    //if (rst1.Data.PackageState != EnumPackageState.Packaging)
                    //{
                    //    result.Code = 1001;
                    //    result.Message = string.Format("包装{0}为非{1}状态,不能删除。"
                    //                                    , packageNo
                    //                                    , EnumPackageState.Packaging.GetDisplayName());
                    //    return Json(result);
                    //}
                }

                using (LotPackageServiceClient client = new LotPackageServiceClient())
                {
                    result = client.UnPackage(p);

                    if (result.Code == 0 )
                    {
                        result.Message = string.Format("拆包({1})成功。"
                                                       , p.PackageNo);
                    }
                 
                }
                return Json(result);
            }
            catch (Exception ex)
            {
                result.Code = 1000;
                result.Message = ex.Message;
                result.Detail = ex.ToString();
            }
            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return Json(result);
        }
Exemplo n.º 3
0
        private MethodReturnResult Package(ZPVMLotPackageViewModel model)
        {
            MethodReturnResult result = new MethodReturnResult();
            //进行批次包装作业。
            PackageParameter p = new PackageParameter()
            {
                Creator            = User.Identity.Name,
                EquipmentCode      = model.EquipmentCode,
                IsFinishPackage    = model.IsFinishPackage,
                IsLastestPackage   = model.IsLastestPackage,
                LineCode           = model.LineCode,
                LotNumbers         = new List <string>(),
                OperateComputer    = Request.UserHostAddress,
                Operator           = User.Identity.Name,
                Remark             = model.Description,
                RouteOperationName = model.RouteOperationName
            };

            if (model.PackageNo != null && model.PackageNo != "")
            {
                p.PackageNo = model.PackageNo.ToUpper().Trim();
            }
            else
            {
                p.PackageNo = model.PackageNo.ToUpper();
            }

            if (model.IsFinishPackage == false)
            {
                p.LotNumbers.Add(model.LotNumber.ToUpper());
            }

            if (p.IsFinishPackage == false &&
                model.CurrentQuantity == model.FullQuantity)
            {
                p.IsFinishPackage     = true;
                model.IsFinishPackage = true;
            }

            using (LotPackageServiceClient client = new LotPackageServiceClient())
            {
                result = client.Package(p);

                if (result.Code == 0 && model.IsFinishPackage == false)
                {
                    result.Message = string.Format("批次 {0} 成功包装到({1})。"
                                                   , model.LotNumber
                                                   , model.PackageNo.ToUpper().Trim());
                }
                else if (result.Code == 0 && model.IsFinishPackage == true)
                {
                    result.Message = string.Format("包 {0} 已完成。"
                                                   , model.PackageNo.ToUpper().Trim());
                }
            }
            return(result);
        }
Exemplo n.º 4
0
        public ActionResult Save(LotPackageViewModel model)
        {
            MethodReturnResult result = new MethodReturnResult();

            try
            {
                //获取批次数据。
                string lotNumber = model.LotNumber.ToUpper();
                result = GetLot(lotNumber);
                if (result.Code > 0)
                {
                    return(Json(result));
                }
                MethodReturnResult <Lot> rst = result as MethodReturnResult <Lot>;
                Lot obj = rst.Data;

                //如果包装号为空。生成包装号。
                if (string.IsNullOrEmpty(model.PackageNo))
                {
                    using (LotPackageServiceClient client = new LotPackageServiceClient())
                    {
                        MethodReturnResult <string> rst1 = client.Generate(model.LotNumber, model.IsLastestPackage);
                        if (rst1.Code > 0)
                        {
                            return(Json(rst1));
                        }
                        else
                        {
                            model.PackageNo = rst1.Data;
                        }
                    }
                }
                //重新获取当前数量。
                using (PackageQueryServiceClient client = new PackageQueryServiceClient())
                {
                    MethodReturnResult <Package> rst2 = client.Get(model.PackageNo);
                    if (rst2.Code == 1000)
                    {
                        return(Json(rst2));
                    }
                    //检查包装状态
                    if (rst2.Data != null && 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)
                    {
                        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;
                    }
                }


                double newCurrentQuantity = model.CurrentQuantity + obj.Quantity;
                //当前数量超过满包数量,不能继续包装。
                if (newCurrentQuantity > model.FullQuantity)
                {
                    result.Code    = 1;
                    result.Message = string.Format("包({0}) 当前数量({1})加上批次({2})数量({3}),超过满包数量。"
                                                   , model.PackageNo.ToUpper()
                                                   , model.CurrentQuantity
                                                   , obj.Key
                                                   , obj.Quantity);
                    return(Json(result));
                }
                model.CurrentQuantity = newCurrentQuantity;

                //判断批次工序是否在当前工序。
                if (obj.RouteStepName != model.RouteOperationName)
                {
                    result.Code    = 2;
                    result.Message = string.Format("批次({0})当前所在工序({1}),不能在({2})工序上操作。"
                                                   , obj.Key
                                                   , obj.RouteStepName
                                                   , model.RouteOperationName);
                    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;
                        }
                    }
                }
                //检查批次车间和线别车间是否匹配。
                if (obj.LocationName != locationName)
                {
                    result.Code    = 3;
                    result.Message = string.Format("批次({0})属于({1})车间,不能在({2})车间线别上操作。"
                                                   , lotNumber.ToUpper()
                                                   , obj.LocationName
                                                   , 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));
        }
Exemplo n.º 5
0
        public ActionResult Save(ZPVMLotPackageViewModel model)
        {
            MethodReturnResult result = new MethodReturnResult();

            try
            {
                PackageParameter p = new PackageParameter()
                {
                    LineCode           = model.LineCode,
                    RouteOperationName = model.RouteOperationName,
                    EquipmentCode      = model.EquipmentCode,
                    LotNumbers         = new List <string>(),
                    IsLastestPackage   = model.IsLastestPackage,
                    Operator           = User.Identity.Name,
                    OperateComputer    = Request.UserHostAddress
                };
                if (model.PackageNo != null && model.PackageNo != "")
                {
                    p.PackageNo = model.PackageNo.ToUpper().Trim();
                }
                else
                {
                    p.PackageNo = model.PackageNo;
                }

                p.LotNumbers.Add(model.LotNumber.ToString().Trim().ToUpper());

                using (LotPackageServiceClient client = new LotPackageServiceClient())
                {
                    result = client.Package(p);

                    if (result.Code == 0)
                    {
                        if (result.Detail == "1")
                        {
                            model.PackageNo = "";
                        }
                        else
                        {
                            model.PackageNo = result.ObjectNo;
                        }

                        MethodReturnResult <ZPVMLotPackageViewModel> rstFinal = new MethodReturnResult <ZPVMLotPackageViewModel>()
                        {
                            Code    = result.Code,
                            Data    = model,
                            Message = string.Format("批次[{0}]包装到托[{1}]。"
                                                    , model.LotNumber
                                                    , result.ObjectNo)
                        };

                        return(Json(rstFinal));
                    }
                }
            }
            catch (Exception ex)
            {
                result.Code    = 1000;
                result.Message = ex.Message;
                result.Detail  = ex.ToString();
            }

            return(Json(result));

            #region 注释
            //model.LotNumber = model.LotNumber.ToUpper();
            //if (!string.IsNullOrEmpty(model.PackageNo))
            //{
            //    model.PackageNo = model.PackageNo.ToUpper();
            //}
            ////获取批次数据。
            //string lotNumber = model.LotNumber;
            //result = GetLot(lotNumber);
            //if (result.Code > 0)
            //{
            //    return Json(result);
            //}
            //MethodReturnResult<Lot> rst = result as MethodReturnResult<Lot>;
            //Lot obj = rst.Data;

            ////如果包装号为空。生成包装号。
            //if (string.IsNullOrEmpty(model.PackageNo))
            //{
            //    using (LotPackageServiceClient client = new LotPackageServiceClient())
            //    {
            //        MethodReturnResult<string> rst1 = client.Generate(model.LotNumber, model.IsLastestPackage);
            //        if (rst1.Code > 0)
            //        {
            //            return Json(rst1);
            //        }
            //        else
            //        {
            //            model.PackageNo = rst1.Data;
            //        }
            //    }
            //}

            //if (model.PackageNo.Length < 12 || model.PackageNo.Length > 13)
            //{
            //    result.Code = 1001;
            //    result.Message = string.Format("包装托号{0}系统生成异常,请联系IT。"
            //                                    , model.PackageNo.ToUpper());
            //    return Json(result);
            //}

            ////重新获取当前数量。
            //using (PackageQueryServiceClient client = new PackageQueryServiceClient())
            //{
            //    MethodReturnResult<Package> rst2 = client.Get(model.PackageNo);
            //    if (rst2.Code == 1000)
            //    {
            //        return Json(rst2);
            //    }
            //    //检查包装状态
            //    if (rst2.Data != null && 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)
            //    {
            //        model.CurrentQuantity = rst2.Data.Quantity;
            //    }
            //}
            ////如果满包数量为空,获取满包数量
            //if (model.FullQuantity == 0)
            //{
            //    using (WorkOrderRuleServiceClient client = new WorkOrderRuleServiceClient())
            //    {
            //        MethodReturnResult<WorkOrderRule> rst1 = client.Get(new WorkOrderRuleKey()
            //        {
            //            OrderNumber = obj.OrderNumber,
            //            MaterialCode = obj.MaterialCode
            //        });
            //        if (rst1.Code == 0
            //            && rst1.Data != null)
            //        {
            //            model.FullQuantity = rst1.Data.FullPackageQty;
            //        }
            //    }
            //}

            //double newCurrentQuantity = model.CurrentQuantity + obj.Quantity;
            ////当前数量超过满包数量,不能继续包装。
            //if (newCurrentQuantity > model.FullQuantity)
            //{
            //    result.Code = 1;
            //    result.Message = string.Format("包({0}) 当前数量({1})加上批次({2})数量({3}),超过满包数量。"
            //                                    , model.PackageNo.ToUpper()
            //                                    , model.CurrentQuantity
            //                                    , obj.Key
            //                                    , obj.Quantity);
            //    return Json(result);
            //}
            //model.CurrentQuantity = newCurrentQuantity;

            ////判断批次工序是否在当前工序。
            //if (obj.RouteStepName != model.RouteOperationName)
            //{
            //    result.Code = 2;
            //    result.Message = string.Format("批次({0})当前所在工序({1}),不能在({2})工序上操作。"
            //                                    , obj.Key
            //                                    , obj.RouteStepName
            //                                    , model.RouteOperationName);
            //    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;
            //        }
            //    }
            //}
            ////检查批次车间和线别车间是否匹配。
            //if (obj.LocationName != locationName)
            //{
            //    result.Code = 3;
            //    result.Message = string.Format("批次({0})属于({1})车间,不能在({2})车间线别上操作。"
            //                                    , lotNumber.ToUpper()
            //                                    , obj.LocationName
            //                                    , locationName);
            //    return Json(result);
            //}
            //    result = Package(model);
            //    model.PackageNo = result.ObjectNo;

            //    //返回包装结果。
            //    if (result.Code <= 0)
            //    {
            //        MethodReturnResult<ZPVMLotPackageViewModel> rstFinal = new MethodReturnResult<ZPVMLotPackageViewModel>()
            //        {
            //            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);
            #endregion
        }