|
@@ -799,3 +799,78 @@ func AfterApproved(contractId int) (err error) {
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+//审批完成后操作
|
|
|
+func FixPdf(contractId int) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ go utils.SendEmail("异常提醒:"+utils.RunMode, "合同审批通过后,生成pdf失败,ERR:"+err.Error()+"", utils.EmailSendToUsers)
|
|
|
+ }
|
|
|
+
|
|
|
+ }()
|
|
|
+ contractDetail, err := GetContractDetail(contractId)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //fmt.Println("contractDetail:", contractDetail)
|
|
|
+
|
|
|
+ //pdf生成并保存
|
|
|
+ {
|
|
|
+ ////获取合同的html模板信息
|
|
|
+ //contractHtml, tmpErr := services.GetHtmlByContractDetail(contractDetail, "pdf")
|
|
|
+ //if tmpErr != nil {
|
|
|
+ // err = tmpErr
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+ //
|
|
|
+ ////生成pdf
|
|
|
+ //pdfPath := fmt.Sprint("./static/系统生成合同_", contractId, ".pdf")
|
|
|
+ //tmpErr = services.Html2Pdf(contractHtml, pdfPath)
|
|
|
+ //if tmpErr != nil {
|
|
|
+ // err = tmpErr
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+ //
|
|
|
+ //defer os.Remove(pdfPath)
|
|
|
+
|
|
|
+ //生成word
|
|
|
+ wordPath := fmt.Sprint("./static/系统生成合同_", contractDetail.ContractId, ".docx")
|
|
|
+ tmpErr := services.GenerateWordV2(contractDetail, wordPath)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer os.Remove(wordPath)
|
|
|
+
|
|
|
+ //word转pdf
|
|
|
+ converterType := "pdf"
|
|
|
+ pdfPath, tmpErr := services.FuncDocs2Pdf(utils.LibreOfficePath, wordPath, "./static", converterType)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer os.Remove(pdfPath)
|
|
|
+
|
|
|
+ //randStr := utils.GetRandStringNoSpecialChar(28)
|
|
|
+ //fileName := contractDetail.ContractCode + ".pdf"
|
|
|
+ fileName := contractDetail.CompanyName + "_" + contractDetail.ContractCode + ".pdf"
|
|
|
+ //非正式环境下,文件名上面还是加上随机数
|
|
|
+ if utils.RunMode != "release" {
|
|
|
+ //fileName = contractDetail.ContractCode + "_" + utils.GetRandStringNoSpecialChar(10) + ".pdf"
|
|
|
+ fileName = contractDetail.CompanyName + "_" + contractDetail.ContractCode + "_" + utils.GetRandStringNoSpecialChar(10) + ".pdf"
|
|
|
+ }
|
|
|
+ //上传到阿里云
|
|
|
+ resourceUrl, tmpErr := services.UploadAliyun(fileName, pdfPath)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ tmpErr = contract.AddContractPdf(contractId, resourceUrl)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fmt.Println(resourceUrl)
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|