コード例 #1
0
        public ActionResult QueryChestDetail(String chestNo)
        {
            if (!string.IsNullOrEmpty(chestNo))
            {
                using (PackageInChestServiceClient client = new PackageInChestServiceClient())
                {
                    MethodReturnResult <Chest> result2 = client.Get(chestNo.Trim().ToUpper());
                    if (result2.Code == 0)
                    {
                        ViewBag.Chest = result2.Data;
                    }
                    PagingConfig cfg = new PagingConfig()
                    {
                        IsPaging = false,
                        Where    = string.Format(@"Key.ChestNo='{0}'", chestNo.Trim().ToUpper()),
                        OrderBy  = "ItemNo"
                    };
                    MethodReturnResult <IList <ChestDetail> > result = client.GetDetail(ref cfg);

                    if (result.Code == 0)
                    {
                        ViewBag.ChestDetailList = result.Data;
                    }
                }
            }
            return(PartialView("_ListChestDetailQuery", new ChestMonitorViewModel()));
        }
コード例 #2
0
ファイル: ChestViewModels.cs プロジェクト: 88886/jnmmes
 //获取柜信息
 public Chest GetChest(string key)
 {
     using (PackageInChestServiceClient client = new PackageInChestServiceClient())
     {
         MethodReturnResult <Chest> rst = client.Get(key);
         if (rst.Code <= 0)
         {
             return(rst.Data);
         }
     }
     return(null);
 }
コード例 #3
0
        // 获取柜信息--当前数量/是否尾包/库位
        public ActionResult GetChestInfo(string chestNo)
        {
            double currentQuantity  = 0;
            bool   isLastestPackage = false;
            string storeLocation    = "";
            double fullQuantity     = 0;
            int    code             = 0;

            if (!string.IsNullOrEmpty(chestNo))
            {
                //获取当前数量
                using (PackageInChestServiceClient client = new PackageInChestServiceClient())
                {
                    MethodReturnResult <Chest> rst2 = client.Get(chestNo);
                    if (rst2.Code == 1000)
                    {
                        return(Json(rst2));
                    }
                    if (rst2.Code <= 0 && rst2.Data != null)
                    {
                        using (MaterialChestParameterServiceClient client1 = new MaterialChestParameterServiceClient())
                        {
                            MethodReturnResult <MaterialChestParameter> rst3 = client1.Get(rst2.Data.MaterialCode);
                            if (rst3.Data != null)
                            {
                                fullQuantity = rst3.Data.FullChestQty;
                            }
                            else
                            {
                                return(Json(rst3, JsonRequestBehavior.AllowGet));
                            }
                        }
                        currentQuantity  = rst2.Data.Quantity;
                        isLastestPackage = rst2.Data.IsLastPackage;
                        storeLocation    = rst2.Data.StoreLocation;
                    }
                }
            }

            return(Json(new
            {
                Code = code,
                CurrentQuantity = currentQuantity,
                IsLastestPackage = isLastestPackage,
                StoreLocation = storeLocation,
                FullQuantity = fullQuantity
            }, JsonRequestBehavior.AllowGet));
        }
コード例 #4
0
        public ActionResult Query(ChestMonitorQueryViewModel model)
        {
            if (ModelState.IsValid)
            {
                StringBuilder where = new StringBuilder();
                where.AppendFormat(string.Format(@" (ChestState = 0 OR ChestState = 6)"));
                if (model.OrderNumber != null && model.OrderNumber != "")
                {
                    where.AppendFormat(" {0} OrderNumber = '{1}'"
                                       , where.Length > 0 ? "AND" : string.Empty
                                       , model.OrderNumber.Trim().ToUpper());
                }

                if (model.MaterialCode != null && model.MaterialCode != "")
                {
                    where.AppendFormat(" {0} MaterialCode = '{1}'"
                                       , where.Length > 0 ? "AND" : string.Empty
                                       , model.MaterialCode.Trim().ToUpper());
                }

                if (model.PowerName != null && model.PowerName != "")
                {
                    where.AppendFormat(" {0} PowerName LIKE '{1}%'"
                                       , where.Length > 0 ? "AND" : string.Empty
                                       , model.PowerName.Trim().ToUpper());
                }

                if (model.Grade != null && model.Grade != "")
                {
                    where.AppendFormat(" {0} Grade LIKE '{1}%'"
                                       , where.Length > 0 ? "AND" : string.Empty
                                       , model.Grade.Trim().ToUpper());
                }

                if (model.Color != null && model.Color != "")
                {
                    where.AppendFormat(" {0} Color LIKE '{1}%'"
                                       , where.Length > 0 ? "AND" : string.Empty
                                       , model.Color.Trim().ToUpper());
                }

                if (model.PowerSubCode != null && model.PowerSubCode != "")
                {
                    where.AppendFormat(" {0} PowerSubCode = '{1}'"
                                       , where.Length > 0 ? "AND" : string.Empty
                                       , model.PowerSubCode.Trim().ToUpper());
                }
                using (PackageInChestServiceClient client = new PackageInChestServiceClient())
                {
                    PagingConfig cfg = new PagingConfig()
                    {
                        IsPaging = false,
                        OrderBy  = "EditTime",
                        Where    = where.ToString()
                    };
                    MethodReturnResult <IList <Chest> > result = client.Get(ref cfg);

                    if (result.Code == 0)
                    {
                        ViewBag.List = result.Data;
                    }
                }
            }
            if (Request.IsAjaxRequest())
            {
                return(PartialView("_ListPartial", model));
            }
            else
            {
                return(View(model));
            }
        }
