#21 -- Fix save files

This commit is contained in:
Anton Romanov 2025-04-15 21:54:17 +04:00
parent 691ccca54b
commit 6d36ac3416
5 changed files with 17 additions and 11 deletions

View File

@ -94,9 +94,9 @@ public class FileService {
@Transactional @Transactional
private FileData update(FileDataDto fileDataDto) { private FileData update(FileDataDto fileDataDto) {
FileData file = fileRepository.findById(fileDataDto.getId()) return fileRepository.findById(fileDataDto.getId())
.orElseThrow(() -> new RuntimeException("File not found by id")); .orElseThrow(() -> new RuntimeException("File not found by id"));
return fileRepository.save(copyFromDto(file, fileDataDto)); //return fileRepository.save(copyFromDto(file, fileDataDto));
} }
@Transactional @Transactional

View File

@ -20,7 +20,7 @@ public class ReportValue extends BaseEntity {
@ManyToOne @ManyToOne
private Indicator indicator; private Indicator indicator;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "report_value_id", unique = true) @JoinColumn(name = "report_value_id")
@Fetch(FetchMode.SUBSELECT) @Fetch(FetchMode.SUBSELECT)
private List<FileData> files = new ArrayList<>(); private List<FileData> files = new ArrayList<>();
private int indicatorValue; private int indicatorValue;

View File

@ -65,6 +65,7 @@ public class ReportService {
public void addReportValue(Integer reportId, ReportValue reportValue) { public void addReportValue(Integer reportId, ReportValue reportValue) {
Report report = getReportById(reportId); Report report = getReportById(reportId);
report.getValues().remove(reportValue);
report.getValues().add(reportValue); report.getValues().add(reportValue);
reportRepository.save(report); reportRepository.save(report);
} }

View File

@ -1,6 +1,7 @@
package ru.ulstu.report.service; package ru.ulstu.report.service;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ru.ulstu.file.model.FileData;
import ru.ulstu.file.service.FileService; import ru.ulstu.file.service.FileService;
import ru.ulstu.indicator.service.IndicatorService; import ru.ulstu.indicator.service.IndicatorService;
import ru.ulstu.report.model.ReportValue; import ru.ulstu.report.model.ReportValue;
@ -8,6 +9,7 @@ import ru.ulstu.report.model.dto.ReportValueDto;
import ru.ulstu.report.repository.ReportValueRepository; import ru.ulstu.report.repository.ReportValueRepository;
import java.io.IOException; import java.io.IOException;
import java.util.List;
@Service @Service
public class ReportValueService { public class ReportValueService {
@ -35,9 +37,11 @@ public class ReportValueService {
} }
reportValue.setIndicatorValue(reportValueDto.getIndicatorValue()); reportValue.setIndicatorValue(reportValueDto.getIndicatorValue());
reportValue.setIndicator(indicatorService.getIndicatorById(reportValueDto.getIndicator().getId())); reportValue.setIndicator(indicatorService.getIndicatorById(reportValueDto.getIndicator().getId()));
reportValue.setFiles(fileService.saveOrCreate(reportValueDto.getFiles().stream() List<FileData> files = fileService.saveOrCreate(reportValueDto.getFiles().stream()
.filter(f -> !f.isDeleted()) .filter(f -> !f.isDeleted())
.toList())); .toList());
reportValue.getFiles().removeAll(files);
reportValue.setFiles(files);
reportValue = reportValueRepository.save(reportValue); reportValue = reportValueRepository.save(reportValue);
reportService.addReportValue(reportValueDto.getReportId(), reportValue); reportService.addReportValue(reportValueDto.getReportId(), reportValue);

View File

@ -44,18 +44,19 @@
</div> </div>
</div> </div>
</div> </div>
<div class="row"> </div>
<div class="col col-md-6"> <div class="row">
<div class="form-group"> <div class="col col-md-6">
<label for="loader">Загрузить файл:</label> <div class="form-group">
<div id="loader"> <label for="loader">Загрузить файл:</label>
<div id="loader">
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<button name="save" type="submit" class="btn btn-outline-dark">Сохранить</button> <button name="save" type="submit" class="btn btn-outline-dark">Сохранить</button>
<button name="delete" <button name="delete"
type="submit" type="submit"