|
|
@@ -718,38 +718,6 @@ public class OkrService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public com.yimeng.okr.dto.OkrWorkbenchDto getWorkbench(Long periodId, Long userId) {
|
|
|
- com.yimeng.okr.dto.OkrWorkbenchDto dto = new com.yimeng.okr.dto.OkrWorkbenchDto();
|
|
|
- dto.setMyObjectives(getMyOkrForPeriod(periodId, userId));
|
|
|
- dto.setWorkflowState(determineWorkflowState(periodId, userId));
|
|
|
- dto.setVersion(System.currentTimeMillis());
|
|
|
- return dto;
|
|
|
- }
|
|
|
|
|
|
- private String determineWorkflowState(Long periodId, Long userId) {
|
|
|
- var period = periodMapper.selectById(periodId);
|
|
|
- if (period == null) return "NO_PERIOD";
|
|
|
- var objectives = objectiveMapper.selectList(
|
|
|
- new LambdaQueryWrapper<OkrObjective>()
|
|
|
- .eq(OkrObjective::getPeriodId, periodId)
|
|
|
- .eq(OkrObjective::getUserId, userId));
|
|
|
- if (objectives.isEmpty()) return "DRAFT_REQUIRED";
|
|
|
- boolean hasSubmitted = objectives.stream().anyMatch(o -> "SUBMITTED".equals(o.getStatus()));
|
|
|
- return hasSubmitted ? "SUBMITTED" : "DRAFT";
|
|
|
- }
|
|
|
|
|
|
- private java.util.List<com.yimeng.okr.dto.OkrWorkbenchDto.ObjectiveDto> getMyOkrForPeriod(Long periodId, Long userId) {
|
|
|
- return objectiveMapper.selectList(
|
|
|
- new LambdaQueryWrapper<OkrObjective>()
|
|
|
- .eq(OkrObjective::getPeriodId, periodId)
|
|
|
- .eq(OkrObjective::getUserId, userId)).stream()
|
|
|
- .map(o -> {
|
|
|
- com.yimeng.okr.dto.OkrWorkbenchDto.ObjectiveDto od = new com.yimeng.okr.dto.OkrWorkbenchDto.ObjectiveDto();
|
|
|
- od.setId(o.getId());
|
|
|
- od.setTitle(o.getTitle());
|
|
|
- od.setStatus(o.getStatus());
|
|
|
- od.setProgress(o.getProgress());
|
|
|
- return od;
|
|
|
- }).toList();
|
|
|
- }
|
|
|
}
|