From 19bbf202e4f38f067db9c2800e764512ad67dcd9 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期四, 27 六月 2024 22:34:32 +0800
Subject: [PATCH] 当月的统计报表(未至库存结算时间点)支持实时查询入库数量出库数量期末数量

---
 controllers/report_forms_controller.go |   34 ++++++++++++++++++++++++++++++++++
 1 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/controllers/report_forms_controller.go b/controllers/report_forms_controller.go
index 5f907fa..e3346ae 100644
--- a/controllers/report_forms_controller.go
+++ b/controllers/report_forms_controller.go
@@ -5,9 +5,11 @@
 	"github.com/shopspring/decimal"
 	"net/url"
 	"os"
+	"time"
 	"wms/constvar"
 	"wms/extend/code"
 	"wms/extend/util"
+	"wms/models"
 	"wms/pkg/logx"
 	"wms/request"
 	"wms/service"
@@ -335,6 +337,7 @@
 		util.ResponseFormat(c, code.InternalError, "鏌ヨ鎬绘暟澶辫触")
 		return
 	}
+
 	result, err := monthFormsService.Query(params)
 	if err != nil {
 		logx.Errorf("MonthStats query err:%v", err)
@@ -342,6 +345,37 @@
 		return
 	}
 
+	now := time.Now().Local()
+	today := now.Day()
+	nowMonth := now.Format("2006-01")
+
+	day, dateStr, err := service.NewSystemConfigService().GetInventoryCutOffPoint()
+	if nowMonth == params.Date && today < day || today == day && now.Format("15:04") < dateStr { //鏈湀鏈嚦缁撶畻鏃堕棿鐐�
+		productIds := make([]string, 0, len(result))
+		for _, item := range result {
+			productIds = append(productIds, item.ProductId)
+		}
+		statsRecords, err := service.GetCurrentStats(params.Date, productIds)
+		if err != nil {
+			util.ResponseFormat(c, code.InternalError, "鍐呴儴閿欒")
+			return
+		}
+		statsMap := models.MonthStatsMap(statsRecords)
+		for k, v := range result {
+			if statsMap[v.ProductId] == nil {
+				continue
+			}
+
+			result[k].OutputAmount = statsMap[v.ProductId].OutputAmount
+			result[k].OutputMoreUnits = statsMap[v.ProductId].OutputMoreUnits
+			result[k].EndAmount = statsMap[v.ProductId].EndAmount
+			result[k].EndMoreUnits = statsMap[v.ProductId].EndMoreUnits
+			result[k].InputAmount = statsMap[v.ProductId].InputAmount
+			result[k].InputMoreUnits = statsMap[v.ProductId].InputMoreUnits
+		}
+
+	}
+
 	util.ResponseFormatList(c, code.Success, result, int(total))
 }
 

--
Gitblit v1.8.0