diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
index b31afcd..8f129aa 100644
--- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
@@ -150,9 +150,20 @@ namespace BBWYB.Server.API.Controllers
///
///
[HttpPost]
- public IList GetPurchaseSchemeByHYBDId([FromBody]QueryHYSchemeRequest request)
+ public IList GetPurchaseSchemeByHYBDId([FromBody] QueryHYSchemeRequest request)
{
return purchaseSchemeBusiness.GetPurchaseSchemeByHYBDId(request);
}
+
+ ///
+ /// 修改采购配件比例
+ ///
+ /// 最新的采购方案成本
+ ///
+ [HttpPost]
+ public decimal EditPurchaseRatio([FromBody] EditPurchaseRatioRequest request)
+ {
+ return purchaseSchemeBusiness.EditPurchaseRatio(request);
+ }
}
}
diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
index b86169e..bc0e040 100644
--- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
+++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
@@ -175,7 +175,7 @@ namespace BBWYB.Server.Business
{
Id = schemeGroupId.Value,
//GroupName = schemeGroupId.Value.ToString(),
- GroupName = $"{purchaseSchemeSpuGroup.Key}_第{i + 1}组",
+ GroupName = $"{purchaseSchemeSpuGroup.Key}-{schemeGroupId.Value}",
CreateTime = DateTime.Now,
ProductId = currentIndexSchemeList.First().ProductId,
ShopId = currentIndexSchemeList.First().ShopId
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 6231c81..96a0729 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -297,12 +297,11 @@ namespace BBWYB.Server.Business
if (psReq.SchemeGroupId == null || psReq.SchemeGroupId == 0)
{
//新增分组
- var saemSpuSchemeGroupList = dbSchemeGroupList.Where(psg => psg.ProductId == psReq.ProductId).ToList();
var insertSchemeGroup = new PurchaseSchemeGroup()
{
Id = idGenerator.NewLong(),
CreateTime = DateTime.Now,
- GroupName = $"{psReq.ProductId}_第{saemSpuSchemeGroupList.Count() + 1}组",
+ GroupName = $"{psReq.ProductId}-{DateTime.Now:yyyyMMddHHmmss}",
ProductId = psReq.ProductId,
ShopId = psReq.ShopId
};
@@ -678,8 +677,20 @@ namespace BBWYB.Server.Business
public void DeletePurchaseScheme(long schemeId)
{
+ IDelete? deletePsg = null;
+ var purchaseScheme = fsql.Select(schemeId).ToOne();
+ if (purchaseScheme == null)
+ throw new BusinessException("采购方案不存在");
+ if (purchaseScheme.SchemeGroupId != 0)
+ {
+ var sameGroupSchemeCount = fsql.Select().Where(ps => ps.SchemeGroupId == purchaseScheme.SchemeGroupId &&
+ ps.Id != purchaseScheme.Id).Count();
+ if (sameGroupSchemeCount == 0)
+ deletePsg = fsql.Delete(purchaseScheme.SchemeGroupId);
+ }
fsql.Transaction(() =>
{
+ deletePsg?.ExecuteAffrows();
fsql.Delete(schemeId).ExecuteAffrows();
fsql.Delete().Where(p => p.SkuPurchaseSchemeId == schemeId).ExecuteAffrows();
fsql.Delete().Where(p => p.SkuPurchaseSchemeId == schemeId).ExecuteAffrows();
@@ -840,5 +851,44 @@ namespace BBWYB.Server.Business
}
return resultList;
}
+
+ public decimal EditPurchaseRatio(EditPurchaseRatioRequest request)
+ {
+ if (request.SchemeId == 0 || string.IsNullOrEmpty(request.SkuId) || string.IsNullOrEmpty(request.PurchaseSkuId))
+ throw new BusinessException("参数不完整");
+ if (request.Ratio < 1)
+ request.Ratio = 1;
+ var schemeList = GetPurchaseSchemeList(new QuerySchemeRequest()
+ {
+ IncludePurchaseSkuBasicInfo = 1,
+ SchemeId = request.SchemeId
+ });
+ if (schemeList.Count() == 0)
+ throw new BusinessException("采购方案不存在");
+ var scheme = schemeList[0];
+ var defaultCost = 0M;
+ long? pssId = null;
+ foreach (var schemeProduct in scheme.PurchaseSchemeProductList)
+ {
+ foreach (var schemeProductSku in schemeProduct.PurchaseSchemeProductSkuList)
+ {
+ if (schemeProductSku.SkuId == request.SkuId &&
+ schemeProductSku.PurchaseSkuId == request.PurchaseSkuId)
+ {
+ schemeProductSku.PurchaseRatio = request.Ratio;
+ pssId = schemeProductSku.Id;
+ }
+ defaultCost += ((schemeProductSku.ActualPrice ?? schemeProductSku.PurchaseSkuPrice) ?? 0) * (schemeProductSku.PurchaseRatio ?? 1);
+ }
+ }
+ if (pssId == null)
+ throw new BusinessException("未找到需要更新的采购配件");
+ fsql.Transaction(() =>
+ {
+ fsql.Update(request.SchemeId).Set(ps => ps.DefaultCost, defaultCost).ExecuteAffrows();
+ fsql.Update(pssId.Value).Set(pss => pss.PurchaseRatio, request.Ratio).ExecuteAffrows();
+ });
+ return defaultCost;
+ }
}
}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioAndActualPriceRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
similarity index 68%
rename from BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioAndActualPriceRequest.cs
rename to BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
index a72e569..0eebc71 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioAndActualPriceRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
@@ -1,6 +1,6 @@
namespace BBWYB.Server.Model.Dto
{
- public class EditPurchaseRatioAndActualPriceRequest
+ public class EditPurchaseRatioRequest
{
public long SchemeId { get; set; }
@@ -9,7 +9,5 @@
public string PurchaseSkuId { get; set; }
public int Ratio { get; set; }
-
- public decimal ActualPrice { get; set; }
}
}