Procházet zdrojové kódy

Merge remote-tracking branch 'origin/eta/1.8.3' into debug

Roc před 9 měsíci
rodič
revize
9edb1048f4

+ 3 - 2
controllers/report_v2.go

@@ -1378,8 +1378,9 @@ func (this *ReportController) PrePublishReport() {
 	}
 
 	// 生成报告pdf和长图
-	if req.ReportUrl != "" {
-		go services.Report2pdfAndJpeg(req.ReportUrl, reportDetail.Id, 1)
+	{
+		reportPdfUrl := services.GetGeneralPdfUrl(reportDetail.ReportCode, reportDetail.ReportLayout)
+		go services.Report2pdfAndJpeg(reportPdfUrl, reportDetail.Id, 1)
 	}
 
 	br.Ret = 200

+ 1 - 1
models/report_approve/report_approve.go

@@ -328,7 +328,7 @@ func GetApprovedReportApprovePageList(cond string, pars []interface{}, orderRule
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
-	sql := fmt.Sprintf(`SELECT a.report_approve_record_id, a.state AS record_state,a.node_state,a.node_approve_time, a.node_approve_time AS handle_time, b.*
+	sql := fmt.Sprintf(`SELECT a.report_approve_record_id, a.node_state AS record_state,a.node_state,a.node_approve_time, a.node_approve_time AS handle_time, b.*
 		FROM report_approve_record AS a
 		JOIN report_approve AS b ON a.report_approve_id = b.report_approve_id
 		WHERE 1 = 1 %s %s

+ 8 - 4
services/report_approve.go

@@ -676,9 +676,6 @@ func PassReportApprove(approveItem *report_approve.ReportApprove, recordItem *re
 				return
 			}
 		}()
-
-		// 生成报告pdf和长图
-		go Report2pdfAndJpeg(reportUrl, approveItem.ReportId, approveItem.ReportType)
 	}
 	return
 }
@@ -701,7 +698,7 @@ func RefuseReportApprove(approveItem *report_approve.ReportApprove, recordItem *
 	recordItem.ApproveTime = now
 	recordItem.ModifyTime = now
 
-	recordItem.NodeState = report_approve.ReportApproveStatePass
+	recordItem.NodeState = report_approve.ReportApproveStateRefuse
 	recordItem.NodeApproveUserId = recordItem.ApproveUserId
 	recordItem.NodeApproveUserName = recordItem.ApproveUserName
 	recordItem.NodeApproveTime = now
@@ -841,6 +838,13 @@ func AfterReportApprovePass(reportType, reportId int) (err error) {
 		}
 		// 重新生成音频,里面还涉及到章节类型的报告
 		go UpdateReportVideo(reportInfo)
+
+		// 生成报告pdf和长图
+		{
+			reportPdfUrl := GetGeneralPdfUrl(reportInfo.ReportCode, reportInfo.ReportLayout)
+			go Report2pdfAndJpeg(reportPdfUrl, reportId, 1)
+		}
+
 		//_ = CreateVideo(reportInfo)
 		_ = UpdateReportEs(reportInfo.Id, models.ReportStatePublished)
 

+ 31 - 4
services/report_v2.go

@@ -1117,8 +1117,9 @@ func PublishReport(reportId int, reportUrl string, sysUser *system.Admin) (tips
 	}()
 
 	// 生成报告pdf和长图
-	if reportUrl != "" {
-		go Report2pdfAndJpeg(reportUrl, reportId, 1)
+	{
+		reportPdfUrl := GetGeneralPdfUrl(reportInfo.ReportCode, reportInfo.ReportLayout)
+		go Report2pdfAndJpeg(reportPdfUrl, reportId, 1)
 	}
 
 	// 报告权限处理
@@ -1248,8 +1249,9 @@ func PublishChapterReport(reportInfo *models.Report, reportUrl string, sysUser *
 	go SaveReportLogs(reportInfo, chapters, reportInfo.AdminId, reportInfo.AdminRealName)
 
 	// 生成报告pdf和长图
-	if reportUrl != "" {
-		go Report2pdfAndJpeg(reportUrl, reportId, 1)
+	{
+		reportPdfUrl := GetGeneralPdfUrl(reportInfo.ReportCode, reportInfo.ReportLayout)
+		go Report2pdfAndJpeg(reportPdfUrl, reportId, 1)
 	}
 
 	return
@@ -1370,3 +1372,28 @@ func UpdateReportVideo(reportInfo *models.Report) {
 		}
 	}
 }
+
+// GetGeneralPdfUrl
+// @Description: 获取生成pdf的地址
+// @author: Roc
+// @datetime 2024-07-19 14:09:28
+// @param reportCode string
+// @param reportLayout int8
+// @return pdfUrl string
+func GetGeneralPdfUrl(reportCode string, reportLayout int8) (pdfUrl string) {
+	conf, e := models.GetBusinessConfByKey("ReportViewUrl")
+	if e != nil {
+		return
+	}
+
+	switch reportLayout {
+	case 1:
+		// 普通布局
+		pdfUrl = fmt.Sprintf("%s/reportshare_pdf?code=%s", conf.ConfVal, reportCode)
+	case 2:
+		// 智能布局
+		pdfUrl = fmt.Sprintf("%s/reportshare_smart_pdf?code=%s", conf.ConfVal, reportCode)
+	}
+
+	return
+}

+ 11 - 0
services/smart_report.go

@@ -282,6 +282,13 @@ finally:
 	return
 }
 
+// Report2pdfAndJpeg
+// @Description: 报告转pdf和图片
+// @author: Roc
+// @datetime 2024-07-19 14:11:38
+// @param reportUrl string
+// @param reportId int
+// @param reportType int
 func Report2pdfAndJpeg(reportUrl string, reportId, reportType int) {
 	var err error
 
@@ -292,6 +299,10 @@ func Report2pdfAndJpeg(reportUrl string, reportId, reportType int) {
 		}
 	}()
 
+	if reportUrl == `` {
+		return
+	}
+
 	// 先清空字段
 	if reportType == 1 {
 		err = models.UpdatePdfUrlReportById(reportId)