feat:审批表单加入表格

This commit is contained in:
dzc committed 2025-02-26 20:37:41 +08:00
1 parent 6488502380
commit 35cc925b4f
12 files changed
+258 -130

No files matched your search

@@ -8,7 +8,9 @@ import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bsd.pjcloud.common.security.util.SecurityUtils;
import com.bsd.pjcloud.flow.task.entity.Process;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.bsd.pjcloud.common.core.util.R;
@@ -30,11 +32,9 @@ import org.flowable.engine.history.HistoricActivityInstance;
import org.flowable.engine.history.HistoricActivityInstanceQuery;
import org.flowable.engine.runtime.Execution;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.Task;
import org.flowable.task.api.TaskQuery;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.time.ZoneId;
import java.time.ZonedDateTime;
@@ -250,6 +250,14 @@ public class EngineFlowController {
}
}
if (CollUtil.isNotEmpty(taskQueryParamDto.getProcessInstanceIds()) && StrUtil.isEmpty(taskQueryParamDto.getProcessName())) {
taskQuery.processInstanceIdIn(taskQueryParamDto.getProcessInstanceIds());
}
if (Objects.nonNull(taskQueryParamDto.getIsActive()) && taskQueryParamDto.getIsActive()) {
taskQuery.active();
}
if (ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime())) {
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime zonedBeforeDateTime = taskQueryParamDto.getTaskTime()[0].atZone(zoneId);
@@ -289,4 +297,30 @@ public class EngineFlowController {
return R.ok(pageResultDto);
}
@GetMapping("/queryAssignTaskOne")
public R<TaskDto> queryAssignTaskOne(@RequestParam String processInstanceId) {
String assign = SecurityUtils.getUser().getId().toString();
TaskQuery taskQuery = taskService.createTaskQuery().taskAssignee(assign).orderByTaskCreateTime().processInstanceId(processInstanceId).active().desc();
long count = taskQuery.count();
if (count != 1) {
log.debug("queryAssignTaskOne查询错误,count!=1,processInstanceId:{}", processInstanceId);
return null;
}
Task task = taskQuery.singleResult();
String taskId = task.getId();
log.debug("queryAssignTaskOne查询错误(taskId) {} processInstanceId={} executrionId={}", task.getName(), processInstanceId, task.getExecutionId());
String taskDefinitionKey = task.getTaskDefinitionKey();
String processDefinitionId = task.getProcessDefinitionId();
String flowId = NodeUtil.getFlowId(processDefinitionId);
TaskDto taskDto = new TaskDto();
taskDto.setFlowId(flowId);
taskDto.setTaskCreateTime(task.getCreateTime());
taskDto.setNodeId(taskDefinitionKey);
taskDto.setProcessInstanceId(processInstanceId);
taskDto.setTaskId(taskId);
taskDto.setAssign(task.getAssignee());
taskDto.setTaskName(task.getName());
return R.ok(taskDto);
}
}
@@ -20,110 +20,133 @@ import java.util.Map;
@FeignClient(contextId = "remoteFlowEngineService", value = ServiceNameConstants.FLOW_ENGINE_SERVER)
public interface RemoteFlowEngineService {
/**
* 查询任务变量
* @param variableQueryParamDto 变量查询参数
* @return 任务变量结果
*/
@PostMapping("/task/queryTaskVariables")
R<Map<String, Object>> queryTaskVariables(@RequestBody VariableQueryParamDto variableQueryParamDto);
/**
* 查询任务变量
*
* @param variableQueryParamDto 变量查询参数
* @return 任务变量结果
*/
@PostMapping("/task/queryTaskVariables")
R<Map<String, Object>> queryTaskVariables(@RequestBody VariableQueryParamDto variableQueryParamDto);
/**
* 查询简单数据
* @param userId 用户ID
* @return 索引页统计数据
*/
@GetMapping("/process-instance/querySimpleData")
R<IndexPageStatistics> querySimpleData(@RequestParam("userId") Long userId);
/**
* 查询简单数据
*
* @param userId 用户ID
* @return 索引页统计数据
*/
@GetMapping("/process-instance/querySimpleData")
R<IndexPageStatistics> querySimpleData(@RequestParam("userId") Long userId);
/**
* 创建流程
* @param map 流程JSON对象
* @return 创建流程结果
*/
@PostMapping("/flow/create")
R<String> createFlow(@RequestBody Map<String, Object> map);
/**
* 创建流程
*
* @param map 流程JSON对象
* @return 创建流程结果
*/
@PostMapping("/flow/create")
R<String> createFlow(@RequestBody Map<String, Object> map);
/**
* 启动流程实例
* @param processInstanceParamDto 流程实例参数
* @return 启动流程结果
*/
@NoToken
@PostMapping("/flow/start")
R<String> startProcess(@RequestBody ProcessInstanceParamDto processInstanceParamDto);
/**
* 启动流程实例
*
* @param processInstanceParamDto 流程实例参数
* @return 启动流程结果
*/
@NoToken
@PostMapping("/flow/start")
R<String> startProcess(@RequestBody ProcessInstanceParamDto processInstanceParamDto);
/**
* 查询待办任务
* @param paramDto 任务查询参数
* @return 待办任务列表
*/
@PostMapping("/flow/queryAssignTask")
R<Page<TaskDto>> queryAssignTask(@RequestBody TaskQueryParamDto paramDto);
/**
* 查询待办任务
*
* @param paramDto 任务查询参数
* @return 待办任务列表
*/
@PostMapping("/flow/queryAssignTask")
R<Page<TaskDto>> queryAssignTask(@RequestBody TaskQueryParamDto paramDto);
/**
* 查询已完成任务
* @param paramDto 任务查询参数
* @return 已完成任务列表
*/
@PostMapping("/flow/queryCompletedTask")
R<Page<TaskDto>> queryCompletedTask(@RequestBody TaskQueryParamDto paramDto);
/**
* 根据processInstanceId和当前登录用户id查询待办任务
*
* @param processInstanceId
* @return
*/
@GetMapping("/flow/queryAssignTaskOne")
R<TaskDto> queryAssignTaskOne(@RequestParam String processInstanceId);
/**
* 完成任务
* @param taskParamDto 任务参数
* @return 完成任务结果
*/
@PostMapping("/task/complete")
R<String> completeTask(@RequestBody TaskParamDto taskParamDto);
/**
* 设置任务负责人
* @param taskParamDto 任务参数
* @return 设置负责人结果
*/
@PostMapping("/task/transferTask")
R<String> transferTask(@RequestBody TaskParamDto taskParamDto);
/**
* 查询已完成任务
*
* @param paramDto 任务查询参数
* @return 已完成任务列表
*/
@PostMapping("/flow/queryCompletedTask")
R<Page<TaskDto>> queryCompletedTask(@RequestBody TaskQueryParamDto paramDto);
/**
* 停止流程实例
* @param taskParamDto 任务参数
* @return 停止流程实例结果
*/
@PostMapping("/flow/stopProcessInstance")
R<String> stopProcessInstance(@RequestBody TaskParamDto taskParamDto);
/**
* 完成任务
*
* @param taskParamDto 任务参数
* @return 完成任务结果
*/
@PostMapping("/task/complete")
R<String> completeTask(@RequestBody TaskParamDto taskParamDto);
/**
* 解决任务
* @param taskParamDto 任务参数
* @return 解决任务结果
*/
@PostMapping("/task/resolveTask")
R<String> resolveTask(@RequestBody TaskParamDto taskParamDto);
/**
* 设置任务负责人
*
* @param taskParamDto 任务参数
* @return 设置负责人结果
*/
@PostMapping("/task/transferTask")
R<String> transferTask(@RequestBody TaskParamDto taskParamDto);
/**
* 退回任务
* @param taskParamDto 任务参数
* @return 退回任务结果
*/
@PostMapping("/task/back")
R<String> back(@RequestBody TaskParamDto taskParamDto);
/**
* 停止流程实例
*
* @param taskParamDto 任务参数
* @return 停止流程实例结果
*/
@PostMapping("/flow/stopProcessInstance")
R<String> stopProcessInstance(@RequestBody TaskParamDto taskParamDto);
/**
* 委派任务
* @param taskParamDto 任务参数
* @return 委派任务结果
*/
@PostMapping("/task/delegateTask")
R<String> delegateTask(@RequestBody TaskParamDto taskParamDto);
/**
* 解决任务
*
* @param taskParamDto 任务参数
* @return 解决任务结果
*/
@PostMapping("/task/resolveTask")
R<String> resolveTask(@RequestBody TaskParamDto taskParamDto);
/**
* 查询任务
* @param taskId 任务ID
* @param userId 用户ID
* @return 任务查询结果
*/
@GetMapping("/task/engine/queryTask")
R<TaskResultDto> queryTask(@RequestParam("taskId") String taskId, @RequestParam("userId") Long userId);
/**
* 退回任务
*
* @param taskParamDto 任务参数
* @return 退回任务结果
*/
@PostMapping("/task/back")
R<String> back(@RequestBody TaskParamDto taskParamDto);
/**
* 委派任务
*
* @param taskParamDto 任务参数
* @return 委派任务结果
*/
@PostMapping("/task/delegateTask")
R<String> delegateTask(@RequestBody TaskParamDto taskParamDto);
/**
* 查询任务
*
* @param taskId 任务ID
* @param userId 用户ID
* @return 任务查询结果
*/
@GetMapping("/task/engine/queryTask")
R<TaskResultDto> queryTask(@RequestParam("taskId") String taskId, @RequestParam("userId") Long userId);
}
@@ -3,6 +3,7 @@ package com.bsd.pjcloud.flow.task.dto;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
/**
* 用户任务查询参数
@@ -40,4 +41,14 @@ public class TaskQueryParamDto {
*/
private Integer status;
/**
* 流程实例ids
*/
private List<String> processInstanceIds;
/**
* 是否只查询激活状态的任务
*/
private Boolean isActive = false;
}
@@ -55,6 +55,12 @@ public class ProcessInstanceController {
return processInstanceService.queryMineTask(queryParamDto);
}
@SneakyThrows
@GetMapping("/queryAssignTaskOne")
public R queryAssignTaskOne(@RequestParam String processInstanceId) {
return processInstanceService.queryAssignTaskOne(processInstanceId);
}
/**
* 查询当前登录用户已办任务
* @param taskQueryParamDto
@@ -66,4 +66,5 @@ public interface IProcessInstanceService {
*/
R detail(String processInstanceId);
R queryAssignTaskOne(String processInstanceId);
}
@@ -443,4 +443,8 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService {
return R.ok(set);
}
@Override
public R queryAssignTaskOne(String processInstanceId) {
return flowEngineService.queryAssignTaskOne(processInstanceId);
}
}