feat(hrm): 添加流程实例任务查询功能
- 在HrmFlowInstanceController中新增getTasksByInstanceId接口 - 在HrmFlowInstanceService及其实现类中添加getTasksByInstanceId方法 - 注入UserService用于获取用户昵称信息 - 查询流程任务时关联查询处理人昵称并返回给前端 - 添加assigneeNickName字段到HrmFlowTaskVo用于显示用户昵称
This commit is contained in:
@@ -9,6 +9,7 @@ import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.hrm.domain.bo.HrmFlowInstanceBo;
|
||||
import com.ruoyi.hrm.domain.bo.HrmFlowStartBo;
|
||||
import com.ruoyi.hrm.domain.vo.HrmFlowInstanceVo;
|
||||
import com.ruoyi.hrm.domain.vo.HrmFlowTaskVo;
|
||||
import com.ruoyi.hrm.service.IHrmFlowInstanceService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -85,4 +86,9 @@ public class HrmFlowInstanceController extends BaseController {
|
||||
public R<Void> deleteRejectedInstance(@PathVariable @NotNull Long instId) {
|
||||
return toAjax(service.deleteRejectedInstance(instId));
|
||||
}
|
||||
|
||||
@GetMapping("/tasks/{instId}")
|
||||
public R<List<HrmFlowTaskVo>> getTasksByInstanceId(@PathVariable @NotNull Long instId) {
|
||||
return R.ok(service.getTasksByInstanceId(instId));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,4 +43,5 @@ public class HrmFlowTaskVo implements Serializable {
|
||||
private Date updateTime;
|
||||
|
||||
private String assigneeNickName;
|
||||
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.hrm.domain.bo.HrmFlowInstanceBo;
|
||||
import com.ruoyi.hrm.domain.vo.HrmFlowInstanceVo;
|
||||
import com.ruoyi.hrm.domain.vo.HrmFlowTaskVo;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Collection;
|
||||
@@ -41,4 +42,6 @@ public interface IHrmFlowInstanceService {
|
||||
Boolean revokeInstance(Long instId);
|
||||
|
||||
Boolean deleteRejectedInstance(@NotNull Long instId);
|
||||
|
||||
List<HrmFlowTaskVo> getTasksByInstanceId(@NotNull Long instId);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.service.UserService;
|
||||
import com.ruoyi.hrm.domain.HrmFlowInstance;
|
||||
import com.ruoyi.hrm.domain.HrmFlowNode;
|
||||
import com.ruoyi.hrm.domain.HrmFlowTask;
|
||||
@@ -13,6 +14,7 @@ import com.ruoyi.hrm.domain.HrmFormData;
|
||||
import com.ruoyi.hrm.domain.bo.HrmFlowStartBo;
|
||||
import com.ruoyi.hrm.domain.bo.HrmFlowInstanceBo;
|
||||
import com.ruoyi.hrm.domain.vo.HrmFlowInstanceVo;
|
||||
import com.ruoyi.hrm.domain.vo.HrmFlowTaskVo;
|
||||
import com.ruoyi.hrm.mapper.HrmFlowInstanceMapper;
|
||||
import com.ruoyi.hrm.mapper.HrmFlowNodeMapper;
|
||||
import com.ruoyi.hrm.mapper.HrmFlowTaskMapper;
|
||||
@@ -23,7 +25,9 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
@@ -34,6 +38,7 @@ public class HrmFlowInstanceServiceImpl implements IHrmFlowInstanceService {
|
||||
private final HrmFlowTaskMapper taskMapper;
|
||||
private final HrmFormDataMapper formDataMapper;
|
||||
private final FlowAssigneeHelper assigneeHelper;
|
||||
private final UserService userService;
|
||||
|
||||
@Override
|
||||
public HrmFlowInstanceVo queryById(Long instId) {
|
||||
@@ -229,6 +234,39 @@ public class HrmFlowInstanceServiceImpl implements IHrmFlowInstanceService {
|
||||
return baseMapper.deleteById(instId) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<HrmFlowTaskVo> getTasksByInstanceId(Long instId) {
|
||||
if (instId == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
// 根据实例ID查询所有任务
|
||||
List<HrmFlowTask> tasks = taskMapper.selectList(Wrappers.<HrmFlowTask>lambdaQuery()
|
||||
.eq(HrmFlowTask::getInstId, instId)
|
||||
.eq(HrmFlowTask::getDelFlag, 0)); // 未删除的任务
|
||||
|
||||
if (tasks.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
// 转换为VO并联查处理人昵称
|
||||
return tasks.stream().map(task -> {
|
||||
HrmFlowTaskVo vo = BeanUtil.toBean(task, HrmFlowTaskVo.class);
|
||||
// 获取用户昵称
|
||||
String nickname = getUserNicknameById(task.getAssigneeUserId());
|
||||
vo.setAssigneeNickName(nickname);
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
// 假设的方法:根据用户ID获取昵称
|
||||
private String getUserNicknameById(Long userId) {
|
||||
if (userId == null) {
|
||||
return "未知用户";
|
||||
}
|
||||
return userService.selectNickNameById(userId);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<HrmFlowInstance> buildQueryWrapper(HrmFlowInstanceBo bo) {
|
||||
LambdaQueryWrapper<HrmFlowInstance> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getInstId() != null, HrmFlowInstance::getInstId, bo.getInstId());
|
||||
|
||||
Reference in New Issue
Block a user