update_cow_list_ui
This commit is contained in:
@@ -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 };
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user