update 调整任务委托,转办,优化部分代码等
This commit is contained in:
parent
ee1d31405e
commit
b60e3fba27
@ -15,7 +15,6 @@ import org.dromara.common.core.enums.UserType;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import static org.dromara.common.core.enums.TaskAssigneeEnum.USER;
|
||||
|
||||
/**
|
||||
* 登录鉴权助手
|
||||
|
@ -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<Void> taskOperation(@Validated @RequestBody TaskOperationBo bo, @PathVariable String taskOperation) {
|
||||
return toAjax(flwTaskService.taskOperation(bo, taskOperation));
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
/**
|
||||
* 获取委派或转办的用户标识符列表
|
||||
* <p>
|
||||
* 该方法将用户的代码(由 `USER.getCode()` 获取)与当前用户的 ID(`userId`)进行拼接,返回一个包含拼接结果的单一元素列表
|
||||
*
|
||||
* @return 返回一个包含用户标识符的单一元素列表
|
||||
*/
|
||||
public List<String> getUserIdentifiers() {
|
||||
return Optional.ofNullable(userId)
|
||||
.map(id -> Collections.singletonList(USER.getCode() + id))
|
||||
.orElse(Collections.emptyList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取加签或减签的用户标识符列表
|
||||
* <p>
|
||||
* 该方法将用户代码(由 `USER.getCode()` 获取)与 `userIds` 列表中的每个用户ID拼接
|
||||
* 返回一个新的列表,每个元素都是用户代码与用户ID的拼接结果
|
||||
*
|
||||
* @return 返回一个包含所有用户标识符的列表
|
||||
*/
|
||||
public List<String> getAllUserIdentifiers() {
|
||||
return Optional.ofNullable(userIds)
|
||||
.filter(ids -> !ids.isEmpty())
|
||||
.map(ids -> StreamUtils.toList(ids, id -> USER.getCode() + id))
|
||||
.orElse(Collections.emptyList());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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()
|
||||
)
|
||||
)
|
||||
|
@ -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());
|
||||
}
|
||||
|
@ -167,7 +167,7 @@ public interface IFlwTaskService {
|
||||
* 任务操作
|
||||
*
|
||||
* @param bo 参数
|
||||
* @param taskOperation 操作类型,区分委派、转办、加签、减签、修改办理人
|
||||
* @param taskOperation 操作类型,委派 delegateTask、转办 transferTask、加签 addSignature、减签 reductionSignature
|
||||
* @return 结果
|
||||
*/
|
||||
boolean taskOperation(TaskOperationBo bo, String taskOperation);
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user