|
|
@@ -92,10 +92,23 @@ func CreateFlowByTemplateDirectly(tmplateName string, userType int,
|
|
|
|
|
|
// 此处为快速发起的签署方;如果是正式接入,构造签署方,请参考函数内说明,构造需要的场景参数
|
|
|
var flowApproverInfos []*essbasic.FlowApproverInfo
|
|
|
- if userType == 1 {
|
|
|
- flowApproverInfos = buildPersonApprovers(personName, personMobile, personIdCardNumber, recipients)
|
|
|
- } else {
|
|
|
- flowApproverInfos = buildOrganizationApprovers(organizationName, recipients)
|
|
|
+ for i := range recipients {
|
|
|
+ recipient := recipients[i]
|
|
|
+
|
|
|
+ if config.SerCfg.TencentCfg.ProxyOrganizationName == *recipient.RoleName &&
|
|
|
+ *recipient.SignType != 1 {
|
|
|
+ // 签署方为本企业,同时不是自动签署时(一般为甲方非自动签署)
|
|
|
+ flowApproverInfos = append(flowApproverInfos, buildSelfOrganizationApprovers(recipient)...)
|
|
|
+ } else {
|
|
|
+ // 乙方
|
|
|
+ if userType == 1 {
|
|
|
+ // 个人
|
|
|
+ flowApproverInfos = append(flowApproverInfos, buildPersonApprovers(personName, personMobile, personIdCardNumber, recipient)...)
|
|
|
+ } else {
|
|
|
+ // 企业
|
|
|
+ flowApproverInfos = append(flowApproverInfos, buildOrganizationApprovers(organizationName, recipient)...)
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 发起合同
|
|
|
@@ -232,7 +245,7 @@ func GetTemplateInfo(contractName *string) (templateInfo *essbasic.TemplateInfo,
|
|
|
}
|
|
|
|
|
|
// buildPersonApprovers 构造个人签署人 - 以BtoC为例, 实际请根据自己的场景构造签署方、控件
|
|
|
-func buildPersonApprovers(personName, personMobile, personIdCardNumber string, recipients []*essbasic.Recipient) []*essbasic.FlowApproverInfo {
|
|
|
+func buildPersonApprovers(personName, personMobile, personIdCardNumber string, recipient *essbasic.Recipient) []*essbasic.FlowApproverInfo {
|
|
|
var flowApproverInfos []*essbasic.FlowApproverInfo
|
|
|
|
|
|
// 传入个人签署方
|
|
|
@@ -244,7 +257,7 @@ func buildPersonApprovers(personName, personMobile, personIdCardNumber string, r
|
|
|
flowApproverInfo.IdCardType = utils.SetPointValue("ID_CARD")
|
|
|
flowApproverInfo.IdCardNumber = &personIdCardNumber
|
|
|
// 模板中对应签署方的参与方id
|
|
|
- flowApproverInfo.RecipientId = recipients[0].RecipientId
|
|
|
+ flowApproverInfo.RecipientId = recipient.RecipientId
|
|
|
|
|
|
flowApproverInfos = append(flowApproverInfos, flowApproverInfo)
|
|
|
|
|
|
@@ -258,7 +271,7 @@ func buildPersonApprovers(personName, personMobile, personIdCardNumber string, r
|
|
|
}
|
|
|
|
|
|
// buildOrganizationApprovers 构造企业签署人
|
|
|
-func buildOrganizationApprovers(organizationName string, recipients []*essbasic.Recipient) []*essbasic.FlowApproverInfo {
|
|
|
+func buildOrganizationApprovers(organizationName string, recipient *essbasic.Recipient) []*essbasic.FlowApproverInfo {
|
|
|
var flowApproverInfos []*essbasic.FlowApproverInfo
|
|
|
|
|
|
// 传入企业签署方
|
|
|
@@ -267,7 +280,25 @@ func buildOrganizationApprovers(organizationName string, recipients []*essbasic.
|
|
|
flowApproverInfo.ApproverType = &approverType
|
|
|
flowApproverInfo.OrganizationName = &organizationName
|
|
|
// 模板中对应签署方的参与方id
|
|
|
- flowApproverInfo.RecipientId = recipients[0].RecipientId
|
|
|
+ flowApproverInfo.RecipientId = recipient.RecipientId
|
|
|
+
|
|
|
+ flowApproverInfos = append(flowApproverInfos, flowApproverInfo)
|
|
|
+
|
|
|
+ return flowApproverInfos
|
|
|
+}
|
|
|
+
|
|
|
+// buildSelfOrganizationApprovers 构造本企业签署人
|
|
|
+func buildSelfOrganizationApprovers(recipient *essbasic.Recipient) []*essbasic.FlowApproverInfo {
|
|
|
+ var flowApproverInfos []*essbasic.FlowApproverInfo
|
|
|
+
|
|
|
+ // 传入企业签署方
|
|
|
+ flowApproverInfo := &essbasic.FlowApproverInfo{}
|
|
|
+ approverType := "ORGANIZATION"
|
|
|
+ flowApproverInfo.ApproverType = &approverType
|
|
|
+ flowApproverInfo.OrganizationOpenId = &config.SerCfg.TencentCfg.ProxyOrganizationOpenId // 本企业OpenID
|
|
|
+ // 模板中对应签署方的参与方id
|
|
|
+ flowApproverInfo.RecipientId = recipient.RecipientId
|
|
|
+ flowApproverInfo.OpenId = &config.SerCfg.TencentCfg.ProxyOperatorOpenId // 本企业员工OpenID
|
|
|
|
|
|
flowApproverInfos = append(flowApproverInfos, flowApproverInfo)
|
|
|
|