Browse Source

提供单独修改采购比例的接口

yijia
shanji 2 years ago
parent
commit
abc25da1cf
  1. 13
      BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
  2. 2
      BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
  3. 54
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  4. 4
      BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs

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

@ -150,9 +150,20 @@ namespace BBWYB.Server.API.Controllers
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public IList<HYPurchaseSchemeResponse> GetPurchaseSchemeByHYBDId([FromBody]QueryHYSchemeRequest request)
public IList<HYPurchaseSchemeResponse> GetPurchaseSchemeByHYBDId([FromBody] QueryHYSchemeRequest request)
{
return purchaseSchemeBusiness.GetPurchaseSchemeByHYBDId(request);
}
/// <summary>
/// 修改采购配件比例
/// </summary>
/// <param name="request">最新的采购方案成本</param>
/// <returns></returns>
[HttpPost]
public decimal EditPurchaseRatio([FromBody] EditPurchaseRatioRequest request)
{
return purchaseSchemeBusiness.EditPurchaseRatio(request);
}
}
}

2
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

54
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<PurchaseSchemeGroup>? deletePsg = null;
var purchaseScheme = fsql.Select<PurchaseScheme>(schemeId).ToOne();
if (purchaseScheme == null)
throw new BusinessException("采购方案不存在");
if (purchaseScheme.SchemeGroupId != 0)
{
var sameGroupSchemeCount = fsql.Select<PurchaseScheme>().Where(ps => ps.SchemeGroupId == purchaseScheme.SchemeGroupId &&
ps.Id != purchaseScheme.Id).Count();
if (sameGroupSchemeCount == 0)
deletePsg = fsql.Delete<PurchaseSchemeGroup>(purchaseScheme.SchemeGroupId);
}
fsql.Transaction(() =>
{
deletePsg?.ExecuteAffrows();
fsql.Delete<PurchaseScheme>(schemeId).ExecuteAffrows();
fsql.Delete<PurchaseSchemeProduct>().Where(p => p.SkuPurchaseSchemeId == schemeId).ExecuteAffrows();
fsql.Delete<PurchaseSchemeProductSku>().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<PurchaseScheme>(request.SchemeId).Set(ps => ps.DefaultCost, defaultCost).ExecuteAffrows();
fsql.Update<PurchaseSchemeProductSku>(pssId.Value).Set(pss => pss.PurchaseRatio, request.Ratio).ExecuteAffrows();
});
return defaultCost;
}
}
}

4
BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioAndActualPriceRequest.cs → 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; }
}
}
Loading…
Cancel
Save