Browse Source

按采购商更新报价

liangku_skuoptimazation
shanji 1 year ago
parent
commit
89da877d5c
  1. 62
      BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs
  2. 32
      BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
  3. 60
      BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationpurchasercompetitvetendertask.cs

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

@ -4,6 +4,7 @@ using BBWYB.Common.Models;
using BBWYB.Server.Model; using BBWYB.Server.Model;
using BBWYB.Server.Model.Db; using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Db.BBWY; using BBWYB.Server.Model.Db.BBWY;
using BBWYB.Server.Model.Db.SpuOptimization;
using BBWYB.Server.Model.Dto; using BBWYB.Server.Model.Dto;
using FreeSql; using FreeSql;
using Newtonsoft.Json; using Newtonsoft.Json;
@ -112,6 +113,7 @@ namespace BBWYB.Server.Business
List<SkuOptimizationTask> insertSkuOptimizationTaskList = new List<SkuOptimizationTask>(); List<SkuOptimizationTask> insertSkuOptimizationTaskList = new List<SkuOptimizationTask>();
List<SpuOptimizationBargainTeamTask> insertSpuOptimizationBargainTeamTaskList = new List<SpuOptimizationBargainTeamTask>(); List<SpuOptimizationBargainTeamTask> insertSpuOptimizationBargainTeamTaskList = new List<SpuOptimizationBargainTeamTask>();
List<SpuOptimizationCompetitiveTenderTask> insertSpuOptimizationCompetitiveTenderTaskList = new List<SpuOptimizationCompetitiveTenderTask>(); List<SpuOptimizationCompetitiveTenderTask> insertSpuOptimizationCompetitiveTenderTaskList = new List<SpuOptimizationCompetitiveTenderTask>();
//List<SpuOptimizationPurchaserCompetitiveTenderTask> insertSpuOptimizationPurchaserCompetitiveTenderTaskList = new List<SpuOptimizationPurchaserCompetitiveTenderTask>();
List<TimeLimitTask> insertTimeLimitTaskList = new List<TimeLimitTask>(); List<TimeLimitTask> insertTimeLimitTaskList = new List<TimeLimitTask>();
#endregion #endregion
@ -126,6 +128,12 @@ namespace BBWYB.Server.Business
productIdList.Contains(ps.ProductId)) productIdList.Contains(ps.ProductId))
.ToList(); //需要参与竞标采购方案 .ToList(); //需要参与竞标采购方案
var waitToCompetitiveTenderSchemeIdList = waitToCompetitiveTenderSchemeList.Select(ps => ps.Id).ToList();
var waitToCompetitiveTenderSchemePurchaserList = fsql.Select<PurchaseSchemeProduct>()
.Where(psp => waitToCompetitiveTenderSchemeIdList.Contains(psp.SkuPurchaseSchemeId))
.GroupBy(psp => new { psp.SkuPurchaseSchemeId, psp.PurchaserId })
.ToList(g => new { g.Key.SkuPurchaseSchemeId, g.Key.PurchaserId }); //需要参与竞标的采购商
foreach (var productId in productIdList) foreach (var productId in productIdList)
{ {
#region 验证 #region 验证
@ -250,6 +258,9 @@ namespace BBWYB.Server.Business
var waitJoinSchemeList = waitToCompetitiveTenderSchemeList.Where(ps => ps.BelongBargainTeamId == department.Id && var waitJoinSchemeList = waitToCompetitiveTenderSchemeList.Where(ps => ps.BelongBargainTeamId == department.Id &&
qtskus.Contains(ps.SkuId)) qtskus.Contains(ps.SkuId))
.ToList(); .ToList();
//var waitJoinSchemeIdList = waitJoinSchemeList.Select(ps => ps.Id).ToList();
//var waitJonPurchaserList = waitToCompetitiveTenderSchemePurchaserList.Where(x => waitJoinSchemeIdList.Contains(x.SkuPurchaseSchemeId));
if (waitJoinSchemeList.Count() > 0) if (waitJoinSchemeList.Count() > 0)
{ {
insertSpuOptimizationCompetitiveTenderTaskList.AddRange(waitJoinSchemeList.Select(ps => new SpuOptimizationCompetitiveTenderTask() insertSpuOptimizationCompetitiveTenderTaskList.AddRange(waitJoinSchemeList.Select(ps => new SpuOptimizationCompetitiveTenderTask()
@ -265,6 +276,24 @@ namespace BBWYB.Server.Business
SpuOptimizationTaskId = spuOptimizationTask.Id, SpuOptimizationTaskId = spuOptimizationTask.Id,
UpdateTime = DateTime.Now UpdateTime = DateTime.Now
})); }));
//insertSpuOptimizationPurchaserCompetitiveTenderTaskList.AddRange(waitJonPurchaserList.Select(x =>
//{
// var ps = waitJoinSchemeList.FirstOrDefault(ps => ps.Id == x.SkuPurchaseSchemeId);
// return new SpuOptimizationPurchaserCompetitiveTenderTask()
// {
// Id = idGenerator.NewLong(),
// BargainTeamId = ps.BelongBargainTeamId,
// CreateTime = DateTime.Now,
// UpdateTime = DateTime.Now,
// IsUpdateQuotedPrice = false,
// PurchaserId = x.PurchaserId,
// SchemeGroupId = ps.SchemeGroupId,
// SchemeId = ps.Id,
// SkuId = ps.SkuId,
// SpuOptimizationTaskId = spuOptimizationTask.Id
// };
//}));
} }
#endregion #endregion
} }
@ -306,6 +335,8 @@ namespace BBWYB.Server.Business
fsql.Insert(insertSpuOptimizationBargainTeamTaskList).ExecuteAffrows(); fsql.Insert(insertSpuOptimizationBargainTeamTaskList).ExecuteAffrows();
if (insertSpuOptimizationCompetitiveTenderTaskList.Count() > 0) if (insertSpuOptimizationCompetitiveTenderTaskList.Count() > 0)
fsql.Insert(insertSpuOptimizationCompetitiveTenderTaskList).ExecuteAffrows(); fsql.Insert(insertSpuOptimizationCompetitiveTenderTaskList).ExecuteAffrows();
//if (insertSpuOptimizationPurchaserCompetitiveTenderTaskList.Count() > 0)
// fsql.Insert(insertSpuOptimizationPurchaserCompetitiveTenderTaskList).ExecuteAffrows();
if (insertTimeLimitTaskList.Count() > 0) if (insertTimeLimitTaskList.Count() > 0)
fsql.Insert(insertTimeLimitTaskList).ExecuteAffrows(); fsql.Insert(insertTimeLimitTaskList).ExecuteAffrows();
}); });
@ -348,20 +379,24 @@ namespace BBWYB.Server.Business
.ToList(); .ToList();
//查询配件关联的采购方案 //查询配件关联的采购方案
var relationPurchaseSchemeList = fsql.Select<PurchaseScheme>() var relationPurchaseSchemeIdList = fsql.Select<PurchaseScheme>()
.Where(ps => ps.SchemeGroupId == request.SchemeGroupId && .Where(ps => ps.SchemeGroupId == request.SchemeGroupId &&
ps.BelongBargainTeamId == uInfo.bargainTeam.Id && ps.BelongBargainTeamId == uInfo.bargainTeam.Id &&
fsql.Select<PurchaseSchemeProductSku>() fsql.Select<PurchaseSchemeProductSku>()
.Where(pss => skuIdList.Contains(pss.SkuId) && .Where(pss => skuIdList.Contains(pss.SkuId) &&
purchaseSkuIdList.Contains(pss.PurchaseSkuId) && purchaseSkuIdList.Contains(pss.PurchaseSkuId) &&
pss.SkuPurchaseSchemeId == ps.Id).Any()) pss.SkuPurchaseSchemeId == ps.Id).Any())
.ToList(); .ToList(ps => ps.Id);
var relationPurchaseSchemeList = purchaseSchemeBusiness.GetPurchaseSchemeList(new QuerySchemeRequest()
{
SchemeIdList = relationPurchaseSchemeIdList,
IncludePurchaseSkuBasicInfo = 0
});
//筛选出不在竞标任务中的采购方案 //筛选出不在竞标任务中的采购方案
var noJoinCompetitiveTenderPurchaseSchemeList = relationPurchaseSchemeList.Where(ps => !competitiveTenderTaskList.Any(ct => ct.SchemeId == ps.Id)).ToList(); var noJoinCompetitiveTenderPurchaseSchemeList = relationPurchaseSchemeList.Where(ps => !competitiveTenderTaskList.Any(ct => ct.SchemeId == ps.Id)).ToList();
//var noJoinCompetitiveTenderPurchaseSchemeIdList = noJoinCompetitiveTenderPurchaseSchemeList.Select(x => x.Id).ToList();
//批量更新配件
{ {
var batchEditPurchaseSkuActualPriceRequest = request.Map<BatchEditPurchaseSkuActualPriceRequest>(); var batchEditPurchaseSkuActualPriceRequest = request.Map<BatchEditPurchaseSkuActualPriceRequest>();
@ -387,7 +422,24 @@ namespace BBWYB.Server.Business
})); }));
} }
if (competitiveTenderTaskList.Count() > 0) if (competitiveTenderTaskList.Count() > 0)
updateCompetitiveTenderTaskIdList.AddRange(competitiveTenderTaskList.Select(ct => ct.Id).ToList()); {
//updateCompetitiveTenderTaskIdList.AddRange(competitiveTenderTaskList.Select(ct => ct.Id).ToList());
foreach (var ctTask in competitiveTenderTaskList)
{
if (ctTask.IsUpdateQuotedPrice == true)
continue;
var scheme = relationPurchaseSchemeList.FirstOrDefault(ps => ps.Id == ctTask.SchemeId);
if (scheme == null)
continue;
var pssList = scheme.PurchaseSchemeProductList.SelectMany(psp => psp.PurchaseSchemeProductSkuList);
if (pssList.Any(pss => request.ItemList.Any(item => item.PurchaseSkuId == pss.PurchaseSkuId)))
{
//ctTask.IsUpdateQuotedPrice = true;
updateCompetitiveTenderTaskIdList.Add(ctTask.Id);
}
}
}
fsql.Transaction(() => fsql.Transaction(() =>
{ {

32
BBWYB.Server.Business/Sync/OrderSyncBusiness.cs

@ -3,6 +3,7 @@ using BBWYB.Common.Models;
using BBWYB.Server.Model; using BBWYB.Server.Model;
using BBWYB.Server.Model.Db; using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Db.BBWY; using BBWYB.Server.Model.Db.BBWY;
using BBWYB.Server.Model.Db.SpuOptimization;
using BBWYB.Server.Model.Dto; using BBWYB.Server.Model.Dto;
using FreeSql; using FreeSql;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
@ -151,7 +152,7 @@ namespace BBWYB.Server.Business.Sync
List<SkuOptimizationTask> insertSkuOptimizationTaskList = new List<SkuOptimizationTask>(); List<SkuOptimizationTask> insertSkuOptimizationTaskList = new List<SkuOptimizationTask>();
List<SpuOptimizationBargainTeamTask> insertSpuOptimizationBargainTeamTaskList = new List<SpuOptimizationBargainTeamTask>(); List<SpuOptimizationBargainTeamTask> insertSpuOptimizationBargainTeamTaskList = new List<SpuOptimizationBargainTeamTask>();
List<SpuOptimizationCompetitiveTenderTask> insertSpuOptimizationCompetitiveTenderTaskList = new List<SpuOptimizationCompetitiveTenderTask>(); List<SpuOptimizationCompetitiveTenderTask> insertSpuOptimizationCompetitiveTenderTaskList = new List<SpuOptimizationCompetitiveTenderTask>();
//List<SpuOptimizationPurchaserCompetitiveTenderTask> insertSpuOptimizationPurchaserCompetitiveTenderTaskList = new List<SpuOptimizationPurchaserCompetitiveTenderTask>();
#endregion #endregion
//等待检查sku销量的订单集合 //等待检查sku销量的订单集合
@ -418,6 +419,12 @@ namespace BBWYB.Server.Business.Sync
spuIdList.Contains(ps.ProductId)) spuIdList.Contains(ps.ProductId))
.ToList(); //需要参与竞标采购方案 .ToList(); //需要参与竞标采购方案
var waitToCompetitiveTenderSchemeIdList = waitToCompetitiveTenderSchemeList.Select(ps => ps.Id).ToList();
var waitToCompetitiveTenderSchemePurchaserList = fsql.Select<PurchaseSchemeProduct>()
.Where(psp => waitToCompetitiveTenderSchemeIdList.Contains(psp.SkuPurchaseSchemeId))
.GroupBy(psp => new { psp.SkuPurchaseSchemeId, psp.PurchaserId })
.ToList(g => new { g.Key.SkuPurchaseSchemeId, g.Key.PurchaserId }); //需要参与竞标的采购商
var waitToCheckOrderSpuGroups = waitToCheckSkuSaleOrderList.SelectMany(o => o.OrderSkuList).GroupBy(osku => osku.ProductId); var waitToCheckOrderSpuGroups = waitToCheckSkuSaleOrderList.SelectMany(o => o.OrderSkuList).GroupBy(osku => osku.ProductId);
@ -559,6 +566,9 @@ namespace BBWYB.Server.Business.Sync
var waitJoinSchemeList = waitToCompetitiveTenderSchemeList.Where(ps => ps.BelongBargainTeamId == department.Id && var waitJoinSchemeList = waitToCompetitiveTenderSchemeList.Where(ps => ps.BelongBargainTeamId == department.Id &&
skuIdList.Contains(ps.SkuId)) skuIdList.Contains(ps.SkuId))
.ToList(); .ToList();
//var waitJoinSchemeIdList = waitJoinSchemeList.Select(ps => ps.Id).ToList();
//var waitJonPurchaserList = waitToCompetitiveTenderSchemePurchaserList.Where(x => waitJoinSchemeIdList.Contains(x.SkuPurchaseSchemeId));
if (waitJoinSchemeList.Count() > 0) if (waitJoinSchemeList.Count() > 0)
{ {
insertSpuOptimizationCompetitiveTenderTaskList.AddRange(waitJoinSchemeList.Select(ps => new SpuOptimizationCompetitiveTenderTask() insertSpuOptimizationCompetitiveTenderTaskList.AddRange(waitJoinSchemeList.Select(ps => new SpuOptimizationCompetitiveTenderTask()
@ -574,6 +584,24 @@ namespace BBWYB.Server.Business.Sync
SpuOptimizationTaskId = spuOptimizationTask.Id, SpuOptimizationTaskId = spuOptimizationTask.Id,
UpdateTime = DateTime.Now UpdateTime = DateTime.Now
})); }));
//insertSpuOptimizationPurchaserCompetitiveTenderTaskList.AddRange(waitJonPurchaserList.Select(x =>
//{
// var ps = waitJoinSchemeList.FirstOrDefault(ps => ps.Id == x.SkuPurchaseSchemeId);
// return new SpuOptimizationPurchaserCompetitiveTenderTask()
// {
// Id = idGenerator.NewLong(),
// BargainTeamId = ps.BelongBargainTeamId,
// CreateTime = DateTime.Now,
// UpdateTime = DateTime.Now,
// IsUpdateQuotedPrice = false,
// PurchaserId = x.PurchaserId,
// SchemeGroupId = ps.SchemeGroupId,
// SchemeId = ps.Id,
// SkuId = ps.SkuId,
// SpuOptimizationTaskId = spuOptimizationTask.Id
// };
//}));
} }
#endregion #endregion
} }
@ -634,6 +662,8 @@ namespace BBWYB.Server.Business.Sync
fsql.Insert(insertSpuOptimizationBargainTeamTaskList).ExecuteAffrows(); fsql.Insert(insertSpuOptimizationBargainTeamTaskList).ExecuteAffrows();
if (insertSpuOptimizationCompetitiveTenderTaskList.Count() > 0) if (insertSpuOptimizationCompetitiveTenderTaskList.Count() > 0)
fsql.Insert(insertSpuOptimizationCompetitiveTenderTaskList).ExecuteAffrows(); fsql.Insert(insertSpuOptimizationCompetitiveTenderTaskList).ExecuteAffrows();
//if (insertSpuOptimizationPurchaserCompetitiveTenderTaskList.Count() > 0)
// fsql.Insert(insertSpuOptimizationPurchaserCompetitiveTenderTaskList).ExecuteAffrows();
if (updateOrderList.Count() > 0) if (updateOrderList.Count() > 0)
foreach (var update in updateOrderList) foreach (var update in updateOrderList)

