update_cow_list_ui

This commit is contained in:
NYD
2026-01-07 15:13:42 +09:00
parent 0780f2e47c
commit dae3808221
10 changed files with 1081 additions and 502 deletions

View File

@@ -1874,4 +1874,69 @@ export class GenomeService {
},
};
}
/**
* 농장의 가장 최근 분석 연도 조회
* chip_report_dt 또는 ms_report_dt 중 가장 최근 날짜의 년도 반환
* 둘 다 없으면 현재 년도 반환
*
* @param farmNo - 농장 번호
* @returns { year: number } - 가장 최근 분석 연도
*/
async getLatestAnalysisYear(farmNo: number): Promise<{ year: number }> {
console.log(`[getLatestAnalysisYear] farmNo: ${farmNo}`);
// 농장의 모든 분석 의뢰 조회
const requests = await this.genomeRequestRepository.find({
where: { fkFarmNo: farmNo, delDt: IsNull() },
select: ['chipReportDt', 'msReportDt'],
});
console.log(`[getLatestAnalysisYear] Found ${requests?.length || 0} requests`);
if (!requests || requests.length === 0) {
console.log('[getLatestAnalysisYear] No requests found, returning current year');
return { year: new Date().getFullYear() };
}
// chip_report_dt와 ms_report_dt 중 가장 최근 날짜 찾기
let latestDate: Date | null = null;
let latestChipDate: Date | null = null;
let latestMsDate: Date | null = null;
for (const request of requests) {
// chip_report_dt 확인
if (request.chipReportDt) {
const chipDate = new Date(request.chipReportDt);
if (!latestChipDate || chipDate > latestChipDate) {
latestChipDate = chipDate;
}
if (!latestDate || chipDate > latestDate) {
latestDate = chipDate;
}
}
// ms_report_dt 확인
if (request.msReportDt) {
const msDate = new Date(request.msReportDt);
if (!latestMsDate || msDate > latestMsDate) {
latestMsDate = msDate;
}
if (!latestDate || msDate > latestDate) {
latestDate = msDate;
}
}
}
console.log(`[getLatestAnalysisYear] Latest chip_report_dt: ${latestChipDate?.toISOString()}`);
console.log(`[getLatestAnalysisYear] Latest ms_report_dt: ${latestMsDate?.toISOString()}`);
console.log(`[getLatestAnalysisYear] Latest date overall: ${latestDate?.toISOString()}`);
// 가장 최근 날짜가 있으면 그 연도, 없으면 현재 연도
const year = latestDate ? latestDate.getFullYear() : new Date().getFullYear();
console.log(`[getLatestAnalysisYear] Returning year: ${year}`);
return { year };
}
}