package statistic import ( "kpt-tmr-group/http/middleware" "kpt-tmr-group/pkg/apierr" "kpt-tmr-group/pkg/ginutil" "kpt-tmr-group/pkg/valid" operationPb "kpt-tmr-group/proto/go/backend/operation" "net/http" "github.com/gin-gonic/gin" ) // SearchFormulaEstimateList 配方评估 func SearchFormulaEstimateList(c *gin.Context) { var req operationPb.SearchFormulaEstimateRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.ApiName, valid.Required), valid.Field(&req.PastureId, valid.Required), valid.Field(&req.StartTime, valid.Required), valid.Field(&req.EndTime, valid.Required), valid.Field(&req.SearchType, valid.Required, valid.Min(0), valid.Max(2)), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } req.Pagination = &operationPb.PaginationModel{ Page: int32(c.GetInt(middleware.Page)), PageSize: int32(c.GetInt(middleware.PageSize)), PageOffset: int32(c.GetInt(middleware.PageOffset)), } res, err := middleware.BackendOperation(c).OpsService.SearchFormulaEstimateList(c, &req) if err != nil { apierr.ClassifiedAbort(c, err) return } c.JSON(http.StatusOK, res) } // SearchInventoryStatistics 库存管理-库存统计 func SearchInventoryStatistics(c *gin.Context) { var req operationPb.SearchInventoryStatisticsRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.ApiName, valid.Required), valid.Field(&req.PastureId, valid.Required), valid.Field(&req.StartTime, valid.Required), valid.Field(&req.EndTime, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } req.Pagination = &operationPb.PaginationModel{ Page: int32(c.GetInt(middleware.Page)), PageSize: int32(c.GetInt(middleware.PageSize)), PageOffset: int32(c.GetInt(middleware.PageOffset)), } res, err := middleware.BackendOperation(c).OpsService.SearchInventoryStatistics(c, &req) if err != nil { apierr.ClassifiedAbort(c, err) return } c.JSON(http.StatusOK, res) } // SearchUserMaterialsStatistics 库存管理-用料分析 func SearchUserMaterialsStatistics(c *gin.Context) { var req operationPb.SearchUserMaterialsStatisticsRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.ApiName, valid.Required), valid.Field(&req.PastureId, valid.Required), valid.Field(&req.StartTime, valid.Required), valid.Field(&req.EndTime, valid.Required), valid.Field(&req.TypeCheck, valid.Required, valid.Min(1), valid.Max(2)), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } req.Pagination = &operationPb.PaginationModel{ Page: int32(c.GetInt(middleware.Page)), PageSize: int32(c.GetInt(middleware.PageSize)), PageOffset: int32(c.GetInt(middleware.PageOffset)), } res, err := middleware.BackendOperation(c).OpsService.SearchUserMaterialsStatistics(c, &req) if err != nil { apierr.ClassifiedAbort(c, err) return } c.JSON(http.StatusOK, res) } // SearchPriceStatistics 库存管理-价格分析 func SearchPriceStatistics(c *gin.Context) { var req operationPb.SearchUserMaterialsStatisticsRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.ApiName, valid.Required), valid.Field(&req.PastureId, valid.Required), valid.Field(&req.StartTime, valid.Required), valid.Field(&req.EndTime, valid.Required), valid.Field(&req.TypeCheck, valid.Required, valid.Min(1), valid.Max(2)), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } req.Pagination = &operationPb.PaginationModel{ Page: int32(c.GetInt(middleware.Page)), PageSize: int32(c.GetInt(middleware.PageSize)), PageOffset: int32(c.GetInt(middleware.PageOffset)), } res, err := middleware.BackendOperation(c).OpsService.SearchUserMaterialsStatistics(c, &req) if err != nil { apierr.ClassifiedAbort(c, err) return } c.JSON(http.StatusOK, res) } // SearchFeedStatistics 饲喂效率-效率统计 func SearchFeedStatistics(c *gin.Context) { var req operationPb.SearchFeedStatisticsRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.ApiName, valid.Required), valid.Field(&req.PastureId, valid.Required), valid.Field(&req.StartTime, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } req.Pagination = &operationPb.PaginationModel{ Page: int32(c.GetInt(middleware.Page)), PageSize: int32(c.GetInt(middleware.PageSize)), PageOffset: int32(c.GetInt(middleware.PageOffset)), } res, err := middleware.BackendOperation(c).OpsService.SearchFeedStatistics(c, &req) if err != nil { apierr.ClassifiedAbort(c, err) return } c.JSON(http.StatusOK, res) } // SearchFeedChartStatistics 饲喂效率-chart图表分析 func SearchFeedChartStatistics(c *gin.Context) { var req operationPb.FeedChartStatisticsRequest if err := ginutil.BindProto(c, &req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.PastureId, valid.Required), valid.Field(&req.StartTime, valid.Required), valid.Field(&req.EndTime, valid.Required), valid.Field(&req.ApiType, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } res, err := middleware.BackendOperation(c).OpsService.FeedChartStatistics(c, &req) if err != nil { apierr.ClassifiedAbort(c, err) return } c.JSON(http.StatusOK, res) } // AnalysisAccuracy 准备性分析 func AnalysisAccuracy(c *gin.Context) { var req operationPb.SearchAnalysisAccuracyRequest if err := c.BindJSON(&req); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } if err := valid.ValidateStruct(&req, valid.Field(&req.PastureIds, valid.Required), valid.Field(&req.CattleParentCategoryId, valid.Required), ); err != nil { apierr.AbortBadRequest(c, http.StatusBadRequest, err) return } res, err := middleware.BackendOperation(c).OpsService.SearchAnalysisAccuracy(c, &req) if err != nil { apierr.ClassifiedAbort(c, err) return } c.JSON(http.StatusOK, res) //ginutil.JSONResp(c, res) }