From 0d1663e698b2844cae2cee87cdaec99b8a1289a5 Mon Sep 17 00:00:00 2001 From: chu eun ju Date: Thu, 25 Dec 2025 15:57:12 +0900 Subject: [PATCH] =?UTF-8?q?service=20=EB=A1=9C=EC=A7=81=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/genome/genome.service.ts | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/backend/src/genome/genome.service.ts b/backend/src/genome/genome.service.ts index c2a69fa..d2e81e0 100644 --- a/backend/src/genome/genome.service.ts +++ b/backend/src/genome/genome.service.ts @@ -241,16 +241,20 @@ export class GenomeService { // 보은군 내 모든 농가의 형질별 평균 EBV 계산 const allFarmsTraitMap = new Map>(); - // 보은군 내 모든 분석 완료된 요청 조회 (traitDetails 포함) - const allRegionValidRequests = await this.genomeRequestRepository + // 보은군 전체 요청 조회 (한번만 조회하여 재사용) + const allRegionRequests = await this.genomeRequestRepository .createQueryBuilder('req') .leftJoinAndSelect('req.cow', 'cow') .leftJoinAndSelect('req.farm', 'farm') .leftJoinAndSelect('req.traitDetails', 'traitDetails') .where('req.delDt IS NULL') - .andWhere('req.chipSireName = :match', { match: '일치' }) .getMany(); + // 분석 완료된 요청만 필터링 (chipSireName = '일치') + const allRegionValidRequests = allRegionRequests.filter( + r => r.chipSireName === '일치' + ); + for (const req of allRegionValidRequests) { const reqFarmNo = req.fkFarmNo; if (!reqFarmNo) continue; @@ -370,13 +374,7 @@ export class GenomeService { })), })); - // 보은군 전체 연도별 평균 계산을 위한 데이터 조회 (traitDetails 포함) - const allRegionRequests = await this.genomeRequestRepository.find({ - where: { delDt: IsNull() }, - relations: ['cow', 'traitDetails'], - }); - - // 보은군 연도별 형질 데이터 수집 + // 보은군 연도별 형질 데이터 수집 (위에서 조회한 allRegionRequests 재사용) const regionYearlyTraitMap = new Map>(); for (const req of allRegionRequests) { if (!isValidGenomeAnalysis(req.chipSireName, req.chipDamName, req.cow?.cowId)) continue;