Browse Source

Merge branch 'MultiPurchaser' of http://code.qiyue666.com/pengcong001/bbwyb into MultiPurchaser

yijia
shanji 2 years ago
parent
commit
bef0bd182a
  1. 1
      BBWYB.Client/App.xaml.cs
  2. 2
      BBWYB.Client/GlobalContext.cs
  3. 10
      BBWYB.Client/Models/APIModel/Response/PurchaseSchemeProductResponse.cs
  4. 36
      BBWYB.Client/Models/APIModel/Response/PurchaseSchemeResponse.cs
  5. 28
      BBWYB.Client/Models/PurchaseScheme/PurchaseScheme.cs
  6. 13
      BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProduct.cs
  7. 16
      BBWYB.Client/ViewModels/MainViewModel.cs
  8. 18
      BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs
  9. 4
      BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs
  10. 229
      BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
  11. 228
      BBWYB.Client/ViewModels/Ware/WareManagerViewModel.cs
  12. 2
      BBWYB.Client/Views/Ware/BindingPurchaseProduct.xaml
  13. 19
      BBWYB.Client/Views/Ware/BindingPurchaseProduct.xaml.cs
  14. 57
      BBWYB.Client/Views/Ware/WareManager.xaml
  15. 4
      BBWYB.Client/appsettings.json
  16. 9
      BBWYB.Server.API/Controllers/DataRepairController.cs
  17. 38
      BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
  18. 67
      BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
  19. 205
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  20. 92
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  21. 5
      BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductSkuRequest.cs
  22. 21
      BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
  23. 6
      BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
  24. 21
      BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductSkuResponse.cs

1
BBWYB.Client/App.xaml.cs

@ -79,6 +79,7 @@ namespace BBWYB.Client
serviceCollection.AddTransient<OnlinePurchaseViewModel>();
serviceCollection.AddTransient<EditPriceViewModel>();
serviceCollection.AddTransient<UpdatePurchaseTaskViewModel>();
serviceCollection.AddTransient<BindingPurchaseProductViewModel>();
serviceCollection.AddMapper(new MappingProfile());
ServiceProvider = serviceCollection.BuildServiceProvider();
base.OnStartup(e);

2
BBWYB.Client/GlobalContext.cs

@ -22,7 +22,7 @@ namespace BBWYB.Client
{
public GlobalContext()
{
BBWYBApiVersion = "10030";
BBWYBApiVersion = "10031";
}
private User user;

10
BBWYB.Client/Models/APIModel/Response/PurchaseSchemeProductResponse.cs

@ -13,6 +13,16 @@ namespace BBWYB.Client.Models
public string SkuId { get; set; }
public long SkuPurchaseSchemeId { get; set; }
public long UserId { get; set; }
public string PurchaserName { get; set; }
public string PurchaserId { get; set; }
public string PurchaserId2 { get; set; }
public string PurchaserLocation { get; set; }
public Platform? PurchasePlatform { get; set; }
public List<PurchaseSchemeProductSkuResponse> PurchaseSchemeProductSkuList { get; set; }
}

36
BBWYB.Client/Models/APIModel/Response/PurchaseSchemeResponse.cs

@ -11,20 +11,20 @@ namespace BBWYB.Client.Models
/// </summary>
public decimal? DefaultCost { get; set; }
public string ProductId { get; set; }
/// <summary>
/// 采购商Id
/// </summary>
public string PurchaserId { get; set; }
///// <summary>
///// 采购商Id
///// </summary>
//public string PurchaserId { get; set; }
/// <summary>
/// 采购商Id
/// </summary>
public string PurchaserId2 { get; set; }
public string PurchaserName { get; set; }
/// <summary>
/// 发货地
/// </summary>
public string PurchaserLocation { get; set; }
///// <summary>
///// 采购商Id
///// </summary>
//public string PurchaserId2 { get; set; }
//public string PurchaserName { get; set; }
///// <summary>
///// 发货地
///// </summary>
//public string PurchaserLocation { get; set; }
/// <summary>
/// 采购实际成本
/// </summary>
@ -32,10 +32,10 @@ namespace BBWYB.Client.Models
public string SkuId { get; set; }
public long ShopId { get; set; }
/// <summary>
/// 采购平台
/// </summary>
public Platform PurchasePlatform { get; set; }
///// <summary>
///// 采购平台
///// </summary>
//public Platform PurchasePlatform { get; set; }
/// <summary>
/// 最后采购时间
@ -43,6 +43,8 @@ namespace BBWYB.Client.Models
public DateTime? LastPurchaseTime { get; set; }
public List<PurchaseSchemeProductResponse> PurchaseSchemeProductList { get; set; }
public List<Purchaser> PurchaserList { get; set; }
}
}

28
BBWYB.Client/Models/PurchaseScheme/PurchaseScheme.cs

