shanji 2 years ago
parent
commit
7335efe36b
  1. 44
      BBWY.Client/APIServices/BatchPurchaseService.cs
  2. 99
      BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderSkuResponse.cs
  3. 11
      BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderV2ListResponse.cs
  4. 177
      BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderV2Response.cs
  5. 6
      BBWY.Client/Models/BatchPurchase/PurchaseOrderSku.cs
  6. 10
      BBWY.Client/Models/BatchPurchase/PurchaseOrderV2.cs
  7. 62
      BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseOrderListViewModel.cs
  8. 55
      BBWY.Client/Views/BatchPurchase/BatchPurchaseOrderList.xaml
  9. 2
      BBWY.Server.API/Controllers/BatchPurchaseController.cs
  10. 4
      BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs
  11. 7
      BBWY.Server.Model/Dto/Response/PurchaseOrderV2/PurchaseOrderV2Response.cs

44
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<object>();
foreach (var productSkuWithScheme in productSkuWithSchemeList)
{
@ -127,5 +110,30 @@ namespace BBWY.Client.APIServices
globalContext.User.Shop.ShopName
}, null, HttpMethod.Post);
}
public ApiResponse<PurchaseOrderV2ListResponse> GetPurchaseOrderList(string spu,
string sku,
string purchaserName,
string purchaseOrderId,
int pageIndex,
int pageSize,
DateTime startDate,
DateTime endDate,
PurchaseOrderState? purchaseOrderState)
{
return SendRequest<PurchaseOrderV2ListResponse>(globalContext.BBYWApiHost, "api/BatchPurchase/GetPurchaseOrderList", new
{
sku,
spu,
purchaseOrderId,
globalContext.User.Shop.ShopId,
purchaserName,
purchaseOrderState,
pageIndex,
pageSize,
startDate,
endDate
}, null, HttpMethod.Post);
}
}
}

99
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; }
/// <summary>
/// 打包耗材费
/// </summary>
public decimal? ConsumableAmount { get; set; } = 0.00M;
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 头程运费
/// </summary>
public decimal? FirstFreight { get; set; } = 0.00M;
/// <summary>
/// 入仓费
/// </summary>
public decimal? InStorageAmount { get; set; } = 0.00M;
/// <summary>
/// Sku Logo
/// </summary>
public string Logo { get; set; }
/// <summary>
/// 单价
/// </summary>
public decimal? Price { get; set; } = 0.00M;
/// <summary>
/// 采购货款
/// </summary>
public decimal? ProductAmount { get; set; }
public string ProductId { get; set; }
/// <summary>
/// 采购金额(采购货款+采购运费)
/// </summary>
public decimal? PurchaseAmount { get; set; }
/// <summary>
/// 采购运费
/// </summary>
public decimal? PurchaseFreight { get; set; }
/// <summary>
/// 采购单Id
/// </summary>
public string PurchaseOrderId { get; set; }
/// <summary>
/// 采购方案Id
/// </summary>
public long? PurchaseSchemeId { get; set; }
/// <summary>
/// 采购SkuId串
/// </summary>
public string PurchaseSkuIds { get; set; }
/// <summary>
/// 质检费
/// </summary>
public decimal? QualityInspectionAmount { get; set; } = 0.00M;
/// <summary>
/// 采购数量
/// </summary>
public int? Quantity { get; set; }
/// <summary>
/// 店铺Id
/// </summary>
public long? ShopId { get; set; }
public string SkuId { get; set; }
/// <summary>
/// Sku标题
/// </summary>
public string SkuTitle { get; set; }
}
}

11
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<PurchaseOrderV2Response> ItemList { get; set; }
}
}

