REQ-3581: 同步印章类型
This commit is contained in:
parent
99ec5f738b
commit
f420ad9635
@ -25,6 +25,11 @@ public class EssSealInfo {
|
|||||||
*/
|
*/
|
||||||
private String essSealId;
|
private String essSealId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 印章名称
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 印章类型. OFFICIAL: 公章, CONTRACT: 合同专用章, FINANCE: 财务专用章, PERSONNEL: 人事专用章, INVOICE: 发票专用章, LEGAL_PERSON_SEAL: 法定代表人章, OTHER: 其它
|
* 印章类型. OFFICIAL: 公章, CONTRACT: 合同专用章, FINANCE: 财务专用章, PERSONNEL: 人事专用章, INVOICE: 发票专用章, LEGAL_PERSON_SEAL: 法定代表人章, OTHER: 其它
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -29,6 +29,11 @@ public class EssSeal extends BaseEntity<EssSeal> {
|
|||||||
*/
|
*/
|
||||||
private String essSealId;
|
private String essSealId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 印章名称
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 印章状态. CREATE: 创建, DELETED: 删除, DISABLED: 停用, ENABLED: 启用
|
* 印章状态. CREATE: 创建, DELETED: 删除, DISABLED: 停用, ENABLED: 启用
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -49,6 +49,8 @@ import com.tencentcloudapi.essbasic.v20210526.models.ChannelCreateSealPolicyRequ
|
|||||||
import com.tencentcloudapi.essbasic.v20210526.models.ChannelDeleteSealPoliciesRequest;
|
import com.tencentcloudapi.essbasic.v20210526.models.ChannelDeleteSealPoliciesRequest;
|
||||||
import com.tencentcloudapi.essbasic.v20210526.models.ChannelDescribeEmployeesRequest;
|
import com.tencentcloudapi.essbasic.v20210526.models.ChannelDescribeEmployeesRequest;
|
||||||
import com.tencentcloudapi.essbasic.v20210526.models.ChannelDescribeEmployeesResponse;
|
import com.tencentcloudapi.essbasic.v20210526.models.ChannelDescribeEmployeesResponse;
|
||||||
|
import com.tencentcloudapi.essbasic.v20210526.models.ChannelDescribeOrganizationSealsRequest;
|
||||||
|
import com.tencentcloudapi.essbasic.v20210526.models.ChannelDescribeOrganizationSealsResponse;
|
||||||
import com.tencentcloudapi.essbasic.v20210526.models.ComponentLimit;
|
import com.tencentcloudapi.essbasic.v20210526.models.ComponentLimit;
|
||||||
import com.tencentcloudapi.essbasic.v20210526.models.CreateConsoleLoginUrlRequest;
|
import com.tencentcloudapi.essbasic.v20210526.models.CreateConsoleLoginUrlRequest;
|
||||||
import com.tencentcloudapi.essbasic.v20210526.models.CreateConsoleLoginUrlResponse;
|
import com.tencentcloudapi.essbasic.v20210526.models.CreateConsoleLoginUrlResponse;
|
||||||
@ -60,6 +62,7 @@ import com.tencentcloudapi.essbasic.v20210526.models.DescribeResourceUrlsByFlows
|
|||||||
import com.tencentcloudapi.essbasic.v20210526.models.FillApproverInfo;
|
import com.tencentcloudapi.essbasic.v20210526.models.FillApproverInfo;
|
||||||
import com.tencentcloudapi.essbasic.v20210526.models.FlowApproverInfo;
|
import com.tencentcloudapi.essbasic.v20210526.models.FlowApproverInfo;
|
||||||
import com.tencentcloudapi.essbasic.v20210526.models.FlowForwardInfo;
|
import com.tencentcloudapi.essbasic.v20210526.models.FlowForwardInfo;
|
||||||
|
import com.tencentcloudapi.essbasic.v20210526.models.OccupiedSeal;
|
||||||
import com.tencentcloudapi.essbasic.v20210526.models.ProxyOrganizationOperator;
|
import com.tencentcloudapi.essbasic.v20210526.models.ProxyOrganizationOperator;
|
||||||
import com.tencentcloudapi.essbasic.v20210526.models.SyncProxyOrganizationOperatorsRequest;
|
import com.tencentcloudapi.essbasic.v20210526.models.SyncProxyOrganizationOperatorsRequest;
|
||||||
import com.tencentcloudapi.essbasic.v20210526.models.UploadFile;
|
import com.tencentcloudapi.essbasic.v20210526.models.UploadFile;
|
||||||
@ -156,6 +159,18 @@ public class EssClient implements InitializingBean {
|
|||||||
return response.getWebUrl();
|
return response.getWebUrl();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public OccupiedSeal getSealInfo(EssPerson superAdmin, String sealId) {
|
||||||
|
ChannelDescribeOrganizationSealsRequest request = new ChannelDescribeOrganizationSealsRequest();
|
||||||
|
request.setAgent(agent(superAdmin));
|
||||||
|
request.setSealId(sealId);
|
||||||
|
ChannelDescribeOrganizationSealsResponse response = exec(func() //
|
||||||
|
.context("ChannelDescribeOrganizationSeals") //
|
||||||
|
.subject(sealId) //
|
||||||
|
.request(request) //
|
||||||
|
.command(() -> manage.ChannelDescribeOrganizationSeals(request)));
|
||||||
|
return response.getSeals()[0];
|
||||||
|
}
|
||||||
|
|
||||||
public void addSealAuthorization(EssPerson superAdmin, EssSeal seal, EssSealPerson sealPerson) {
|
public void addSealAuthorization(EssPerson superAdmin, EssSeal seal, EssSealPerson sealPerson) {
|
||||||
ChannelCreateSealPolicyRequest request = new ChannelCreateSealPolicyRequest();
|
ChannelCreateSealPolicyRequest request = new ChannelCreateSealPolicyRequest();
|
||||||
request.setAgent(agent(superAdmin));
|
request.setAgent(agent(superAdmin));
|
||||||
|
|||||||
@ -120,13 +120,14 @@ public class OrgManager {
|
|||||||
// !! seal
|
// !! seal
|
||||||
|
|
||||||
@BizTransactional
|
@BizTransactional
|
||||||
public boolean maybeAddSeal(Long ouId, String essSealId, EssSealType type) {
|
public boolean maybeAddSeal(Long ouId, String essSealId, EssSealType type, String name) {
|
||||||
EssSeal seal = essSealDao.findByEssSealId(essSealId).orElse(null);
|
EssSeal seal = essSealDao.findByEssSealId(essSealId).orElse(null);
|
||||||
if (seal != null)
|
if (seal != null)
|
||||||
return false;
|
return false;
|
||||||
seal = new EssSeal();
|
seal = new EssSeal();
|
||||||
seal.setOuId(ouId);
|
seal.setOuId(ouId);
|
||||||
seal.setEssSealId(essSealId);
|
seal.setEssSealId(essSealId);
|
||||||
|
seal.setName(name);
|
||||||
seal.setState(EssSealState.CREATE);
|
seal.setState(EssSealState.CREATE);
|
||||||
seal.setType(type);
|
seal.setType(type);
|
||||||
try {
|
try {
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import org.springframework.transaction.support.TransactionTemplate;
|
|||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.tencentcloudapi.essbasic.v20210526.models.OccupiedSeal;
|
||||||
|
|
||||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||||
import cn.axzo.maokai.api.vo.response.OrganizationalUnitVO;
|
import cn.axzo.maokai.api.vo.response.OrganizationalUnitVO;
|
||||||
@ -39,8 +40,10 @@ import cn.axzo.nanopart.ess.server.dao.EssLogDao;
|
|||||||
import cn.axzo.nanopart.ess.server.dao.EssSealPersonDao;
|
import cn.axzo.nanopart.ess.server.dao.EssSealPersonDao;
|
||||||
import cn.axzo.nanopart.ess.server.entity.EssContract;
|
import cn.axzo.nanopart.ess.server.entity.EssContract;
|
||||||
import cn.axzo.nanopart.ess.server.entity.EssLog;
|
import cn.axzo.nanopart.ess.server.entity.EssLog;
|
||||||
|
import cn.axzo.nanopart.ess.server.entity.EssPerson;
|
||||||
import cn.axzo.nanopart.ess.server.entity.EssSealPerson;
|
import cn.axzo.nanopart.ess.server.entity.EssSealPerson;
|
||||||
import cn.axzo.nanopart.ess.server.ess.ContractManager;
|
import cn.axzo.nanopart.ess.server.ess.ContractManager;
|
||||||
|
import cn.axzo.nanopart.ess.server.ess.EssClient;
|
||||||
import cn.axzo.nanopart.ess.server.ess.EssService;
|
import cn.axzo.nanopart.ess.server.ess.EssService;
|
||||||
import cn.axzo.nanopart.ess.server.ess.OrgManager;
|
import cn.axzo.nanopart.ess.server.ess.OrgManager;
|
||||||
import cn.axzo.nanopart.ess.server.ess.domain.OrgOpenId;
|
import cn.axzo.nanopart.ess.server.ess.domain.OrgOpenId;
|
||||||
@ -69,6 +72,7 @@ class CallbackController implements EssCallbackApi, InitializingBean {
|
|||||||
private final EssSealPersonDao essSealPersonDao;
|
private final EssSealPersonDao essSealPersonDao;
|
||||||
private final TransactionTemplate transactionTemplate;
|
private final TransactionTemplate transactionTemplate;
|
||||||
private final EssSupport essSupport;
|
private final EssSupport essSupport;
|
||||||
|
private final EssClient essClient;
|
||||||
private final Map<CallbackType, CallbackHandler> handlers = new HashMap<>();
|
private final Map<CallbackType, CallbackHandler> handlers = new HashMap<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -121,8 +125,10 @@ class CallbackController implements EssCallbackApi, InitializingBean {
|
|||||||
PersonOpenId operator = PersonOpenId.parse(operate.getProxyOperatorOpenId());
|
PersonOpenId operator = PersonOpenId.parse(operate.getProxyOperatorOpenId());
|
||||||
PersonOpenId authorized = StringUtils.isBlank(operate.getAuthorizedOperatorOpenId()) ? PersonOpenId.none()
|
PersonOpenId authorized = StringUtils.isBlank(operate.getAuthorizedOperatorOpenId()) ? PersonOpenId.none()
|
||||||
: PersonOpenId.parse(operate.getAuthorizedOperatorOpenId());
|
: PersonOpenId.parse(operate.getAuthorizedOperatorOpenId());
|
||||||
|
EssPerson superAdmin = orgManager.getSuperAdminOrThrow(operator.getOuId());
|
||||||
|
OccupiedSeal sealInfo = essClient.getSealInfo(superAdmin, operate.getSealId());
|
||||||
boolean sealCreated = orgManager.maybeAddSeal(ou.getOuId(), operate.getSealId(),
|
boolean sealCreated = orgManager.maybeAddSeal(ou.getOuId(), operate.getSealId(),
|
||||||
EssSealType.fromEssCode(operate.getSealType()));
|
EssSealType.fromEssCode(operate.getSealType()), sealInfo.getSealName());
|
||||||
// 1. 印章创建人会自动获得授权; 2. 避免miss create事件
|
// 1. 印章创建人会自动获得授权; 2. 避免miss create事件
|
||||||
if (sealCreated) {
|
if (sealCreated) {
|
||||||
orgManager.maybeAddPersonAndSetSealAuthorized(operate.getSealId(), operator.getPersonId());
|
orgManager.maybeAddPersonAndSetSealAuthorized(operate.getSealId(), operator.getPersonId());
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user