Browse Source

fix;ppt转报告、英文ppt;以及英文ppt转英文报告,需要继承对应的表格样式

Roc 3 months ago
parent
commit
fc662ec4f5
2 changed files with 118 additions and 0 deletions
  1. 6 0
      controllers/ppt_v2.go
  2. 112 0
      services/ppt.go

+ 6 - 0
controllers/ppt_v2.go

@@ -1123,6 +1123,9 @@ func (this *PptV2Controller) ToEn() {
 		return
 	}
 
+	// ppt转英文ppt后,将ppt的表格关系做处理
+	services.HandlerPptToEnPptTableReferenced(origin.PptId, int(newId), this.SysUser.AdminId, this.SysUser.RealName)
+
 	resp := ppt_english.AddPptEnglishResp{
 		PptId: newId,
 	}
@@ -1221,6 +1224,9 @@ func (this *PptV2Controller) BatchToEn() {
 			br.ErrMsg = "新增英文PPT和目录映射失败, Err: " + e.Error()
 			return
 		}
+
+		// ppt转英文ppt后,将ppt的表格关系做处理
+		services.HandlerPptToEnPptTableReferenced(origin.PptId, int(newId), this.SysUser.AdminId, this.SysUser.RealName)
 	}
 
 	br.Ret = 200

+ 112 - 0
services/ppt.go

@@ -4,6 +4,7 @@ import (
 	"encoding/json"
 	"errors"
 	"eta/eta_api/models"
+	"eta/eta_api/models/data_manage/excel"
 	"eta/eta_api/models/ppt_english"
 	"eta/eta_api/models/system"
 	"eta/eta_api/services/alarm_msg"
@@ -169,6 +170,9 @@ func SavePPTReport(pptId, classifyId int, title string, adminInfo *system.Admin)
 	reportId = int(newReportId)
 	reportCode = newCode
 
+	// ppt转报告后,将ppt的表格关系做处理
+	handlerPptToReportTableReferenced(pptId, int(newReportId))
+
 	// 更新报告中的ppt图片
 	go saveReportPptImg(pptId, reportId, item.PptxUrl)
 
@@ -484,3 +488,111 @@ func UpdatePptEditing(pptId, status, userId int, userName string, isEn bool) (re
 	}
 	return
 }
+
+// handlerPptToReportTableReferenced
+// @Description: ppt转报告后,需要同时继承原来ppt中表格的拖动数据逻辑
+// @author: Roc
+// @datetime 2025-01-09 16:51:11
+// @param pptId int
+// @param reportId int
+func handlerPptToReportTableReferenced(pptId, reportId int) {
+	var err error
+	defer func() {
+		if err != nil {
+			utils.FileLog.Error("ppt转报告后,报告与动态表格关联处理失败,PPT的ID:%d,新报告ID:%d,Err:%s", pptId, reportId, err.Error())
+		}
+	}()
+	reportInfo, err := models.GetReportByReportId(reportId)
+	if err != nil {
+		return
+	}
+
+	addList, err := excel.CopyReferencedExcelConfigByReferencedIdAndFromScene(pptId, utils.TableReferencedByPPT, reportInfo.Id, utils.TableReferencedByReport, reportInfo.AdminId, reportInfo.AdminRealName)
+	if err != nil {
+		return
+	}
+
+	if len(addList) > 0 {
+		// 修改内容
+		reportInfo.Content = HandleReportContentTable(reportInfo.Id, reportInfo.Content)
+		reportInfo.ContentStruct = HandleReportContentStructTable(reportInfo.Id, reportInfo.ContentStruct)
+		err = reportInfo.Update([]string{"Content", "ContentStruct"})
+		if err != nil {
+			return
+		}
+
+		if reportInfo.HasChapter == 1 {
+			chapterList, tmpErr := models.GetChapterListByReportId(reportInfo.Id)
+			if tmpErr != nil {
+				err = tmpErr
+				return
+			}
+			for _, v := range chapterList {
+				v.Content = HandleReportContentTable(reportInfo.Id, v.Content)
+				v.ContentStruct = HandleReportContentStructTable(reportInfo.Id, v.ContentStruct)
+				err = v.Update([]string{"Content", "ContentStruct"})
+				if err != nil {
+					return
+				}
+			}
+		}
+	}
+
+}
+
+// HandlerPptToEnPptTableReferenced
+// @Description: ppt转英文ppt后,需要同时继承原来ppt中表格的拖动数据逻辑
+// @author: Roc
+// @datetime 2025-01-09 16:51:03
+// @param pptId int
+// @param enPptId int
+// @param sysUserId int
+// @param sysUserName string
+func HandlerPptToEnPptTableReferenced(pptId, enPptId, sysUserId int, sysUserName string) {
+	var err error
+	defer func() {
+		if err != nil {
+			utils.FileLog.Error("ppt转英文PPT后,英文PPT与动态表格关联处理失败,PPT的ID:%d,英文ppt的ID:%d,Err:%s", pptId, enPptId, err.Error())
+		}
+	}()
+
+	_, err = excel.CopyReferencedExcelConfigByReferencedIdAndFromScene(pptId, utils.TableReferencedByPPT, enPptId, utils.TableReferencedByEnPPT, sysUserId, sysUserName)
+	if err != nil {
+		return
+	}
+
+}
+
+// handlerPptToEnReportTableReferenced
+// @Description: 英文ppt转报告后,需要同时继承原来英文ppt中表格的拖动数据逻辑
+// @author: Roc
+// @datetime 2025-01-09 17:04:49
+// @param enPptId int
+// @param enReportId int
+func handlerPptToEnReportTableReferenced(enPptId, enReportId int) {
+	var err error
+	defer func() {
+		if err != nil {
+			utils.FileLog.Error("ppt转英文报告后,英文报告与动态表格关联处理失败,PPT的ID:%d,英文报告ID:%d,Err:%s", enPptId, enReportId, err.Error())
+		}
+	}()
+	reportInfo, err := models.GetEnglishReportItemById(enReportId)
+	if err != nil {
+		return
+	}
+
+	addList, err := excel.CopyReferencedExcelConfigByReferencedIdAndFromScene(enPptId, utils.TableReferencedByEnPPT, enReportId, utils.TableReferencedByEnReport, reportInfo.AdminId, reportInfo.AdminRealName)
+	if err != nil {
+		return
+	}
+
+	if len(addList) > 0 {
+		// 修改内容
+		reportInfo.Content = HandleReportContentTable(reportInfo.Id, reportInfo.Content)
+		err = reportInfo.Update([]string{"Content"})
+		if err != nil {
+			return
+		}
+	}
+
+}