浏览代码

fix:合同审批通过后生成pdf逻辑调整

Roc 3 年之前
父节点
当前提交
62f3a7171b
共有 2 个文件被更改,包括 22 次插入6 次删除
  1. 1 1
      models/tables/contract/contract.go
  2. 21 5
      services/word.go

+ 1 - 1
models/tables/contract/contract.go

@@ -124,7 +124,7 @@ type ContractDetail struct {
 	RelationContractDetailList []*ContractDetail                               `description:"关联合同详情"`
 }
 
-//根据合同id获取合同详情信息
+// GetContractDetailById 根据合同id获取合同详情信息
 func GetContractDetailById(contractId int) (contractInfo *ContractDetail, err error) {
 	o := orm.NewOrm()
 	sql := `select * from contract where contract_id = ? `

+ 21 - 5
services/word.go

@@ -12,6 +12,7 @@ import (
 	"fmt"
 	wkhtml "github.com/SebastiaanKlippert/go-wkhtmltopdf"
 	"github.com/shopspring/decimal"
+	contractCustom "hongze/hongze_mobile_admin/models/custom/contract"
 	contractReq "hongze/hongze_mobile_admin/models/request/contract"
 	"hongze/hongze_mobile_admin/models/tables/contract"
 	"hongze/hongze_mobile_admin/models/tables/contract_service_detail"
@@ -1080,6 +1081,21 @@ type WordElement struct {
 
 // GenerateWordV2 生成word
 func GenerateWordV2(contractDetail *contract.ContractDetail, wordPath string) (err error) {
+	//临时合同信息
+	tmpContractDetail := *contractDetail
+	//合同服务
+	contractServiceAndDetailList := make([]*contractCustom.ContractServiceAndDetail, 0) //服务内容
+	if tmpContractDetail.ContractBusinessType == "代付合同" {
+		if contractDetail.RelationContractDetailList != nil && len(contractDetail.RelationContractDetailList) > 0 {
+			tmpContractDetail.StartDate = tmpContractDetail.RelationContractDetailList[0].StartDate
+			tmpContractDetail.EndDate = tmpContractDetail.RelationContractDetailList[0].EndDate
+			contractServiceAndDetailList = tmpContractDetail.RelationContractDetailList[0].Service
+		}
+	} else {
+		contractServiceAndDetailList = tmpContractDetail.Service
+	}
+
+	//模板信息
 	contractTemplate, err := contract_template.GetContractTemplateByTemplateId(contractDetail.TemplateId)
 	if err != nil {
 		return
@@ -1124,12 +1140,12 @@ func GenerateWordV2(contractDetail *contract.ContractDetail, wordPath string) (e
 				title = "依照《【弘则研究】私募客户客户服务列表2021》中"
 			}
 			TableDataListSlice := make([]TableData, 0)
-			//for i := len(contractDetail.Service) - 1; i >= 0; i-- {
-			for i := 0; i < len(contractDetail.Service); i++ {
+			//for i := len(contractServiceAndDetailList) - 1; i >= 0; i-- {
+			for i := 0; i < len(contractServiceAndDetailList); i++ {
 				//表格数据
 				var tableDataList TableData
 
-				item := contractDetail.Service[i]
+				item := contractServiceAndDetailList[i]
 				//表头备注信息
 				tableTitleSlice = append(tableTitleSlice, item.Title)
 				//表格数据
@@ -1322,11 +1338,11 @@ func GenerateWordV2(contractDetail *contract.ContractDetail, wordPath string) (e
 					title = "依照《【弘则研究】私募客户客户服务列表2021》中 "
 				}
 				TableDataListSlice := make([]TableData, 0)
-				for i := len(contractDetail.Service) - 1; i >= 0; i-- {
+				for i := len(contractServiceAndDetailList) - 1; i >= 0; i-- {
 					//表格数据
 					var tableDataList TableData
 
-					item := contractDetail.Service[i]
+					item := contractServiceAndDetailList[i]
 					//表头备注信息
 					tableTitleSlice = append(tableTitleSlice, item.Title)
 					//表格数据