From 73b6baf6af3d88cdcb0e2df7932a9bd96b0b85c5 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期一, 01 七月 2024 22:32:34 +0800
Subject: [PATCH] 月度统计出入库按类型汇总报表定时任务和手动跑任务接口

---
 controllers/operation_type.go |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/controllers/operation_type.go b/controllers/operation_type.go
index 0ce0a9b..cf07e2f 100644
--- a/controllers/operation_type.go
+++ b/controllers/operation_type.go
@@ -7,6 +7,7 @@
 	"github.com/spf13/cast"
 	"gorm.io/gorm"
 	"strconv"
+	"strings"
 	"wms/constvar"
 	"wms/extend/code"
 	"wms/extend/util"
@@ -116,7 +117,22 @@
 		util.ResponseFormat(c, code.RequestParamError, err.Error())
 		return
 	}
-	list, total, err := models.NewOperationTypeSearch().SetPage(params.Page, params.PageSize).SetKeyword(params.Keyword).SetOrder("id desc").SetPreload(true).Find()
+	warehouseIds := make([]int, 0)
+	if "" != params.WarehouseIds {
+		for _, strId := range strings.Split(params.WarehouseIds, ",") {
+			intId, err := strconv.Atoi(strId)
+			if err != nil {
+				util.ResponseFormat(c, code.RequestParamError, err.Error())
+			}
+			warehouseIds = append(warehouseIds, intId)
+		}
+	}
+	list, total, err := models.NewOperationTypeSearch().
+		SetPage(params.Page, params.PageSize).
+		SetKeyword(params.Keyword).
+		SetOrder("id desc").
+		SetWarehouseIds(warehouseIds).
+		SetPreload(true).Find()
 	if err != nil {
 		util.ResponseFormat(c, code.RequestError, "鏌ユ壘澶辫触")
 		return
@@ -140,6 +156,9 @@
 		}
 		if value, ok := mapStatistics[strconv.Itoa(v.Id)+string(constvar.OperationStatus_Finish)]; ok {
 			list[k].FinishCount = value.Count
+		}
+		if value, ok := mapStatistics[strconv.Itoa(v.Id)+string(constvar.OperationStatus_Cancel)]; ok {
+			list[k].CancelCount = value.Count
 		}
 	}
 	util.ResponseFormatListWithPage(c, code.Success, list, cast.ToInt(total), params.Page, params.PageSize)
@@ -205,6 +224,9 @@
 		if value, ok := mapStatistics[strconv.Itoa(v.Id)+string(constvar.OperationStatus_Finish)]; ok {
 			list[k].FinishCount = value.Count
 		}
+		if value, ok := mapStatistics[strconv.Itoa(v.Id)+string(constvar.OperationStatus_Cancel)]; ok {
+			list[k].FinishCount = value.Count
+		}
 	}
 	util.ResponseFormatListWithPage(c, code.Success, list, cast.ToInt(total), params.Page, params.PageSize)
 }

--
Gitblit v1.8.0