Ejemplo n.º 1
0
        private MethodReturnResult FinishChest(ChestViewModel model)
        {
            MethodReturnResult result = new MethodReturnResult();
            //进行批次包装作业。
            ChestParameter p = new ChestParameter()
            {
                Editor  = User.Identity.Name,
                ChestNo = model.ChestNo,
                IsFinishPackageInChest  = model.IsFinishPackage,
                IsLastestPackageInChest = model.IsLastestPackageInChest,
                ChestFullQty            = model.FullQuantity,
                StoreLocation           = model.StoreLocation,
                PackageNo = model.PackageNo.ToUpper().Trim(),
                isManual  = model.IsManual,
                ModelType = 0
            };

            using (PackageInChestServiceClient client = new PackageInChestServiceClient())
            {
                result = client.FinishChest(p);

                if (result.Code == 0 && model.IsFinishPackage == true)
                {
                    result.Message = string.Format("尾柜 {0} 已手动完成入柜。", model.ChestNo);
                }
            }
            return(result);
        }
Ejemplo n.º 2
0
        // 托号入柜作业---包装模型对象model
        private MethodReturnResult Chest(ChestViewModel model)
        {
            MethodReturnResult result = new MethodReturnResult();
            //进行包装入柜作业。
            ChestParameter p = new ChestParameter()
            {
                Editor  = User.Identity.Name,
                ChestNo = model.ChestNo,
                IsFinishPackageInChest  = model.IsFinishPackage,
                IsLastestPackageInChest = model.IsLastestPackageInChest,
                ChestFullQty            = model.FullQuantity,
                StoreLocation           = model.StoreLocation,
                PackageNo = model.PackageNo.ToUpper().Trim(),
                isManual  = model.IsManual,
                ModelType = 0
            };

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

            using (PackageInChestServiceClient client = new PackageInChestServiceClient())
            {
                result = client.Chest(p);
                string detailInfo = result.Detail;
                if (result.Code == 0 && model.IsFinishPackage == false)
                {
                    result.Message = string.Format("托号 {0} 成功入柜到({1})。"
                                                   , model.PackageNo.ToUpper().Trim()
                                                   , model.ChestNo);
                }
                else if (result.Code == 0 && model.IsFinishPackage == true)
                {
                    result = client.ChangeChest(model.ChestNo, User.Identity.Name);
                    if (result.Code <= 0)
                    {
                        result.Detail  = detailInfo;
                        result.Message = string.Format("托号 {0} 成功入柜到({1}),柜号{1}入柜完成。"
                                                       , model.PackageNo.ToUpper().Trim(), model.ChestNo);
                    }
                }
            }
            return(result);
        }
Ejemplo n.º 3
0
        public ActionResult QueryChecked(ChestViewModel model)
        {
            MethodReturnResult <DataSet> result = new MethodReturnResult <DataSet>();

            try
            {
                if (!string.IsNullOrEmpty(model.ChestNo))
                {
                    model.ChestNo = model.ChestNo.ToUpper().Trim();
                    ChestParameter param = new ChestParameter();
                    param.ChestNo = model.ChestNo;
                    using (PackageInChestServiceClient client = new PackageInChestServiceClient())
                    {
                        MethodReturnResult <DataSet> ds = client.GetCheckedChestDetailByDB(ref param);
                        if (ds.Code > 0)
                        {
                            result.Code    = ds.Code;
                            result.Message = ds.Message;
                            result.Detail  = ds.Detail;

                            return(Json(result));
                        }

                        ViewBag.ListData = ds.Data.Tables[0];
                    }
                }
            }
            catch (Exception ex)
            {
                result.Code    = 1000;
                result.Message = ex.Message;
                result.Detail  = ex.ToString();
            }

            if (Request.IsAjaxRequest())
            {
                return(PartialView("_ListPartialCheck", model));
            }
            else
            {
                return(View("check", model));
            }
        }
