|
|
@ -1603,6 +1603,8 @@ namespace BBWYB.Server.Business |
|
|
|
|
|
|
|
foreach (var purchasedSku in purchasedSkuList) |
|
|
|
{ |
|
|
|
if (list.Any(x => x.PurchaseSku == purchasedSku.PurchaseSkuId)) |
|
|
|
continue; |
|
|
|
var goodsSourceTag = new GoodsSourceTagResponse() |
|
|
|
{ |
|
|
|
PurchaseSku = purchasedSku.PurchaseSkuId, |
|
|
@ -1618,7 +1620,71 @@ namespace BBWYB.Server.Business |
|
|
|
#region 查询添加为采购方案的sku
|
|
|
|
if (purchaseSkuIdList.Count() > 0) |
|
|
|
{ |
|
|
|
var schemeUsedSkuList = fsql.Select<PurchaseScheme, PurchaseSchemeProductSku>() |
|
|
|
.InnerJoin((ps, pss) => ps.Id == pss.SkuPurchaseSchemeId) |
|
|
|
.Where((ps, pss) => purchaseSkuIdList.Contains(pss.PurchaseSkuId)) |
|
|
|
.GroupBy((ps, pss) => new { pss.SkuPurchaseSchemeId, pss.PurchaseSkuId, ps.BelongBargainTeamId }) |
|
|
|
.ToList(g => new |
|
|
|
{ |
|
|
|
g.Key.PurchaseSkuId, |
|
|
|
g.Key.SkuPurchaseSchemeId, |
|
|
|
g.Key.BelongBargainTeamId |
|
|
|
}); |
|
|
|
foreach (var usedSku in schemeUsedSkuList) |
|
|
|
{ |
|
|
|
if (list.Any(x => x.PurchaseSku == usedSku.PurchaseSkuId)) |
|
|
|
continue; |
|
|
|
|
|
|
|
var goodsSourceTag = new GoodsSourceTagResponse() |
|
|
|
{ |
|
|
|
PurchaseSku = usedSku.PurchaseSkuId, |
|
|
|
GoodsSourceTagType = usedSku.BelongBargainTeamId != uInfo.user.DepartmentId ? |
|
|
|
Enums.GoodsSourceTagType.其他组添加过采购方案 : |
|
|
|
Enums.GoodsSourceTagType.本组添加过采购方案 |
|
|
|
}; |
|
|
|
list.Add(goodsSourceTag); |
|
|
|
purchaseSkuIdList.Remove(usedSku.PurchaseSkuId); //排除绑定过采购方案的sku
|
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 历史采购过相同供应商的商品
|
|
|
|
if (purchaseSkuIdList.Count() > 0) |
|
|
|
{ |
|
|
|
purchaserIdList.Clear(); |
|
|
|
var goodsSourceList = requestList.Where(x => purchaseSkuIdList.Contains(x.PurchaseSkuId)).ToList(); |
|
|
|
purchaserIdList.AddRange(goodsSourceList.Select(x => x.PurchaserId).Distinct().ToList()); |
|
|
|
|
|
|
|
var purchasedBySamePurchaserList = fsql.Select<OrderPurchaseInfo, OrderPurchaseRelationInfo, PurchaseScheme>() |
|
|
|
.InnerJoin((opi, opri, ps) => opi.OrderId == opri.OrderId && |
|
|
|
opi.PurchaseOrderId == opri.PurchaseOrderId) |
|
|
|
.InnerJoin((opi, opri, ps) => opri.SchemeId == ps.Id) |
|
|
|
.Where((opi, opri, ps) => opi.IsEnabled == true && |
|
|
|
purchaserIdList.Contains(opi.PurchaserId)) |
|
|
|
.GroupBy((opi, opri, ps) => new { opi.PurchaserId, opri.SchemeId, ps.BelongBargainTeamId }) |
|
|
|
.ToList(g => new |
|
|
|
{ |
|
|
|
g.Key.PurchaserId, |
|
|
|
g.Key.SchemeId, |
|
|
|
g.Key.BelongBargainTeamId |
|
|
|
}); |
|
|
|
|
|
|
|
if (purchasedBySamePurchaserList.Count() > 0) |
|
|
|
{ |
|
|
|
foreach (var purchaserBySame in purchasedBySamePurchaserList) |
|
|
|
{ |
|
|
|
var item = goodsSourceList.FirstOrDefault(x => x.PurchaserId == purchaserBySame.PurchaserId); |
|
|
|
if (item != null && list.Any(x => x.PurchaseSku == item.PurchaseSkuId)) |
|
|
|
continue; |
|
|
|
list.Add(new GoodsSourceTagResponse() |
|
|
|
{ |
|
|
|
PurchaseSku = item.PurchaseSkuId, |
|
|
|
GoodsSourceTagType = purchaserBySame.BelongBargainTeamId != uInfo.user.DepartmentId ? |
|
|
|
Enums.GoodsSourceTagType.其他组历史采购过该供应商的商品 : |
|
|
|
Enums.GoodsSourceTagType.本组历史采购过该供应商的商品 |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|