From 633d5ad58fa2f50d28f2c574dc2873a120a452f7 Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Tue, 15 Apr 2025 22:34:53 +0400 Subject: [PATCH] #21 -- Fix --- .../java/ru/ulstu/report/controller/ReportController.java | 2 +- .../java/ru/ulstu/report/repository/ReportRepository.java | 4 ++++ src/main/java/ru/ulstu/report/service/ReportService.java | 7 ++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/ru/ulstu/report/controller/ReportController.java b/src/main/java/ru/ulstu/report/controller/ReportController.java index 50880f2..04bf9ce 100644 --- a/src/main/java/ru/ulstu/report/controller/ReportController.java +++ b/src/main/java/ru/ulstu/report/controller/ReportController.java @@ -66,7 +66,7 @@ public class ReportController { @GetMapping("edit-report/{reportId}") public String editReportWithoutReportPeriod(@PathVariable("reportId") Integer reportId, Model model) { - List indicators = aspirantService.getCurrentAspirantIndicators(); + List indicators = reportService.getIndicators(reportId); model.addAttribute("report", new ReportDto(reportService.getReportById(reportId), indicators)); return "report/editReport"; } diff --git a/src/main/java/ru/ulstu/report/repository/ReportRepository.java b/src/main/java/ru/ulstu/report/repository/ReportRepository.java index d28615f..3b6fe43 100644 --- a/src/main/java/ru/ulstu/report/repository/ReportRepository.java +++ b/src/main/java/ru/ulstu/report/repository/ReportRepository.java @@ -4,6 +4,7 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import ru.ulstu.aspirant.model.Aspirant; +import ru.ulstu.indicator.model.Indicator; import ru.ulstu.report.model.Report; import ru.ulstu.report.model.ReportPeriod; import ru.ulstu.statistic.model.RatingItem; @@ -18,4 +19,7 @@ public interface ReportRepository extends JpaRepository { @Query("SELECT new ru.ulstu.statistic.model.RatingItem(r.aspirant, (SELECT cast(sum(rv.indicatorValue) AS Integer) FROM ReportValue rv WHERE rv MEMBER OF r.values)) FROM Report r JOIN r.reportPeriod rp WHERE rp.id = :reportPeriodId") List getRating(@Param("reportPeriodId") Integer reportPeriodId); + + @Query("SELECT DISTINCT v.indicator FROM Report r JOIN r.values v WHERE r.id = :reportId") + List getIndicatorsById(@Param("reportId") Integer reportId); } diff --git a/src/main/java/ru/ulstu/report/service/ReportService.java b/src/main/java/ru/ulstu/report/service/ReportService.java index a7456b5..0341a26 100644 --- a/src/main/java/ru/ulstu/report/service/ReportService.java +++ b/src/main/java/ru/ulstu/report/service/ReportService.java @@ -3,6 +3,7 @@ package ru.ulstu.report.service; import org.springframework.stereotype.Service; import ru.ulstu.aspirant.model.Aspirant; import ru.ulstu.aspirant.service.AspirantService; +import ru.ulstu.indicator.model.Indicator; import ru.ulstu.report.model.Report; import ru.ulstu.report.model.ReportPeriod; import ru.ulstu.report.model.ReportValue; @@ -34,7 +35,7 @@ public class ReportService { public boolean canCreateReport(ReportPeriod reportPeriod) { Aspirant currentAspirant = aspirantService.getAspirantByUser(userService.getCurrentUser()); - return reportRepository.findByReportPeriodAndAspirant(reportPeriod, currentAspirant) == null; + return currentAspirant != null && reportRepository.findByReportPeriodAndAspirant(reportPeriod, currentAspirant) == null; } public Report saveReport(ReportDto reportDto) { @@ -69,4 +70,8 @@ public class ReportService { report.getValues().add(reportValue); reportRepository.save(report); } + + public List getIndicators(Integer reportId) { + return reportRepository.getIndicatorsById(reportId); + } }