REQ-3581: 备份
This commit is contained in:
parent
bd04a3d140
commit
9991e75e90
@ -21,6 +21,8 @@ public class EssApproveDetail {
|
|||||||
*/
|
*/
|
||||||
private Long personId;
|
private Long personId;
|
||||||
|
|
||||||
|
private String recipientId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 签署状态
|
* 签署状态
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
package cn.axzo.nanopart.ess.server.entity.domain;
|
package cn.axzo.nanopart.ess.api.enums;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author yanglin
|
* @author yanglin
|
||||||
@ -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;
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
|
|||||||
@ -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<>();
|
||||||
|
|||||||
@ -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) {
|
||||||
|
|||||||
@ -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()
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user