|
@@ -37,7 +37,6 @@ import org.apache.dolphinscheduler.common.enums.ExecutionStatus;
|
|
|
import org.apache.dolphinscheduler.common.enums.FailureStrategy;
|
|
|
import org.apache.dolphinscheduler.common.enums.Flag;
|
|
|
import org.apache.dolphinscheduler.common.enums.ReleaseState;
|
|
|
-import org.apache.dolphinscheduler.spi.enums.ResourceType;
|
|
|
import org.apache.dolphinscheduler.common.enums.TaskDependType;
|
|
|
import org.apache.dolphinscheduler.common.enums.TimeoutFlag;
|
|
|
import org.apache.dolphinscheduler.common.enums.WarningType;
|
|
@@ -102,8 +101,10 @@ import org.apache.dolphinscheduler.dao.utils.DagHelper;
|
|
|
import org.apache.dolphinscheduler.remote.command.StateEventChangeCommand;
|
|
|
import org.apache.dolphinscheduler.remote.processor.StateEventCallbackService;
|
|
|
import org.apache.dolphinscheduler.remote.utils.Host;
|
|
|
+import org.apache.dolphinscheduler.service.exceptions.ServiceException;
|
|
|
import org.apache.dolphinscheduler.service.log.LogClientService;
|
|
|
import org.apache.dolphinscheduler.service.quartz.cron.CronUtils;
|
|
|
+import org.apache.dolphinscheduler.spi.enums.ResourceType;
|
|
|
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
@@ -140,10 +141,10 @@ public class ProcessService {
|
|
|
private final Logger logger = LoggerFactory.getLogger(getClass());
|
|
|
|
|
|
private final int[] stateArray = new int[]{ExecutionStatus.SUBMITTED_SUCCESS.ordinal(),
|
|
|
- ExecutionStatus.RUNNING_EXECUTION.ordinal(),
|
|
|
- ExecutionStatus.DELAY_EXECUTION.ordinal(),
|
|
|
- ExecutionStatus.READY_PAUSE.ordinal(),
|
|
|
- ExecutionStatus.READY_STOP.ordinal()};
|
|
|
+ ExecutionStatus.RUNNING_EXECUTION.ordinal(),
|
|
|
+ ExecutionStatus.DELAY_EXECUTION.ordinal(),
|
|
|
+ ExecutionStatus.READY_PAUSE.ordinal(),
|
|
|
+ ExecutionStatus.READY_STOP.ordinal()};
|
|
|
|
|
|
@Autowired
|
|
|
private UserMapper userMapper;
|
|
@@ -215,9 +216,9 @@ public class ProcessService {
|
|
|
* @param logger logger
|
|
|
* @param host host
|
|
|
* @param command found command
|
|
|
- * @param processDefinitionCacheMaps
|
|
|
* @return process instance
|
|
|
*/
|
|
|
+ @Transactional
|
|
|
public ProcessInstance handleCommand(Logger logger, String host, Command command, HashMap<String, ProcessDefinition> processDefinitionCacheMaps) {
|
|
|
ProcessInstance processInstance = constructProcessInstance(command, host, processDefinitionCacheMaps);
|
|
|
|
|
@@ -231,21 +232,21 @@ public class ProcessService {
|
|
|
|
|
|
ProcessDefinition processDefinition = this.findProcessDefinition(processInstance.getProcessDefinitionCode(), processInstance.getProcessDefinitionVersion());
|
|
|
if (processDefinition.getExecutionType().typeIsSerial()) {
|
|
|
- saveSerialProcess(processInstance,processDefinition);
|
|
|
+ saveSerialProcess(processInstance, processDefinition);
|
|
|
if (processInstance.getState() != ExecutionStatus.SUBMITTED_SUCCESS) {
|
|
|
- this.setSubProcessParam(processInstance);
|
|
|
- this.commandMapper.deleteById(command.getId());
|
|
|
+ setSubProcessParam(processInstance);
|
|
|
+ deleteCommandWithCheck(command.getId());
|
|
|
return null;
|
|
|
}
|
|
|
} else {
|
|
|
saveProcessInstance(processInstance);
|
|
|
}
|
|
|
- this.setSubProcessParam(processInstance);
|
|
|
- this.commandMapper.deleteById(command.getId());
|
|
|
+ setSubProcessParam(processInstance);
|
|
|
+ deleteCommandWithCheck(command.getId());
|
|
|
return processInstance;
|
|
|
}
|
|
|
|
|
|
- private void saveSerialProcess(ProcessInstance processInstance,ProcessDefinition processDefinition) {
|
|
|
+ private void saveSerialProcess(ProcessInstance processInstance, ProcessDefinition processDefinition) {
|
|
|
processInstance.setState(ExecutionStatus.SERIAL_WAIT);
|
|
|
saveProcessInstance(processInstance);
|
|
|
|
|
@@ -253,7 +254,7 @@ public class ProcessService {
|
|
|
if (processDefinition.getExecutionType().typeIsSerialWait()) {
|
|
|
while (true) {
|
|
|
List<ProcessInstance> runningProcessInstances = this.processInstanceMapper.queryByProcessDefineCodeAndStatusAndNextId(processInstance.getProcessDefinitionCode(),
|
|
|
- Constants.RUNNING_PROCESS_STATE,processInstance.getId());
|
|
|
+ Constants.RUNNING_PROCESS_STATE, processInstance.getId());
|
|
|
if (CollectionUtils.isEmpty(runningProcessInstances)) {
|
|
|
processInstance.setState(ExecutionStatus.SUBMITTED_SUCCESS);
|
|
|
saveProcessInstance(processInstance);
|
|
@@ -266,14 +267,14 @@ public class ProcessService {
|
|
|
}
|
|
|
} else if (processDefinition.getExecutionType().typeIsSerialDiscard()) {
|
|
|
List<ProcessInstance> runningProcessInstances = this.processInstanceMapper.queryByProcessDefineCodeAndStatusAndNextId(processInstance.getProcessDefinitionCode(),
|
|
|
- Constants.RUNNING_PROCESS_STATE,processInstance.getId());
|
|
|
+ Constants.RUNNING_PROCESS_STATE, processInstance.getId());
|
|
|
if (CollectionUtils.isEmpty(runningProcessInstances)) {
|
|
|
processInstance.setState(ExecutionStatus.STOP);
|
|
|
saveProcessInstance(processInstance);
|
|
|
}
|
|
|
} else if (processDefinition.getExecutionType().typeIsSerialPriority()) {
|
|
|
List<ProcessInstance> runningProcessInstances = this.processInstanceMapper.queryByProcessDefineCodeAndStatusAndNextId(processInstance.getProcessDefinitionCode(),
|
|
|
- Constants.RUNNING_PROCESS_STATE,processInstance.getId());
|
|
|
+ Constants.RUNNING_PROCESS_STATE, processInstance.getId());
|
|
|
if (CollectionUtils.isNotEmpty(runningProcessInstances)) {
|
|
|
for (ProcessInstance info : runningProcessInstances) {
|
|
|
info.setCommandType(CommandType.STOP);
|
|
@@ -345,10 +346,6 @@ public class ProcessService {
|
|
|
|
|
|
|
|
|
* get command page
|
|
|
- *
|
|
|
- * @param pageSize
|
|
|
- * @param pageNumber
|
|
|
- * @return
|
|
|
*/
|
|
|
public List<Command> findCommandPage(int pageSize, int pageNumber) {
|
|
|
return commandMapper.queryCommandPage(pageSize, pageNumber * pageSize);
|
|
@@ -569,21 +566,21 @@ public class ProcessService {
|
|
|
|
|
|
if (originCommand == null) {
|
|
|
Command command = new Command(
|
|
|
- CommandType.RECOVER_WAITING_THREAD,
|
|
|
- processInstance.getTaskDependType(),
|
|
|
- processInstance.getFailureStrategy(),
|
|
|
- processInstance.getExecutorId(),
|
|
|
- processInstance.getProcessDefinition().getCode(),
|
|
|
- JSONUtils.toJsonString(cmdParam),
|
|
|
- processInstance.getWarningType(),
|
|
|
- processInstance.getWarningGroupId(),
|
|
|
- processInstance.getScheduleTime(),
|
|
|
- processInstance.getWorkerGroup(),
|
|
|
- processInstance.getEnvironmentCode(),
|
|
|
- processInstance.getProcessInstancePriority(),
|
|
|
- processInstance.getDryRun(),
|
|
|
- processInstance.getId(),
|
|
|
- processInstance.getProcessDefinitionVersion()
|
|
|
+ CommandType.RECOVER_WAITING_THREAD,
|
|
|
+ processInstance.getTaskDependType(),
|
|
|
+ processInstance.getFailureStrategy(),
|
|
|
+ processInstance.getExecutorId(),
|
|
|
+ processInstance.getProcessDefinition().getCode(),
|
|
|
+ JSONUtils.toJsonString(cmdParam),
|
|
|
+ processInstance.getWarningType(),
|
|
|
+ processInstance.getWarningGroupId(),
|
|
|
+ processInstance.getScheduleTime(),
|
|
|
+ processInstance.getWorkerGroup(),
|
|
|
+ processInstance.getEnvironmentCode(),
|
|
|
+ processInstance.getProcessInstancePriority(),
|
|
|
+ processInstance.getDryRun(),
|
|
|
+ processInstance.getId(),
|
|
|
+ processInstance.getProcessDefinitionVersion()
|
|
|
);
|
|
|
saveCommand(command);
|
|
|
return;
|
|
@@ -675,10 +672,10 @@ public class ProcessService {
|
|
|
|
|
|
|
|
|
processInstance.setGlobalParams(ParameterUtils.curingGlobalParams(
|
|
|
- processDefinition.getGlobalParamMap(),
|
|
|
- processDefinition.getGlobalParamList(),
|
|
|
- getCommandTypeIfComplement(processInstance, command),
|
|
|
- processInstance.getScheduleTime()));
|
|
|
+ processDefinition.getGlobalParamMap(),
|
|
|
+ processDefinition.getGlobalParamList(),
|
|
|
+ getCommandTypeIfComplement(processInstance, command),
|
|
|
+ processInstance.getScheduleTime()));
|
|
|
|
|
|
|
|
|
processInstance.setProcessInstancePriority(command.getProcessInstancePriority());
|
|
@@ -705,7 +702,7 @@ public class ProcessService {
|
|
|
startParamMap.putAll(fatherParamMap);
|
|
|
|
|
|
if (startParamMap.size() > 0
|
|
|
- && processDefinition.getGlobalParamMap() != null) {
|
|
|
+ && processDefinition.getGlobalParamMap() != null) {
|
|
|
for (Map.Entry<String, String> param : processDefinition.getGlobalParamMap().entrySet()) {
|
|
|
String val = startParamMap.get(param.getKey());
|
|
|
if (val != null) {
|
|
@@ -767,8 +764,8 @@ public class ProcessService {
|
|
|
private Boolean checkCmdParam(Command command, Map<String, String> cmdParam) {
|
|
|
if (command.getTaskDependType() == TaskDependType.TASK_ONLY || command.getTaskDependType() == TaskDependType.TASK_PRE) {
|
|
|
if (cmdParam == null
|
|
|
- || !cmdParam.containsKey(Constants.CMD_PARAM_START_NODES)
|
|
|
- || cmdParam.get(Constants.CMD_PARAM_START_NODES).isEmpty()) {
|
|
|
+ || !cmdParam.containsKey(Constants.CMD_PARAM_START_NODES)
|
|
|
+ || cmdParam.get(Constants.CMD_PARAM_START_NODES).isEmpty()) {
|
|
|
logger.error("command node depend type is {}, but start nodes is null ", command.getTaskDependType());
|
|
|
return false;
|
|
|
}
|
|
@@ -779,9 +776,8 @@ public class ProcessService {
|
|
|
|
|
|
* construct process instance according to one command.
|
|
|
*
|
|
|
- * @param command command
|
|
|
- * @param host host
|
|
|
- * @param processDefinitionCacheMaps
|
|
|
+ * @param command command
|
|
|
+ * @param host host
|
|
|
* @return process instance
|
|
|
*/
|
|
|
private ProcessInstance constructProcessInstance(Command command, String host, HashMap<String, ProcessDefinition> processDefinitionCacheMaps) {
|
|
@@ -954,7 +950,7 @@ public class ProcessService {
|
|
|
}
|
|
|
|
|
|
return processDefineLogMapper.queryByDefinitionCodeAndVersion(
|
|
|
- processInstance.getProcessDefinitionCode(), processInstance.getProcessDefinitionVersion());
|
|
|
+ processInstance.getProcessDefinitionCode(), processInstance.getProcessDefinitionVersion());
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1000,9 +996,9 @@ public class ProcessService {
|
|
|
processInstance.setScheduleTime(complementDate.get(0));
|
|
|
}
|
|
|
processInstance.setGlobalParams(ParameterUtils.curingGlobalParams(
|
|
|
- processDefinition.getGlobalParamMap(),
|
|
|
- processDefinition.getGlobalParamList(),
|
|
|
- CommandType.COMPLEMENT_DATA, processInstance.getScheduleTime()));
|
|
|
+ processDefinition.getGlobalParamMap(),
|
|
|
+ processDefinition.getGlobalParamList(),
|
|
|
+ CommandType.COMPLEMENT_DATA, processInstance.getScheduleTime()));
|
|
|
}
|
|
|
|
|
|
|
|
@@ -1020,7 +1016,7 @@ public class ProcessService {
|
|
|
Map<String, String> paramMap = JSONUtils.toMap(cmdParam);
|
|
|
|
|
|
if (paramMap.containsKey(CMD_PARAM_SUB_PROCESS)
|
|
|
- && CMD_PARAM_EMPTY_SUB_PROCESS.equals(paramMap.get(CMD_PARAM_SUB_PROCESS))) {
|
|
|
+ && CMD_PARAM_EMPTY_SUB_PROCESS.equals(paramMap.get(CMD_PARAM_SUB_PROCESS))) {
|
|
|
paramMap.remove(CMD_PARAM_SUB_PROCESS);
|
|
|
paramMap.put(CMD_PARAM_SUB_PROCESS, String.valueOf(subProcessInstance.getId()));
|
|
|
subProcessInstance.setCommandParam(JSONUtils.toJsonString(paramMap));
|
|
@@ -1033,7 +1029,7 @@ public class ProcessService {
|
|
|
ProcessInstance parentInstance = findProcessInstanceDetailById(Integer.parseInt(parentInstanceId));
|
|
|
if (parentInstance != null) {
|
|
|
subProcessInstance.setGlobalParams(
|
|
|
- joinGlobalParams(parentInstance.getGlobalParams(), subProcessInstance.getGlobalParams()));
|
|
|
+ joinGlobalParams(parentInstance.getGlobalParams(), subProcessInstance.getGlobalParams()));
|
|
|
this.saveProcessInstance(subProcessInstance);
|
|
|
} else {
|
|
|
logger.error("sub process command params error, cannot find parent instance: {} ", cmdParam);
|
|
@@ -1080,7 +1076,7 @@ public class ProcessService {
|
|
|
private void initTaskInstance(TaskInstance taskInstance) {
|
|
|
|
|
|
if (!taskInstance.isSubProcess()
|
|
|
- && (taskInstance.getState().typeIsCancel() || taskInstance.getState().typeIsFailure())) {
|
|
|
+ && (taskInstance.getState().typeIsCancel() || taskInstance.getState().typeIsFailure())) {
|
|
|
taskInstance.setFlag(Flag.NO);
|
|
|
updateTaskInstance(taskInstance);
|
|
|
return;
|
|
@@ -1091,11 +1087,6 @@ public class ProcessService {
|
|
|
|
|
|
|
|
|
* retry submit task to db
|
|
|
- *
|
|
|
- * @param taskInstance
|
|
|
- * @param commitRetryTimes
|
|
|
- * @param commitInterval
|
|
|
- * @return
|
|
|
*/
|
|
|
public TaskInstance submitTask(TaskInstance taskInstance, int commitRetryTimes, int commitInterval) {
|
|
|
|
|
@@ -1135,12 +1126,12 @@ public class ProcessService {
|
|
|
public TaskInstance submitTask(TaskInstance taskInstance) {
|
|
|
ProcessInstance processInstance = this.findProcessInstanceDetailById(taskInstance.getProcessInstanceId());
|
|
|
logger.info("start submit task : {}, instance id:{}, state: {}",
|
|
|
- taskInstance.getName(), taskInstance.getProcessInstanceId(), processInstance.getState());
|
|
|
+ taskInstance.getName(), taskInstance.getProcessInstanceId(), processInstance.getState());
|
|
|
|
|
|
TaskInstance task = submitTaskInstanceToDB(taskInstance, processInstance);
|
|
|
if (task == null) {
|
|
|
logger.error("end submit task to db error, task name:{}, process id:{} state: {} ",
|
|
|
- taskInstance.getName(), taskInstance.getProcessInstance(), processInstance.getState());
|
|
|
+ taskInstance.getName(), taskInstance.getProcessInstance(), processInstance.getState());
|
|
|
return task;
|
|
|
}
|
|
|
if (!task.getState().typeIsFinished()) {
|
|
@@ -1206,7 +1197,7 @@ public class ProcessService {
|
|
|
}
|
|
|
}
|
|
|
logger.info("sub process instance is not found,parent task:{},parent instance:{}",
|
|
|
- parentTask.getId(), parentProcessInstance.getId());
|
|
|
+ parentTask.getId(), parentProcessInstance.getId());
|
|
|
return null;
|
|
|
}
|
|
|
|
|
@@ -1298,21 +1289,21 @@ public class ProcessService {
|
|
|
String processParam = getSubWorkFlowParam(instanceMap, parentProcessInstance, fatherParams);
|
|
|
int subProcessInstanceId = childInstance == null ? 0 : childInstance.getId();
|
|
|
return new Command(
|
|
|
- commandType,
|
|
|
- TaskDependType.TASK_POST,
|
|
|
- parentProcessInstance.getFailureStrategy(),
|
|
|
- parentProcessInstance.getExecutorId(),
|
|
|
- subProcessDefinition.getCode(),
|
|
|
- processParam,
|
|
|
- parentProcessInstance.getWarningType(),
|
|
|
- parentProcessInstance.getWarningGroupId(),
|
|
|
- parentProcessInstance.getScheduleTime(),
|
|
|
- task.getWorkerGroup(),
|
|
|
- task.getEnvironmentCode(),
|
|
|
- parentProcessInstance.getProcessInstancePriority(),
|
|
|
- parentProcessInstance.getDryRun(),
|
|
|
- subProcessInstanceId,
|
|
|
- subProcessDefinition.getVersion()
|
|
|
+ commandType,
|
|
|
+ TaskDependType.TASK_POST,
|
|
|
+ parentProcessInstance.getFailureStrategy(),
|
|
|
+ parentProcessInstance.getExecutorId(),
|
|
|
+ subProcessDefinition.getCode(),
|
|
|
+ processParam,
|
|
|
+ parentProcessInstance.getWarningType(),
|
|
|
+ parentProcessInstance.getWarningGroupId(),
|
|
|
+ parentProcessInstance.getScheduleTime(),
|
|
|
+ task.getWorkerGroup(),
|
|
|
+ task.getEnvironmentCode(),
|
|
|
+ parentProcessInstance.getProcessInstancePriority(),
|
|
|
+ parentProcessInstance.getDryRun(),
|
|
|
+ subProcessInstanceId,
|
|
|
+ subProcessDefinition.getVersion()
|
|
|
);
|
|
|
}
|
|
|
|
|
@@ -1349,7 +1340,7 @@ public class ProcessService {
|
|
|
*/
|
|
|
private void updateSubProcessDefinitionByParent(ProcessInstance parentProcessInstance, long childDefinitionCode) {
|
|
|
ProcessDefinition fatherDefinition = this.findProcessDefinition(parentProcessInstance.getProcessDefinitionCode(),
|
|
|
- parentProcessInstance.getProcessDefinitionVersion());
|
|
|
+ parentProcessInstance.getProcessDefinitionVersion());
|
|
|
ProcessDefinition childDefinition = this.findProcessDefinitionByCode(childDefinitionCode);
|
|
|
if (childDefinition != null && fatherDefinition != null) {
|
|
|
childDefinition.setWarningGroupId(fatherDefinition.getWarningGroupId());
|
|
@@ -1372,7 +1363,7 @@ public class ProcessService {
|
|
|
taskInstance.setRetryTimes(taskInstance.getRetryTimes() + 1);
|
|
|
} else {
|
|
|
if (processInstanceState != ExecutionStatus.READY_STOP
|
|
|
- && processInstanceState != ExecutionStatus.READY_PAUSE) {
|
|
|
+ && processInstanceState != ExecutionStatus.READY_PAUSE) {
|
|
|
|
|
|
taskInstance.setFlag(Flag.NO);
|
|
|
updateTaskInstance(taskInstance);
|
|
@@ -1425,9 +1416,9 @@ public class ProcessService {
|
|
|
|
|
|
|
|
|
if (
|
|
|
- state == ExecutionStatus.RUNNING_EXECUTION
|
|
|
- || state == ExecutionStatus.DELAY_EXECUTION
|
|
|
- || state == ExecutionStatus.KILL
|
|
|
+ state == ExecutionStatus.RUNNING_EXECUTION
|
|
|
+ || state == ExecutionStatus.DELAY_EXECUTION
|
|
|
+ || state == ExecutionStatus.KILL
|
|
|
) {
|
|
|
return state;
|
|
|
}
|
|
@@ -1436,7 +1427,7 @@ public class ProcessService {
|
|
|
if (processInstanceState == ExecutionStatus.READY_PAUSE) {
|
|
|
state = ExecutionStatus.PAUSE;
|
|
|
} else if (processInstanceState == ExecutionStatus.READY_STOP
|
|
|
- || !checkProcessStrategy(taskInstance)) {
|
|
|
+ || !checkProcessStrategy(taskInstance)) {
|
|
|
state = ExecutionStatus.KILL;
|
|
|
} else {
|
|
|
state = ExecutionStatus.SUBMITTED_SUCCESS;
|
|
@@ -1460,7 +1451,7 @@ public class ProcessService {
|
|
|
|
|
|
for (TaskInstance task : taskInstances) {
|
|
|
if (task.getState() == ExecutionStatus.FAILURE
|
|
|
- && task.getRetryTimes() >= task.getMaxRetryTimes()) {
|
|
|
+ && task.getRetryTimes() >= task.getMaxRetryTimes()) {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
@@ -1589,7 +1580,8 @@ public class ProcessService {
|
|
|
private void updateTaskDefinitionResources(TaskDefinition taskDefinition) {
|
|
|
Map<String, Object> taskParameters = JSONUtils.parseObject(
|
|
|
taskDefinition.getTaskParams(),
|
|
|
- new TypeReference<Map<String, Object>>() { });
|
|
|
+ new TypeReference<Map<String, Object>>() {
|
|
|
+ });
|
|
|
if (taskParameters != null) {
|
|
|
|
|
|
|
|
@@ -1815,8 +1807,6 @@ public class ProcessService {
|
|
|
|
|
|
|
|
|
* for show in page of taskInstance
|
|
|
- *
|
|
|
- * @param taskInstance
|
|
|
*/
|
|
|
public void changeOutParam(TaskInstance taskInstance) {
|
|
|
if (StringUtils.isEmpty(taskInstance.getVarPool())) {
|
|
@@ -1827,7 +1817,8 @@ public class ProcessService {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- Map<String, Object> taskParams = JSONUtils.parseObject(taskInstance.getTaskParams(), new TypeReference<Map<String, Object>>() {});
|
|
|
+ Map<String, Object> taskParams = JSONUtils.parseObject(taskInstance.getTaskParams(), new TypeReference<Map<String, Object>>() {
|
|
|
+ });
|
|
|
Object localParams = taskParams.get(LOCAL_PARAMS);
|
|
|
if (localParams == null) {
|
|
|
return;
|
|
@@ -1928,7 +1919,7 @@ public class ProcessService {
|
|
|
*/
|
|
|
public List<TaskInstance> queryNeedFailoverTaskInstances(String host) {
|
|
|
return taskInstanceMapper.queryByHostAndStatus(host,
|
|
|
- stateArray);
|
|
|
+ stateArray);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2024,8 +2015,8 @@ public class ProcessService {
|
|
|
*/
|
|
|
public ProcessInstance findLastSchedulerProcessInterval(Long definitionCode, DateInterval dateInterval) {
|
|
|
return processInstanceMapper.queryLastSchedulerProcess(definitionCode,
|
|
|
- dateInterval.getStartTime(),
|
|
|
- dateInterval.getEndTime());
|
|
|
+ dateInterval.getStartTime(),
|
|
|
+ dateInterval.getEndTime());
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2037,8 +2028,8 @@ public class ProcessService {
|
|
|
*/
|
|
|
public ProcessInstance findLastManualProcessInterval(Long definitionCode, DateInterval dateInterval) {
|
|
|
return processInstanceMapper.queryLastManualProcess(definitionCode,
|
|
|
- dateInterval.getStartTime(),
|
|
|
- dateInterval.getEndTime());
|
|
|
+ dateInterval.getStartTime(),
|
|
|
+ dateInterval.getEndTime());
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2051,9 +2042,9 @@ public class ProcessService {
|
|
|
*/
|
|
|
public ProcessInstance findLastRunningProcess(Long definitionCode, Date startTime, Date endTime) {
|
|
|
return processInstanceMapper.queryLastRunningProcess(definitionCode,
|
|
|
- startTime,
|
|
|
- endTime,
|
|
|
- stateArray);
|
|
|
+ startTime,
|
|
|
+ endTime,
|
|
|
+ stateArray);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2259,10 +2250,10 @@ public class ProcessService {
|
|
|
AbstractParameters params = TaskParametersUtils.getParameters(taskDefinition.getTaskType(), taskDefinition.getTaskParams());
|
|
|
if (params != null && CollectionUtils.isNotEmpty(params.getResourceFilesList())) {
|
|
|
resourceIds = params.getResourceFilesList().
|
|
|
- stream()
|
|
|
- .filter(t -> t.getId() != 0)
|
|
|
- .map(ResourceInfo::getId)
|
|
|
- .collect(Collectors.toSet());
|
|
|
+ stream()
|
|
|
+ .filter(t -> t.getId() != 0)
|
|
|
+ .map(ResourceInfo::getId)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
}
|
|
|
if (CollectionUtils.isEmpty(resourceIds)) {
|
|
|
return StringUtils.EMPTY;
|
|
@@ -2282,7 +2273,7 @@ public class ProcessService {
|
|
|
taskDefinitionLog.setResourceIds(getResourceIds(taskDefinitionLog));
|
|
|
if (taskDefinitionLog.getCode() > 0 && taskDefinitionLog.getVersion() > 0) {
|
|
|
TaskDefinitionLog definitionCodeAndVersion = taskDefinitionLogMapper
|
|
|
- .queryByDefinitionCodeAndVersion(taskDefinitionLog.getCode(), taskDefinitionLog.getVersion());
|
|
|
+ .queryByDefinitionCodeAndVersion(taskDefinitionLog.getCode(), taskDefinitionLog.getVersion());
|
|
|
if (definitionCodeAndVersion != null) {
|
|
|
if (!taskDefinitionLog.equals(definitionCodeAndVersion)) {
|
|
|
taskDefinitionLog.setUserId(definitionCodeAndVersion.getUserId());
|
|
@@ -2356,7 +2347,7 @@ public class ProcessService {
|
|
|
Map<Long, TaskDefinitionLog> taskDefinitionLogMap = null;
|
|
|
if (CollectionUtils.isNotEmpty(taskDefinitionLogs)) {
|
|
|
taskDefinitionLogMap = taskDefinitionLogs.stream()
|
|
|
- .collect(Collectors.toMap(TaskDefinition::getCode, taskDefinitionLog -> taskDefinitionLog));
|
|
|
+ .collect(Collectors.toMap(TaskDefinition::getCode, taskDefinitionLog -> taskDefinitionLog));
|
|
|
}
|
|
|
Date now = new Date();
|
|
|
for (ProcessTaskRelationLog processTaskRelationLog : taskRelationList) {
|
|
@@ -2394,9 +2385,9 @@ public class ProcessService {
|
|
|
List<ProcessTaskRelation> processTaskRelationList = processTaskRelationMapper.queryByTaskCode(taskCode);
|
|
|
if (!processTaskRelationList.isEmpty()) {
|
|
|
Set<Long> processDefinitionCodes = processTaskRelationList
|
|
|
- .stream()
|
|
|
- .map(ProcessTaskRelation::getProcessDefinitionCode)
|
|
|
- .collect(Collectors.toSet());
|
|
|
+ .stream()
|
|
|
+ .map(ProcessTaskRelation::getProcessDefinitionCode)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
List<ProcessDefinition> processDefinitionList = processDefineMapper.queryByCodes(processDefinitionCodes);
|
|
|
|
|
|
for (ProcessDefinition processDefinition : processDefinitionList) {
|
|
@@ -2429,8 +2420,8 @@ public class ProcessService {
|
|
|
List<ProcessTaskRelation> processTaskRelations = processTaskRelationMapper.queryByProcessCode(processDefinition.getProjectCode(), processDefinition.getCode());
|
|
|
List<TaskDefinitionLog> taskDefinitionLogList = genTaskDefineList(processTaskRelations);
|
|
|
List<TaskDefinition> taskDefinitions = taskDefinitionLogList.stream()
|
|
|
- .map(taskDefinitionLog -> JSONUtils.parseObject(JSONUtils.toJsonString(taskDefinitionLog), TaskDefinition.class))
|
|
|
- .collect(Collectors.toList());
|
|
|
+ .map(taskDefinitionLog -> JSONUtils.parseObject(JSONUtils.toJsonString(taskDefinitionLog), TaskDefinition.class))
|
|
|
+ .collect(Collectors.toList());
|
|
|
return new DagData(processDefinition, processTaskRelations, taskDefinitions);
|
|
|
}
|
|
|
|
|
@@ -2493,7 +2484,7 @@ public class ProcessService {
|
|
|
taskDefinitionLogs = genTaskDefineList(taskRelationList);
|
|
|
}
|
|
|
Map<Long, TaskDefinitionLog> taskDefinitionLogMap = taskDefinitionLogs.stream()
|
|
|
- .collect(Collectors.toMap(TaskDefinitionLog::getCode, taskDefinitionLog -> taskDefinitionLog));
|
|
|
+ .collect(Collectors.toMap(TaskDefinitionLog::getCode, taskDefinitionLog -> taskDefinitionLog));
|
|
|
List<TaskNode> taskNodeList = new ArrayList<>();
|
|
|
for (Entry<Long, List<Long>> code : taskCodeMap.entrySet()) {
|
|
|
TaskDefinitionLog taskDefinitionLog = taskDefinitionLogMap.get(code.getKey());
|
|
@@ -2518,8 +2509,8 @@ public class ProcessService {
|
|
|
taskNode.setWorkerGroup(taskDefinitionLog.getWorkerGroup());
|
|
|
taskNode.setEnvironmentCode(taskDefinitionLog.getEnvironmentCode());
|
|
|
taskNode.setTimeout(JSONUtils.toJsonString(new TaskTimeoutParameter(taskDefinitionLog.getTimeoutFlag() == TimeoutFlag.OPEN,
|
|
|
- taskDefinitionLog.getTimeoutNotifyStrategy(),
|
|
|
- taskDefinitionLog.getTimeout())));
|
|
|
+ taskDefinitionLog.getTimeoutNotifyStrategy(),
|
|
|
+ taskDefinitionLog.getTimeout())));
|
|
|
taskNode.setDelayTime(taskDefinitionLog.getDelayTime());
|
|
|
taskNode.setPreTasks(JSONUtils.toJsonString(code.getValue().stream().map(taskDefinitionLogMap::get).map(TaskDefinition::getCode).collect(Collectors.toList())));
|
|
|
taskNodeList.add(taskNode);
|
|
@@ -2545,6 +2536,13 @@ public class ProcessService {
|
|
|
}
|
|
|
|
|
|
public ProcessInstance loadNextProcess4Serial(long code, int state) {
|
|
|
- return this.processInstanceMapper.loadNextProcess4Serial(code,state);
|
|
|
+ return this.processInstanceMapper.loadNextProcess4Serial(code, state);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void deleteCommandWithCheck(int commandId) {
|
|
|
+ int delete = this.commandMapper.deleteById(commandId);
|
|
|
+ if (delete != 1) {
|
|
|
+ throw new ServiceException("delete command fail, id:" + commandId);
|
|
|
+ }
|
|
|
}
|
|
|
}
|