diff --git a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java index 145fc7aa7..e2c92366f 100644 --- a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java +++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java @@ -15,7 +15,6 @@ import org.dromara.common.core.enums.UserType; import java.util.Set; -import static org.dromara.common.core.enums.TaskAssigneeEnum.USER; /** * 登录鉴权助手 diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java index 6aa47fb0b..ad05867cb 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java @@ -158,11 +158,11 @@ public class FlwTaskController extends BaseController { * 任务操作 * * @param bo 参数 - * @param taskOperation 操作类型,区分委派、转办、加签、减签、修改办理人 + * @param taskOperation 操作类型,委派 delegateTask、转办 transferTask、加签 addSignature、减签 reductionSignature */ @Log(title = "任务管理", businessType = BusinessType.UPDATE) @RepeatSubmit - @PostMapping("/{taskOperation}") + @PostMapping("/taskOperation/{taskOperation}") public R taskOperation(@Validated @RequestBody TaskOperationBo bo, @PathVariable String taskOperation) { return toAjax(flwTaskService.taskOperation(bo, taskOperation)); } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TaskOperationBo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TaskOperationBo.java index 1788fdcce..4348e310c 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TaskOperationBo.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TaskOperationBo.java @@ -2,17 +2,13 @@ package org.dromara.workflow.domain.bo; import jakarta.validation.constraints.NotNull; import lombok.Data; -import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; import java.io.Serial; import java.io.Serializable; -import java.util.Collections; import java.util.List; -import java.util.Optional; -import static org.dromara.common.core.enums.TaskAssigneeEnum.USER; /** * 任务操作业务对象,用于描述任务委派、转办、加签等操作的必要参数 @@ -27,7 +23,7 @@ public class TaskOperationBo implements Serializable { private static final long serialVersionUID = 1L; /** - * 委派/转办人的用户ID(必填,准对委派/转办人/修改办理人操作) + * 委派/转办人的用户ID(必填,准对委派/转办人操作) */ @NotNull(message = "委派/转办人id不能为空", groups = {AddGroup.class}) private String userId; @@ -49,32 +45,4 @@ public class TaskOperationBo implements Serializable { */ private String message; - /** - * 获取委派或转办的用户标识符列表 - *

- * 该方法将用户的代码(由 `USER.getCode()` 获取)与当前用户的 ID(`userId`)进行拼接,返回一个包含拼接结果的单一元素列表 - * - * @return 返回一个包含用户标识符的单一元素列表 - */ - public List getUserIdentifiers() { - return Optional.ofNullable(userId) - .map(id -> Collections.singletonList(USER.getCode() + id)) - .orElse(Collections.emptyList()); - } - - /** - * 获取加签或减签的用户标识符列表 - *

- * 该方法将用户代码(由 `USER.getCode()` 获取)与 `userIds` 列表中的每个用户ID拼接 - * 返回一个新的列表,每个元素都是用户代码与用户ID的拼接结果 - * - * @return 返回一个包含所有用户标识符的列表 - */ - public List getAllUserIdentifiers() { - return Optional.ofNullable(userIds) - .filter(ids -> !ids.isEmpty()) - .map(ids -> StreamUtils.toList(ids, id -> USER.getCode() + id)) - .orElse(Collections.emptyList()); - } - } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/WfCopy.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/WfCopy.java index a3f5966f6..560b81435 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/WfCopy.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/vo/WfCopy.java @@ -5,7 +5,6 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; -import static org.dromara.common.core.enums.TaskAssigneeEnum.USER; /** * 抄送 @@ -28,8 +27,4 @@ public class WfCopy implements Serializable { */ private String userName; - public String getUserId() { - return USER.getCode() + userId; - } - } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/WorkflowPermissionHandler.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/WorkflowPermissionHandler.java index 4c8ccd334..d06d22356 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/WorkflowPermissionHandler.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/WorkflowPermissionHandler.java @@ -50,8 +50,7 @@ public class WorkflowPermissionHandler implements PermissionHandler { .map(post -> TaskAssigneeEnum.POST.getCode() + post.getPostId()), // 用户和部门权限 - Stream.of( - TaskAssigneeEnum.USER.getCode() + loginUser.getUserId(), + Stream.of(String.valueOf(loginUser.getUserId()), TaskAssigneeEnum.DEPT.getCode() + loginUser.getDeptId() ) ) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java index 458a95bcc..44e7d9762 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java @@ -7,6 +7,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.event.ProcessEvent; import org.dromara.common.core.enums.BusinessStatusEnum; import org.dromara.common.core.utils.SpringUtils; +import org.dromara.common.core.utils.StringUtils; import org.dromara.warm.flow.core.dto.FlowParams; import org.dromara.warm.flow.core.entity.Definition; import org.dromara.warm.flow.core.entity.Instance; @@ -39,7 +40,7 @@ public class WorkflowGlobalListener implements GlobalListener { Definition definition = listenerVariable.getDefinition(); FlowParams flowParams = listenerVariable.getFlowParams(); //撤销,退回,作废,终止发送事件 - if (BusinessStatusEnum.initialState(flowParams.getFlowStatus())) { + if (flowParams != null && StringUtils.isNotBlank(flowParams.getFlowStatus()) && BusinessStatusEnum.initialState(flowParams.getFlowStatus())) { publishProcessEvent(flowParams.getFlowStatus(), definition.getFlowCode(), instance.getBusinessId()); log.info("流程监听器流程状态:{}", flowParams.getFlowStatus()); } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java index c4f2229a3..d2b80c142 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java @@ -167,7 +167,7 @@ public interface IFlwTaskService { * 任务操作 * * @param bo 参数 - * @param taskOperation 操作类型,区分委派、转办、加签、减签、修改办理人 + * @param taskOperation 操作类型,委派 delegateTask、转办 transferTask、加签 addSignature、减签 reductionSignature * @return 结果 */ boolean taskOperation(TaskOperationBo bo, String taskOperation); diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java index ecf8f222f..779af3775 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java @@ -238,7 +238,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService { .map(wfCopy -> { FlowUser flowUser = new FlowUser(); flowUser.setType(TaskAssigneeType.COPY.getCode()); - flowUser.setProcessedBy(wfCopy.getUserId()); + flowUser.setProcessedBy(String.valueOf(wfCopy.getUserId())); flowUser.setAssociated(taskId); return flowUser; }).collect(Collectors.toList()); @@ -519,7 +519,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService { * 任务操作 * * @param bo 参数 - * @param taskOperation 操作类型,区分委派、转办、加签、减签、修改办理人 + * @param taskOperation 操作类型,委派 delegateTask、转办 transferTask、加签 addSignature、减签 reductionSignature */ @Override @Transactional(rollbackFor = Exception.class) @@ -529,13 +529,13 @@ public class FlwTaskServiceImpl implements IFlwTaskService, AssigneeService { // 根据操作类型构建 FlowParams switch (taskOperation) { - case "delegateTask", "transferTask", "addSignature" -> { + case "delegateTask", "transferTask" -> { ValidatorUtils.validate(bo, AddGroup.class); - flowParams.addHandlers(bo.getUserIdentifiers()); + flowParams.addHandlers(Collections.singletonList(bo.getUserId())); } - case "reductionSignature" -> { + case "reductionSignature", "addSignature" -> { ValidatorUtils.validate(bo, EditGroup.class); - flowParams.reductionHandlers(bo.getAllUserIdentifiers()); + flowParams.reductionHandlers(bo.getUserIds()); } default -> { log.error("Invalid operation type:{} ", taskOperation); diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfTaskAssigneeServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfTaskAssigneeServiceImpl.java index 5c58ad9ff..8bd138f38 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfTaskAssigneeServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfTaskAssigneeServiceImpl.java @@ -39,7 +39,7 @@ import java.util.Optional; @RequiredArgsConstructor @Service public class WfTaskAssigneeServiceImpl implements IWfTaskAssigneeService, HandlerSelectService { - final static String DEFAULT_GROUP_NAME = "默认分组"; + static final String DEFAULT_GROUP_NAME = "默认分组"; private final UserService userService; private final DeptService deptService; private final RoleService roleService; diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java index 8b3d39a89..4d47eeee3 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java @@ -12,7 +12,6 @@ import org.dromara.workflow.service.IWfTaskAssigneeService; import java.util.*; import java.util.stream.Collectors; -import static org.dromara.common.core.enums.TaskAssigneeEnum.USER; /** * 工作流工具 @@ -62,7 +61,7 @@ public class WorkflowUtils { users.forEach(dto -> { FlowUser flowUser = new FlowUser(); flowUser.setType(user.getType()); - flowUser.setProcessedBy(USER.getCode()+dto.getUserId()); + flowUser.setProcessedBy(String.valueOf(dto.getUserId())); flowUser.setAssociated(taskId); list.add(flowUser); });