Browse Source

调整批量下载excel/pdf批量下载命名

animeic 2 years ago
parent
commit
ed0f9ba612

+ 1 - 0
boxcost/api/IExcel.go

@@ -4,6 +4,7 @@ type IExcel interface {
 	SetSignatures(sign interface{})
 	SetContent(content interface{})
 	SetTitle(title string)
+	SetSheetName(name string)
 	SetRow(row int)
 	SetIsPdf(isPdf string)
 	GetRow() int

+ 20 - 12
boxcost/api/bill-produce-excel.go

@@ -29,16 +29,16 @@ func (b *ProduceBillExcel) drawTitle() error {
 	b.Row++
 	//是打印
 	startCell := fmt.Sprintf("A%d", b.Row)
-	marginLeft := excelize.PageMarginLeft(0.1)
+	marginLeft := excelize.PageMarginLeft(0.15)
 	endCell := fmt.Sprintf("K%d", b.Row)
 	if b.Content.IsPrint {
-		b.Excel.SetColWidth(b.SheetName, "A", "A", 15)
-		b.Excel.SetColWidth(b.SheetName, "B", "C", 14)
+		b.Excel.SetColWidth(b.SheetName, "A", "A", 14)
+		b.Excel.SetColWidth(b.SheetName, "B", "C", 13)
 		b.Excel.SetColWidth(b.SheetName, "D", "E", 9)
 		b.Excel.SetColWidth(b.SheetName, "F", "F", 8)
 		b.Excel.SetColWidth(b.SheetName, "G", "G", 6.5)
 		b.Excel.SetColWidth(b.SheetName, "H", "I", 9)
-		b.Excel.SetColWidth(b.SheetName, "J", "J", 10)
+		b.Excel.SetColWidth(b.SheetName, "J", "J", 12)
 		b.Excel.SetColWidth(b.SheetName, "K", "K", 14)
 
 	} else {
@@ -53,15 +53,15 @@ func (b *ProduceBillExcel) drawTitle() error {
 		// 是覆膜
 		if b.Content.IsLam {
 			endCell = fmt.Sprintf("I%d", b.Row)
-			marginLeft = excelize.PageMarginLeft(0.3)
-			b.Excel.SetColWidth(b.SheetName, "A", "A", 16)
+			marginLeft = excelize.PageMarginLeft(0.2)
+			b.Excel.SetColWidth(b.SheetName, "A", "A", 14)
 			b.Excel.SetColWidth(b.SheetName, "B", "C", 14)
 			// 覆膜规格
 			// b.Excel.SetColWidth(b.SheetName, "C", "C", 16)
 			b.Excel.SetColWidth(b.SheetName, "D", "D", 10)
-			b.Excel.SetColWidth(b.SheetName, "E", "F", 12)
-			b.Excel.SetColWidth(b.SheetName, "G", "H", 10)
-			b.Excel.SetColWidth(b.SheetName, "I", "I", 14)
+			b.Excel.SetColWidth(b.SheetName, "E", "F", 11)
+			b.Excel.SetColWidth(b.SheetName, "G", "H", 12)
+			b.Excel.SetColWidth(b.SheetName, "I", "I", 16)
 
 		}
 
@@ -453,18 +453,21 @@ func (b *ProduceBillExcel) drawTableSignature() error {
 	b.Excel.SetCellValue(b.SheetName, billUserCellS, "制单人:"+b.Content.UserName)
 
 	fontNum := "F"
-	image1s := "G"
+	fontENum := "G"
+	image1s := "H"
 	image2s := "J"
 	image1e := "I"
 	image2e := "K"
 	if !b.Content.IsPrint {
 		fontNum = "E"
+		fontENum = "E"
 		image1s = "F"
 		image2s = "H"
 		image1e = "G"
 		image2e = "H"
 		if b.Content.IsLam {
 			fontNum = "E"
+			fontENum = "E"
 			image1s = "F"
 			image2s = "H"
 			image1e = "G"
@@ -474,7 +477,7 @@ func (b *ProduceBillExcel) drawTableSignature() error {
 	}
 
 	fontCell := fmt.Sprintf("%s%d", fontNum, b.Row)
-	fontEndCell := fmt.Sprintf("%s%d", fontNum, b.Row+2)
+	fontEndCell := fmt.Sprintf("%s%d", fontENum, b.Row+2)
 
 	imageCell1 := fmt.Sprintf("%s%d", image1s, b.Row)
 	imageEndCell1 := fmt.Sprintf("%s%d", image1e, b.Row+2)
@@ -544,7 +547,7 @@ func NewProduceBill(f *excelize.File) *ProduceBillExcel {
 		Signatures:       make([]*model.Signature, 0),
 	}
 
-	f.SetPageMargins(b.SheetName, excelize.PageMarginTop(0), excelize.PageMarginLeft(0), excelize.PageMarginRight(0))
+	f.SetPageMargins(b.SheetName, excelize.PageMarginTop(1), excelize.PageMarginLeft(0), excelize.PageMarginRight(0))
 
 	return b
 }
@@ -563,6 +566,11 @@ func (b *ProduceBillExcel) SetContent(content interface{}) {
 func (b *ProduceBillExcel) SetTitle(title string) {
 	b.Title = title
 
+}
+
+func (b *ProduceBillExcel) SetSheetName(name string) {
+	b.SheetName = name
+
 }
 func (b *ProduceBillExcel) SetRow(row int) {
 	b.Row = row

+ 4 - 0
boxcost/api/bill-product-excel.go

@@ -371,6 +371,10 @@ func (b *ProductBillExcel) SetContent(content interface{}) {
 func (b *ProductBillExcel) SetTitle(title string) {
 	b.Title = title
 
+}
+func (b *ProductBillExcel) SetSheetName(name string) {
+	b.SheetName = name
+
 }
 func (b *ProductBillExcel) SetRow(row int) {
 	b.Row = row

+ 10 - 5
boxcost/api/bill-purchase-excel.go

@@ -34,12 +34,13 @@ func (b *PurchaseBillExcel) drawTitle() error {
 	b.Row++
 	startCell := fmt.Sprintf("A%d", b.Row)
 	endCell := fmt.Sprintf("J%d", b.Row)
-	marginLeft := excelize.PageMarginLeft(0.3)
-	b.Excel.SetColWidth(b.SheetName, "A", "A", 18)
+	marginLeft := excelize.PageMarginLeft(0.15)
+	b.Excel.SetColWidth(b.SheetName, "A", "A", 16)
 	b.Excel.SetColWidth(b.SheetName, "A", "B", 16)
-	b.Excel.SetColWidth(b.SheetName, "C", "I", 9)
+	b.Excel.SetColWidth(b.SheetName, "C", "G", 9)
+	b.Excel.SetColWidth(b.SheetName, "H", "I", 12)
 	// b.Excel.SetColWidth(b.SheetName, "J", "J", 24.5)
-	b.Excel.SetColWidth(b.SheetName, "J", "J", 18.5)
+	b.Excel.SetColWidth(b.SheetName, "J", "J", 16)
 	b.Excel.SetPageMargins(b.SheetName, marginLeft)
 	err := b.Excel.MergeCell(b.SheetName, startCell, endCell)
 	if err != nil {
@@ -383,7 +384,7 @@ func NewPurchaseBill(f *excelize.File) *PurchaseBillExcel {
 		Signatures:       make([]*model.Signature, 0),
 	}
 
-	f.SetPageMargins(b.SheetName, excelize.PageMarginTop(0), excelize.PageMarginLeft(0), excelize.PageMarginRight(0))
+	f.SetPageMargins(b.SheetName, excelize.PageMarginTop(1), excelize.PageMarginLeft(0), excelize.PageMarginRight(0))
 	return b
 }
 
@@ -402,6 +403,10 @@ func (b *PurchaseBillExcel) SetContent(content interface{}) {
 func (b *PurchaseBillExcel) SetTitle(title string) {
 	b.Title = title
 
+}
+func (b *PurchaseBillExcel) SetSheetName(name string) {
+	b.SheetName = name
+
 }
 func (b *PurchaseBillExcel) SetRow(row int) {
 	b.Row = row

+ 47 - 0
boxcost/api/mac-cpu.go

@@ -0,0 +1,47 @@
+package api
+
+import (
+	"github.com/gin-gonic/gin"
+	"github.com/shirou/gopsutil/net"
+)
+
+func Mac(r *GinRouter) {
+	r.GET("/mac/info", MacInfo)
+}
+
+func MacInfo(c *gin.Context, apictx *ApiSession) (interface{}, error) {
+	// diskInfo, _ := disk.Partitions(false)
+	// fmt.Printf("%+v\n", diskInfo)
+
+	// netInfo, _ := net.Interfaces()
+	// fmt.Printf("%+v\n", netInfo)
+
+	// cpuInfo, _ := cpu.Info()
+	// fmt.Printf("%+v\n", cpuInfo)
+
+	// memInfo, _ := mem.VirtualMemory()
+	// fmt.Printf("%+v\n", memInfo)
+
+	interfaces, err := net.Interfaces()
+	if err != nil {
+		return nil, err
+	}
+	macAddr := getRealMacAddr(interfaces)
+
+	return UtilMd5(macAddr), nil
+}
+
+// b0:6e:bf:c5:32:30
+func getRealMacAddr(netInterfaces []net.InterfaceStat) string {
+	loindex := 0
+	for _, netInterface := range netInterfaces {
+		if netInterface.Name == "lo" {
+			loindex = netInterface.Index
+			break
+		}
+	}
+	if len(netInterfaces) < loindex+1 {
+		return ""
+	}
+	return netInterfaces[loindex].HardwareAddr
+}

+ 200 - 1
boxcost/api/plan.go

@@ -124,6 +124,201 @@ func DownLoadPlanBills(c *gin.Context, apictx *ApiSession) (interface{}, error)
 			}
 		}
 
+	}
+	// 去重单据号
+	typeBillIds := removeDuplicationSort(billIds)
+	if len(typeBillIds) < 1 {
+		return nil, errors.New("未找到单据信息")
+	}
+	f := excelize.NewFile()
+	f.SetDefaultFont("宋体")
+	flagIndex := -1
+	companyName := getCompanyName(apictx)
+
+	// 采购 加工 加工-印刷 加工-覆膜 成名采购
+	typeRows := []int{0, 0, 0, 0, 0}
+	for _, tId := range typeBillIds {
+		tidArr := strings.Split(tId, "_")
+
+		var billExcel IExcel
+		// 采购
+		billId, _ := primitive.ObjectIDFromHex(tidArr[1])
+		if tidArr[0] == "1" {
+			purchase := model.PurchaseBill{}
+			found, _ := repo.RepoSeachDoc(apictx.CreateRepoCtx(), &repo.DocSearchOptions{
+				CollectName: repo.CollectionBillPurchase,
+				Query:       repo.Map{"_id": billId},
+			}, &purchase)
+			if found {
+				sheetName := "采购单"
+				index := f.NewSheet(sheetName)
+				if flagIndex < 0 {
+					flagIndex = index
+				}
+				// index := f.NewSheet("采购单")
+				// f.SetActiveSheet(index)
+				billExcel = NewPurchaseBill(f)
+				billExcel.SetSheetName(sheetName)
+				if purchase.Reviewed == 1 {
+					if len(purchase.SignUsers) > 0 {
+						signs := []*model.Signature{}
+						repo.RepoDocsSearch(apictx.CreateRepoCtx(), &repo.PageSearchOptions{
+							CollectName: repo.CollectionSignature,
+							Query:       repo.Map{"_id": bson.M{"$in": purchase.SignUsers}},
+							Sort:        bson.M{"sort": 1},
+						}, &signs)
+						billExcel.SetSignatures(signs)
+					}
+
+				}
+				billExcel.SetContent(&purchase)
+				billExcel.SetTitle(fmt.Sprintf("%s原材料采购单", companyName))
+
+			}
+			billExcel.SetRow(typeRows[0])
+			billExcel.Draws()
+			typeRows[0] = billExcel.GetRow() + 5
+
+		}
+		// 工艺
+		if tidArr[0] == "2" {
+			produce := model.ProduceBill{}
+			found, _ := repo.RepoSeachDoc(apictx.CreateRepoCtx(), &repo.DocSearchOptions{
+				CollectName: repo.CollectionBillProduce,
+				Query:       repo.Map{"_id": billId},
+			}, &produce)
+			if found {
+				sheetName := "加工单"
+
+				if produce.IsPrint {
+					sheetName = "加工单-印刷"
+				} else if produce.IsLam {
+					sheetName = "加工单-覆膜"
+				}
+				index := f.NewSheet(sheetName)
+				if flagIndex < 0 {
+					flagIndex = index
+				}
+				billExcel = NewProduceBill(f)
+				billExcel.SetSheetName(sheetName)
+				if produce.Reviewed == 1 {
+					if len(produce.SignUsers) > 0 {
+						signs := []*model.Signature{}
+						repo.RepoDocsSearch(apictx.CreateRepoCtx(), &repo.PageSearchOptions{
+							CollectName: repo.CollectionSignature,
+							Query:       repo.Map{"_id": bson.M{"$in": produce.SignUsers}},
+							Sort:        bson.M{"sort": 1},
+						}, &signs)
+						billExcel.SetSignatures(signs)
+					}
+
+				}
+				billExcel.SetContent(&produce)
+				billExcel.SetTitle(fmt.Sprintf("%s加工单", companyName))
+
+			}
+
+			if produce.IsPrint {
+				billExcel.SetRow(typeRows[2])
+				billExcel.Draws()
+				typeRows[2] = billExcel.GetRow() + 5
+			} else if produce.IsLam {
+				billExcel.SetRow(typeRows[3])
+				billExcel.Draws()
+				typeRows[3] = billExcel.GetRow() + 5
+			} else {
+				billExcel.SetRow(typeRows[1])
+				billExcel.Draws()
+				typeRows[1] = billExcel.GetRow() + 5
+
+			}
+
+		}
+		// 成品采购
+		if tidArr[0] == "3" {
+			product := model.ProductBill{}
+			found, _ := repo.RepoSeachDoc(apictx.CreateRepoCtx(), &repo.DocSearchOptions{
+				CollectName: repo.CollectionBillProduct,
+				Query:       repo.Map{"_id": billId},
+			}, &product)
+			if found {
+				sheetName := "成品采购单"
+				index := f.NewSheet(sheetName)
+				if flagIndex < 0 {
+					flagIndex = index
+				}
+				billExcel = NewProductBill(f)
+				billExcel.SetSheetName(sheetName)
+				if product.Reviewed == 1 {
+					if len(product.SignUsers) > 0 {
+						signs := []*model.Signature{}
+						repo.RepoDocsSearch(apictx.CreateRepoCtx(), &repo.PageSearchOptions{
+							CollectName: repo.CollectionSignature,
+							Query:       repo.Map{"_id": bson.M{"$in": product.SignUsers}},
+							Sort:        bson.M{"sort": 1},
+						}, &signs)
+						billExcel.SetSignatures(signs)
+					}
+
+				}
+				billExcel.SetContent(&product)
+				billExcel.SetTitle(companyName)
+
+			}
+			billExcel.SetRow(typeRows[4])
+			billExcel.Draws()
+			typeRows[4] = billExcel.GetRow() + 5
+		}
+		if billExcel == nil {
+			continue
+		}
+
+	}
+	// 设置活跃sheet
+	f.SetActiveSheet(flagIndex)
+	// 删除默认Sheet1
+	f.DeleteSheet("Sheet1")
+
+	c.Header("Content-Type", "application/octet-stream")
+	c.Header("Content-Disposition", "attachment; filename="+"bill.xlsx")
+	c.Header("Content-Transfer-Encoding", "binary")
+
+	err = f.Write(c.Writer)
+	if err != nil {
+		return nil, err
+	}
+
+	return nil, nil
+}
+
+// todo old 功能确定后删除
+func DownLoadPlanBillsBack(c *gin.Context, apictx *ApiSession) (interface{}, error) {
+	_planId := c.Query("id")
+	planId, err := primitive.ObjectIDFromHex(_planId)
+	if err != nil {
+		return nil, errors.New("planId错误")
+	}
+	plan := model.ProductPlan{}
+	found, err := repo.RepoSeachDoc(apictx.CreateRepoCtx(), &repo.DocSearchOptions{
+		CollectName: repo.CollectionProductPlan,
+		Query:       repo.Map{"_id": planId},
+	}, &plan)
+	if !found || err != nil {
+		return nil, errors.New("数据未找到")
+	}
+	// 获取所有stages单据id
+	billIds := make([]string, 0)
+	for _, comp := range plan.Pack.Components {
+		if comp.Id == "" || len(comp.Stages) == 0 {
+			continue
+		}
+		for _, stage := range comp.Stages {
+			billId, _ := primitive.ObjectIDFromHex(stage.BillId)
+			if !billId.IsZero() {
+				billIds = append(billIds, fmt.Sprintf("%d_%s", stage.BillType, stage.BillId))
+			}
+		}
+
 	}
 	// 去重单据号
 	typeBillIds := removeDuplicationSort(billIds)
@@ -290,6 +485,7 @@ func DownLoadPlanBillsPdf(c *gin.Context, apictx *ApiSession) (interface{}, erro
 	for _, tId := range typeBillIds {
 		productName := ""
 		supplierName := ""
+		serialNumber := ""
 		f := excelize.NewFile()
 		index := f.NewSheet("Sheet1")
 		f.SetActiveSheet(index)
@@ -322,6 +518,7 @@ func DownLoadPlanBillsPdf(c *gin.Context, apictx *ApiSession) (interface{}, erro
 				}
 				productName = purchase.ProductName
 				supplierName = purchase.Supplier
+				serialNumber = purchase.SerialNumber
 				billExcel.SetContent(&purchase)
 				billExcel.SetTitle(fmt.Sprintf("%s原材料采购单", companyName))
 			}
@@ -350,6 +547,7 @@ func DownLoadPlanBillsPdf(c *gin.Context, apictx *ApiSession) (interface{}, erro
 				}
 				productName = produce.ProductName
 				supplierName = produce.Supplier
+				serialNumber = produce.SerialNumber
 				billExcel.SetContent(&produce)
 				billExcel.SetTitle(fmt.Sprintf("%s加工单", companyName))
 			}
@@ -378,6 +576,7 @@ func DownLoadPlanBillsPdf(c *gin.Context, apictx *ApiSession) (interface{}, erro
 				}
 				productName = product.ProductName
 				supplierName = product.Supplier
+				serialNumber = product.SerialNumber
 				billExcel.SetContent(&product)
 				billExcel.SetTitle(companyName)
 			}
@@ -392,7 +591,7 @@ func DownLoadPlanBillsPdf(c *gin.Context, apictx *ApiSession) (interface{}, erro
 		// r := regexp.MustCompile(`/`)
 		_productName := r.ReplaceAllString(productName, `&`)
 		_supplierName := r.ReplaceAllString(supplierName, `&`)
-		targePdfName := fmt.Sprintf("%s-%s.pdf", _productName, _supplierName)
+		targePdfName := fmt.Sprintf("%s-%s-%s.pdf", _supplierName, _productName, serialNumber)
 		// fmt.Println(targePdfName)
 
 		wg.Add(1)

+ 2 - 0
boxcost/api/router.go

@@ -58,6 +58,8 @@ func RegRouters(svc *Service) {
 	// 成品采购管理
 	Product(boxcost)
 
+	// Mac(boxcost)
+
 	boxcost.GET("/apk/version", func(c *gin.Context, apictx *ApiSession) (interface{}, error) {
 		out, err := repo.RepoPageSearch(apictx.CreateRepoCtx(), &repo.PageSearchOptions{
 			CollectName: "versions",

+ 0 - 231
boxcost/boxcost.log

@@ -1,231 +0,0 @@
-{"level":"info","timestamp":"2022-10-25 11:33:14","message":"[<nil>]","service_name":"boxcost"}
-{"level":"info","timestamp":"2022-10-25 11:44:56","message":"[<nil>]","service_name":"boxcost"}
-{"level":"info","timestamp":"2022-10-25 11:45:41","message":"[<nil>]","service_name":"boxcost"}
-{"level":"info","timestamp":"2022-10-25 11:48:50","message":"[<nil>]","service_name":"boxcost"}
-{"level":"info","timestamp":"2022-10-25 18:21:40","message":"[<nil>]","service_name":"boxcost"}
-{"level":"info","timestamp":"2022-10-26 11:16:11","message":"[<nil>]","service_name":"boxcost"}
-{"level":"info","timestamp":"2022-11-14 10:17:17","message":"[<nil>]","service_name":"boxcost"}
-{"level":"info","timestamp":"2022-11-14 10:18:50","message":"[<nil>]","service_name":"boxcost"}
-{"level":"info","timestamp":"2022-11-14 10:22:22","message":"[<nil>]","service_name":"boxcost"}
-{"level":"info","timestamp":"2022-12-21 11:19:42","message":"[<nil>]","service_name":"boxcost"}
-{"level":"info","timestamp":"2022-12-21 11:20:02","message":"[<nil>]","service_name":"boxcost"}
-{"level":"info","timestamp":"2022-12-21 11:21:28","message":"[<nil>]","service_name":"boxcost"}
-{"level":"info","timestamp":"2022-12-21 11:24:46","message":"[<nil>]","service_name":"boxcost"}
-{"level":"info","timestamp":"2023-01-18 10:09:00","message":"[<nil>]","service_name":"boxcost"}
-{"level":"info","timestamp":"2023-02-15 10:39:19","message":"[<nil>]","service_name":"boxcost"}
-{"level":"info","timestamp":"2023-02-15 10:43:36","message":"[<nil>]","service_name":"boxcost"}
-{"level":"info","timestamp":"2023-02-21 12:20:32","message":"[error decoding key papers.0.price: cannot decode string into a float32 or float64 type]","service_name":"boxcost"}
-{"level":"info","timestamp":"2023-02-21 12:21:18","message":"[error decoding key papers.0.price: cannot decode string into a float32 or float64 type]","service_name":"boxcost"}
-{"level":"info","timestamp":"2023-02-21 12:23:02","message":"[<nil>]","service_name":"boxcost"}
-{"level":"info","timestamp":"2023-02-21 12:25:42","message":"[error decoding key papers.0.price: cannot decode string into a float32 or float64 type]","service_name":"boxcost"}
-{"level":"info","timestamp":"2023-02-21 14:15:57","message":"[<nil>]","service_name":"boxcost"}
-{"level":"fatal","timestamp":"2023-03-09 16:26:05","message":"[open tmp/aaa.pdf: no such file or directory]","service_name":"boxcost"}
-{"level":"fatal","timestamp":"2023-03-09 16:27:15","message":"[open tmp/aaa.pdf: permission denied]","service_name":"boxcost"}
-{"level":"fatal","timestamp":"2023-03-09 16:27:27","message":"[open tmp/aaa.pdf: permission denied]","service_name":"boxcost"}
-{"level":"fatal","timestamp":"2023-03-09 16:28:02","message":"[open tmp/aaa.pdf: permission denied]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-09 17:20:57","message":"[fstatat tmp/喜乐: permission denied]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-09 17:27:10","message":"[fstatat tmp/喜乐: permission denied]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-09 17:31:58","message":"[fstatat tmp/喜乐: permission denied]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-09 17:32:09","message":"[mkdir tmp/喜乐: permission denied]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-09 17:33:07","message":"[mkdir tmp/喜乐: permission denied]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-09 17:36:16","message":"[mkdir tmp/喜乐: permission denied]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-09 17:39:03","message":"[mkdir tmp/喜乐: permission denied]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-09 17:41:12","message":"[mkdir ./tmp/喜乐: permission denied]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-09 17:42:25","message":"[mkdir ./tmp/喜乐: permission denied]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-09 17:43:09","message":"[mkdir ./tmp/喜乐: permission denied]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-09 17:43:54","message":"[mkdir ./tmp/addd: permission denied]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 09:48:29","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 09:49:12","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:10","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:10","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:10","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:10","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:10","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:10","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:10","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:10","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:10","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:10","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:11","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:11","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:11","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:11","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:11","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:11","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:11","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:11","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:11","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:11","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:29:11","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:30:00","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:30:00","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:30:00","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:30:00","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:30:00","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:30:00","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:30:00","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:30:00","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:30:00","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:30:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:30:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:30:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:30:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:30:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:30:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:30:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 17:30:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:12","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:12","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:12","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:12","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:13","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:13","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:13","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:13","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:13","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:13","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:13","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:13","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:13","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:13","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:13","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:13","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:13","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:41","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:41","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:41","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:41","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:41","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:41","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:41","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:41","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:41","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:41","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:41","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:42","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:42","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:42","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:42","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:42","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:42","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:42","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:42","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:42","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:42","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:01:42","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:06:43","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:06:43","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:06:43","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:06:43","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:06:43","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:06:44","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:06:44","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:06:44","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:06:44","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:06:44","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:07:53","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:01","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:02","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:02","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:02","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:02","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:02","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:02","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:02","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:02","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:02","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:16:02","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:18:31","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:18:31","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:18:31","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:18:31","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:18:31","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:18:31","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:18:31","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:18:31","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:18:31","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:18:32","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:18:32","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:18:32","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:18:32","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:18:32","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:18:32","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:18:32","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:19:06","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:19:06","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:19:06","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:19:06","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:19:07","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:19:07","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:19:07","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:19:07","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:19:07","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:19:07","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:19:07","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:19:07","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:19:07","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:19:07","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:24:30","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:24:30","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:24:30","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:24:30","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:24:30","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:24:30","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:24:30","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:24:30","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:24:31","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:24:31","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:24:31","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:24:31","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:24:31","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:24:31","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:28:44","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:28:45","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:36:53","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:21","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:21","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:21","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:21","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:21","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:21","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:21","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:21","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:21","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:53","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:54","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:54","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:54","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:54","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:54","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:54","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:54","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:54","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:54","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:54","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:54","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:54","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:54","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:54","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:55","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:55","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:55","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:55","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:55","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:55","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-10 18:40:55","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"info","timestamp":"2023-03-24 17:08:54","message":"[<nil>]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-30 09:52:24","message":"[Post \"http://localhost:3001/convert/office\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-30 10:09:36","message":"[open tmp1/4枚\\/8枚蓝莓盒卡片+不干胶/4枚/8枚蓝莓盒卡片+不干胶(8000套)--卡片--UV印刷(双面)起价-泓瑞包装.pdf: no such file or directory]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-30 10:10:58","message":"[open tmp1/4枚-8枚蓝莓盒卡片+不干胶/4枚/8枚蓝莓盒卡片+不干胶(8000套)--卡片--UV印刷(双面)起价-泓瑞包装.pdf: no such file or directory]","service_name":"boxcost"}
-{"level":"error","timestamp":"2023-03-30 10:24:42","message":"[open tmp1/4枚&8枚蓝莓盒卡片+不干胶/4枚\\/8枚蓝莓盒卡片+不干胶(8000套)--卡片--UV印刷(双面)起价-泓瑞包装.pdf: no such file or directory]","service_name":"boxcost"}

+ 10 - 1
boxcost/go.mod

@@ -3,6 +3,7 @@ module box-cost
 go 1.19
 
 require (
+	github.com/StackExchange/wmi v1.2.1
 	github.com/appleboy/gin-jwt/v2 v2.7.0
 	github.com/gin-contrib/cors v1.3.1
 	github.com/gin-contrib/sessions v0.0.3
@@ -18,6 +19,13 @@ require (
 	infish.cn/comm v0.0.0
 )
 
+require (
+	github.com/go-ole/go-ole v1.2.6 // indirect
+	github.com/tklauser/go-sysconf v0.3.11 // indirect
+	github.com/tklauser/numcpus v0.6.0 // indirect
+	github.com/yusufpapurcu/wmi v1.2.2 // indirect
+)
+
 require (
 	github.com/cenkalti/backoff/v4 v4.2.0 // indirect
 	github.com/cespare/xxhash/v2 v2.2.0 // indirect
@@ -56,6 +64,7 @@ require (
 	github.com/pkg/errors v0.9.1 // indirect
 	github.com/richardlehane/mscfb v1.0.4 // indirect
 	github.com/richardlehane/msoleps v1.0.3 // indirect
+	github.com/shirou/gopsutil v3.21.11+incompatible
 	github.com/spf13/afero v1.6.0 // indirect
 	github.com/spf13/cast v1.4.1 // indirect
 	github.com/spf13/jwalterweatherman v1.1.0 // indirect
@@ -74,7 +83,7 @@ require (
 	golang.org/x/crypto v0.4.0 // indirect
 	golang.org/x/net v0.4.0 // indirect
 	golang.org/x/sync v0.1.0 // indirect
-	golang.org/x/sys v0.3.0 // indirect
+	golang.org/x/sys v0.6.0
 	golang.org/x/text v0.5.0 // indirect
 	google.golang.org/protobuf v1.28.1 // indirect
 	gopkg.in/ini.v1 v1.66.6 // indirect

+ 17 - 2
boxcost/go.sum

@@ -109,6 +109,8 @@ github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbt
 github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
 github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ=
+github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA=
+github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8=
 github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
 github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
@@ -459,6 +461,10 @@ github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbV
 github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
 github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI=
 github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
+github.com/go-ole/go-ole v1.2.5 h1:t4MGB5xEDZvXI+0rMjjsfBsD7yAgp/s9ZDkL1JndXwY=
+github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
+github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
+github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
 github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
 github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
 github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
@@ -1079,6 +1085,8 @@ github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24
 github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
 github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
 github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg=
+github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI=
+github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
 github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4=
 github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
 github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
@@ -1155,6 +1163,10 @@ github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JT
 github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
 github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs=
 github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
+github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM=
+github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI=
+github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms=
+github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4=
 github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
 github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
 github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
@@ -1208,6 +1220,8 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
 github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
+github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg=
+github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
 github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs=
 github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA=
 github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg=
@@ -1589,8 +1603,9 @@ golang.org/x/sys v0.0.0-20220317061510-51cd9980dadf/go.mod h1:oPkhp1MJrh7nUepCBc
 golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ=
-golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
+golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=