diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs index 171612f..1b7f63d 100644 --- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs +++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs @@ -172,9 +172,19 @@ namespace BBWYB.Server.API.Controllers /// /// 最新的采购方案成本 [HttpDelete] - public decimal DeletePurchaseSku([FromBody]DeletePurchaseSkuRequest request) - { + public decimal DeletePurchaseSku([FromBody] DeletePurchaseSkuRequest request) + { return purchaseSchemeBusiness.DeletePurchaseSku(request); } + + /// + /// 设置首选采购方案,同时互斥相同Sku的其他采购方案 + /// + /// + [HttpPost("{schemeId}")] + public void SetFirstPurchaseScheme([FromRoute]long schemeId) + { + purchaseSchemeBusiness.SetFirstPurchaseScheme(schemeId); + } } } diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs index 4da9300..f3ffbde 100644 --- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs +++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs @@ -639,7 +639,7 @@ namespace BBWYB.Server.Business .Where((psp, p) => psp.SkuPurchaseSchemeId == ps.Id).Any()); } //var sql = select.ToSql(); - var purchaseSchemeList = select.OrderByDescending(ps => ps.CreateTime).ToList(); + var purchaseSchemeList = select.OrderByDescending(ps => ps.IsFirst).OrderByDescending(ps => ps.CreateTime).ToList(); if (purchaseSchemeList.Count > 0) @@ -1194,5 +1194,25 @@ namespace BBWYB.Server.Business }); return defaultCost; } + + /// + /// 设置首选采购方案 + /// + /// + public void SetFirstPurchaseScheme(long schemeId) + { + var scheme = fsql.Select(schemeId).ToOne(s => new + { + s.Id, + s.SkuId + }); + if (scheme == null) + new BusinessException("采购方案不存在"); + fsql.Transaction(() => + { + fsql.Update().Set(s => s.IsFirst, 0).Where(s => s.SkuId == scheme.SkuId && s.Id != schemeId).ExecuteAffrows(); + fsql.Update(schemeId).Set(s => s.IsFirst, 1).ExecuteAffrows(); + }); + } } } diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs index b46941e..a840856 100644 --- a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs +++ b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs @@ -93,6 +93,11 @@ namespace BBWYB.Server.Model /// 采购金额 /// public decimal? PurchasedAmount { get; set; } = 0M; + + /// + /// 首选采购方案 (是=1 否=0) + /// + public int? IsFirst { get; set; } = 0; } }