extdb-importer http://jira.mfd.msk:8088/browse/CLS-641
This commit is contained in:
parent
8ee172b075
commit
9e5d54b130
4 changed files with 58 additions and 10 deletions
|
|
@ -31,8 +31,8 @@ class SCrossRateControllerTest extends AbstractControllerTest {
|
|||
sCrossRate.setUnitRate(new BigDecimal("1.00"));
|
||||
sCrossRate.setGenerationTime(Instant.now());
|
||||
sCrossRate.setGenerationId(10L);
|
||||
sCrossRate.setCreatedAt(Instant.now());
|
||||
sCrossRate.setUpdatedAt(sCrossRate.getCreatedAt());
|
||||
sCrossRate.setCreated(Instant.now());
|
||||
sCrossRate.setUpdated(sCrossRate.getCreated());
|
||||
|
||||
//ACT and ASSERT
|
||||
checkGettingAllFromRestApi(IMDGDistributedNames.Map_SCrossRate, sCrossRate, REST_URL);
|
||||
|
|
|
|||
|
|
@ -75,9 +75,6 @@ public class ExtDBImporterService {
|
|||
crossRateDb.setId(sCrossRate.getId());
|
||||
crossRateDb.setCreated(sCrossRate.getCreated());
|
||||
crossRateDb.setUpdated(currentInstant);
|
||||
// В extDb нет таких полей, оставляем как есть:
|
||||
crossRateDb.setGenerationTime(sCrossRate.getGenerationTime());
|
||||
crossRateDb.setGenerationId(sCrossRate.getGenerationId());
|
||||
sCrossRateImdg.update(crossRateDb);
|
||||
updated++;
|
||||
} else if (sCrossRate == null) {
|
||||
|
|
@ -87,6 +84,10 @@ public class ExtDBImporterService {
|
|||
sCrossRateImdg.insert(crossRateDb);
|
||||
created++;
|
||||
}
|
||||
// В extDb нет таких полей, заполнить:
|
||||
crossRateDb.setGenerationTime(currentInstant);
|
||||
|
||||
crossRateDb.setGenerationId(makeGenerationId(sCrossRate.getDate(), sCrossRate.getCurrCode()));
|
||||
} else {
|
||||
log.warn(messageResolver.resolve(new EnumMessage(crossRateNotValid, crossRateDb.getCurrCode())));
|
||||
}
|
||||
|
|
@ -105,6 +106,28 @@ public class ExtDBImporterService {
|
|||
}
|
||||
}
|
||||
|
||||
protected Long makeGenerationId(LocalDate date, String currCode) {
|
||||
try {
|
||||
long d = date.getYear() * 1_00_00L + date.getMonthValue() * 1_00L + date.getDayOfMonth();
|
||||
currCode = currCode.trim();
|
||||
if (!currCode.isEmpty()) {
|
||||
int l = currCode.length();
|
||||
long cc = Long.parseLong(currCode);
|
||||
if (cc < 0) {
|
||||
cc = -cc;
|
||||
l--;
|
||||
}
|
||||
for (int i = 0; i < l; i++) d *= 10L; // d = d * (int) Math.pow(10, currCode.length());
|
||||
d += cc;
|
||||
}
|
||||
return d;
|
||||
} catch (Exception e) {
|
||||
log.warn("Unparseable date={} and currCode={} - can not make number GenerationId",
|
||||
date, currCode);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public SCrossRate getSCrossRateFromImdg(SCrossRate crossRateDb, Imdg<SCrossRate> sCrossRateImdg) {
|
||||
Map<String, Comparable<?>> query = new HashMap<>();
|
||||
query.put("date", crossRateDb.getDate());
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ class ExtDBImporterServiceTest extends AbstractServiceTest {
|
|||
|
||||
|
||||
@BeforeEach
|
||||
private void prepare(){
|
||||
private void prepare() {
|
||||
clearAllInImdg(sCrossRateImdg);
|
||||
}
|
||||
|
||||
|
|
@ -66,7 +66,7 @@ class ExtDBImporterServiceTest extends AbstractServiceTest {
|
|||
SCrossRate sCrossRate = getSCrossRate();
|
||||
Long id = sCrossRateImdg.insert(sCrossRate);
|
||||
|
||||
addRecordToKafka((MockConsumer) launcherCommandReceiver.getConsumer(), Task.getCurrencyRates.topic(), 0, 1, getJsonStringForNew(new LauncherCommandRequest(),0));
|
||||
addRecordToKafka((MockConsumer) launcherCommandReceiver.getConsumer(), Task.getCurrencyRates.topic(), 0, 1, getJsonStringForNew(new LauncherCommandRequest(), 0));
|
||||
|
||||
//waiting for kafka producer send message
|
||||
// ArgumentCaptor<ProducerRecord> captor = getCaptor(kafkaTemplate);
|
||||
|
|
@ -85,7 +85,7 @@ class ExtDBImporterServiceTest extends AbstractServiceTest {
|
|||
* Входной запрос {@link LauncherCommandRequest}:<br>
|
||||
*/
|
||||
@Test
|
||||
void getSCrossRateFromImdg(){
|
||||
void getSCrossRateFromImdg() {
|
||||
SCrossRate sCrossRate = getSCrossRate();
|
||||
Long id = sCrossRateImdg.insert(sCrossRate);
|
||||
SCrossRate sCrossRateRes = extDBImporterService.getSCrossRateFromImdg(sCrossRate, sCrossRateImdg);
|
||||
|
|
@ -96,13 +96,37 @@ class ExtDBImporterServiceTest extends AbstractServiceTest {
|
|||
assertNull(sCrossRateRes);
|
||||
}
|
||||
|
||||
private SCrossRate getSCrossRate(){
|
||||
private SCrossRate getSCrossRate() {
|
||||
SCrossRate sCrossRate = new SCrossRate();
|
||||
sCrossRate.setDate(LocalDate.of(2024,2,8));
|
||||
sCrossRate.setDate(LocalDate.of(2024, 2, 8));
|
||||
sCrossRate.setRate(new BigDecimal("10.1"));
|
||||
sCrossRate.setUnitRate(new BigDecimal("12.4"));
|
||||
sCrossRate.setCurrCode("RUB");
|
||||
sCrossRate.setCurrency("RUB");
|
||||
return sCrossRate;
|
||||
}
|
||||
|
||||
@Test
|
||||
void makeGenerationId() {
|
||||
assertEquals(20240130840L, extDBImporterService.makeGenerationId(
|
||||
LocalDate.of(2024, 1, 30), " 840 "));
|
||||
assertEquals(205612311230L, extDBImporterService.makeGenerationId(
|
||||
LocalDate.of(2056, 12, 31), " 1230 "));
|
||||
|
||||
|
||||
assertEquals(20561231L, extDBImporterService.makeGenerationId(
|
||||
LocalDate.of(2056, 12, 31), " "));
|
||||
assertEquals(205612310L, extDBImporterService.makeGenerationId(
|
||||
LocalDate.of(2056, 12, 31), "0"));
|
||||
assertEquals(205612315L, extDBImporterService.makeGenerationId(
|
||||
LocalDate.of(2056, 12, 31), "-5"));
|
||||
|
||||
assertEquals(null, extDBImporterService.makeGenerationId(
|
||||
LocalDate.of(2056, 12, 31), " - "));
|
||||
assertEquals(null, extDBImporterService.makeGenerationId(
|
||||
LocalDate.of(2056, 12, 31), null));
|
||||
assertEquals(null, extDBImporterService.makeGenerationId(
|
||||
null, " 840 "));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -10,6 +10,7 @@ kill -9 $(ps -ef | grep java | grep lim-exporter.jar | awk '{print $2}')
|
|||
kill -9 $(ps -ef | grep java | grep swt-exporter.jar | awk '{print $2}')
|
||||
kill -9 $(ps -ef | grep java | grep dbf-importer.jar | awk '{print $2}')
|
||||
kill -9 $(ps -ef | grep java | grep trade-importer.jar | awk '{print $2}')
|
||||
kill -9 $(ps -ef | grep java | grep extdb-service.jar | awk '{print $2}')
|
||||
kill -9 $(ps -ef | grep java | grep imdg.jar | awk '{print $2}')
|
||||
kill -9 $(ps -ef | grep java | grep imdg-hist.jar | awk '{print $2}')
|
||||
kill -9 $(ps -ef | grep java | grep securities-service.jar | awk '{print $2}')
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue