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;