mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-20 13:31:56 +00:00
feat/BE/US-282/TASK-301,302,303-Adjust Schema Database, Adjust Validation and Req Body, and fixing daily gain, and change logic daily gain
This commit is contained in:
@@ -804,14 +804,10 @@ func (s *recordingService) computeAndUpdateMetrics(ctx context.Context, tx *gorm
|
|||||||
return fmt.Errorf("getFeedUsageInGrams: %w", err)
|
return fmt.Errorf("getFeedUsageInGrams: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
fcrId, err := s.Repository.GetFcrID(tx, recording.ProjectFlockKandangId)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("getFcrID: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
currentAvgGrams := recordingutil.ToGrams(currentAvgWeight)
|
currentAvgGrams := recordingutil.ToGrams(currentAvgWeight)
|
||||||
currentAvgKg := recordingutil.GramsToKg(currentAvgGrams)
|
currentAvgKg := recordingutil.GramsToKg(currentAvgGrams)
|
||||||
prevAvgGrams := recordingutil.ToGrams(prevAvgWeight)
|
prevAvgGrams := recordingutil.ToGrams(prevAvgWeight)
|
||||||
|
prevAvgKg := recordingutil.GramsToKg(prevAvgGrams)
|
||||||
|
|
||||||
currentDepletion := float64(totalDepletionQty)
|
currentDepletion := float64(totalDepletionQty)
|
||||||
cumDepletionQty := prevCumDepletionQty + currentDepletion
|
cumDepletionQty := prevCumDepletionQty + currentDepletion
|
||||||
@@ -821,9 +817,10 @@ func (s *recordingService) computeAndUpdateMetrics(ctx context.Context, tx *gorm
|
|||||||
}
|
}
|
||||||
recording.TotalDepletionQty = &cumDepletionQty
|
recording.TotalDepletionQty = &cumDepletionQty
|
||||||
|
|
||||||
|
var remainingChick float64
|
||||||
if totalChick > 0 {
|
if totalChick > 0 {
|
||||||
totalChickFloat := float64(totalChick)
|
totalChickFloat := float64(totalChick)
|
||||||
remainingChick := totalChickFloat - cumDepletionQty
|
remainingChick = totalChickFloat - cumDepletionQty
|
||||||
if remainingChick < 0 {
|
if remainingChick < 0 {
|
||||||
remainingChick = 0
|
remainingChick = 0
|
||||||
}
|
}
|
||||||
@@ -848,24 +845,19 @@ func (s *recordingService) computeAndUpdateMetrics(ctx context.Context, tx *gorm
|
|||||||
updates["daily_gain"] = dailyGainKg
|
updates["daily_gain"] = dailyGainKg
|
||||||
recording.DailyGain = &dailyGainKg
|
recording.DailyGain = &dailyGainKg
|
||||||
} else {
|
} else {
|
||||||
updates["daily_gain"] = gorm.Expr("NULL")
|
dailyGainKg := 0.0
|
||||||
recording.DailyGain = nil
|
updates["daily_gain"] = dailyGainKg
|
||||||
|
recording.DailyGain = &dailyGainKg
|
||||||
}
|
}
|
||||||
|
|
||||||
if fcrId != 0 && currentAvgKg > 0 && day > 0 {
|
if currentAvgKg > 0 && remainingChick > 0 {
|
||||||
if fcrWeightKg, ok, err := s.Repository.GetFcrStandardWeightKg(tx, fcrId, currentAvgKg); err != nil {
|
avgDailyGain := (currentAvgKg - prevAvgKg) / remainingChick
|
||||||
return fmt.Errorf("getFcrStandardWeightKg: %w", err)
|
updates["avg_daily_gain"] = avgDailyGain
|
||||||
} else if ok {
|
recording.AvgDailyGain = &avgDailyGain
|
||||||
avgDailyGain := (currentAvgKg - fcrWeightKg) / float64(day)
|
|
||||||
updates["avg_daily_gain"] = avgDailyGain
|
|
||||||
recording.AvgDailyGain = &avgDailyGain
|
|
||||||
} else {
|
|
||||||
updates["avg_daily_gain"] = gorm.Expr("NULL")
|
|
||||||
recording.AvgDailyGain = nil
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
updates["avg_daily_gain"] = gorm.Expr("NULL")
|
avgDailyGain := 0.0
|
||||||
recording.AvgDailyGain = nil
|
updates["avg_daily_gain"] = avgDailyGain
|
||||||
|
recording.AvgDailyGain = &avgDailyGain
|
||||||
}
|
}
|
||||||
|
|
||||||
if usageInGrams > 0 && totalChick > 0 {
|
if usageInGrams > 0 && totalChick > 0 {
|
||||||
|
|||||||
Reference in New Issue
Block a user