From 37a64e6972df2b705670774047c65f9a0ce60ac1 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期三, 03 七月 2024 16:15:10 +0800
Subject: [PATCH] 月度统计定时任务按设定的时间查询相应数据&修复若干bug

---
 service/warehouse_month_forms.go |   29 ++++++++++++++++++++++-------
 1 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/service/warehouse_month_forms.go b/service/warehouse_month_forms.go
index a4d4838..3a60cd3 100644
--- a/service/warehouse_month_forms.go
+++ b/service/warehouse_month_forms.go
@@ -10,7 +10,6 @@
 	"wms/models"
 	"wms/pkg/logx"
 	"wms/request"
-	"wms/utils"
 )
 
 type WarehouseMonthFormsService struct{}
@@ -88,8 +87,8 @@
 	f.SetColWidth("Sheet1", "A", "F", 30)
 	f.SetColWidth("Sheet1", "G", getColumnAlphabet(headerLen), 15)
 
-	inputStart := 7
-	outputStart := 7 + len(inputTypes)
+	inputStart := 6
+	outputStart := 6 + len(inputTypes)
 	for i, v := range dataList {
 		column := strconv.Itoa(i + 3)
 		f.SetCellValue("Sheet1", "A"+column, v.ProductId)
@@ -143,6 +142,12 @@
 	columnStr := strconv.Itoa(column)
 	sum := slf.SumItems(items)
 	detailMap := models.WarehouseStatsItemMap(items)
+	for k := range detailMap {
+		if k == "" {
+			detailMap["鍏朵粬"] = detailMap[k]
+			delete(detailMap, k)
+		}
+	}
 
 	for i := 0; i < len(dealerTypes); i++ {
 		var amount decimal.Decimal
@@ -170,7 +175,12 @@
 	}
 	productMap := models.MaterialMap(products)
 
-	beginTime, endTime := utils.GetLastMonthPeriod()
+	//鎸夐厤缃彇寮�濮嬫椂闂村拰缁撴潫鏃堕棿
+	beginTime, endTime, err := NewSystemConfigService().GetInventoryCutOffTime()
+	if err != nil {
+		logx.Errorf("MonthStats GetCurrentStats get GetInventoryCutOffTime err:%v", err)
+		return
+	}
 	inputMap, err := GetStatsMulti(beginTime, endTime, constvar.BaseOperationTypeIncoming, warehouseId)
 	if err != nil {
 		logx.Errorf("MonthStats GetStatsByOperationType input err:%v", err)
@@ -199,9 +209,9 @@
 			SalePrice:    product.SalePrice,
 			EndAmount:    amount,
 			InputAmount:  SumMapAmount(inputMap[productId]),
-			InputItems:   GetDealerItems(inputMap[productId]),
+			InputItems:   GetDealerItems(inputMap[productId], models.MonthStatsItemsTypeInput),
 			OutputAmount: SumMapAmount(outputMap[productId]),
-			OutputItems:  GetDealerItems(outputMap[productId]),
+			OutputItems:  GetDealerItems(outputMap[productId], models.MonthStatsItemsTypeOutput),
 			Date:         date,
 		}
 		statRecords = append(statRecords, &record)
@@ -211,11 +221,15 @@
 }
 
 func GetStatsMulti(beginTime, endTime time.Time, operationType constvar.BaseOperationType, warehouseId int) (m map[string]map[string]decimal.Decimal, err error) {
+	m = make(map[string]map[string]decimal.Decimal)
 	operationIds, err := models.NewOperationSearch().SetBaseOperationType(operationType).
 		SetFields("id").SetTimeBetween(beginTime, endTime).
 		SetWarehouseId(warehouseId).
 		FindIds()
 	if err != nil {
+		return
+	}
+	if len(operationIds) == 0 {
 		return
 	}
 	groupSumList, err := models.NewOperationDetailsSearch().SetOperationIds(operationIds).
@@ -241,13 +255,14 @@
 	return
 }
 
-func GetDealerItems(m map[string]decimal.Decimal) (items []*models.WarehouseStatsItems) {
+func GetDealerItems(m map[string]decimal.Decimal, tp models.MonthStatsItemsType) (items []*models.WarehouseStatsItems) {
 	for k, v := range m {
 		name := k
 		if name == "" {
 			name = "鍏朵粬"
 		}
 		items = append(items, &models.WarehouseStatsItems{
+			Type:   tp,
 			Name:   name,
 			Amount: v,
 		})

--
Gitblit v1.8.0