From 628e502ecc35239697885df6ddf21057a45d1ff3 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Fri, 11 Aug 2023 01:08:31 +0800
Subject: [PATCH 1/9] =?UTF-8?q?1.=E7=BC=96=E8=BE=91/=E6=96=B0=E5=A2=9E?=
=?UTF-8?q?=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88=E6=8E=A5=E5=8F=A3=E6=94=AF?=
=?UTF-8?q?=E6=8C=81=E5=A4=9A=E5=95=86=E5=AE=B6=202.=E9=87=87=E8=B4=AD?=
=?UTF-8?q?=E6=96=B9=E6=A1=88=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E6=94=AF?=
=?UTF-8?q?=E6=8C=81=E5=A4=9A=E5=95=86=E5=AE=B6=EF=BC=8C=E9=87=87=E8=B4=AD?=
=?UTF-8?q?=E5=95=86=E5=93=81=E5=B1=82=E5=A2=9E=E5=8A=A0=E5=95=86=E5=AE=B6?=
=?UTF-8?q?=E4=BF=A1=E6=81=AF=EF=BC=8C=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88?=
=?UTF-8?q?=E5=B1=82=E5=A2=9E=E5=8A=A0=E5=95=86=E5=AE=B6=E5=88=97=E8=A1=A8?=
=?UTF-8?q?=E4=BF=A1=E6=81=AF=203.=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88?=
=?UTF-8?q?=E5=88=B7=E6=96=B0=E6=8E=A5=E5=8F=A3=E6=94=AF=E6=8C=81=E5=A4=9A?=
=?UTF-8?q?=E5=95=86=E5=AE=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/PurchaseSchemeController.cs | 2 +-
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 196 ++++++++++--------
BBWYB.Server.Model/BBWYB.Server.Model.csproj | 4 +
.../Db/PurchaseScheme/PurchaseScheme.cs | 14 +-
.../InputPurchaseSchemeProductRequest.cs | 30 ++-
.../InputPurchaseSchemeRequest.cs | 32 +--
.../PurchaseScheme/QuerySchemeRequest.cs | 16 +-
.../PurchaseSchemeProductResponse.cs | 8 +
.../PurchaseScheme/PurchaseSchemeResponse.cs | 9 +-
9 files changed, 187 insertions(+), 124 deletions(-)
diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
index 8e519e6..673114c 100644
--- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
@@ -28,7 +28,7 @@ namespace BBWYB.Server.API.Controllers
}
///
- /// 查询采购方案列表
+ /// 获取采购方案列表 (不含采购配配件基本信息)
///
///
///
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 2347173..c0a5923 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -20,35 +20,45 @@ namespace BBWYB.Server.Business
private void ExtractNewPurchaser(IList purchaserSchemeList, IList addPurchaserList) where T : InputPurchaseSchemeRequest
{
- var reqeustPurchaserIdList = purchaserSchemeList.Select(s => s.PurchaserId).Distinct().ToList();
+ List reqeustPurchaserIdList = new List();
+ foreach (var scheme in purchaserSchemeList)
+ reqeustPurchaserIdList.AddRange(scheme.PurchaseSchemeProductList.Select(p => p.PurchaserId));
+ reqeustPurchaserIdList = reqeustPurchaserIdList.Distinct().ToList();
+
+ //var reqeustPurchaserIdList = purchaserSchemeList.Select(s => s.PurchaserId).Distinct().ToList();
var existPurchaserIdList = fsql.Select().Where(p => reqeustPurchaserIdList.Contains(p.Id)).ToList(p => p.Id);
var newPurchaserIdList = reqeustPurchaserIdList.Except(existPurchaserIdList);
foreach (var scheme in purchaserSchemeList)
{
- if (newPurchaserIdList.Any(p => p == scheme.PurchaserId) && !addPurchaserList.Any(p => p.Id == scheme.PurchaserId))
+ foreach (var ps in scheme.PurchaseSchemeProductList)
{
- addPurchaserList.Add(new Purchaser()
+ if (newPurchaserIdList.Any(p => p == ps.PurchaserId) && !addPurchaserList.Any(p => p.Id == ps.PurchaserId))
{
- Id = scheme.PurchaserId,
- Id2 = scheme.PurchaserId2,
- Name = scheme.PurchaserName,
- Location = scheme.PurchaserLocation,
- Platform = scheme.PurchasePlatform
- });
+ addPurchaserList.Add(new Purchaser()
+ {
+ Id = ps.PurchaserId,
+ Id2 = ps.PurchaserId2,
+ Name = ps.PurchaserName,
+ Location = ps.PurchaserLocation,
+ Platform = scheme.PurchasePlatform
+ });
+ }
}
+
}
}
public void EditPurchaseScheme(BatchCURDSchemeRequest batchCURDSchemeRequest)
{
- if (batchCURDSchemeRequest.EditPurchaseSchemeList.Count == 0 && batchCURDSchemeRequest.AddPurchaseSchemeList.Count == 0)
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList.Count == 0 &&
+ batchCURDSchemeRequest.AddPurchaseSchemeList.Count == 0)
throw new BusinessException("非法参数");
- if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(p => string.IsNullOrEmpty(p.PurchaserId) ||
- string.IsNullOrEmpty(p.PurchaserName)))
+ if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
+ string.IsNullOrEmpty(pp.PurchaserName))))
throw new BusinessException("新增方案中有采购商Id/Name/Location为空");
- if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(p => string.IsNullOrEmpty(p.PurchaserId) ||
- string.IsNullOrEmpty(p.PurchaserName)))
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
+ string.IsNullOrEmpty(pp.PurchaserName))))
throw new BusinessException("编辑方案中有采购商Id/Name/Location为空");
List addPurchaseSchemeList = null;
@@ -138,48 +148,49 @@ namespace BBWYB.Server.Business
}
///
- /// 获取采购方案
+ /// 获取采购方案(不含采购配配件基本信息)
///
///
///
public IList GetPurchaseSchemeList(QuerySchemeRequest querySchemeRequest)
{
- var select = fsql.Select().InnerJoin((ps, p) => ps.PurchaserId == p.Id);
+ var select = fsql.Select();
if (querySchemeRequest.SchemeId != null && querySchemeRequest.SchemeId != 0)
- select = select.Where((ps, p) => ps.Id == querySchemeRequest.SchemeId);
+ select = select.Where(ps => ps.Id == querySchemeRequest.SchemeId);
else if (querySchemeRequest.SchemeIdList != null && querySchemeRequest.SchemeIdList.Count() > 0)
- select = select.Where((ps, p) => querySchemeRequest.SchemeIdList.Contains(ps.Id));
+ select = select.Where(ps => querySchemeRequest.SchemeIdList.Contains(ps.Id));
else
{
- select = select.WhereIf(querySchemeRequest.ShopId != null && querySchemeRequest.ShopId != 0, (ps, p) => ps.ShopId == querySchemeRequest.ShopId)
- .WhereIf(querySchemeRequest.SkuIdList != null && querySchemeRequest.SkuIdList.Count() > 0, (ps, p) => querySchemeRequest.SkuIdList.Contains(ps.SkuId))
- .WhereIf(!string.IsNullOrEmpty(querySchemeRequest.PurchaserId), (ps, p) => ps.PurchaserId == querySchemeRequest.PurchaserId)
- .WhereIf(querySchemeRequest.PurchasePlatform != null, (ps, p) => ps.PurchasePlatform == querySchemeRequest.PurchasePlatform);
+ 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);
}
- var purchaseSchemeList = select.ToList((ps, p) => new PurchaseSchemeResponse
- {
- Id = ps.Id,
- ProductId = ps.ProductId,
- SkuId = ps.SkuId,
- ShopId = ps.ShopId,
- PurchaserId = p.Id,
- PurchaserId2 = p.Id2,
- PurchaserName = p.Name,
- PurchaserLocation = p.Location,
- DefaultCost = ps.DefaultCost,
- RealCost = ps.RealCost,
- CreateTime = ps.CreateTime,
- PurchasePlatform = ps.PurchasePlatform,
- LastPurchaseTime = ps.LastPurchaseTime
- });
+ var purchaseSchemeList = select.ToList();
+
if (purchaseSchemeList.Count > 0)
{
var purchaseSchemeIdList = purchaseSchemeList.Select(p => p.Id).ToList();
- var purchaseSchemeProductList = fsql.Select().Where(p => purchaseSchemeIdList.Contains(p.SkuPurchaseSchemeId))
- .ToList().Map>();
+ var purchaseSchemeProductList = fsql.Select()
+ .InnerJoin((psp, p) => psp.PurchaserId == p.Id)
+ .Where((psp, p) => purchaseSchemeIdList.Contains(psp.SkuPurchaseSchemeId))
+ .ToList((psp, p) => new PurchaseSchemeProductResponse
+ {
+ CreateTime = psp.CreateTime,
+ Id = psp.Id,
+ ProductId = psp.ProductId,
+ PurchaseProductId = psp.PurchaseProductId,
+ PurchaseUrl = psp.PurchaseUrl,
+ SkuId = psp.SkuId,
+ SkuPurchaseSchemeId = psp.SkuPurchaseSchemeId,
+ PurchaserId = p.Id,
+ PurchaserId2 = p.Id2,
+ PurchaserLocation = p.Location,
+ PurchaserName = p.Name,
+ PurchasePlatform = p.Platform,
+ });
var purchaseSchemeProductSkuList = fsql.Select().Where(p => purchaseSchemeIdList.Contains(p.SkuPurchaseSchemeId))
.ToList().Map>();
@@ -198,6 +209,23 @@ namespace BBWYB.Server.Business
schemeProduct.PurchaseSchemeProductSkuList.AddRange(schemeProductSkuList);
}
}
+
+ #region 封装采购商
+ foreach (var schemeProduct in schemeProductList)
+ {
+ if (!scheme.PurchaserList.Any(p => p.Id == schemeProduct.PurchaserId))
+ {
+ scheme.PurchaserList.Add(new Purchaser()
+ {
+ Id = schemeProduct.PurchaserId,
+ Id2 = schemeProduct.PurchaserId2,
+ Location = schemeProduct.PurchaserLocation,
+ Name = schemeProduct.PurchaserName,
+ Platform = schemeProduct.PurchasePlatform
+ });
+ }
+ }
+ #endregion
}
}
return purchaseSchemeList;
@@ -212,29 +240,33 @@ namespace BBWYB.Server.Business
List> updatePurchaseSchemeList = new List>();
foreach (var purchaseScheme in purchaseSchemeList)
{
- var purchaseProductIds = purchaseScheme.PurchaseSchemeProductList.Select(p => p.PurchaseProductId).ToArray();
- var purchaseSkuIds = new List();
- foreach (var purchaseProduct in purchaseScheme.PurchaseSchemeProductList)
+ var amount = 0M;
+ var purchasePlatformGroups = purchaseScheme.PurchaseSchemeProductList.GroupBy(p => p.PurchasePlatform);
+ foreach (var purchasePlatformGroup in purchasePlatformGroups)
{
- purchaseSkuIds.AddRange(purchaseProduct.PurchaseSchemeProductSkuList.Select(ps => ps.PurchaseSkuId));
- }
-
- var purchaseSkuBasicInfoList = BatchGetPurchaseSkuBasicInfo(new BatchPurchaseSkuBasicInfoRequest()
- {
- FirstApiMode = Enums.PurchaseProductAPIMode.Spider,
- PriceMode = Enums.PurchaseOrderMode.批发,
- Params = new List()
+ var purchaseProductIds = purchasePlatformGroup.Select(p => p.PurchaseProductId).ToArray();
+ var purchaseSkuIds = new List();
+ foreach (var purchaseProduct in purchaseScheme.PurchaseSchemeProductList)
+ {
+ purchaseSkuIds.AddRange(purchaseProduct.PurchaseSchemeProductSkuList.Select(ps => ps.PurchaseSkuId));
+ }
+ var purchaseSkuBasicInfoList = BatchGetPurchaseSkuBasicInfo(new BatchPurchaseSkuBasicInfoRequest()
+ {
+ FirstApiMode = Enums.PurchaseProductAPIMode.Spider,
+ PriceMode = Enums.PurchaseOrderMode.批发,
+ Params = new List()
{
new BatchPurchaseSkuBasicInfoParamRequest()
{
- Platform = purchaseScheme.PurchasePlatform,
+ Platform = purchasePlatformGroup.Key.Value,
PurchaseProductIds = purchaseProductIds,
PurchaseSkuIds = purchaseSkuIds
}
}
- });
+ });
+ amount += purchaseSkuBasicInfoList.Sum(p => p.ItemList.Sum(s => s.Price));
+ }
- var amount = purchaseSkuBasicInfoList.Sum(p => p.ItemList.Sum(s => s.Price));
if (purchaseScheme.DefaultCost != amount)
{
purchaseScheme.DefaultCost = amount;
@@ -255,34 +287,34 @@ namespace BBWYB.Server.Business
return purchaseSchemeList;
}
- ///
- /// 获取共同拥有的采购商
- ///
- ///
- ///
- public IList GetSharePurchaser(QuerySchemeRequest querySchemeRequest)
- {
- var skuCount = querySchemeRequest.SkuIdList.Count();
-
- var purchaseSchemeList = fsql.Select().InnerJoin((ps, p) => ps.PurchaserId == p.Id)
- .Where((ps, p) => ps.ShopId == querySchemeRequest.ShopId)
- .Where((ps, p) => querySchemeRequest.SkuIdList.Contains(ps.SkuId))
- .ToList();
- if (purchaseSchemeList.Count() == 0)
- return null;
-
- var group = purchaseSchemeList.GroupBy(p => p.PurchaserId);
- var sharePurchaserIdList = new List();
- foreach (var g in group)
- {
- if (g.Count() == skuCount)
- sharePurchaserIdList.Add(g.Key);
- }
- if (sharePurchaserIdList.Count == 0)
- return null;
-
- return fsql.Select().Where(p => sharePurchaserIdList.Contains(p.Id)).ToList();
- }
+ /////
+ ///// 获取共同拥有的采购商
+ /////
+ /////
+ /////
+ //public IList GetSharePurchaser(QuerySchemeRequest querySchemeRequest)
+ //{
+ // var skuCount = querySchemeRequest.SkuIdList.Count();
+
+ // var purchaseSchemeList = fsql.Select().InnerJoin((ps, p) => ps.PurchaserId == p.Id)
+ // .Where((ps, p) => ps.ShopId == querySchemeRequest.ShopId)
+ // .Where((ps, p) => querySchemeRequest.SkuIdList.Contains(ps.SkuId))
+ // .ToList();
+ // if (purchaseSchemeList.Count() == 0)
+ // return null;
+
+ // var group = purchaseSchemeList.GroupBy(p => p.PurchaserId);
+ // var sharePurchaserIdList = new List();
+ // foreach (var g in group)
+ // {
+ // if (g.Count() == skuCount)
+ // sharePurchaserIdList.Add(g.Key);
+ // }
+ // if (sharePurchaserIdList.Count == 0)
+ // return null;
+
+ // return fsql.Select().Where(p => sharePurchaserIdList.Contains(p.Id)).ToList();
+ //}
public void DeletePurchaser(DeletePurchaseSchemeRequest deletePurchaseSchemeRequest)
{
diff --git a/BBWYB.Server.Model/BBWYB.Server.Model.csproj b/BBWYB.Server.Model/BBWYB.Server.Model.csproj
index a408f32..54ecedd 100644
--- a/BBWYB.Server.Model/BBWYB.Server.Model.csproj
+++ b/BBWYB.Server.Model/BBWYB.Server.Model.csproj
@@ -12,4 +12,8 @@
+
+
+
+
diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
index be1d49c..356d97b 100644
--- a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
+++ b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
@@ -29,11 +29,11 @@ namespace BBWYB.Server.Model
[Column(StringLength = 50, IsNullable = false)]
public string ProductId { get; set; }
- ///
- /// 采购商Id
- ///
- [Column(StringLength = 20)]
- public string PurchaserId { get; set; }
+ /////
+ ///// 采购商Id
+ /////
+ //[Column(StringLength = 20)]
+ //public string PurchaserId { get; set; }
///
/// 采购实际成本
@@ -51,8 +51,8 @@ namespace BBWYB.Server.Model
///
public DateTime? LastPurchaseTime { get; set; }
- [Column(MapType = typeof(int), DbType = "int(1)")]
- public Enums.Platform PurchasePlatform { get; set; }
+ //[Column(MapType = typeof(int), DbType = "int(1)")]
+ //public Enums.Platform PurchasePlatform { get; set; }
[Column(IsIgnore = true)]
public List PurchaseSchemeProductList { get; set; }
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs
index 3ffb384..b97b8da 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.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 InputPurchaseSchemeProductRequest
{
@@ -11,17 +7,37 @@ namespace BBWYB.Server.Model.Dto
///
public string ProductId { get; set; }
///
- /// 店铺商品Skull
+ /// 店铺商品SkuId
///
public string SkuId { get; set; }
///
- /// 采购商品id
+ /// 采购商品Id
///
public string PurchaseProductId { get; set; }
///
/// 采购链接
///
public string PurchaseUrl { get; set; }
+
+ ///
+ /// 采购商Id
+ ///
+ public string PurchaserId { get; set; }
+
+ ///
+ /// 采购商Id
+ ///
+ public string PurchaserId2 { get; set; }
+
+ ///
+ /// 采购商名称
+ ///
+ public string PurchaserName { get; set; }
+ ///
+ /// 采购商发货地
+ ///
+ public string PurchaserLocation { get; set; }
+
public IList PurchaseSchemeProductSkuList { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
index fda1121..b89d7e4 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
@@ -15,24 +15,24 @@ namespace BBWYB.Server.Model.Dto
/// 采购实际成本
///
public decimal? RealCost { get; set; }
- ///
- /// 采购商Id
- ///
- public string PurchaserId { get; set; }
+ /////
+ ///// 采购商Id
+ /////
+ //public string PurchaserId { get; set; }
- ///
- /// 采购商Id
- ///
- public string PurchaserId2 { get; set; }
+ /////
+ ///// 采购商Id
+ /////
+ //public string PurchaserId2 { get; set; }
- ///
- /// 采购商名称
- ///
- public string PurchaserName { get; set; }
- ///
- /// 采购商发货地
- ///
- public string PurchaserLocation { get; set; }
+ /////
+ ///// 采购商名称
+ /////
+ //public string PurchaserName { get; set; }
+ /////
+ ///// 采购商发货地
+ /////
+ //public string PurchaserLocation { get; set; }
///
/// 采购平台
///
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
index 59e2088..8924508 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
@@ -18,14 +18,14 @@ namespace BBWYB.Server.Model.Dto
public IList SkuIdList { get; set; }
- ///
- /// 采购商Id, 可空
- ///
- public string PurchaserId { get; set; }
+ /////
+ ///// 采购商Id, 可空
+ /////
+ //public string PurchaserId { get; set; }
- ///
- /// 采购平台
- ///
- public Enums.Platform? PurchasePlatform { get; set; }
+ /////
+ ///// 采购平台
+ /////
+ //public Enums.Platform? PurchasePlatform { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
index 0123956..288e9f2 100644
--- a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
@@ -6,6 +6,14 @@ namespace BBWYB.Server.Model.Dto
{
public class PurchaseSchemeProductResponse : Model.Db.PurchaseSchemeProduct
{
+ public string PurchaserName { get; set; }
+
+ public string PurchaserId2 { get; set; }
+
+ public string PurchaserLocation { get; set; }
+
+ public Enums.Platform? PurchasePlatform { get; set; }
+
public new List PurchaseSchemeProductSkuList { get; set; }
public PurchaseSchemeProductResponse()
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs
index f322e0a..e1c617b 100644
--- a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs
@@ -6,17 +6,20 @@ namespace BBWYB.Server.Model.Dto
{
public class PurchaseSchemeResponse : PurchaseScheme
{
- public string PurchaserName { get; set; }
+ //public string PurchaserName { get; set; }
- public string PurchaserId2 { get; set; }
+ //public string PurchaserId2 { get; set; }
- public string PurchaserLocation { get; set; }
+ //public string PurchaserLocation { get; set; }
public new List PurchaseSchemeProductList { get; set; }
+ public List PurchaserList { get; set; }
+
public PurchaseSchemeResponse()
{
PurchaseSchemeProductList = new List();
+ PurchaserList = new List();
}
}
}
From e8a83a3b9102cc58e898a00e7c4fd97182849947 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Fri, 11 Aug 2023 10:48:55 +0800
Subject: [PATCH 2/9] =?UTF-8?q?=E5=AE=9A=E4=B9=89=E9=87=87=E8=B4=AD?=
=?UTF-8?q?=E9=85=8D=E4=BB=B6=E6=AF=94=E4=BE=8B=E8=AF=B7=E6=B1=82=E5=AF=B9?=
=?UTF-8?q?=E8=B1=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Db/PurchaseScheme/Purchaseschemeproductsku.cs | 6 ++++++
.../PurchaseScheme/EditPurchaseRatioRequest.cs | 11 +++++++++++
2 files changed, 17 insertions(+)
create mode 100644 BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/Purchaseschemeproductsku.cs b/BBWYB.Server.Model/Db/PurchaseScheme/Purchaseschemeproductsku.cs
index 4a9e837..af819ee 100644
--- a/BBWYB.Server.Model/Db/PurchaseScheme/Purchaseschemeproductsku.cs
+++ b/BBWYB.Server.Model/Db/PurchaseScheme/Purchaseschemeproductsku.cs
@@ -46,6 +46,12 @@ namespace BBWYB.Server.Model.Db
///
public long SkuPurchaseSchemeId { get; set; }
+ ///
+ /// 采购比例
+ ///
+ [Column(DbType = "int(1)", IsNullable = true)]
+ public int? PurchaseRatio { get; set; }
+
}
}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
new file mode 100644
index 0000000..2e09843
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
@@ -0,0 +1,11 @@
+namespace BBWYB.Server.Model.Dto
+{
+ public class EditPurchaseRatioRequest
+ {
+ public long SchemeId { get; set; }
+
+ public string SkuId { get; set; }
+
+ public string PurchaseSkuId { get; set; }
+ }
+}
From 1f2f43b981c5d48e52371d56dd3206f8e0b23364 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sat, 12 Aug 2023 01:32:50 +0800
Subject: [PATCH 3/9] 1
---
.../PurchaseOrder/PurchaseOrderBusiness.cs | 58 ++++++++++++-------
1 file changed, 37 insertions(+), 21 deletions(-)
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index d91f624..3bee9f6 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -36,6 +36,7 @@ namespace BBWYB.Server.Business
private Lazy jdBusinessLazy;
private Lazy opPlatformClientFactoryLazy;
private Lazy venderBusinessLazy;
+ private Lazy 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 cantPurchaseOrderStateList;
public PurchaseOrderBusiness(IFreeSql fsql,
@@ -68,6 +71,7 @@ namespace BBWYB.Server.Business
jdBusinessLazy = new Lazy(() => serviceProvider.GetService());
opPlatformClientFactoryLazy = new Lazy(() => serviceProvider.GetService());
venderBusinessLazy = new Lazy(() => serviceProvider.GetService());
+ purchaseSchemeBusinessLazy = new Lazy(() => serviceProvider.GetService());
cantPurchaseOrderStateList = new List()
{
Enums.OrderState.已取消,
@@ -1113,6 +1117,10 @@ namespace BBWYB.Server.Business
if (request.PurchasePlatform != Enums.Platform.阿里巴巴)
return null;
+ var order = fsql.Select(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,24 +1151,34 @@ namespace BBWYB.Server.Business
#region 查询订单sku所有采购方案
var skuIds = dbOrderSkuList.Select(osku => osku.SkuId).ToList();
- var purchaseSchemeSkuList = fsql.Select()
- .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 purchaseSchemeSkuList = fsql.Select()
+ // .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 匹配采购单所使用到的采购方案
@@ -1199,8 +1217,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 +2627,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()
From ba1c2d978ccf7086308c33a65b0c691240368f3a Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sat, 12 Aug 2023 02:15:11 +0800
Subject: [PATCH 4/9] =?UTF-8?q?=E5=8C=B9=E9=85=8D=E9=87=87=E8=B4=AD?=
=?UTF-8?q?=E6=96=B9=E6=A1=88=E6=9C=AA=E5=AE=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../PurchaseOrder/PurchaseOrderBusiness.cs | 45 +++++++++++++------
1 file changed, 31 insertions(+), 14 deletions(-)
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index 3bee9f6..a4eed99 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -1182,25 +1182,42 @@ namespace BBWYB.Server.Business
#endregion
#region 匹配采购单所使用到的采购方案
- var assocationOrderCostDetailList = new List();
- var purchaseSchemeGroups = purchaseSchemeSkuList.GroupBy(s => s.SkuPurchaseSchemeId);
var cargoParamList = new List();
- foreach (var schemeGroup in purchaseSchemeGroups)
+ foreach (var scheme in purchaseSchemeList)
{
- var schemePurchaseSkuList = schemeGroup.ToList();
- if (schemePurchaseSkuList.Any(psku => purchaseOrderSimpleInfo.ItemList.Count(x => x.SkuId == psku.PurchaseSkuId) == 0))
+ var samePurchaserProductList = scheme.PurchaseSchemeProductList.Where(psp => psp.PurchaserId == purchaserId).ToList();
+ if (samePurchaserProductList.Count() == 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
- }));
+ foreach (var schemeProduct in samePurchaserProductList)
+ {
+
+ }
}
+ if (cargoParamList.Count() == 0)
+ throw new BusinessException("未匹配到采购方案");
+
+
+ var assocationOrderCostDetailList = new List();
+
+ //var purchaseSchemeGroups = purchaseSchemeSkuList.GroupBy(s => s.SkuPurchaseSchemeId);
+
+ //foreach (var schemeGroup in purchaseSchemeGroups)
+ //{
+ // 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 belongSkuGroups = cargoParamList.GroupBy(p => p.BelongSkuId);
var purchaseSkuTotalQuantity = cargoParamList.Sum(x => x.Quantity);
foreach (var belongSkuGroup in belongSkuGroups)
From 85f762c8efc264e5629642b78919c8d25599e277 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sat, 12 Aug 2023 16:30:11 +0800
Subject: [PATCH 5/9] =?UTF-8?q?=E5=85=B3=E8=81=94=E9=A2=84=E8=A7=88?=
=?UTF-8?q?=EF=BC=8C=E5=85=B3=E8=81=94=E9=87=87=E8=B4=AD=E6=94=AF=E6=8C=81?=
=?UTF-8?q?=E5=8C=B9=E9=85=8D=E5=A4=9A=E9=87=87=E8=B4=AD=E5=95=86=E7=9A=84?=
=?UTF-8?q?=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/DataRepairController.cs | 9 -
.../Controllers/PurchaseSchemeController.cs | 38 ++--
.../DataRepair/DataRepairBusiness.cs | 67 ------
.../PurchaseOrder/PurchaseOrderBusiness.cs | 198 +++++++++---------
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 22 +-
5 files changed, 131 insertions(+), 203 deletions(-)
diff --git a/BBWYB.Server.API/Controllers/DataRepairController.cs b/BBWYB.Server.API/Controllers/DataRepairController.cs
index c741111..9c2bdbe 100644
--- a/BBWYB.Server.API/Controllers/DataRepairController.cs
+++ b/BBWYB.Server.API/Controllers/DataRepairController.cs
@@ -25,15 +25,6 @@ namespace BBWYB.Server.API.Controllers
dataRepairBusiness.SubscribeKD100(waybillNo, targetCompanyCode);
}
- ///
- /// 修复采购商信息
- ///
- [HttpPost]
- public void SupplementPurchaserInfo()
- {
- dataRepairBusiness.SupplementPurchaserInfo();
- }
-
///
/// 修复订单Sku成本
///
diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
index 673114c..1244ca6 100644
--- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
@@ -38,15 +38,15 @@ namespace BBWYB.Server.API.Controllers
return purchaseSchemeBusiness.GetPurchaseSchemeList(querySchemeRequest);
}
- ///
- /// 删除采购商
- ///
- ///
- [HttpDelete]
- public void DeletePurchaser([FromBody] DeletePurchaseSchemeRequest deletePurchaseSchemeRequest)
- {
- purchaseSchemeBusiness.DeletePurchaser(deletePurchaseSchemeRequest);
- }
+ /////
+ ///// 删除采购商
+ /////
+ /////
+ //[HttpDelete]
+ //public void DeletePurchaser([FromBody] DeletePurchaseSchemeRequest deletePurchaseSchemeRequest)
+ //{
+ // purchaseSchemeBusiness.DeletePurchaser(deletePurchaseSchemeRequest);
+ //}
///
/// 删除采购方案
@@ -58,16 +58,16 @@ namespace BBWYB.Server.API.Controllers
purchaseSchemeBusiness.DeletePurchaseScheme(schemeId);
}
- ///
- /// 查询共有采购商
- ///
- ///
- ///
- [HttpPost]
- public IList GetSharePurchaser([FromBody] QuerySchemeRequest querySchemeRequest)
- {
- return purchaseSchemeBusiness.GetSharePurchaser(querySchemeRequest);
- }
+ /////
+ ///// 查询共有采购商
+ /////
+ /////
+ /////
+ //[HttpPost]
+ //public IList GetSharePurchaser([FromBody] QuerySchemeRequest querySchemeRequest)
+ //{
+ // return purchaseSchemeBusiness.GetSharePurchaser(querySchemeRequest);
+ //}
///
/// 查询采购方案中采购Sku的基本信息
diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
index f70c444..dcf2821 100644
--- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
+++ b/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()
- .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> updatePurchaserList = new List>();
- 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(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()
{
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index a4eed99..a83adf7 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -749,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()
{
@@ -763,6 +764,7 @@ namespace BBWYB.Server.Business
AppToken = purchaseAccount.AppToken,
OrderId = purchaseOrder.PurchaseOrderId
});
+ #endregion
#region 处理采购商Id
var purchaserId = purchaseOrderSimpleInfo.PurchaserId;
@@ -782,58 +784,29 @@ namespace BBWYB.Server.Business
#region 匹配采购方案
var skuIds = purchaseOrder.AssocationOrderCostDetailList.Select(ocd => ocd.SkuId).ToList();
- var purchaseSchemeSkuList = fsql.Select()
- .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(),
@@ -841,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
}
@@ -1151,27 +1145,6 @@ namespace BBWYB.Server.Business
#region 查询订单sku所有采购方案
var skuIds = dbOrderSkuList.Select(osku => osku.SkuId).ToList();
-
-
- //var purchaseSchemeSkuList = fsql.Select()
- // .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,
@@ -1183,41 +1156,17 @@ namespace BBWYB.Server.Business
#region 匹配采购单所使用到的采购方案
var cargoParamList = new List();
- foreach (var scheme in purchaseSchemeList)
+ foreach (var orderSku in dbOrderSkuList)
{
- var samePurchaserProductList = scheme.PurchaseSchemeProductList.Where(psp => psp.PurchaserId == purchaserId).ToList();
- if (samePurchaserProductList.Count() == 0)
- continue;
- foreach (var schemeProduct in samePurchaserProductList)
- {
-
- }
+ 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();
-
- //var purchaseSchemeGroups = purchaseSchemeSkuList.GroupBy(s => s.SkuPurchaseSchemeId);
-
- //foreach (var schemeGroup in purchaseSchemeGroups)
- //{
- // 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 belongSkuGroups = cargoParamList.GroupBy(p => p.BelongSkuId);
var purchaseSkuTotalQuantity = cargoParamList.Sum(x => x.Quantity);
foreach (var belongSkuGroup in belongSkuGroups)
@@ -3011,5 +2960,60 @@ namespace BBWYB.Server.Business
}
}
+ ///
+ /// 匹配采购方案
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ private IList MatchPurchaseScheme(string skuId,
+ int itemTotal,
+ string purchaserId,
+ IList purchaseSchemeList,
+ PP_QueryOrderDetailResponse purchaseOrderSimpleInfo)
+ {
+ List cargoParamList = new List();
+ 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;
+ }
}
}
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index c0a5923..7a59a5b 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -316,18 +316,18 @@ namespace BBWYB.Server.Business
// return fsql.Select().Where(p => sharePurchaserIdList.Contains(p.Id)).ToList();
//}
- public void DeletePurchaser(DeletePurchaseSchemeRequest deletePurchaseSchemeRequest)
- {
- var purchaseSchemeIdList = fsql.Select().Where(ps => ps.ProductId == deletePurchaseSchemeRequest.ProductId &&
- ps.PurchaserId == deletePurchaseSchemeRequest.PurchaserId).ToList(ps => ps.Id);
+ //public void DeletePurchaser(DeletePurchaseSchemeRequest deletePurchaseSchemeRequest)
+ //{
+ // var purchaseSchemeIdList = fsql.Select().Where(ps => ps.ProductId == deletePurchaseSchemeRequest.ProductId &&
+ // ps.PurchaserId == deletePurchaseSchemeRequest.PurchaserId).ToList(ps => ps.Id);
- fsql.Transaction(() =>
- {
- fsql.Delete(purchaseSchemeIdList).ExecuteAffrows();
- fsql.Delete().Where(psp => purchaseSchemeIdList.Contains(psp.SkuPurchaseSchemeId)).ExecuteAffrows();
- fsql.Delete().Where(psps => purchaseSchemeIdList.Contains(psps.SkuPurchaseSchemeId)).ExecuteAffrows();
- });
- }
+ // fsql.Transaction(() =>
+ // {
+ // fsql.Delete(purchaseSchemeIdList).ExecuteAffrows();
+ // fsql.Delete().Where(psp => purchaseSchemeIdList.Contains(psp.SkuPurchaseSchemeId)).ExecuteAffrows();
+ // fsql.Delete().Where(psps => purchaseSchemeIdList.Contains(psps.SkuPurchaseSchemeId)).ExecuteAffrows();
+ // });
+ //}
public void DeletePurchaseScheme(long schemeId)
{
From 39d1bc2703cb1af73d8693bcf4bf97fc3e3a5e2c Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sun, 13 Aug 2023 12:46:49 +0800
Subject: [PATCH 6/9] =?UTF-8?q?=E5=A4=9A=E5=95=86=E5=AE=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWYB.Client/App.xaml.cs | 1 +
BBWYB.Client/GlobalContext.cs | 2 +-
.../Response/PurchaseSchemeProductResponse.cs | 10 +
.../Response/PurchaseSchemeResponse.cs | 36 +--
.../Models/PurchaseScheme/PurchaseScheme.cs | 28 ++-
.../PurchaseScheme/PurchaseSchemeProduct.cs | 13 +-
BBWYB.Client/ViewModels/MainViewModel.cs | 16 +-
.../Order/ChoosePurchaseSchemeViewModel.cs | 18 +-
.../Purchase/OnlinePurchaseViewModel.cs | 4 +-
.../Ware/BindingPurchaseProductViewModel.cs | 229 ++++++++++++------
.../ViewModels/Ware/WareManagerViewModel.cs | 228 ++++++++++-------
.../Views/Ware/BindingPurchaseProduct.xaml | 2 +-
.../Views/Ware/BindingPurchaseProduct.xaml.cs | 19 +-
BBWYB.Client/Views/Ware/WareManager.xaml | 57 ++++-
BBWYB.Client/appsettings.json | 4 +-
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 37 ++-
.../InputPurchaseSchemeProductSkuRequest.cs | 5 +
.../PurchaseScheme/QuerySchemeRequest.cs | 16 +-
.../PurchaseSchemeProductResponse.cs | 6 +-
19 files changed, 473 insertions(+), 258 deletions(-)
diff --git a/BBWYB.Client/App.xaml.cs b/BBWYB.Client/App.xaml.cs
index 9f2d3f5..9b29706 100644
--- a/BBWYB.Client/App.xaml.cs
+++ b/BBWYB.Client/App.xaml.cs
@@ -79,6 +79,7 @@ namespace BBWYB.Client
serviceCollection.AddTransient();
serviceCollection.AddTransient();
serviceCollection.AddTransient();
+ serviceCollection.AddTransient();
serviceCollection.AddMapper(new MappingProfile());
ServiceProvider = serviceCollection.BuildServiceProvider();
base.OnStartup(e);
diff --git a/BBWYB.Client/GlobalContext.cs b/BBWYB.Client/GlobalContext.cs
index dcc7452..373eabc 100644
--- a/BBWYB.Client/GlobalContext.cs
+++ b/BBWYB.Client/GlobalContext.cs
@@ -22,7 +22,7 @@ namespace BBWYB.Client
{
public GlobalContext()
{
- BBWYBApiVersion = "10030";
+ BBWYBApiVersion = "10031";
}
private User user;
diff --git a/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeProductResponse.cs b/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeProductResponse.cs
index 712aaaf..995aa88 100644
--- a/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeProductResponse.cs
+++ b/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 PurchaseSchemeProductSkuList { get; set; }
}
diff --git a/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeResponse.cs b/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeResponse.cs
index b010fef..01dc224 100644
--- a/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeResponse.cs
+++ b/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeResponse.cs
@@ -11,20 +11,20 @@ namespace BBWYB.Client.Models
///
public decimal? DefaultCost { get; set; }
public string ProductId { get; set; }
- ///
- /// 采购商Id
- ///
- public string PurchaserId { get; set; }
+ /////
+ ///// 采购商Id
+ /////
+ //public string PurchaserId { get; set; }
- ///
- /// 采购商Id
- ///
- public string PurchaserId2 { get; set; }
- public string PurchaserName { get; set; }
- ///
- /// 发货地
- ///
- public string PurchaserLocation { get; set; }
+ /////
+ ///// 采购商Id
+ /////
+ //public string PurchaserId2 { get; set; }
+ //public string PurchaserName { get; set; }
+ /////
+ ///// 发货地
+ /////
+ //public string PurchaserLocation { get; set; }
///
/// 采购实际成本
///
@@ -32,10 +32,10 @@ namespace BBWYB.Client.Models
public string SkuId { get; set; }
public long ShopId { get; set; }
- ///
- /// 采购平台
- ///
- public Platform PurchasePlatform { get; set; }
+ /////
+ ///// 采购平台
+ /////
+ //public Platform PurchasePlatform { get; set; }
///
/// 最后采购时间
@@ -43,6 +43,8 @@ namespace BBWYB.Client.Models
public DateTime? LastPurchaseTime { get; set; }
public List PurchaseSchemeProductList { get; set; }
+
+ public List PurchaserList { get; set; }
}
}
diff --git a/BBWYB.Client/Models/PurchaseScheme/PurchaseScheme.cs b/BBWYB.Client/Models/PurchaseScheme/PurchaseScheme.cs
index 3d5ad1c..45c82e3 100644
--- a/BBWYB.Client/Models/PurchaseScheme/PurchaseScheme.cs
+++ b/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
///
/// 采购平台
///
- public Platform PurchasePlatform { get; set; }
+ //public Platform PurchasePlatform { get; set; }
///
/// 最后采购时间
@@ -49,9 +50,12 @@ namespace BBWYB.Client.Models
///
public IList PurchaseSchemeProductList { get; set; }
+ public List PurchaserList { get; set; }
+
public PurchaseScheme()
{
PurchaseSchemeProductList = new ObservableCollection();
+ PurchaserList = new List();
}
///
@@ -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));
diff --git a/BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProduct.cs b/BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProduct.cs
index 16bc54e..052bbca 100644
--- a/BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProduct.cs
+++ b/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;
diff --git a/BBWYB.Client/ViewModels/MainViewModel.cs b/BBWYB.Client/ViewModels/MainViewModel.cs
index 233aafa..766958f 100644
--- a/BBWYB.Client/ViewModels/MainViewModel.cs
+++ b/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()
- {
- new MenuModel(){ Name="订单列表",Url="/Views/Order/OrderList.xaml" }
- }
- });
+ //MenuList.Add(new MenuModel()
+ //{
+ // Name = "订单管理",
+ // ChildList = new List()
+ // {
+ // new MenuModel(){ Name="订单列表",Url="/Views/Order/OrderList.xaml" }
+ // }
+ //});
MenuList.Add(new MenuModel()
{
Name = "商品管理",
diff --git a/BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs b/BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs
index b445e3c..b5c3b97 100644
--- a/BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs
+++ b/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;
}
diff --git a/BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs b/BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs
index 5358607..ed49682 100644
--- a/BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs
+++ b/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,
diff --git a/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs b/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
index 85775b6..26cb3c9 100644
--- a/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
+++ b/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 urlPatternDictionary;
@@ -34,15 +36,18 @@ namespace BBWYB.Client.ViewModels
public IList 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();
}
- public void SetData(IList productSkuList, string purchaserId, string purchaserId2, string purchaserName, Platform purchasePlatform)
+ //public void SetData(IList 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 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();
- 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();
+ 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();
+ // 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 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;
}
///
@@ -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;
}
diff --git a/BBWYB.Client/ViewModels/Ware/WareManagerViewModel.cs b/BBWYB.Client/ViewModels/Ware/WareManagerViewModel.cs
index 5661f0a..52b0f7c 100644
--- a/BBWYB.Client/ViewModels/Ware/WareManagerViewModel.cs
+++ b/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(AddPurchaser);
- EditPurchaserCommand = new RelayCommand(EditPurchaser);
- DeletePurchaserCommand = new RelayCommand(DeletePurchaser);
+ //AddPurchaserCommand = new RelayCommand(AddPurchaser);
+ //EditPurchaserCommand = new RelayCommand(EditPurchaser);
+ //DeletePurchaserCommand = new RelayCommand(DeletePurchaser);
+ AddSchemeCommand = new RelayCommand(AddScheme);
+ EditSchemeCommand = new RelayCommand(EditScheme);
+ DeleteSchemeCommand = new RelayCommand(DeleteScheme);
+
SwitchPurchasePlatformCommand = new RelayCommand
///
///
- public IList GetPurchaseSchemeList(QuerySchemeRequest querySchemeRequest)
+ public IList GetPurchaseSchemeList(QuerySchemeRequest request)
{
var select = fsql.Select();
- 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));
+ 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))
+ {
+ //var childSelect = fsql.Select()
+ // .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);
+ //select = select.Where(ps => childSelect.Where((psp, p) => psp.SkuPurchaseSchemeId == ps.Id).Any());
+
+ select = select.Where(ps => fsql.Select()
+ .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());
+ }
//.WhereIf(querySchemeRequest.PurchasePlatform != null, ps => ps.PurchasePlatform == querySchemeRequest.PurchasePlatform);
}
-
+ var sql = select.ToSql();
var purchaseSchemeList = select.ToList();
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductSkuRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductSkuRequest.cs
index 9bdfd77..14b9bb5 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductSkuRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductSkuRequest.cs
@@ -21,5 +21,10 @@
/// 采购Ske SpecId (1688独有)
///
public string PurchaseSkuSpecId { get; set; }
+
+ ///
+ /// 采购配比
+ ///
+ public int? PurchaseRatio { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
index 8924508..59e2088 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
@@ -18,14 +18,14 @@ namespace BBWYB.Server.Model.Dto
public IList SkuIdList { get; set; }
- /////
- ///// 采购商Id, 可空
- /////
- //public string PurchaserId { get; set; }
+ ///
+ /// 采购商Id, 可空
+ ///
+ public string PurchaserId { get; set; }
- /////
- ///// 采购平台
- /////
- //public Enums.Platform? PurchasePlatform { get; set; }
+ ///
+ /// 采购平台
+ ///
+ public Enums.Platform? PurchasePlatform { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
index 288e9f2..15c33cf 100644
--- a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
+++ b/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
{
From 9f7373c97eb39fc4fc8730c6bee8d520ff057db0 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Mon, 14 Aug 2023 01:46:20 +0800
Subject: [PATCH 7/9] =?UTF-8?q?=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88?=
=?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E6=94=AF=E6=8C=81=E8=BF=94?=
=?UTF-8?q?=E5=9B=9E=E9=87=87=E8=B4=AD=E9=85=8D=E4=BB=B6=E5=9F=BA=E6=9C=AC?=
=?UTF-8?q?=E4=BF=A1=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 29 ++++++++++++++-----
.../PurchaseScheme/QuerySchemeRequest.cs | 9 ++++--
.../PurchaseSchemeProductSkuResponse.cs | 21 ++++++++++----
3 files changed, 44 insertions(+), 15 deletions(-)
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 931a9b2..8e15c73 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -154,7 +154,7 @@ namespace BBWYB.Server.Business
}
///
- /// 获取采购方案(不含采购配配件基本信息)
+ /// 获取采购方案
///
///
///
@@ -172,19 +172,12 @@ namespace BBWYB.Server.Business
if (request.PurchasePlatform != null || !string.IsNullOrEmpty(request.PurchaserId))
{
- //var childSelect = fsql.Select()
- // .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);
- //select = select.Where(ps => childSelect.Where((psp, p) => psp.SkuPurchaseSchemeId == ps.Id).Any());
-
select = select.Where(ps => fsql.Select()
.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());
}
- //.WhereIf(querySchemeRequest.PurchasePlatform != null, ps => ps.PurchasePlatform == querySchemeRequest.PurchasePlatform);
}
var sql = select.ToSql();
var purchaseSchemeList = select.ToList();
@@ -247,6 +240,26 @@ namespace BBWYB.Server.Business
}
}
#endregion
+
+ #region 获取采购方案基本信息
+ if (request.IncludePurchaseSkuBasicInfo == 1)
+ {
+ foreach (var schemeProduct in schemeProductList)
+ {
+ try
+ {
+ var basicInfo = GetPurchaseSkuBasicInfo(new PurchaseSkuBasicInfoRequest()
+ {
+
+ });
+ }
+ catch
+ {
+
+ }
+ }
+ }
+ #endregion
}
}
return purchaseSchemeList;
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
index 59e2088..0c2c4f1 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
@@ -19,13 +19,18 @@ namespace BBWYB.Server.Model.Dto
public IList SkuIdList { get; set; }
///
- /// 采购商Id, 可空
+ /// 采购商Id, 只要其中一个采购商品满足采购商条件则命中查询
///
public string PurchaserId { get; set; }
///
- /// 采购平台
+ /// 采购平台, 只要其中一个采购商品满足平台条件则命中查询
///
public Enums.Platform? PurchasePlatform { get; set; }
+
+ ///
+ /// 是否包含采购配件的基本信息(单价,Logo,标题等) 是=1 否=0或null
+ ///
+ public int? IncludePurchaseSkuBasicInfo { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductSkuResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductSkuResponse.cs
index 7374eaa..30942ea 100644
--- a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductSkuResponse.cs
+++ b/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
{
+
+ ///
+ /// 采购SKU标题 仅在查询条件IncludePurchaseSkuBasicInfo=1时具备该值
+ ///
+ public string PurchaseSkuTitle { get; set; }
+
+ ///
+ /// 采购SKULogo 仅在查询条件IncludePurchaseSkuBasicInfo=1时具备该值
+ ///
+ public string PurchaseSkuLogo { get; set; }
+
+ ///
+ /// 采购SKU单价 仅在查询条件IncludePurchaseSkuBasicInfo=1时具备该值
+ ///
+ public decimal? PurchaseSkuPrice { get; set; }
}
}
From f96dbdacb409e08c9df21cebde1e369f6d826b25 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Mon, 14 Aug 2023 09:45:50 +0800
Subject: [PATCH 8/9] =?UTF-8?q?=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88?=
=?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E6=94=AF=E6=8C=81=E8=BF=94?=
=?UTF-8?q?=E5=9B=9E=E9=87=87=E8=B4=AD=E9=85=8D=E4=BB=B6=E5=9F=BA=E6=9C=AC?=
=?UTF-8?q?=E4=BF=A1=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 8e15c73..633cfb4 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -250,8 +250,24 @@ namespace BBWYB.Server.Business
{
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
{
From e8d95171183156980fe9d30f2d9d5e6b5fbc3318 Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Mon, 14 Aug 2023 11:20:27 +0800
Subject: [PATCH 9/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=87=87=E8=B4=AD?=
=?UTF-8?q?=E9=85=8D=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/PurchaseSchemeController.cs | 10 ++++++++++
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 11 ++++++++++-
.../PurchaseScheme/EditPurchaseRatioRequest.cs | 4 +++-
3 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
index 673114c..1444c88 100644
--- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
@@ -101,5 +101,15 @@ namespace BBWYB.Server.API.Controllers
{
return purchaseSchemeBusiness.RefreshPurchaseScheme(request);
}
+
+ ///
+ /// 修改采购配件比例
+ ///
+ ///
+ [HttpPost]
+ public void EditPurchaseRatio([FromBody]EditPurchaseRatioRequest request)
+ {
+ purchaseSchemeBusiness.EditPurchaseRatio(request);
+ }
}
}
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index c0a5923..68ec95e 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -384,6 +384,15 @@ namespace BBWYB.Server.Business
return list;
}
-
+ public void EditPurchaseRatio(EditPurchaseRatioRequest request)
+ {
+ if (request.Ratio < 1)
+ request.Ratio = 1;
+ fsql.Update().Set(pss => pss.PurchaseRatio, request.Ratio)
+ .Where(pss => pss.SkuPurchaseSchemeId == request.SchemeId &&
+ pss.SkuId == request.SkuId &&
+ pss.PurchaseSkuId == request.PurchaseSkuId)
+ .ExecuteAffrows();
+ }
}
}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
index 2e09843..0eebc71 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
@@ -4,8 +4,10 @@
{
public long SchemeId { get; set; }
- public string SkuId { get; set; }
+ public string SkuId { get; set; }
public string PurchaseSkuId { get; set; }
+
+ public int Ratio { get; set; }
}
}