|
|
@@ -2,6 +2,7 @@ package com.fs.company.service.impl.call.node;
|
|
|
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
+import com.fs.common.utils.spring.SpringUtils;
|
|
|
import com.fs.company.domain.*;
|
|
|
import com.fs.company.mapper.*;
|
|
|
import com.fs.company.param.ExecutionContext;
|
|
|
@@ -23,43 +24,14 @@ import java.util.*;
|
|
|
*/
|
|
|
@Slf4j
|
|
|
//@SuppressWarnings("all")
|
|
|
-public abstract class AbstractWorkflowNode implements HasCompanyWorkflowNodeMapper, IWorkflowNode,
|
|
|
- HasCompanyAiWorkflowExecMapper, HasCompanyWorkflowEdgeMapper, HasCompanyAiWorkflowExecLogMapper, HasCompanyVoiceRoboticBusinessMapper,
|
|
|
- HasObjectMapper {
|
|
|
-
|
|
|
- CompanyAiWorkflowExecMapper workflowExecMapper;
|
|
|
- CompanyWorkflowEdgeMapper companyWorkflowEdgeMapper;
|
|
|
- CompanyAiWorkflowExecLogMapper companyAiWorkflowExecLogMapper;
|
|
|
- CompanyWorkflowNodeMapper companyWorkflowNodeMapper;
|
|
|
- CompanyVoiceRoboticBusinessMapper companyVoiceRoboticBusinessMapper;
|
|
|
- ObjectMapper objectMapper;
|
|
|
-
|
|
|
- @Override
|
|
|
- public void setCompanyWorkflowNodeMapper(CompanyWorkflowNodeMapper mapper) {
|
|
|
- this.companyWorkflowNodeMapper = mapper;
|
|
|
- }
|
|
|
- @Override
|
|
|
- public void setCompanyAiWorkflowExecMapper(CompanyAiWorkflowExecMapper workflowExecMapper) {
|
|
|
- this.workflowExecMapper = workflowExecMapper;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void setCompanyWorkflowEdgeMapper(CompanyWorkflowEdgeMapper companyWorkflowEdgeMapper) {
|
|
|
- this.companyWorkflowEdgeMapper = companyWorkflowEdgeMapper;
|
|
|
- }
|
|
|
- @Override
|
|
|
- public void setCompanyAiWorkflowExecLogMapper(CompanyAiWorkflowExecLogMapper companyAiWorkflowExecLogMapper) {
|
|
|
- this.companyAiWorkflowExecLogMapper = companyAiWorkflowExecLogMapper;
|
|
|
- }
|
|
|
- @Override
|
|
|
- public void setCompanyVoiceRoboticBusinessMapper(CompanyVoiceRoboticBusinessMapper companyVoiceRoboticBusinessMapper){
|
|
|
- this.companyVoiceRoboticBusinessMapper = companyVoiceRoboticBusinessMapper;
|
|
|
- }
|
|
|
- @Override
|
|
|
- public void setObjectMapper(ObjectMapper objectMapper){
|
|
|
- this.objectMapper = objectMapper;
|
|
|
- }
|
|
|
+public abstract class AbstractWorkflowNode implements IWorkflowNode {
|
|
|
|
|
|
+ private static final CompanyWorkflowNodeMapper companyWorkflowNodeMapper = SpringUtils.getBean(CompanyWorkflowNodeMapper.class);
|
|
|
+ private static final CompanyAiWorkflowExecMapper companyAiWorkflowExecMapper = SpringUtils.getBean(CompanyAiWorkflowExecMapper.class);
|
|
|
+ private static final CompanyAiWorkflowExecLogMapper companyAiWorkflowExecLogMapper = SpringUtils.getBean(CompanyAiWorkflowExecLogMapper.class);
|
|
|
+ private static final CompanyWorkflowEdgeMapper companyWorkflowEdgeMapper = SpringUtils.getBean(CompanyWorkflowEdgeMapper.class);
|
|
|
+ private static final CompanyVoiceRoboticBusinessMapper companyVoiceRoboticBusinessMapper = SpringUtils.getBean(CompanyVoiceRoboticBusinessMapper.class);
|
|
|
+ private static final ObjectMapper objectMapper = new ObjectMapper();
|
|
|
|
|
|
protected String nodeKey;
|
|
|
protected String nodeName;
|
|
|
@@ -97,7 +69,7 @@ public abstract class AbstractWorkflowNode implements HasCompanyWorkflowNodeMapp
|
|
|
@Override
|
|
|
public ExecutionResult continueExecute(ExecutionContext context){
|
|
|
try{
|
|
|
- CompanyAiWorkflowExec companyAiWorkflowExec = workflowExecMapper.selectByWorkflowInstanceId(context.getWorkflowInstanceId());
|
|
|
+ CompanyAiWorkflowExec companyAiWorkflowExec = companyAiWorkflowExecMapper.selectByWorkflowInstanceId(context.getWorkflowInstanceId());
|
|
|
if(!Integer.valueOf(ExecutionStatusEnum.WAITING.getValue()).equals(companyAiWorkflowExec.getStatus())){
|
|
|
return handleExecutionError( new Exception("状态不符合"), context);
|
|
|
}
|
|
|
@@ -161,7 +133,7 @@ public abstract class AbstractWorkflowNode implements HasCompanyWorkflowNodeMapp
|
|
|
*/
|
|
|
public String getNextNodeKey(String workflowInstanceId, String nodeKey){
|
|
|
|
|
|
- CompanyAiWorkflowExec companyAiWorkflowExec = workflowExecMapper.selectByWorkflowInstanceId(workflowInstanceId);
|
|
|
+ CompanyAiWorkflowExec companyAiWorkflowExec = companyAiWorkflowExecMapper.selectByWorkflowInstanceId(workflowInstanceId);
|
|
|
|
|
|
List<CompanyWorkflowEdge> companyWorkflowEdges =
|
|
|
companyWorkflowEdgeMapper.selectListByWorkflowIdAndNodeKey(companyAiWorkflowExec.getWorkflowId(), nodeKey);
|
|
|
@@ -260,7 +232,7 @@ public abstract class AbstractWorkflowNode implements HasCompanyWorkflowNodeMapp
|
|
|
update.setStatus(ExecutionStatusEnum.WAITING.getValue());
|
|
|
update.setLastUpdateTime(LocalDateTime.now());
|
|
|
update.setVariables(objectMapper.writeValueAsString(context.getVariables()));
|
|
|
- workflowExecMapper.updateByWorkflowInstanceId(update);
|
|
|
+ companyAiWorkflowExecMapper.updateByWorkflowInstanceId(update);
|
|
|
log.info("工作流已阻塞在节点: {} -> {}", workflowInstanceId, nodeKey);
|
|
|
} catch (Exception e) {
|
|
|
log.error("更新工作流阻塞状态失败: {}", workflowInstanceId, e);
|
|
|
@@ -277,7 +249,7 @@ public abstract class AbstractWorkflowNode implements HasCompanyWorkflowNodeMapp
|
|
|
update.setWorkflowInstanceId(workflowInstanceId);
|
|
|
update.setStatus(status.getValue());
|
|
|
update.setLastUpdateTime(LocalDateTime.now());
|
|
|
- workflowExecMapper.updateByWorkflowInstanceId(update);
|
|
|
+ companyAiWorkflowExecMapper.updateByWorkflowInstanceId(update);
|
|
|
}
|
|
|
|
|
|
}
|