REQ-3581: 动态获取签署链接
This commit is contained in:
parent
03aa7ca971
commit
6ebe3c3c7c
@ -1,22 +1,23 @@
|
|||||||
|
|
||||||
package cn.axzo.nanopart.ess.api.domain;
|
package cn.axzo.nanopart.ess.api.domain;
|
||||||
|
|
||||||
import cn.axzo.nanopart.ess.api.domain.contract.Approver;
|
import static java.util.stream.Collectors.toSet;
|
||||||
import cn.axzo.nanopart.ess.api.enums.Constraint;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.Setter;
|
|
||||||
import org.hibernate.validator.constraints.Range;
|
|
||||||
|
|
||||||
import javax.validation.Valid;
|
|
||||||
import javax.validation.constraints.NotBlank;
|
|
||||||
import javax.validation.constraints.NotEmpty;
|
|
||||||
import javax.validation.constraints.NotNull;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import static java.util.stream.Collectors.toSet;
|
import javax.validation.Valid;
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
|
||||||
|
import org.hibernate.validator.constraints.Range;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
|
||||||
|
import cn.axzo.nanopart.ess.api.domain.contract.Approver;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author yanglin
|
* @author yanglin
|
||||||
@ -38,12 +39,6 @@ public abstract class CreateContractInfo {
|
|||||||
@NotEmpty(message = "approvers不能为空")
|
@NotEmpty(message = "approvers不能为空")
|
||||||
private List<Approver> approvers;
|
private List<Approver> approvers;
|
||||||
|
|
||||||
/**
|
|
||||||
* 合同签署方的签署约束种类
|
|
||||||
*/
|
|
||||||
@NotNull(message = "approverConstraint不能为空")
|
|
||||||
private Constraint constraint = Constraint.ONE_PERSON_PER_ORG;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 签署方签署控件(印章/签名等)的生成方式.
|
* 签署方签署控件(印章/签名等)的生成方式.
|
||||||
* 0: 在合同流程发起时,由发起人指定签署方的签署控件的位置和数量
|
* 0: 在合同流程发起时,由发起人指定签署方的签署控件的位置和数量
|
||||||
|
|||||||
@ -1,9 +1,17 @@
|
|||||||
|
|
||||||
package cn.axzo.nanopart.ess.server.ess.support;
|
package cn.axzo.nanopart.ess.server.ess.support;
|
||||||
|
|
||||||
|
import static java.util.stream.Collectors.toList;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
|
||||||
import cn.axzo.nanopart.ess.api.domain.CreateContractInfo;
|
import cn.axzo.nanopart.ess.api.domain.CreateContractInfo;
|
||||||
import cn.axzo.nanopart.ess.api.domain.contract.Approver;
|
import cn.axzo.nanopart.ess.api.domain.contract.Approver;
|
||||||
import cn.axzo.nanopart.ess.api.enums.Constraint;
|
|
||||||
import cn.axzo.nanopart.ess.api.enums.EssContractState;
|
import cn.axzo.nanopart.ess.api.enums.EssContractState;
|
||||||
import cn.axzo.nanopart.ess.api.request.CreateContractByFileRequest;
|
import cn.axzo.nanopart.ess.api.request.CreateContractByFileRequest;
|
||||||
import cn.axzo.nanopart.ess.api.response.CreateContractByFileResponse;
|
import cn.axzo.nanopart.ess.api.response.CreateContractByFileResponse;
|
||||||
@ -12,16 +20,8 @@ import cn.axzo.nanopart.ess.server.dao.EssOrgDao;
|
|||||||
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;
|
||||||
import cn.axzo.nanopart.ess.server.utils.BizAssertions;
|
import cn.axzo.nanopart.ess.server.utils.BizAssertions;
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static java.util.stream.Collectors.toList;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author yanglin
|
* @author yanglin
|
||||||
@ -35,23 +35,9 @@ public class ContractSupport {
|
|||||||
private final EssContractDao essContractDao;
|
private final EssContractDao essContractDao;
|
||||||
|
|
||||||
public void validateCreateContract(CreateContractInfo contract) {
|
public void validateCreateContract(CreateContractInfo contract) {
|
||||||
checkCreateContractConstraint(contract);
|
|
||||||
ensureOrgAuthorized(contract);
|
ensureOrgAuthorized(contract);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkCreateContractConstraint(CreateContractInfo contract) {
|
|
||||||
if (contract.getConstraint() == Constraint.ONE_PERSON_PER_ORG) {
|
|
||||||
HashSet<Long> ouIds = new HashSet<>();
|
|
||||||
for (Approver approver : contract.getApprovers()) {
|
|
||||||
if (approver.getSignPerson() == null)
|
|
||||||
continue;
|
|
||||||
BizAssertions.assertFalse(ouIds.contains(approver.getOuId()), "同一单位不能有多个审批人, constraint={}",
|
|
||||||
Constraint.ONE_PERSON_PER_ORG);
|
|
||||||
ouIds.add(approver.getOuId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ensureOrgAuthorized(CreateContractInfo contract) {
|
private void ensureOrgAuthorized(CreateContractInfo contract) {
|
||||||
BizAssertions.assertNotNull(contract, "合同信息不能为空");
|
BizAssertions.assertNotNull(contract, "合同信息不能为空");
|
||||||
List<EssOrg> orgs = essOrgDao.getByOuIds(contract.getApproverOuIds());
|
List<EssOrg> orgs = essOrgDao.getByOuIds(contract.getApproverOuIds());
|
||||||
@ -74,7 +60,6 @@ public class ContractSupport {
|
|||||||
contract.setEssFieldIds(Collections.emptyList());
|
contract.setEssFieldIds(Collections.emptyList());
|
||||||
contract.setState(EssContractState.INIT);
|
contract.setState(EssContractState.INIT);
|
||||||
contract.setApprovers(request.getByFile().getApprovers());
|
contract.setApprovers(request.getByFile().getApprovers());
|
||||||
contract.getOrCreateAssignment().setConstraint(request.getContract().getConstraint());
|
|
||||||
contract.setApproveDetails(Collections.emptyList());
|
contract.setApproveDetails(Collections.emptyList());
|
||||||
contract.setRecordExt(new EssContract.RecordExt());
|
contract.setRecordExt(new EssContract.RecordExt());
|
||||||
essContractDao.save(contract);
|
essContractDao.save(contract);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user