|
@@ -54,12 +54,18 @@ func AnalysisAccuracyService(req *models.AnalysisAccuracyRequest) (*models.Analy
|
|
|
SprinkleFodderCorrectRatio: make([]*models.PastureAnalysisAccuracyDataValue, 0),
|
|
|
}
|
|
|
|
|
|
- // 混料和撒料准确率
|
|
|
+ // 混料准确率
|
|
|
mixedFodderDataList, err := module.MixedFodderData(req)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
|
|
|
+ // 撒料准确率
|
|
|
+ sprinkleFodderDataList, err := module.SprinkleFodderData(req)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
// 混料正确率
|
|
|
mixedFodderCorrectDataList, err := module.MixedFodderCorrectData(req)
|
|
|
if err != nil {
|
|
@@ -71,41 +77,63 @@ func AnalysisAccuracyService(req *models.AnalysisAccuracyRequest) (*models.Analy
|
|
|
|
|
|
timeList := util.TimeBetween(req.StartDate, req.EndDate)
|
|
|
for _, dayTime := range timeList {
|
|
|
- var mixedInfo, mixedCorrectInfo, sprinkleInfo bool
|
|
|
+ var mixedInfo, sprinkleInfo, mixedCorrectInfo, sprinkleCorrectInfo bool
|
|
|
for _, mixed := range mixedFodderDataList {
|
|
|
- myDate := mixed.MyDate.Format(util.LayoutDateFormat)
|
|
|
+ myDate := mixed.Date.Format(util.LayoutDateFormat)
|
|
|
if myDate != dayTime {
|
|
|
continue
|
|
|
}
|
|
|
// 混料准确率
|
|
|
var mixedFodderAccurateRatio float64 = 0
|
|
|
- if mixed.Lweight > 0 && mixed.Iweight > 0 {
|
|
|
- mixedFodderAccurateRatio = float64(mixed.Iweight) / mixed.Lweight * 100
|
|
|
+ if mixed.Lweight > 0 && mixed.ActualWeightMinus > 0 {
|
|
|
+ if mixed.Lweight > mixed.ActualWeightMinus {
|
|
|
+ mixedFodderAccurateRatio = mixed.Lweight / mixed.ActualWeightMinus * 100
|
|
|
+ } else {
|
|
|
+ mixedFodderAccurateRatio = mixed.ActualWeightMinus / mixed.Lweight * 100
|
|
|
+ }
|
|
|
}
|
|
|
mixedValue := &models.PastureAnalysisAccuracyDataValue{
|
|
|
DayTime: dayTime,
|
|
|
Ratio: mixedFodderAccurateRatio,
|
|
|
}
|
|
|
response.MixedFodderAccurateRatio = append(response.MixedFodderAccurateRatio, mixedValue)
|
|
|
+ mixedInfo = true
|
|
|
+ }
|
|
|
+ if !mixedInfo {
|
|
|
+ noInfo := &models.PastureAnalysisAccuracyDataValue{
|
|
|
+ DayTime: dayTime,
|
|
|
+ Ratio: 0,
|
|
|
+ }
|
|
|
+ response.MixedFodderAccurateRatio = append(response.MixedFodderAccurateRatio, noInfo)
|
|
|
+ }
|
|
|
|
|
|
+ for _, sprinkle := range sprinkleFodderDataList {
|
|
|
+ myDate := sprinkle.Date.Format(util.LayoutDateFormat)
|
|
|
+ if myDate != dayTime {
|
|
|
+ continue
|
|
|
+ }
|
|
|
// 撒料准确率
|
|
|
var sprinkleFodderAccurateRatio float64 = 0
|
|
|
- if mixed.Lweight > 0 && mixed.Iweight > 0 {
|
|
|
- sprinkleFodderAccurateRatio = float64(mixed.Oweight) / mixed.Lweight * 100
|
|
|
+ if sprinkle.Lweight > 0 && sprinkle.ActualWeightMinus > 0 {
|
|
|
+ if sprinkle.Lweight > sprinkle.ActualWeightMinus {
|
|
|
+ sprinkleFodderAccurateRatio = sprinkle.Lweight / sprinkle.ActualWeightMinus * 100
|
|
|
+ } else {
|
|
|
+ sprinkleFodderAccurateRatio = sprinkle.ActualWeightMinus / sprinkle.Lweight * 100
|
|
|
+ }
|
|
|
}
|
|
|
sprinkleValue := &models.PastureAnalysisAccuracyDataValue{
|
|
|
DayTime: dayTime,
|
|
|
Ratio: sprinkleFodderAccurateRatio,
|
|
|
}
|
|
|
response.SprinkleFodderAccurateRatio = append(response.SprinkleFodderAccurateRatio, sprinkleValue)
|
|
|
- mixedInfo = true
|
|
|
+ sprinkleInfo = true
|
|
|
}
|
|
|
- if !mixedInfo {
|
|
|
+
|
|
|
+ if !sprinkleInfo {
|
|
|
noInfo := &models.PastureAnalysisAccuracyDataValue{
|
|
|
DayTime: dayTime,
|
|
|
Ratio: 0,
|
|
|
}
|
|
|
- response.MixedFodderAccurateRatio = append(response.MixedFodderAccurateRatio, noInfo)
|
|
|
response.SprinkleFodderAccurateRatio = append(response.SprinkleFodderAccurateRatio, noInfo)
|
|
|
}
|
|
|
|
|
@@ -152,9 +180,9 @@ func AnalysisAccuracyService(req *models.AnalysisAccuracyRequest) (*models.Analy
|
|
|
Ratio: float64(sprinkle.SprinkleCorrectNumber) / float64(sprinkle.UseSprinkleOptionNumber) * 100,
|
|
|
})
|
|
|
}
|
|
|
- sprinkleInfo = true
|
|
|
+ sprinkleCorrectInfo = true
|
|
|
}
|
|
|
- if !sprinkleInfo {
|
|
|
+ if !sprinkleCorrectInfo {
|
|
|
response.SprinkleFodderCorrectRatio = append(response.SprinkleFodderCorrectRatio, &models.PastureAnalysisAccuracyDataValue{
|
|
|
DayTime: dayTime,
|
|
|
Ratio: 0,
|