@ -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 relationPurchaseSchemeId List = 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 ( ( ) = >
{
{