177
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
{
/// <summary>
/// 采购单号
/// </summary>
public string Id { get; set; }
/// <summary>
/// 完成时间
/// </summary>
public DateTime? CompletionTime { get; set; }
/// <summary>
/// 收货详细地址
/// </summary>
public string ConsigneeAddress { get; set; }
/// <summary>
/// 收货市
/// </summary>
public string ConsigneeCity { get; set; }
/// <summary>
/// 收货联系人名称
/// </summary>
public string ConsigneeContactName { get; set; }
/// <summary>
/// 收货区
/// </summary>
public string ConsigneeCounty { get; set; }
/// <summary>
/// 收货联系人电话
/// </summary>
public string ConsigneeMobile { get; set; }
/// <summary>
/// 收货省
/// </summary>
public string ConsigneeProvince { get; set; }
/// <summary>
/// 收货镇
/// </summary>
public string ConsigneeTown { get; set; }
/// <summary>
/// 打包耗材费
/// </summary>
public decimal? ConsumableAmount { get; set; } = 0.00M;
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 快递公司
/// </summary>
public string ExpressName { get; set; }
/// <summary>
/// 头程运费
/// </summary>
public decimal? FirstFreight { get; set; } = 0.00M;
/// <summary>
/// 入仓费
/// </summary>
public decimal? InStorageAmount { get; set; } = 0.00M;
/// <summary>
/// 是否转入库存
/// </summary>
public bool? IsConvertToStock { get; set; } = false;
/// <summary>
/// 是否订阅快递100
/// </summary>
public bool? IsSubscribeKuaiDi100 { get; set; } = false;
/// <summary>
/// 采购单状态(待付款=0,待发货=1,待收货=2,待质检=3,待打包=4,待结算=5,已完成=6)
/// </summary>
public PurchaseOrderState? OrderState { get; set; }
/// <summary>
/// 支付时间
/// </summary>
public DateTime? PayTime { get; set; }
/// <summary>
/// 采购货款
/// </summary>
public decimal? ProductAmount { get; set; } = 0.00M;
/// <summary>
/// 采购账号Id
/// </summary>
public long? PurchaseAccountId { get; set; }
/// <summary>
/// 采购金额(采购货款+采购运费)
/// </summary>
public decimal? PurchaseAmount { get; set; } = 0.00M;
/// <summary>
/// 采购运费
/// </summary>
public decimal? PurchaseFreight { get; set; } = 0.00M;
/// <summary>
/// 采购平台
/// </summary>
public Platform? PurchasePlatform { get; set; }
/// <summary>
/// 商家Id
/// </summary>
public string PurchaserId { get; set; }
/// <summary>
/// 商家名称
/// </summary>
public string PurchaserName { get; set; }
/// <summary>
/// 质检费
/// </summary>
public decimal? QualityInspectionAmount { get; set; } = 0.00M;
/// <summary>
/// 备注信息
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 店铺Id
/// </summary>
public long ShopId { get; set; }
/// <summary>
/// 签收时间
/// </summary>
public DateTime? SignTime { get; set; }
/// <summary>
/// 快递单号
/// </summary>
public string WaybillNo { get; set; }
/// <summary>
/// 采购方式(线上=0, 线下=1)
/// </summary>
public PurchaseMethod PurchaseMethod { get; set; }
/// <summary>
/// 采购单模式 批发 = 0,代发 = 1
/// </summary>
public PurchaseOrderMode PurchaseOrderMode { get; set; }
public IList<PurchaseOrderSkuResponse> ItemList { get; set; }
}
}

6
BBWY.Client/Models/BatchPurchase/PurchaseOrderSku.cs

@ -0,0 +1,6 @@
namespace BBWY.Client.Models
{
public class PurchaseOrderSku : PurchaseOrderSkuResponse
{
}
}

10
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<PurchaseOrderSku> ItemList { get; set; }
}
}

62
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<PurchaseOrderV2> PurchaseOrderList { get; set; }
public BatchPurchaseOrderListViewModel(GlobalContext globalContext, BatchPurchaseService batchPurchaseService)
{
this.batchPurchaseService = batchPurchaseService;
SetSearchDateCommand = new RelayCommand<int>(SetSearchDate);
SetPurchaseOrderStateCommand = new RelayCommand<PurchaseOrderState?>(SetPurchaseOrderState);
SearchPurchaseOrderCommand = new RelayCommand(InitQueryPurchaseOrder);
OpenCreateNewPurchaseOrderDialogCommand = new RelayCommand(OpenCreateNewPurchaseOrderDialog);
OnPageIndexChangedCommand = new RelayCommand<PageArgs>(OnPageIndexChanged);
PageSize = 10;
this.globalContext = globalContext;
EndDate = DateTime.Now.Date;
StartDate = DateTime.Now.Date.AddDays(-15);
PurchaseOrderList = new ObservableCollection<PurchaseOrderV2>();
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<IList<PurchaseOrderV2>>();
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));
}
}
}