コード例 #5
0
        public ActionResult RefreshChestList(string orderNumber, string materialCode, string grade, string powerName, string color, string powerSubCode)
        {
            if (ModelState.IsValid)
            {
                StringBuilder where = new StringBuilder();
                where.AppendFormat(string.Format(@" (ChestState = 0 OR ChestState = 6)"));
                if (orderNumber != null && orderNumber != "")
                {
                    where.AppendFormat(" {0} OrderNumber = '{1}'"
                                       , where.Length > 0 ? "AND" : string.Empty
                                       , orderNumber.Trim().ToUpper());
                }

                if (materialCode != null && materialCode != "")
                {
                    where.AppendFormat(" {0} MaterialCode = '{1}'"
                                       , where.Length > 0 ? "AND" : string.Empty
                                       , materialCode.Trim().ToUpper());
                }

                if (powerName != null && powerName != "")
                {
                    where.AppendFormat(" {0} PowerName LIKE '{1}%'"
                                       , where.Length > 0 ? "AND" : string.Empty
                                       , powerName.Trim().ToUpper());
                }

                if (grade != null && grade != "")
                {
                    where.AppendFormat(" {0} Grade LIKE '{1}%'"
                                       , where.Length > 0 ? "AND" : string.Empty
                                       , grade.Trim().ToUpper());
                }

                if (color != null && color != "")
                {
                    where.AppendFormat(" {0} Color LIKE '{1}%'"
                                       , where.Length > 0 ? "AND" : string.Empty
                                       , color.Trim().ToUpper());
                }

                if (powerSubCode != null && powerSubCode != "")
                {
                    where.AppendFormat(" {0} PowerSubCode = '{1}'"
                                       , where.Length > 0 ? "AND" : string.Empty
                                       , powerSubCode.Trim().ToUpper());
                }
                using (PackageInChestServiceClient client = new PackageInChestServiceClient())
                {
                    PagingConfig cfg = new PagingConfig()
                    {
                        IsPaging = false,
                        OrderBy  = "EditTime",
                        Where    = where.ToString()
                    };
                    MethodReturnResult <IList <Chest> > result = client.Get(ref cfg);

                    if (result.Code == 0)
                    {
                        ViewBag.List = result.Data;
                    }
                }
            }
            return(PartialView("_ListPartial", new ChestMonitorQueryViewModel()));
        }
コード例 #6
0
        public ActionResult UnPackageInChest(string chestNo, int itemNo, string packageNo)
        {
            MethodReturnResult result = new MethodReturnResult();

            if (packageNo == null || packageNo == "")
            {
                result.Code    = 1001;
                result.Message = string.Format("托号不可为空。");
                return(Json(result));
            }

            //进行批次包装作业。
            ChestParameter p = new ChestParameter()
            {
                Editor    = User.Identity.Name,
                ChestNo   = chestNo.ToUpper(),
                PackageNo = packageNo.ToUpper(),
                ModelType = 0
            };

            try
            {
                //获取包装记录
                using (PackageInChestServiceClient client = new PackageInChestServiceClient())
                {
                    MethodReturnResult <Chest> rst1 = client.Get(chestNo);
                    if (rst1.Code > 0 || rst1.Data == null)
                    {
                        return(Json(rst1));
                    }
                    else
                    {
                        #region 注释--出柜条件
                        //if (rst1.Data.ChestState != EnumChestState.Packaging)
                        //{
                        //    result.Code = 1001;
                        //    result.Message = string.Format("柜[{0}]已完成入柜,不可出柜。", chestNo);
                        //    return Json(result);
                        //}
                        #endregion
                    }
                }
                using (PackageInChestServiceClient client = new PackageInChestServiceClient())
                {
                    result = client.UnPackageInChest(p);

                    if (result.Code == 0)
                    {
                        result.Message = string.Format("托号[{0}]出柜({1})成功。"
                                                       , p.PackageNo, p.ChestNo);
                    }
                }
                return(Json(result));
            }
            catch (Exception ex)
            {
                result.Code    = 1000;
                result.Message = ex.Message;
                result.Detail  = ex.ToString();
            }
            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return(Json(result));
        }
コード例 #7
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));
        }
コード例 #8
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));
        }
コード例 #9
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));
        }