add api daily checklist report

This commit is contained in:
MacBook Air M1
2026-01-07 17:39:17 +07:00
parent e545047165
commit c3f8ae5887
6 changed files with 704 additions and 47 deletions
@@ -19,15 +19,18 @@ type DailyChecklistRelationDTO struct {
}
type DailyChecklistListDTO struct {
Id uint `json:"id"`
Name string `json:"name"`
Status string `json:"status"`
Category string `json:"category"`
Date time.Time `json:"date"`
Kandang *kandangDTO.KandangRelationDTO `json:"kandang,omitempty"`
CreatedUser *userDTO.UserRelationDTO `json:"created_user"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
Id uint `json:"id"`
Name string `json:"name"`
Status string `json:"status"`
Category string `json:"category"`
Date time.Time `json:"date"`
Kandang *kandangDTO.KandangRelationDTO `json:"kandang,omitempty"`
CreatedUser *userDTO.UserRelationDTO `json:"created_user"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
TotalPhase int `json:"total_phase"`
TotalActivity int `json:"total_activity"`
Progress int `json:"progress"`
}
type DailyChecklistDetailDTO struct {
@@ -59,6 +62,35 @@ type DailyChecklistPerformanceOverviewDTO struct {
ActivityLeft int `json:"activity_left"`
}
type DailyChecklistReportDTO struct {
Area DailyChecklistReportEntityDTO `json:"area"`
Farm DailyChecklistReportEntityDTO `json:"farm"`
Kandang DailyChecklistReportEntityDTO `json:"kandang"`
ABK DailyChecklistReportEntityDTO `json:"abk"`
Phase string `json:"phase"`
DailyActivities map[string]int `json:"daily_activities"`
Summary DailyChecklistReportSummaryDTO `json:"summary"`
}
type DailyChecklistReportEntityDTO struct {
Id uint `json:"id"`
Name string `json:"name"`
}
type DailyChecklistReportSummaryDTO struct {
TotalChecklist int `json:"total_checklist"`
JumlahHariEfektif int `json:"jumlah_hari_efektif"`
AbkPercentage int `json:"abk_percentage"`
KandangPercentage int `json:"kandang_percentage"`
Kategori DailyChecklistReportCategoryDTO `json:"kategori"`
}
type DailyChecklistReportCategoryDTO struct {
Kurang int `json:"kurang"`
Cukup int `json:"cukup"`
Baik int `json:"baik"`
}
type DailyChecklistPhaseDTO struct {
Id uint `json:"id"`
PhaseId uint `json:"phase_id"`
@@ -121,26 +153,21 @@ func ToDailyChecklistListDTO(e entity.DailyChecklist) DailyChecklistListDTO {
}
return DailyChecklistListDTO{
Id: e.Id,
Name: name,
Status: status,
Category: e.Category,
Date: e.Date,
Kandang: kandang,
CreatedAt: e.CreatedAt,
UpdatedAt: e.UpdatedAt,
CreatedUser: createdUser,
Id: e.Id,
Name: name,
Status: status,
Category: e.Category,
Date: e.Date,
Kandang: kandang,
CreatedAt: e.CreatedAt,
UpdatedAt: e.UpdatedAt,
CreatedUser: createdUser,
TotalPhase: 0,
TotalActivity: 0,
Progress: 0,
}
}
func ToDailyChecklistListDTOs(e []entity.DailyChecklist) []DailyChecklistListDTO {
result := make([]DailyChecklistListDTO, len(e))
for i, r := range e {
result[i] = ToDailyChecklistListDTO(r)
}
return result
}
func ToDailyChecklistDetailDTO(checklist entity.DailyChecklist, phases []entity.DailyChecklistPhase, tasks []entity.DailyChecklistActivityTask, assignedEmployees []entity.Employee, totalActivities int, progress float64) DailyChecklistDetailDTO {
phaseDTOs := make([]DailyChecklistPhaseDTO, 0, len(phases))
for _, phase := range phases {