55
BBWY.Client/Views/BatchPurchase/BatchPurchaseOrderList.xaml

@ -30,8 +30,6 @@
<RowDefinition Height="30"/>
<RowDefinition Height="5"/>
<RowDefinition Height="30"/>
<RowDefinition Height="5"/>
<RowDefinition Height="30"/>
<RowDefinition/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
@ -146,6 +144,59 @@
Foreground="{Binding PurchaseOrderState,Converter={StaticResource objConverter},ConverterParameter=已完成:White:#4A4A4A}"
Command="{Binding SetPurchaseOrderStateCommand}" CommandParameter="{x:Static cmodel:PurchaseOrderState.已完成}"/>
</StackPanel>
<Border BorderBrush="{StaticResource Border.Brush}" BorderThickness="1,1,1,0"
Background="#F2F2F2" Grid.Row="4">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="380"/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Text="商品信息" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="采购信息" Grid.Column="1" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="采购成本" Grid.Column="2" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="其他成本" Grid.Column="3" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="物流信息" Grid.Column="4" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="备注信息" Grid.Column="5" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="操作" Grid.Column="6" Style="{StaticResource middleTextBlock}"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="1"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="2"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="3"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="4"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="5"/>
</Grid>
</Border>
<ListBox Grid.Row="5"
ItemsSource="{StaticResource PurchaseOrderList}"
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}">
<ListBox.ItemTemplate>
<DataTemplate>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<c:PageControl PageIndex="{Binding PageIndex}"
PageSize="{Binding PageSize}"
RecordCount="{Binding TotalCount}"
Grid.Row="6"
HorizontalAlignment="Left">
<b:Interaction.Triggers>
<b:EventTrigger EventName="OnPageIndexChanged">
<b:InvokeCommandAction Command="{Binding OnPageIndexChangedCommand}" PassEventArgsToCommand="True"/>
</b:EventTrigger>
</b:Interaction.Triggers>
</c:PageControl>
</Grid>
</Grid>
</Page>

2
BBWY.Server.API/Controllers/BatchPurchaseController.cs

@ -54,7 +54,7 @@ namespace BBWY.Server.API.Controllers
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public IList<PurchaseOrderV2Response> GetPurchaseOrderList([FromBody] SearchPurchaseOrderV2Request request)
public PurchaseOrderV2ListResponse GetPurchaseOrderList([FromBody] SearchPurchaseOrderV2Request request)
{
return batchPurchaseBusiness.GetPurchaseOrderList(request);
}

4
BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs

@ -346,7 +346,7 @@ namespace BBWY.Server.Business
};
}
public IList<PurchaseOrderV2Response> 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<PurchaseOrderSku>().Where(posku => purchaseOrderIdList.Contains(posku.PurchaseOrderId)).ToList<PurchaseOrderSkuResponse>();
foreach (var purchaseOrder in purchaseOrderList)
purchaseOrder.ItemList = purchaseOrderSkuList.Where(posku => posku.PurchaseOrderId == purchaseOrder.Id).ToList();
return purchaseOrderList;
return new PurchaseOrderV2ListResponse() { Count = total, ItemList = purchaseOrderList };
}
}
}

7
BBWY.Server.Model/Dto/Response/PurchaseOrderV2/PurchaseOrderV2Response.cs

@ -7,4 +7,11 @@ namespace BBWY.Server.Model.Dto
{
public IList<PurchaseOrderSkuResponse> ItemList { get; set; }
}
public class PurchaseOrderV2ListResponse
{
public long Count { get; set; }
public IList<PurchaseOrderV2Response> ItemList { get; set; }
}
}

Loading…
Cancel
Save