60
BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationpurchasercompetitvetendertask.cs

@ -0,0 +1,60 @@
using FreeSql.DataAnnotations;
namespace BBWYB.Server.Model.Db.SpuOptimization
{
[Table(Name = "spuoptimizationpurchasercompetitivetendertask", DisableSyncStructure = true)]
public partial class SpuOptimizationPurchaserCompetitiveTenderTask
{
[Column(IsPrimary = true)]
public long Id { get; set; }
/// <summary>
/// 议价组Id
/// </summary>
[Column(StringLength = 50)]
public string BargainTeamId { get; set; }
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
[Column(DbType = "datetime")]
public DateTime? UpdateTime { get; set; }
/// <summary>
/// 是否更新报价
/// </summary>
public bool? IsUpdateQuotedPrice { get; set; } = false;
/// <summary>
/// 采购商Id
/// </summary>
[Column(StringLength = 50)]
public string PurchaserId { get; set; }
/// <summary>
/// 采购方案分组Id
/// </summary>
[Column(DbType = "bigint")]
public long? SchemeGroupId { get; set; }
/// <summary>
/// 采购方案Id
/// </summary>
[Column(DbType = "bigint")]
public long? SchemeId { get; set; }
[Column(StringLength = 50)]
public string SkuId { get; set; }
/// <summary>
/// Spu优化任务Id
/// </summary>
[Column(DbType = "bigint")]
public long? SpuOptimizationTaskId { get; set; }
}
}
Loading…
Cancel
Save