Roc hace 3 años
padre
commit
a60f006714

+ 25 - 5
services/company_approval/company_approval.go

@@ -12,6 +12,7 @@ import (
 	"hongze/hongze_mobile_admin/models/tables/company_approval"
 	"hongze/hongze_mobile_admin/models/tables/company_approval_message"
 	"hongze/hongze_mobile_admin/models/tables/company_contract"
+	"hongze/hongze_mobile_admin/models/tables/company_delay_permission"
 	"hongze/hongze_mobile_admin/models/tables/company_product"
 	"hongze/hongze_mobile_admin/models/tables/company_product_log"
 	"hongze/hongze_mobile_admin/models/tables/contract_approval"
@@ -977,12 +978,31 @@ func GetApprovalDetailByCompanyApprovalId(companyApprovalId int, opUser *custom.
 		}
 	}
 
-	approvalCount, err := company_approval.GetCompanyTryDelayApprovalCount(approvalItem.CompanyId, approvalItem.ProductId)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		err = errors.New("获取延期审批次数失败,Err:" + err.Error())
-		return
+	switch approvalItem.ApplyMethod {
+	case 2:
+		//客户冻结转试用次数
+		approvalCount, tmpErr := company_approval.GetFreezeToTryCompanyApprovalCount(approvalItem.CompanyId, approvalItem.ProductId, approvalItem.ApplyUserId)
+		if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
+			err = tmpErr
+			return
+		}
+		approvalItem.ApprovalCount = approvalCount
+	case 3:
+		delayPermission, tmpErr := company_delay_permission.GetApplyDelayPermission(approvalItem.CompanyApprovalId)
+		if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
+			err = tmpErr
+			return
+		}
+		approvalItem.DelayPermission = delayPermission
+
+		//客户审批试用延期次数
+		approvalCount, tmpErr := company_approval.GetCompanyTryDelayApprovalCount(approvalItem.CompanyId, approvalItem.ProductId)
+		if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
+			err = tmpErr
+			return
+		}
+		approvalItem.ApprovalCount = approvalCount
 	}
-	approvalItem.ApprovalCount = approvalCount
 
 	//查询最近一次审批单信息
 	lastApprovalInfo, err := contract_approval.GetLastContractApprovalByContractId(approvalItem.CompanyApprovalId, "company")

+ 75 - 0
services/contract/contract_approval.go

@@ -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
+}