修改:HPC优化

This commit is contained in:
yangyang01000846
2025-12-07 15:06:02 +08:00
parent 6713511078
commit 55f3683f02
16 changed files with 482 additions and 45 deletions

View File

@@ -15,15 +15,17 @@ import com.sdm.flowable.dto.req.RetryRequest;
import com.sdm.flowable.process.ProcessService;
import com.sdm.flowable.service.IProcessNodeParamService;
import lombok.extern.slf4j.Slf4j;
import org.flowable.bpmn.model.FlowElement;
import org.flowable.bpmn.model.FlowableListener;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.ReadOnlyDelegateExecution;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.validation.ValidationError;
import org.flowable.variable.api.persistence.entity.VariableInstance;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
@Slf4j
@RestController
@@ -40,22 +42,6 @@ public class ProcessController implements IFlowableFeignClient {
private final ObjectMapper objectMapper = new ObjectMapper();
// 验证流程模型
@PostMapping("/testHpc")
public String testHpc(@RequestBody Map<String, Object> params) {
String beforeNodeId = params.get("beforeNodeId").toString();
HPCExecuteConfig config=new HPCExecuteConfig();
config.setBeforeNodeId(beforeNodeId);
if(!Objects.isNull(params.get("masterFileRegularStr"))){
config.setMasterFileRegularStr(params.get("masterFileRegularStr").toString());
}
if(!Objects.isNull(params.get("inputFilesRegularStr"))){
config.setInputFilesRegularStr(params.get("inputFilesRegularStr").toString());
}
hpcHandler.execute(null,params,config);
return "ok";
}
// 验证流程模型
@PostMapping("/validate")
public Map<String, Object> validate(@RequestBody ProcessDefinitionDTO processDTO) {
@@ -196,4 +182,439 @@ public class ProcessController implements IFlowableFeignClient {
return SdmResponse.failed("重试失败: " + e.getMessage());
}
}
// mock验证HPC流程使用
@PostMapping("/testHpc")
public String testHpc(@RequestBody Map<String, Object> params) {
String beforeNodeId = params.get("beforeNodeId").toString();
HPCExecuteConfig config=new HPCExecuteConfig();
config.setBeforeNodeId(beforeNodeId);
if(!Objects.isNull(params.get("masterFileRegularStr"))){
config.setMasterFileRegularStr(params.get("masterFileRegularStr").toString());
}
if(!Objects.isNull(params.get("inputFilesRegularStr"))){
config.setInputFilesRegularStr(params.get("inputFilesRegularStr").toString());
}
String currentNodeId = params.get("currentNodeId").toString();
DelegateExecution execution = new DelegateExecution() {
@Override
public String getId() {
return "";
}
@Override
public String getProcessInstanceId() {
return "";
}
@Override
public String getRootProcessInstanceId() {
return "";
}
@Override
public String getEventName() {
return "";
}
@Override
public void setEventName(String eventName) {
}
@Override
public String getProcessInstanceBusinessKey() {
return "";
}
@Override
public String getProcessInstanceBusinessStatus() {
return "";
}
@Override
public String getProcessDefinitionId() {
return "";
}
@Override
public String getPropagatedStageInstanceId() {
return "";
}
@Override
public String getParentId() {
return "";
}
@Override
public String getSuperExecutionId() {
return "";
}
@Override
public String getCurrentActivityId() {
return currentNodeId;
}
@Override
public String getTenantId() {
return "";
}
@Override
public FlowElement getCurrentFlowElement() {
return null;
}
@Override
public void setCurrentFlowElement(FlowElement flowElement) {
}
@Override
public FlowableListener getCurrentFlowableListener() {
return null;
}
@Override
public void setCurrentFlowableListener(FlowableListener currentListener) {
}
@Override
public ReadOnlyDelegateExecution snapshotReadOnly() {
return null;
}
@Override
public DelegateExecution getParent() {
return null;
}
@Override
public List<? extends DelegateExecution> getExecutions() {
return List.of();
}
@Override
public void setActive(boolean isActive) {
}
@Override
public boolean isActive() {
return false;
}
@Override
public boolean isEnded() {
return false;
}
@Override
public void setConcurrent(boolean isConcurrent) {
}
@Override
public boolean isConcurrent() {
return false;
}
@Override
public boolean isProcessInstanceType() {
return false;
}
@Override
public void inactivate() {
}
@Override
public boolean isScope() {
return false;
}
@Override
public void setScope(boolean isScope) {
}
@Override
public boolean isMultiInstanceRoot() {
return false;
}
@Override
public void setMultiInstanceRoot(boolean isMultiInstanceRoot) {
}
@Override
public Map<String, Object> getVariables() {
return Map.of();
}
@Override
public Map<String, VariableInstance> getVariableInstances() {
return Map.of();
}
@Override
public Map<String, Object> getVariables(Collection<String> variableNames) {
return Map.of();
}
@Override
public Map<String, VariableInstance> getVariableInstances(Collection<String> variableNames) {
return Map.of();
}
@Override
public Map<String, Object> getVariables(Collection<String> variableNames, boolean fetchAllVariables) {
return Map.of();
}
@Override
public Map<String, VariableInstance> getVariableInstances(Collection<String> variableNames, boolean fetchAllVariables) {
return Map.of();
}
@Override
public Map<String, Object> getVariablesLocal() {
return Map.of();
}
@Override
public Map<String, VariableInstance> getVariableInstancesLocal() {
return Map.of();
}
@Override
public Map<String, Object> getVariablesLocal(Collection<String> variableNames) {
return Map.of();
}
@Override
public Map<String, VariableInstance> getVariableInstancesLocal(Collection<String> variableNames) {
return Map.of();
}
@Override
public Map<String, Object> getVariablesLocal(Collection<String> variableNames, boolean fetchAllVariables) {
return Map.of();
}
@Override
public Map<String, VariableInstance> getVariableInstancesLocal(Collection<String> variableNames, boolean fetchAllVariables) {
return Map.of();
}
@Override
public Object getVariable(String variableName) {
return null;
}
@Override
public VariableInstance getVariableInstance(String variableName) {
return null;
}
@Override
public Object getVariable(String variableName, boolean fetchAllVariables) {
return null;
}
@Override
public VariableInstance getVariableInstance(String variableName, boolean fetchAllVariables) {
return null;
}
@Override
public Object getVariableLocal(String variableName) {
return null;
}
@Override
public VariableInstance getVariableInstanceLocal(String variableName) {
return null;
}
@Override
public Object getVariableLocal(String variableName, boolean fetchAllVariables) {
return null;
}
@Override
public VariableInstance getVariableInstanceLocal(String variableName, boolean fetchAllVariables) {
return null;
}
@Override
public <T> T getVariable(String variableName, Class<T> variableClass) {
return null;
}
@Override
public <T> T getVariableLocal(String variableName, Class<T> variableClass) {
return null;
}
@Override
public Set<String> getVariableNames() {
return Set.of();
}
@Override
public Set<String> getVariableNamesLocal() {
return Set.of();
}
@Override
public void setVariable(String variableName, Object value) {
}
@Override
public void setVariable(String variableName, Object value, boolean fetchAllVariables) {
}
@Override
public Object setVariableLocal(String variableName, Object value) {
return null;
}
@Override
public Object setVariableLocal(String variableName, Object value, boolean fetchAllVariables) {
return null;
}
@Override
public void setVariables(Map<String, ?> variables) {
}
@Override
public void setVariablesLocal(Map<String, ?> variables) {
}
@Override
public boolean hasVariables() {
return false;
}
@Override
public boolean hasVariablesLocal() {
return false;
}
@Override
public boolean hasVariable(String variableName) {
return false;
}
@Override
public boolean hasVariableLocal(String variableName) {
return false;
}
@Override
public void removeVariable(String variableName) {
}
@Override
public void removeVariableLocal(String variableName) {
}
@Override
public void removeVariables(Collection<String> variableNames) {
}
@Override
public void removeVariablesLocal(Collection<String> variableNames) {
}
@Override
public void removeVariables() {
}
@Override
public void removeVariablesLocal() {
}
@Override
public void setTransientVariable(String variableName, Object variableValue) {
}
@Override
public void setTransientVariableLocal(String variableName, Object variableValue) {
}
@Override
public void setTransientVariables(Map<String, Object> transientVariables) {
}
@Override
public Object getTransientVariable(String variableName) {
return null;
}
@Override
public Map<String, Object> getTransientVariables() {
return Map.of();
}
@Override
public void setTransientVariablesLocal(Map<String, Object> transientVariables) {
}
@Override
public Object getTransientVariableLocal(String variableName) {
return null;
}
@Override
public Map<String, Object> getTransientVariablesLocal() {
return Map.of();
}
@Override
public void removeTransientVariableLocal(String variableName) {
}
@Override
public void removeTransientVariable(String variableName) {
}
@Override
public void removeTransientVariables() {
}
@Override
public void removeTransientVariablesLocal() {
}
};
hpcHandler.execute(execution,params,config);
return "ok";
}
}

View File

@@ -152,9 +152,7 @@ public class HpcHandler implements ExecutionHandler<Map<String, Object>,HPCExecu
if (params == null) {
return req;
}
// ObjectMapper objectMapper = new ObjectMapper(); // 需确保ObjectMapper已配置或注入
// 基础字段映射
req.setTimesmap(params.get("timesmap").toString());
req.setJobName(params.get("jobName").toString());
// 处理int类型字段包含空值和非数字的异常处理
try {

View File

@@ -36,4 +36,5 @@ mybatis-plus:
security:
whitelist:
paths:
- /pbs/jobFileCallback
- /process/testHpc
- /process/asyncCallback

View File

@@ -1,3 +1,3 @@
spring:
profiles:
active: local
active: dev