diff --git a/BBWY.Client/APIServices/BatchPurchaseService.cs b/BBWY.Client/APIServices/BatchPurchaseService.cs index 2a74f4aa..d24e2351 100644 --- a/BBWY.Client/APIServices/BatchPurchaseService.cs +++ b/BBWY.Client/APIServices/BatchPurchaseService.cs @@ -1,6 +1,7 @@ using BBWY.Client.Models; using BBWY.Common.Http; using BBWY.Common.Models; +using System; using System.Collections.Generic; using System.Net.Http; @@ -72,24 +73,6 @@ namespace BBWY.Client.APIServices string extensions, string remark) { - - /* - public string BelongSkuId { get; set; } - - public string BelongProductId { get; set; } - - public decimal BelongPrice { get; set; } - - public string BelongSkuTitle { get; set; } - - public string BelongLogo { get; set; } - - public int BelongQuantity { get; set; } - - public long BelongPurchaseSchemeId { get; set; } - */ - - var productParamList = new List(); foreach (var productSkuWithScheme in productSkuWithSchemeList) { @@ -127,5 +110,30 @@ namespace BBWY.Client.APIServices globalContext.User.Shop.ShopName }, null, HttpMethod.Post); } + + public ApiResponse GetPurchaseOrderList(string spu, + string sku, + string purchaserName, + string purchaseOrderId, + int pageIndex, + int pageSize, + DateTime startDate, + DateTime endDate, + PurchaseOrderState? purchaseOrderState) + { + return SendRequest(globalContext.BBYWApiHost, "api/BatchPurchase/GetPurchaseOrderList", new + { + sku, + spu, + purchaseOrderId, + globalContext.User.Shop.ShopId, + purchaserName, + purchaseOrderState, + pageIndex, + pageSize, + startDate, + endDate + }, null, HttpMethod.Post); + } } } diff --git a/BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderSkuResponse.cs b/BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderSkuResponse.cs new file mode 100644 index 00000000..52486999 --- /dev/null +++ b/BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderSkuResponse.cs @@ -0,0 +1,99 @@ +using System; + +namespace BBWY.Client.Models +{ + public class PurchaseOrderSkuResponse + { + public long Id { get; set; } + + /// + /// 打包耗材费 + /// + public decimal? ConsumableAmount { get; set; } = 0.00M; + + /// + /// 创建时间 + /// + public DateTime? CreateTime { get; set; } + + /// + /// 头程运费 + /// + public decimal? FirstFreight { get; set; } = 0.00M; + + + /// + /// 入仓费 + /// + public decimal? InStorageAmount { get; set; } = 0.00M; + + /// + /// Sku Logo + /// + + public string Logo { get; set; } + + /// + /// 单价 + /// + public decimal? Price { get; set; } = 0.00M; + + /// + /// 采购货款 + /// + public decimal? ProductAmount { get; set; } + + public string ProductId { get; set; } + + /// + /// 采购金额(采购货款+采购运费) + /// + public decimal? PurchaseAmount { get; set; } + + /// + /// 采购运费 + /// + public decimal? PurchaseFreight { get; set; } + + /// + /// 采购单Id + /// + public string PurchaseOrderId { get; set; } + + /// + /// 采购方案Id + /// + + public long? PurchaseSchemeId { get; set; } + + /// + /// 采购SkuId串 + /// + public string PurchaseSkuIds { get; set; } + + /// + /// 质检费 + /// + public decimal? QualityInspectionAmount { get; set; } = 0.00M; + + /// + /// 采购数量 + /// + + public int? Quantity { get; set; } + + /// + /// 店铺Id + /// + + public long? ShopId { get; set; } + + public string SkuId { get; set; } + + /// + /// Sku标题 + /// + + public string SkuTitle { get; set; } + } +} diff --git a/BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderV2ListResponse.cs b/BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderV2ListResponse.cs new file mode 100644 index 00000000..40ecd04c --- /dev/null +++ b/BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderV2ListResponse.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; + +namespace BBWY.Client.Models +{ + public class PurchaseOrderV2ListResponse + { + public long Count { get; set; } + + public IList ItemList { get; set; } + } +} diff --git a/BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderV2Response.cs b/BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderV2Response.cs new file mode 100644 index 00000000..328ff1fa --- /dev/null +++ b/BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderV2Response.cs @@ -0,0 +1,177 @@ +using System; +using System.Collections.Generic; + +namespace BBWY.Client.Models +{ + public class PurchaseOrderV2Response + { + /// + /// 采购单号 + /// + public string Id { get; set; } + + /// + /// 完成时间 + /// + public DateTime? CompletionTime { get; set; } + + /// + /// 收货详细地址 + /// + + public string ConsigneeAddress { get; set; } + + /// + /// 收货市 + /// + public string ConsigneeCity { get; set; } + + /// + /// 收货联系人名称 + /// + public string ConsigneeContactName { get; set; } + + /// + /// 收货区 + /// + public string ConsigneeCounty { get; set; } + + /// + /// 收货联系人电话 + /// + public string ConsigneeMobile { get; set; } + + /// + /// 收货省 + /// + public string ConsigneeProvince { get; set; } + + /// + /// 收货镇 + /// + public string ConsigneeTown { get; set; } + + /// + /// 打包耗材费 + /// + public decimal? ConsumableAmount { get; set; } = 0.00M; + + /// + /// 创建时间 + /// + public DateTime? CreateTime { get; set; } + + /// + /// 快递公司 + /// + public string ExpressName { get; set; } + + /// + /// 头程运费 + /// + public decimal? FirstFreight { get; set; } = 0.00M; + + /// + /// 入仓费 + /// + public decimal? InStorageAmount { get; set; } = 0.00M; + + /// + /// 是否转入库存 + /// + + public bool? IsConvertToStock { get; set; } = false; + + /// + /// 是否订阅快递100 + /// + + public bool? IsSubscribeKuaiDi100 { get; set; } = false; + + /// + /// 采购单状态(待付款=0,待发货=1,待收货=2,待质检=3,待打包=4,待结算=5,已完成=6) + /// + public PurchaseOrderState? OrderState { get; set; } + + /// + /// 支付时间 + /// + public DateTime? PayTime { get; set; } + + /// + /// 采购货款 + /// + public decimal? ProductAmount { get; set; } = 0.00M; + + /// + /// 采购账号Id + /// + + public long? PurchaseAccountId { get; set; } + + /// + /// 采购金额(采购货款+采购运费) + /// + public decimal? PurchaseAmount { get; set; } = 0.00M; + + /// + /// 采购运费 + /// + public decimal? PurchaseFreight { get; set; } = 0.00M; + + /// + /// 采购平台 + /// + public Platform? PurchasePlatform { get; set; } + + /// + /// 商家Id + /// + public string PurchaserId { get; set; } + + /// + /// 商家名称 + /// + public string PurchaserName { get; set; } + + /// + /// 质检费 + /// + public decimal? QualityInspectionAmount { get; set; } = 0.00M; + + /// + /// 备注信息 + /// + + public string Remark { get; set; } + + /// + /// 店铺Id + /// + + public long ShopId { get; set; } + + /// + /// 签收时间 + /// + public DateTime? SignTime { get; set; } + + /// + /// 快递单号 + /// + public string WaybillNo { get; set; } + + /// + /// 采购方式(线上=0, 线下=1) + /// + public PurchaseMethod PurchaseMethod { get; set; } + + /// + /// 采购单模式 批发 = 0,代发 = 1 + /// + public PurchaseOrderMode PurchaseOrderMode { get; set; } + + + public IList ItemList { get; set; } + } +} diff --git a/BBWY.Client/Models/BatchPurchase/PurchaseOrderSku.cs b/BBWY.Client/Models/BatchPurchase/PurchaseOrderSku.cs new file mode 100644 index 00000000..b1abc4d8 --- /dev/null +++ b/BBWY.Client/Models/BatchPurchase/PurchaseOrderSku.cs @@ -0,0 +1,6 @@ +namespace BBWY.Client.Models +{ + public class PurchaseOrderSku : PurchaseOrderSkuResponse + { + } +} diff --git a/BBWY.Client/Models/BatchPurchase/PurchaseOrderV2.cs b/BBWY.Client/Models/BatchPurchase/PurchaseOrderV2.cs new file mode 100644 index 00000000..2a0e53fc --- /dev/null +++ b/BBWY.Client/Models/BatchPurchase/PurchaseOrderV2.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace BBWY.Client.Models +{ + public class PurchaseOrderV2 : PurchaseOrderV2Response + { + + public new IList ItemList { get; set; } + } +} diff --git a/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseOrderListViewModel.cs b/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseOrderListViewModel.cs index ad5514d4..49a28a17 100644 --- a/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseOrderListViewModel.cs +++ b/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseOrderListViewModel.cs @@ -1,8 +1,16 @@ -using BBWY.Client.Models; +using BBWY.Client.APIServices; +using BBWY.Client.Models; using BBWY.Client.Views.BatchPurchase; +using BBWY.Client.Views.ServiceOrder; +using BBWY.Common.Extensions; using BBWY.Common.Models; +using BBWY.Controls; using GalaSoft.MvvmLight.Command; +using HandyControl.Controls; using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; using System.Threading.Tasks; using System.Windows.Input; @@ -10,6 +18,7 @@ namespace BBWY.Client.ViewModels { public class BatchPurchaseOrderListViewModel : BaseVM, IDenpendency { + private BatchPurchaseService batchPurchaseService; private GlobalContext globalContext; private DateTime startDate; private DateTime endDate; @@ -20,6 +29,8 @@ namespace BBWY.Client.ViewModels private PurchaseOrderState? purchaseOrderState; private int pageIndex; private int pageSize; + private bool isLoading; + private long totalCount; public ICommand SearchPurchaseOrderCommand { get; set; } public ICommand OpenCreateNewPurchaseOrderDialogCommand { get; set; } @@ -28,6 +39,8 @@ namespace BBWY.Client.ViewModels public ICommand SetPurchaseOrderStateCommand { get; set; } + public ICommand OnPageIndexChangedCommand { get; set; } + public DateTime StartDate { get => startDate; set { Set(ref startDate, value); } } public DateTime EndDate { get => endDate; set { Set(ref endDate, value); } } @@ -40,16 +53,25 @@ namespace BBWY.Client.ViewModels public int PageSize { get => pageSize; set { Set(ref pageSize, value); } } - public BatchPurchaseOrderListViewModel(GlobalContext globalContext) + public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } } + + public long TotalCount { get => totalCount; set { Set(ref totalCount, value); } } + + public IList PurchaseOrderList { get; set; } + + public BatchPurchaseOrderListViewModel(GlobalContext globalContext, BatchPurchaseService batchPurchaseService) { + this.batchPurchaseService = batchPurchaseService; SetSearchDateCommand = new RelayCommand(SetSearchDate); SetPurchaseOrderStateCommand = new RelayCommand(SetPurchaseOrderState); SearchPurchaseOrderCommand = new RelayCommand(InitQueryPurchaseOrder); OpenCreateNewPurchaseOrderDialogCommand = new RelayCommand(OpenCreateNewPurchaseOrderDialog); + OnPageIndexChangedCommand = new RelayCommand(OnPageIndexChanged); PageSize = 10; this.globalContext = globalContext; EndDate = DateTime.Now.Date; StartDate = DateTime.Now.Date.AddDays(-15); + PurchaseOrderList = new ObservableCollection(); InitQueryPurchaseOrder(); } @@ -61,7 +83,7 @@ namespace BBWY.Client.ViewModels } private void SetPurchaseOrderState(PurchaseOrderState? purchaseOrderState) - { + { this.PurchaseOrderState = purchaseOrderState; InitQueryPurchaseOrder(); } @@ -75,7 +97,36 @@ namespace BBWY.Client.ViewModels private void QueryPurchaseOrder(int pageIndex) { + IsLoading = true; + var response = batchPurchaseService.GetPurchaseOrderList(SearchProductId, + SearchSkuId, + SearchPurchaseName, + SearchPurchaseOrderId, + pageIndex, + PageSize, + StartDate, + EndDate, + this.PurchaseOrderState); + IsLoading = false; + if (!response.Success) + { + App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "提示")); + return; + } + TotalCount = response.Data.Count; + App.Current.Dispatcher.Invoke(() => PurchaseOrderList.Clear()); + + if (response.Data.ItemList == null || response.Data.ItemList.Count() == 0) + return; + + var list = response.Data.ItemList.Map>(); + + App.Current.Dispatcher.Invoke(() => + { + foreach (var p in list) + PurchaseOrderList.Add(p); + }); } private void OpenCreateNewPurchaseOrderDialog() @@ -86,5 +137,10 @@ namespace BBWY.Client.ViewModels InitQueryPurchaseOrder(); //刷新采购单页面 } } + + private void OnPageIndexChanged(PageArgs pageArgs) + { + Task.Factory.StartNew(() => QueryPurchaseOrder(pageArgs.PageIndex)); + } } } diff --git a/BBWY.Client/Views/BatchPurchase/BatchPurchaseOrderList.xaml b/BBWY.Client/Views/BatchPurchase/BatchPurchaseOrderList.xaml index 51071d2c..395651f2 100644 --- a/BBWY.Client/Views/BatchPurchase/BatchPurchaseOrderList.xaml +++ b/BBWY.Client/Views/BatchPurchase/BatchPurchaseOrderList.xaml @@ -30,8 +30,6 @@ - - @@ -146,6 +144,59 @@ Foreground="{Binding PurchaseOrderState,Converter={StaticResource objConverter},ConverterParameter=已完成:White:#4A4A4A}" Command="{Binding SetPurchaseOrderStateCommand}" CommandParameter="{x:Static cmodel:PurchaseOrderState.已完成}"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BBWY.Server.API/Controllers/BatchPurchaseController.cs b/BBWY.Server.API/Controllers/BatchPurchaseController.cs index 91f0adc9..ee6a7fb8 100644 --- a/BBWY.Server.API/Controllers/BatchPurchaseController.cs +++ b/BBWY.Server.API/Controllers/BatchPurchaseController.cs @@ -54,7 +54,7 @@ namespace BBWY.Server.API.Controllers /// /// [HttpPost] - public IList GetPurchaseOrderList([FromBody] SearchPurchaseOrderV2Request request) + public PurchaseOrderV2ListResponse GetPurchaseOrderList([FromBody] SearchPurchaseOrderV2Request request) { return batchPurchaseBusiness.GetPurchaseOrderList(request); } diff --git a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs index ed8f68e7..e0ff81d5 100644 --- a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs @@ -346,7 +346,7 @@ namespace BBWY.Server.Business }; } - public IList GetPurchaseOrderList(SearchPurchaseOrderV2Request request) + public PurchaseOrderV2ListResponse GetPurchaseOrderList(SearchPurchaseOrderV2Request request) { if (request.EndDate != null) request.EndDate = request.EndDate.Value.Date.AddDays(1).AddSeconds(-1); @@ -380,7 +380,7 @@ namespace BBWY.Server.Business var purchaseOrderSkuList = fsql.Select().Where(posku => purchaseOrderIdList.Contains(posku.PurchaseOrderId)).ToList(); foreach (var purchaseOrder in purchaseOrderList) purchaseOrder.ItemList = purchaseOrderSkuList.Where(posku => posku.PurchaseOrderId == purchaseOrder.Id).ToList(); - return purchaseOrderList; + return new PurchaseOrderV2ListResponse() { Count = total, ItemList = purchaseOrderList }; } } } diff --git a/BBWY.Server.Model/Dto/Response/PurchaseOrderV2/PurchaseOrderV2Response.cs b/BBWY.Server.Model/Dto/Response/PurchaseOrderV2/PurchaseOrderV2Response.cs index 7addbaa7..8544cf83 100644 --- a/BBWY.Server.Model/Dto/Response/PurchaseOrderV2/PurchaseOrderV2Response.cs +++ b/BBWY.Server.Model/Dto/Response/PurchaseOrderV2/PurchaseOrderV2Response.cs @@ -7,4 +7,11 @@ namespace BBWY.Server.Model.Dto { public IList ItemList { get; set; } } + + public class PurchaseOrderV2ListResponse + { + public long Count { get; set; } + + public IList ItemList { get; set; } + } }