Browse Source

删除已弃用的报表下载

animeic 1 year ago
parent
commit
e3f7c49ab7

+ 0 - 441
boxcost/api/report-produce-excel.go

@@ -1,441 +0,0 @@
-package api
-
-import (
-	"box-cost/db/model"
-	"fmt"
-
-	"github.com/xuri/excelize/v2"
-)
-
-type ReportProduceExcel struct {
-	Offset int
-	Row    int
-
-	Title string //标题
-
-	Excel *excelize.File
-
-	SheetName string
-
-	AlignCenterStyle int
-
-	Content *model.ProduceBill
-
-	BudgetAmount float64
-	RealAmount   float64
-}
-
-func (b *ReportProduceExcel) drawTitle() error {
-	b.Row++
-
-	// 设置外边距
-	startCell := fmt.Sprintf("A%d", b.Row)
-	endCell := fmt.Sprintf("J%d", b.Row)
-	marginLeft := excelize.PageMarginLeft(0.15)
-
-	if b.Content.IsPrint {
-		// A加工项目 B规格 C纸张 D来纸尺寸 E印刷尺寸 F下单数量 G完成数量 H单价 I预算金额 J实际金额 K交货时间 L备注
-		b.Excel.SetColWidth(b.SheetName, "A", "A", 16)
-		b.Excel.SetColWidth(b.SheetName, "B", "B", 14)
-		b.Excel.SetColWidth(b.SheetName, "C", "C", 10)
-		b.Excel.SetColWidth(b.SheetName, "D", "E", 14)
-		b.Excel.SetColWidth(b.SheetName, "F", "K", 12)
-		b.Excel.SetColWidth(b.SheetName, "J", "J", 18)
-
-	} else {
-		// 不是打印
-		// A加工项目 B规格 C下单数量 D完成数量 E单价 F预算金额 G实际金额 H交货时间 I备注
-		endCell = fmt.Sprintf("I%d", b.Row)
-		marginLeft = excelize.PageMarginLeft(0.6)
-		b.Excel.SetColWidth(b.SheetName, "A", "A", 16)
-		b.Excel.SetColWidth(b.SheetName, "B", "B", 14)
-		b.Excel.SetColWidth(b.SheetName, "C", "H", 12)
-		b.Excel.SetColWidth(b.SheetName, "I", "I", 18)
-		// 是覆膜
-		if b.Content.IsLam {
-
-			// A加工项目 B规格 C覆膜尺寸 D下单数量 E完成数量 F元/吨,G元/张 H预算金额 I实际金额 J交货时间 K备注
-			endCell = fmt.Sprintf("K%d", b.Row)
-			marginLeft = excelize.PageMarginLeft(0.3)
-			b.Excel.SetColWidth(b.SheetName, "A", "A", 16)
-			b.Excel.SetColWidth(b.SheetName, "B", "C", 14)
-			// 覆膜规格
-			b.Excel.SetColWidth(b.SheetName, "D", "J", 12)
-			b.Excel.SetColWidth(b.SheetName, "K", "K", 18)
-		}
-
-	}
-
-	b.Excel.SetPageMargins(b.SheetName, marginLeft)
-	err := b.Excel.MergeCell(b.SheetName, startCell, endCell)
-	if err != nil {
-		return err
-	}
-
-	style, err := b.Excel.NewStyle(&excelize.Style{
-		Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center"},
-		Font:      &excelize.Font{Bold: true, Size: 18}})
-	if err != nil {
-		return err
-	}
-	err = b.Excel.SetCellStyle(b.SheetName, startCell, startCell, style)
-	if err != nil {
-		return err
-	}
-	b.Excel.SetRowHeight(b.SheetName, b.Row, 23)
-	b.Excel.SetCellValue(b.SheetName, startCell, b.Title)
-	return nil
-}
-
-func (b *ReportProduceExcel) drawSubTitles() error {
-	b.Row++
-
-	styleLeft, err := b.Excel.NewStyle(&excelize.Style{
-		Alignment: &excelize.Alignment{Horizontal: "left", Vertical: "center"},
-		Font:      &excelize.Font{Size: 11}})
-	if err != nil {
-		return err
-	}
-	styleRight, err := b.Excel.NewStyle(&excelize.Style{
-		Alignment: &excelize.Alignment{Horizontal: "right", Vertical: "center"},
-		Font:      &excelize.Font{Size: 11}})
-	if err != nil {
-		return err
-	}
-
-	var drawLeft = func(rowIndex int, value string) error {
-		//左边1
-		left1Cell := fmt.Sprintf("A%d", rowIndex)
-		err = b.Excel.MergeCell(b.SheetName, left1Cell, fmt.Sprintf("I%d", rowIndex))
-		if err != nil {
-			return err
-		}
-		err = b.Excel.SetCellStyle(b.SheetName, left1Cell, left1Cell, styleLeft)
-		if err != nil {
-			return err
-		}
-		b.Excel.SetCellValue(b.SheetName, left1Cell, value)
-		return nil
-	}
-
-	var drawRight = func(rowIndex int, value string) error {
-		right1Cell := fmt.Sprintf("J%d", rowIndex)
-		err = b.Excel.MergeCell(b.SheetName, right1Cell, fmt.Sprintf("L%d", rowIndex))
-		if err != nil {
-			return err
-		}
-		err = b.Excel.SetCellStyle(b.SheetName, right1Cell, right1Cell, styleRight)
-		if err != nil {
-			return err
-		}
-		b.Excel.SetCellValue(b.SheetName, right1Cell, value)
-		return nil
-	}
-
-	// !isPrint
-	if !b.Content.IsPrint {
-
-		drawLeft = func(rowIndex int, value string) error {
-			//左边1
-			left1Cell := fmt.Sprintf("A%d", rowIndex)
-			err = b.Excel.MergeCell(b.SheetName, left1Cell, fmt.Sprintf("F%d", rowIndex))
-			if err != nil {
-				return err
-			}
-			err = b.Excel.SetCellStyle(b.SheetName, left1Cell, left1Cell, styleLeft)
-			if err != nil {
-				return err
-			}
-			b.Excel.SetCellValue(b.SheetName, left1Cell, value)
-			return nil
-		}
-
-		drawRight = func(rowIndex int, value string) error {
-			right1Cell := fmt.Sprintf("G%d", rowIndex)
-			err = b.Excel.MergeCell(b.SheetName, right1Cell, fmt.Sprintf("I%d", rowIndex))
-			if err != nil {
-				return err
-			}
-			err = b.Excel.SetCellStyle(b.SheetName, right1Cell, right1Cell, styleRight)
-			if err != nil {
-				return err
-			}
-			b.Excel.SetCellValue(b.SheetName, right1Cell, value)
-			return nil
-		}
-		if b.Content.IsLam {
-			drawLeft = func(rowIndex int, value string) error {
-				//左边1
-				left1Cell := fmt.Sprintf("A%d", rowIndex)
-				err = b.Excel.MergeCell(b.SheetName, left1Cell, fmt.Sprintf("H%d", rowIndex))
-				if err != nil {
-					return err
-				}
-				err = b.Excel.SetCellStyle(b.SheetName, left1Cell, left1Cell, styleLeft)
-				if err != nil {
-					return err
-				}
-				b.Excel.SetCellValue(b.SheetName, left1Cell, value)
-				return nil
-			}
-
-			drawRight = func(rowIndex int, value string) error {
-				right1Cell := fmt.Sprintf("I%d", rowIndex)
-				err = b.Excel.MergeCell(b.SheetName, right1Cell, fmt.Sprintf("K%d", rowIndex))
-				if err != nil {
-					return err
-				}
-				err = b.Excel.SetCellStyle(b.SheetName, right1Cell, right1Cell, styleRight)
-				if err != nil {
-					return err
-				}
-				b.Excel.SetCellValue(b.SheetName, right1Cell, value)
-				return nil
-			}
-
-		}
-
-	}
-
-	//第一行
-	drawLeft(b.Row, "类别:"+b.Content.Type)
-	drawRight(b.Row, "单号:"+b.Content.SerialNumber)
-	b.Excel.SetRowHeight(b.SheetName, b.Row, 21)
-
-	//第二行
-	drawLeft(b.Row+1, "供应商名称:"+b.Content.Supplier)
-	timeformat := b.Content.CreateTime.Local().Format("2006年01月02号 15:04:05")
-	drawRight(b.Row+1, "下单时间:"+timeformat)
-	b.Excel.SetRowHeight(b.SheetName, b.Row+1, 21)
-
-	//第三行
-	drawLeft(b.Row+2, "产品名称:"+b.Content.ProductName)
-	status := ""
-	if b.Content.Status == "complete" {
-		status = "已完成"
-	}
-	if b.Content.Status == "created" {
-		status = "进行中"
-	}
-	drawRight(b.Row+2, "状态:"+status)
-	b.Excel.SetRowHeight(b.SheetName, b.Row+2, 21)
-
-	return nil
-}
-
-func (b *ReportProduceExcel) drawTableTitle() error {
-	b.Row += 3
-
-	//A加工项目 B规格(克) 尺寸C-D 数量E 单价F-G 交货时间H 备注I
-	var drawCol = func(prefix string, value string) error {
-		left1Cell := fmt.Sprintf("%s%d", prefix, b.Row)
-		left2Cell := fmt.Sprintf("%s%d", prefix, b.Row+1)
-
-		err := b.Excel.MergeCell(b.SheetName, left1Cell, left2Cell)
-		if err != nil {
-			return err
-		}
-		err = b.Excel.SetCellStyle(b.SheetName, left1Cell, left2Cell, b.AlignCenterStyle)
-		if err != nil {
-			return err
-		}
-
-		return b.Excel.SetCellValue(b.SheetName, left1Cell, value)
-	}
-
-	var drawCol2 = func(prefix string, value1 string, value2 string) error {
-
-		left1Cell := fmt.Sprintf("%s%d", prefix, b.Row)
-		left2Cell := fmt.Sprintf("%s%d", prefix, b.Row+1)
-		err := b.Excel.SetCellStyle(b.SheetName, left1Cell, left2Cell, b.AlignCenterStyle)
-		if err != nil {
-			return err
-		}
-		b.Excel.SetCellValue(b.SheetName, left1Cell, value1)
-		b.Excel.SetCellValue(b.SheetName, left2Cell, value2)
-		return nil
-	}
-
-	var drawCol3 = func(prefix1 string, prefix2 string, value1 string, value2 string, value3 string) error {
-		left1Cell := fmt.Sprintf("%s%d", prefix1, b.Row)
-		left2Cell := fmt.Sprintf("%s%d", prefix2, b.Row)
-		err := b.Excel.MergeCell(b.SheetName, left1Cell, left2Cell)
-		if err != nil {
-			return err
-		}
-		if err != nil {
-			fmt.Println(err)
-			return err
-		}
-		err = b.Excel.SetCellStyle(b.SheetName, left1Cell, left2Cell, b.AlignCenterStyle)
-		if err != nil {
-			return err
-		}
-		b.Excel.SetCellValue(b.SheetName, left1Cell, value1)
-
-		val2Cel := fmt.Sprintf("%s%d", prefix1, b.Row+1)
-		b.Excel.SetCellStyle(b.SheetName, val2Cel, val2Cel, b.AlignCenterStyle)
-		b.Excel.SetCellValue(b.SheetName, val2Cel, value2)
-
-		val3Cel := fmt.Sprintf("%s%d", prefix2, b.Row+1)
-		b.Excel.SetCellStyle(b.SheetName, val3Cel, val3Cel, b.AlignCenterStyle)
-		b.Excel.SetCellValue(b.SheetName, val3Cel, value3)
-		return nil
-	}
-
-	unit := b.Content.Produces[0].Unit
-	if b.Content.IsPrint {
-		drawCol("A", "加工项目")
-		drawCol("B", "规格")
-		drawCol("C", "纸张")
-		drawCol("D", "来纸尺寸")
-		drawCol("E", "印刷尺寸")
-		drawCol("F", "下单数量")
-		drawCol("G", "完成数量")
-		drawCol2("H", "单价", unit)
-		drawCol("I", "预算金额")
-		drawCol("J", "实际金额")
-		drawCol("K", "交货时间")
-		drawCol("L", "备注")
-
-	} else {
-		if b.Content.IsLam {
-			drawCol("A", "加工项目")
-			drawCol("B", "规格")
-			drawCol("C", "覆膜尺寸")
-			drawCol("D", "下单数量")
-			drawCol("E", "完成数量")
-			unit2 := b.Content.Produces[0].Unit2
-			drawCol3("E", "G", "单价", unit, unit2)
-			drawCol("H", "预算金额")
-			drawCol("I", "实际金额")
-			drawCol("J", "交货时间")
-			drawCol("K", "备注")
-
-		} else {
-			drawCol("A", "加工项目")
-			drawCol("B", "规格")
-			drawCol("C", "下单数量")
-			drawCol("D", "完成数量")
-			drawCol2("E", "单价", unit)
-			drawCol("F", "预算金额")
-			drawCol("G", "实际金额")
-			drawCol("H", "交货时间")
-			drawCol("I", "备注")
-
-		}
-
-	}
-
-	return nil
-}
-
-func (b *ReportProduceExcel) drawTableContent() error {
-	b.Row += 2
-	var DrawRow = func(rowIndex int, values ...string) {
-		charas := []string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"}
-		// !isPrint
-		if !b.Content.IsPrint {
-			charas = []string{"A", "B", "C", "D", "E", "F", "G", "H", "I"}
-			if b.Content.IsLam {
-				charas = []string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"}
-			}
-		}
-		for i, c := range charas {
-			v := ""
-			if i < len(values) {
-				v = values[i]
-			}
-			b.Excel.SetCellValue(b.SheetName, fmt.Sprintf("%s%d", c, rowIndex), v)
-			val2Cel := fmt.Sprintf("%s%d", c, rowIndex)
-			b.Excel.SetCellStyle(b.SheetName, val2Cel, val2Cel, b.AlignCenterStyle)
-
-			// var magN float64 = 1
-			// lenv := len([]rune(v))
-			// magN = math.Ceil(float64(lenv) / 10)
-			// b.Excel.SetRowHeight(b.SheetName, rowIndex, 21*magN)
-			b.Excel.SetRowHeight(b.SheetName, rowIndex, 46)
-		}
-	}
-
-	produces := b.Content.Produces
-
-	if len(produces) > 0 {
-		for _, produce := range produces {
-			realCount := ""
-			price := produce.OrderPrice
-			priceStr := fmt.Sprintf("%.3f", price)
-			b.FormatToEmpty(&priceStr)
-			// 预算金额
-			budgetAmount := fmt.Sprintf("%.3f", produce.OrderPrice*float64(produce.OrderCount))
-			b.FormatToEmpty(&budgetAmount)
-			// 实际金额
-			realPrice := ""
-			// 实际完成数
-			realCount = fmt.Sprintf("%d", produce.ConfirmCount)
-			b.FormatToEmpty(&realCount)
-			realPrice = fmt.Sprintf("%.3f", produce.OrderPrice*float64(produce.ConfirmCount))
-			b.FormatToEmpty(&realPrice)
-
-			deliveryTime := produce.DeliveryTime.Local().Format("2006-01-02")
-
-			// !isPrint
-			if !b.Content.IsPrint {
-
-				if b.Content.IsLam {
-					DrawRow(b.Row, produce.Name, produce.Norm, produce.PrintSize, fmt.Sprintf("%d", produce.OrderCount), realCount, priceStr, fmt.Sprintf("%.3f", produce.Price2), budgetAmount, realPrice, deliveryTime, produce.Remark)
-
-				} else {
-					DrawRow(b.Row, produce.Name, produce.Norm, fmt.Sprintf("%d", produce.OrderCount), realCount, priceStr, budgetAmount, realPrice, deliveryTime, produce.Remark)
-				}
-			} else {
-				DrawRow(b.Row, produce.Name, produce.Norm, produce.Paper, produce.PaperSize, produce.PrintSize, fmt.Sprintf("%d", produce.OrderCount), realCount, priceStr, budgetAmount, realPrice, deliveryTime, produce.Remark)
-
-			}
-			b.Row++
-			b.BudgetAmount += produce.OrderPrice * float64(produce.OrderCount)
-			b.RealAmount += produce.OrderPrice * float64(produce.ConfirmCount)
-		}
-	}
-
-	return nil
-}
-
-func (b *ReportProduceExcel) Draws() {
-	b.drawTitle()
-	b.drawSubTitles()
-	b.drawTableTitle()
-	b.drawTableContent()
-}
-
-func NewReportProduceExcel(f *excelize.File) *ReportProduceExcel {
-
-	border := []excelize.Border{
-		{Type: "top", Style: 1, Color: "000000"},
-		{Type: "left", Style: 1, Color: "000000"},
-		{Type: "right", Style: 1, Color: "000000"},
-		{Type: "bottom", Style: 1, Color: "000000"},
-	}
-
-	styleLeft, _ := f.NewStyle(&excelize.Style{
-		Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center", WrapText: true},
-		Border:    border,
-	})
-
-	b := &ReportProduceExcel{
-		Title:            "中鱼互动加工单",
-		SheetName:        "Sheet1",
-		Excel:            f,
-		Offset:           0,
-		AlignCenterStyle: styleLeft,
-	}
-	f.SetPageMargins(b.SheetName, excelize.PageMarginTop(0), excelize.PageMarginLeft(0), excelize.PageMarginRight(0))
-
-	return b
-}
-
-func (b *ReportProduceExcel) FormatToEmpty(str *string) {
-	if *str == "0" || *str == "0.000" {
-		*str = ""
-	}
-}

