opt
This commit is contained in:
@@ -31,8 +31,10 @@ public class PortalDashboardController {
|
||||
@GetMapping("/project-plan/{projectId}")
|
||||
@SaIgnore
|
||||
public ApiResponse<PortalDashboardVO.ProjectPlan> projectPlan(@PathVariable Long projectId) {
|
||||
CurrentUser currentUser = SecurityUtils.getCurrentUser();
|
||||
try {
|
||||
return ApiResponse.success(portalDashboardService.getProjectPlan(SecurityUtils.getCurrentUsername(), projectId));
|
||||
return ApiResponse.success(portalDashboardService.getProjectPlan(
|
||||
currentUser.getUsername(), currentUser.getPresonName(), projectId));
|
||||
} catch (IllegalArgumentException exception) {
|
||||
throw new BadRequestException(exception.getMessage());
|
||||
}
|
||||
|
||||
@@ -6,5 +6,5 @@ public interface PortalDashboardService {
|
||||
|
||||
PortalDashboardVO getDashboard(String username, String personName, long projectPage, long projectSize);
|
||||
|
||||
PortalDashboardVO.ProjectPlan getProjectPlan(String username, Long projectId);
|
||||
PortalDashboardVO.ProjectPlan getProjectPlan(String username, String personName, Long projectId);
|
||||
}
|
||||
|
||||
@@ -69,7 +69,8 @@ public class PortalDashboardServiceImpl implements PortalDashboardService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public PortalDashboardVO.ProjectPlan getProjectPlan(String username, Long projectId) {
|
||||
public PortalDashboardVO.ProjectPlan getProjectPlan(String username, String personName, Long projectId) {
|
||||
List<String> currentUserIdentifiers = currentUserIdentifiers(username, personName);
|
||||
Project project = projectMapper.selectById(projectId);
|
||||
if (project == null) {
|
||||
throw new IllegalArgumentException("项目不存在");
|
||||
@@ -80,7 +81,7 @@ public class PortalDashboardServiceImpl implements PortalDashboardService {
|
||||
plan.setProjectLeader(project.getProjectLeader());
|
||||
plan.setDevelopMembers(parseMembers(project.getDevelopMembers()));
|
||||
plan.setMasters(buildPlanMasters(projectId));
|
||||
boolean isLeader = username != null && username.equals(project.getProjectLeader());
|
||||
boolean isLeader = containsUser(project.getProjectLeader(), currentUserIdentifiers);
|
||||
plan.setProjectLeaderCurrentUser(isLeader);
|
||||
|
||||
List<ProjectPlanDetail> details = projectPlanDetailMapper.selectList(new LambdaQueryWrapper<ProjectPlanDetail>()
|
||||
@@ -89,7 +90,7 @@ public class PortalDashboardServiceImpl implements PortalDashboardService {
|
||||
var masterNames = projectPlanMasterMapper.selectList(new LambdaQueryWrapper<ProjectPlanMaster>()
|
||||
.eq(ProjectPlanMaster::getProjectId, projectId)).stream()
|
||||
.collect(java.util.stream.Collectors.toMap(ProjectPlanMaster::getId, ProjectPlanMaster::getMasterName, (left, right) -> left));
|
||||
plan.setTasks(details.stream().filter(detail -> containsMember(detail.getTaskMembers(), username)).map(detail -> {
|
||||
plan.setTasks(details.stream().filter(detail -> containsMember(detail.getTaskMembers(), currentUserIdentifiers)).map(detail -> {
|
||||
PortalDashboardVO.Task task = new PortalDashboardVO.Task();
|
||||
task.setDetailId(detail.getId());
|
||||
task.setMasterName(masterNames.getOrDefault(detail.getMasterId(), "-"));
|
||||
@@ -221,21 +222,22 @@ public class PortalDashboardServiceImpl implements PortalDashboardService {
|
||||
item.setTotalDevDays(master.getTotalDevDays());
|
||||
item.setDevStartDate(master.getDevStartDate() == null ? null : master.getDevStartDate().toString());
|
||||
item.setDevEndDate(master.getDevEndDate() == null ? null : master.getDevEndDate().toString());
|
||||
item.setDetails(detailsByMaster.getOrDefault(master.getId(), List.of()).stream().map(detail -> {
|
||||
PortalDashboardVO.PlanDetail task = new PortalDashboardVO.PlanDetail();
|
||||
task.setId(detail.getId());
|
||||
task.setDetailName(detail.getDetailName());
|
||||
task.setDetailDescription(detail.getDetailDescription());
|
||||
task.setTaskMembers(parseMembers(detail.getTaskMembers()));
|
||||
task.setStatus(detail.getStatus());
|
||||
task.setStatusLabel(taskStatus(detail.getStatus()));
|
||||
task.setPriority(detail.getPriority());
|
||||
task.setPriorityLabel(priorityLabel(detail.getPriority()));
|
||||
task.setProgress(detail.getProgress());
|
||||
task.setDevStartDate(detail.getDevStartDate() == null ? null : detail.getDevStartDate().toString());
|
||||
task.setDevEndDate(detail.getDevEndDate() == null ? null : detail.getDevEndDate().toString());
|
||||
return task;
|
||||
}).toList());
|
||||
item.setDetails(detailsByMaster.getOrDefault(master.getId(), List.of()).stream()
|
||||
.map(detail -> {
|
||||
PortalDashboardVO.PlanDetail task = new PortalDashboardVO.PlanDetail();
|
||||
task.setId(detail.getId());
|
||||
task.setDetailName(detail.getDetailName());
|
||||
task.setDetailDescription(detail.getDetailDescription());
|
||||
task.setTaskMembers(parseMembers(detail.getTaskMembers()));
|
||||
task.setStatus(detail.getStatus());
|
||||
task.setStatusLabel(taskStatus(detail.getStatus()));
|
||||
task.setPriority(detail.getPriority());
|
||||
task.setPriorityLabel(priorityLabel(detail.getPriority()));
|
||||
task.setProgress(detail.getProgress());
|
||||
task.setDevStartDate(detail.getDevStartDate() == null ? null : detail.getDevStartDate().toString());
|
||||
task.setDevEndDate(detail.getDevEndDate() == null ? null : detail.getDevEndDate().toString());
|
||||
return task;
|
||||
}).toList());
|
||||
return item;
|
||||
}).toList();
|
||||
}
|
||||
@@ -303,8 +305,4 @@ public class PortalDashboardServiceImpl implements PortalDashboardService {
|
||||
}
|
||||
return parseMembers(members).stream().anyMatch(userIdentifiers::contains);
|
||||
}
|
||||
|
||||
private boolean containsMember(String members, String username) {
|
||||
return containsMember(members, currentUserIdentifiers(username, null));
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 17 KiB |
@@ -5,13 +5,11 @@
|
||||
<top-nav v-if="topNav" id="topmenu-container" class="topmenu-container" />
|
||||
|
||||
<div class="right-menu">
|
||||
<div class="right-menu-item date-display" style="font-weight: bold; color: #409EFF;">
|
||||
{{ new Date().toISOString().slice(0, 10) }}
|
||||
</div>
|
||||
<template v-if="device!=='mobile'">
|
||||
<search id="header-search" class="right-menu-item" />
|
||||
|
||||
<!-- <el-tooltip content="项目文档" effect="dark" placement="bottom">
|
||||
<Doc class="right-menu-item hover-effect" />
|
||||
</el-tooltip>-->
|
||||
|
||||
<el-tooltip content="全屏" effect="dark" placement="bottom">
|
||||
<screenfull id="screenfull" class="right-menu-item hover-effect" />
|
||||
</el-tooltip>
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user