REQ-3581: 备份

This commit is contained in:
yanglin 2025-02-18 11:19:44 +08:00
parent bd04a3d140
commit 9991e75e90
9 changed files with 22 additions and 11 deletions

View File

@ -21,6 +21,8 @@ public class EssApproveDetail {
*/ */
private Long personId; private Long personId;
private String recipientId;
/** /**
* 签署状态 * 签署状态
*/ */

View File

@ -1,4 +1,4 @@
package cn.axzo.nanopart.ess.server.entity.domain; package cn.axzo.nanopart.ess.api.enums;
/** /**
* @author yanglin * @author yanglin

View File

@ -5,7 +5,7 @@ import cn.axzo.nanopart.ess.api.domain.contract.Approver;
import cn.axzo.nanopart.ess.api.domain.contract.EssApproveDetail; import cn.axzo.nanopart.ess.api.domain.contract.EssApproveDetail;
import cn.axzo.nanopart.ess.api.enums.EssContractState; import cn.axzo.nanopart.ess.api.enums.EssContractState;
import cn.axzo.nanopart.ess.api.utils.YesOrNo; import cn.axzo.nanopart.ess.api.utils.YesOrNo;
import cn.axzo.nanopart.ess.server.entity.domain.ApproverAssignType; import cn.axzo.nanopart.ess.api.enums.ApproverAssignType;
import cn.axzo.nanopart.ess.server.entity.domain.AssignedApprovers; import cn.axzo.nanopart.ess.server.entity.domain.AssignedApprovers;
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;

View File

@ -1,5 +1,6 @@
package cn.axzo.nanopart.ess.server.entity.domain; package cn.axzo.nanopart.ess.server.entity.domain;
import cn.axzo.nanopart.ess.api.enums.ApproverAssignType;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@ -3,6 +3,8 @@ package cn.axzo.nanopart.ess.server.entity.domain;
import cn.axzo.basics.common.exception.ServiceException; import cn.axzo.basics.common.exception.ServiceException;
import cn.axzo.nanopart.ess.api.domain.contract.Approver; import cn.axzo.nanopart.ess.api.domain.contract.Approver;
import cn.axzo.nanopart.ess.server.utils.BizAssertions; import cn.axzo.nanopart.ess.server.utils.BizAssertions;
import lombok.Getter;
import lombok.Setter;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
@ -12,6 +14,7 @@ import java.util.Optional;
/** /**
* @author yanglin * @author yanglin
*/ */
@Setter @Getter
public class SignByOrg { public class SignByOrg {
private final List<OrgRecipientId> recipientIds = new ArrayList<>(); private final List<OrgRecipientId> recipientIds = new ArrayList<>();

View File

@ -21,7 +21,7 @@ import cn.axzo.nanopart.ess.server.entity.EssOrg;
import cn.axzo.nanopart.ess.server.entity.EssPerson; import cn.axzo.nanopart.ess.server.entity.EssPerson;
import cn.axzo.nanopart.ess.server.entity.EssSeal; import cn.axzo.nanopart.ess.server.entity.EssSeal;
import cn.axzo.nanopart.ess.server.entity.EssSealPerson; import cn.axzo.nanopart.ess.server.entity.EssSealPerson;
import cn.axzo.nanopart.ess.server.entity.domain.ApproverAssignType; import cn.axzo.nanopart.ess.api.enums.ApproverAssignType;
import cn.axzo.nanopart.ess.server.ess.domain.JsonObjectAsString; import cn.axzo.nanopart.ess.server.ess.domain.JsonObjectAsString;
import cn.axzo.nanopart.ess.server.ess.domain.SealPersons; import cn.axzo.nanopart.ess.server.ess.domain.SealPersons;
import cn.axzo.nanopart.ess.server.ess.support.EssSupport; import cn.axzo.nanopart.ess.server.ess.support.EssSupport;
@ -166,15 +166,15 @@ public class ContractManager {
//noinspection DataFlowIssue //noinspection DataFlowIssue
BizAssertions.assertTrue(contract.getIsDynamicApprover().isYes(), "合同不支持动态签署"); BizAssertions.assertTrue(contract.getIsDynamicApprover().isYes(), "合同不支持动态签署");
BizAssertions.assertEquals(ApproverAssignType.ORG_WEIXIN_APP, contract.getAssignType(), "签署方式不正确"); BizAssertions.assertEquals(ApproverAssignType.ORG_WEIXIN_APP, contract.getAssignType(), "签署方式不正确");
String assignedRecipientId = contract.getAssignedApprovers() String recipientId = contract.getAssignedApprovers()
.getSignByOrg() .getSignByOrg()
.assign(contract.getApprovers(), request.getOuId(), request.getRecipientId()); .assign(contract.getApprovers(), request.getOuId(), request.getRecipientId());
Approver approver = contract.getAssignedApprovers() Approver approver = contract.getAssignedApprovers()
.getSignByOrg() .getSignByOrg()
.getApproverOrThrow(contract.getApprovers(), assignedRecipientId); .getApproverOrThrow(contract.getApprovers(), recipientId);
checkApproverSeals(request, approver.getSealTypes()); checkApproverSeals(request, approver.getSealTypes());
essContractDao.updateAssignedApprovers(contract); essContractDao.updateAssignedApprovers(contract);
return assignedRecipientId; return recipientId;
} }
public void checkApproverSeals(OrgPerson person, List<EssSealType> sealTypes) { public void checkApproverSeals(OrgPerson person, List<EssSealType> sealTypes) {

View File

@ -106,8 +106,10 @@ public class EssService {
EssPerson signPerson = essPersonDao.findOrNull(request); EssPerson signPerson = essPersonDao.findOrNull(request);
BizAssertions.assertNotNull(signPerson, "当前签署人员未加入单位, 无法签署"); BizAssertions.assertNotNull(signPerson, "当前签署人员未加入单位, 无法签署");
String recipientId = contractManager.assignRecipientIdByOrg(request); String recipientId = contractManager.assignRecipientIdByOrg(request);
EssContract contract = essContractDao.getOrThrow(request.getEssContractId());
EssPerson creator = contractManager.getContractCreatorOrThrow(contract);
CreateSignUrlsResponse essResponse = essClient CreateSignUrlsResponse essResponse = essClient
.getContractSignUrlWeixinApp(request.getEssContractId(), signPerson, recipientId); .getContractSignUrlWeixinApp(request.getEssContractId(), creator, recipientId);
SignUrlInfo signUrlInfo = essResponse.getSignUrlInfos()[0]; SignUrlInfo signUrlInfo = essResponse.getSignUrlInfos()[0];
return request.getUrlType() == SignUrlType.PC return request.getUrlType() == SignUrlType.PC
? signUrlInfo.getSignQrcodeUrl() ? signUrlInfo.getSignQrcodeUrl()

View File

@ -133,10 +133,13 @@ class CallbackController implements EssCallbackApi, InitializingBean {
} }
List<EssApproveDetail> approveDetails = changes.getFlowApproverInfo().stream() List<EssApproveDetail> approveDetails = changes.getFlowApproverInfo().stream()
.map(info -> { .map(info -> {
PersonOpenId personOpenId = PersonOpenId.parse(info.getProxyOperatorOpenId());
EssApproveDetail detail = new EssApproveDetail(); EssApproveDetail detail = new EssApproveDetail();
if (StringUtils.isNotBlank(info.getProxyOperatorOpenId())) {
PersonOpenId personOpenId = PersonOpenId.parse(info.getProxyOperatorOpenId());
detail.setOuId(personOpenId.getOuId()); detail.setOuId(personOpenId.getOuId());
detail.setPersonId(personOpenId.getPersonId()); detail.setPersonId(personOpenId.getPersonId());
}
detail.setRecipientId(info.getRecipientId());
detail.setState(EssContractApproveState.fromEssCode(info.getApproveStatus())); detail.setState(EssContractApproveState.fromEssCode(info.getApproveStatus()));
detail.setSignOrder(info.getSignOrder()); detail.setSignOrder(info.getSignOrder());
detail.setApproveTimeMs(info.getApproveTime() * 1000); detail.setApproveTimeMs(info.getApproveTime() * 1000);

View File

@ -10,7 +10,7 @@ import cn.axzo.nanopart.ess.api.enums.EssPersonState;
import cn.axzo.nanopart.ess.api.request.CreateConsoleLoginUrlRequest; import cn.axzo.nanopart.ess.api.request.CreateConsoleLoginUrlRequest;
import cn.axzo.nanopart.ess.api.request.CreateContractRequest; import cn.axzo.nanopart.ess.api.request.CreateContractRequest;
import cn.axzo.nanopart.ess.api.utils.YesOrNo; import cn.axzo.nanopart.ess.api.utils.YesOrNo;
import cn.axzo.nanopart.ess.server.entity.domain.ApproverAssignType; import cn.axzo.nanopart.ess.api.enums.ApproverAssignType;
import cn.axzo.nanopart.ess.server.entity.domain.AssignedApprovers; import cn.axzo.nanopart.ess.server.entity.domain.AssignedApprovers;
import cn.axzo.nanopart.ess.server.entity.EssContract; import cn.axzo.nanopart.ess.server.entity.EssContract;
import cn.axzo.nanopart.ess.server.entity.EssOrg; import cn.axzo.nanopart.ess.server.entity.EssOrg;