indic-search-service/src/main/java/ru/nbch/indicsearchservice/loader/subtable/RuAmountInfoTableLoader.java
2026-05-25 17:54:52 +03:00

40 lines
1.4 KiB
Java

package ru.nbch.indicsearchservice.loader.subtable;
import java.io.IOException;
import java.nio.file.Path;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import org.apache.ibatis.cursor.Cursor;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import ru.nbch.indicsearchservice.util.IndicSearchUtils;
import ru.nbch.indicsearchservice.util.MapperHolder;
@Component
public class RuAmountInfoTableLoader implements RuUidSubTableLoader {
private final MapperHolder mapperHolder;
private final IndicSearchUtils indicSearchUtils;
public RuAmountInfoTableLoader(MapperHolder mapperHolder,
IndicSearchUtils indicSearchUtils) {
this.mapperHolder = mapperHolder;
this.indicSearchUtils = indicSearchUtils;
}
@Override
public String getTableName() {
return "RU_AMOUNT_INFO";
}
@Override
@Transactional(readOnly = true)
public void searchByRuUidFid(UUID taskId, Set<Integer> fids, Map<String, Path> tableFileMap) {
try (Cursor<LinkedHashMap<String, Object>> cursor = mapperHolder.getIndicMapper().findAllByFidsFromRuAmountInfo(fids)) {
tableFileMap.put(getTableName(), indicSearchUtils.writeRowsToFile(taskId, getTableName(), cursor));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}