From 155f70979af20ca520a55b89c6ec8cd46c43f8a5 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期三, 31 七月 2024 15:47:33 +0800 Subject: [PATCH] 产品流水表增加多单位存储 --- service/location_forms.go | 73 ++++++++++++------------------------ 1 files changed, 24 insertions(+), 49 deletions(-) diff --git a/service/location_forms.go b/service/location_forms.go index 52d0c9e..28d686d 100644 --- a/service/location_forms.go +++ b/service/location_forms.go @@ -36,7 +36,7 @@ moreUnit := amount.Product.MoreUnit if moreUnit != nil && *moreUnit { - resp.AmountMoreUnits = CreateMoreUnit(resp.Amount, amount.Product.MoreUnitList) + resp.AmountMoreUnits = amount.MoreUnitList } result = append(result, resp) @@ -46,10 +46,11 @@ } func (slf *LocationFormsService) BuildSearch(params request.GetLocationForms) (search *models.LocationProductAmountSearch, err error) { - ids := make([]int, 0) + ids := params.LocationIds if params.LocationId != 0 { ids = append(ids, params.LocationId) - } else { + } + if len(ids) == 0 { //鏌ヨ浣嶇疆 locations, err := models.NewLocationSearch().SetJointName(params.WareHouseCode).SetType(3).FindAll() if err != nil { @@ -100,61 +101,35 @@ var fileName string f := excelize.NewFile() + unitData, unitIndexMap := GetAllUnits() // 鑷畾涔夎〃澶� - headers := []interface{}{"浣嶇疆", "浜у搧", "浜у搧绫诲埆", map[string][]string{"鍦ㄥ簱鏁伴噺": {"浠�", "鍖�", "绫�", "閲嶉噺"}}, "浠峰��"} - - // 璁剧疆琛ㄥご - 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) + headers := []interface{}{"浣嶇疆", "浜у搧", "浜у搧绫诲埆", map[string][]string{"鍦ㄥ簱鏁伴噺": unitData}, "浠峰��"} + lastColumnNumber, err := SetExcelHeaders(headers, f) if err != nil { - return + return "", err + } + f.MergeCell("Sheet1", "A1", "A2") // 鍚堝苟鍗曞厓鏍� + f.MergeCell("Sheet1", "B1", "B2") // 鍚堝苟鍗曞厓鏍� + f.MergeCell("Sheet1", "C1", "C2") // 鍚堝苟鍗曞厓鏍� + + titleStyle, err := SetHeaderStyle(f) + if err != nil { + return "", err } - lastColumn := getColumnAlphabet(i) + lastColumn := getColumnAlphabet(lastColumnNumber) 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 + 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) - FillMoreUnitToExcel(v.Amount, v.AmountMoreUnits, 4, i+2, f) - f.SetCellValue("Sheet1", "H"+column, v.Value) + row := strconv.Itoa(i + 3) + f.SetCellValue("Sheet1", "A"+row, v.LocationName) + f.SetCellValue("Sheet1", "B"+row, v.ProductName) + f.SetCellValue("Sheet1", "C"+row, v.ProductTypeName) + v.AmountMoreUnits = append(v.AmountMoreUnits, models.UnitItems{Amount: v.Amount, Unit: v.Unit}) + FillMoreUnitToExcel(v.AmountMoreUnits, 4, i+3, unitIndexMap, f) + f.SetCellValue("Sheet1", getColumnAlphabet(4+len(unitData))+row, v.Value) } fileName = fmt.Sprintf("浣嶇疆鎶ヨ〃%s.xlsx", time.Now().Format("2006-01-02-1504")) -- Gitblit v1.8.0