Browse Source

记录采购时间

AddValidOverTime
shanji 3 years ago
parent
commit
205eb56d76
  1. 9
      BBWY.Client/APIServices/PurchaseOrderService.cs
  2. 5
      BBWY.Client/Models/Product/PurchaseSchemeProduct.cs
  3. 4
      BBWY.Client/Models/Product/Purchaser.cs
  4. 1
      BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs
  5. 7
      BBWY.Client/Views/Order/ChoosePurchaseScheme.xaml
  6. 9
      BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  7. 3
      BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs
  8. 15
      BBWY.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  9. 5
      BBWY.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
  10. 6
      BBWY.Server.Model/Db/PurchaseScheme/Purchaser.cs
  11. 11
      BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/CargoParamRequest.cs

9
BBWY.Client/APIServices/PurchaseOrderService.cs

@ -124,12 +124,13 @@ namespace BBWY.Client.APIServices
SkuId = sku.PurchaseSkuId,
SpecId = sku.PurchaseSkuSpecId,
Quantity = sku.ItemTotal,
BelongSkuId = sku.SkuId
BelongSkuId = sku.SkuId,
SchemeId = sku.SkuPurchaseSchemeId
}),
Platform = purchasePlatform,
AppKey = purchaseAccount.AppKey,
AppSecret = purchaseAccount.AppSecret,
AppToken = purchaseAccount.AppToken,
purchaseAccount.AppKey,
purchaseAccount.AppSecret,
purchaseAccount.AppToken,
SaveResponseLog = true,
tradeMode,
remark,

5
BBWY.Client/Models/Product/PurchaseSchemeProduct.cs

@ -17,6 +17,8 @@ namespace BBWY.Client.Models
private bool isEditing;
private string searchPurchaseSkuName;
public long SkuPurchaseSchemeId { get; set; }
/// <summary>
/// 采购商品和采购方案的关系Id
/// </summary>
@ -80,7 +82,8 @@ namespace BBWY.Client.Models
ProductId = apiModel.ProductId,
SkuId = apiModel.SkuId,
PurchaseProductId = apiModel.PurchaseProductId,
PurchaseUrl = apiModel.PurchaseUrl
PurchaseUrl = apiModel.PurchaseUrl,
SkuPurchaseSchemeId = apiModel.SkuPurchaseSchemeId
};
model.SelectedSkuIdList.AddRange(apiModel.PurchaseSchemeProductSkuList.Select(s => s.PurchaseSkuId));
return model;

4
BBWY.Client/Models/Product/Purchaser.cs

@ -25,6 +25,10 @@ namespace BBWY.Client.Models
public string Location { get; set; }
public Platform Platform { get; set; }
public decimal DefaultCost { get; set; }
public DateTime? LastPurchaseTime { get; set; }
}
public class PurchaserComparer : IEqualityComparer<Purchaser>

1
BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs

@ -182,6 +182,7 @@ namespace BBWY.Client.ViewModels
{
foreach (var purchaseSchemeProductSku in data.Value.purchaseSchemeProductSkus)
{
purchaseSchemeProductSku.SkuPurchaseSchemeId = purchaseSchemeProduct.SkuPurchaseSchemeId;
if (purchaseSchemeProduct.SelectedSkuIdList.Any(s => s == purchaseSchemeProductSku.PurchaseSkuId))
{
PurchaseSchemeProductSkuList.Add(purchaseSchemeProductSku);

7
BBWY.Client/Views/Order/ChoosePurchaseScheme.xaml

@ -7,7 +7,7 @@
xmlns:c="clr-namespace:BBWY.Controls;assembly=BBWY.Controls"
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
mc:Ignorable="d"
Title="ChoosePurchaseScheme" Height="200" Width="600"
Title="ChoosePurchaseScheme" Height="200" Width="800"
Style="{StaticResource bwstyle}"
MinButtonVisibility="Collapsed"
MaxButtonVisibility="Collapsed"
@ -39,6 +39,11 @@
ElementStyle="{StaticResource middleTextBlock}"/>
<DataGridTextColumn Binding="{Binding Location}" Header="发货地" Width="120" HeaderStyle="{StaticResource ColumnHeaderStyle_Center}"
ElementStyle="{StaticResource middleTextBlock}"/>
<DataGridTextColumn Binding="{Binding DefaultCost}" Header="单价" Width="80"
HeaderStyle="{StaticResource ColumnHeaderStyle_Center}"
ElementStyle="{StaticResource middleTextBlock}"/>
<DataGridTextColumn Binding="{Binding LastPurchaseTime}" Header="上次采购时间" Width="150" HeaderStyle="{StaticResource ColumnHeaderStyle_Center}"
ElementStyle="{StaticResource middleTextBlock}"/>
<DataGridTemplateColumn Header="操作" Width="50" HeaderStyle="{StaticResource ColumnHeaderStyle_Center}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>

9
BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -138,6 +138,8 @@ namespace BBWY.Server.Business
var deletePurchaseOrder = fsql.Delete<PurchaseOrder>().Where(po => oldPourchaseIdList.Contains(po.Id));
var deleteOrderCostDetail = fsql.Delete<OrderCostDetail>().Where(ocd => ocd.OrderId == dbOrder.Id);
var isRepurchase = fsql.Select<OrderCost>(dbOrder.Id).Any();
var orderSkus = fsql.Select<OrderSku>().Where(osku => osku.Price != 0 && osku.OrderId == createOnlinePurchaseOrderRequest.OrderId).ToList();
var orderSkuIds = orderSkus.Select(osku => osku.Id).ToList();
#region 合并重复的采购sku
var repeatPurchaseSkuGroups = createOnlinePurchaseOrderRequest.CargoParamList.GroupBy(p => p.SkuId).ToList();
@ -160,8 +162,9 @@ namespace BBWY.Server.Business
}
#endregion
var orderSkus = fsql.Select<OrderSku>().Where(osku => osku.Price != 0 && osku.OrderId == createOnlinePurchaseOrderRequest.OrderId).ToList();
var orderSkuIds = orderSkus.Select(osku => osku.Id).ToList();
List<long> updatePurchaseTimeSchemeIdList = new List<long>();
updatePurchaseTimeSchemeIdList.AddRange(createOnlinePurchaseOrderRequest.CargoParamList.Select(p => p.SchemeId).Distinct());
var createOrderResponse = platformSDKBusinessList.FirstOrDefault(p => p.Platform == createOnlinePurchaseOrderRequest.Platform)
.FastCreateOrder(createOnlinePurchaseOrderRequest);
@ -332,6 +335,8 @@ namespace BBWY.Server.Business
fsql.Update<OrderSku>().Set(osku => osku.OrderDropShippingId, orderDropShipping.Id)
.Where(osku => orderSkuIds.Contains(osku.Id))
.ExecuteAffrows();
if (updatePurchaseTimeSchemeIdList.Count() > 0)
fsql.Update<PurchaseScheme>(updatePurchaseTimeSchemeIdList).Set(p => p.LastPurchaseTime, DateTime.Now).ExecuteAffrows();
});
}

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