+ 0 - 332
boxcost/api/report-product-excel.go

@@ -1,332 +0,0 @@
-package api
-
-import (
-	"box-cost/db/model"
-	"fmt"
-	"regexp"
-
-	_ "image/gif"
-	_ "image/jpeg"
-	_ "image/png"
-
-	"github.com/xuri/excelize/v2"
-)
-
-type ReportProductExcel struct {
-	Offset int
-	Row    int
-
-	Title string //标题
-
-	Excel *excelize.File
-
-	SheetName string
-
-	AlignCenterStyle int
-
-	Content *model.ProductBill
-
-	BudgetAmount float64
-	RealAmount   float64
-}
-
-func (b *ReportProductExcel) drawTitle() error {
-	b.Row++
-	startCell := fmt.Sprintf("A%d", b.Row)
-	err := b.Excel.MergeCell(b.SheetName, startCell, fmt.Sprintf("J%d", b.Row))
-	if err != nil {
-		return err
-	}
-
-	style, err := b.Excel.NewStyle(&excelize.Style{
-		Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center"},
-		Font:      &excelize.Font{Bold: true, Size: 18}})
-	if err != nil {
-		return err
-	}
-	err = b.Excel.SetCellStyle(b.SheetName, startCell, startCell, style)
-	if err != nil {
-		return err
-	}
-	b.Excel.SetRowHeight(b.SheetName, b.Row, 23)
-	b.Excel.SetCellValue(b.SheetName, startCell, b.Title)
-	return nil
-}
-
-func (b *ReportProductExcel) drawSubTitles() error {
-	b.Row++
-	styleLeft, err := b.Excel.NewStyle(&excelize.Style{
-		Alignment: &excelize.Alignment{Horizontal: "left", Vertical: "center"},
-		Font:      &excelize.Font{Size: 11}})
-	if err != nil {
-		return err
-	}
-	styleRight, err := b.Excel.NewStyle(&excelize.Style{
-		Alignment: &excelize.Alignment{Horizontal: "right", Vertical: "center"},
-		Font:      &excelize.Font{Size: 11}})
-	if err != nil {
-		return err
-	}
-
-	var drawLeft = func(rowIndex int, value string) error {
-		//左边1
-		left1Cell := fmt.Sprintf("A%d", rowIndex)
-		err = b.Excel.MergeCell(b.SheetName, left1Cell, fmt.Sprintf("F%d", rowIndex))
-		if err != nil {
-			return err
-		}
-		err = b.Excel.SetCellStyle(b.SheetName, left1Cell, left1Cell, styleLeft)
-		if err != nil {
-			return err
-		}
-		b.Excel.SetCellValue(b.SheetName, left1Cell, value)
-		return nil
-	}
-
-	var drawRight = func(rowIndex int, value string) error {
-		right1Cell := fmt.Sprintf("G%d", rowIndex)
-		err = b.Excel.MergeCell(b.SheetName, right1Cell, fmt.Sprintf("J%d", rowIndex))
-		if err != nil {
-			return err
-		}
-		err = b.Excel.SetCellStyle(b.SheetName, right1Cell, right1Cell, styleRight)
-		if err != nil {
-			return err
-		}
-		b.Excel.SetCellValue(b.SheetName, right1Cell, value)
-		return nil
-	}
-	//第一行
-	drawLeft(b.Row, "需求方(甲方):"+b.Title+"订单")
-	drawRight(b.Row, "单号:"+b.Content.SerialNumber)
-	b.Excel.SetRowHeight(b.SheetName, b.Row, 21)
-
-	//第二行
-	drawLeft(b.Row+1, "供应方(乙方):"+b.Content.Supplier)
-	timeformat := b.Content.CreateTime.Local().Format("2006年01月02号 15:04:05")
-	drawRight(b.Row+1, "下单时间:"+timeformat)
-	b.Excel.SetRowHeight(b.SheetName, b.Row+1, 21)
-
-	//第三行
-	drawLeft(b.Row+2, "产品名称:"+b.Content.ProductName)
-	status := ""
-	if b.Content.Status == "complete" {
-		status = "已完成"
-	}
-	if b.Content.Status == "created" {
-		status = "进行中"
-	}
-	drawRight(b.Row+2, "状态:"+status)
-	b.Excel.SetRowHeight(b.SheetName, b.Row+2, 21)
-
-	return nil
-}
-
-func (b *ReportProductExcel) drawTableTitle() error {
-	b.Row++
-	// 品名 规格  数量 单位 单价 金额
-	var drawCol = func(prefix string, value string) error {
-		left1Cell := fmt.Sprintf("%s%d", prefix, b.Row)
-		left2Cell := fmt.Sprintf("%s%d", prefix, b.Row+1)
-
-		err := b.Excel.MergeCell(b.SheetName, left1Cell, left2Cell)
-		if err != nil {
-			return err
-		}
-		err = b.Excel.SetCellStyle(b.SheetName, left1Cell, left2Cell, b.AlignCenterStyle)
-		if err != nil {
-			return err
-		}
-
-		return b.Excel.SetCellValue(b.SheetName, left1Cell, value)
-	}
-	// a采购项目 b规格 c下单数量 d单位 e完成数量 f单价 g预算金额 h实际金额 i交货时间 j备注
-	drawCol("A", "采购项目")
-	drawCol("B", "规格")
-	drawCol("C", "下单数量")
-	drawCol("D", "单位")
-	drawCol("E", "完成数量")
-	drawCol("F", "单价")
-	drawCol("G", "预算金额")
-	drawCol("H", "实际金额")
-	drawCol("I", "交货时间")
-	drawCol("J", "备注")
-
-	return nil
-}
-
-func (b *ReportProductExcel) drawTableContent() error {
-	b.Row += 2
-
-	var DrawRow = func(rowIndex int, values ...string) {
-		charas := []string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"}
-		for i, c := range charas {
-			v := ""
-			if i < len(values) {
-				v = values[i]
-			}
-			b.Excel.SetCellValue(b.SheetName, fmt.Sprintf("%s%d", c, rowIndex), v)
-			val2Cel := fmt.Sprintf("%s%d", c, rowIndex)
-			b.Excel.SetCellStyle(b.SheetName, val2Cel, val2Cel, b.AlignCenterStyle)
-
-			// var magN float64 = 1
-			// lenv := len([]rune(v))
-			// magN = math.Ceil(float64(lenv) / 10)
-			// b.Excel.SetRowHeight(b.SheetName, rowIndex, 21*magN)
-			b.Excel.SetRowHeight(b.SheetName, rowIndex, 46)
-		}
-	}
-
-	products := b.Content.Products
-	if len(products) > 0 {
-		for _, product := range products {
-			deliveryTime := product.DeliveryTime.Local().Format("2006-01-02")
-			realCount := ""
-			realPrice := ""
-			// 预算金额
-			budgetAmount := fmt.Sprintf("%.3f", float64(product.OrderCount)*product.OrderPrice)
-			b.FormatToEmpty(&budgetAmount)
-
-			// 实际完成数
-			realCount = fmt.Sprintf("%d", product.ConfirmCount)
-			b.FormatToEmpty(&realCount)
-
-			// 实际金额
-			realPrice = fmt.Sprintf("%.3f", float64(product.ConfirmCount)*product.OrderPrice)
-			b.FormatToEmpty(&realPrice)
-
-			// a采购项目 b规格 c下单数量 d单位 e完成数量 f单价 g预算金额 h实际金额 i交货时间 j备注
-			orderCount := fmt.Sprintf("%d", product.OrderCount)
-			price := fmt.Sprintf("%.3f", product.OrderPrice)
-			b.FormatToEmpty(&price)
-			DrawRow(b.Row, product.Name, product.Norm, orderCount, product.Unit, realCount, price, budgetAmount, realPrice, deliveryTime, product.Remark)
-			b.Row++
-			b.BudgetAmount += float64(product.OrderCount) * product.OrderPrice
-			b.RealAmount += float64(product.ConfirmCount) * product.OrderPrice
-		}
-	}
-
-	return nil
-}
-
-func (b *ReportProductExcel) drawRemark() error {
-	// 填备注
-	b.Row++
-	remarkTitleCell := fmt.Sprintf("A%d", b.Row)
-	b.Excel.SetCellValue(b.SheetName, remarkTitleCell, "备注:")
-	b.Row++
-
-	remarkContentScell := fmt.Sprintf("A%d", b.Row)
-	// 根据换行符确定多少行单元格
-	reg := regexp.MustCompile(`\n`)
-	remarkRowNum := len(reg.FindAllString(b.Content.Remark, -1)) + 1
-	b.Row += remarkRowNum
-	remarkContentEcell := fmt.Sprintf("J%d", b.Row)
-	b.Excel.MergeCell(b.SheetName, remarkContentScell, remarkContentEcell)
-	b.Excel.SetCellValue(b.SheetName, remarkContentScell, b.Content.Remark)
-
-	// 签字位置
-	b.Row += 2
-	styleLeft, err := b.Excel.NewStyle(&excelize.Style{
-		Alignment: &excelize.Alignment{Horizontal: "left", Vertical: "center"},
-		Font:      &excelize.Font{Size: 11}})
-	if err != nil {
-		return err
-	}
-	var drawLeft = func(rowIndex int, value string) error {
-		//左边1
-		left1Cell := fmt.Sprintf("A%d", rowIndex)
-		err := b.Excel.MergeCell(b.SheetName, left1Cell, fmt.Sprintf("E%d", rowIndex))
-		if err != nil {
-			return err
-		}
-		err = b.Excel.SetCellStyle(b.SheetName, left1Cell, left1Cell, styleLeft)
-		if err != nil {
-			return err
-		}
-		b.Excel.SetCellValue(b.SheetName, left1Cell, value)
-		return nil
-	}
-
-	var drawRight = func(rowIndex int, value string) error {
-		right1Cell := fmt.Sprintf("F%d", rowIndex)
-		err = b.Excel.MergeCell(b.SheetName, right1Cell, fmt.Sprintf("J%d", rowIndex))
-		if err != nil {
-			return err
-		}
-		err = b.Excel.SetCellStyle(b.SheetName, right1Cell, right1Cell, styleLeft)
-		if err != nil {
-			return err
-		}
-		b.Excel.SetCellValue(b.SheetName, right1Cell, value)
-		return nil
-	}
-
-	//第一行
-	drawLeft(b.Row, "甲方:"+b.Title)
-	drawRight(b.Row, "乙方:"+b.Content.Supplier)
-	b.Excel.SetRowHeight(b.SheetName, b.Row, 21)
-
-	//第二行
-	drawLeft(b.Row+1, "联系人:")
-	timeformat := b.Content.CreateTime.Local().Format("2006年01月02号 15:04:05")
-	drawRight(b.Row+1, "联系人:")
-	b.Excel.SetRowHeight(b.SheetName, b.Row+1, 21)
-
-	//第三行
-	drawLeft(b.Row+2, "时间:"+timeformat)
-	drawRight(b.Row+2, "时间:"+timeformat)
-	b.Excel.SetRowHeight(b.SheetName, b.Row+2, 21)
-	b.Row += 2
-
-	return nil
-
-}
-
-func (b *ReportProductExcel) Draws() {
-	b.drawTitle()
-	b.drawSubTitles()
-	b.drawTableTitle()
-	b.drawTableContent()
-	b.drawRemark()
-}
-
-func NewReportProductBill(f *excelize.File) *ReportProductExcel {
-
-	border := []excelize.Border{
-		{Type: "top", Style: 1, Color: "000000"},
-		{Type: "left", Style: 1, Color: "000000"},
-		{Type: "right", Style: 1, Color: "000000"},
-		{Type: "bottom", Style: 1, Color: "000000"},
-	}
-
-	styleLeft, _ := f.NewStyle(&excelize.Style{
-		Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center", WrapText: true},
-		Border:    border,
-		Font:      &excelize.Font{Size: 10},
-	})
-
-	b := &ReportProductExcel{
-		Title:            "原材料采购单",
-		SheetName:        "Sheet1",
-		Excel:            f,
-		Offset:           0,
-		AlignCenterStyle: styleLeft,
-	}
-
-	// f.SetColWidth(b.SheetName, "A", "J", 11.5)
-
-	f.SetColWidth(b.SheetName, "A", "A", 17)
-	f.SetColWidth(b.SheetName, "B", "B", 12)
-	f.SetColWidth(b.SheetName, "C", "H", 10.5)
-	f.SetColWidth(b.SheetName, "I", "J", 12)
-	f.SetPageMargins(b.SheetName, excelize.PageMarginTop(1), excelize.PageMarginLeft(0.25), excelize.PageMarginRight(0))
-	return b
-}
-
-func (b *ReportProductExcel) FormatToEmpty(str *string) {
-	if *str == "0" || *str == "0.000" {
-		*str = ""
-	}
-
-}

