feat(bpm): 增加项目团队成员功能
- 在项目创建请求和响应对象中添加团队成员字段 - 更新项目详情接口,支持显示团队成员名称 - 优化项目查询接口,改进部门参与条件
This commit is contained in:
parent
743460d18e
commit
b29eb854c1
@ -65,30 +65,30 @@ public class BpmOAProjectController {
|
||||
BpmOAProjectRespVO respVO = BeanUtils.toBean(project, BpmOAProjectRespVO.class);
|
||||
|
||||
if (respVO != null) {
|
||||
// 获取项目中所有人员的用户编号列表
|
||||
Set<Long> userIds = respVO.getStaff() == null ? new HashSet<>() : respVO.getStaff();
|
||||
userIds.add(respVO.getDirectorUserId());
|
||||
|
||||
// 获取项目中所有部门编号列表
|
||||
Set<Long> deptIds = respVO.getParticipationDept() == null ? new HashSet<>() : respVO.getParticipationDept();
|
||||
deptIds.add(respVO.getResponsibleDept());
|
||||
|
||||
// 获取所有用户信息
|
||||
AdminUserRespDTO userRespDTO = userApi.getUser(respVO.getDirectorUserId()).getCheckedData();
|
||||
Map<Long, AdminUserRespDTO> userMap = userApi.getUserMap(userIds);
|
||||
// 获取所有部门信息
|
||||
List<DeptRespDTO> deptDOS = deptApi.getDeptList(deptIds).getCheckedData();
|
||||
Map<Long, DeptRespDTO> deptMap = convertMap(deptDOS, DeptRespDTO::getId);
|
||||
Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(deptIds);
|
||||
|
||||
// 设置责任人名称
|
||||
respVO.setDirectorUserName(userRespDTO.getNickname());
|
||||
|
||||
// 筛选出不是责任人部门的部门信息
|
||||
List<DeptRespDTO> deptVOs = deptDOS.stream()
|
||||
.filter(dept -> !dept.getId().equals(respVO.getResponsibleDept()))
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
respVO.setDirectorUserName(userMap.get(respVO.getDirectorUserId()).getNickname());
|
||||
// 设置项目人员名称
|
||||
userMap.remove(respVO.getDirectorUserId());
|
||||
respVO.setStaffName(userMap.values().stream().map(AdminUserRespDTO::getNickname).collect(Collectors.joining("、")));
|
||||
|
||||
// 设置责任部门名称
|
||||
respVO.setResponsibleDeptName(deptMap.get(respVO.getResponsibleDept()).getName());
|
||||
// 拼接参与部门名称
|
||||
respVO.setParticipationDeptName(deptVOs.stream().map(DeptRespDTO::getName).collect(Collectors.joining("、")));
|
||||
deptMap.remove(respVO.getResponsibleDept());
|
||||
respVO.setParticipationDeptName(deptMap.values().stream().map(DeptRespDTO::getName).collect(Collectors.joining("、")));
|
||||
}
|
||||
|
||||
return success(respVO);
|
||||
|
@ -46,6 +46,9 @@ public class BpmOAProjectCreateReqVO {
|
||||
@NotNull(message = "责任人不能为空")
|
||||
private Long directorUserId;
|
||||
|
||||
@Schema(description = "团队成员")
|
||||
private Set<Long> staff;
|
||||
|
||||
@Schema(description = "项目开始日期", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "项目开始日期不能为空")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
|
||||
|
@ -51,6 +51,12 @@ public class BpmOAProjectRespVO extends BpmOABaseRespVO {
|
||||
@Schema(description = "责任人名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String directorUserName;
|
||||
|
||||
@Schema(description = "团队成员")
|
||||
private Set<Long> staff;
|
||||
|
||||
@Schema(description = "团队成员名称")
|
||||
private String staffName;
|
||||
|
||||
@Schema(description = "项目开始日期", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
|
||||
private LocalDate startDate;
|
||||
|
@ -68,6 +68,12 @@ public class BpmOAProjectDO extends BaseDO {
|
||||
*/
|
||||
private Long directorUserId;
|
||||
|
||||
/**
|
||||
* 参与人员
|
||||
*/
|
||||
@TableField(typeHandler = JsonLongSetTypeHandler.class)
|
||||
private Set<Long> staff;
|
||||
|
||||
/**
|
||||
* 项目开始日期
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user