update 优化工作流工具冗余代码
This commit is contained in:
parent
fc44fd7790
commit
64f950437e
@ -3,9 +3,10 @@ package org.dromara.workflow.common.enums;
|
|||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务状态枚举
|
* 任务状态枚举
|
||||||
@ -15,10 +16,12 @@ import java.util.Arrays;
|
|||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public enum FormTypeEnum {
|
public enum FormTypeEnum {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自定义表单
|
* 自定义表单
|
||||||
*/
|
*/
|
||||||
STATIC("static", "自定义表单"),
|
STATIC("static", "自定义表单"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 动态表单
|
* 动态表单
|
||||||
*/
|
*/
|
||||||
@ -34,21 +37,18 @@ public enum FormTypeEnum {
|
|||||||
*/
|
*/
|
||||||
private final String desc;
|
private final String desc;
|
||||||
|
|
||||||
|
private static final Map<String, String> TYPE_DESC_MAP = Arrays.stream(values())
|
||||||
|
.collect(Collectors.toConcurrentMap(FormTypeEnum::getType, FormTypeEnum::getDesc));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 表单类型
|
* 表单类型
|
||||||
*
|
*
|
||||||
* @param formType 表单类型
|
* @param formType 表单类型
|
||||||
*/
|
*/
|
||||||
public static String findByType(String formType) {
|
public static String findByType(String formType) {
|
||||||
if (StringUtils.isBlank(formType)) {
|
// 从缓存中直接获取描述
|
||||||
return StrUtil.EMPTY;
|
return TYPE_DESC_MAP.getOrDefault(formType, StrUtil.EMPTY);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Arrays.stream(FormTypeEnum.values())
|
|
||||||
.filter(statusEnum -> statusEnum.getType().equals(formType))
|
|
||||||
.findFirst()
|
|
||||||
.map(FormTypeEnum::getDesc)
|
|
||||||
.orElse(StrUtil.EMPTY);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,8 +3,10 @@ package org.dromara.workflow.common.enums;
|
|||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.function.Function;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 消息类型枚举
|
* 消息类型枚举
|
||||||
@ -14,14 +16,17 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public enum MessageTypeEnum {
|
public enum MessageTypeEnum {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 站内信
|
* 站内信
|
||||||
*/
|
*/
|
||||||
SYSTEM_MESSAGE("1", "站内信"),
|
SYSTEM_MESSAGE("1", "站内信"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 邮箱
|
* 邮箱
|
||||||
*/
|
*/
|
||||||
EMAIL_MESSAGE("2", "邮箱"),
|
EMAIL_MESSAGE("2", "邮箱"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 短信
|
* 短信
|
||||||
*/
|
*/
|
||||||
@ -31,21 +36,18 @@ public enum MessageTypeEnum {
|
|||||||
|
|
||||||
private final String desc;
|
private final String desc;
|
||||||
|
|
||||||
private final static Map<String, MessageTypeEnum> MESSAGE_TYPE_ENUM_MAP = new ConcurrentHashMap<>(MessageTypeEnum.values().length);
|
private static final Map<String, MessageTypeEnum> MESSAGE_TYPE_ENUM_MAP = Arrays.stream(values())
|
||||||
|
.collect(Collectors.toConcurrentMap(MessageTypeEnum::getCode, Function.identity()));
|
||||||
static {
|
|
||||||
for (MessageTypeEnum messageType : MessageTypeEnum.values()) {
|
|
||||||
MESSAGE_TYPE_ENUM_MAP.put(messageType.code, messageType);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据消息类型 code 获取 MessageTypeEnum
|
* 根据消息类型 code 获取 MessageTypeEnum
|
||||||
|
*
|
||||||
* @param code 消息类型code
|
* @param code 消息类型code
|
||||||
* @return MessageTypeEnum
|
* @return MessageTypeEnum
|
||||||
*/
|
*/
|
||||||
public static MessageTypeEnum getByCode(String code) {
|
public static MessageTypeEnum getByCode(String code) {
|
||||||
return MESSAGE_TYPE_ENUM_MAP.get(code);
|
return MESSAGE_TYPE_ENUM_MAP.getOrDefault(code, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,9 +3,10 @@ package org.dromara.workflow.common.enums;
|
|||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务状态枚举
|
* 任务状态枚举
|
||||||
@ -15,50 +16,62 @@ import java.util.Arrays;
|
|||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public enum TaskStatusEnum {
|
public enum TaskStatusEnum {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 撤销
|
* 撤销
|
||||||
*/
|
*/
|
||||||
CANCEL("cancel", "撤销"),
|
CANCEL("cancel", "撤销"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过
|
* 通过
|
||||||
*/
|
*/
|
||||||
PASS("pass", "通过"),
|
PASS("pass", "通过"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 待审核
|
* 待审核
|
||||||
*/
|
*/
|
||||||
WAITING("waiting", "待审核"),
|
WAITING("waiting", "待审核"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 作废
|
* 作废
|
||||||
*/
|
*/
|
||||||
INVALID("invalid", "作废"),
|
INVALID("invalid", "作废"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 退回
|
* 退回
|
||||||
*/
|
*/
|
||||||
BACK("back", "退回"),
|
BACK("back", "退回"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 终止
|
* 终止
|
||||||
*/
|
*/
|
||||||
TERMINATION("termination", "终止"),
|
TERMINATION("termination", "终止"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 转办
|
* 转办
|
||||||
*/
|
*/
|
||||||
TRANSFER("transfer", "转办"),
|
TRANSFER("transfer", "转办"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 委托
|
* 委托
|
||||||
*/
|
*/
|
||||||
PENDING("pending", "委托"),
|
PENDING("pending", "委托"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 抄送
|
* 抄送
|
||||||
*/
|
*/
|
||||||
COPY("copy", "抄送"),
|
COPY("copy", "抄送"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 加签
|
* 加签
|
||||||
*/
|
*/
|
||||||
SIGN("sign", "加签"),
|
SIGN("sign", "加签"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 减签
|
* 减签
|
||||||
*/
|
*/
|
||||||
SIGN_OFF("sign_off", "减签"),
|
SIGN_OFF("sign_off", "减签"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 超时
|
* 超时
|
||||||
*/
|
*/
|
||||||
@ -74,21 +87,18 @@ public enum TaskStatusEnum {
|
|||||||
*/
|
*/
|
||||||
private final String desc;
|
private final String desc;
|
||||||
|
|
||||||
|
private static final Map<String, String> STATUS_DESC_MAP = Arrays.stream(values())
|
||||||
|
.collect(Collectors.toConcurrentMap(TaskStatusEnum::getStatus, TaskStatusEnum::getDesc));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务业务状态
|
* 任务业务状态
|
||||||
*
|
*
|
||||||
* @param status 状态
|
* @param status 状态
|
||||||
*/
|
*/
|
||||||
public static String findByStatus(String status) {
|
public static String findByStatus(String status) {
|
||||||
if (StringUtils.isBlank(status)) {
|
// 从缓存中直接获取描述
|
||||||
return StrUtil.EMPTY;
|
return STATUS_DESC_MAP.getOrDefault(status, StrUtil.EMPTY);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Arrays.stream(TaskStatusEnum.values())
|
|
||||||
.filter(statusEnum -> statusEnum.getStatus().equals(status))
|
|
||||||
.findFirst()
|
|
||||||
.map(TaskStatusEnum::getDesc)
|
|
||||||
.orElse(StrUtil.EMPTY);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ import org.apache.ibatis.annotations.Param;
|
|||||||
* @date 2024-03-02
|
* @date 2024-03-02
|
||||||
*/
|
*/
|
||||||
public interface FlwDefMapper {
|
public interface FlwDefMapper {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 流程实例信息
|
* 流程实例信息
|
||||||
*
|
*
|
||||||
@ -20,7 +21,6 @@ public interface FlwDefMapper {
|
|||||||
* @param queryWrapper 条件
|
* @param queryWrapper 条件
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
|
Page<FlowDefinition> page(@Param("page") Page<FlowDefinition> page, @Param(Constants.WRAPPER) Wrapper<FlowDefinition> queryWrapper);
|
||||||
|
|
||||||
Page<FlowDefinition> page(@Param("page") Page<FlowDefinition> page,
|
|
||||||
@Param(Constants.WRAPPER) Wrapper<FlowDefinition> queryWrapper);
|
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@ import org.dromara.workflow.domain.vo.FlowInstanceVo;
|
|||||||
* @date 2024-03-02
|
* @date 2024-03-02
|
||||||
*/
|
*/
|
||||||
public interface FlwInstanceMapper {
|
public interface FlwInstanceMapper {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 流程实例信息
|
* 流程实例信息
|
||||||
*
|
*
|
||||||
@ -21,7 +22,6 @@ public interface FlwInstanceMapper {
|
|||||||
* @param queryWrapper 条件
|
* @param queryWrapper 条件
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
|
Page<FlowInstanceVo> page(@Param("page") Page<FlowInstanceVo> page, @Param(Constants.WRAPPER) Wrapper<FlowInstanceBo> queryWrapper);
|
||||||
|
|
||||||
Page<FlowInstanceVo> page(@Param("page") Page<FlowInstanceVo> page,
|
|
||||||
@Param(Constants.WRAPPER) Wrapper<FlowInstanceBo> queryWrapper);
|
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@ import org.dromara.workflow.domain.vo.FlowTaskVo;
|
|||||||
* @date 2024-03-02
|
* @date 2024-03-02
|
||||||
*/
|
*/
|
||||||
public interface FlwTaskMapper {
|
public interface FlwTaskMapper {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取待办信息
|
* 获取待办信息
|
||||||
*
|
*
|
||||||
@ -24,8 +25,7 @@ public interface FlwTaskMapper {
|
|||||||
* @param queryWrapper 条件
|
* @param queryWrapper 条件
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
Page<FlowTaskVo> getTaskWaitByPage(@Param("page") Page<FlowTaskVo> page,
|
Page<FlowTaskVo> getTaskWaitByPage(@Param("page") Page<FlowTaskVo> page, @Param(Constants.WRAPPER) Wrapper<FlowTaskBo> queryWrapper);
|
||||||
@Param(Constants.WRAPPER) Wrapper<FlowTaskBo> queryWrapper);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取已办
|
* 获取已办
|
||||||
@ -34,8 +34,7 @@ public interface FlwTaskMapper {
|
|||||||
* @param queryWrapper 条件
|
* @param queryWrapper 条件
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
Page<FlowHisTaskVo> getTaskFinishByPage(@Param("page") Page<FlowTaskVo> page,
|
Page<FlowHisTaskVo> getTaskFinishByPage(@Param("page") Page<FlowTaskVo> page, @Param(Constants.WRAPPER) Wrapper<FlowTaskBo> queryWrapper);
|
||||||
@Param(Constants.WRAPPER) Wrapper<FlowTaskBo> queryWrapper);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询当前用户的抄送
|
* 查询当前用户的抄送
|
||||||
@ -44,6 +43,5 @@ public interface FlwTaskMapper {
|
|||||||
* @param queryWrapper 条件
|
* @param queryWrapper 条件
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
Page<FlowTaskVo> getTaskCopyByPage(@Param("page") Page<FlowTaskVo> page,
|
Page<FlowTaskVo> getTaskCopyByPage(@Param("page") Page<FlowTaskVo> page, @Param(Constants.WRAPPER) QueryWrapper<FlowTaskBo> queryWrapper);
|
||||||
@Param(Constants.WRAPPER) QueryWrapper<FlowTaskBo> queryWrapper);
|
|
||||||
}
|
}
|
||||||
|
@ -45,36 +45,30 @@ public class WorkflowUtils {
|
|||||||
* @return 用户
|
* @return 用户
|
||||||
*/
|
*/
|
||||||
public static List<UserDTO> getHandlerUser(List<User> userList) {
|
public static List<UserDTO> getHandlerUser(List<User> userList) {
|
||||||
List<UserDTO> userDTOList = new ArrayList<>();
|
if (CollUtil.isEmpty(userList)) {
|
||||||
if (CollUtil.isNotEmpty(userList)) {
|
return List.of();
|
||||||
|
}
|
||||||
UserService userService = SpringUtils.getBean(UserService.class);
|
UserService userService = SpringUtils.getBean(UserService.class);
|
||||||
List<Long> userIds = new ArrayList<>();
|
List<Long> userIds = new ArrayList<>();
|
||||||
List<Long> roleIds = new ArrayList<>();
|
List<Long> roleIds = new ArrayList<>();
|
||||||
List<Long> deptIds = new ArrayList<>();
|
List<Long> deptIds = new ArrayList<>();
|
||||||
for (User user : userList) {
|
for (User user : userList) {
|
||||||
if (user.getProcessedBy().startsWith("user:")) {
|
String processedBy = user.getProcessedBy();
|
||||||
userIds.add(Long.valueOf(StringUtils.substringAfter(user.getProcessedBy(), StrUtil.C_COLON)));
|
Long id = Long.valueOf(StringUtils.substringAfter(processedBy, StrUtil.C_COLON));
|
||||||
} else if (user.getProcessedBy().startsWith("role:")) {
|
if (processedBy.startsWith("user:")) {
|
||||||
roleIds.add(Long.valueOf(StringUtils.substringAfter(user.getProcessedBy(), StrUtil.C_COLON)));
|
userIds.add(id);
|
||||||
} else if (user.getProcessedBy().startsWith("dept:")) {
|
} else if (processedBy.startsWith("role:")) {
|
||||||
deptIds.add(Long.valueOf(StringUtils.substringAfter(user.getProcessedBy(), StrUtil.C_COLON)));
|
roleIds.add(id);
|
||||||
|
} else if (processedBy.startsWith("dept:")) {
|
||||||
|
deptIds.add(id);
|
||||||
} else {
|
} else {
|
||||||
userIds.add(Long.valueOf(user.getProcessedBy()));
|
userIds.add(Long.valueOf(processedBy));
|
||||||
}
|
|
||||||
}
|
|
||||||
List<UserDTO> users = userService.selectListByIds(userIds);
|
|
||||||
if (CollUtil.isNotEmpty(users)) {
|
|
||||||
userDTOList.addAll(users);
|
|
||||||
}
|
|
||||||
List<UserDTO> roleUsers = userService.selectUsersByRoleIds(roleIds);
|
|
||||||
if (CollUtil.isNotEmpty(roleUsers)) {
|
|
||||||
userDTOList.addAll(roleUsers);
|
|
||||||
}
|
|
||||||
List<UserDTO> deptUsers = userService.selectUsersByDeptIds(deptIds);
|
|
||||||
if (CollUtil.isNotEmpty(deptUsers)) {
|
|
||||||
userDTOList.addAll(deptUsers);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 合并不同类型用户
|
||||||
|
List<UserDTO> userDTOList = new ArrayList<>(userService.selectListByIds(userIds));
|
||||||
|
userDTOList.addAll(userService.selectUsersByRoleIds(roleIds));
|
||||||
|
userDTOList.addAll(userService.selectUsersByDeptIds(deptIds));
|
||||||
return userDTOList;
|
return userDTOList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,8 +79,10 @@ public class WorkflowUtils {
|
|||||||
* @return 用户
|
* @return 用户
|
||||||
*/
|
*/
|
||||||
public static Set<User> getUser(List<User> userList) {
|
public static Set<User> getUser(List<User> userList) {
|
||||||
|
if (CollUtil.isEmpty(userList)) {
|
||||||
|
return Set.of();
|
||||||
|
}
|
||||||
Set<User> list = new HashSet<>();
|
Set<User> list = new HashSet<>();
|
||||||
if (CollUtil.isNotEmpty(userList)) {
|
|
||||||
UserService userService = SpringUtils.getBean(UserService.class);
|
UserService userService = SpringUtils.getBean(UserService.class);
|
||||||
for (User user : userList) {
|
for (User user : userList) {
|
||||||
// 根据 processedBy 前缀判断处理人类型,分别获取用户列表
|
// 根据 processedBy 前缀判断处理人类型,分别获取用户列表
|
||||||
@ -101,7 +97,6 @@ public class WorkflowUtils {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user