package ru.nbch.indicsearchservice.loader; import java.nio.file.Path; import java.util.List; import java.util.Set; import java.util.UUID; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import ru.nbch.indicsearchservice.model.enums.DataType; import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component public class RuUidTableLoader implements TableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; public RuUidTableLoader(MapperHolder mapperHolder, IndicSearchUtils indicSearchUtils) { this.mapperHolder = mapperHolder; this.indicSearchUtils = indicSearchUtils; } @Override public List getSuitableDataTypes() { return List.of(DataType.GUTDF, DataType.RUTDF); } @Override public List getSuitableSearchParameters() { return List.of(SearchParameter.FID); } @Override public String getTableName() { return "RU_UID"; } @Override @Transactional(readOnly = true) public Path searchByFid(Set fids, UUID taskId) { return indicSearchUtils.writeRowsToFile(getTableName(), fids, fidSet -> mapperHolder.getIndicMapper().findAllByFidFromRuUid(fidSet), taskId); } }