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 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

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.enums.EssContractState;
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.pokonyan.config.mybatisplus.BaseEntity;
import com.alibaba.fastjson.JSON;

View File

@ -1,5 +1,6 @@
package cn.axzo.nanopart.ess.server.entity.domain;
import cn.axzo.nanopart.ess.api.enums.ApproverAssignType;
import lombok.Getter;
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.nanopart.ess.api.domain.contract.Approver;
import cn.axzo.nanopart.ess.server.utils.BizAssertions;
import lombok.Getter;
import lombok.Setter;
import javax.annotation.Nullable;
import java.util.ArrayList;
@ -12,6 +14,7 @@ import java.util.Optional;
/**
* @author yanglin
*/
@Setter @Getter
public class SignByOrg {
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.EssSeal;
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.SealPersons;
import cn.axzo.nanopart.ess.server.ess.support.EssSupport;
@ -166,15 +166,15 @@ public class ContractManager {
//noinspection DataFlowIssue
BizAssertions.assertTrue(contract.getIsDynamicApprover().isYes(), "合同不支持动态签署");
BizAssertions.assertEquals(ApproverAssignType.ORG_WEIXIN_APP, contract.getAssignType(), "签署方式不正确");
String assignedRecipientId = contract.getAssignedApprovers()
String recipientId = contract.getAssignedApprovers()
.getSignByOrg()
.assign(contract.getApprovers(), request.getOuId(), request.getRecipientId());
Approver approver = contract.getAssignedApprovers()
.getSignByOrg()
.getApproverOrThrow(contract.getApprovers(), assignedRecipientId);
.getApproverOrThrow(contract.getApprovers(), recipientId);
checkApproverSeals(request, approver.getSealTypes());
essContractDao.updateAssignedApprovers(contract);
return assignedRecipientId;
return recipientId;
}
public void checkApproverSeals(OrgPerson person, List<EssSealType> sealTypes) {

View File

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

View File

@ -133,10 +133,13 @@ class CallbackController implements EssCallbackApi, InitializingBean {
}
List<EssApproveDetail> approveDetails = changes.getFlowApproverInfo().stream()
.map(info -> {
PersonOpenId personOpenId = PersonOpenId.parse(info.getProxyOperatorOpenId());
EssApproveDetail detail = new EssApproveDetail();
if (StringUtils.isNotBlank(info.getProxyOperatorOpenId())) {
PersonOpenId personOpenId = PersonOpenId.parse(info.getProxyOperatorOpenId());
detail.setOuId(personOpenId.getOuId());
detail.setPersonId(personOpenId.getPersonId());
}
detail.setRecipientId(info.getRecipientId());
detail.setState(EssContractApproveState.fromEssCode(info.getApproveStatus()));
detail.setSignOrder(info.getSignOrder());
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.CreateContractRequest;
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.EssContract;
import cn.axzo.nanopart.ess.server.entity.EssOrg;