コード例 #1
0
        private IQueryable <OrderPlacing> GetOrderAssembleStateQuery(OrderAssembleState orderAssembleState, 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 (orderAssembleState)
            {
            case OrderAssembleState.NoneCare:
                break;

            case OrderAssembleState.NoneStartAssemble:
                query = query.Where(o => o.OrderAssembleCount == 0);
                break;

            case OrderAssembleState.PartialAssemble:
                query = query.Where(o => o.OrderAssembleCount != o.OnLineQuantity && o.OrderAssembleCount > 0);
                break;

            case OrderAssembleState.FinishedAssemble:
                query = query.Where(o => o.OrderAssembleCount == o.OnLineQuantity);
                break;
            }

            return(query);
        }
コード例 #2
0
        /// <summary>
        /// 选择不同的状态的组装订单
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void RadioBtnNotAssemble_CheckedChanged(object sender, EventArgs e)
        {
            var radioButton = (RadioButton)sender;

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

            //未开始领料
            if (radioBtnNotAssemble.Checked)
            {
                _orderAssembleState = OrderAssembleState.NoneStartAssemble;
                MultiThreadingBindingOrderData(1, _orderAssembleState);
            }
            //部分领料
            else if (radioBtnPartialAssemble.Checked)
            {
                _orderAssembleState = OrderAssembleState.PartialAssemble;
                MultiThreadingBindingOrderData(1, _orderAssembleState);
            }
            //领料完毕
            else
            {
                _orderAssembleState = OrderAssembleState.FinishedAssemble;
                MultiThreadingBindingOrderData(1, _orderAssembleState);
            }
        }
コード例 #3
0
        public IQueryable <OrderPlacing> GetOrders(int pageIndex, int pageSize, OrderAssembleState orderAssembleState, bool storageFinished = false)
        {
            var query = GetOrderAssembleStateQuery(orderAssembleState, storageFinished);

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

            return(query.Skip((pageIndex - 1) * pageSize).Take(pageSize));
        }
コード例 #4
0
        public PagedResult <OrderAssembleDto> GetOrders(int pageIndex, int pageSize, OrderAssembleState orderAssembleState,
                                                        bool storageFinished = false)
        {
            var bindingList = new BindingList <OrderAssembleDto>();

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

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

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

            return(new PagedResult <OrderAssembleDto>(pageIndex, pageSize, count, bindingList));
        }
コード例 #5
0
        /// <summary>
        /// 从数据库获取分页的数据
        /// </summary>
        /// <param name="pageIndex"> 哪一页的数据</param>
        /// <param name="orderAssembleState">获取订单组装状况</param>
        /// <returns></returns>
        private BindingList <OrderAssembleDto> LoadData(int pageIndex, OrderAssembleState orderAssembleState)
        {
            var orderService = AutofacContainer.GetInstance().GetObject <IOrderService>();

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

            var totalCount = result.TotalCount;

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

            _currentPage = _pageCount == 0 ? 0 : pageIndex;

            return(result.CurrentPageData);
        }
コード例 #6
0
        private void MultiThreadingBindingOrderData(int pageIndex, OrderAssembleState orderAssembleState)
        {
            //绑定数据源时会触发SelectionChanged
            dgvOrderlist.SelectionChanged -= dgvOrderList_SelectionChanged;

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

                this.lbInfo.Text = $"第{_currentPage}页/共{_pageCount}页 ";
            },
                          TaskScheduler.FromCurrentSynchronizationContext());
        }
コード例 #7
0
        public int GetOrderAssembleStateCount(OrderAssembleState orderAssembleState, bool storageFinished = false)
        {
            var query = GetOrderAssembleStateQuery(orderAssembleState, storageFinished);

            return(query.Count());
        }
コード例 #8
0
 public int GetOrderStateCount(OrderAssembleState orderAssembleState, bool storageFinished = false)
 {
     return(_orderRepository.GetOrderAssembleStateCount(orderAssembleState, storageFinished));
 }