private IQueryable <OrderPlacing> GetOrderCollectionStateQuery(OrderCollectionState orderCollectionState, bool storageFinished)
        {
            IQueryable <OrderPlacing> query;

            if (storageFinished)
            {
                query = DbSet.AsNoTracking().Where(o => o.StorageFinishedFlag == "1");
            }
            else
            {
                query = DbSet.AsNoTracking().Where(o => o.StorageFinishedFlag == "0");
            }


            switch (orderCollectionState)
            {
            case OrderCollectionState.NoneCare:
                break;

            case OrderCollectionState.NoneStartCollection:
                query = query.Where(o => o.OrderCollectionCount == 0);
                break;

            case OrderCollectionState.PartialCollection:
                query = query.Where(o => o.OrderCollectionCount != o.OnLineQuantity && o.OrderCollectionCount > 0);
                break;

            case OrderCollectionState.FinishedCollection:
                query = query.Where(o => o.OrderCollectionCount == o.OnLineQuantity);
                break;
            }

            return(query);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 单选改变
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void RadioBtnNotCollection_CheckedChanged(object sender, EventArgs e)
        {
            //改变会触发两次这个事件   造成偶尔访问数据库有问题 这里判断处理下
            var radioButton = (RadioButton)sender;

            if (radioButton.Checked == false)
            {
                return;
            }
            //本身加载列表是未入库的  已入库的不考虑

            //未开始领料
            if (radioBtnNotCollection.Checked)
            {
                _orderCollectionState = OrderCollectionState.NoneStartCollection;
            }
            //部分领料
            else if (radioBtnPartialCollection.Checked)
            {
                _orderCollectionState = OrderCollectionState.PartialCollection;
            }
            //领料完毕
            else
            {
                _orderCollectionState = OrderCollectionState.FinishedCollection;
            }
            MultiThreadingBindingOrderData(1, _orderCollectionState);
        }
        public IQueryable <OrderPlacing> GetOrders(int pageIndex, int pageSize, OrderCollectionState orderCollectionState, bool storageFinished = false)
        {
            var query = GetOrderCollectionStateQuery(orderCollectionState, storageFinished);

            query = query.OrderByDescending(order => order.OrderCreateTime);

            return(query.Skip((pageIndex - 1) * pageSize).Take(pageSize));
        }
        /// <summary>
        /// 从数据库获取分页的数据
        /// </summary>
        /// <param name="pageIndex"> 哪一页的数据</param>
        /// <param name="orderCollectionState">获取订单领料状况</param>
        /// <returns></returns>
        private BindingList <OrderPlacing> FillData(int pageIndex, OrderCollectionState orderCollectionState)
        {
            var unitOfWork   = new UnitOfWork();
            var orderService = new OrderService(unitOfWork, unitOfWork.OrderRepository);

            var result = orderService.GetOrders(pageIndex, PageSize, orderCollectionState);

            var totalCount = result.TotalCount;

            //分页数量
            _pageCount = (int)(totalCount % PageSize == 0 ? totalCount / PageSize : (totalCount / PageSize) + 1);

            return(result.CurrentPageData);
        }
Exemplo n.º 5
0
        /// <summary>
        /// 从数据库获取分页的数据
        /// </summary>
        /// <param name="pageIndex"> 哪一页的数据</param>
        /// <param name="orderCollectionState">获取订单领料状况</param>
        /// <returns></returns>
        private BindingList <OrderCollectionDto> LoadData(int pageIndex, OrderCollectionState orderCollectionState)
        {
            var orderService = AutofacContainer.GetInstance().GetObject <IOrderService>();

            var result = orderService.GetOrders(pageIndex, PageSize, orderCollectionState);

            var totalCount = result.TotalCount;

            //分页数量
            _pageCount = (int)(totalCount % PageSize == 0 ? totalCount / PageSize : (totalCount / PageSize) + 1);

            _currentPage = _pageCount == 0 ? 0 : pageIndex;

            return(result.CurrentPageData);
        }
Exemplo n.º 6
0
        private void MultiThreadingBindingOrderData(int pageIndex, OrderCollectionState orderCollectionState)
        {
            //绑定数据源时会触发SelectionChanged
            dgvOrderlist.SelectionChanged -= dgvOrderList_SelectionChanged;

            Task.Factory.StartNew(() => LoadData(pageIndex, orderCollectionState))
            .ContinueWith(preTask =>
            {
                _dgvBindingSource.DataSource = preTask.Result;
                //此句位置很重要  会触发SelectionChanged
                this.dgvOrderlist.ClearSelection();
                dgvOrderlist.SelectionChanged += dgvOrderList_SelectionChanged;

                this.lbInfo.Text = $"第{_currentPage}页/共{_pageCount}页 ";
            },
                          TaskScheduler.FromCurrentSynchronizationContext());
        }
        /// <summary>
        /// 单选改变
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void RadioBtnNotCollection_CheckedChanged(object sender, EventArgs e)
        {
            //本身加载列表是未入库的  已入库的不考虑

            //未开始领料
            if (radioBtnNotCollection.Checked)
            {
                _orderCollectionState = OrderCollectionState.NoneStartCollection;
                MultiThreadingLoadOrderData();
            }
            //部分领料
            else if (radioBtnPartialCollection.Checked)
            {
                _orderCollectionState = OrderCollectionState.PartialCollection;
                MultiThreadingLoadOrderData();
            }
            //领料完毕
            else
            {
                _orderCollectionState = OrderCollectionState.FinishedCollection;
                MultiThreadingLoadOrderData();
            }
        }
        public int GetOrderCollectionStateCount(OrderCollectionState orderCollectionState, bool storageFinished = false)
        {
            var query = GetOrderCollectionStateQuery(orderCollectionState, storageFinished);

            return(query.Count());
        }
Exemplo n.º 9
0
        //订单分页数据
        //public PagedResult<OrderCollectionDto> LoadPageData(int pageIndex, int pageSize, bool storageFinished = false)
        //{
        //    //获得记录总数
        //    var count = _orderRepository.GetOrderCollectionStateCount(OrderCollectionState.NoneCare, storageFinished);


        //    var bindingList = new BindingList<OrderCollectionDto>();

        //    var list = _orderRepository.GetOrders(pageIndex, pageSize, storageFinished)
        //        .ProjectTo<OrderCollectionDto>(_mapper.ConfigurationProvider).ToList();
        //    list.ForEach(o => bindingList.Add(o));

        //    return new PagedResult<OrderCollectionDto>(pageIndex, pageSize, count, bindingList);

        //}


        /// <summary>
        /// 获取组装界面 展示订单数据
        /// </summary>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="orderCollectionState"></param>
        /// <param name="storageFinished"></param>
        /// <returns></returns>
        public PagedResult <OrderCollectionDto> GetOrders(int pageIndex, int pageSize, OrderCollectionState orderCollectionState,
                                                          bool storageFinished = false)
        {
            var bindingList = new BindingList <OrderCollectionDto>();

            var list = _orderRepository.GetOrders(pageIndex, pageSize, orderCollectionState, storageFinished)
                       .ProjectTo <OrderCollectionDto>(_mapper.ConfigurationProvider).ToList();

            //获得记录总数
            var count = _orderRepository.GetOrderCollectionStateCount(orderCollectionState, storageFinished);

            list.ForEach(o => bindingList.Add(o));

            return(new PagedResult <OrderCollectionDto>(pageIndex, pageSize, count, bindingList));
        }
Exemplo n.º 10
0
 /// <summary>
 /// 获取订单某状态下的数量
 /// </summary>
 /// <param name="orderCollectionState"></param>
 /// <param name="storageFinished"></param>
 /// <returns></returns>
 public int GetOrderStateCount(OrderCollectionState orderCollectionState, bool storageFinished = false)
 {
     return(_orderRepository.GetOrderCollectionStateCount(orderCollectionState, storageFinished));
 }