비밀번호 수정 반영

This commit is contained in:
2025-12-12 14:04:04 +09:00
parent 160b41b161
commit c50da0bc32
2 changed files with 37 additions and 12 deletions

View File

@@ -553,13 +553,36 @@ export class GenomeService {
farms.sort((a, b) => b.avgEbv - a.avgEbv);
}
// 보은군 전체 형질별 평균 EPD 계산 (모든 농가의 모든 개체 데이터 사용)
const regionTraitEpdMap = new Map<string, { sum: number; count: number }>();
for (const req of allRegionValidRequests) {
const details = traitDetailsByCowId.get(req.cow?.cowId || '') || [];
for (const detail of details) {
if (detail.traitVal !== null && detail.traitName) {
const traitName = detail.traitName;
if (!regionTraitEpdMap.has(traitName)) {
regionTraitEpdMap.set(traitName, { sum: 0, count: 0 });
}
const t = regionTraitEpdMap.get(traitName)!;
t.sum += Number(detail.traitVal);
t.count++;
}
}
}
// 형질별 평균 및 순위 계산 (표준 경쟁 순위 방식: 동률 시 같은 순위, 다음 순위 건너뜀)
const traitAverages = Array.from(traitDataMap.entries()).map(([traitName, data]) => {
const avgEbv = Math.round((data.sum / data.count) * 100) / 100;
const avgEpd = Math.round((data.epdSum / data.count) * 100) / 100; // 육종가(EPD) 평균
const avgEpd = Math.round((data.epdSum / data.count) * 100) / 100; // 농가 평균 육종가(EPD)
const rankings = traitRankingMap.get(traitName) || [];
const totalFarms = rankings.length;
// 보은군 평균 EPD 계산
const regionData = regionTraitEpdMap.get(traitName);
const regionAvgEpd = regionData && regionData.count > 0
? Math.round((regionData.sum / regionData.count) * 100) / 100
: 0;
// 표준 경쟁 순위 계산: 동률 처리
let rank: number | null = null;
const farmData = rankings.find(r => r.farmNo === farmNo);
@@ -575,7 +598,8 @@ export class GenomeService {
traitName,
category: data.category,
avgEbv,
avgEpd, // 육종가(EPD) 평균 추가
avgEpd, // 농가 평균 육종가(EPD)
regionAvgEpd, // 보은군 평균 육종가(EPD) 추가
avgPercentile: Math.round((data.percentileSum / data.count) * 100) / 100,
count: data.count,
rank,