| | |
| | | resp := new(response.LocationForms) |
| | | resp.Amount = amount.Amount |
| | | resp.LocationId = amount.LocationId |
| | | resp.LocationName = amount.Location.Name |
| | | resp.LocationName = amount.Location.JointName |
| | | resp.ProduceId = amount.Product.ID |
| | | resp.ProductName = amount.Product.Name |
| | | 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 = amount.MoreUnitList |
| | | } |
| | | |
| | | result = append(result, resp) |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | 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 { |
| | |
| | | var fileName string |
| | | f := excelize.NewFile() |
| | | |
| | | unitData, unitIndexMap := GetAllUnits() |
| | | // 自定义表头 |
| | | headers := []string{"位置", "产品", "产品类别", "在库数量", "价值"} |
| | | headers := []interface{}{"位置", "产品", "产品类别", map[string][]string{"在库数量": unitData}, "价值"} |
| | | lastColumnNumber, err := SetExcelHeaders(headers, f) |
| | | if err != nil { |
| | | return "", err |
| | | } |
| | | f.MergeCell("Sheet1", "A1", "A2") // 合并单元格 |
| | | f.MergeCell("Sheet1", "B1", "B2") // 合并单元格 |
| | | f.MergeCell("Sheet1", "C1", "C2") // 合并单元格 |
| | | |
| | | // 设置表头 |
| | | for i, header := range headers { |
| | | cell := getColumnAlphabet(i+1) + "1" |
| | | f.SetCellValue("Sheet1", cell, header) |
| | | titleStyle, err := SetHeaderStyle(f) |
| | | if err != nil { |
| | | return "", err |
| | | } |
| | | |
| | | lastColumn := getColumnAlphabet(lastColumnNumber) |
| | | f.SetCellStyle("Sheet1", "A1", lastColumn+"2", titleStyle) |
| | | // 设置列宽 |
| | | f.SetColWidth("Sheet1", "A", "C", 30) |
| | | |
| | | for i, v := range dataList { |
| | | column := strconv.Itoa(i + 2) |
| | | 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) |
| | | 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")) |