From 6d36ac3416e9f7e45414221a8064acaaa5a90834 Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Tue, 15 Apr 2025 21:54:17 +0400 Subject: [PATCH] #21 -- Fix save files --- .../java/ru/ulstu/file/service/FileService.java | 4 ++-- .../java/ru/ulstu/report/model/ReportValue.java | 2 +- .../java/ru/ulstu/report/service/ReportService.java | 1 + .../ru/ulstu/report/service/ReportValueService.java | 8 ++++++-- .../resources/templates/report/editReportValue.html | 13 +++++++------ 5 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/main/java/ru/ulstu/file/service/FileService.java b/src/main/java/ru/ulstu/file/service/FileService.java index 7195535..b26f694 100644 --- a/src/main/java/ru/ulstu/file/service/FileService.java +++ b/src/main/java/ru/ulstu/file/service/FileService.java @@ -94,9 +94,9 @@ public class FileService { @Transactional private FileData update(FileDataDto fileDataDto) { - FileData file = fileRepository.findById(fileDataDto.getId()) + return fileRepository.findById(fileDataDto.getId()) .orElseThrow(() -> new RuntimeException("File not found by id")); - return fileRepository.save(copyFromDto(file, fileDataDto)); + //return fileRepository.save(copyFromDto(file, fileDataDto)); } @Transactional diff --git a/src/main/java/ru/ulstu/report/model/ReportValue.java b/src/main/java/ru/ulstu/report/model/ReportValue.java index 6028520..2cb48b8 100644 --- a/src/main/java/ru/ulstu/report/model/ReportValue.java +++ b/src/main/java/ru/ulstu/report/model/ReportValue.java @@ -20,7 +20,7 @@ public class ReportValue extends BaseEntity { @ManyToOne private Indicator indicator; @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) - @JoinColumn(name = "report_value_id", unique = true) + @JoinColumn(name = "report_value_id") @Fetch(FetchMode.SUBSELECT) private List files = new ArrayList<>(); private int indicatorValue; diff --git a/src/main/java/ru/ulstu/report/service/ReportService.java b/src/main/java/ru/ulstu/report/service/ReportService.java index 7c32beb..a7456b5 100644 --- a/src/main/java/ru/ulstu/report/service/ReportService.java +++ b/src/main/java/ru/ulstu/report/service/ReportService.java @@ -65,6 +65,7 @@ public class ReportService { public void addReportValue(Integer reportId, ReportValue reportValue) { Report report = getReportById(reportId); + report.getValues().remove(reportValue); report.getValues().add(reportValue); reportRepository.save(report); } diff --git a/src/main/java/ru/ulstu/report/service/ReportValueService.java b/src/main/java/ru/ulstu/report/service/ReportValueService.java index ae885df..d059a8f 100644 --- a/src/main/java/ru/ulstu/report/service/ReportValueService.java +++ b/src/main/java/ru/ulstu/report/service/ReportValueService.java @@ -1,6 +1,7 @@ package ru.ulstu.report.service; import org.springframework.stereotype.Service; +import ru.ulstu.file.model.FileData; import ru.ulstu.file.service.FileService; import ru.ulstu.indicator.service.IndicatorService; import ru.ulstu.report.model.ReportValue; @@ -8,6 +9,7 @@ import ru.ulstu.report.model.dto.ReportValueDto; import ru.ulstu.report.repository.ReportValueRepository; import java.io.IOException; +import java.util.List; @Service public class ReportValueService { @@ -35,9 +37,11 @@ public class ReportValueService { } reportValue.setIndicatorValue(reportValueDto.getIndicatorValue()); reportValue.setIndicator(indicatorService.getIndicatorById(reportValueDto.getIndicator().getId())); - reportValue.setFiles(fileService.saveOrCreate(reportValueDto.getFiles().stream() + List files = fileService.saveOrCreate(reportValueDto.getFiles().stream() .filter(f -> !f.isDeleted()) - .toList())); + .toList()); + reportValue.getFiles().removeAll(files); + reportValue.setFiles(files); reportValue = reportValueRepository.save(reportValue); reportService.addReportValue(reportValueDto.getReportId(), reportValue); diff --git a/src/main/resources/templates/report/editReportValue.html b/src/main/resources/templates/report/editReportValue.html index 1036329..4d64947 100644 --- a/src/main/resources/templates/report/editReportValue.html +++ b/src/main/resources/templates/report/editReportValue.html @@ -44,18 +44,19 @@ -
-
-
- -
+
+
+
+
+ +
-
+