Ejemplo n.º 4
0
        public ActionResult UnCheck(string chestNo, string packageNo)
        {
            MethodReturnResult result = new MethodReturnResult();

            try
            {
                using (PackageQueryServiceClient client = new PackageQueryServiceClient())
                {
                    //判断托号是否已检验
                    MethodReturnResult <Package> rst1 = client.Get(packageNo);
                    if (rst1.Code > 0)
                    {
                        return(Json(rst1));
                    }
                    else
                    {
                        if (rst1.Data.PackageState != EnumPackageState.Checked)
                        {
                            result.Code    = 2000;
                            result.Message = string.Format(@"托号{0}未检验", packageNo);
                        }
                        else
                        {
                            using (PackageInChestServiceClient clientOfChest = new PackageInChestServiceClient())
                            {
                                result = clientOfChest.UnCheckPackageInChest(packageNo, chestNo, User.Identity.Name);
                                if (result.Code > 0)
                                {
                                    return(Json(result));
                                }
                            }
                        }
                    }
                }
                ChestViewModel model = new ChestViewModel()
                {
                    PackageNo = packageNo,
                    ChestNo   = chestNo
                };

                //返回包装结果。
                if (result.Code <= 0)
                {
                    MethodReturnResult <ChestViewModel> rstFinal = new MethodReturnResult <ChestViewModel>()
                    {
                        Code     = result.Code,
                        Data     = model,
                        Detail   = result.Detail,
                        HelpLink = result.HelpLink,
                        Message  = result.Message,
                        ObjectNo = ((EnumChestState)Convert.ToInt32(result.ObjectNo)).GetDisplayName()
                    };
                    return(Json(rstFinal));
                }
            }
            catch (Exception ex)
            {
                result.Code    = 1000;
                result.Message = ex.Message;
                result.Detail  = ex.ToString();
            }
            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return(Json(result));
        }
Ejemplo n.º 5
0
        public ActionResult Query(ChestViewModel model)
        {
            MethodReturnResult <DataSet> result = new MethodReturnResult <DataSet>();

            try
            {
                if (!string.IsNullOrEmpty(model.ChestNo))
                {
                    model.ChestNo = model.ChestNo.ToUpper().Trim();
                    ChestParameter param = new ChestParameter();
                    param.ChestNo = model.ChestNo;
                    using (PackageInChestServiceClient client = new PackageInChestServiceClient())
                    {
                        MethodReturnResult <DataSet> ds = client.GetRefreshChestDetailByDB(ref param);
                        if (ds.Code > 0)
                        {
                            result.Code    = ds.Code;
                            result.Message = ds.Message;
                            result.Detail  = ds.Detail;

                            return(Json(result));
                        }

                        ViewBag.ListData = ds.Data.Tables[0];

                        //MethodReturnResult<Chest> result1 = client.Get(model.ChestNo);
                        //if (result1.Code == 0)
                        //{
                        //    using (MaterialChestParameterServiceClient client1 = new MaterialChestParameterServiceClient())
                        //    {
                        //        MethodReturnResult<MaterialChestParameter> rst3 = client1.Get(result1.Data.MaterialCode);
                        //        if (rst3.Data != null)
                        //        {
                        //            model.FullQuantity = rst3.Data.FullChestQty;
                        //        }
                        //        else
                        //        {
                        //            return Json(rst3);
                        //        }
                        //    }
                        //    ViewBag.Chest = result1.Data;
                        //    model.StoreLocation = result1.Data.StoreLocation;
                        //    model.CurrentQuantity = result1.Data.Quantity;
                        //}
                    }
                }
            }
            catch (Exception ex)
            {
                result.Code    = 1000;
                result.Message = ex.Message;
                result.Detail  = ex.ToString();
            }

            if (Request.IsAjaxRequest())
            {
                return(PartialView("_ListPartial", model));
            }
            else
            {
                return(View("Index", model));
            }
        }
Ejemplo n.º 6
0
        public ActionResult Check(ChestViewModel model)
        {
            MethodReturnResult result = new MethodReturnResult();

            if (model.PackageNo == null || model.PackageNo == "")
            {
                result.Code    = 1001;
                result.Message = string.Format("托号不可为空。");
                return(Json(result));
            }
            else
            {
                model.PackageNo = model.PackageNo.ToUpper().Trim();
            }
            try
            {
                using (PackageQueryServiceClient client = new PackageQueryServiceClient())
                {
                    //判断托号是否已检验
                    MethodReturnResult <Package> rst1 = client.Get(model.PackageNo);
                    if (rst1.Code > 0)
                    {
                        rst1.Message += string.Format(@"或托号{0}已归档", model.PackageNo);
                        return(Json(rst1));
                    }
                    else
                    {
                        if (rst1.Data != null)
                        {
                            #region 明细检验
                            if (rst1.Data.PackageState != EnumPackageState.Checked)
                            {
                                using (PackageInChestServiceClient clientOfChest = new PackageInChestServiceClient())
                                {
                                    result = clientOfChest.CheckPackageInChest(model.PackageNo, model.ChestNo, User.Identity.Name);
                                    if (result.Code <= 0)
                                    {
                                        result.Message = string.Format(@"托号{0}检验成功", model.PackageNo);
                                        model.ChestNo  = result.Detail;
                                    }
                                }
                            }
                            else
                            {
                                using (PackageInChestServiceClient clientOfChest = new PackageInChestServiceClient())
                                {
                                    MethodReturnResult <Chest> rst2 = clientOfChest.Get(rst1.Data.ContainerNo);
                                    if (rst2.Code > 0)
                                    {
                                        return(Json(rst2));
                                    }
                                    if (rst2.Code <= 0 && rst2.Data != null)
                                    {
                                        model.ChestNo   = rst2.Data.Key;
                                        result.Message  = string.Format(@"托号{0}已检验过,并检验成功", model.PackageNo);
                                        result.Detail   = rst2.Data.Key;
                                        result.ObjectNo = Convert.ToInt32(rst2.Data.ChestState).ToString();
                                    }
                                }
                            }
                            #endregion
                        }
                    }
                }
                //返回包装结果。
                if (result.Code <= 0)
                {
                    MethodReturnResult <ChestViewModel> rstFinal = new MethodReturnResult <ChestViewModel>()
                    {
                        Code     = result.Code,
                        Data     = model,
                        Detail   = result.Detail,
                        HelpLink = result.HelpLink,
                        Message  = result.Message,
                        ObjectNo = ((EnumChestState)Convert.ToInt32(result.ObjectNo)).GetDisplayName()
                    };
                    return(Json(rstFinal));
                }
            }
            catch (Exception ex)
            {
                result.Code    = 1000;
                result.Message = ex.Message;
                result.Detail  = ex.ToString();
            }
            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return(Json(result));
        }
