add 添加查询流程变量接口
This commit is contained in:
parent
c9cceb9e2d
commit
b4e1e32d20
@ -80,6 +80,16 @@ public interface FlowConstant {
|
||||
*/
|
||||
String INITIATOR = "initiator";
|
||||
|
||||
/**
|
||||
* 流程实例id
|
||||
*/
|
||||
String PROCESS_INSTANCE_ID = "processInstanceId";
|
||||
|
||||
/**
|
||||
* 业务id
|
||||
*/
|
||||
String BUSINESS_KEY = "businessKey";
|
||||
|
||||
/**
|
||||
* 开启跳过表达式变量
|
||||
*/
|
||||
|
@ -14,6 +14,7 @@ import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.workflow.domain.bo.*;
|
||||
import org.dromara.workflow.domain.vo.TaskVo;
|
||||
import org.dromara.workflow.domain.vo.VariableVo;
|
||||
import org.dromara.workflow.service.IActTaskService;
|
||||
import org.dromara.workflow.utils.QueryUtils;
|
||||
import org.dromara.workflow.utils.WorkflowUtils;
|
||||
@ -21,6 +22,7 @@ import org.flowable.engine.TaskService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@ -245,4 +247,14 @@ public class ActTaskController extends BaseController {
|
||||
public R<Void> updateAssignee(@PathVariable String[] taskIds, @PathVariable String userId) {
|
||||
return toAjax(actTaskService.updateAssignee(taskIds, userId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询流程变量
|
||||
*
|
||||
* @param taskId 任务id
|
||||
*/
|
||||
@GetMapping("/getInstanceVariable/{taskId}")
|
||||
public R<List<VariableVo>> getProcessInstVariable(@PathVariable String taskId) {
|
||||
return R.ok(actTaskService.getInstanceVariable(taskId));
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,9 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.workflow.domain.bo.*;
|
||||
import org.dromara.workflow.domain.vo.TaskVo;
|
||||
import org.dromara.workflow.domain.vo.VariableVo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@ -132,4 +134,12 @@ public interface IActTaskService {
|
||||
* @return 结果
|
||||
*/
|
||||
boolean updateAssignee(String[] taskIds, String userId);
|
||||
|
||||
/**
|
||||
* 查询流程变量
|
||||
*
|
||||
* @param taskId 任务id
|
||||
* @return 结果
|
||||
*/
|
||||
List<VariableVo> getInstanceVariable(String taskId);
|
||||
}
|
||||
|
@ -23,6 +23,7 @@ import org.dromara.workflow.common.enums.TaskStatusEnum;
|
||||
import org.dromara.workflow.domain.bo.*;
|
||||
import org.dromara.workflow.domain.vo.MultiInstanceVo;
|
||||
import org.dromara.workflow.domain.vo.TaskVo;
|
||||
import org.dromara.workflow.domain.vo.VariableVo;
|
||||
import org.dromara.workflow.domain.vo.WfCopy;
|
||||
import org.dromara.workflow.flowable.cmd.*;
|
||||
import org.dromara.workflow.flowable.strategy.FlowEventStrategy;
|
||||
@ -46,6 +47,7 @@ import org.flowable.task.api.TaskQuery;
|
||||
import org.flowable.task.api.history.HistoricTaskInstance;
|
||||
import org.flowable.task.api.history.HistoricTaskInstanceQuery;
|
||||
import org.flowable.task.service.impl.persistence.entity.TaskEntity;
|
||||
import org.flowable.variable.api.persistence.entity.VariableInstance;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@ -53,8 +55,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.dromara.workflow.common.constant.FlowConstant.FLOWABLE_SKIP_EXPRESSION_ENABLED;
|
||||
import static org.dromara.workflow.common.constant.FlowConstant.INITIATOR;
|
||||
import static org.dromara.workflow.common.constant.FlowConstant.*;
|
||||
|
||||
/**
|
||||
* 任务 服务层实现
|
||||
@ -96,7 +97,7 @@ public class ActTaskServiceImpl implements IActTaskService {
|
||||
if (CollUtil.isNotEmpty(startProcessBo.getVariables())) {
|
||||
taskService.setVariables(taskResult.get(0).getId(), startProcessBo.getVariables());
|
||||
}
|
||||
map.put("processInstanceId", taskResult.get(0).getProcessInstanceId());
|
||||
map.put(PROCESS_INSTANCE_ID, taskResult.get(0).getProcessInstanceId());
|
||||
map.put("taskId", taskResult.get(0).getId());
|
||||
return map;
|
||||
}
|
||||
@ -129,7 +130,8 @@ public class ActTaskServiceImpl implements IActTaskService {
|
||||
|
||||
runtimeService.updateBusinessStatus(pi.getProcessInstanceId(), BusinessStatusEnum.DRAFT.getStatus());
|
||||
taskService.setAssignee(taskList.get(0).getId(), LoginHelper.getUserId().toString());
|
||||
taskService.setVariable(taskList.get(0).getId(), "processInstanceId", pi.getProcessInstanceId());
|
||||
taskService.setVariable(taskList.get(0).getId(), PROCESS_INSTANCE_ID, pi.getProcessInstanceId());
|
||||
taskService.setVariable(taskList.get(0).getId(), BUSINESS_KEY, pi.getBusinessKey());
|
||||
map.put("processInstanceId", pi.getProcessInstanceId());
|
||||
map.put("taskId", taskList.get(0).getId());
|
||||
return map;
|
||||
@ -705,4 +707,24 @@ public class ActTaskServiceImpl implements IActTaskService {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询流程变量
|
||||
*
|
||||
* @param taskId 任务id
|
||||
*/
|
||||
@Override
|
||||
public List<VariableVo> getInstanceVariable(String taskId) {
|
||||
List<VariableVo> variableVoList = new ArrayList<>();
|
||||
Map<String, VariableInstance> variableInstances = taskService.getVariableInstances(taskId);
|
||||
if (CollectionUtil.isNotEmpty(variableInstances)) {
|
||||
for (Map.Entry<String, VariableInstance> entry : variableInstances.entrySet()) {
|
||||
VariableVo variableVo = new VariableVo();
|
||||
variableVo.setKey(entry.getKey());
|
||||
variableVo.setValue(entry.getValue().getValue().toString());
|
||||
variableVoList.add(variableVo);
|
||||
}
|
||||
}
|
||||
return variableVoList;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user