@ -271,7 +271,7 @@ namespace BBWY.Server.Business
Platform = purchasePlatform
});
List<long> updatePurchaseTimeSchemeIdList = productParamList.Select(p => p.BelongPurchaseSchemeId).Distinct().ToList();
List<PurchaseOrderSku> insertPurchaseOrderSkuList = new List<PurchaseOrderSku>();
foreach (var belongSkuGroup in belongSkuGroups)
@ -337,6 +337,7 @@ namespace BBWY.Server.Business
fsql.Insert(purchaseOrderV2).ExecuteAffrows();
//fsql.Insert(purchaseOrderSku).ExecuteAffrows();
fsql.Insert(insertPurchaseOrderSkuList).ExecuteAffrows();
fsql.Update<PurchaseScheme>(updatePurchaseTimeSchemeIdList).Set(p => p.LastPurchaseTime, DateTime.Now).ExecuteAffrows();
});
successSkuIdList.AddRange(belongSkuGroups.Select(g => g.Key));
}

15
BBWY.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs

@ -161,7 +161,8 @@ namespace BBWY.Server.Business
DefaultCost = ps.DefaultCost,
RealCost = ps.RealCost,
CreateTime = ps.CreateTime,
PurchasePlatform = ps.PurchasePlatform
PurchasePlatform = ps.PurchasePlatform,
LastPurchaseTime = ps.LastPurchaseTime
});
if (purchaseSchemeList.Count > 0)
@ -219,7 +220,17 @@ namespace BBWY.Server.Business
if (sharePurchaserIdList.Count == 0)
return null;
return fsql.Select<Purchaser>().Where(p => sharePurchaserIdList.Contains(p.Id)).ToList();
var purchaserList = fsql.Select<Purchaser>().Where(p => sharePurchaserIdList.Contains(p.Id)).ToList();
foreach (var p in purchaserList)
{
var scheme = purchaseSchemeList.FirstOrDefault(ps=>ps.PurchaserId == p.Id);
if (scheme != null)
{
p.DefaultCost = scheme.DefaultCost;
p.LastPurchaseTime = scheme.LastPurchaseTime;
}
}
return purchaserList;
}
public void DeletePurchaser(DeletePurchaseSchemeRequest deletePurchaseSchemeRequest)

5
BBWY.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs

@ -49,6 +49,11 @@ namespace BBWY.Server.Model.Db
[Column(MapType = typeof(int), DbType = "int(1)")]
public Enums.Platform PurchasePlatform { get; set; }
/// <summary>
/// 最后采购时间
/// </summary>
public DateTime? LastPurchaseTime { get; set; }
[Column(IsIgnore = true)]
public List<PurchaseSchemeProduct> PurchaseSchemeProductList { get; set; }
}

6
BBWY.Server.Model/Db/PurchaseScheme/Purchaser.cs

@ -1,4 +1,5 @@
using FreeSql.DataAnnotations;
using System;
namespace BBWY.Server.Model.Db
{
@ -34,6 +35,11 @@ namespace BBWY.Server.Model.Db
[Column(MapType = typeof(int?))]
public Enums.Platform? Platform { get; set; }
[Column(IsIgnore = true)]
public decimal DefaultCost { get; set; }
[Column(IsIgnore = true)]
public DateTime? LastPurchaseTime { get; set; }
}
}

11
BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/CargoParamRequest.cs

@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace BBWY.Server.Model.Dto
namespace BBWY.Server.Model.Dto
{
public class CargoParamRequest
{
@ -21,5 +17,10 @@ namespace BBWY.Server.Model.Dto
/// 订单SkuId
/// </summary>
public string BelongSkuId { get; set; }
/// <summary>
/// 采购方案Id
/// </summary>
public long SchemeId { get; set; }
}
}

Loading…
Cancel
Save