비밀번호 수정 반영
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user