animeic 2 年 前
コミット
8ae77c27cc
2 ファイル変更18 行追加1 行削除
  1. 17 0
      boxcost/api/plan.go
  2. 1 1
      boxcost/api/utils.go

+ 17 - 0
boxcost/api/plan.go

@@ -495,7 +495,16 @@ type ToPdfResult struct {
 }
 
 func toPdfAndSaveTask(buf *bytes.Buffer, toPdfAddr, saveTmpDir, targetPdfName string, toPdfResult chan<- int, wg *sync.WaitGroup) {
+	if buf.Len() < 1<<10 {
+		fmt.Println("execl内容为空")
+		log.Error("execl内容为空")
+		toPdfResult <- -1
+		wg.Done()
+		return
+
+	}
 	res, err := excelToPdf(buf, toPdfAddr)
+
 	if err != nil {
 		fmt.Println(err)
 		log.Error(err)
@@ -522,6 +531,14 @@ func toPdfAndSaveTask(buf *bytes.Buffer, toPdfAddr, saveTmpDir, targetPdfName st
 		wg.Done()
 		return
 	}
+	if len(byteData) < 0 {
+		fmt.Println("pdf内容为空")
+		log.Error("pdf内容为空")
+		toPdfResult <- -1
+		wg.Done()
+		return
+	}
+
 	defer res.Body.Close()
 
 	err = savePdfToTmp(saveTmpDir, targetPdfName, byteData)

+ 1 - 1
boxcost/api/utils.go

@@ -123,7 +123,7 @@ func searchBillTypeById(ctx *ApiSession, collectName string, id primitive.Object
 
 func excelToPdf(formBody *bytes.Buffer, pdfHost string) (*http.Response, error) {
 	httpClient := &http.Client{
-		Timeout: time.Duration(10) * time.Second,
+		Timeout: time.Duration(15) * time.Second,
 	}
 	client := &gotenberg.Client{Hostname: pdfHost, HTTPClient: httpClient}
 	doc, err := gotenberg.NewDocumentFromBytes("foo.xlsx", formBody.Bytes())