systems.archide.scanuploader/src/main/java/systems/archide/scanuploader/SyncFile.java
2024-08-15 17:21:55 +00:00

52 lines
1.7 KiB
Java

package systems.archide.scanuploader;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import systems.archide.core.pojo.DigitalizationCreateRequest;
import systems.archide.core.pojo.FileQueue;
import systems.archide.core.repository.FileQueueRepository;
import systems.archide.core.rest.client.ApplyRestClient;
@Component
public class SyncFile {
@Autowired
FileQueueRepository fileQueueRepository;
@Scheduled(fixedDelay = 50000)
public void syncDigitalizationFiles() throws IOException, SQLException {
File source = new File(Cli.scanPath);
for (File sourceEntry : source.listFiles()) {
List<FileQueue> digitalizationQueues = fileQueueRepository
.findByFilename(sourceEntry.getName());
if (digitalizationQueues.isEmpty()) {
DigitalizationCreateRequest digitalizationCreateRequest = new DigitalizationCreateRequest();
digitalizationCreateRequest.setFileName(sourceEntry.getName());
byte[] content = FileUtils.readFileToByteArray(sourceEntry);
digitalizationCreateRequest.setContent(content);
Long id = ApplyRestClient.createDigitalizationMtlb(null, digitalizationCreateRequest);
if (id != null) {
FileQueue localeFileQueue = new FileQueue();
localeFileQueue.setFilename(sourceEntry.getName());
fileQueueRepository.insert(localeFileQueue);
}
else
throw new RuntimeException("Digitalization Mtlb creation failed !");
}
}
}
}