public JsonResult GetMessageMQ_Receipt(string WorkStationId)
        {
            //return await Task.Factory.StartNew(() =>
            //{
            try
            {
                if (Session["BasicDeliverEventArgs_Receipt"] == null)
                {
                    var e = r2.Consume(new RabbitRecOption("VGA_" + WorkStationId + "_IN_Receipt"));
                    //receiver.Handle(Func);
                    //Thread.Sleep(2000);

                    Session["BasicDeliverEventArgs_Receipt"] = e.DeliveryTag;
                    //var e1 = r2.Consume1(new RabbitRecOption("aaa6"));
                    //Session["BasicDeliverEventArgs1"] = e1.DeliveryTag;
                    var body    = e.Body;
                    var content = Encoding.UTF8.GetString(body);
                    if (content.Length > 0)
                    {
                        //VGA_[操作台ID]_IN
                        //var contentBody = JSONStringTo<InstructionInfo>(content);
                        var response = new IntelligentOperationService().ShelvesPanel_Receipt(content, WorkStationId).Result;
                        if (response.instructions.Count() > 0)
                        {
                            return(Json(new { Code = 1, instructions = response.instructions, shelvesPanel = response.shelvesPanel }));
                        }
                        else
                        {
                            //当有货架过来 但是没有需要处理的指令  直接ack这条信息 让货架离开
                            if (AckMq(WorkStationId, content))
                            {
                            }
                        }
                    }
                }
                else
                {
                    //var e = ulong.Parse(Session["BasicDeliverEventArgs"].ToString());
                    //r2.backAck("VGA_" + WorkStationId + "_IN", e);
                    r2.CloseChannel("VGA_" + WorkStationId + "_IN_Receipt");
                    //r2.backAck(e1);
                    //receiver.Handle(Func);
                    //receiver.backAck(e);
                    Session["BasicDeliverEventArgs_Receipt"] = null;
                    return(Json(new { Code = 0 }));
                }
            }
            catch (Exception e)
            {
                return(Json(new { Code = 0 }));
            }
            return(Json(new { Code = 0 }));
            //return strReturn;
            //});
            //var receiver = new RabbitReceiver(new RabbitRecOption("test"));
            //receiver.Handle(Func);

            //return Json(new { Code = 1 });
        }
        public JsonResult SubmitData_Receipt(long ID, int ActualQty = 0)
        {
            var response = new IntelligentOperationService().SubmitData_Receipt(ID, ActualQty);

            if (response.IsSuccess)
            {
                return(Json(new { Code = 1, Body = "成功" }));
            }
            return(Json(new { Code = 0 }));
        }
        public JsonResult SubmitData(long ID, long RePickWallDetailId, int ActualQty = 0)
        {
            var response = new IntelligentOperationService().SubmitData(ID, RePickWallDetailId, ActualQty);

            if (response.IsSuccess)
            {
                return(Json(new { Code = 1, Body = "成功" }));
            }
            return(Json(new { Code = 0 }));
        }
        public JsonResult GetPickUpGoodsWall(long WorkStationId)
        {
            var response = new IntelligentOperationService().GetPickUpGoodsWall(WorkStationId);

            if (response.IsSuccess)
            {
                var rows  = response.Result.pickUpGoodsWall.Select(a => a.Rows).FirstOrDefault();
                var cells = response.Result.pickUpGoodsWall.Select(a => a.Cells).FirstOrDefault();
                return(Json(new { Code = 1, Rows = rows, Cells = cells, pickUpGoodsWall = response.Result.pickUpGoodsWall, mapping = response.Result.mapping }));      //, mapping = response.Result.mapping
            }
            return(Json(new { Code = 0 }));
        }
        public ActionResult GoodsManagement(IntelligentOperation io, int?PageIndex)
        {
            io.response = new PickUpGoodsManagementResponse();
            IntelligentOperationService ios = new IntelligentOperationService();

            var OperationAreaList = ApplicationConfigHelper.GetCacheInfo().Where(a => a.UserID == base.UserInfo.ID).Select(a => a.OperationAreaID);

            var CustomerListTemp = ApplicationConfigHelper.GetProjectUserCustomers(base.UserInfo.ProjectID, base.UserInfo.ID).Where(t => t.StoreType == 2 || t.StoreType == 3).Select(t => t.CustomerID);
            var CustomerListAll  = ApplicationConfigHelper.GetProjectUserCustomers(base.UserInfo.ProjectID, base.UserInfo.ID).Where(t => t.StoreType == 2 || t.StoreType == 3);
            var CustomerListID   = CustomerListAll.Select(t => t.CustomerID);

            io.CustomerList = CustomerListAll.Select(c => new SelectListItem()
            {
                Value = c.CustomerName.ToString(), Text = c.CustomerName
            });
            io.WarehouseList = ApplicationConfigHelper.GetCacheInfo().Where(c => c.UserID == base.UserInfo.ID && CustomerListTemp.Contains(c.CustomerID.Value)).Select(t => new { WarehouseID = t.WarehouseID, WarehouseName = t.WarehouseName }).Distinct()
                               .Select(c => new SelectListItem()
            {
                Value = c.WarehouseName.ToString(), Text = c.WarehouseName
            });
            if (io.CustomerList.Count() == 1)
            {
                io.request.CustomerName = io.CustomerList.First().Text;
            }
            if (io.WarehouseList.Count() == 1)
            {
                io.request.Warehouse = io.WarehouseList.First().Text;
            }
            //if (!string.IsNullOrEmpty(io.request.WorkStationName))
            //{
            //    io.request.Warehouse = ApplicationConfigHelper.GetCacheInfo().Where(a => a.Operation == io.request.WorkStationName).Select(a => a.WarehouseName).FirstOrDefault().ToString();
            //    io.request.CustomerName = ApplicationConfigHelper.GetCacheInfo().Where(a => a.Operation == io.request.WorkStationName).Select(a => a.CustomerName).FirstOrDefault().ToString();
            //}
            //else
            //{

            //}
            io.request.PageIndex = PageIndex ?? 0;
            io.request.PageSize  = UtilConstants.PAGESIZE;
            var response = ios.GetGoodsManagement(io.request);

            if (response.IsSuccess)
            {
                io.response.instructions = response.Result.instructions;
                io.PageCount             = response.Result.PageCount;
                io.PageIndex             = response.Result.PageIndex;
            }
            return(View(io));
        }
        public JsonResult GetMessageMQ(string WorkStationId)
        {
            try
            {
                var goodsShelve = Read("VGA_1_IN").ToString();
                var response    = new IntelligentOperationService().ShelvesPanel(goodsShelve, WorkStationId).Result;
                if (response.instructions.Count() > 0)
                {
                    return(Json(new { Code = 1, instructions = response.instructions, shelvesPanel = response.shelvesPanel }));
                }
            }
            catch (Exception)
            {
                return(Json(new { Code = 0 }));
            }
            return(Json(new { Code = 0 }));

            //try
            //{
            //    if (Session["BasicDeliverEventArgs"] == null)
            //    {
            //        var e = r2.Consume(new RabbitRecOption("VGA_" + WorkStationId + "_IN"));
            //        //receiver.Handle(Func);
            //        //Thread.Sleep(2000);

            //        Session["BasicDeliverEventArgs"] = e.DeliveryTag;
            //        //var e1 = r2.Consume1(new RabbitRecOption("aaa6"));
            //        //Session["BasicDeliverEventArgs1"] = e1.DeliveryTag;
            //        var body = e.Body;
            //        var content = Encoding.UTF8.GetString(body);
            //        if (content.Length > 0)
            //        {
            //            //VGA_[操作台ID]_IN
            //            var contentBody = JSONStringTo<InstructionInfo>(content);
            //            var response = new IntelligentOperationService().ShelvesPanel(contentBody.goodsShelve, WorkStationId).Result;
            //            if (response.instructions.Count() > 0)
            //            {
            //                return Json(new { Code = 1, instructions = response.instructions, shelvesPanel = response.shelvesPanel });
            //            }
            //            else
            //            {
            //                //当有货架过来 但是没有需要处理的指令  直接ack这条信息 让货架离开
            //                if (AckMq(WorkStationId, contentBody.goodsShelve))
            //                {

            //                }

            //            }
            //        }
            //    }
            //    else
            //    {
            //        //var e = ulong.Parse(Session["BasicDeliverEventArgs"].ToString());
            //        //r2.backAck("VGA_" + WorkStationId + "_IN", e);
            //        r2.CloseChannel("VGA_" + WorkStationId + "_IN");
            //        //r2.backAck(e1);
            //        //receiver.Handle(Func);
            //        //receiver.backAck(e);
            //        Session["BasicDeliverEventArgs"] = null;
            //        return Json(new { Code = 0 });
            //    }
            //}
            //catch (Exception e)
            //{
            //    return Json(new { Code = 0 });
            //}
            //return Json(new { Code = 0 });
        }