Browse Source

增加配件级报价记录

master
shanji 1 year ago
parent
commit
65f4b2080e
  1. 26
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  2. 20
      BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs
  3. 29
      BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationproductskuupdatequotedpricerecord.cs

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

@ -1080,14 +1080,20 @@ namespace BBWYB.Server.Business
IncludePurchaseSkuBasicInfo = 1
});
List<SpuOptimizationCompetitiveTenderTask> competitiveTenderTaskList = null;
//List<SpuOptimizationCompetitiveTenderTask> competitiveTenderTaskList = null;
List<SpuOptimizationProductSkuUpdateQuotedPriceRecord> updatePriceList = null;
if (user.isBargainTeam && request.SpuOptimizationTaskId != null && request.SpuOptimizationTaskId != 0)
{
competitiveTenderTaskList = fsql.Select<SpuOptimizationCompetitiveTenderTask>()
.Where(ct => ct.SpuOptimizationTaskId == request.SpuOptimizationTaskId &&
ct.BargainTeamId == user.bargainTeam.Id)
.ToList();
//competitiveTenderTaskList = fsql.Select<SpuOptimizationCompetitiveTenderTask>()
// .Where(ct => ct.SpuOptimizationTaskId == request.SpuOptimizationTaskId &&
// ct.BargainTeamId == user.bargainTeam.Id)
// .ToList();
updatePriceList = fsql.Select<SpuOptimizationProductSkuUpdateQuotedPriceRecord>()
.Where(x => x.SpuOptimizationTaskId == request.SpuOptimizationTaskId &&
x.BargainTeamId == user.bargainTeam.Id)
.ToList();
}
var mergePssList = new List<MergePurchaseSchemeProductSkuResponse>();
@ -1105,12 +1111,10 @@ namespace BBWYB.Server.Business
mergePss = pss.Map<MergePurchaseSchemeProductSkuResponse>();
mergePssList.Add(mergePss);
}
if (competitiveTenderTaskList != null)
{
var belongCompetitiveTenderTask = competitiveTenderTaskList.FirstOrDefault(ct => ct.SchemeId == scheme.Id);
if (belongCompetitiveTenderTask != null && belongCompetitiveTenderTask.IsUpdateQuotedPrice == true)
mergePss.IsUpdateQuotedPrice = true;
}
if (updatePriceList != null && updatePriceList.Any(x => x.PurchaseSkuId == mergePss.PurchaseSkuId))
mergePss.IsUpdateQuotedPrice = true;
mergePss.BelongSkuIdList.Add(pss.SkuId);
}
}

20
BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs

@ -366,6 +366,7 @@ namespace BBWYB.Server.Business
#region DBOperation
List<SpuOptimizationCompetitiveTenderTask> insertSpuOptimizationCompetitiveTenderTaskList = new List<SpuOptimizationCompetitiveTenderTask>();
List<long> updateCompetitiveTenderTaskIdList = new List<long>();
List<SpuOptimizationProductSkuUpdateQuotedPriceRecord> insertUpdatePriceList = new List<SpuOptimizationProductSkuUpdateQuotedPriceRecord>();
#endregion
//var skuList = request.ItemList.Select(x => x.SkuId).Distinct().ToList();
@ -393,6 +394,11 @@ namespace BBWYB.Server.Business
IncludePurchaseSkuBasicInfo = 0
});
//查询配件级报价任务
var updatePriceRecordList = fsql.Select<SpuOptimizationProductSkuUpdateQuotedPriceRecord>()
.Where(x => x.SpuOptimizationTaskId == request.SpuOptimizationTaskId &&
x.BargainTeamId == uInfo.bargainTeam.Id)
.ToList();
//筛选出不在竞标任务中的采购方案
var noJoinCompetitiveTenderPurchaseSchemeList = relationPurchaseSchemeList.Where(ps => !competitiveTenderTaskList.Any(ct => ct.SchemeId == ps.Id)).ToList();
@ -404,6 +410,15 @@ namespace BBWYB.Server.Business
purchaseSchemeBusiness.BatchEditPurchaseSkuActualPrice(batchEditPurchaseSkuActualPriceRequest, uInfo);
}
insertUpdatePriceList.AddRange(request.ItemList.Where(x => !updatePriceRecordList.Any(r => r.PurchaseSkuId == x.PurchaseSkuId)).Select(x => new SpuOptimizationProductSkuUpdateQuotedPriceRecord()
{
Id = idGenerator.NewLong(),
BargainTeamId = uInfo.bargainTeam.Id,
CreateTime = DateTime.Now,
PurchaseSkuId = x.PurchaseSkuId,
SpuOptimizationTaskId = request.SpuOptimizationTaskId,
UserId = uInfo.user.Id
}));
if (noJoinCompetitiveTenderPurchaseSchemeList.Count() > 0)
{
@ -421,6 +436,7 @@ namespace BBWYB.Server.Business
UpdateTime = DateTime.Now
}));
}
if (competitiveTenderTaskList.Count() > 0)
{
//updateCompetitiveTenderTaskIdList.AddRange(competitiveTenderTaskList.Select(ct => ct.Id).ToList());
@ -450,6 +466,8 @@ namespace BBWYB.Server.Business
.Set(ct => ct.IsUpdateQuotedPrice, true)
.Set(ct => ct.UpdateTime, DateTime.Now)
.ExecuteAffrows();
if (insertUpdatePriceList.Count() > 0)
fsql.Insert(insertUpdatePriceList).ExecuteAffrows();
});
}
@ -790,7 +808,7 @@ namespace BBWYB.Server.Business
var winGroupKey = psGroups.Select(g => new { SchemeGroupId = g.Key, Cost = g.Sum(ps => ps.BargainingCost ?? ps.DefaultCost) })
.OrderByDescending(x => x.Cost)
.FirstOrDefault();
victoryList.AddRange(competitiveTenderTaskList.Where(ct=>ct.SchemeGroupId == winGroupKey.SchemeGroupId));
victoryList.AddRange(competitiveTenderTaskList.Where(ct => ct.SchemeGroupId == winGroupKey.SchemeGroupId));
//foreach (var psGroup in psGroups)
//{

29
BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationproductskuupdatequotedpricerecord.cs

@ -0,0 +1,29 @@
using FreeSql.DataAnnotations;
namespace BBWYB.Server.Model.Db
{
[Table(Name = "spuoptimizationproductskuupdatequotedpricerecord", DisableSyncStructure = true)]
public partial class SpuOptimizationProductSkuUpdateQuotedPriceRecord
{
[Column(DbType = "bigint", IsPrimary = true)]
public long Id { get; set; }
[Column(StringLength = 50)]
public string BargainTeamId { get; set; }
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
[Column(StringLength = 50)]
public string PurchaseSkuId { get; set; }
[Column(DbType = "bigint")]
public long? SpuOptimizationTaskId { get; set; }
[Column(StringLength = 50)]
public string UserId { get; set; }
}
}
Loading…
Cancel
Save