From 73b6baf6af3d88cdcb0e2df7932a9bd96b0b85c5 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期一, 01 七月 2024 22:32:34 +0800 Subject: [PATCH] 月度统计出入库按类型汇总报表定时任务和手动跑任务接口 --- service/location_forms.go | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 51 insertions(+), 6 deletions(-) diff --git a/service/location_forms.go b/service/location_forms.go index eafd283..f6cf85b 100644 --- a/service/location_forms.go +++ b/service/location_forms.go @@ -33,6 +33,12 @@ resp.ProductTypeName = amount.ProductCategory.Name resp.Unit = amount.Product.Unit resp.Value = resp.Amount.Mul(amount.Product.Cost) + + moreUnit := amount.Product.MoreUnit + if moreUnit != nil && *moreUnit { + resp.AmountMoreUnits = CreateMoreUnit(resp.Amount, amount.Product.MoreUnitList) + } + result = append(result, resp) } @@ -95,21 +101,60 @@ f := excelize.NewFile() // 鑷畾涔夎〃澶� - headers := []string{"浣嶇疆", "浜у搧", "浜у搧绫诲埆", "鍦ㄥ簱鏁伴噺", "浠峰��"} + headers := []interface{}{"浣嶇疆", "浜у搧", "浜у搧绫诲埆", map[string][]string{"鍦ㄥ簱鏁伴噺": {"浠�", "鍖�", "绫�", "閲嶉噺"}}, "浠峰��"} // 璁剧疆琛ㄥご - for i, header := range headers { - cell := getColumnAlphabet(i+1) + "1" - f.SetCellValue("Sheet1", cell, header) + var i int + for _, h := range headers { + if v, ok := h.(string); ok { + f.SetCellValue("Sheet1", getColumnAlphabet(i)+"1", v) + i++ + } else if childHeaders, ok := h.(map[string][]string); ok { + for title, list := range childHeaders { + f.SetCellValue("Sheet1", getColumnAlphabet(i)+"1", title) + err = f.MergeCell("Sheet1", getColumnAlphabet(i)+"1", getColumnAlphabet(i-1+len(list))+"1") // 鍚堝苟鍗曞厓鏍� + for _, t := range list { + f.SetCellValue("Sheet1", getColumnAlphabet(i)+"2", t) + i++ + } + } + } } + // 璁剧疆琛ㄥご鏍峰紡 + style := &excelize.Style{ + Border: nil, + Fill: excelize.Fill{ + Type: "pattern", + Pattern: 1, + Shading: 0, + }, + Font: &excelize.Font{ + Bold: true, + }, + Alignment: &excelize.Alignment{ + Horizontal: "center", + }, + } + titleStyle, err := f.NewStyle(style) + if err != nil { + return + } + + lastColumn := getColumnAlphabet(i) + f.SetCellStyle("Sheet1", "A1", lastColumn+"2", titleStyle) + // 璁剧疆鍒楀 + f.SetColWidth("Sheet1", "A", "C", 30) + f.SetColWidth("Sheet1", "D", lastColumn, 15) + for i, v := range dataList { - column := strconv.Itoa(i + 2) + column := strconv.Itoa(i + 3) f.SetCellValue("Sheet1", "A"+column, v.LocationName) f.SetCellValue("Sheet1", "B"+column, v.ProductName) f.SetCellValue("Sheet1", "C"+column, v.ProductTypeName) f.SetCellValue("Sheet1", "D"+column, v.Amount) - f.SetCellValue("Sheet1", "E"+column, v.Value) + FillMoreUnitToExcel(v.Amount, v.AmountMoreUnits, 4, i+2, f) + f.SetCellValue("Sheet1", "H"+column, v.Value) } fileName = fmt.Sprintf("浣嶇疆鎶ヨ〃%s.xlsx", time.Now().Format("2006-01-02-1504")) -- Gitblit v1.8.0