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; } } }