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