+ 0 - 317
boxcost/api/report-purchase-excel.go

@@ -1,317 +0,0 @@
-package api
-
-import (
-	"box-cost/db/model"
-	"fmt"
-
-	_ "image/gif"
-	_ "image/jpeg"
-	_ "image/png"
-
-	"github.com/xuri/excelize/v2"
-)
-
-type ReportPurchaseExcel struct {
-	Offset int
-	Row    int
-
-	Title string //标题
-
-	Excel *excelize.File
-
-	SheetName string
-
-	AlignCenterStyle int
-
-	Content *model.PurchaseBill
-
-	BudgetAmount float64
-	RealAmount   float64
-}
-
-func (b *ReportPurchaseExcel) drawTitle() error {
-	b.Row++
-	marginLeft := excelize.PageMarginLeft(0.15)
-	b.Excel.SetPageMargins(b.SheetName, marginLeft)
-	startCell := fmt.Sprintf("A%d", b.Row)
-	err := b.Excel.MergeCell(b.SheetName, startCell, fmt.Sprintf("L%d", b.Row))
-	if err != nil {
-		return err
-	}
-
-	style, err := b.Excel.NewStyle(&excelize.Style{
-		Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center"},
-		Font:      &excelize.Font{Bold: true, Size: 18}})
-	if err != nil {
-		return err
-	}
-	err = b.Excel.SetCellStyle(b.SheetName, startCell, startCell, style)
-	if err != nil {
-		return err
-	}
-	b.Excel.SetRowHeight(b.SheetName, b.Row, 23)
-	b.Excel.SetCellValue(b.SheetName, startCell, b.Title)
-	return nil
-}
-
-func (b *ReportPurchaseExcel) drawSubTitles() error {
-
-	b.Row++
-
-	styleLeft, err := b.Excel.NewStyle(&excelize.Style{
-		Alignment: &excelize.Alignment{Horizontal: "left", Vertical: "center"},
-		Font:      &excelize.Font{Size: 11}})
-	if err != nil {
-		return err
-	}
-	styleRight, err := b.Excel.NewStyle(&excelize.Style{
-		Alignment: &excelize.Alignment{Horizontal: "right", Vertical: "center"},
-		Font:      &excelize.Font{Size: 11}})
-	if err != nil {
-		return err
-	}
-
-	var drawLeft = func(rowIndex int, value string) error {
-		//左边1
-		left1Cell := fmt.Sprintf("A%d", rowIndex)
-		err = b.Excel.MergeCell(b.SheetName, left1Cell, fmt.Sprintf("F%d", rowIndex))
-		if err != nil {
-			return err
-		}
-		err = b.Excel.SetCellStyle(b.SheetName, left1Cell, left1Cell, styleLeft)
-		if err != nil {
-			return err
-		}
-		b.Excel.SetCellValue(b.SheetName, left1Cell, value)
-		return nil
-	}
-
-	var drawRight = func(rowIndex int, value string) error {
-		right1Cell := fmt.Sprintf("G%d", rowIndex)
-		err = b.Excel.MergeCell(b.SheetName, right1Cell, fmt.Sprintf("L%d", rowIndex))
-		if err != nil {
-			return err
-		}
-		err = b.Excel.SetCellStyle(b.SheetName, right1Cell, right1Cell, styleRight)
-		if err != nil {
-			return err
-		}
-		b.Excel.SetCellValue(b.SheetName, right1Cell, value)
-		return nil
-	}
-	//第一行
-	drawLeft(b.Row, "类别:"+b.Content.Type)
-	drawRight(b.Row, "单号:"+b.Content.SerialNumber)
-	b.Excel.SetRowHeight(b.SheetName, b.Row, 21)
-	b.Row++
-
-	//第二行
-	drawLeft(b.Row, "供应商名称:"+b.Content.Supplier)
-	timeformat := b.Content.CreateTime.Local().Format("2006年01月02号 15:04:05")
-	drawRight(b.Row, "下单时间:"+timeformat)
-	b.Excel.SetRowHeight(b.SheetName, b.Row, 21)
-
-	b.Row++
-	//第三行
-	drawLeft(b.Row, "产品名称:"+b.Content.ProductName)
-	status := ""
-	if b.Content.Status == "complete" {
-		status = "已完成"
-	}
-	if b.Content.Status == "created" {
-		status = "进行中"
-	}
-	drawRight(b.Row, "状态:"+status)
-	b.Excel.SetRowHeight(b.SheetName, b.Row, 21)
-
-	return nil
-}
-
-func (b *ReportPurchaseExcel) drawTableTitle() error {
-	b.Row++
-	//A采购项目 B规格(克) 尺寸C-D 数量E 单价F-G 交货时间H 备注I
-	var drawCol = func(prefix string, value string) error {
-		left1Cell := fmt.Sprintf("%s%d", prefix, b.Row)
-		left2Cell := fmt.Sprintf("%s%d", prefix, b.Row+1)
-
-		err := b.Excel.MergeCell(b.SheetName, left1Cell, left2Cell)
-		if err != nil {
-			return err
-		}
-		err = b.Excel.SetCellStyle(b.SheetName, left1Cell, left2Cell, b.AlignCenterStyle)
-		if err != nil {
-			return err
-		}
-
-		return b.Excel.SetCellValue(b.SheetName, left1Cell, value)
-	}
-
-	var drawCol2 = func(prefix1 string, prefix2 string, value1 string, value2 string, value3 string) error {
-		left1Cell := fmt.Sprintf("%s%d", prefix1, b.Row)
-		left2Cell := fmt.Sprintf("%s%d", prefix2, b.Row)
-		err := b.Excel.MergeCell(b.SheetName, left1Cell, left2Cell)
-		if err != nil {
-			return err
-		}
-		if err != nil {
-			fmt.Println(err)
-			return err
-		}
-		err = b.Excel.SetCellStyle(b.SheetName, left1Cell, left2Cell, b.AlignCenterStyle)
-		if err != nil {
-			return err
-		}
-		b.Excel.SetCellValue(b.SheetName, left1Cell, value1)
-
-		val2Cel := fmt.Sprintf("%s%d", prefix1, b.Row+1)
-		b.Excel.SetCellStyle(b.SheetName, val2Cel, val2Cel, b.AlignCenterStyle)
-		b.Excel.SetCellValue(b.SheetName, val2Cel, value2)
-
-		val3Cel := fmt.Sprintf("%s%d", prefix2, b.Row+1)
-		b.Excel.SetCellStyle(b.SheetName, val3Cel, val3Cel, b.AlignCenterStyle)
-		b.Excel.SetCellValue(b.SheetName, val3Cel, value3)
-		return nil
-	}
-
-	drawCol("A", "采购项目")
-	drawCol("B", "规格(克)")
-
-	drawCol("E", "数量")
-	drawCol("F", "完成数量")
-
-	drawCol2("C", "D", "尺寸(mm)", "长", "宽")
-	drawCol2("C", "D", "尺寸(mm)", "长", "宽")
-	unit1 := "-"
-	unit2 := "-"
-	// ??? for ragne
-	if len(b.Content.Paper) > 0 {
-		if b.Content.Paper[0].PriceUnit != "" {
-			unit1 = b.Content.Paper[0].PriceUnit
-		} else if b.Content.Paper[0].Price2Unit != "" {
-			unit2 = b.Content.Paper[0].Price2Unit
-		} else {
-			unit1 = "元/张"
-			unit2 = "元/吨"
-		}
-		if b.Content.Paper[0].PriceUnit != "" && b.Content.Paper[0].Price2Unit != "" {
-			unit1 = b.Content.Paper[0].PriceUnit
-			unit2 = b.Content.Paper[0].Price2Unit
-		}
-	}
-
-	drawCol2("G", "H", "单价", unit1, unit2)
-	drawCol("I", "预算金额")
-	drawCol("J", "实际金额")
-	drawCol("K", "交货时间")
-	drawCol("L", "备注")
-
-	return nil
-}
-
-func (b *ReportPurchaseExcel) drawTableContent() error {
-	// row := b.Offset + 7
-	// b.Row = row
-	b.Row += 2
-
-	var DrawRow = func(rowIndex int, values ...string) {
-		charas := []string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"}
-		for i, c := range charas {
-			v := ""
-			if i < len(values) {
-				v = values[i]
-			}
-			b.Excel.SetCellValue(b.SheetName, fmt.Sprintf("%s%d", c, rowIndex), v)
-			val2Cel := fmt.Sprintf("%s%d", c, rowIndex)
-			b.Excel.SetCellStyle(b.SheetName, val2Cel, val2Cel, b.AlignCenterStyle)
-
-			// var magN float64 = 1
-			// lenv := len([]rune(v))
-			// magN = math.Ceil(float64(lenv) / 10)
-			// b.Excel.SetRowHeight(b.SheetName, rowIndex, 21*magN)
-			b.Excel.SetRowHeight(b.SheetName, rowIndex, 46)
-		}
-	}
-
-	papers := b.Content.Paper
-	if len(papers) > 0 {
-		for _, paper := range papers {
-			deliveryTime := paper.DeliveryTime.Local().Format("2006-01-02")
-
-			realCount := ""
-			realPrice := ""
-			price := fmt.Sprintf("%.3f", paper.OrderPrice)
-			price2 := fmt.Sprintf("%.3f", paper.Price2)
-
-			// 预算金额
-			budgetAmount := fmt.Sprintf("%.3f", paper.OrderPrice*float64(paper.OrderCount))
-			b.FormatToEmpty(&budgetAmount)
-
-			// 实际完成数
-			realCount = fmt.Sprintf("%d", paper.ConfirmCount)
-			b.FormatToEmpty(&realCount)
-
-			// 实际金额
-			realPrice = fmt.Sprintf("%.3f", paper.OrderPrice*float64(paper.ConfirmCount))
-			b.FormatToEmpty(&realPrice)
-
-			DrawRow(b.Row, paper.Name, paper.Norm, paper.Height, paper.Width, fmt.Sprintf("%d", paper.OrderCount), realCount, price, price2, budgetAmount, realPrice, deliveryTime, paper.Remark)
-			b.Row++
-			b.BudgetAmount += paper.OrderPrice * float64(paper.OrderCount)
-			b.RealAmount += paper.OrderPrice * float64(paper.ConfirmCount)
-		}
-	}
-
-	return nil
-}
-
-func (b *ReportPurchaseExcel) Draws() {
-	b.drawTitle()
-	b.drawSubTitles()
-	b.drawTableTitle()
-	b.drawTableContent()
-
-}
-
-func NewReportPurchaseExcel(f *excelize.File) *ReportPurchaseExcel {
-
-	border := []excelize.Border{
-		{Type: "top", Style: 1, Color: "000000"},
-		{Type: "left", Style: 1, Color: "000000"},
-		{Type: "right", Style: 1, Color: "000000"},
-		{Type: "bottom", Style: 1, Color: "000000"},
-	}
-
-	styleLeft, _ := f.NewStyle(&excelize.Style{
-		Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center", WrapText: true},
-		Border:    border,
-		Font:      &excelize.Font{Size: 10},
-	})
-
-	b := &ReportPurchaseExcel{
-		Title:            "原材料采购单",
-		SheetName:        "Sheet1",
-		Excel:            f,
-		Offset:           0,
-		AlignCenterStyle: styleLeft,
-	}
-
-	// f.SetColWidth(b.SheetName, "A", "A", 12)
-	// f.SetColWidth(b.SheetName, "B", "K", 9.5)
-	// f.SetColWidth(b.SheetName, "L", "L", 10)
-
-	f.SetColWidth(b.SheetName, "A", "A", 15)
-	f.SetColWidth(b.SheetName, "B", "B", 15)
-	f.SetColWidth(b.SheetName, "C", "G", 7)
-	// f.SetColWidth(b.SheetName, "C", "H", 9.5)
-	f.SetColWidth(b.SheetName, "H", "K", 10)
-	f.SetColWidth(b.SheetName, "L", "L", 11)
-	f.SetPageMargins(b.SheetName, excelize.PageMarginTop(0), excelize.PageMarginLeft(0), excelize.PageMarginRight(0))
-	return b
-}
-
-func (b *ReportPurchaseExcel) FormatToEmpty(str *string) {
-	if *str == "0" || *str == "0.000" {
-		*str = ""
-	}
-
-}

