REQ-3581: 备份
This commit is contained in:
parent
ccf8d6d78e
commit
41fdf526f6
@ -1,8 +1,8 @@
|
||||
package cn.axzo.nanopart.ess.server.dao;
|
||||
|
||||
import cn.axzo.nanopart.ess.api.domain.EssApproverDetail;
|
||||
import cn.axzo.nanopart.ess.api.enums.EssContractState;
|
||||
import cn.axzo.nanopart.ess.server.entity.EssContract;
|
||||
import cn.axzo.nanopart.ess.api.domain.EssApproverDetail;
|
||||
import cn.axzo.nanopart.ess.server.mapper.EssContractMapper;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@ -31,9 +31,9 @@ public class EssContractDao extends ServiceImpl<EssContractMapper, EssContract>
|
||||
.update();
|
||||
}
|
||||
|
||||
public void updateState(String essContractId, EssContractState state, List<EssApproverDetail> details) {
|
||||
public void updateState(EssContract contract, EssContractState state, List<EssApproverDetail> details) {
|
||||
lambdaUpdate()
|
||||
.eq(EssContract::getEssContractId, essContractId)
|
||||
.eq(EssContract::getId, contract.getId())
|
||||
.set(EssContract::getState, state)
|
||||
.set(details != null, EssContract::getApproverDetails, details == null ? "[]" : JSON.toJSONString(details))
|
||||
.update();
|
||||
|
||||
@ -3,8 +3,8 @@ package cn.axzo.nanopart.ess.server.ess;
|
||||
import cn.axzo.basics.common.BeanMapper;
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
import cn.axzo.framework.rocketmq.EventProducer;
|
||||
import cn.axzo.nanopart.ess.api.enums.MQEvent;
|
||||
import cn.axzo.nanopart.ess.api.domain.EssContractInfo;
|
||||
import cn.axzo.nanopart.ess.api.enums.MQEvent;
|
||||
import cn.axzo.nanopart.ess.api.mq.EssContractStateChangeMessage;
|
||||
import cn.axzo.nanopart.ess.server.dao.EssContractDao;
|
||||
import cn.axzo.nanopart.ess.server.entity.EssContract;
|
||||
@ -21,16 +21,15 @@ class Broadcaster {
|
||||
private final EssContractDao essContractDao;
|
||||
protected final EventProducer<?> eventProducer;
|
||||
|
||||
void fireContractStateChanged(String essContractId) {
|
||||
EssContract contract = essContractDao
|
||||
.find(essContractId).orElse(null);
|
||||
if (contract == null) return;
|
||||
void fireContractStateChanged(EssContract contract) {
|
||||
EssContract reloadContract = essContractDao
|
||||
.find(contract.getEssContractId()).orElse(null);
|
||||
EssContractStateChangeMessage message = new EssContractStateChangeMessage();
|
||||
message.setContract(BeanMapper.copyBean(contract, EssContractInfo.class));
|
||||
message.setContract(BeanMapper.copyBean(reloadContract, EssContractInfo.class));
|
||||
eventProducer.send(Event.builder()
|
||||
.eventCode(MQEvent.ESS_CONTRACT_STATE_CHANGE.getEventCode())
|
||||
.shardingKey(essContractId)
|
||||
.targetId(essContractId)
|
||||
.shardingKey(contract.getEssContractId())
|
||||
.targetId(contract.getEssContractId())
|
||||
.targetType("ess-contract")
|
||||
.data(message)
|
||||
.build());
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package cn.axzo.nanopart.ess.server.ess;
|
||||
|
||||
import cn.axzo.basics.common.exception.ServiceException;
|
||||
import cn.axzo.nanopart.ess.api.domain.EssApproverDetail;
|
||||
import cn.axzo.nanopart.ess.api.enums.EssContractState;
|
||||
import cn.axzo.nanopart.ess.api.request.CreateContractInfo;
|
||||
import cn.axzo.nanopart.ess.api.request.CreateContractRequest;
|
||||
@ -11,7 +12,6 @@ import cn.axzo.nanopart.ess.server.dao.EssPersonDao;
|
||||
import cn.axzo.nanopart.ess.server.dao.EssSealPersonDao;
|
||||
import cn.axzo.nanopart.ess.server.dao.domain.OuAndPersonId;
|
||||
import cn.axzo.nanopart.ess.server.entity.EssContract;
|
||||
import cn.axzo.nanopart.ess.api.domain.EssApproverDetail;
|
||||
import cn.axzo.nanopart.ess.server.entity.EssOrg;
|
||||
import cn.axzo.nanopart.ess.server.entity.EssPerson;
|
||||
import cn.axzo.nanopart.ess.server.entity.EssSealPerson;
|
||||
@ -53,9 +53,10 @@ public class ContractManager {
|
||||
EssPerson superAdmin = orgManager.getSuperAdminOrThrow(request.getOperator().getOuId());
|
||||
List<String> essFileIds = essClient.uploadFile(
|
||||
superAdmin, UploadFileBusinessType.DOCUMENT, request.getByFile().getBase64Files());
|
||||
String essContractId = essClient.createContractByFile(superAdmin, essFileIds, request.getByFile());
|
||||
String essContractId = essClient.createContractByFile(
|
||||
superAdmin, essFileIds, request.getByFile(), contract.getId() + "");
|
||||
essContractDao.setEssContractCreated(contract.getId(), essFileIds, essContractId);
|
||||
broadcaster.fireContractStateChanged(contract.getEssContractId());
|
||||
broadcaster.fireContractStateChanged(contract);
|
||||
return essContractId;
|
||||
} catch (TencentCloudSDKException e) {
|
||||
log.warn("创建合同失败", e);
|
||||
@ -110,11 +111,11 @@ public class ContractManager {
|
||||
}
|
||||
}
|
||||
|
||||
public void updateContractState(String essContractId,
|
||||
public void updateContractState(EssContract contract,
|
||||
EssContractState state,
|
||||
List<EssApproverDetail> details) {
|
||||
essContractDao.updateState(essContractId, state, details);
|
||||
broadcaster.fireContractStateChanged(essContractId);
|
||||
essContractDao.updateState(contract, state, details);
|
||||
broadcaster.fireContractStateChanged(contract);
|
||||
}
|
||||
|
||||
public void revokeContract(RevokeContractRequest request) {
|
||||
@ -127,7 +128,7 @@ public class ContractManager {
|
||||
.find(contract.getCreatorOuId(), contract.getCreatorPersonId(), false)
|
||||
.orElse(null);
|
||||
essClient.revokeContract(creator, contract.getEssContractId(), request.getReason());
|
||||
essContractDao.updateState(request.getEssContractId(), EssContractState.CANCEL, null);
|
||||
essContractDao.updateState(contract, EssContractState.CANCEL, null);
|
||||
}
|
||||
|
||||
}
|
||||
@ -187,7 +187,8 @@ public class EssClient implements InitializingBean {
|
||||
|
||||
String createContractByFile(EssPerson superAdmin,
|
||||
List<String> contractFileIds,
|
||||
CreateContractInfo contractInfo) throws TencentCloudSDKException {
|
||||
CreateContractInfo contractInfo,
|
||||
String customerData) throws TencentCloudSDKException {
|
||||
Map<Long, OrganizationalUnitVO> orgProfiles = essSupport
|
||||
.getOrgProfiles(contractInfo.getApprovers().stream()
|
||||
.map(ApproverInfo::getOuId)
|
||||
@ -230,6 +231,7 @@ public class EssClient implements InitializingBean {
|
||||
request.setFileIds(contractFileIds.toArray(new String[0]));
|
||||
request.setFlowApprovers(approvers.toArray(new FlowApproverInfo[0]));
|
||||
request.setUnordered(!contractInfo.isSignOrdered());
|
||||
request.setCustomerData(customerData);
|
||||
ChannelCreateFlowByFilesResponse response = call(Invocation.<ChannelCreateFlowByFilesResponse>invocation()
|
||||
.context("ChannelCreateFlowByFiles")
|
||||
.subject(contractInfo.getContractName())
|
||||
|
||||
@ -2,6 +2,7 @@ package cn.axzo.nanopart.ess.server.ess.controller;
|
||||
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.nanopart.ess.api.EssCallbackApi;
|
||||
import cn.axzo.nanopart.ess.api.domain.EssApproverDetail;
|
||||
import cn.axzo.nanopart.ess.api.enums.EssContractApproveState;
|
||||
import cn.axzo.nanopart.ess.api.enums.EssContractState;
|
||||
import cn.axzo.nanopart.ess.api.enums.EssSealState;
|
||||
@ -9,8 +10,9 @@ import cn.axzo.nanopart.ess.api.enums.EssSealType;
|
||||
import cn.axzo.nanopart.ess.api.request.CallbackRequest;
|
||||
import cn.axzo.nanopart.ess.api.request.CallbackRequest.OrgAuthorizationFinish;
|
||||
import cn.axzo.nanopart.ess.api.request.CallbackRequest.SuperAdminChanged;
|
||||
import cn.axzo.nanopart.ess.server.dao.EssContractDao;
|
||||
import cn.axzo.nanopart.ess.server.dao.EssLogDao;
|
||||
import cn.axzo.nanopart.ess.api.domain.EssApproverDetail;
|
||||
import cn.axzo.nanopart.ess.server.entity.EssContract;
|
||||
import cn.axzo.nanopart.ess.server.entity.EssLog;
|
||||
import cn.axzo.nanopart.ess.server.ess.ContractManager;
|
||||
import cn.axzo.nanopart.ess.server.ess.OrgManager;
|
||||
@ -47,6 +49,7 @@ class CallbackController implements EssCallbackApi, InitializingBean {
|
||||
private final OrgManager orgManager;
|
||||
private final ContractManager contractManager;
|
||||
private final EssLogDao essLogDao;
|
||||
private final EssContractDao essContractDao;
|
||||
private final TransactionTemplate transactionTemplate;
|
||||
private final Map<CallbackType, CallbackHandler> handlers = new HashMap<>();
|
||||
|
||||
@ -118,7 +121,11 @@ class CallbackController implements EssCallbackApi, InitializingBean {
|
||||
return detail;
|
||||
})
|
||||
.collect(toList());
|
||||
contractManager.updateContractState(changes.getFlowId(), state, details);
|
||||
EssContract contract = essContractDao.find(changes.getFlowId()).orElse(null);
|
||||
if (contract == null)
|
||||
contract = essContractDao.getById(Long.parseLong(changes.getCustomerData()));
|
||||
if (contract != null)
|
||||
contractManager.updateContractState(contract, state, details);
|
||||
return changes.getFlowId();
|
||||
});
|
||||
registerHandler(CallbackType.SUPER_ADMIN_CHANGED, request -> {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user