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