diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-03-26 09:13:40 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-03-26 09:13:40 +0000 |
| commit | 0e2e4795c846a10d5fd617ec767e4cf74e3d0254 (patch) | |
| tree | 33dc15a5c90a0420c7eab185efcefb1f38001520 /lib/rfqs | |
| parent | 7de6735ab5196deb55eb01725e32103af52c59fe (diff) | |
fix: budgetary rfq 에서 벤더 중복 조회되는 문제 해결
Diffstat (limited to 'lib/rfqs')
| -rw-r--r-- | lib/rfqs/service.ts | 23 |
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)] }) |
