52 lines
1.7 KiB
Java
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 !");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|