Commit 91c0c423c09e40005a3c3070e1b99361b6d7af93

Authored by jason
1 parent e969dbe8

修改 code review

yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/workflow/TaskController.java
1 package cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow; 1 package cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow;
2 2
3 -import cn.hutool.core.io.IoUtil;  
4 import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.*; 3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.*;
5 -import cn.iocoder.yudao.adminserver.modules.bpm.service.workflow.TaskService; 4 +import cn.iocoder.yudao.adminserver.modules.bpm.service.workflow.BpmTaskService;
6 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 5 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
7 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
8 import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; 7 import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
@@ -25,40 +24,40 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -25,40 +24,40 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
25 public class TaskController { 24 public class TaskController {
26 25
27 @Resource 26 @Resource
28 - private TaskService taskService; 27 + private BpmTaskService bpmTaskService;
29 28
30 @GetMapping("/todo/page") 29 @GetMapping("/todo/page")
31 @ApiOperation("获取待办任务分页") 30 @ApiOperation("获取待办任务分页")
32 public CommonResult<PageResult<TodoTaskRespVO>> getTodoTaskPage(@Valid TodoTaskPageReqVO pageVO) { 31 public CommonResult<PageResult<TodoTaskRespVO>> getTodoTaskPage(@Valid TodoTaskPageReqVO pageVO) {
33 - return success(taskService.getTodoTaskPage(pageVO)); 32 + return success(bpmTaskService.getTodoTaskPage(pageVO));
34 } 33 }
35 34
36 @GetMapping("/claim") 35 @GetMapping("/claim")
37 @ApiOperation("签收任务") 36 @ApiOperation("签收任务")
38 public CommonResult<Boolean> claimTask(@RequestParam("id") String taskId) { 37 public CommonResult<Boolean> claimTask(@RequestParam("id") String taskId) {
39 - taskService.claimTask(taskId); 38 + bpmTaskService.claimTask(taskId);
40 return success(true); 39 return success(true);
41 } 40 }
42 41
43 @PostMapping("/task-steps") 42 @PostMapping("/task-steps")
44 public CommonResult<TaskHandleVO> getTaskSteps(@RequestBody TaskQueryReqVO taskQuery) { 43 public CommonResult<TaskHandleVO> getTaskSteps(@RequestBody TaskQueryReqVO taskQuery) {
45 - return success(taskService.getTaskSteps(taskQuery)); 44 + return success(bpmTaskService.getTaskSteps(taskQuery));
46 } 45 }
47 46
48 @PostMapping("/formKey") 47 @PostMapping("/formKey")
49 public CommonResult<TodoTaskRespVO> getTaskFormKey(@RequestBody TaskQueryReqVO taskQuery) { 48 public CommonResult<TodoTaskRespVO> getTaskFormKey(@RequestBody TaskQueryReqVO taskQuery) {
50 - return success(taskService.getTaskFormKey(taskQuery)); 49 + return success(bpmTaskService.getTaskFormKey(taskQuery));
51 } 50 }
52 51
53 @PostMapping("/complete") 52 @PostMapping("/complete")
54 public CommonResult<Boolean> complete(@RequestBody TaskReqVO taskReq) { 53 public CommonResult<Boolean> complete(@RequestBody TaskReqVO taskReq) {
55 - taskService.completeTask(taskReq); 54 + bpmTaskService.completeTask(taskReq);
56 return success(true); 55 return success(true);
57 } 56 }
58 57
59 @GetMapping("/process/history-steps") 58 @GetMapping("/process/history-steps")
60 public CommonResult<List<TaskStepVO>> getHistorySteps(@RequestParam("id") String processInstanceId) { 59 public CommonResult<List<TaskStepVO>> getHistorySteps(@RequestParam("id") String processInstanceId) {
61 - return success(taskService.getHistorySteps(processInstanceId)); 60 + return success(bpmTaskService.getHistorySteps(processInstanceId));
62 } 61 }
63 62
64 // TODO @Li: 项目里,暂时不使用 path 路径参数,监控等麻烦 63 // TODO @Li: 项目里,暂时不使用 path 路径参数,监控等麻烦
@@ -68,7 +67,7 @@ public class TaskController { @@ -68,7 +67,7 @@ public class TaskController {
68 */ 67 */
69 @GetMapping("/process/highlight-img/{id}") 68 @GetMapping("/process/highlight-img/{id}")
70 public void getHighlightImg(@PathVariable("id") String processInstanceId, HttpServletResponse response) throws IOException { 69 public void getHighlightImg(@PathVariable("id") String processInstanceId, HttpServletResponse response) throws IOException {
71 - FileResp fileResp = taskService.getHighlightImg(processInstanceId); 70 + FileResp fileResp = bpmTaskService.getHighlightImg(processInstanceId);
72 ServletUtils.writeAttachment(response, fileResp.getFileName(), fileResp.getFileByte()); 71 ServletUtils.writeAttachment(response, fileResp.getFileName(), fileResp.getFileByte());
73 } 72 }
74 73
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/workflow/TaskConvert.java
@@ -25,6 +25,10 @@ public interface TaskConvert { @@ -25,6 +25,10 @@ public interface TaskConvert {
25 }) 25 })
26 TodoTaskRespVO convert(Task task, ProcessDefinition definition); 26 TodoTaskRespVO convert(Task task, ProcessDefinition definition);
27 27
  28 + @Mappings(value = {
  29 + @Mapping(source = "assignee", target = "status",qualifiedByName = "convertAssigneeToStatus")
  30 + })
  31 + TodoTaskRespVO convert(Task task);
28 32
29 @Named("convertAssigneeToStatus") 33 @Named("convertAssigneeToStatus")
30 default Integer convertAssigneeToStatus(String assignee) { 34 default Integer convertAssigneeToStatus(String assignee) {
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/enums/oa/OAErrorCodeConstants.java renamed to yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/enums/BpmErrorCodeConstants.java
1 -package cn.iocoder.yudao.adminserver.modules.bpm.enums.oa; 1 +package cn.iocoder.yudao.adminserver.modules.bpm.enums;
2 2
3 import cn.iocoder.yudao.framework.common.exception.ErrorCode; 3 import cn.iocoder.yudao.framework.common.exception.ErrorCode;
4 4
5 -// TODO @jason:错误码整理下,和其它模块保持一致。包括前缀  
6 /** 5 /**
7 - * activiti 系统 错误码枚举类 6 + * 工作流 错误码枚举类
8 * 7 *
9 - * 003 activiti  
10 - * 001 oa  
11 - * activiti 系统,使用 1-003-000-000 段 8 + * 工作流系统,使用 1-003-000-000 段
12 */ 9 */
13 -public interface OAErrorCodeConstants { 10 +public interface BpmErrorCodeConstants {
14 11
  12 + // ========== 通用流程处理 模块 1-003-000-000 ==========
  13 + ErrorCode PROCESS_INSTANCE_NOT_EXISTS = new ErrorCode(1003000001, "流程实例不存在");
  14 + ErrorCode HIGHLIGHT_IMG_ERROR = new ErrorCode(1003000002, "获取高亮流程图异常");
  15 +
  16 +
  17 + // ========== OA 流程模块 1-003-001-000 ==========
15 ErrorCode LEAVE_NOT_EXISTS = new ErrorCode(1003001001, "请假申请不存在"); 18 ErrorCode LEAVE_NOT_EXISTS = new ErrorCode(1003001001, "请假申请不存在");
16 ErrorCode PM_POST_NOT_EXISTS = new ErrorCode(1003001002, "项目经理岗位未设置"); 19 ErrorCode PM_POST_NOT_EXISTS = new ErrorCode(1003001002, "项目经理岗位未设置");
17 ErrorCode DEPART_PM_POST_NOT_EXISTS = new ErrorCode(1003001003, "部门的项目经理不存在"); 20 ErrorCode DEPART_PM_POST_NOT_EXISTS = new ErrorCode(1003001003, "部门的项目经理不存在");
18 ErrorCode BM_POST_NOT_EXISTS = new ErrorCode(1003001004, "部门经理岗位未设置"); 21 ErrorCode BM_POST_NOT_EXISTS = new ErrorCode(1003001004, "部门经理岗位未设置");
19 ErrorCode DEPART_BM_POST_NOT_EXISTS = new ErrorCode(1003001005, "部门的部门经理不存在"); 22 ErrorCode DEPART_BM_POST_NOT_EXISTS = new ErrorCode(1003001005, "部门的部门经理不存在");
20 ErrorCode HR_POST_NOT_EXISTS = new ErrorCode(1003001006, "HR岗位未设置"); 23 ErrorCode HR_POST_NOT_EXISTS = new ErrorCode(1003001006, "HR岗位未设置");
21 - ErrorCode DAY_LEAVE_ERROR = new ErrorCode(1003001007, "请假天数必须大于0"); 24 + ErrorCode DAY_LEAVE_ERROR = new ErrorCode(1003001007, "请假天数必须>=1");
  25 +
22 26
23 - ErrorCode PROCESS_INSTANCE_NOT_EXISTS = new ErrorCode(1003001008, "流程实例不存在");  
24 - ErrorCode HIGHLIGHT_IMG_ERROR = new ErrorCode(1003001009, "获取高亮流程图异常");  
25 27
26 } 28 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/oa/impl/OALeaveServiceImpl.java
@@ -28,7 +28,7 @@ import org.springframework.validation.annotation.Validated; @@ -28,7 +28,7 @@ import org.springframework.validation.annotation.Validated;
28 import javax.annotation.Resource; 28 import javax.annotation.Resource;
29 import java.util.*; 29 import java.util.*;
30 30
31 -import static cn.iocoder.yudao.adminserver.modules.bpm.enums.oa.OAErrorCodeConstants.*; 31 +import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.*;
32 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 32 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
33 33
34 /** 34 /**
@@ -164,12 +164,7 @@ public class OALeaveServiceImpl implements OALeaveService { @@ -164,12 +164,7 @@ public class OALeaveServiceImpl implements OALeaveService {
164 throw ServiceExceptionUtil.exception(PM_POST_NOT_EXISTS); 164 throw ServiceExceptionUtil.exception(PM_POST_NOT_EXISTS);
165 } 165 }
166 SysUserDO userDO = sysUserMapper.selectById(id); 166 SysUserDO userDO = sysUserMapper.selectById(id);
167 - Set<Long> postIds = new HashSet<>(8);  
168 - postIds.add( pmPostDO.getId());  
169 - SysUserBaseVO baseVO = new SysUserBaseVO();  
170 - baseVO.setDeptId(userDO.getDeptId())  
171 - .setPostIds(postIds);  
172 - final List<SysUserDO> pmUsers = sysUserMapper.selectListByBaseVO(baseVO); 167 + final List<SysUserDO> pmUsers = sysUserMapper.selectListByDepartIdAndPostId(userDO.getDeptId(), pmPostDO.getId());
173 if (CollUtil.isEmpty(pmUsers)) { 168 if (CollUtil.isEmpty(pmUsers)) {
174 throw ServiceExceptionUtil.exception(DEPART_PM_POST_NOT_EXISTS); 169 throw ServiceExceptionUtil.exception(DEPART_PM_POST_NOT_EXISTS);
175 } 170 }
@@ -179,13 +174,8 @@ public class OALeaveServiceImpl implements OALeaveService { @@ -179,13 +174,8 @@ public class OALeaveServiceImpl implements OALeaveService {
179 if (Objects.isNull(bmPostDO)) { 174 if (Objects.isNull(bmPostDO)) {
180 throw ServiceExceptionUtil.exception(BM_POST_NOT_EXISTS); 175 throw ServiceExceptionUtil.exception(BM_POST_NOT_EXISTS);
181 } 176 }
182 - userDO = sysUserMapper.selectById(id);  
183 - postIds = new HashSet<>(8);  
184 - postIds.add( bmPostDO.getId());  
185 - baseVO = new SysUserBaseVO();  
186 - baseVO.setDeptId(userDO.getDeptId())  
187 - .setPostIds(postIds);  
188 - final List<SysUserDO> bmUsers = sysUserMapper.selectListByBaseVO(baseVO); 177 +
  178 + final List<SysUserDO> bmUsers = sysUserMapper.selectListByDepartIdAndPostId(userDO.getDeptId(), bmPostDO.getId());
189 if (CollUtil.isEmpty(bmUsers)) { 179 if (CollUtil.isEmpty(bmUsers)) {
190 throw ServiceExceptionUtil.exception(DEPART_BM_POST_NOT_EXISTS); 180 throw ServiceExceptionUtil.exception(DEPART_BM_POST_NOT_EXISTS);
191 } 181 }
@@ -194,13 +184,7 @@ public class OALeaveServiceImpl implements OALeaveService { @@ -194,13 +184,7 @@ public class OALeaveServiceImpl implements OALeaveService {
194 if (Objects.isNull(hrPostDO)) { 184 if (Objects.isNull(hrPostDO)) {
195 throw ServiceExceptionUtil.exception(HR_POST_NOT_EXISTS); 185 throw ServiceExceptionUtil.exception(HR_POST_NOT_EXISTS);
196 } 186 }
197 - userDO = sysUserMapper.selectById(id);  
198 - postIds = new HashSet<>(8);  
199 - postIds.add( hrPostDO.getId());  
200 - baseVO = new SysUserBaseVO();  
201 - baseVO.setDeptId(userDO.getDeptId())  
202 - .setPostIds(postIds);  
203 - final List<SysUserDO> hrUsers = sysUserMapper.selectListByBaseVO(baseVO); 187 + final List<SysUserDO> hrUsers = sysUserMapper.selectListByDepartIdAndPostId(userDO.getDeptId(), hrPostDO.getId());
204 if (CollUtil.isEmpty(hrUsers)) { 188 if (CollUtil.isEmpty(hrUsers)) {
205 throw ServiceExceptionUtil.exception(DEPART_BM_POST_NOT_EXISTS); 189 throw ServiceExceptionUtil.exception(DEPART_BM_POST_NOT_EXISTS);
206 } 190 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/workflow/TaskService.java renamed to yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/workflow/BpmTaskService.java
@@ -6,11 +6,10 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -6,11 +6,10 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import javax.servlet.http.HttpServletResponse; 6 import javax.servlet.http.HttpServletResponse;
7 import java.util.List; 7 import java.util.List;
8 8
9 -// TODO @jason:前缀  
10 /** 9 /**
11 - * 用户任务服务接口 10 + * 工作流用户任务服务接口
12 */ 11 */
13 -public interface TaskService { 12 +public interface BpmTaskService {
14 13
15 14
16 /** 15 /**
@@ -25,10 +24,11 @@ public interface TaskService { @@ -25,10 +24,11 @@ public interface TaskService {
25 */ 24 */
26 void claimTask(String taskId); 25 void claimTask(String taskId);
27 26
28 - // TODO @jason:可以把实现方法的注释,统一写到接口里 27 +
29 /** 28 /**
30 - * 办理完成用户任务  
31 - * @param taskReq 任务参数, 包含任务的参数,和 评论 29 + * 工作流,完成 userTask, 完成用户任务 一般传入参数 1。是否同意(variables). 2. 评论(comment)
  30 + * variables 变量名 和 评论 由前台传入
  31 + * @param taskReq 任务参数
32 */ 32 */
33 void completeTask(TaskReqVO taskReq); 33 void completeTask(TaskReqVO taskReq);
34 34
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/workflow/impl/TaskServiceImpl.java renamed to yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/workflow/impl/BpmTaskServiceImpl.java
@@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollUtil; @@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.io.IoUtil; 4 import cn.hutool.core.io.IoUtil;
5 import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.*; 5 import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.*;
6 import cn.iocoder.yudao.adminserver.modules.bpm.convert.workflow.TaskConvert; 6 import cn.iocoder.yudao.adminserver.modules.bpm.convert.workflow.TaskConvert;
7 -import cn.iocoder.yudao.adminserver.modules.bpm.service.workflow.TaskService; 7 +import cn.iocoder.yudao.adminserver.modules.bpm.service.workflow.BpmTaskService;
8 import cn.iocoder.yudao.framework.common.pojo.PageResult; 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 9 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
10 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; 10 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
@@ -41,13 +41,13 @@ import java.util.Map; @@ -41,13 +41,13 @@ import java.util.Map;
41 import java.util.Optional; 41 import java.util.Optional;
42 import java.util.stream.Collectors; 42 import java.util.stream.Collectors;
43 43
44 -import static cn.iocoder.yudao.adminserver.modules.bpm.enums.oa.OAErrorCodeConstants.HIGHLIGHT_IMG_ERROR;  
45 -import static cn.iocoder.yudao.adminserver.modules.bpm.enums.oa.OAErrorCodeConstants.PROCESS_INSTANCE_NOT_EXISTS; 44 +import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.HIGHLIGHT_IMG_ERROR;
  45 +import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.PROCESS_INSTANCE_NOT_EXISTS;
46 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 46 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
47 47
48 @Slf4j 48 @Slf4j
49 @Service 49 @Service
50 -public class TaskServiceImpl implements TaskService { 50 +public class BpmTaskServiceImpl implements BpmTaskService {
51 51
52 @Resource 52 @Resource
53 private TaskRuntime taskRuntime; 53 private TaskRuntime taskRuntime;
@@ -76,7 +76,6 @@ public class TaskServiceImpl implements TaskService { @@ -76,7 +76,6 @@ public class TaskServiceImpl implements TaskService {
76 List<Task> tasks = pageTasks.getContent(); 76 List<Task> tasks = pageTasks.getContent();
77 final List<TodoTaskRespVO> respVOList = tasks.stream().map(task -> { 77 final List<TodoTaskRespVO> respVOList = tasks.stream().map(task -> {
78 ProcessDefinition definition = repositoryService.getProcessDefinition(task.getProcessDefinitionId()); 78 ProcessDefinition definition = repositoryService.getProcessDefinition(task.getProcessDefinitionId());
79 - definition.getId();  
80 return TaskConvert.INSTANCE.convert(task, definition); 79 return TaskConvert.INSTANCE.convert(task, definition);
81 }).collect(Collectors.toList()); 80 }).collect(Collectors.toList());
82 return new PageResult<>(respVOList, (long)totalItems); 81 return new PageResult<>(respVOList, (long)totalItems);
@@ -92,11 +91,7 @@ public class TaskServiceImpl implements TaskService { @@ -92,11 +91,7 @@ public class TaskServiceImpl implements TaskService {
92 } 91 }
93 92
94 93
95 - /**  
96 - * 工作流,完成 userTask, 完成用户任务 一般传入参数 1。是否同意(variables). 2. 评论(comment)  
97 - * variables 变量名 和 评论 由前台传入  
98 - * @param taskReq 任务参数  
99 - */ 94 +
100 @Override 95 @Override
101 @Transactional 96 @Transactional
102 public void completeTask(TaskReqVO taskReq) { 97 public void completeTask(TaskReqVO taskReq) {
@@ -166,13 +161,7 @@ public class TaskServiceImpl implements TaskService { @@ -166,13 +161,7 @@ public class TaskServiceImpl implements TaskService {
166 @Override 161 @Override
167 public TodoTaskRespVO getTaskFormKey(TaskQueryReqVO taskQuery) { 162 public TodoTaskRespVO getTaskFormKey(TaskQueryReqVO taskQuery) {
168 final Task task = taskRuntime.task(taskQuery.getTaskId()); 163 final Task task = taskRuntime.task(taskQuery.getTaskId());
169 - // 转换结果 TODO @jason:放到 convert 类里  
170 - TodoTaskRespVO respVO = new TodoTaskRespVO();  
171 - respVO.setFormKey(task.getFormKey());  
172 - respVO.setBusinessKey(task.getBusinessKey());  
173 - respVO.setId(task.getId());  
174 - respVO.setProcessInstanceId(task.getProcessInstanceId());  
175 - return respVO; 164 + return TaskConvert.INSTANCE.convert(task);
176 } 165 }
177 166
178 @Override 167 @Override
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/user/SysUserMapper.java
@@ -15,6 +15,7 @@ import org.apache.logging.log4j.util.Strings; @@ -15,6 +15,7 @@ import org.apache.logging.log4j.util.Strings;
15 import java.util.Collection; 15 import java.util.Collection;
16 import java.util.List; 16 import java.util.List;
17 import java.util.Optional; 17 import java.util.Optional;
  18 +import java.util.Set;
18 19
19 @Mapper 20 @Mapper
20 public interface SysUserMapper extends BaseMapperX<SysUserDO> { 21 public interface SysUserMapper extends BaseMapperX<SysUserDO> {
@@ -56,13 +57,12 @@ public interface SysUserMapper extends BaseMapperX&lt;SysUserDO&gt; { @@ -56,13 +57,12 @@ public interface SysUserMapper extends BaseMapperX&lt;SysUserDO&gt; {
56 return selectList(new QueryWrapperX<SysUserDO>().like("username", username)); 57 return selectList(new QueryWrapperX<SysUserDO>().like("username", username));
57 } 58 }
58 59
59 - // TODO jason:变量平铺比较好  
60 - default List<SysUserDO> selectListByBaseVO(SysUserBaseVO reqVO) {  
61 - return selectList(new QueryWrapperX<SysUserDO>().likeIfPresent("username", reqVO.getUsername())  
62 - .likeIfPresent("nickname", reqVO.getNickname()) 60 +
  61 + default List<SysUserDO> selectListByDepartIdAndPostId(Long departId, Long postId) {
  62 + return selectList(new QueryWrapperX<SysUserDO>()
63 .eq("status", CommonStatusEnum.ENABLE.getStatus()) 63 .eq("status", CommonStatusEnum.ENABLE.getStatus())
64 - .eq("dept_id", reqVO.getDeptId())  
65 - .likeIfPresent("post_ids", Optional.ofNullable(reqVO.getPostIds()).map(t -> Strings.join(t, ',')).orElse(""))); 64 + .eq("dept_id", departId)
  65 + .likeIfPresent("post_ids", Optional.ofNullable(postId).map(t -> String.valueOf(postId)).orElse("")));
66 } 66 }
67 67
68 } 68 }
yudao-admin-server/src/main/resources/application.yaml
@@ -73,5 +73,6 @@ yudao: @@ -73,5 +73,6 @@ yudao:
73 constants-class-list: 73 constants-class-list:
74 - cn.iocoder.yudao.adminserver.modules.infra.enums.InfErrorCodeConstants 74 - cn.iocoder.yudao.adminserver.modules.infra.enums.InfErrorCodeConstants
75 - cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants 75 - cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants
  76 + - cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants
76 77
77 debug: false 78 debug: false