summaryrefslogtreecommitdiff
path: root/lib/rfqs
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-03-26 09:13:40 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-03-26 09:13:40 +0000
commit0e2e4795c846a10d5fd617ec767e4cf74e3d0254 (patch)
tree33dc15a5c90a0420c7eab185efcefb1f38001520 /lib/rfqs
parent7de6735ab5196deb55eb01725e32103af52c59fe (diff)
fix: budgetary rfq 에서 벤더 중복 조회되는 문제 해결
Diffstat (limited to 'lib/rfqs')
-rw-r--r--lib/rfqs/service.ts23
1 files changed, 11 insertions, 12 deletions
diff --git a/lib/rfqs/service.ts b/lib/rfqs/service.ts
index a182af49..6b8b4738 100644
--- a/lib/rfqs/service.ts
+++ b/lib/rfqs/service.ts
@@ -625,20 +625,14 @@ export async function getMatchedVendors(input: GetMatchedVendorsSchema, rfqId: n
)
}
- // console.log("itemRows: ", itemRows)
- // console.log("vendorIdList: ",vendorIdList)
- // console.log("globalWhere: ",globalWhere)
- // console.log("vendorRfqView.vendorId: ",vendorRfqView.vendorId)
- // console.log("condition1: ",inArray(vendorRfqView.vendorId, vendorIdList))
- // console.log("condition2: ",eq(vendorRfqView.rfqId, rfqId))
- // console.log("finalWhere: ",finalWhere)
-
// (다) 최종 where
// vendorId가 vendorIdList 내에 있어야 하고,
// 특정 rfqId(뷰에 담긴 값)도 일치해야 함.
const finalWhere = and(
inArray(vendorRfqView.vendorId, vendorIdList),
- // eq(vendorRfqView.rfqId, rfqId),
+ // 아래 라인은 rfq에 초대된 벤더만 필터링하는 조건으로 추정되지만
+ // rfq 를 진행하기 전에도 벤더를 보여줘야 하므로 주석처리하겠습니다
+ // eq(vendorRfqView.rfqId, rfqId),
advancedWhere,
globalWhere
)
@@ -677,13 +671,18 @@ export async function getMatchedVendors(input: GetMatchedVendorsSchema, rfqId: n
.offset(offset)
.limit(limit)
- // 총 개수
+ // 중복 제거된 데이터 생성
+ const distinctData = Array.from(
+ new Map(data.map(row => [row.id, row])).values()
+ )
+
+ // 중복 제거된 총 개수 계산
const [{ count }] = await tx
- .select({ count: sql<number>`count(*)`.as("count") })
+ .select({ count: sql<number>`count(DISTINCT ${vendorRfqView.vendorId})`.as("count") })
.from(vendorRfqView)
.where(finalWhere)
- return [data, Number(count)]
+ return [distinctData, Number(count)]
})