This commit is contained in:
Anton Romanov 2025-04-15 22:34:53 +04:00
parent a22c180aa8
commit 633d5ad58f
3 changed files with 11 additions and 2 deletions

View File

@ -66,7 +66,7 @@ public class ReportController {
@GetMapping("edit-report/{reportId}") @GetMapping("edit-report/{reportId}")
public String editReportWithoutReportPeriod(@PathVariable("reportId") Integer reportId, Model model) { public String editReportWithoutReportPeriod(@PathVariable("reportId") Integer reportId, Model model) {
List<Indicator> indicators = aspirantService.getCurrentAspirantIndicators(); List<Indicator> indicators = reportService.getIndicators(reportId);
model.addAttribute("report", new ReportDto(reportService.getReportById(reportId), indicators)); model.addAttribute("report", new ReportDto(reportService.getReportById(reportId), indicators));
return "report/editReport"; return "report/editReport";
} }

View File

@ -4,6 +4,7 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.Param;
import ru.ulstu.aspirant.model.Aspirant; import ru.ulstu.aspirant.model.Aspirant;
import ru.ulstu.indicator.model.Indicator;
import ru.ulstu.report.model.Report; import ru.ulstu.report.model.Report;
import ru.ulstu.report.model.ReportPeriod; import ru.ulstu.report.model.ReportPeriod;
import ru.ulstu.statistic.model.RatingItem; import ru.ulstu.statistic.model.RatingItem;
@ -18,4 +19,7 @@ public interface ReportRepository extends JpaRepository<Report, Integer> {
@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") @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<RatingItem> getRating(@Param("reportPeriodId") Integer reportPeriodId); List<RatingItem> getRating(@Param("reportPeriodId") Integer reportPeriodId);
@Query("SELECT DISTINCT v.indicator FROM Report r JOIN r.values v WHERE r.id = :reportId")
List<Indicator> getIndicatorsById(@Param("reportId") Integer reportId);
} }

View File

@ -3,6 +3,7 @@ package ru.ulstu.report.service;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ru.ulstu.aspirant.model.Aspirant; import ru.ulstu.aspirant.model.Aspirant;
import ru.ulstu.aspirant.service.AspirantService; import ru.ulstu.aspirant.service.AspirantService;
import ru.ulstu.indicator.model.Indicator;
import ru.ulstu.report.model.Report; import ru.ulstu.report.model.Report;
import ru.ulstu.report.model.ReportPeriod; import ru.ulstu.report.model.ReportPeriod;
import ru.ulstu.report.model.ReportValue; import ru.ulstu.report.model.ReportValue;
@ -34,7 +35,7 @@ public class ReportService {
public boolean canCreateReport(ReportPeriod reportPeriod) { public boolean canCreateReport(ReportPeriod reportPeriod) {
Aspirant currentAspirant = aspirantService.getAspirantByUser(userService.getCurrentUser()); 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) { public Report saveReport(ReportDto reportDto) {
@ -69,4 +70,8 @@ public class ReportService {
report.getValues().add(reportValue); report.getValues().add(reportValue);
reportRepository.save(report); reportRepository.save(report);
} }
public List<Indicator> getIndicators(Integer reportId) {
return reportRepository.getIndicatorsById(reportId);
}
} }