From 155f70979af20ca520a55b89c6ec8cd46c43f8a5 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期三, 31 七月 2024 15:47:33 +0800 Subject: [PATCH] 产品流水表增加多单位存储 --- service/inventory_report_forms.go | 49 ++++++++++++++++++++++++++++++------------------- 1 files changed, 30 insertions(+), 19 deletions(-) diff --git a/service/inventory_report_forms.go b/service/inventory_report_forms.go index 4409d83..5775cc8 100644 --- a/service/inventory_report_forms.go +++ b/service/inventory_report_forms.go @@ -87,7 +87,9 @@ data.Cost = material.Cost data.Unit = material.Unit data.Value = material.Amount.Mul(material.Cost) - data.ProductType = material.CategoryName + data.ProductCategory = material.CategoryName + data.ProductType = material.Type + data.ProductSpecs = material.Specs for _, amount := range productAmounts { if material.ID == amount.ProductId { data.Amount = data.Amount.Add(amount.Amount) @@ -130,8 +132,11 @@ err error) { productAmounts = make([]*models.LocationProductAmount, 0) locationSearch := models.NewLocationSearch() - if params.WarehouseCode != "" { - locationSearch.SetJointName(params.WarehouseCode) + //if params.WarehouseCode != "" { + // locationSearch.SetJointName(params.WarehouseCode) + //} + if params.WarehouseId > 0 { + locationSearch.SetWarehouseId(params.WarehouseId) } locations, err := locationSearch.FindNotTotal() @@ -154,9 +159,9 @@ //鏌ヨ浜у搧 search = models.NewMaterialSearch() - search.Orm = search.Orm.Model(&models.Material{}). - Select(`material.id, material.name, material.cost, material.amount, material.unit, material.more_unit, material.more_unit_value, wms_product_category.name as category_name `). - Joins("left join wms_product_category on material.category_id = wms_product_category.id") + search.Orm = search.Orm.Model(&models.Material{}). // material + Select(`material.id, material.name, material.cost, material.amount, material.unit, material.more_unit, material.more_unit_value, wms_product_category.name as category_name `). + Joins("left join wms_product_category on material.category_id = wms_product_category.id") if len(params.CategoryIds) > 0 { search.Orm.Where("material.category_id in (?)", params.CategoryIds) } @@ -208,6 +213,7 @@ var fileName string f := excelize.NewFile() + unitData, unitIndexMap := GetAllUnits() // 鑷畾涔夎〃澶� headers := []string{"浜у搧", "浜у搧绫诲埆", "鍗曚綅鎴愭湰", "鎬讳环鍊�", "鍦ㄥ簱", "鍙敤搴撳瓨", "鍏ュ簱", "鍑哄簱"} // 璁剧疆琛ㄥご @@ -216,12 +222,12 @@ f.SetCellValue("Sheet1", cell, header) } - f.SetCellValue("Sheet1", getColumnAlphabet(0)+"1", "浜у搧") - f.SetCellValue("Sheet1", getColumnAlphabet(1)+"1", "浜у搧绫诲埆") - f.SetCellValue("Sheet1", getColumnAlphabet(2)+"1", "鍗曚綅鎴愭湰") - f.SetCellValue("Sheet1", getColumnAlphabet(3)+"1", "鎬讳环鍊�") - f.SetCellValue("Sheet1", getColumnAlphabet(4)+"1", "鍦ㄥ簱") - f.MergeCell("Sheet1", getColumnAlphabet(4)+"1", getColumnAlphabet(7)+"1") // 鍚堝苟鍗曞厓鏍� + f.SetCellValue("Sheet1", getColumnAlphabet(1)+"1", "浜у搧") + f.SetCellValue("Sheet1", getColumnAlphabet(2)+"1", "浜у搧绫诲埆") + f.SetCellValue("Sheet1", getColumnAlphabet(3)+"1", "鍗曚綅鎴愭湰") + f.SetCellValue("Sheet1", getColumnAlphabet(4)+"1", "鎬讳环鍊�") + f.SetCellValue("Sheet1", getColumnAlphabet(5)+"1", "鍦ㄥ簱") + f.MergeCell("Sheet1", getColumnAlphabet(5)+"1", getColumnAlphabet(7)+"1") // 鍚堝苟鍗曞厓鏍� f.SetCellValue("Sheet1", getColumnAlphabet(8)+"1", "鍙敤搴撳瓨") f.MergeCell("Sheet1", getColumnAlphabet(8)+"1", getColumnAlphabet(11)+"1") // 鍚堝苟鍗曞厓鏍� f.SetCellValue("Sheet1", getColumnAlphabet(12)+"1", "鍏ュ簱") @@ -229,7 +235,6 @@ f.SetCellValue("Sheet1", getColumnAlphabet(16)+"1", "鍑哄簱") f.MergeCell("Sheet1", getColumnAlphabet(16)+"1", getColumnAlphabet(19)+"1") // 鍚堝苟鍗曞厓鏍� - unitData := []string{"浠�", "鍖�", "绫�", "閲嶉噺"} for i, header := range unitData { f.SetCellValue("Sheet1", getColumnAlphabet(i+4)+"2", header) f.SetCellValue("Sheet1", getColumnAlphabet(i+8)+"2", header) @@ -271,16 +276,20 @@ f.SetCellValue("Sheet1", getColumnAlphabet(3)+column, v.Value) f.SetCellValue("Sheet1", getColumnAlphabet(4)+column, v.Amount) - FillMoreUnitToExcel(v.Amount, v.AmountMoreUnits, 5, i+3, f) + v.AmountMoreUnits = append(v.AmountMoreUnits, models.UnitItems{Amount: v.Amount, Unit: v.Unit}) + FillMoreUnitToExcel(v.AmountMoreUnits, 5, i+3, unitIndexMap, f) f.SetCellValue("Sheet1", getColumnAlphabet(8)+column, v.AvailableNumber) - FillMoreUnitToExcel(v.AvailableNumber, v.AvailableNumberMoreUnits, 9, i+3, f) + v.AvailableNumberMoreUnits = append(v.AvailableNumberMoreUnits, models.UnitItems{Amount: v.AvailableNumber, Unit: v.Unit}) + FillMoreUnitToExcel(v.AvailableNumberMoreUnits, 9, i+3, unitIndexMap, f) f.SetCellValue("Sheet1", getColumnAlphabet(12)+column, v.In) - FillMoreUnitToExcel(v.In, v.AmountMoreUnits, 13, i+3, f) + v.InMoreUnits = append(v.InMoreUnits, models.UnitItems{Amount: v.In, Unit: v.Unit}) + FillMoreUnitToExcel(v.InMoreUnits, 13, i+3, unitIndexMap, f) f.SetCellValue("Sheet1", getColumnAlphabet(16)+column, v.Out) - FillMoreUnitToExcel(v.Out, v.AmountMoreUnits, 17, i+3, f) + v.OutMoreUnits = append(v.OutMoreUnits, models.UnitItems{Amount: v.Out, Unit: v.Unit}) + FillMoreUnitToExcel(v.OutMoreUnits, 17, i+3, unitIndexMap, f) } fileName = fmt.Sprintf("搴撳瓨鎶ヨ〃%s.xlsx", time.Now().Format("2006-01-02-1504")) @@ -295,7 +304,9 @@ func getColumnAlphabet(index int) string { const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" if index <= 26 { - return string(alphabet[index]) + return string(alphabet[index-1]) } - return getColumnAlphabet((index)/26) + getColumnAlphabet((index)%26+1) + quotient := (index - 1) / 26 + remainder := (index - 1) % 26 + return getColumnAlphabet(quotient) + getColumnAlphabet(remainder+1) } -- Gitblit v1.8.0