From c2d8e537bb18c0892c0df6686ee5f5b5023f5bbb Mon Sep 17 00:00:00 2001 From: jiangshuai <291802688@qq.com> Date: 星期一, 25 九月 2023 17:58:41 +0800 Subject: [PATCH] 1.修改业务类型列表接口,增加已就绪和已完成数量的统计 --- controllers/operation_type.go | 30 ++++++++++++++++++++++++++---- 1 files changed, 26 insertions(+), 4 deletions(-) diff --git a/controllers/operation_type.go b/controllers/operation_type.go index 3d21412..8737781 100644 --- a/controllers/operation_type.go +++ b/controllers/operation_type.go @@ -6,6 +6,8 @@ "github.com/gin-gonic/gin" "github.com/spf13/cast" "gorm.io/gorm" + "strconv" + "wms/constvar" "wms/extend/code" "wms/extend/util" "wms/models" @@ -106,7 +108,7 @@ // @Summary 鏌ヨ浣滀笟绫诲瀷鍒楄〃 // @Produce application/json // @Param object query request.GetOperationTypeList true "鏌ヨ鍙傛暟" -// @Success 200 {object} util.ResponseList{data=[]models.OperationType} "鎴愬姛" +// @Success 200 {object} util.ResponseList "鎴愬姛" // @Router /api-wms/v1/operationType/operationType [get] func (slf OperationTypeController) List(c *gin.Context) { var params request.GetOperationTypeList @@ -116,11 +118,31 @@ } list, total, err := models.NewOperationTypeSearch().SetPage(params.Page, params.PageSize).SetKeyword(params.Keyword).SetOrder("id desc").SetPreload(true).Find() if err != nil { - util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触") + util.ResponseFormat(c, code.RequestError, "鏌ユ壘澶辫触") return } - - util.ResponseFormatList(c, code.Success, list, cast.ToInt(total)) + var idList []int + for _, v := range list { + idList = append(idList, v.Id) + } + statistics, err := models.NewOperationTypeSearch().ListByStatusAndCount(idList) + if err != nil { + util.ResponseFormat(c, code.RequestError, err.Error()) + return + } + mapStatistics := make(map[string]*models.OperationTypeByStatus, 0) + for _, v := range statistics { + mapStatistics[strconv.Itoa(v.Id)+string(v.Status)] = v + } + for k, v := range list { + if value, ok := mapStatistics[strconv.Itoa(v.Id)+string(constvar.OperationStatus_Ready)]; ok { + list[k].ReadyCount = value.Count + } + if value, ok := mapStatistics[strconv.Itoa(v.Id)+string(constvar.OperationStatus_Finish)]; ok { + list[k].FinishCount = value.Count + } + } + util.ResponseFormatListWithPage(c, code.Success, list, cast.ToInt(total), params.Page, params.PageSize) } // Delete -- Gitblit v1.8.0