@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
namespace BBWYB.Client.Models
{
@ -21,10 +22,10 @@ namespace BBWYB.Client.Models
public decimal DefaultCost { get => defaultCost; set { SetProperty(ref defaultCost, value); } }
public decimal RealCost { get => realCost; set { SetProperty(ref realCost, value); } }
public string PurchaserId { get; set; }
public string PurchaserId2 { get; set; }
//public string PurchaserId { get; set; }
//public string PurchaserId2 { get; set; }
public string PurchaserName { get; set; }
public string PurchaserLocation { get; set; }
//public string PurchaserLocation { get; set; }
public string PurchaseProductId1 { get; set; }
public int PurchaseProductSkuCount1 { get; set; }
public string PurchaseProductId2 { get; set; }
@ -37,7 +38,7 @@ namespace BBWYB.Client.Models
/// <summary>
/// 采购平台
/// </summary>
public Platform PurchasePlatform { get; set; }
//public Platform PurchasePlatform { get; set; }
/// <summary>
/// 最后采购时间
@ -49,9 +50,12 @@ namespace BBWYB.Client.Models
/// </summary>
public IList<PurchaseSchemeProduct> PurchaseSchemeProductList { get; set; }
public List<Purchaser> PurchaserList { get; set; }
public PurchaseScheme()
{
PurchaseSchemeProductList = new ObservableCollection<PurchaseSchemeProduct>();
PurchaserList = new List<Purchaser>();
}
/// <summary>
@ -68,13 +72,17 @@ namespace BBWYB.Client.Models
ProductId = apiModel.ProductId,
SkuId = apiModel.SkuId,
DefaultCost = apiModel.DefaultCost ?? 0,
RealCost = apiModel.RealCost ?? 0,
PurchaserId = apiModel.PurchaserId,
PurchaserName = apiModel.PurchaserName,
PurchaserLocation = apiModel.PurchaserLocation,
PurchasePlatform = apiModel.PurchasePlatform
RealCost = apiModel.RealCost ?? 0
//PurchaserId = apiModel.PurchaserId,
//PurchaserName = apiModel.PurchaserName,
//PurchaserLocation = apiModel.PurchaserLocation,
//PurchasePlatform = apiModel.PurchasePlatform
};
foreach (var p in apiModel.PurchaserList)
{
model.PurchaserList.Add(p);
}
model.PurchaserName = model.PurchaserList.Count() == 1 ? model.PurchaserList[0].Name : $"{model.PurchaserList[0].Name}等{model.PurchaserList.Count()}个采购商";
foreach (var apiProduct in apiModel.PurchaseSchemeProductList)
{
model.PurchaseSchemeProductList.Add(PurchaseSchemeProduct.Convert(apiProduct));

13
BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProduct.cs

@ -28,6 +28,12 @@ namespace BBWYB.Client.Models
public string PurchaseUrl { get => purchaseUrl; set { SetProperty(ref purchaseUrl, value); } }
public string PurchaseProductId { get => purchaseProductId; set => purchaseProductId = value; }
public string PurchaserId { get; set; }
public string PurchaserId2 { get; set; }
public string PurchaserLocation { get; set; }
public string PurchaserName { get; set; }
public Platform PurchasePlatform { get; set; }
public bool IsEditing
{
get => isEditing;
@ -79,7 +85,12 @@ namespace BBWYB.Client.Models
ProductId = apiModel.ProductId,
SkuId = apiModel.SkuId,
PurchaseProductId = apiModel.PurchaseProductId,
PurchaseUrl = apiModel.PurchaseUrl
PurchaseUrl = apiModel.PurchaseUrl,
PurchaserId = apiModel.PurchaserId,
PurchaserId2 = apiModel.PurchaserId2,
PurchaserName = apiModel.PurchaserName,
PurchasePlatform = apiModel.PurchasePlatform.Value,
PurchaserLocation = apiModel.PurchaserLocation
};
model.SelectedSkuIdList.AddRange(apiModel.PurchaseSchemeProductSkuList.Select(s => s.PurchaseSkuId));
return model;

16
BBWYB.Client/ViewModels/MainViewModel.cs

@ -87,14 +87,14 @@ namespace BBWYB.Client.ViewModels
{
App.Current.Dispatcher.Invoke(() =>
{
MenuList.Add(new MenuModel()
{
Name = "订单管理",
ChildList = new List<MenuModel>()
{
new MenuModel(){ Name="订单列表",Url="/Views/Order/OrderList.xaml" }
}
});
//MenuList.Add(new MenuModel()
//{
// Name = "订单管理",
// ChildList = new List<MenuModel>()
// {
// new MenuModel(){ Name="订单列表",Url="/Views/Order/OrderList.xaml" }
// }
//});
MenuList.Add(new MenuModel()
{
Name = "商品管理",

18
BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs

@ -117,17 +117,17 @@ namespace BBWYB.Client.ViewModels
if (!isResponse)
return;
isResponse = false;
var purchaserId = skuGroup.SelectedScheme.PurchaserId;
//var purchaserId = skuGroup.SelectedScheme.PurchaserId;
foreach (var otherSkuGroup in SkuGroup)
{
if (otherSkuGroup.SkuId == skuGroup.SkuId)
continue;
//foreach (var otherSkuGroup in SkuGroup)
//{
// if (otherSkuGroup.SkuId == skuGroup.SkuId)
// continue;
var samePurchaseScheme = otherSkuGroup.SchemeList.FirstOrDefault(s => s.PurchaserId == purchaserId);
if (samePurchaseScheme != null)
otherSkuGroup.SelectedScheme = samePurchaseScheme;
}
// var samePurchaseScheme = otherSkuGroup.SchemeList.FirstOrDefault(s => s.PurchaserId == purchaserId);
// if (samePurchaseScheme != null)
// otherSkuGroup.SelectedScheme = samePurchaseScheme;
//}
isResponse = true;
}

4
BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs

@ -135,8 +135,8 @@ namespace BBWYB.Client.ViewModels
Logo = orderSku.Logo,
Price = orderSku.Price.Value,
ProductId = scheme.ProductId,
PurchasePlatform = scheme.PurchasePlatform,
PurchaserId = scheme.PurchaserId,
//PurchasePlatform = scheme.PurchasePlatform,
//PurchaserId = scheme.PurchaserId,
PurchaserName = scheme.PurchaserName,
PurchaseSchemeId = scheme.Id,
Quantity = orderSku.ItemTotal,

229
BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs

@ -4,9 +4,11 @@ using BBWYB.Client.Views.Ware;
using BBWYB.Common.Models;
using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.Mvvm.Messaging;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading;
@ -16,17 +18,17 @@ using System.Windows.Input;
namespace BBWYB.Client.ViewModels
{
public class BindingPurchaseProductViewModel : BaseVM, IDenpendency
public class BindingPurchaseProductViewModel : BaseVM
{
#region Properties
private GlobalContext globalContext;
private PurchaseService purchaseService;
private PurchaseProductAPIService purchaseProductAPIService;
private string purchaserName;
//private string purchaserName;
private bool isLoading;
private Platform purchasePlatform;
private long? schemeId;
//private Platform purchasePlatform;
private IDictionary<Platform, string> urlPatternDictionary;
@ -34,15 +36,18 @@ namespace BBWYB.Client.ViewModels
public IList<ProductSku> ProductSkuList { get; set; }
public string PurchaserId { get; set; }
//public string PurchaserId { get; set; }
//public string PurchaserId2 { get; set; }
public string PurchaserId2 { get; set; }
//public string PurchaserName { get => purchaserName; set { SetProperty(ref purchaserName, value); } }
//public string PurchaserLocation { get; set; }
public string PurchaserName { get => purchaserName; set { SetProperty(ref purchaserName, value); } }
public string PurchaserLocation { get; set; }
public bool IsLoading { get => isLoading; set { SetProperty(ref isLoading, value); } }
public Platform PurchasePlatform { get => purchasePlatform; set { SetProperty(ref purchasePlatform, value); } }
public long? SchemeId { get => schemeId; set { SetProperty(ref schemeId, value); } }
//public Platform PurchasePlatform { get => purchasePlatform; set { SetProperty(ref purchasePlatform, value); } }
#endregion
@ -86,68 +91,130 @@ namespace BBWYB.Client.ViewModels
{ Platform.,@"^(https://detail.1688.com/offer/(\d+).html)[^\s]*" },
//{ Platform.拳探, @"^(https://qt.qiyue666.com/goods_detail/(\d+))(\?\w*)?$" }
};
ProductSkuList = new ObservableCollection<ProductSku>();
}
public void SetData(IList<ProductSku> productSkuList, string purchaserId, string purchaserId2, string purchaserName, Platform purchasePlatform)
//public void SetData(IList<ProductSku> productSkuList, string purchaserId, string purchaserId2, string purchaserName, Platform purchasePlatform)
//{
// this.ProductSkuList = productSkuList;
// //this.Product = product;
// this.PurchaserId = purchaserId;
// this.PurchaserId2 = purchaserId2;
// this.PurchaserName = purchaserName;
// this.PurchasePlatform = purchasePlatform;
//}
public void SetData(IList<ProductSku> productSkuList, long? schemeId)
{
this.ProductSkuList = productSkuList;
foreach (var productSku in productSkuList)
ProductSkuList.Add(productSku);
this.SchemeId = schemeId;
//this.Product = product;
this.PurchaserId = purchaserId;
this.PurchaserId2 = purchaserId2;
this.PurchaserName = purchaserName;
this.PurchasePlatform = purchasePlatform;
//this.PurchaserId = purchaserId;
//this.PurchaserId2 = purchaserId2;
//this.PurchaserName = purchaserName;
//this.PurchasePlatform = purchasePlatform;
}
protected override void Load()
{
if (!string.IsNullOrEmpty(PurchaserId))
if (this.SchemeId != null)
{
IsLoading = true;
Task.Factory.StartNew(() => purchaseService.GetPurchaseSchemeList(ProductSkuList.Select(s => s.Id).ToList(), PurchaserId, globalContext.User.Shop.ShopId, purchasePlatform: PurchasePlatform)).ContinueWith(r =>
{
var apiResponse = r.Result;
if (!apiResponse.Success)
{
App.Current.Dispatcher.BeginInvoke((Action)delegate
{
MessageBox.Show(apiResponse.Msg, "查询采购方案");
});
IsLoading = false;
return;
}
var purchaseSchemeList = apiResponse.Data;
var waitList = new List<EventWaitHandle>();
foreach (var sku in ProductSkuList)
{
//当前SKU下当前采购商的采购方案
var apiScheme = purchaseSchemeList.FirstOrDefault(s => s.SkuId == sku.Id && s.PurchaserId == PurchaserId);
if (apiScheme == null)
continue;
sku.SelectedPurchaseScheme = PurchaseScheme.Convert(apiScheme);
var ewh = new ManualResetEvent(false);
waitList.Add(ewh);
Task.Factory.StartNew(() =>
{
foreach (var purchaseSchemeProduct in sku.SelectedPurchaseScheme.PurchaseSchemeProductList)
{
purchaseSchemeProduct.IsEditing = false;
LoadPurchaseProduct(sku.SelectedPurchaseScheme.PurchasePlatform, purchaseSchemeProduct, purchaseSchemeProduct.PurchaseProductId, null, out _);
}
ewh.Set();
ewh.Dispose();
});
}
WaitHandle.WaitAll(waitList.ToArray());
IsLoading = false;
});
var skuIdList = ProductSkuList.Select(s => s.Id).ToList();
var sku = ProductSkuList.FirstOrDefault();
Task.Factory.StartNew(() => purchaseService.GetPurchaseSchemeList(skuIdList, shopId: globalContext.User.Shop.ShopId, schemeId: SchemeId)).ContinueWith(r =>
{
var apiResponse = r.Result;
if (!apiResponse.Success)
{
App.Current.Dispatcher.BeginInvoke((Action)delegate
{
MessageBox.Show(apiResponse.Msg, "查询采购方案");
});
IsLoading = false;
return;
}
var purchaseSchemeList = apiResponse.Data;
var apiScheme = purchaseSchemeList.FirstOrDefault();
if (apiScheme == null)
{
IsLoading = false;
return;
}
sku.SelectedPurchaseScheme = PurchaseScheme.Convert(apiScheme);
var ewh = new ManualResetEvent(false);
var waitList = new List<EventWaitHandle>();
waitList.Add(ewh);
Task.Factory.StartNew(() =>
{
foreach (var purchaseSchemeProduct in sku.SelectedPurchaseScheme.PurchaseSchemeProductList)
{
purchaseSchemeProduct.IsEditing = false;
LoadPurchaseProduct(purchaseSchemeProduct.PurchasePlatform, purchaseSchemeProduct, purchaseSchemeProduct.PurchaseProductId, null, out _);
}
ewh.Set();
ewh.Dispose();
});
WaitHandle.WaitAll(waitList.ToArray());
IsLoading = false;
});
}
}
//protected override void Load()
//{
// if (!string.IsNullOrEmpty(PurchaserId))
// {
// IsLoading = true;
// Task.Factory.StartNew(() => purchaseService.GetPurchaseSchemeList(ProductSkuList.Select(s => s.Id).ToList(), PurchaserId, globalContext.User.Shop.ShopId, purchasePlatform: PurchasePlatform)).ContinueWith(r =>
// {
// var apiResponse = r.Result;
// if (!apiResponse.Success)
// {
// App.Current.Dispatcher.BeginInvoke((Action)delegate
// {
// MessageBox.Show(apiResponse.Msg, "查询采购方案");
// });
// IsLoading = false;
// return;
// }
// var purchaseSchemeList = apiResponse.Data;
// var waitList = new List<EventWaitHandle>();
// foreach (var sku in ProductSkuList)
// {
// //当前SKU下当前采购商的采购方案
// var apiScheme = purchaseSchemeList.FirstOrDefault(s => s.SkuId == sku.Id && s.PurchaserId == PurchaserId);
// if (apiScheme == null)
// continue;
// sku.SelectedPurchaseScheme = PurchaseScheme.Convert(apiScheme);
// var ewh = new ManualResetEvent(false);
// waitList.Add(ewh);
// Task.Factory.StartNew(() =>
// {
// foreach (var purchaseSchemeProduct in sku.SelectedPurchaseScheme.PurchaseSchemeProductList)
// {
// purchaseSchemeProduct.IsEditing = false;
// LoadPurchaseProduct(sku.SelectedPurchaseScheme.PurchasePlatform, purchaseSchemeProduct, purchaseSchemeProduct.PurchaseProductId, null, out _);
// }
// ewh.Set();
// ewh.Dispose();
// });
// }
// WaitHandle.WaitAll(waitList.ToArray());
// IsLoading = false;
// });
// }
//}
public void LoadPurchaseProduct(Platform platform, PurchaseSchemeProduct purchaseSchemeProduct, string purchaseProductId, Func<string, string> checkPurchaserFunc, out string errorMsg)
{
errorMsg = string.Empty;
@ -180,10 +247,15 @@ namespace BBWYB.Client.ViewModels
return;
}
PurchaserId = data.Value.purchaser.Id;
PurchaserId2 = data.Value.purchaser.Id2;
PurchaserName = data.Value.purchaser.Name;
PurchaserLocation = data.Value.purchaser.Location;
purchaseSchemeProduct.PurchaserId = data.Value.purchaser.Id;
purchaseSchemeProduct.PurchaserId2 = data.Value.purchaser.Id2;
purchaseSchemeProduct.PurchaserName = data.Value.purchaser.Name;
purchaseSchemeProduct.PurchaserLocation = data.Value.purchaser.Location;
//PurchaserId = data.Value.purchaser.Id;
//PurchaserId2 = data.Value.purchaser.Id2;
//PurchaserName = data.Value.purchaser.Name;
//PurchaserLocation = data.Value.purchaser.Location;
App.Current.Dispatcher.BeginInvoke((Action)delegate
{
@ -214,8 +286,7 @@ namespace BBWYB.Client.ViewModels
productSku.SelectedPurchaseScheme = new PurchaseScheme()
{
ProductId = productSku.ProductId,
SkuId = productSku.Id,
PurchasePlatform = PurchasePlatform
SkuId = productSku.Id
};
}
else if (productSku.SelectedPurchaseScheme.PurchaseSchemeProductList.Count >= 4)
@ -229,7 +300,8 @@ namespace BBWYB.Client.ViewModels
Id = DateTime.Now.ToFileTime(),
IsEditing = true,
ProductId = productSku.ProductId,
SkuId = productSku.Id
SkuId = productSku.Id,
PurchasePlatform = Platform. //B端写死只能1688
});
}
@ -237,8 +309,8 @@ namespace BBWYB.Client.ViewModels
{
var productSku = ProductSkuList.FirstOrDefault(sku => sku.Id == purchaseSchemeProduct.SkuId);
productSku.SelectedPurchaseScheme.PurchaseSchemeProductList.Remove(purchaseSchemeProduct);
if (!ProductSkuList.Any(s => s.SelectedPurchaseScheme != null && s.SelectedPurchaseScheme.PurchaseSchemeProductList.Count > 0))
PurchaserId = string.Empty;
//if (!ProductSkuList.Any(s => s.SelectedPurchaseScheme != null && s.SelectedPurchaseScheme.PurchaseSchemeProductList.Count > 0))
// PurchaserId = string.Empty;
}
/// <summary>
@ -254,7 +326,7 @@ namespace BBWYB.Client.ViewModels
return;
}
urlPatternDictionary.TryGetValue(PurchasePlatform, out string pattern);
urlPatternDictionary.TryGetValue(purchaseSchemeProduct.PurchasePlatform, out string pattern);
var match = Regex.Match(purchaseSchemeProduct.PurchaseUrl, pattern);
if (!match.Success)
@ -276,13 +348,13 @@ namespace BBWYB.Client.ViewModels
Task.Factory.StartNew(() =>
{
LoadPurchaseProduct(sku.SelectedPurchaseScheme.PurchasePlatform, purchaseSchemeProduct, purchaseProductId, (p) =>
LoadPurchaseProduct(purchaseSchemeProduct.PurchasePlatform, purchaseSchemeProduct, purchaseProductId, (p) =>
{
if (sku.PurchaseSchemeList.Any(s => s.Id != sku.SelectedPurchaseScheme.Id && s.PurchaserId == p))
return $"sku{sku.Id}的采购方案中已存在相同的采购商"; //同一个sku中的采购方案不能有相同的采购商
//if (sku.PurchaseSchemeList.Any(s => s.Id != sku.SelectedPurchaseScheme.Id && s.PurchaserId == p))
// return $"sku{sku.Id}的采购方案中已存在相同的采购商"; //同一个sku中的采购方案不能有相同的采购商
if (!string.IsNullOrEmpty(PurchaserId) && p != PurchaserId) //同一批操作的sku必须为相同的采购商
return "采购商必须相同";
//if (!string.IsNullOrEmpty(PurchaserId) && p != PurchaserId) //同一批操作的sku必须为相同的采购商
// return "采购商必须相同";
return string.Empty;
}, out string errorMsg);
@ -319,10 +391,10 @@ namespace BBWYB.Client.ViewModels
purchaseSchemeProduct.IsEditing = false;
var productSku = ProductSkuList.FirstOrDefault(sku => sku.Id == purchaseSchemeProduct.SkuId);
productSku.SelectedPurchaseScheme.PurchaserId = PurchaserId;
productSku.SelectedPurchaseScheme.PurchaserId2 = PurchaserId2;
productSku.SelectedPurchaseScheme.PurchaserName = PurchaserName;
productSku.SelectedPurchaseScheme.PurchaserLocation = PurchaserLocation;
//productSku.SelectedPurchaseScheme.PurchaserId = PurchaserId;
//productSku.SelectedPurchaseScheme.PurchaserId2 = PurchaserId2;
//productSku.SelectedPurchaseScheme.PurchaserName = PurchaserName;
//productSku.SelectedPurchaseScheme.PurchaserLocation = PurchaserLocation;
productSku.SelectedPurchaseScheme.DefaultCost = productSku.SelectedPurchaseScheme.PurchaseSchemeProductList.Sum(p => p.PurchaseSchemeProductSkuList.Count() == 0 ? 0 : p.PurchaseSchemeProductSkuList.Sum(s => s.Price));
}
@ -385,12 +457,13 @@ namespace BBWYB.Client.ViewModels
private void Closing(System.ComponentModel.CancelEventArgs e)
{
PurchaserId = PurchaserName = string.Empty;
this.SchemeId = null;
//clear data
foreach (var sku in ProductSkuList)
{
sku.SelectedPurchaseScheme = null;
}
this.ProductSkuList.Clear();
//Product = null;
e.Cancel = false;
}

228
BBWYB.Client/ViewModels/Ware/WareManagerViewModel.cs

@ -20,7 +20,7 @@ namespace BBWYB.Client.ViewModels
#region Properties
private PurchaseService purchaseService;
private ProductService productService;
private BindingPurchaseProductViewModel bindingPurchaseProduct;
//private BindingPurchaseProductViewModel bindingPurchaseProduct;
private GlobalContext globalContext;
private bool isLoading;
private int pageIndex = 1;
@ -45,22 +45,32 @@ namespace BBWYB.Client.ViewModels
#endregion
#region Commands
public ICommand AddPurchaserCommand { get; set; }
public ICommand EditPurchaserCommand { get; set; }
public ICommand DeletePurchaserCommand { get; set; }
//public ICommand AddPurchaserCommand { get; set; }
//public ICommand EditPurchaserCommand { get; set; }
//public ICommand DeletePurchaserCommand { get; set; }
public ICommand SearchCommand { get; set; }
public ICommand ProductPageIndexChangedCommand { get; set; }
public ICommand SwitchPurchasePlatformCommand { get; set; }
public ICommand AddSchemeCommand { get; set; }
public ICommand EditSchemeCommand { get; set; }
public ICommand DeleteSchemeCommand { get; set; }
#endregion
#region Methods
public WareManagerViewModel(GlobalContext globalContext, BindingPurchaseProductViewModel bindingPurchaseProduct, PurchaseService purchaseService, ProductService productService)
{
PageSize = 5;
AddPurchaserCommand = new RelayCommand<Product>(AddPurchaser);
EditPurchaserCommand = new RelayCommand<Purchaser>(EditPurchaser);
DeletePurchaserCommand = new RelayCommand<Purchaser>(DeletePurchaser);
//AddPurchaserCommand = new RelayCommand<Product>(AddPurchaser);
//EditPurchaserCommand = new RelayCommand<Purchaser>(EditPurchaser);
//DeletePurchaserCommand = new RelayCommand<Purchaser>(DeletePurchaser);
AddSchemeCommand = new RelayCommand<Product>(AddScheme);
EditSchemeCommand = new RelayCommand<PurchaseScheme>(EditScheme);
DeleteSchemeCommand = new RelayCommand<PurchaseScheme>(DeleteScheme);
SwitchPurchasePlatformCommand = new RelayCommand<object>(SwitchPurchasePlatform);
SearchCommand = new RelayCommand(() =>
{
@ -71,7 +81,7 @@ namespace BBWYB.Client.ViewModels
this.purchaseService = purchaseService;
this.productService = productService;
this.globalContext = globalContext;
this.bindingPurchaseProduct = bindingPurchaseProduct;
//this.bindingPurchaseProduct = bindingPurchaseProduct;
ProductList = new ObservableCollection<Product>();
Task.Factory.StartNew(() => LoadWare(1));
}
@ -164,7 +174,7 @@ namespace BBWYB.Client.ViewModels
{
foreach (var p in productList)
ProductList.Add(p);
ExtractPurchaser();
//ExtractPurchaser();
//使滚动条保持顶部
//Messenger.Default.Send(string.Empty, "WareManager_ProductListScrollToTop");
WeakReferenceMessenger.Default.Send(new Message_WareManager_ProductListScrollToTop(null));
@ -227,96 +237,142 @@ namespace BBWYB.Client.ViewModels
/// <summary>
/// 提取SKU中的采购商到商品的采购商列表中
/// </summary>
private void ExtractPurchaser(string productId = "")
//private void ExtractPurchaser(string productId = "")
//{
// var productList = string.IsNullOrEmpty(productId) ? ProductList : ProductList.Where(p => p.Id == productId);
// foreach (var product in productList)
// {
// product.PurchaserList.Clear();
// foreach (var sku in product.SkuList)
// {
// if (sku.PurchaseSchemeList.Count() > 0)
// {
// foreach (var pscheme in sku.PurchaseSchemeList)
// {
// var purchaser = product.PurchaserList.FirstOrDefault(purchaser => purchaser.Id == pscheme.PurchaserId);
// if (purchaser == null)
// {
// purchaser = new Purchaser()
// {
// Id = pscheme.PurchaserId,
// Id2 = pscheme.PurchaserId2,
// Name = pscheme.PurchaserName,
// ProductId = product.Id
// };
// product.PurchaserList.Add(purchaser);
// }
// purchaser.SkuUseCount++;
// }
// }
// }
// }
//}
//private void AddPurchaser(Product product)
//{
// if (product.PurchaserList.Count >= 5)
// {
// MessageBox.Show("一个SPU内最多允许5个采购商");
// return;
// }
// OpenBindingView(product, string.Empty, string.Empty, string.Empty);
//}
//private void EditPurchaser(Purchaser purchaser)
//{
// var product = ProductList.FirstOrDefault(p => p.Id == purchaser.ProductId);
// OpenBindingView(product, purchaser.Id, purchaser.Id2, purchaser.Name);
//}
//private void DeletePurchaser(Purchaser purchaser)
//{
// if (MessageBox.Show("确认删除该采购商吗?", "提示", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
// return;
// IsLoading = true;
// Task.Factory.StartNew(() =>
// {
// var response = purchaseService.DeletePurchaser(purchaser.ProductId, purchaser.Id);
// IsLoading = false;
// if (response.Success)
// {
// App.Current.Dispatcher.BeginInvoke((Action)delegate
// {
// var product = ProductList.FirstOrDefault(p => p.Id == purchaser.ProductId);
// if (product != null)
// {
// foreach (var sku in product.SkuList)
// {
// var deleteScheme = sku.PurchaseSchemeList.FirstOrDefault(s => s.PurchaserId == purchaser.Id);
// if (deleteScheme != null)
// sku.PurchaseSchemeList.Remove(deleteScheme);
// }
// product.PurchaserList.Remove(purchaser);
// }
// MessageBox.Show("采购商删除成功", "提示");
// });
// }
// else
// {
// App.Current.Dispatcher.BeginInvoke((Action)delegate
// {
// MessageBox.Show(response.Msg, "采购商删除");
// });
// }
// });
//}
private void AddScheme(Product product)
{
var productList = string.IsNullOrEmpty(productId) ? ProductList : ProductList.Where(p => p.Id == productId);
foreach (var product in productList)
{
product.PurchaserList.Clear();
foreach (var sku in product.SkuList)
{
if (sku.PurchaseSchemeList.Count() > 0)
{
foreach (var pscheme in sku.PurchaseSchemeList)
{
var purchaser = product.PurchaserList.FirstOrDefault(purchaser => purchaser.Id == pscheme.PurchaserId);
if (purchaser == null)
{
purchaser = new Purchaser()
{
Id = pscheme.PurchaserId,
Id2 = pscheme.PurchaserId2,
Name = pscheme.PurchaserName,
ProductId = product.Id
};
product.PurchaserList.Add(purchaser);
}
purchaser.SkuUseCount++;
}
}
}
}
}
private void AddPurchaser(Product product)
{
if (product.PurchaserList.Count >= 5)
{
MessageBox.Show("一个SPU内最多允许5个采购商");
return;
}
OpenBindingView(product, string.Empty, string.Empty, string.Empty);
OpenBindingView(product, string.Empty, null);
}
private void EditPurchaser(Purchaser purchaser)
private void EditScheme(PurchaseScheme purchaseScheme)
{
var product = ProductList.FirstOrDefault(p => p.Id == purchaser.ProductId);
OpenBindingView(product, purchaser.Id, purchaser.Id2, purchaser.Name);
var product = ProductList.FirstOrDefault(p => p.Id == purchaseScheme.ProductId);
OpenBindingView(product, purchaseScheme.SkuId, purchaseScheme.Id);
}
private void DeletePurchaser(Purchaser purchaser)
private void DeleteScheme(PurchaseScheme purchaseScheme)
{
if (MessageBox.Show("确认删除该采购商吗?", "提示", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
if (MessageBox.Show("确定删除该采购方案吗?", "提示", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
return;
IsLoading = true;
Task.Factory.StartNew(() =>
{
var response = purchaseService.DeletePurchaser(purchaser.ProductId, purchaser.Id);
IsLoading = false;
if (response.Success)
{
App.Current.Dispatcher.BeginInvoke((Action)delegate
{
var product = ProductList.FirstOrDefault(p => p.Id == purchaser.ProductId);
if (product != null)
Task.Factory.StartNew(() => purchaseService.DeletePurchaseScheme(purchaseScheme.Id))
.ContinueWith(t =>
{
foreach (var sku in product.SkuList)
IsLoading = false;
var response = t.Result;
if (!response.Success)
{
var deleteScheme = sku.PurchaseSchemeList.FirstOrDefault(s => s.PurchaserId == purchaser.Id);
if (deleteScheme != null)
sku.PurchaseSchemeList.Remove(deleteScheme);
App.Current.Dispatcher.BeginInvoke((Action)delegate
{
MessageBox.Show(response.Msg, "删除采购方案");
});
return;
}
product.PurchaserList.Remove(purchaser);
}
MessageBox.Show("采购商删除成功", "提示");
});
}
else
{
App.Current.Dispatcher.BeginInvoke((Action)delegate
{
MessageBox.Show(response.Msg, "采购商删除");
});
}
});
App.Current.Dispatcher.Invoke(() =>
{
var product = ProductList.FirstOrDefault(p => p.Id == purchaseScheme.ProductId);
if (product != null)
{
var sku = product.SkuList.FirstOrDefault(s => s.Id == purchaseScheme.SkuId);
if (sku != null)
{
sku.PurchaseSchemeList.Remove(purchaseScheme);
}
}
MessageBox.Show("采购方案删除成功", "提示");
});
});
}
private void OpenBindingView(Product product, string purchaserId, string purchaserId2, string purchaserName)
private void OpenBindingView(Product product, string skuId, long? schemeId)
{
var skuList = product.SkuList;
bindingPurchaseProduct.SetData(skuList, purchaserId, purchaserId2, purchaserName, product.SelectedPurchasePlatformModel);
var bindingView = new BindingPurchaseProduct();
var skuList = string.IsNullOrEmpty(skuId) ? product.SkuList : product.SkuList.Where(s => s.Id == skuId).ToList();
//bindingPurchaseProduct.SetData(skuList, purchaserId, purchaserId2, purchaserName, product.SelectedPurchasePlatformModel);
//bindingPurchaseProduct.SetData();
var bindingView = new BindingPurchaseProduct(skuList, schemeId);
var r = bindingView.ShowDialog();
if (r == true)
{
@ -328,7 +384,7 @@ namespace BBWYB.Client.ViewModels
IsLoading = false;
App.Current.Dispatcher.BeginInvoke((Action)delegate
{
ExtractPurchaser(product.Id);
//ExtractPurchaser(product.Id);
});
});
}
@ -345,7 +401,7 @@ namespace BBWYB.Client.ViewModels
Task.Factory.StartNew(() => LoadPurchaseScheme(product.SkuList, platform))
.ContinueWith(t =>
{
App.Current.Dispatcher.Invoke(() => ExtractPurchaser(productId));
//App.Current.Dispatcher.Invoke(() => ExtractPurchaser(productId));
IsLoading = false;
});
}

2
BBWYB.Client/Views/Ware/BindingPurchaseProduct.xaml

@ -25,7 +25,7 @@
<RowDefinition Height="40"/>
</Grid.RowDefinitions>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
<Run Text="{Binding PurchaserName}"/>
<Run Text="{Binding SchemeId}"/>
<Run Text="绑定采购商品"/>
</TextBlock>
<ListBox x:Name="listbox_skuList" ItemsSource="{Binding ProductSkuList}"

19
BBWYB.Client/Views/Ware/BindingPurchaseProduct.xaml.cs

@ -1,6 +1,9 @@
using CommunityToolkit.Mvvm.Messaging;
using BBWYB.Client.Models;
using BBWYB.Client.ViewModels;
using CommunityToolkit.Mvvm.Messaging;
using CommunityToolkit.Mvvm.Messaging.Messages;
using SJ.Controls;
using System.Collections.Generic;
using System.Windows;
namespace BBWYB.Client.Views.Ware
@ -10,18 +13,12 @@ namespace BBWYB.Client.Views.Ware
/// </summary>
public partial class BindingPurchaseProduct : BWindow
{
public BindingPurchaseProduct()
private BindingPurchaseProductViewModel bindingVM;
public BindingPurchaseProduct(IList<ProductSku> productSkuList, long? schemeId)
{
InitializeComponent();
//Messenger.Default.Register<bool>(this, "BindingPurchaseProduct_Close", (x) =>
// {
// this.Dispatcher.Invoke(() =>
// {
// this.DialogResult = x;
// this.Close();
// });
// });
bindingVM = this.DataContext as BindingPurchaseProductViewModel;
bindingVM.SetData(productSkuList, schemeId);
WeakReferenceMessenger.Default.Register<Message_BindingPurchaseProductClose>(this, (o, x) =>
{
this.Dispatcher.Invoke(() =>

57
BBWYB.Client/Views/Ware/WareManager.xaml

@ -42,7 +42,7 @@
<c:BButton Content="搜索" Padding="10,0" Margin="5,0,0,0"
Command="{Binding SearchCommand}"/>
</StackPanel>
<Border Grid.Row="2" BorderBrush="{StaticResource Border.Brush}" BorderThickness="1,1,1,0"
Background="#F2F2F2">
<Grid>
@ -79,7 +79,7 @@
</Grid>
</Border>
<ListBox x:Name="listbox_productList"
Grid.Row="3"
ItemsSource="{Binding ProductList}"
@ -94,10 +94,10 @@
<RowDefinition Height="30"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<!--<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="280"/>
</Grid.ColumnDefinitions>
</Grid.ColumnDefinitions>-->
<Grid Background="#F2F2F2" Grid.ColumnSpan="2">
<StackPanel Orientation="Horizontal">
@ -110,8 +110,11 @@
<Run Text="{Binding ProductItemNum}"/>
</TextBlock>
</StackPanel>
<c:BButton HorizontalAlignment="Right" Content="添加采购商" Width="110"
Command="{Binding DataContext.AddPurchaserCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}" CommandParameter="{Binding }"/>
<!--<c:BButton HorizontalAlignment="Right" Content="添加采购商" Width="110"
Command="{Binding DataContext.AddPurchaserCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}" CommandParameter="{Binding }"/>-->
<c:BButton HorizontalAlignment="Right" Content="添加采购方案" Width="110"
Command="{Binding DataContext.AddSchemeCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}" CommandParameter="{Binding }"/>
</Grid>
<ListBox x:Name="listbox_sku" Grid.Row="1" ItemsSource="{Binding SkuList}"
@ -126,7 +129,7 @@
Width="{Binding ActualWidth,ElementName=listbox_sku}">
<Grid Height="150">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300"/>
<ColumnDefinition Width="299"/>
<ColumnDefinition Width="80"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
@ -177,6 +180,8 @@
<ColumnDefinition Width="0.15*"/>
<ColumnDefinition Width="0.1*"/>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="170"/>
<ColumnDefinition Width="110"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding PurchaseProductId1}" Style="{StaticResource middleTextBlock}"/>
<TextBlock Grid.Column="1" Style="{StaticResource middleTextBlock}"
@ -208,6 +213,34 @@
<!--毛利率-->
</Border>
<TextBlock Grid.Column="9" Style="{StaticResource middleTextBlock}"
Text="{Binding PurchaserName}">
<TextBlock.ToolTip>
<ToolTip Style="{StaticResource OrderCouponToolipStyle}">
<ListBox Style="{StaticResource NoScrollViewListBoxStyle}"
ItemsSource="{Binding PurchaserList}"
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}"
Foreground="{StaticResource Text.Color}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ToolTip>
</TextBlock.ToolTip>
</TextBlock>
<StackPanel Orientation="Horizontal" Grid.Column="10"
HorizontalAlignment="Center">
<c:BButton Style="{StaticResource LinkButton}"
Content="编辑"
Command="{Binding DataContext.EditSchemeCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Page}}}" CommandParameter="{Binding }"/>
<c:BButton Style="{StaticResource LinkButton}"
Content="删除" Margin="10,0,0,0"
Command="{Binding DataContext.DeleteSchemeCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Page}}}" CommandParameter="{Binding }"/>
</StackPanel>
<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"/>
@ -216,7 +249,9 @@
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="5"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="6"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="7"/>
<Border Height="1" Grid.ColumnSpan="9" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="8"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="9"/>
<Border Height="1" Grid.ColumnSpan="11" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
@ -269,7 +304,7 @@
</ListBox.ItemTemplate>
</ListBox>
<ListBox x:Name="listbox_purchaser" ItemsSource="{Binding PurchaserList}"
<!--<ListBox x:Name="listbox_purchaser" ItemsSource="{Binding PurchaserList}"
Grid.Row="1" Grid.Column="1"
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}"
Style="{StaticResource NoScrollViewListBoxStyle}"
@ -310,13 +345,13 @@
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ListBox>-->
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<c:PageControl PageIndex="{Binding PageIndex}"
PageSize="5"
RecordCount="{Binding ProductCount}"

4
BBWYB.Client/appsettings.json

@ -1,6 +1,6 @@
{
// "BBWYApiHost": "http://localhost:5000",
"BBWYApiHost": "http://bbwyb.qiyue666.com",
"BBWYApiHost": "http://localhost:5000",
//"BBWYApiHost": "http://bbwyb.qiyue666.com",
"MDSApiHost": "http://mdsapi.qiyue666.com",
"BBWYCApiHost": "http://bbwytest.qiyue666.com",
"QKApiHost": "http://localhost:8080"

9
BBWYB.Server.API/Controllers/DataRepairController.cs

@ -25,15 +25,6 @@ namespace BBWYB.Server.API.Controllers
dataRepairBusiness.SubscribeKD100(waybillNo, targetCompanyCode);
}
/// <summary>
/// 修复采购商信息
/// </summary>
[HttpPost]
public void SupplementPurchaserInfo()
{
dataRepairBusiness.SupplementPurchaserInfo();
}
/// <summary>
/// 修复订单Sku成本
/// </summary>

38
BBWYB.Server.API/Controllers/PurchaseSchemeController.cs

@ -38,15 +38,15 @@ namespace BBWYB.Server.API.Controllers
return purchaseSchemeBusiness.GetPurchaseSchemeList(querySchemeRequest);
}
/// <summary>
/// 删除采购商
/// </summary>
/// <param name="deletePurchaseSchemeRequest"></param>
[HttpDelete]
public void DeletePurchaser([FromBody] DeletePurchaseSchemeRequest deletePurchaseSchemeRequest)
{
purchaseSchemeBusiness.DeletePurchaser(deletePurchaseSchemeRequest);
}
///// <summary>
///// 删除采购商
///// </summary>
///// <param name="deletePurchaseSchemeRequest"></param>
//[HttpDelete]
//public void DeletePurchaser([FromBody] DeletePurchaseSchemeRequest deletePurchaseSchemeRequest)
//{
// purchaseSchemeBusiness.DeletePurchaser(deletePurchaseSchemeRequest);
//}
/// <summary>
/// 删除采购方案
@ -58,16 +58,16 @@ namespace BBWYB.Server.API.Controllers
purchaseSchemeBusiness.DeletePurchaseScheme(schemeId);
}
/// <summary>
/// 查询共有采购商
/// </summary>
/// <param name="querySchemeRequest"></param>
/// <returns></returns>
[HttpPost]
public IList<Purchaser> GetSharePurchaser([FromBody] QuerySchemeRequest querySchemeRequest)
{
return purchaseSchemeBusiness.GetSharePurchaser(querySchemeRequest);
}
///// <summary>
///// 查询共有采购商
///// </summary>
///// <param name="querySchemeRequest"></param>
///// <returns></returns>
//[HttpPost]
//public IList<Purchaser> GetSharePurchaser([FromBody] QuerySchemeRequest querySchemeRequest)
//{
// return purchaseSchemeBusiness.GetSharePurchaser(querySchemeRequest);
//}
/// <summary>
/// 查询采购方案中采购Sku的基本信息

67
BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs

@ -38,73 +38,6 @@ namespace BBWYB.Server.Business
purchaseOrderBusiness.OnSomeOnePurchaseOrderChanged(pid, false);
}
public void SupplementPurchaserInfo()
{
var purlList = fsql.Select<PurchaseSchemeProduct, PurchaseScheme, Purchaser>()
.InnerJoin((psp, ps, p) => psp.SkuPurchaseSchemeId == ps.Id)
.InnerJoin((psp, ps, p) => ps.PurchaserId == p.Id)
.Where((psp, ps, p) => ps.PurchasePlatform == Enums.Platform. && string.IsNullOrEmpty(p.Id2))
.ToList((psp, ps, p) => new
{
//psp.PurchaseUrl,
psp.PurchaseProductId,
p.Id
});
var groups = purlList.GroupBy(p => p.Id);
Console.WriteLine(groups.Count());
IList<IUpdate<Purchaser>> updatePurchaserList = new List<IUpdate<Purchaser>>();
int i = 1;
foreach (var group in groups)
{
var purchaseId = group.Key;
var productId = group.Max(p => p.PurchaseProductId);
Thread.Sleep(1000);
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine($"index {i}");
Console.ResetColor();
Console.WriteLine();
var response = purchaseSchemeBusiness.GetPurchaseSkuBasicInfo(new PurchaseSkuBasicInfoRequest()
{
FirstApiMode = Enums.PurchaseProductAPIMode.Spider,
Platform = Enums.Platform.,
PriceMode = Enums.PurchaseOrderMode.,
PurchaseProductId = productId
});
if (!string.IsNullOrEmpty(response?.Purchaser?.Id2))
{
if (response.Purchaser.Id2.Length > 20)
Console.WriteLine(response.Purchaser.Id2);
var update = fsql.Update<Purchaser>(purchaseId).Set(p => p.Id2, response.Purchaser.Id2);
updatePurchaserList.Add(update);
}
i++;
if (updatePurchaserList.Count >= 10)
{
fsql.Transaction(() =>
{
foreach (var update in updatePurchaserList)
update.ExecuteAffrows();
});
updatePurchaserList.Clear();
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("更新数据库更新");
Console.ResetColor();
Console.WriteLine();
}
}
if (updatePurchaserList.Count() > 0)
{
fsql.Transaction(() =>
{
foreach (var update in updatePurchaserList)
update.ExecuteAffrows();
});
}
}
public void SupplementOrderSkuCost()
{

205
BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -36,6 +36,7 @@ namespace BBWYB.Server.Business
private Lazy<JDBusiness> jdBusinessLazy;
private Lazy<OP_PlatformClientFactory> opPlatformClientFactoryLazy;
private Lazy<VenderBusiness> venderBusinessLazy;
private Lazy<PurchaseSchemeBusiness> purchaseSchemeBusinessLazy;
private PP_PlatformClientFactory ppPlatformClientFactory => pplatformClientFactoryLazy.Value;
private TaskSchedulerManager taskSchedulerManager => taskSchedulerManagerLazy.Value;
@ -50,6 +51,8 @@ namespace BBWYB.Server.Business
private JDBusiness jdBusiness => jdBusinessLazy.Value;
private PurchaseSchemeBusiness purchaseSchemeBusiness => purchaseSchemeBusinessLazy.Value;
private IList<Enums.OrderState> cantPurchaseOrderStateList;
public PurchaseOrderBusiness(IFreeSql fsql,
@ -68,6 +71,7 @@ namespace BBWYB.Server.Business
jdBusinessLazy = new Lazy<JDBusiness>(() => serviceProvider.GetService<JDBusiness>());
opPlatformClientFactoryLazy = new Lazy<OP_PlatformClientFactory>(() => serviceProvider.GetService<OP_PlatformClientFactory>());
venderBusinessLazy = new Lazy<VenderBusiness>(() => serviceProvider.GetService<VenderBusiness>());
purchaseSchemeBusinessLazy = new Lazy<PurchaseSchemeBusiness>(() => serviceProvider.GetService<PurchaseSchemeBusiness>());
cantPurchaseOrderStateList = new List<Enums.OrderState>()
{
Enums.OrderState.,
@ -745,12 +749,13 @@ namespace BBWYB.Server.Business
{
if (purchaseOrder.PurchasePlatform == Enums.Platform.)
{
#region 补齐采购SKU
#region 补齐采购SKU和采购关系
var purchaseAccount = dbPurchaseAccountList.FirstOrDefault(pa => pa.Id == purchaseOrder.PurchaseAccountId ||
pa.AccountName == purchaseOrder.PurchaseAccountName);
if (purchaseAccount == null)
throw new BusinessException($"采购单{purchaseOrder.PurchaseOrderId}缺少有效的采购账号");
#region 查询1688采购单
var client = ppPlatformClientFactory.GetClient((AdapterEnums.PlatformType)purchaseOrder.PurchasePlatform);
var purchaseOrderSimpleInfo = client.QueryOrderDetail(new PP_QueryOrderDetailRequest()
{
@ -759,6 +764,7 @@ namespace BBWYB.Server.Business
AppToken = purchaseAccount.AppToken,
OrderId = purchaseOrder.PurchaseOrderId
});
#endregion
#region 处理采购商Id
var purchaserId = purchaseOrderSimpleInfo.PurchaserId;
@ -778,58 +784,29 @@ namespace BBWYB.Server.Business
#region 匹配采购方案
var skuIds = purchaseOrder.AssocationOrderCostDetailList.Select(ocd => ocd.SkuId).ToList();
var purchaseSchemeSkuList = fsql.Select<Purchaser, PurchaseScheme, PurchaseSchemeProductSku>()
.InnerJoin((p, ps, pss) => p.Id == ps.PurchaserId)
.InnerJoin((p, ps, pss) => ps.Id == pss.SkuPurchaseSchemeId)
.Where((p, ps, pss) => p.Id == purchaserId)
.Where((p, ps, pss) => ps.PurchasePlatform == Enums.Platform.)
.Where((p, ps, pss) => skuIds.Contains(pss.SkuId))
.ToList((p, ps, pss) => new
{
pss.Id,
pss.SkuId,
pss.ProductId,
pss.PurchaseProductId,
pss.PurchaseSkuId,
pss.PurchaseSkuSpecId,
pss.SkuPurchaseSchemeId
});
if (purchaseSchemeSkuList.Count() == 0)
throw new BusinessException($"采购单{purchaseOrder.PurchaseOrderId} 采购商Id{purchaserId} 未匹配到采购方案");
#endregion
foreach (var purchaseOrderSku in purchaseOrderSimpleInfo.ItemList)
var purchaseSchemeList = purchaseSchemeBusiness.GetPurchaseSchemeList(new QuerySchemeRequest()
{
var orderPurchaseSkuInfo = new OrderPurchaseSkuInfo()
{
Id = purchaseOrderSku.OrderSkuId,
CreateTime = DateTime.Now,
OrderId = request.OrderId,
PurchaseOrderId = purchaseOrder.PurchaseOrderId,
PurchaseProductId = purchaseOrderSku.ProductId,
PurchaseSkuId = purchaseOrderSku.SkuId,
ShopId = request.ShopId
};
insertOrderPurchaseSkuInfoList.Add(orderPurchaseSkuInfo);
}
ShopId = dbOrder.ShopId,
SkuIdList = skuIds
});
if (purchaseSchemeList.Count() == 0)
throw new BusinessException($"采购单{purchaseOrder.PurchaseOrderId} 采购商Id{purchaserId} 未匹配到采购方案");
#endregion
#region 补齐采购关系
foreach (var assOrderCostDetail in purchaseOrder.AssocationOrderCostDetailList)
{
var currentPurchaseSchemeSkuList = purchaseSchemeSkuList.Where(x => x.SkuId == assOrderCostDetail.SkuId).ToList();
if (currentPurchaseSchemeSkuList == null || currentPurchaseSchemeSkuList.Count() == 0)
var matchResultList = MatchPurchaseScheme(assOrderCostDetail.SkuId,
assOrderCostDetail.PurchaseQuantity,
purchaserId,
purchaseSchemeList,
purchaseOrderSimpleInfo);
if (matchResultList.Count() == 0)
throw new BusinessException($"采购单{purchaseOrder.PurchaseOrderId} 采购商Id {purchaserId} Sku{assOrderCostDetail.SkuId}缺少采购方案");
var dbOrderSku = dbOrderSkuList.FirstOrDefault(osku => osku.SkuId == assOrderCostDetail.SkuId);
foreach (var currentPurchaseSchemeSku in currentPurchaseSchemeSkuList)
foreach (var cargoParam in matchResultList)
{
var purchaseSkuFromApi = purchaseOrderSimpleInfo.ItemList.FirstOrDefault(x => x.SkuId == currentPurchaseSchemeSku.PurchaseSkuId);
if (purchaseSkuFromApi == null)
{
throw new BusinessException($"Sku{assOrderCostDetail.SkuId}使用了采购方案{currentPurchaseSchemeSku.SkuPurchaseSchemeId}下的采购Sku{currentPurchaseSchemeSku.PurchaseSkuId},而且在采购单{purchaseOrder.PurchaseOrderId}的商品明细中没有找到该采购sku");
}
var dbOrderSku = dbOrderSkuList.FirstOrDefault(osku => osku.SkuId == assOrderCostDetail.SkuId);
var orderPurchaseRelationInfo = new OrderPurchaseRelationInfo()
{
Id = idGenerator.NewLong(),
@ -837,16 +814,37 @@ namespace BBWYB.Server.Business
CreateTime = DateTime.Now,
OrderId = assOrderCostDetail.OrderId,
PurchaseOrderId = purchaseOrder.PurchaseOrderId,
PurchaseSkuId = currentPurchaseSchemeSku.PurchaseSkuId,
PurchaseProductId = currentPurchaseSchemeSku.PurchaseProductId,
PurchaseSpecId = currentPurchaseSchemeSku.PurchaseSkuSpecId,
SchemeId = currentPurchaseSchemeSku.SkuPurchaseSchemeId,
PurchaseSkuId = cargoParam.SkuId,
PurchaseProductId = cargoParam.ProductId,
PurchaseSpecId = cargoParam.SpecId,
SchemeId = cargoParam.SchemeId,
Quantity = assOrderCostDetail.PurchaseQuantity,
SourceSkuId = dbOrderSku.BelongSkuId
};
insertOrderPurchaseRelationInfoList.Add(orderPurchaseRelationInfo);
}
}
#region 补齐采购SKU
foreach (var purchaseOrderSku in purchaseOrderSimpleInfo.ItemList)
{
var orderPurchaseSkuInfo = new OrderPurchaseSkuInfo()
{
Id = purchaseOrderSku.OrderSkuId,
CreateTime = DateTime.Now,
OrderId = request.OrderId,
PurchaseOrderId = purchaseOrder.PurchaseOrderId,
PurchaseProductId = purchaseOrderSku.ProductId,
PurchaseSkuId = purchaseOrderSku.SkuId,
ShopId = request.ShopId
};
insertOrderPurchaseSkuInfoList.Add(orderPurchaseSkuInfo);
}
#endregion
#endregion
#endregion
}
@ -1113,6 +1111,10 @@ namespace BBWYB.Server.Business
if (request.PurchasePlatform != Enums.Platform.)
return null;
var order = fsql.Select<Order>(request.OrderId).ToOne();
if (order == null)
throw new BusinessException("订单不存在");
var client = ppPlatformClientFactory.GetClient((AdapterEnums.PlatformType)request.PurchasePlatform);
var purchaseOrderSimpleInfo = client.QueryOrderDetail(new PP_QueryOrderDetailRequest()
{
@ -1143,46 +1145,28 @@ namespace BBWYB.Server.Business
#region 查询订单sku所有采购方案
var skuIds = dbOrderSkuList.Select(osku => osku.SkuId).ToList();
var purchaseSchemeSkuList = fsql.Select<Purchaser, PurchaseScheme, PurchaseSchemeProductSku>()
.InnerJoin((p, ps, pss) => p.Id == ps.PurchaserId)
.InnerJoin((p, ps, pss) => ps.Id == pss.SkuPurchaseSchemeId)
.Where((p, ps, pss) => p.Id == purchaserId)
.Where((p, ps, pss) => ps.PurchasePlatform == Enums.Platform.)
.Where((p, ps, pss) => skuIds.Contains(pss.SkuId))
.ToList((p, ps, pss) => new
{
pss.Id,
pss.SkuId,
pss.ProductId,
pss.PurchaseProductId,
pss.PurchaseSkuId,
pss.PurchaseSkuSpecId,
pss.SkuPurchaseSchemeId
});
if (purchaseSchemeSkuList.Count() == 0)
throw new BusinessException($"采购单{request.PurchaseOrderId} 采购商Id{purchaserId} 未匹配到采购方案");
var purchaseSchemeList = purchaseSchemeBusiness.GetPurchaseSchemeList(new QuerySchemeRequest()
{
ShopId = order.ShopId,
SkuIdList = skuIds
});
if (purchaseSchemeList.Count() == 0)
throw new BusinessException("未匹配到采购方案");
#endregion
#region 匹配采购单所使用到的采购方案
var assocationOrderCostDetailList = new List<AssocationOrderCostDetailResponse>();
var purchaseSchemeGroups = purchaseSchemeSkuList.GroupBy(s => s.SkuPurchaseSchemeId);
var cargoParamList = new List<CargoParamRequest>();
foreach (var schemeGroup in purchaseSchemeGroups)
foreach (var orderSku in dbOrderSkuList)
{
var schemePurchaseSkuList = schemeGroup.ToList();
if (schemePurchaseSkuList.Any(psku => purchaseOrderSimpleInfo.ItemList.Count(x => x.SkuId == psku.PurchaseSkuId) == 0))
continue;
cargoParamList.AddRange(schemePurchaseSkuList.Select(x => new CargoParamRequest()
{
BelongSkuId = x.SkuId,
ProductId = x.PurchaseProductId,
SkuId = x.PurchaseSkuId,
Quantity = dbOrderSkuList.FirstOrDefault(s => s.SkuId == x.SkuId)?.ItemTotal ?? 1,
SchemeId = x.SkuPurchaseSchemeId,
SpecId = x.PurchaseSkuSpecId
}));
var matchResultList = MatchPurchaseScheme(orderSku.SkuId, orderSku.ItemTotal ?? 1, purchaserId, purchaseSchemeList, purchaseOrderSimpleInfo);
if (matchResultList.Count() > 0)
cargoParamList.AddRange(matchResultList);
}
if (cargoParamList.Count() == 0)
throw new BusinessException("未匹配到采购方案");
var assocationOrderCostDetailList = new List<AssocationOrderCostDetailResponse>();
var belongSkuGroups = cargoParamList.GroupBy(p => p.BelongSkuId);
var purchaseSkuTotalQuantity = cargoParamList.Sum(x => x.Quantity);
foreach (var belongSkuGroup in belongSkuGroups)
@ -1199,8 +1183,6 @@ namespace BBWYB.Server.Business
{
var currentPurchaseSkuProductAmount = purchaseOrderSimpleInfo.ItemList.Where(p => p.SkuId == currentOrderSkuCargo.SkuId)
.Sum(p => p.ProductAmount);
//var currentPurchaseSkuTotalQuantity = purchaseOrderSimpleInfo.ItemList.Where(p => p.SkuId == currentOrderSkuCargo.SkuId)
// .Sum(p => p.Quantity);
var currentPurchaseSkuTotalQuantity = cargoParamList.Where(p => p.SkuId == currentOrderSkuCargo.SkuId)
.Sum(p => p.Quantity);
@ -2611,7 +2593,7 @@ namespace BBWYB.Server.Business
if (order.IntoStoreType == Enums.IntoStoreType. &&
state == "QianShou" &&
order.OrderState == Enums.OrderState. &&
inStoreOrderCheckTaskList != null &&
inStoreOrderCheckTaskList != null &&
!inStoreOrderCheckTaskList.Any(x => x.OrderId == order.Id))
{
insertInStoreOrderCheckTaskList.Add(new InStoreOrderCheckTask()
@ -2978,5 +2960,60 @@ namespace BBWYB.Server.Business
}
}
/// <summary>
/// 匹配采购方案
/// </summary>
/// <param name="skuId"></param>
/// <param name="itemTotal"></param>
/// <param name="purchaserId"></param>
/// <param name="purchaseSchemeList"></param>
/// <param name="purchaseOrderSimpleInfo"></param>
/// <returns></returns>
private IList<CargoParamRequest> MatchPurchaseScheme(string skuId,
int itemTotal,
string purchaserId,
IList<PurchaseSchemeResponse> purchaseSchemeList,
PP_QueryOrderDetailResponse purchaseOrderSimpleInfo)
{
List<CargoParamRequest> cargoParamList = new List<CargoParamRequest>();
var currentSkuSchemeList = purchaseSchemeList.Where(ps => ps.SkuId == skuId).ToList();
if (currentSkuSchemeList.Count() > 0)
{
foreach (var scheme in currentSkuSchemeList)
{
var samePurchaserProductList = scheme.PurchaseSchemeProductList.Where(psp => psp.PurchaserId == purchaserId).ToList();
if (samePurchaserProductList.Count() == 0)
continue;
bool isMatch = true;
foreach (var schemeProduct in samePurchaserProductList)
{
if (schemeProduct.PurchaseSchemeProductSkuList.Any(pss => purchaseOrderSimpleInfo.ItemList.Count(x => x.SkuId == pss.PurchaseSkuId) == 0))
{
isMatch = false;
break;
}
}
if (isMatch)
{
foreach (var schemeProduct in samePurchaserProductList)
{
cargoParamList.AddRange(schemeProduct.PurchaseSchemeProductSkuList.Select(pss => new CargoParamRequest()
{
BelongSkuId = pss.SkuId,
ProductId = pss.PurchaseProductId,
SkuId = pss.PurchaseSkuId,
SchemeId = pss.SkuPurchaseSchemeId,
SpecId = pss.PurchaseSkuSpecId,
Quantity = (itemTotal * pss.PurchaseRatio) ?? 1
}));
}
break;
}
}
}
return cargoParamList;
}
}
}

92
BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs

@ -124,6 +124,12 @@ namespace BBWYB.Server.Business
}
#endregion
foreach (var purchaseProductSku in addPurchaseSchemeProductSkuList)
{
if (purchaseProductSku.PurchaseRatio == null)
purchaseProductSku.PurchaseRatio = 1;
}
fsql.Transaction(() =>
{
if (newPurchaserList.Count > 0)
@ -148,24 +154,32 @@ namespace BBWYB.Server.Business
}
/// <summary>
/// 获取采购方案(不含采购配配件基本信息)
/// 获取采购方案
/// </summary>
/// <param name="querySchemeRequest"></param>
/// <returns></returns>
public IList<PurchaseSchemeResponse> GetPurchaseSchemeList(QuerySchemeRequest querySchemeRequest)
public IList<PurchaseSchemeResponse> GetPurchaseSchemeList(QuerySchemeRequest request)
{
var select = fsql.Select<PurchaseScheme>();
if (querySchemeRequest.SchemeId != null && querySchemeRequest.SchemeId != 0)
select = select.Where(ps => ps.Id == querySchemeRequest.SchemeId);
else if (querySchemeRequest.SchemeIdList != null && querySchemeRequest.SchemeIdList.Count() > 0)
select = select.Where(ps => querySchemeRequest.SchemeIdList.Contains(ps.Id));
if (request.SchemeId != null && request.SchemeId != 0)
select = select.Where(ps => ps.Id == request.SchemeId);
else if (request.SchemeIdList != null && request.SchemeIdList.Count() > 0)
select = select.Where(ps => request.SchemeIdList.Contains(ps.Id));
else
{
select = select.WhereIf(querySchemeRequest.ShopId != null && querySchemeRequest.ShopId != 0, ps => ps.ShopId == querySchemeRequest.ShopId)
.WhereIf(querySchemeRequest.SkuIdList != null && querySchemeRequest.SkuIdList.Count() > 0, ps => querySchemeRequest.SkuIdList.Contains(ps.SkuId));
//.WhereIf(querySchemeRequest.PurchasePlatform != null, ps => ps.PurchasePlatform == querySchemeRequest.PurchasePlatform);
}
select = select.WhereIf(request.ShopId != null && request.ShopId != 0, ps => ps.ShopId == request.ShopId)
.WhereIf(request.SkuIdList != null && request.SkuIdList.Count() > 0, ps => request.SkuIdList.Contains(ps.SkuId));
if (request.PurchasePlatform != null || !string.IsNullOrEmpty(request.PurchaserId))
{
select = select.Where(ps => fsql.Select<PurchaseSchemeProduct, Purchaser>()
.InnerJoin((psp, p) => psp.PurchaserId == p.Id)
.WhereIf(request.PurchasePlatform != null, (psp, p) => p.Platform == request.PurchasePlatform)
.WhereIf(!string.IsNullOrEmpty(request.PurchaserId), (psp, p) => psp.PurchaserId == request.PurchaserId)
.Where((psp, p) => psp.SkuPurchaseSchemeId == ps.Id).Any());
}
}
var sql = select.ToSql();
var purchaseSchemeList = select.ToList<PurchaseSchemeResponse>();
@ -226,6 +240,42 @@ namespace BBWYB.Server.Business
}
}
#endregion
#region 获取采购方案基本信息
if (request.IncludePurchaseSkuBasicInfo == 1)
{
foreach (var schemeProduct in schemeProductList)
{
try
{
var basicInfo = GetPurchaseSkuBasicInfo(new PurchaseSkuBasicInfoRequest()
{
FirstApiMode = Enums.PurchaseProductAPIMode.Spider,
PriceMode = Enums.PurchaseOrderMode.,
Platform = schemeProduct.PurchasePlatform ?? Enums.Platform.,
PurchaseProductId = schemeProduct.PurchaseProductId
});
if (basicInfo != null)
{
foreach (var schemeProductSku in schemeProduct.PurchaseSchemeProductSkuList)
{
var basicSku = basicInfo.ItemList.FirstOrDefault(x => x.PurchaseSkuId == schemeProductSku.PurchaseSkuId);
if (basicSku != null)
{
schemeProductSku.PurchaseSkuTitle = basicSku.Title;
schemeProductSku.PurchaseSkuPrice = basicSku.Price;
schemeProductSku.PurchaseSkuLogo = basicSku.Logo;
}
}
}
}
catch
{
}
}
}
#endregion
}
}
return purchaseSchemeList;
@ -316,18 +366,18 @@ namespace BBWYB.Server.Business
// return fsql.Select<Purchaser>().Where(p => sharePurchaserIdList.Contains(p.Id)).ToList();
//}
public void DeletePurchaser(DeletePurchaseSchemeRequest deletePurchaseSchemeRequest)
{
var purchaseSchemeIdList = fsql.Select<PurchaseScheme>().Where(ps => ps.ProductId == deletePurchaseSchemeRequest.ProductId &&
ps.PurchaserId == deletePurchaseSchemeRequest.PurchaserId).ToList(ps => ps.Id);
//public void DeletePurchaser(DeletePurchaseSchemeRequest deletePurchaseSchemeRequest)
//{
// var purchaseSchemeIdList = fsql.Select<PurchaseScheme>().Where(ps => ps.ProductId == deletePurchaseSchemeRequest.ProductId &&
// ps.PurchaserId == deletePurchaseSchemeRequest.PurchaserId).ToList(ps => ps.Id);
fsql.Transaction(() =>
{
fsql.Delete<PurchaseScheme>(purchaseSchemeIdList).ExecuteAffrows();
fsql.Delete<PurchaseSchemeProduct>().Where(psp => purchaseSchemeIdList.Contains(psp.SkuPurchaseSchemeId)).ExecuteAffrows();
fsql.Delete<PurchaseSchemeProductSku>().Where(psps => purchaseSchemeIdList.Contains(psps.SkuPurchaseSchemeId)).ExecuteAffrows();
});
}
// fsql.Transaction(() =>
// {
// fsql.Delete<PurchaseScheme>(purchaseSchemeIdList).ExecuteAffrows();
// fsql.Delete<PurchaseSchemeProduct>().Where(psp => purchaseSchemeIdList.Contains(psp.SkuPurchaseSchemeId)).ExecuteAffrows();
// fsql.Delete<PurchaseSchemeProductSku>().Where(psps => purchaseSchemeIdList.Contains(psps.SkuPurchaseSchemeId)).ExecuteAffrows();
// });
//}
public void DeletePurchaseScheme(long schemeId)
{

5
BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductSkuRequest.cs

@ -21,5 +21,10 @@
/// 采购Ske SpecId (1688独有)
/// </summary>
public string PurchaseSkuSpecId { get; set; }
/// <summary>
/// 采购配比
/// </summary>
public int? PurchaseRatio { get; set; }
}
}

21
BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs

@ -18,14 +18,19 @@ namespace BBWYB.Server.Model.Dto
public IList<string> SkuIdList { get; set; }
///// <summary>
///// 采购商Id, 可空
///// </summary>
//public string PurchaserId { get; set; }
/// <summary>
/// 采购商Id, 只要其中一个采购商品满足采购商条件则命中查询
/// </summary>
public string PurchaserId { get; set; }
///// <summary>
///// 采购平台
///// </summary>
//public Enums.Platform? PurchasePlatform { get; set; }
/// <summary>
/// 采购平台, 只要其中一个采购商品满足平台条件则命中查询
/// </summary>
public Enums.Platform? PurchasePlatform { get; set; }
/// <summary>
/// 是否包含采购配件的基本信息(单价,Logo,标题等) 是=1 否=0或null
/// </summary>
public int? IncludePurchaseSkuBasicInfo { get; set; }
}
}

6
BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs

@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace BBWYB.Server.Model.Dto
namespace BBWYB.Server.Model.Dto
{
public class PurchaseSchemeProductResponse : Model.Db.PurchaseSchemeProduct
{

21
BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductSkuResponse.cs

@ -1,10 +1,21 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace BBWYB.Server.Model.Dto
namespace BBWYB.Server.Model.Dto
{
public class PurchaseSchemeProductSkuResponse : Model.Db.PurchaseSchemeProductSku
{
/// <summary>
/// 采购SKU标题 仅在查询条件IncludePurchaseSkuBasicInfo=1时具备该值
/// </summary>
public string PurchaseSkuTitle { get; set; }
/// <summary>
/// 采购SKULogo 仅在查询条件IncludePurchaseSkuBasicInfo=1时具备该值
/// </summary>
public string PurchaseSkuLogo { get; set; }
/// <summary>
/// 采购SKU单价 仅在查询条件IncludePurchaseSkuBasicInfo=1时具备该值
/// </summary>
public decimal? PurchaseSkuPrice { get; set; }
}
}

Loading…
Cancel
Save