REQ-3581: fix bug

This commit is contained in:
yanglin 2025-03-04 18:44:02 +08:00
parent 263a3e70be
commit bf3c256e8a
4 changed files with 34 additions and 6 deletions

View File

@ -5,5 +5,5 @@ package cn.axzo.nanopart.ess.api.enums;
* @author yanglin * @author yanglin
*/ */
public enum SignUrlEndpoint { public enum SignUrlEndpoint {
PC, WEIXIN_APP PC, WEIXIN_APP, H5
} }

View File

@ -37,7 +37,7 @@ public class AssignSignUrlRequest implements OrgPerson {
private Long personId; private Long personId;
/** /**
* PC: 电脑端, WEIXIN_APP: 小程序 * PC: 电脑端, WEIXIN_APP: 小程序, H5: h5
*/ */
@NotNull(message = "endpoint不能为空") @NotNull(message = "endpoint不能为空")
private SignUrlEndpoint endpoint; private SignUrlEndpoint endpoint;

View File

@ -41,6 +41,8 @@ import com.tencentcloudapi.essbasic.v20210526.models.ChannelCreateEmbedWebUrlRes
import com.tencentcloudapi.essbasic.v20210526.models.ChannelCreateFlowApproversRequest; import com.tencentcloudapi.essbasic.v20210526.models.ChannelCreateFlowApproversRequest;
import com.tencentcloudapi.essbasic.v20210526.models.ChannelCreateFlowByFilesRequest; import com.tencentcloudapi.essbasic.v20210526.models.ChannelCreateFlowByFilesRequest;
import com.tencentcloudapi.essbasic.v20210526.models.ChannelCreateFlowByFilesResponse; import com.tencentcloudapi.essbasic.v20210526.models.ChannelCreateFlowByFilesResponse;
import com.tencentcloudapi.essbasic.v20210526.models.ChannelCreateFlowSignUrlRequest;
import com.tencentcloudapi.essbasic.v20210526.models.ChannelCreateFlowSignUrlResponse;
import com.tencentcloudapi.essbasic.v20210526.models.ChannelCreateOrganizationBatchSignUrlRequest; import com.tencentcloudapi.essbasic.v20210526.models.ChannelCreateOrganizationBatchSignUrlRequest;
import com.tencentcloudapi.essbasic.v20210526.models.ChannelCreateOrganizationBatchSignUrlResponse; import com.tencentcloudapi.essbasic.v20210526.models.ChannelCreateOrganizationBatchSignUrlResponse;
import com.tencentcloudapi.essbasic.v20210526.models.ChannelCreateSealPolicyRequest; import com.tencentcloudapi.essbasic.v20210526.models.ChannelCreateSealPolicyRequest;
@ -327,7 +329,7 @@ public class EssClient implements InitializingBean {
public String createPcSignUrl(EssPerson superAdmin, String essContractId, EssPerson signPerson) { public String createPcSignUrl(EssPerson superAdmin, String essContractId, EssPerson signPerson) {
ChannelCreateOrganizationBatchSignUrlRequest request = new ChannelCreateOrganizationBatchSignUrlRequest(); ChannelCreateOrganizationBatchSignUrlRequest request = new ChannelCreateOrganizationBatchSignUrlRequest();
request.setAgent(agent(superAdmin)); request.setAgent(agent(signPerson));
request.setFlowIds(new String[] { essContractId }); request.setFlowIds(new String[] { essContractId });
request.setOpenId(PersonOpenId.create(signPerson).toOpenId()); request.setOpenId(PersonOpenId.create(signPerson).toOpenId());
ChannelCreateOrganizationBatchSignUrlResponse response = exec(func() // ChannelCreateOrganizationBatchSignUrlResponse response = exec(func() //
@ -362,6 +364,25 @@ public class EssClient implements InitializingBean {
return response.getSignUrlInfos()[0].getSignUrl(); return response.getSignUrlInfos()[0].getSignUrl();
} }
public String channelCreateFlowSignUrl(EssPerson superAdmin, String essContractId, EssPerson signPerson) {
FlowApproverInfo approver = new FlowApproverInfo();
approver.setOpenId(PersonOpenId.create(signPerson).toOpenId());
approver.setOrganizationOpenId(OrgOpenId.ofPerson(signPerson).toOpenId());
ChannelCreateFlowSignUrlRequest request = new ChannelCreateFlowSignUrlRequest();
request.setAgent(agent(superAdmin));
request.setFlowId(essContractId);
request.setFlowApproverInfos(new FlowApproverInfo[]{approver});
ChannelCreateFlowSignUrlResponse response = exec(func() //
.context("ChannelCreateFlowSignUrl") //
.subject(idbuilder() //
.append(essContractId) //
.append(signPerson.getPersonId()) //
.build()) //
.request(request) //
.command(() -> manage.ChannelCreateFlowSignUrl(request)));
return response.getFlowApproverUrlInfos()[0].getSignUrl();
}
public void forward(EssPerson superAdmin, String essContractId, String recipientId, EssPerson signPerson) { public void forward(EssPerson superAdmin, String essContractId, String recipientId, EssPerson signPerson) {
CreateFlowForwardsRequest request = new CreateFlowForwardsRequest(); CreateFlowForwardsRequest request = new CreateFlowForwardsRequest();
request.setAgent(agent(superAdmin)); request.setAgent(agent(superAdmin));

View File

@ -152,11 +152,18 @@ public class EssService {
essContractDao.updateAssigment(contract); essContractDao.updateAssigment(contract);
} }
EssPerson superAdmin = contractManager.getContractSuperAdmin(contract); EssPerson superAdmin = contractManager.getContractSuperAdmin(contract);
if (request.getEndpoint() != SignUrlEndpoint.PC) if (request.getEndpoint() == SignUrlEndpoint.PC) {
essClient.createFlowApprovers(superAdmin, contract.getEssContractId(), request.getRecipientId(),
signPerson);
return essClient.createPcSignUrl(superAdmin, contract.getEssContractId(), signPerson);
}
else if (request.getEndpoint() == SignUrlEndpoint.WEIXIN_APP)
return essClient.createSignUrls(superAdmin, contract.getEssContractId(), request.getRecipientId(), return essClient.createSignUrls(superAdmin, contract.getEssContractId(), request.getRecipientId(),
signPerson); signPerson);
essClient.createFlowApprovers(superAdmin, contract.getEssContractId(), request.getRecipientId(), signPerson); else if (request.getEndpoint() == SignUrlEndpoint.H5) {
return essClient.createPcSignUrl(superAdmin, contract.getEssContractId(), signPerson); return essClient.channelCreateFlowSignUrl(superAdmin, contract.getEssContractId(), signPerson);
} else
throw BizAssertions.fail("不支持的签署端点: {}", request.getEndpoint());
} }
public String getContractPDFUrl(String essContractId) { public String getContractPDFUrl(String essContractId) {