Revert "REQ-3581: 动态获取签署链接"

This reverts commit 6ebe3c3c7c.
This commit is contained in:
yanglin 2025-03-04 15:26:33 +08:00
parent 6b28ccb7f7
commit 2045b49e68
2 changed files with 41 additions and 21 deletions

View File

@ -1,23 +1,22 @@
package cn.axzo.nanopart.ess.api.domain;
import static java.util.stream.Collectors.toSet;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import cn.axzo.nanopart.ess.api.domain.contract.Approver;
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.List;
import java.util.Set;
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;
import static java.util.stream.Collectors.toSet;
/**
* @author yanglin
@ -39,6 +38,12 @@ public abstract class CreateContractInfo {
@NotEmpty(message = "approvers不能为空")
private List<Approver> approvers;
/**
* 合同签署方的签署约束种类
*/
@NotNull(message = "approverConstraint不能为空")
private Constraint constraint = Constraint.ONE_PERSON_PER_ORG;
/**
* 签署方签署控件印章/签名等的生成方式.
* 0: 在合同流程发起时由发起人指定签署方的签署控件的位置和数量

View File

@ -1,17 +1,9 @@
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.contract.Approver;
import cn.axzo.nanopart.ess.api.enums.Constraint;
import cn.axzo.nanopart.ess.api.enums.EssContractState;
import cn.axzo.nanopart.ess.api.request.CreateContractByFileRequest;
import cn.axzo.nanopart.ess.api.response.CreateContractByFileResponse;
@ -20,8 +12,16 @@ import cn.axzo.nanopart.ess.server.dao.EssOrgDao;
import cn.axzo.nanopart.ess.server.entity.EssContract;
import cn.axzo.nanopart.ess.server.entity.EssOrg;
import cn.axzo.nanopart.ess.server.utils.BizAssertions;
import com.alibaba.fastjson.JSON;
import lombok.RequiredArgsConstructor;
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
@ -35,9 +35,23 @@ public class ContractSupport {
private final EssContractDao essContractDao;
public void validateCreateContract(CreateContractInfo contract) {
checkCreateContractConstraint(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) {
BizAssertions.assertNotNull(contract, "合同信息不能为空");
List<EssOrg> orgs = essOrgDao.getByOuIds(contract.getApproverOuIds());
@ -60,6 +74,7 @@ public class ContractSupport {
contract.setEssFieldIds(Collections.emptyList());
contract.setState(EssContractState.INIT);
contract.setApprovers(request.getByFile().getApprovers());
contract.getOrCreateAssignment().setConstraint(request.getContract().getConstraint());
contract.setApproveDetails(Collections.emptyList());
contract.setRecordExt(new EssContract.RecordExt());
essContractDao.save(contract);