+ 0 - 255
boxcost/api/report.go

@@ -21,9 +21,6 @@ func Report(r *GinRouter) {
 	// 采购列表
 	r.GET("/report/purchase/list", ReportPurchaseList)
 	r.GET("/report/product/list", ReportProductList)
-	r.GET("/report/produce/download", ReportProduceDownload)
-	r.GET("/report/purchase/download", ReportPurchaseDownload)
-	r.GET("/report/product/download", ReportProductDownload)
 	r.GETJWT("/report/list", ReportList)
 	r.GETJWT("/report/download", ReportListDownload)
 }
@@ -353,255 +350,3 @@ func ReportProductList(c *gin.Context, apictx *ApiSession) (interface{}, error)
 	})
 
 }
-
-func ReportProduceDownload(c *gin.Context, apictx *ApiSession) (interface{}, error) {
-	_, _, query := UtilQueryPageSize(c)
-	// 获取采符合条件的信息
-	produces := []*model.ProduceBill{}
-
-	err := repo.RepoDocsSearch(apictx.CreateRepoCtx(), &repo.PageSearchOptions{
-		CollectName: repo.CollectionBillProduce,
-		Query:       handleReportQuery(query),
-	}, &produces)
-	if err != nil || len(produces) < 1 {
-		return nil, errors.New("数据不存在")
-	}
-	f := excelize.NewFile()
-	index := f.NewSheet("Sheet1")
-	sheetName := f.GetSheetName(index)
-	f.SetActiveSheet(index)
-	f.SetDefaultFont("宋体")
-
-	border := []excelize.Border{
-		{Type: "top", Style: 1, Color: "000000"},
-		{Type: "left", Style: 1, Color: "000000"},
-		{Type: "right", Style: 1, Color: "000000"},
-		{Type: "bottom", Style: 1, Color: "000000"},
-	}
-	alignCenterStyle, _ := f.NewStyle(&excelize.Style{
-		Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center"},
-		Border:    border,
-	})
-	companyName := getCompanyName(apictx)
-
-	var budgetAmount float64 = 0
-	var realAmount float64 = 0
-	var row int = 0
-
-	for _, produce := range produces {
-		produceExcel := NewReportProduceExcel(f)
-		produceExcel.Row = row
-		produceExcel.Content = produce
-		produceExcel.Title = fmt.Sprintf("%s加工单", companyName)
-		//设置对应的数据
-		produceExcel.Draws()
-		budgetAmount += produceExcel.BudgetAmount
-		realAmount += produceExcel.RealAmount
-		row = produceExcel.Row + 3
-
-	}
-	row = row - 2
-	startCell := fmt.Sprintf("%s%d", "A", row)
-	endCell := fmt.Sprintf("%s%d", "H", row)
-	f.MergeCell(sheetName, startCell, endCell)
-	f.SetCellStyle(sheetName, startCell, endCell, alignCenterStyle)
-	f.SetCellValue(sheetName, startCell, "汇总金额")
-
-	// 预算金额汇总
-	budgetAmountCell := fmt.Sprintf("%s%d", "I", row)
-	budgetAmountStr := ""
-	if budgetAmount > 0 {
-		budgetAmountStr = fmt.Sprintf("%.3f", budgetAmount)
-	}
-	f.SetCellValue(sheetName, budgetAmountCell, budgetAmountStr)
-	f.SetCellStyle(sheetName, budgetAmountCell, budgetAmountCell, alignCenterStyle)
-
-	// 实际金额汇总
-	realAmountCell := fmt.Sprintf("%s%d", "J", row)
-
-	realAmountStr := ""
-	if realAmount > 0 {
-		realAmountStr = fmt.Sprintf("%.3f", realAmount)
-	}
-	f.SetCellValue(sheetName, realAmountCell, realAmountStr)
-	f.SetCellStyle(sheetName, realAmountCell, realAmountCell, alignCenterStyle)
-
-	f.SetRowHeight(sheetName, row, 21)
-
-	c.Header("Content-Type", "application/octet-stream")
-	c.Header("Content-Disposition", "attachment; filename="+"reportProduce.xlsx")
-	c.Header("Content-Transfer-Encoding", "binary")
-	err = f.Write(c.Writer)
-	if err != nil {
-		return nil, err
-	}
-	return nil, nil
-}
-
-func ReportPurchaseDownload(c *gin.Context, apictx *ApiSession) (interface{}, error) {
-	_, _, query := UtilQueryPageSize(c)
-
-	purchases := []model.PurchaseBill{}
-	err := repo.RepoDocsSearch(apictx.CreateRepoCtx(), &repo.PageSearchOptions{
-		CollectName: repo.CollectionBillPurchase,
-		Query:       handleReportQuery(query),
-	}, &purchases)
-	if err != nil || len(purchases) < 1 {
-		return nil, errors.New("数据不存在")
-	}
-	f := excelize.NewFile()
-	index := f.NewSheet("Sheet1")
-	sheetName := f.GetSheetName(index)
-	f.SetActiveSheet(index)
-	f.SetDefaultFont("宋体")
-
-	border := []excelize.Border{
-		{Type: "top", Style: 1, Color: "000000"},
-		{Type: "left", Style: 1, Color: "000000"},
-		{Type: "right", Style: 1, Color: "000000"},
-		{Type: "bottom", Style: 1, Color: "000000"},
-	}
-	alignCenterStyle, _ := f.NewStyle(&excelize.Style{
-		Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center"},
-		Border:    border,
-	})
-	companyName := getCompanyName(apictx)
-	var budgetCount float64 = 0
-	var realCount float64 = 0
-	var row int = 0
-
-	for _, purchase := range purchases {
-		var reportBill *ReportPurchaseExcel
-		if len(purchase.Paper) > 0 {
-			reportBill = NewReportPurchaseExcel(f)
-		}
-		if reportBill == nil {
-			return nil, errors.New("数据不存在")
-		}
-		reportBill.Row = row
-		reportBill.Content = &purchase
-		reportBill.Title = fmt.Sprintf("%s原材料采购单", companyName)
-		reportBill.Draws()
-		budgetCount += reportBill.BudgetAmount
-		realCount += reportBill.RealAmount
-		row = reportBill.Row + 3
-	}
-	row = row - 2
-	startCell := fmt.Sprintf("%s%d", "A", row)
-	endCell := fmt.Sprintf("%s%d", "H", row)
-	f.MergeCell(sheetName, startCell, endCell)
-	f.SetCellStyle(sheetName, startCell, endCell, alignCenterStyle)
-	f.SetCellValue(sheetName, startCell, "汇总金额")
-
-	// 预算金额汇总
-	budgetCountCell := fmt.Sprintf("%s%d", "I", row)
-	budgetCountStr := ""
-	if realCount > 0 {
-		budgetCountStr = fmt.Sprintf("%.3f", budgetCount)
-	}
-	f.SetCellValue(sheetName, budgetCountCell, budgetCountStr)
-	f.SetCellStyle(sheetName, budgetCountCell, budgetCountCell, alignCenterStyle)
-
-	// 实际金额汇总
-	RealCountCell := fmt.Sprintf("%s%d", "J", row)
-
-	realCountStr := ""
-	if realCount > 0 {
-		realCountStr = fmt.Sprintf("%.3f", realCount)
-	}
-	f.SetCellValue(sheetName, RealCountCell, realCountStr)
-	f.SetCellStyle(sheetName, RealCountCell, RealCountCell, alignCenterStyle)
-
-	f.SetRowHeight(sheetName, row, 21)
-
-	c.Header("Content-Type", "application/octet-stream")
-	c.Header("Content-Disposition", "attachment; filename="+"reportPurchase.xlsx")
-	c.Header("Content-Transfer-Encoding", "binary")
-	err = f.Write(c.Writer)
-	if err != nil {
-		return nil, err
-	}
-	return nil, nil
-}
-
-func ReportProductDownload(c *gin.Context, apictx *ApiSession) (interface{}, error) {
-	_, _, query := UtilQueryPageSize(c)
-	// 获取采符合条件的信息
-	products := []*model.ProductBill{}
-
-	err := repo.RepoDocsSearch(apictx.CreateRepoCtx(), &repo.PageSearchOptions{
-		CollectName: repo.CollectionBillProduct,
-		Query:       handleReportQuery(query),
-	}, &products)
-	if err != nil || len(products) < 1 {
-		return nil, errors.New("数据不存在")
-	}
-	f := excelize.NewFile()
-	index := f.NewSheet("Sheet1")
-	sheetName := f.GetSheetName(index)
-	f.SetActiveSheet(index)
-	f.SetDefaultFont("宋体")
-
-	border := []excelize.Border{
-		{Type: "top", Style: 1, Color: "000000"},
-		{Type: "left", Style: 1, Color: "000000"},
-		{Type: "right", Style: 1, Color: "000000"},
-		{Type: "bottom", Style: 1, Color: "000000"},
-	}
-	alignCenterStyle, _ := f.NewStyle(&excelize.Style{
-		Alignment: &excelize.Alignment{Horizontal: "center", Vertical: "center"},
-		Border:    border,
-	})
-	companyName := getCompanyName(apictx)
-
-	var budgetAmount float64 = 0
-	var realAmount float64 = 0
-	var row int = 0
-
-	for _, product := range products {
-		productExcel := NewReportProductBill(f)
-		productExcel.Row = row
-		productExcel.Content = product
-		productExcel.Title = companyName
-		productExcel.Draws()
-		budgetAmount += productExcel.BudgetAmount
-		realAmount += productExcel.RealAmount
-		row = productExcel.Row + 3
-	}
-	row = row - 2
-	startCell := fmt.Sprintf("%s%d", "A", row)
-	endCell := fmt.Sprintf("%s%d", "H", row)
-	f.MergeCell(sheetName, startCell, endCell)
-	f.SetCellStyle(sheetName, startCell, endCell, alignCenterStyle)
-	f.SetCellValue(sheetName, startCell, "汇总金额")
-
-	// 预算金额汇总
-	budgetAmountCell := fmt.Sprintf("%s%d", "I", row)
-	budgetCountStr := ""
-	if realAmount > 0 {
-		budgetCountStr = fmt.Sprintf("%.3f", realAmount)
-	}
-	f.SetCellValue(sheetName, budgetAmountCell, budgetCountStr)
-	f.SetCellStyle(sheetName, budgetAmountCell, budgetAmountCell, alignCenterStyle)
-
-	// 实际金额汇总
-	realAmountCell := fmt.Sprintf("%s%d", "J", row)
-
-	realAmountStr := ""
-	if realAmount > 0 {
-		realAmountStr = fmt.Sprintf("%.3f", realAmount)
-	}
-	f.SetCellValue(sheetName, realAmountCell, realAmountStr)
-	f.SetCellStyle(sheetName, realAmountCell, realAmountCell, alignCenterStyle)
-
-	f.SetRowHeight(sheetName, row, 21)
-
-	c.Header("Content-Type", "application/octet-stream")
-	c.Header("Content-Disposition", "attachment; filename="+"reportProduce.xlsx")
-	c.Header("Content-Transfer-Encoding", "binary")
-	err = f.Write(c.Writer)
-	if err != nil {
-		return nil, err
-	}
-	return nil, nil
-}