151 lines
4.1 KiB
TypeScript
151 lines
4.1 KiB
TypeScript
import { Controller, Get, Param, Query } from '@nestjs/common';
|
|
import { DashboardService } from './dashboard.service';
|
|
import { DashboardFilterDto } from './dto/dashboard-filter.dto';
|
|
|
|
@Controller('dashboard')
|
|
export class DashboardController {
|
|
constructor(private readonly dashboardService: DashboardService) {}
|
|
|
|
/**
|
|
* GET /dashboard/summary/:farmNo - 농장 현황 요약
|
|
*/
|
|
@Get('summary/:farmNo')
|
|
getFarmSummary(
|
|
@Param('farmNo') farmNo: string,
|
|
@Query() filter: DashboardFilterDto,
|
|
) {
|
|
return this.dashboardService.getFarmSummary(+farmNo, filter);
|
|
}
|
|
|
|
/**
|
|
* GET /dashboard/analysis-completion/:farmNo - 분석 완료 현황
|
|
*/
|
|
@Get('analysis-completion/:farmNo')
|
|
getAnalysisCompletion(
|
|
@Param('farmNo') farmNo: string,
|
|
@Query() filter: DashboardFilterDto,
|
|
) {
|
|
return this.dashboardService.getAnalysisCompletion(+farmNo, filter);
|
|
}
|
|
|
|
/**
|
|
* GET /dashboard/evaluation/:farmNo - 농장 종합 평가
|
|
*/
|
|
@Get('evaluation/:farmNo')
|
|
getFarmEvaluation(
|
|
@Param('farmNo') farmNo: string,
|
|
@Query() filter: DashboardFilterDto,
|
|
) {
|
|
return this.dashboardService.getFarmEvaluation(+farmNo, filter);
|
|
}
|
|
|
|
/**
|
|
* GET /dashboard/region-comparison/:farmNo - 보은군 비교 분석
|
|
*/
|
|
@Get('region-comparison/:farmNo')
|
|
getRegionComparison(
|
|
@Param('farmNo') farmNo: string,
|
|
@Query() filter: DashboardFilterDto,
|
|
) {
|
|
return this.dashboardService.getRegionComparison(+farmNo, filter);
|
|
}
|
|
|
|
/**
|
|
* GET /dashboard/cow-distribution/:farmNo - 개체 분포 분석
|
|
*/
|
|
@Get('cow-distribution/:farmNo')
|
|
getCowDistribution(
|
|
@Param('farmNo') farmNo: string,
|
|
@Query() filter: DashboardFilterDto,
|
|
) {
|
|
return this.dashboardService.getCowDistribution(+farmNo, filter);
|
|
}
|
|
|
|
/**
|
|
* GET /dashboard/kpn-aggregation/:farmNo - KPN 추천 집계
|
|
*/
|
|
@Get('kpn-aggregation/:farmNo')
|
|
getKpnRecommendationAggregation(
|
|
@Param('farmNo') farmNo: string,
|
|
@Query() filter: DashboardFilterDto,
|
|
) {
|
|
return this.dashboardService.getKpnRecommendationAggregation(+farmNo, filter);
|
|
}
|
|
|
|
/**
|
|
* GET /dashboard/farm-kpn-inventory/:farmNo - 농장 보유 KPN 목록
|
|
*/
|
|
@Get('farm-kpn-inventory/:farmNo')
|
|
getFarmKpnInventory(@Param('farmNo') farmNo: string) {
|
|
return this.dashboardService.getFarmKpnInventory(+farmNo);
|
|
}
|
|
|
|
/**
|
|
* GET /dashboard/analysis-years/:farmNo - 농장 분석 이력 연도 목록
|
|
*/
|
|
@Get('analysis-years/:farmNo')
|
|
getAnalysisYears(@Param('farmNo') farmNo: string) {
|
|
return this.dashboardService.getAnalysisYears(+farmNo);
|
|
}
|
|
|
|
/**
|
|
* GET /dashboard/analysis-years/:farmNo/latest - 최신 분석 연도
|
|
*/
|
|
@Get('analysis-years/:farmNo/latest')
|
|
getLatestAnalysisYear(@Param('farmNo') farmNo: string) {
|
|
return this.dashboardService.getLatestAnalysisYear(+farmNo);
|
|
}
|
|
|
|
/**
|
|
* GET /dashboard/year-comparison/:farmNo - 3개년 비교 분석
|
|
*/
|
|
@Get('year-comparison/:farmNo')
|
|
getYearComparison(@Param('farmNo') farmNo: string) {
|
|
return this.dashboardService.getYearComparison(+farmNo);
|
|
}
|
|
|
|
/**
|
|
* GET /dashboard/repro-efficiency/:farmNo - 번식 효율성 분석
|
|
*/
|
|
@Get('repro-efficiency/:farmNo')
|
|
getReproEfficiency(
|
|
@Param('farmNo') farmNo: string,
|
|
@Query() filter: DashboardFilterDto,
|
|
) {
|
|
return this.dashboardService.getReproEfficiency(+farmNo, filter);
|
|
}
|
|
|
|
/**
|
|
* GET /dashboard/excellent-cows/:farmNo - 우수개체 추천
|
|
*/
|
|
@Get('excellent-cows/:farmNo')
|
|
getExcellentCows(
|
|
@Param('farmNo') farmNo: string,
|
|
@Query() filter: DashboardFilterDto,
|
|
) {
|
|
return this.dashboardService.getExcellentCows(+farmNo, filter);
|
|
}
|
|
|
|
/**
|
|
* GET /dashboard/cull-cows/:farmNo - 도태개체 추천
|
|
*/
|
|
@Get('cull-cows/:farmNo')
|
|
getCullCows(
|
|
@Param('farmNo') farmNo: string,
|
|
@Query() filter: DashboardFilterDto,
|
|
) {
|
|
return this.dashboardService.getCullCows(+farmNo, filter);
|
|
}
|
|
|
|
/**
|
|
* GET /dashboard/cattle-ranking/:farmNo - 보은군 내 소 개별 순위
|
|
*/
|
|
@Get('cattle-ranking/:farmNo')
|
|
getCattleRankingInRegion(
|
|
@Param('farmNo') farmNo: string,
|
|
@Query() filter: DashboardFilterDto,
|
|
) {
|
|
return this.dashboardService.getCattleRankingInRegion(+farmNo, filter);
|
|
}
|
|
}
|