add 添加任务,流程实例常用查询接口
This commit is contained in:
parent
bce27cedc9
commit
ed7bcec1a3
@ -23,7 +23,7 @@ public interface WorkflowService {
|
||||
*
|
||||
* @param taskId 任务id
|
||||
*/
|
||||
String getBusinessStatusByTaskId(String taskId);
|
||||
String getBusinessStatusByTaskId(Long taskId);
|
||||
|
||||
/**
|
||||
* 获取当前流程状态
|
||||
@ -33,38 +33,12 @@ public interface WorkflowService {
|
||||
String getBusinessStatus(String businessKey);
|
||||
|
||||
/**
|
||||
* 设置流程变量(全局变量)
|
||||
* 设置流程变量
|
||||
*
|
||||
* @param taskId 任务id
|
||||
* @param variableName 变量名称
|
||||
* @param value 变量值
|
||||
* @param instanceId 流程实例id
|
||||
* @param variable 流程变量
|
||||
*/
|
||||
void setVariable(String taskId, String variableName, Object value);
|
||||
|
||||
/**
|
||||
* 设置流程变量(全局变量)
|
||||
*
|
||||
* @param taskId 任务id
|
||||
* @param variables 流程变量
|
||||
*/
|
||||
void setVariables(String taskId, Map<String, Object> variables);
|
||||
|
||||
/**
|
||||
* 设置流程变量(本地变量,非全局变量)
|
||||
*
|
||||
* @param taskId 任务id
|
||||
* @param variableName 变量名称
|
||||
* @param value 变量值
|
||||
*/
|
||||
void setVariableLocal(String taskId, String variableName, Object value);
|
||||
|
||||
/**
|
||||
* 设置流程变量(本地变量,非全局变量)
|
||||
*
|
||||
* @param taskId 任务id
|
||||
* @param variables 流程变量
|
||||
*/
|
||||
void setVariablesLocal(String taskId, Map<String, Object> variables);
|
||||
void setVariable(Long instanceId, Map<String, Object> variable);
|
||||
|
||||
/**
|
||||
* 按照业务id查询流程实例id
|
||||
@ -72,5 +46,5 @@ public interface WorkflowService {
|
||||
* @param businessKey 业务id
|
||||
* @return 结果
|
||||
*/
|
||||
String getInstanceIdByBusinessKey(String businessKey);
|
||||
Long getInstanceIdByBusinessKey(String businessKey);
|
||||
}
|
||||
|
@ -44,6 +44,22 @@ public interface IFlwInstanceService {
|
||||
*/
|
||||
FlowInstance instanceByBusinessId(String businessId);
|
||||
|
||||
/**
|
||||
* 按照实例id查询流程实例
|
||||
*
|
||||
* @param instanceId 实例id
|
||||
* @return 结果
|
||||
*/
|
||||
FlowInstance instanceById(Long instanceId);
|
||||
|
||||
/**
|
||||
* 按照实例id查询流程实例
|
||||
*
|
||||
* @param instanceIds 实例id
|
||||
* @return 结果
|
||||
*/
|
||||
List<FlowInstance> instanceByIdList(List<Long> instanceIds);
|
||||
|
||||
/**
|
||||
* 按照业务id删除流程实例
|
||||
*
|
||||
@ -100,4 +116,12 @@ public interface IFlwInstanceService {
|
||||
* @return 结果
|
||||
*/
|
||||
Map<String, Object> getInstanceVariable(String instanceId);
|
||||
|
||||
/**
|
||||
* 设置流程变量
|
||||
*
|
||||
* @param instanceId 实例id
|
||||
* @param variable 流程变量
|
||||
*/
|
||||
void setVariable(Long instanceId, Map<String, Object> variable);
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package org.dromara.workflow.service;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.warm.flow.core.entity.HisTask;
|
||||
import org.dromara.warm.flow.orm.entity.FlowHisTask;
|
||||
import org.dromara.warm.flow.orm.entity.FlowInstance;
|
||||
import org.dromara.warm.flow.orm.entity.FlowTask;
|
||||
import org.dromara.workflow.domain.bo.*;
|
||||
import org.dromara.workflow.domain.vo.FlowHisTaskVo;
|
||||
@ -129,6 +131,22 @@ public interface IFlwTaskService {
|
||||
*/
|
||||
FlowTask selectByIdList(Long taskId);
|
||||
|
||||
/**
|
||||
* 按照任务id查询任务
|
||||
*
|
||||
* @param taskIdList 任务id
|
||||
* @return 结果
|
||||
*/
|
||||
List<FlowHisTask> selectHisTaskByIdList(List<Long> taskIdList);
|
||||
|
||||
/**
|
||||
* 按照任务id查询任务
|
||||
*
|
||||
* @param taskId 任务id
|
||||
* @return 结果
|
||||
*/
|
||||
FlowHisTask selectHisTaskById(Long taskId);
|
||||
|
||||
/**
|
||||
* 按照实例id查询任务
|
||||
*
|
||||
@ -153,4 +171,20 @@ public interface IFlwTaskService {
|
||||
* @return 结果
|
||||
*/
|
||||
boolean taskOperation(TaskOperationBo bo, String taskOperation);
|
||||
|
||||
/**
|
||||
* 按任务id查询实例
|
||||
*
|
||||
* @param taskId 任务id
|
||||
* @return 结果
|
||||
*/
|
||||
FlowInstance selectByTaskId(Long taskId);
|
||||
|
||||
/**
|
||||
* 按任务id查询实例
|
||||
*
|
||||
* @param taskIdList 任务id
|
||||
* @return 结果
|
||||
*/
|
||||
List<FlowInstance> selectByTaskIdList(List<Long> taskIdList);
|
||||
}
|
||||
|
@ -122,6 +122,26 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
||||
return flowInstanceMapper.selectOne(new LambdaQueryWrapper<FlowInstance>().eq(FlowInstance::getBusinessId, businessId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 按照实例id查询流程实例
|
||||
*
|
||||
* @param instanceId 实例id
|
||||
*/
|
||||
@Override
|
||||
public FlowInstance instanceById(Long instanceId) {
|
||||
return flowInstanceMapper.selectById(instanceId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 按照实例id查询流程实例
|
||||
*
|
||||
* @param instanceIds 实例id
|
||||
*/
|
||||
@Override
|
||||
public List<FlowInstance> instanceByIdList(List<Long> instanceIds) {
|
||||
return flowInstanceMapper.selectByIds(instanceIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 按照业务id删除流程实例
|
||||
*
|
||||
@ -288,4 +308,18 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
||||
map.put("variable", flowInstance.getVariable());
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置流程变量
|
||||
*
|
||||
* @param instanceId 实例id
|
||||
* @param variable 流程变量
|
||||
*/
|
||||
@Override
|
||||
public void setVariable(Long instanceId, Map<String, Object> variable) {
|
||||
Instance instance = insService.getById(instanceId);
|
||||
if (instance != null) {
|
||||
taskService.mergeVariable(instance, variable);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -469,6 +469,30 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService {
|
||||
.eq(FlowTask::getId, taskId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 按照任务id查询任务
|
||||
*
|
||||
* @param taskIdList 任务id
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public List<FlowHisTask> selectHisTaskByIdList(List<Long> taskIdList) {
|
||||
return flowHisTaskMapper.selectList(new LambdaQueryWrapper<>(FlowHisTask.class)
|
||||
.in(FlowHisTask::getId, taskIdList));
|
||||
}
|
||||
|
||||
/**
|
||||
* 按照任务id查询任务
|
||||
*
|
||||
* @param taskId 任务id
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public FlowHisTask selectHisTaskById(Long taskId) {
|
||||
return flowHisTaskMapper.selectOne(new LambdaQueryWrapper<>(FlowHisTask.class)
|
||||
.eq(FlowHisTask::getId, taskId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 按照实例id查询任务
|
||||
*
|
||||
@ -585,4 +609,46 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 按任务id查询实例
|
||||
*
|
||||
* @param taskId 任务id
|
||||
*/
|
||||
@Override
|
||||
public FlowInstance selectByTaskId(Long taskId) {
|
||||
FlowTask flowTask = selectByIdList(taskId);
|
||||
if (flowTask == null) {
|
||||
FlowHisTask flowHisTask = selectHisTaskById(taskId);
|
||||
if (flowHisTask != null) {
|
||||
return iFlwInstanceService.instanceById(flowHisTask.getInstanceId());
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 按任务id查询实例
|
||||
*
|
||||
* @param taskIdList 任务id
|
||||
*/
|
||||
@Override
|
||||
public List<FlowInstance> selectByTaskIdList(List<Long> taskIdList) {
|
||||
if (CollUtil.isEmpty(taskIdList)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
Set<Long> instanceIds = new HashSet<>();
|
||||
List<FlowTask> flowTaskList = selectByIdList(taskIdList);
|
||||
for (FlowTask flowTask : flowTaskList) {
|
||||
instanceIds.add(flowTask.getInstanceId());
|
||||
}
|
||||
List<FlowHisTask> flowHisTaskList = selectHisTaskByIdList(taskIdList);
|
||||
for (FlowHisTask flowHisTask : flowHisTaskList) {
|
||||
instanceIds.add(flowHisTask.getInstanceId());
|
||||
}
|
||||
if (!instanceIds.isEmpty()) {
|
||||
return iFlwInstanceService.instanceByIdList(new ArrayList<>(instanceIds));
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,11 @@
|
||||
package org.dromara.workflow.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.service.WorkflowService;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.workflow.service.IFlwInstanceService;
|
||||
import org.dromara.workflow.service.IFlwTaskService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
@ -17,7 +20,8 @@ import java.util.Map;
|
||||
@Service
|
||||
public class WorkflowServiceImpl implements WorkflowService {
|
||||
|
||||
private final IFlwInstanceService iFlwInstanceService;
|
||||
private final IFlwInstanceService flwInstanceService;
|
||||
private final IFlwTaskService flwTaskService;
|
||||
|
||||
/**
|
||||
* 删除流程实例
|
||||
@ -27,7 +31,7 @@ public class WorkflowServiceImpl implements WorkflowService {
|
||||
*/
|
||||
@Override
|
||||
public boolean deleteInstance(List<Long> businessKeys) {
|
||||
return iFlwInstanceService.deleteByBusinessIds(businessKeys);
|
||||
return flwInstanceService.deleteByBusinessIds(businessKeys);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -36,8 +40,8 @@ public class WorkflowServiceImpl implements WorkflowService {
|
||||
* @param taskId 任务id
|
||||
*/
|
||||
@Override
|
||||
public String getBusinessStatusByTaskId(String taskId) {
|
||||
return "";
|
||||
public String getBusinessStatusByTaskId(Long taskId) {
|
||||
return ObjectUtil.isNotNull(flwTaskService.selectByTaskId(taskId)) ? flwTaskService.selectByTaskId(taskId).getFlowStatus() : StringUtils.EMPTY;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -47,49 +51,18 @@ public class WorkflowServiceImpl implements WorkflowService {
|
||||
*/
|
||||
@Override
|
||||
public String getBusinessStatus(String businessKey) {
|
||||
return "";
|
||||
return ObjectUtil.isNotNull(flwInstanceService.instanceByBusinessId(businessKey)) ? flwInstanceService.instanceByBusinessId(businessKey).getFlowStatus() : StringUtils.EMPTY;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置流程变量(全局变量)
|
||||
* 设置流程变量
|
||||
*
|
||||
* @param taskId 任务id
|
||||
* @param variableName 变量名称
|
||||
* @param value 变量值
|
||||
* @param instanceId 流程实例id
|
||||
* @param variables 流程变量
|
||||
*/
|
||||
@Override
|
||||
public void setVariable(String taskId, String variableName, Object value) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置流程变量(全局变量)
|
||||
*
|
||||
* @param taskId 任务id
|
||||
* @param variables 流程变量
|
||||
*/
|
||||
@Override
|
||||
public void setVariables(String taskId, Map<String, Object> variables) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置流程变量(本地变量,非全局变量)
|
||||
*
|
||||
* @param taskId 任务id
|
||||
* @param variableName 变量名称
|
||||
* @param value 变量值
|
||||
*/
|
||||
@Override
|
||||
public void setVariableLocal(String taskId, String variableName, Object value) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置流程变量(本地变量,非全局变量)
|
||||
*
|
||||
* @param taskId 任务id
|
||||
* @param variables 流程变量
|
||||
*/
|
||||
@Override
|
||||
public void setVariablesLocal(String taskId, Map<String, Object> variables) {
|
||||
public void setVariable(Long instanceId, Map<String, Object> variables) {
|
||||
flwInstanceService.setVariable(instanceId, variables);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -99,7 +72,7 @@ public class WorkflowServiceImpl implements WorkflowService {
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public String getInstanceIdByBusinessKey(String businessKey) {
|
||||
return null;
|
||||
public Long getInstanceIdByBusinessKey(String businessKey) {
|
||||
return ObjectUtil.isNotNull(flwInstanceService.instanceByBusinessId(businessKey)) ? flwInstanceService.instanceByBusinessId(businessKey).getId() : null;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user