service 로직 수정

This commit is contained in:
2025-12-25 15:57:12 +09:00
parent 2877a474eb
commit 0d1663e698

View File

@@ -241,16 +241,20 @@ export class GenomeService {
// 보은군 내 모든 농가의 형질별 평균 EBV 계산 // 보은군 내 모든 농가의 형질별 평균 EBV 계산
const allFarmsTraitMap = new Map<number, Map<string, { sum: number; count: number }>>(); const allFarmsTraitMap = new Map<number, Map<string, { sum: number; count: number }>>();
// 보은군 내 모든 분석 완료된 요청 조회 (traitDetails 포함) // 보은군 전체 요청 조회 (한번만 조회하여 재사용)
const allRegionValidRequests = await this.genomeRequestRepository const allRegionRequests = await this.genomeRequestRepository
.createQueryBuilder('req') .createQueryBuilder('req')
.leftJoinAndSelect('req.cow', 'cow') .leftJoinAndSelect('req.cow', 'cow')
.leftJoinAndSelect('req.farm', 'farm') .leftJoinAndSelect('req.farm', 'farm')
.leftJoinAndSelect('req.traitDetails', 'traitDetails') .leftJoinAndSelect('req.traitDetails', 'traitDetails')
.where('req.delDt IS NULL') .where('req.delDt IS NULL')
.andWhere('req.chipSireName = :match', { match: '일치' })
.getMany(); .getMany();
// 분석 완료된 요청만 필터링 (chipSireName = '일치')
const allRegionValidRequests = allRegionRequests.filter(
r => r.chipSireName === '일치'
);
for (const req of allRegionValidRequests) { for (const req of allRegionValidRequests) {
const reqFarmNo = req.fkFarmNo; const reqFarmNo = req.fkFarmNo;
if (!reqFarmNo) continue; if (!reqFarmNo) continue;
@@ -370,13 +374,7 @@ export class GenomeService {
})), })),
})); }));
// 보은군 전체 연도별 평균 계산을 위한 데이터 조회 (traitDetails 포함) // 보은군 연도별 형질 데이터 수집 (위에서 조회한 allRegionRequests 재사용)
const allRegionRequests = await this.genomeRequestRepository.find({
where: { delDt: IsNull() },
relations: ['cow', 'traitDetails'],
});
// 보은군 연도별 형질 데이터 수집
const regionYearlyTraitMap = new Map<number, Map<string, { sum: number; count: number }>>(); const regionYearlyTraitMap = new Map<number, Map<string, { sum: number; count: number }>>();
for (const req of allRegionRequests) { for (const req of allRegionRequests) {
if (!isValidGenomeAnalysis(req.chipSireName, req.chipDamName, req.cow?.cowId)) continue; if (!isValidGenomeAnalysis(req.chipSireName, req.chipDamName, req.cow?.cowId)) continue;