From 1ef4fe8d2bd448db5d6038d716b00600a914c045 Mon Sep 17 00:00:00 2001 From: yinbentan <yinbentan@live.com> Date: 星期五, 05 七月 2024 17:36:58 +0800 Subject: [PATCH] 创建人没有值,应当为当前登录的账号名称 --- service/warehouse_month_forms.go | 44 ++++++++++++++++++++++++++++++++++---------- 1 files changed, 34 insertions(+), 10 deletions(-) diff --git a/service/warehouse_month_forms.go b/service/warehouse_month_forms.go index 9edf8c4..9af8677 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{} @@ -26,7 +25,8 @@ } func (slf *WarehouseMonthFormsService) BuildSearch(params request.GetMonthStats) (search *models.WarehouseMonthStatsSearch) { - search = models.NewWarehouseMonthStatsSearch().SetKeyword(params.Keyword).SetDate(params.Date) + search = models.NewWarehouseMonthStatsSearch(). + SetKeyword(params.Keyword).SetDate(params.Date).SetWarehouseId(params.WarehouseID) if params.Preload { search = search.SetPreload(true) } @@ -88,8 +88,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 +143,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 @@ -156,7 +162,7 @@ return } -func GetCurrentWarehouseStats(date string, warehouseId int, productIds []string) (statRecords []*models.WarehouseMonthStats, err error) { +func GetCurrentWarehouseStats(date string, warehouseId int, productIds []string, realTime bool) (statRecords []*models.WarehouseMonthStats, err error) { //鏈湀鏈熷垵鏁伴噺/涓婃湀缁撲綑鏁伴噺 groupSumList, err := models.NewLocationProductAmountSearch().SetProductIds(productIds).GroupSum("product_id", "amount") productIds = make([]string, 0, len(groupSumList)) @@ -170,7 +176,16 @@ } productMap := models.MaterialMap(products) - beginTime, endTime := utils.GetLastMonthPeriod() + //鎸夐厤缃彇寮�濮嬫椂闂村拰缁撴潫鏃堕棿 + beginTime, endTime, err := NewSystemConfigService().GetInventoryCutOffTime() + if realTime { + beginTime = endTime + endTime = time.Now() + } + 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 +214,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 +226,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,10 +260,15 @@ 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{ - Name: k, + Type: tp, + Name: name, Amount: v, }) } -- Gitblit v1.8.0