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