From d671a1a104c73433c6df116770878fa502237290 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Wed, 13 Mar 2024 15:01:28 +0800
Subject: [PATCH] =?UTF-8?q?=E8=B4=A7=E6=BA=90=E6=A0=87=E8=AE=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/PurchaseSchemeController.cs | 11 +++
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 70 ++++++++++++++++++-
2 files changed, 79 insertions(+), 2 deletions(-)
diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
index cf13444..bb7412f 100644
--- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
@@ -208,5 +208,16 @@ namespace BBWYB.Server.API.Controllers
{
purchaseSchemeBusiness.BatchEditPurchaseSkuActualPrice(request, null, GetUserId());
}
+
+ ///
+ /// 货源标记接口
+ ///
+ ///
+ ///
+ [HttpPost]
+ public IList GetGoodsSourceTagsInfo([FromBody] List requestList)
+ {
+ return purchaseSchemeBusiness.GetGoodsSourceTagsInfo(requestList, GetUserId());
+ }
}
}
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index ca7f558..85f0728 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -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,
@@ -1617,8 +1619,72 @@ namespace BBWYB.Server.Business
#region 查询添加为采购方案的sku
if (purchaseSkuIdList.Count() > 0)
- {
-
+ {
+ var schemeUsedSkuList = fsql.Select()
+ .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()
+ .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