【同步】BOOT 和 CLOUD 的功能
This commit is contained in:
@@ -12,6 +12,7 @@ import cn.iocoder.yudao.framework.common.util.date.DateUtils;
|
|||||||
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
|
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
|
||||||
import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
|
import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
|
||||||
import cn.iocoder.yudao.framework.common.util.object.PageUtils;
|
import cn.iocoder.yudao.framework.common.util.object.PageUtils;
|
||||||
|
import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission;
|
||||||
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
|
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.BpmModelMetaInfoVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.BpmModelMetaInfoVO;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO;
|
||||||
@@ -752,6 +753,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@DataPermission(enable = false) // 关闭数据权限,避免查询不到用户数据。相关案例:https://gitee.com/zhijiantianya/yudao-cloud/issues/ID1UYA
|
||||||
public String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqVO createReqVO) {
|
public String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqVO createReqVO) {
|
||||||
// 获得流程定义
|
// 获得流程定义
|
||||||
ProcessDefinition definition = processDefinitionService
|
ProcessDefinition definition = processDefinitionService
|
||||||
@@ -762,6 +764,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@DataPermission(enable = false) // 关闭数据权限,避免查询不到用户数据。相关案例:https://gitee.com/zhijiantianya/yudao-cloud/issues/ID1UYA
|
||||||
public String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqDTO createReqDTO) {
|
public String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqDTO createReqDTO) {
|
||||||
return FlowableUtils.executeAuthenticatedUserId(userId, () -> {
|
return FlowableUtils.executeAuthenticatedUserId(userId, () -> {
|
||||||
// 获得流程定义
|
// 获得流程定义
|
||||||
@@ -878,6 +881,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@DataPermission(enable = false) // 关闭数据权限,避免查询不到用户数据。相关案例:https://gitee.com/zhijiantianya/yudao-cloud/issues/ID1UYA
|
||||||
public void cancelProcessInstanceByStartUser(Long userId, @Valid BpmProcessInstanceCancelReqVO cancelReqVO) {
|
public void cancelProcessInstanceByStartUser(Long userId, @Valid BpmProcessInstanceCancelReqVO cancelReqVO) {
|
||||||
// 1.1 校验流程实例存在
|
// 1.1 校验流程实例存在
|
||||||
ProcessInstance instance = getProcessInstance(cancelReqVO.getId());
|
ProcessInstance instance = getProcessInstance(cancelReqVO.getId());
|
||||||
@@ -907,6 +911,7 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@DataPermission(enable = false) // 关闭数据权限,避免查询不到用户数据。相关案例:https://gitee.com/zhijiantianya/yudao-cloud/issues/ID1UYA
|
||||||
public void cancelProcessInstanceByAdmin(Long userId, BpmProcessInstanceCancelReqVO cancelReqVO) {
|
public void cancelProcessInstanceByAdmin(Long userId, BpmProcessInstanceCancelReqVO cancelReqVO) {
|
||||||
// 1.1 校验流程实例存在
|
// 1.1 校验流程实例存在
|
||||||
ProcessInstance instance = getProcessInstance(cancelReqVO.getId());
|
ProcessInstance instance = getProcessInstance(cancelReqVO.getId());
|
||||||
|
|||||||
@@ -376,6 +376,11 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
}
|
}
|
||||||
// 2.2 过滤:只有串行可到达的节点,才可以退回。类似非串行、子流程无法退回
|
// 2.2 过滤:只有串行可到达的节点,才可以退回。类似非串行、子流程无法退回
|
||||||
previousUserList.removeIf(userTask -> !BpmnModelUtils.isSequentialReachable(source, userTask, null));
|
previousUserList.removeIf(userTask -> !BpmnModelUtils.isSequentialReachable(source, userTask, null));
|
||||||
|
|
||||||
|
// 2.3 过滤:只能退回到已经处理过的节点(排除审批未经过的节点)。相关 issue:https://github.com/YunaiV/ruoyi-vue-pro/issues/982
|
||||||
|
List<HistoricTaskInstance> finishedTasks = getFinishedTaskListByProcessInstanceIdWithoutCancel(task.getProcessInstanceId());
|
||||||
|
Set<String> finishedTaskDefinitionKeys = convertSet(finishedTasks, HistoricTaskInstance::getTaskDefinitionKey);
|
||||||
|
previousUserList.removeIf(userTask -> !finishedTaskDefinitionKeys.contains(userTask.getId()));
|
||||||
return previousUserList;
|
return previousUserList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -544,6 +549,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@DataPermission(enable = false) // 关闭数据权限,避免查询不到用户数据。相关案例:https://gitee.com/zhijiantianya/yudao-cloud/issues/ID1UYA
|
||||||
public void approveTask(Long userId, @Valid BpmTaskApproveReqVO reqVO) {
|
public void approveTask(Long userId, @Valid BpmTaskApproveReqVO reqVO) {
|
||||||
// 1.1 校验任务存在
|
// 1.1 校验任务存在
|
||||||
Task task = validateTask(userId, reqVO.getId());
|
Task task = validateTask(userId, reqVO.getId());
|
||||||
@@ -788,6 +794,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@DataPermission(enable = false) // 关闭数据权限,避免查询不到用户数据。相关案例:https://gitee.com/zhijiantianya/yudao-cloud/issues/ID1UYA
|
||||||
public void rejectTask(Long userId, @Valid BpmTaskRejectReqVO reqVO) {
|
public void rejectTask(Long userId, @Valid BpmTaskRejectReqVO reqVO) {
|
||||||
// 1.1 校验任务存在
|
// 1.1 校验任务存在
|
||||||
Task task = validateTask(userId, reqVO.getId());
|
Task task = validateTask(userId, reqVO.getId());
|
||||||
@@ -855,6 +862,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@DataPermission(enable = false) // 关闭数据权限,避免查询不到用户数据。相关案例:https://gitee.com/zhijiantianya/yudao-cloud/issues/ID1UYA
|
||||||
public void returnTask(Long userId, BpmTaskReturnReqVO reqVO) {
|
public void returnTask(Long userId, BpmTaskReturnReqVO reqVO) {
|
||||||
// 1.1 当前任务 task
|
// 1.1 当前任务 task
|
||||||
Task task = validateTask(userId, reqVO.getId());
|
Task task = validateTask(userId, reqVO.getId());
|
||||||
@@ -983,6 +991,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@DataPermission(enable = false) // 关闭数据权限,避免查询不到用户数据。相关案例:https://gitee.com/zhijiantianya/yudao-cloud/issues/ID1UYA
|
||||||
public void delegateTask(Long userId, BpmTaskDelegateReqVO reqVO) {
|
public void delegateTask(Long userId, BpmTaskDelegateReqVO reqVO) {
|
||||||
String taskId = reqVO.getId();
|
String taskId = reqVO.getId();
|
||||||
// 1.1 校验任务
|
// 1.1 校验任务
|
||||||
@@ -1012,6 +1021,8 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@DataPermission(enable = false) // 关闭数据权限,避免查询不到用户数据。相关案例:https://gitee.com/zhijiantianya/yudao-cloud/issues/ID1UYA
|
||||||
public void transferTask(Long userId, BpmTaskTransferReqVO reqVO) {
|
public void transferTask(Long userId, BpmTaskTransferReqVO reqVO) {
|
||||||
String taskId = reqVO.getId();
|
String taskId = reqVO.getId();
|
||||||
// 1.1 校验任务
|
// 1.1 校验任务
|
||||||
@@ -1042,6 +1053,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@DataPermission(enable = false) // 关闭数据权限,避免查询不到用户数据。相关案例:https://gitee.com/zhijiantianya/yudao-cloud/issues/ID1UYA
|
||||||
public void moveTaskToEnd(String processInstanceId, String reason) {
|
public void moveTaskToEnd(String processInstanceId, String reason) {
|
||||||
List<Task> taskList = getRunningTaskListByProcessInstanceId(processInstanceId, null, null);
|
List<Task> taskList = getRunningTaskListByProcessInstanceId(processInstanceId, null, null);
|
||||||
if (CollUtil.isEmpty(taskList)) {
|
if (CollUtil.isEmpty(taskList)) {
|
||||||
@@ -1080,6 +1092,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@DataPermission(enable = false) // 关闭数据权限,避免查询不到用户数据。相关案例:https://gitee.com/zhijiantianya/yudao-cloud/issues/ID1UYA
|
||||||
public void createSignTask(Long userId, BpmTaskSignCreateReqVO reqVO) {
|
public void createSignTask(Long userId, BpmTaskSignCreateReqVO reqVO) {
|
||||||
// 1. 获取和校验任务
|
// 1. 获取和校验任务
|
||||||
TaskEntityImpl taskEntity = validateTaskCanCreateSign(userId, reqVO);
|
TaskEntityImpl taskEntity = validateTaskCanCreateSign(userId, reqVO);
|
||||||
@@ -1196,6 +1209,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@DataPermission(enable = false) // 关闭数据权限,避免查询不到用户数据。相关案例:https://gitee.com/zhijiantianya/yudao-cloud/issues/ID1UYA
|
||||||
@SuppressWarnings("DataFlowIssue")
|
@SuppressWarnings("DataFlowIssue")
|
||||||
public void deleteSignTask(Long userId, BpmTaskSignDeleteReqVO reqVO) {
|
public void deleteSignTask(Long userId, BpmTaskSignDeleteReqVO reqVO) {
|
||||||
// 1.1 校验 task 可以被减签
|
// 1.1 校验 task 可以被减签
|
||||||
@@ -1235,6 +1249,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@DataPermission(enable = false) // 关闭数据权限,避免查询不到用户数据。相关案例:https://gitee.com/zhijiantianya/yudao-cloud/issues/ID1UYA
|
||||||
public void withdrawTask(Long userId, String taskId) {
|
public void withdrawTask(Long userId, String taskId) {
|
||||||
// 1.1 查询本人已办任务
|
// 1.1 查询本人已办任务
|
||||||
HistoricTaskInstance taskInstance = historyService.createHistoricTaskInstanceQuery()
|
HistoricTaskInstance taskInstance = historyService.createHistoricTaskInstanceQuery()
|
||||||
|
|||||||
Reference in New Issue
Block a user