fix -- 优化流程任务方法,统一响应格式
This commit is contained in:
@@ -1,10 +1,17 @@
|
||||
package com.ruoyi.workflow.service;
|
||||
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.workflow.domain.dto.FlowTaskDto;
|
||||
import com.ruoyi.workflow.domain.vo.FlowTaskVo;
|
||||
import com.ruoyi.workflow.domain.vo.FlowViewerVo;
|
||||
import org.flowable.bpmn.model.UserTask;
|
||||
import org.flowable.task.api.Task;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author XuanXuan
|
||||
@@ -17,7 +24,7 @@ public interface IFlowTaskService {
|
||||
*
|
||||
* @param task 请求实体参数
|
||||
*/
|
||||
R complete(FlowTaskVo task);
|
||||
void complete(FlowTaskVo task);
|
||||
|
||||
/**
|
||||
* 驳回任务
|
||||
@@ -40,7 +47,7 @@ public interface IFlowTaskService {
|
||||
* @param flowTaskVo
|
||||
* @return
|
||||
*/
|
||||
R findReturnTaskList(FlowTaskVo flowTaskVo);
|
||||
List<UserTask> findReturnTaskList(FlowTaskVo flowTaskVo);
|
||||
|
||||
/**
|
||||
* 删除任务
|
||||
@@ -80,45 +87,40 @@ public interface IFlowTaskService {
|
||||
|
||||
/**
|
||||
* 我发起的流程
|
||||
* @param pageNum
|
||||
* @param pageSize
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
R myProcess(Integer pageNum, Integer pageSize);
|
||||
TableDataInfo<FlowTaskDto> myProcess(PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 取消申请
|
||||
* @param flowTaskVo
|
||||
* @return
|
||||
*/
|
||||
R stopProcess(FlowTaskVo flowTaskVo);
|
||||
void stopProcess(FlowTaskVo flowTaskVo);
|
||||
|
||||
/**
|
||||
* 撤回流程
|
||||
* @param flowTaskVo
|
||||
* @return
|
||||
*/
|
||||
R revokeProcess(FlowTaskVo flowTaskVo);
|
||||
void revokeProcess(FlowTaskVo flowTaskVo);
|
||||
|
||||
|
||||
/**
|
||||
* 代办任务列表
|
||||
*
|
||||
* @param pageNum 当前页码
|
||||
* @param pageSize 每页条数
|
||||
* @return
|
||||
*/
|
||||
R todoList(Integer pageNum, Integer pageSize);
|
||||
TableDataInfo<FlowTaskDto> todoList(PageQuery pageQuery);
|
||||
|
||||
|
||||
/**
|
||||
* 已办任务列表
|
||||
*
|
||||
* @param pageNum 当前页码
|
||||
* @param pageSize 每页条数
|
||||
* @return
|
||||
*/
|
||||
R finishedList(Integer pageNum, Integer pageSize);
|
||||
TableDataInfo<FlowTaskDto> finishedList(PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 流程历史流转记录
|
||||
@@ -126,7 +128,7 @@ public interface IFlowTaskService {
|
||||
* @param procInsId 流程实例Id
|
||||
* @return
|
||||
*/
|
||||
R flowRecord(String procInsId, String deployId);
|
||||
Map<String, Object> flowRecord(String procInsId, String deployId);
|
||||
|
||||
/**
|
||||
* 根据任务ID查询挂载的表单信息
|
||||
@@ -148,7 +150,7 @@ public interface IFlowTaskService {
|
||||
* @param procInsId
|
||||
* @return
|
||||
*/
|
||||
R getFlowViewer(String procInsId);
|
||||
FlowViewerVo getFlowViewer(String procInsId);
|
||||
|
||||
/**
|
||||
* 获取流程变量
|
||||
|
||||
@@ -4,9 +4,12 @@ package com.ruoyi.workflow.service.impl;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.domain.entity.SysRole;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
import com.ruoyi.common.utils.JsonUtils;
|
||||
import com.ruoyi.flowable.common.constant.ProcessConstants;
|
||||
@@ -86,10 +89,10 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public R complete(FlowTaskVo taskVo) {
|
||||
public void complete(FlowTaskVo taskVo) {
|
||||
Task task = taskService.createTaskQuery().taskId(taskVo.getTaskId()).singleResult();
|
||||
if (Objects.isNull(task)) {
|
||||
return R.fail("任务不存在");
|
||||
throw new ServiceException("任务不存在");
|
||||
}
|
||||
if (DelegationState.PENDING.equals(task.getDelegationState())) {
|
||||
taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.DELEGATE.getType(), taskVo.getComment());
|
||||
@@ -104,7 +107,6 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
||||
taskService.complete(taskVo.getTaskId());
|
||||
}
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -318,7 +320,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R findReturnTaskList(FlowTaskVo flowTaskVo) {
|
||||
public List<UserTask> findReturnTaskList(FlowTaskVo flowTaskVo) {
|
||||
// 当前任务 task
|
||||
Task task = taskService.createTaskQuery().taskId(flowTaskVo.getTaskId()).singleResult();
|
||||
// 获取流程定义信息
|
||||
@@ -349,7 +351,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
||||
userTaskList.retainAll(road);
|
||||
}
|
||||
}
|
||||
return R.ok(userTaskList);
|
||||
return userTaskList;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -411,19 +413,18 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
||||
/**
|
||||
* 我发起的流程
|
||||
*
|
||||
* @param pageNum
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R myProcess(Integer pageNum, Integer pageSize) {
|
||||
public TableDataInfo<FlowTaskDto> myProcess(PageQuery pageQuery) {
|
||||
Page<FlowTaskDto> page = new Page<>();
|
||||
Long userId = LoginHelper.getUserId();
|
||||
HistoricProcessInstanceQuery historicProcessInstanceQuery = historyService.createHistoricProcessInstanceQuery()
|
||||
.startedBy(userId.toString())
|
||||
.orderByProcessInstanceStartTime()
|
||||
.desc();
|
||||
List<HistoricProcessInstance> historicProcessInstances = historicProcessInstanceQuery.listPage(pageNum - 1, pageSize);
|
||||
List<HistoricProcessInstance> historicProcessInstances = historicProcessInstanceQuery
|
||||
.listPage(pageQuery.getPageNum() - 1, pageQuery.getPageSize());
|
||||
page.setTotal(historicProcessInstanceQuery.count());
|
||||
List<FlowTaskDto> flowList = new ArrayList<>();
|
||||
for (HistoricProcessInstance hisIns : historicProcessInstances) {
|
||||
@@ -461,7 +462,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
||||
flowList.add(flowTask);
|
||||
}
|
||||
page.setRecords(flowList);
|
||||
return R.ok(page);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -471,7 +472,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R stopProcess(FlowTaskVo flowTaskVo) {
|
||||
public void stopProcess(FlowTaskVo flowTaskVo) {
|
||||
List<Task> task = taskService.createTaskQuery().processInstanceId(flowTaskVo.getInstanceId()).list();
|
||||
if (CollectionUtils.isEmpty(task)) {
|
||||
throw new RuntimeException("流程未启动或已执行完成,取消申请失败");
|
||||
@@ -496,8 +497,6 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
||||
endId).changeState();
|
||||
}
|
||||
}
|
||||
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -507,7 +506,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R revokeProcess(FlowTaskVo flowTaskVo) {
|
||||
public void revokeProcess(FlowTaskVo flowTaskVo) {
|
||||
Task task = taskService.createTaskQuery().processInstanceId(flowTaskVo.getInstanceId()).singleResult();
|
||||
if (task == null) {
|
||||
throw new RuntimeException("流程未启动或已执行完成,无法撤回");
|
||||
@@ -553,20 +552,15 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
||||
|
||||
//记录原活动方向
|
||||
List<SequenceFlow> oriSequenceFlows = new ArrayList<>(flowNode.getOutgoingFlows());
|
||||
|
||||
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 代办任务列表
|
||||
*
|
||||
* @param pageNum 当前页码
|
||||
* @param pageSize 每页条数
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R todoList(Integer pageNum, Integer pageSize) {
|
||||
public TableDataInfo<FlowTaskDto> todoList(PageQuery pageQuery) {
|
||||
Page<FlowTaskDto> page = new Page<>();
|
||||
Long userId = LoginHelper.getUserId();
|
||||
TaskQuery taskQuery = taskService.createTaskQuery()
|
||||
@@ -575,7 +569,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
||||
.taskCandidateOrAssigned(userId.toString())
|
||||
.orderByTaskCreateTime().desc();
|
||||
page.setTotal(taskQuery.count());
|
||||
List<Task> taskList = taskQuery.listPage(pageNum - 1, pageSize);
|
||||
List<Task> taskList = taskQuery.listPage(pageQuery.getPageNum() - 1, pageQuery.getPageSize());
|
||||
List<FlowTaskDto> flowList = new ArrayList<>();
|
||||
for (Task task : taskList) {
|
||||
FlowTaskDto flowTask = new FlowTaskDto();
|
||||
@@ -607,19 +601,17 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
||||
}
|
||||
|
||||
page.setRecords(flowList);
|
||||
return R.ok(page);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 已办任务列表
|
||||
*
|
||||
* @param pageNum 当前页码
|
||||
* @param pageSize 每页条数
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R finishedList(Integer pageNum, Integer pageSize) {
|
||||
public TableDataInfo<FlowTaskDto> finishedList(PageQuery pageQuery) {
|
||||
Page<FlowTaskDto> page = new Page<>();
|
||||
Long userId = LoginHelper.getUserId();
|
||||
HistoricTaskInstanceQuery taskInstanceQuery = historyService.createHistoricTaskInstanceQuery()
|
||||
@@ -628,7 +620,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
||||
.taskAssignee(userId.toString())
|
||||
.orderByHistoricTaskInstanceEndTime()
|
||||
.desc();
|
||||
List<HistoricTaskInstance> historicTaskInstanceList = taskInstanceQuery.listPage(pageNum - 1, pageSize);
|
||||
List<HistoricTaskInstance> historicTaskInstanceList = taskInstanceQuery.listPage(pageQuery.getPageNum() - 1, pageQuery.getPageSize());
|
||||
List<FlowTaskDto> hisTaskList = Lists.newArrayList();
|
||||
for (HistoricTaskInstance histTask : historicTaskInstanceList) {
|
||||
FlowTaskDto flowTask = new FlowTaskDto();
|
||||
@@ -667,7 +659,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
||||
// Map<String, Object> result = new HashMap<>();
|
||||
// result.put("result",page);
|
||||
// result.put("finished",true);
|
||||
return R.ok(page);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
|
||||
@@ -682,7 +674,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R flowRecord(String procInsId, String deployId) {
|
||||
public Map<String, Object> flowRecord(String procInsId, String deployId) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
if (StringUtils.isNotBlank(procInsId)) {
|
||||
List<HistoricActivityInstance> list = historyService
|
||||
@@ -748,11 +740,11 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
||||
if (StringUtils.isNotBlank(deployId)) {
|
||||
SysForm sysForm = sysInstanceFormService.selectSysDeployFormByDeployId(deployId);
|
||||
if (Objects.isNull(sysForm)) {
|
||||
return R.fail("请先配置流程表单");
|
||||
throw new ServiceException("请先配置流程表单");
|
||||
}
|
||||
map.put("formData", JsonUtils.parseObject(sysForm.getFormContent(), Map.class));
|
||||
}
|
||||
return R.ok(map);
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -822,7 +814,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R getFlowViewer(String procInsId) {
|
||||
public FlowViewerVo getFlowViewer(String procInsId) {
|
||||
// 构建查询条件
|
||||
HistoricActivityInstanceQuery query = historyService.createHistoricActivityInstanceQuery()
|
||||
.processInstanceId(procInsId);
|
||||
@@ -835,7 +827,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
||||
.stream().distinct().map(HistoricActivityInstance::getActivityId)
|
||||
.collect(Collectors.toList());
|
||||
// 构建视图类
|
||||
return R.ok(new FlowViewerVo(finishedTaskList, unfinishedTaskList));
|
||||
return new FlowViewerVo(finishedTaskList, unfinishedTaskList);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user