Ejemplo n.º 7
0
        public ActionResult Finish(ChestViewModel model)
        {
            MethodReturnResult result = new MethodReturnResult();

            try
            {
                //如果柜号为空。
                if (string.IsNullOrEmpty(model.ChestNo))
                {
                    result.Code    = 1001;
                    result.Message = string.Format("柜号不能为空。");
                    return(Json(result));
                }
                else
                {
                    model.ChestNo = model.ChestNo.ToUpper().Trim();
                }
                Chest obj = null;
                //如果当前数量为空,获取当前数量
                using (PackageInChestServiceClient client = new PackageInChestServiceClient())
                {
                    MethodReturnResult <Chest> rst2 = client.Get(model.ChestNo);
                    if (rst2.Code > 0)
                    {
                        return(Json(rst2));
                    }
                    if (rst2.Code <= 0 && rst2.Data != null)
                    {
                        //检查柜状态
                        if (rst2.Data.ChestState != EnumChestState.Packaging)
                        {
                            result.Code    = 1001;
                            result.Message = string.Format("柜 {0} 非{1}状态,不能执行手动完成入柜。"
                                                           , model.ChestNo.ToUpper()
                                                           , EnumChestState.Packaging.GetDisplayName());
                            return(Json(result));
                        }
                        //设置当前数量。
                        obj = rst2.Data;
                        model.CurrentQuantity = rst2.Data.Quantity;
                        if (model.CurrentQuantity == 0)
                        {
                            result.Code    = 1001;
                            result.Message = string.Format("柜 {0} 数量为0,不能执行手动完成入柜。", model.ChestNo.ToUpper());
                            return(Json(result));
                        }
                    }
                }
                //如果满柜数量为空,获取满柜数量
                if (model.FullQuantity == 0)
                {
                    using (MaterialChestParameterServiceClient client1 = new MaterialChestParameterServiceClient())
                    {
                        MethodReturnResult <MaterialChestParameter> rst3 = client1.Get(obj.MaterialCode);
                        if (rst3.Data != null)
                        {
                            model.FullQuantity = rst3.Data.FullChestQty;
                        }
                        else
                        {
                            return(Json(rst3));
                        }
                    }
                }
                //非尾柜,不能完成入柜
                if (model.IsLastestPackageInChest == false && obj.IsLastPackage == false)
                {
                    result.Code    = 1;
                    result.Message = string.Format("柜({0})非尾柜,不能手动完成入柜。", model.ChestNo);
                    return(Json(result));
                }
                //判断柜号所在库位和当前界面所选库位是否匹配。
                if (!string.IsNullOrEmpty(obj.StoreLocation))
                {
                    if (obj.StoreLocation != model.StoreLocation)
                    {
                        model.StoreLocation = obj.StoreLocation;
                    }
                }
                else
                {
                    ////获取柜内第一块组件
                    //ChestDetail chestDetail = new ChestDetail();
                    //PagingConfig cfg = new PagingConfig()
                    //{
                    //    IsPaging = false,
                    //    OrderBy = " ItemNo ",
                    //    Where = string.Format(@" Key = '{0}' and ItemNo = 1 ", obj.Key)
                    //};
                    //PackageInChestServiceClient client = new PackageInChestServiceClient();
                    //MethodReturnResult<IList<ChestDetail>> lstChestDetail = client.GetDetail(ref cfg);
                    //if (lstChestDetail.Data != null && lstChestDetail.Data.Count > 0)
                    //{
                    //    chestDetail = lstChestDetail.Data[0];
                    //    result.Code = 1;
                    //    result.Message = string.Format("柜({0})未设置库位,请使用包装清单打印界面选择库位并输入托号[{1}]查询按钮设置。"
                    //                                    , model.ChestNo,chestDetail.Key.ObjectNumber);
                    //    return Json(result);
                    //}
                    //else
                    //{
                    //    result.Code = 1;
                    //    result.Message = string.Format("柜({0})内无明细。", model.ChestNo);
                    //    return Json(result);
                    //}
                    if (model.StoreLocation == null || model.StoreLocation == "")
                    {
                        result.Code    = 1;
                        result.Message = string.Format("柜({0})未设置库位,请在界面选择所需的库位后再点击手动完成入柜按钮。"
                                                       , model.ChestNo);
                        return(Json(result));
                    }
                }
                model.IsFinishPackage = true;
                result = FinishChest(model);
                //result = Package(model);

                //返回包装结果。
                if (result.Code <= 0)
                {
                    MethodReturnResult <ChestViewModel> rstFinal = new MethodReturnResult <ChestViewModel>()
                    {
                        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));
        }
Ejemplo n.º 8
0
        public ActionResult Save(ChestViewModel model)
        {
            MethodReturnResult result = new MethodReturnResult();

            //Package obj = null;
            if (model.PackageNo == null || model.PackageNo == "")
            {
                result.Code    = 1001;
                result.Message = string.Format("托号不可为空。");
                return(Json(result));
            }
            else
            {
                model.PackageNo = model.PackageNo.ToUpper().Trim();
            }
            try
            {
                using (PackageInChestServiceClient client = new PackageInChestServiceClient())
                {
                    //取得最佳柜号
                    MethodReturnResult <string> rst1 = client.GetChestNo(model.PackageNo.ToUpper().Trim(), model.ChestNo, model.IsLastestPackageInChest, model.IsManual);
                    if (rst1.Code > 0)
                    {
                        return(Json(rst1));
                    }
                    else
                    {
                        model.ChestNo = rst1.Data;
                    }
                }
                MethodReturnResult <Chest> rst2 = null;
                //重新获取当前数量。
                using (PackageInChestServiceClient client = new PackageInChestServiceClient())
                {
                    rst2 = client.Get(model.ChestNo);
                    if (rst2.Code == 1000)
                    {
                        return(Json(rst2));
                    }
                    //检查柜状态
                    if (rst2.Data != null && rst2.Data.ChestState != EnumChestState.Packaging && rst2.Data.ChestState != EnumChestState.InFabStore)
                    {
                        result.Code    = 1001;
                        result.Message = string.Format("柜 {0} 非 [{1}或{2}] 状态,不能入柜。"
                                                       , model.ChestNo.ToUpper()
                                                       , EnumChestState.Packaging.GetDisplayName()
                                                       , EnumChestState.InFabStore.GetDisplayName());
                        return(Json(result));
                    }
                    //设置满柜数量。
                    if (rst2.Code <= 0 && rst2.Data != null)
                    {
                        model.CurrentQuantity = rst2.Data.Quantity;
                    }
                    MethodReturnResult <Package> rstOfPackage = null;

                    using (PackageQueryServiceClient clientOfPackage = new PackageQueryServiceClient())
                    {
                        rstOfPackage = clientOfPackage.Get(model.PackageNo.ToUpper().Trim());
                    }
                    using (MaterialChestParameterServiceClient client1 = new MaterialChestParameterServiceClient())
                    {
                        MethodReturnResult <MaterialChestParameter> rst3 = client1.Get(rstOfPackage.Data.MaterialCode);
                        if (rst3.Data != null)
                        {
                            model.FullQuantity = rst3.Data.FullChestQty;
                        }
                        else
                        {
                            return(Json(rst3));
                        }
                    }
                }

                //如果满柜数量为空,提示
                if (model.FullQuantity == 0)
                {
                    result.Code    = 1001;
                    result.Message = string.Format("托号内产品编码【{0}】设置的满柜数量为0,请联系成柜规则设定人员修改。", rst2.Data.MaterialCode);
                    return(Json(result));
                }

                double newCurrentQuantity = model.CurrentQuantity + 1;
                //当前数量超过满柜数量,不能继续入柜。
                if (newCurrentQuantity > model.FullQuantity)
                {
                    result.Code    = 1;
                    result.Message = string.Format("柜({0}) 当前数量({1})加上该托号({2})数量({3}),超过满柜数量。"
                                                   , model.ChestNo.ToUpper()
                                                   , model.CurrentQuantity
                                                   , model.PackageNo.ToUpper().Trim()
                                                   , 1);
                    return(Json(result));
                }
                model.CurrentQuantity = newCurrentQuantity;
                result = Chest(model);
                //返回成柜结果。
                if (result.Code <= 0)
                {
                    model.StoreLocation = result.Detail.Split('-')[1];
                    MethodReturnResult <ChestViewModel> rstFinal = new MethodReturnResult <ChestViewModel>()
                    {
                        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));
        }