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); }
/// <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); } }
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)); }
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)); }
/// <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); }
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()); }
public int GetOrderAssembleStateCount(OrderAssembleState orderAssembleState, bool storageFinished = false) { var query = GetOrderAssembleStateQuery(orderAssembleState, storageFinished); return(query.Count()); }
public int GetOrderStateCount(OrderAssembleState orderAssembleState, bool storageFinished = false) { return(_orderRepository.GetOrderAssembleStateCount(orderAssembleState, storageFinished)); }