update 修改我的已办过滤抄送数据,添加已审批过得节点查询接口
This commit is contained in:
+11
-1
@@ -17,13 +17,13 @@ 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;
|
||||
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;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 任务管理 控制层
|
||||
@@ -257,4 +257,14 @@ public class ActTaskController extends BaseController {
|
||||
public R<List<VariableVo>> getProcessInstVariable(@PathVariable String taskId) {
|
||||
return R.ok(actTaskService.getInstanceVariable(taskId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取可驳回得任务节点
|
||||
*
|
||||
* @param processInstanceId 流程实例id
|
||||
*/
|
||||
@GetMapping("/getTaskNodeList/{processInstanceId}")
|
||||
public R<Set<TaskVo>> getNodeList(@PathVariable String processInstanceId) {
|
||||
return R.ok(actTaskService.getTaskNodeList(processInstanceId));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,6 +81,11 @@ public class TaskVo implements Serializable {
|
||||
*/
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 已办任务-创建时间
|
||||
*/
|
||||
private Date startTime;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
|
||||
+9
@@ -27,6 +27,15 @@ public interface ActTaskMapper extends BaseMapperPlus<TaskVo, TaskVo> {
|
||||
*/
|
||||
Page<TaskVo> getTaskWaitByPage(@Param("page") Page<TaskVo> page, @Param(Constants.WRAPPER) Wrapper<TaskVo> queryWrapper);
|
||||
|
||||
/**
|
||||
* 获取已办
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 条件
|
||||
* @return 结果
|
||||
*/
|
||||
Page<TaskVo> getTaskFinishByPage(@Param("page") Page<TaskVo> page, @Param(Constants.WRAPPER) Wrapper<TaskVo> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询当前用户的抄送
|
||||
*
|
||||
|
||||
+9
@@ -8,6 +8,7 @@ import org.dromara.workflow.domain.vo.VariableVo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 任务 服务层
|
||||
@@ -142,4 +143,12 @@ public interface IActTaskService {
|
||||
* @return 结果
|
||||
*/
|
||||
List<VariableVo> getInstanceVariable(String taskId);
|
||||
|
||||
/**
|
||||
* 获取可驳回得任务节点
|
||||
*
|
||||
* @param processInstanceId 流程实例id
|
||||
* @return 结果
|
||||
*/
|
||||
Set<TaskVo> getTaskNodeList(String processInstanceId);
|
||||
}
|
||||
|
||||
+31
-32
@@ -336,39 +336,18 @@ public class ActTaskServiceImpl implements IActTaskService {
|
||||
@Override
|
||||
public TableDataInfo<TaskVo> getPageByTaskFinish(TaskBo taskBo, PageQuery pageQuery) {
|
||||
String userId = String.valueOf(LoginHelper.getUserId());
|
||||
HistoricTaskInstanceQuery query = QueryUtils.hisTaskInstanceQuery();
|
||||
query.taskAssignee(userId).finished().orderByHistoricTaskInstanceStartTime().desc();
|
||||
if (StringUtils.isNotBlank(taskBo.getName())) {
|
||||
query.taskNameLike("%" + taskBo.getName() + "%");
|
||||
QueryWrapper<TaskVo> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.like(StringUtils.isNotBlank(taskBo.getName()), "t.name_", taskBo.getName());
|
||||
queryWrapper.like(StringUtils.isNotBlank(taskBo.getProcessDefinitionName()), "t.processDefinitionName", taskBo.getProcessDefinitionName());
|
||||
queryWrapper.eq(StringUtils.isNotBlank(taskBo.getProcessDefinitionKey()), "t.processDefinitionKey", taskBo.getProcessDefinitionKey());
|
||||
queryWrapper.eq("t.assignee_", userId);
|
||||
Page<TaskVo> page = actTaskMapper.getTaskFinishByPage(pageQuery.build(), queryWrapper);
|
||||
|
||||
List<TaskVo> taskList = page.getRecords();
|
||||
for (TaskVo task : taskList) {
|
||||
task.setBusinessStatusName(BusinessStatusEnum.findByStatus(task.getBusinessStatus()));
|
||||
}
|
||||
if (StringUtils.isNotBlank(taskBo.getProcessDefinitionName())) {
|
||||
query.processDefinitionNameLike("%" + taskBo.getProcessDefinitionName() + "%");
|
||||
}
|
||||
if (StringUtils.isNotBlank(taskBo.getProcessDefinitionKey())) {
|
||||
query.processDefinitionKey(taskBo.getProcessDefinitionKey());
|
||||
}
|
||||
List<HistoricTaskInstance> taskInstanceList = query.listPage(pageQuery.getFirstNum(), pageQuery.getPageSize());
|
||||
List<HistoricProcessInstance> historicProcessInstanceList = null;
|
||||
if (CollUtil.isNotEmpty(taskInstanceList)) {
|
||||
Set<String> processInstanceIds = StreamUtils.toSet(taskInstanceList, HistoricTaskInstance::getProcessInstanceId);
|
||||
historicProcessInstanceList = QueryUtils.hisInstanceQuery(processInstanceIds).list();
|
||||
}
|
||||
List<TaskVo> list = new ArrayList<>();
|
||||
for (HistoricTaskInstance task : taskInstanceList) {
|
||||
TaskVo taskVo = BeanUtil.toBean(task, TaskVo.class);
|
||||
if (CollUtil.isNotEmpty(historicProcessInstanceList)) {
|
||||
historicProcessInstanceList.stream().filter(e -> e.getId().equals(task.getProcessInstanceId())).findFirst().ifPresent(e -> {
|
||||
taskVo.setBusinessStatus(e.getBusinessStatus());
|
||||
taskVo.setBusinessStatusName(BusinessStatusEnum.findByStatus(taskVo.getBusinessStatus()));
|
||||
taskVo.setProcessDefinitionKey(e.getProcessDefinitionKey());
|
||||
taskVo.setProcessDefinitionName(e.getProcessDefinitionName());
|
||||
});
|
||||
}
|
||||
taskVo.setAssignee(StringUtils.isNotBlank(task.getAssignee()) ? Long.valueOf(task.getAssignee()) : null);
|
||||
list.add(taskVo);
|
||||
}
|
||||
long count = query.count();
|
||||
return new TableDataInfo<>(list, count);
|
||||
return new TableDataInfo<>(taskList, page.getTotal());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -742,4 +721,24 @@ public class ActTaskServiceImpl implements IActTaskService {
|
||||
}
|
||||
return variableVoList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取可驳回得任务节点
|
||||
*
|
||||
* @param processInstanceId 流程实例id
|
||||
*/
|
||||
@Override
|
||||
public Set<TaskVo> getTaskNodeList(String processInstanceId) {
|
||||
Set<TaskVo> list = new HashSet<>();
|
||||
List<HistoricTaskInstance> historicTaskInstances = QueryUtils.hisTaskInstanceQuery(processInstanceId).orderByHistoricTaskInstanceEndTime().desc().list();
|
||||
for (HistoricTaskInstance historicTaskInstance : historicTaskInstances) {
|
||||
if (historicTaskInstance.getEndTime() != null) {
|
||||
TaskVo taskVo = new TaskVo();
|
||||
taskVo.setName(historicTaskInstance.getName());
|
||||
taskVo.setTaskDefinitionKey(historicTaskInstance.getTaskDefinitionKey());
|
||||
list.add(taskVo);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user