Browse Source

在更新采购方案时更新采购商聚合信息

liangku_skuoptimazation
shanji 1 year ago
parent
commit
b9f104fe36
  1. 47
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs

47
BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs

@ -15,14 +15,15 @@ namespace BBWYB.Server.Business
{ {
private PurchaseProductAPIService purchaseProductAPIService; private PurchaseProductAPIService purchaseProductAPIService;
private RestApiService restApiService; private RestApiService restApiService;
private AggregionPurchaserBusiness aggregionPurchaserBusiness;
private IList<Enums.OrderState?> invalidOrderStateList; private IList<Enums.OrderState?> invalidOrderStateList;
public PurchaseSchemeBusiness(IFreeSql fsql, public PurchaseSchemeBusiness(IFreeSql fsql,
NLogManager nLogManager, NLogManager nLogManager,
IIdGenerator idGenerator, IIdGenerator idGenerator,
PurchaseProductAPIService purchaseProductAPIService, PurchaseProductAPIService purchaseProductAPIService,
RestApiService restApiService) : base(fsql, nLogManager, idGenerator) RestApiService restApiService,
AggregionPurchaserBusiness aggregionPurchaserBusiness) : base(fsql, nLogManager, idGenerator)
{ {
this.purchaseProductAPIService = purchaseProductAPIService; this.purchaseProductAPIService = purchaseProductAPIService;
this.restApiService = restApiService; this.restApiService = restApiService;
@ -33,6 +34,7 @@ namespace BBWYB.Server.Business
Enums.OrderState., Enums.OrderState.,
Enums.OrderState. Enums.OrderState.
}; };
this.aggregionPurchaserBusiness = aggregionPurchaserBusiness;
} }
private void ExtractNewPurchaser<T>(IList<T> purchaserSchemeList, IList<Purchaser> addPurchaserList) where T : InputPurchaseSchemeRequest private void ExtractNewPurchaser<T>(IList<T> purchaserSchemeList, IList<Purchaser> addPurchaserList) where T : InputPurchaseSchemeRequest
@ -216,6 +218,7 @@ namespace BBWYB.Server.Business
List<PurchaseSchemeGroup> dbSchemeGroupList = null; List<PurchaseSchemeGroup> dbSchemeGroupList = null;
List<PurchaseScheme> dbPurchaseSchemeList = null; List<PurchaseScheme> dbPurchaseSchemeList = null;
List<long> deleteSchemeIdList = new List<long>(); List<long> deleteSchemeIdList = new List<long>();
List<string> aggregationPurchaserIdList = new List<string>();
#region 数据验证 #region 数据验证
if ((batchCURDSchemeRequest.EditPurchaseSchemeList == null || batchCURDSchemeRequest.EditPurchaseSchemeList.Count == 0) && if ((batchCURDSchemeRequest.EditPurchaseSchemeList == null || batchCURDSchemeRequest.EditPurchaseSchemeList.Count == 0) &&
@ -356,6 +359,8 @@ namespace BBWYB.Server.Business
if (batchCURDSchemeRequest.AddPurchaseSchemeList != null && batchCURDSchemeRequest.AddPurchaseSchemeList.Count > 0) if (batchCURDSchemeRequest.AddPurchaseSchemeList != null && batchCURDSchemeRequest.AddPurchaseSchemeList.Count > 0)
{ {
aggregationPurchaserIdList.AddRange(batchCURDSchemeRequest.AddPurchaseSchemeList.SelectMany(s => s.PurchaseSchemeProductList.Select(psp => psp.PurchaserId)).ToList());
var firstScheme = batchCURDSchemeRequest.AddPurchaseSchemeList.First(); var firstScheme = batchCURDSchemeRequest.AddPurchaseSchemeList.First();
ExtractNewPurchaser(batchCURDSchemeRequest.AddPurchaseSchemeList, newPurchaserList); ExtractNewPurchaser(batchCURDSchemeRequest.AddPurchaseSchemeList, newPurchaserList);
@ -475,6 +480,8 @@ namespace BBWYB.Server.Business
#region 更新采购方案 #region 更新采购方案
if (batchCURDSchemeRequest.EditPurchaseSchemeList != null && batchCURDSchemeRequest.EditPurchaseSchemeList.Count > 0) if (batchCURDSchemeRequest.EditPurchaseSchemeList != null && batchCURDSchemeRequest.EditPurchaseSchemeList.Count > 0)
{ {
aggregationPurchaserIdList.AddRange(batchCURDSchemeRequest.EditPurchaseSchemeList.SelectMany(s => s.PurchaseSchemeProductList.Select(psp => psp.PurchaserId)).ToList());
ExtractNewPurchaser(batchCURDSchemeRequest.EditPurchaseSchemeList, newPurchaserList); ExtractNewPurchaser(batchCURDSchemeRequest.EditPurchaseSchemeList, newPurchaserList);
var editSchemeIdList = batchCURDSchemeRequest.EditPurchaseSchemeList.Select(ps => ps.Id).ToList(); var editSchemeIdList = batchCURDSchemeRequest.EditPurchaseSchemeList.Select(ps => ps.Id).ToList();
var dbPurchaseSchemes = GetPurchaseSchemeList(new QuerySchemeRequest() var dbPurchaseSchemes = GetPurchaseSchemeList(new QuerySchemeRequest()
@ -618,6 +625,9 @@ namespace BBWYB.Server.Business
//删除信息残缺的采购方案 //删除信息残缺的采购方案
if (deleteSchemeIdList.Count() > 0) if (deleteSchemeIdList.Count() > 0)
DeletePurchaseScheme(deleteSchemeIdList); DeletePurchaseScheme(deleteSchemeIdList);
aggregationPurchaserIdList = aggregationPurchaserIdList.Distinct().ToList();
aggregionPurchaserBusiness.AggregionByPurchaserIdList(aggregationPurchaserIdList);
} }
/// <summary> /// <summary>
@ -1007,33 +1017,19 @@ namespace BBWYB.Server.Business
public void DeletePurchaseScheme(long schemeId) public void DeletePurchaseScheme(long schemeId)
{ {
//IDelete<PurchaseSchemeGroup>? deletePsg = null; DeletePurchaseScheme(new List<long>() { schemeId }, true);
//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();
//});
DeletePurchaseScheme(new List<long>() { schemeId });
} }
public void DeletePurchaseScheme(List<long> schemeIdList) public void DeletePurchaseScheme(List<long> schemeIdList, bool isAggregationPurchaser = false)
{ {
IList<long> deleteSchemeGroupIdList = new List<long>(); IList<long> deleteSchemeGroupIdList = new List<long>();
var purchaseSchemeList = fsql.Select<PurchaseScheme>(schemeIdList).ToList(); var purchaseSchemeList = fsql.Select<PurchaseScheme>(schemeIdList).ToList();
if (purchaseSchemeList.Count() == 0) if (purchaseSchemeList.Count() == 0)
return; return;
var purchaserIdList = isAggregationPurchaser ?
fsql.Select<PurchaseSchemeProduct>().Where(psp => schemeIdList.Contains(psp.SkuPurchaseSchemeId))
.Distinct()
.ToList(psp => psp.PurchaserId) : null;
var schemeGroupIdList = purchaseSchemeList.Where(ps => ps.SchemeGroupId != 0).Select(ps => ps.SchemeGroupId).ToList(); var schemeGroupIdList = purchaseSchemeList.Where(ps => ps.SchemeGroupId != 0).Select(ps => ps.SchemeGroupId).ToList();
var sameSchemeGroupCountGroups = fsql.Select<PurchaseScheme>().Where(ps => ps.SchemeGroupId != 0 && var sameSchemeGroupCountGroups = fsql.Select<PurchaseScheme>().Where(ps => ps.SchemeGroupId != 0 &&
schemeGroupIdList.Contains(ps.SchemeGroupId) && schemeGroupIdList.Contains(ps.SchemeGroupId) &&
@ -1055,6 +1051,8 @@ namespace BBWYB.Server.Business
} }
} }
fsql.Transaction(() => fsql.Transaction(() =>
{ {
if (deleteSchemeGroupIdList.Count() > 0) if (deleteSchemeGroupIdList.Count() > 0)
@ -1063,6 +1061,11 @@ namespace BBWYB.Server.Business
fsql.Delete<PurchaseSchemeProduct>().Where(p => schemeIdList.Contains(p.SkuPurchaseSchemeId)).ExecuteAffrows(); fsql.Delete<PurchaseSchemeProduct>().Where(p => schemeIdList.Contains(p.SkuPurchaseSchemeId)).ExecuteAffrows();
fsql.Delete<PurchaseSchemeProductSku>().Where(p => schemeIdList.Contains(p.SkuPurchaseSchemeId)).ExecuteAffrows(); fsql.Delete<PurchaseSchemeProductSku>().Where(p => schemeIdList.Contains(p.SkuPurchaseSchemeId)).ExecuteAffrows();
}); });
if (purchaserIdList != null && purchaserIdList.Count() > 0 && isAggregationPurchaser)
{
aggregionPurchaserBusiness.AggregionByPurchaserIdList(purchaserIdList);
}
} }
/// <summary> /// <summary>

Loading…
Cancel
Save