http://jira.mfd.msk:8088/browse/CLS-794 messageId type -> UUID and remove "-" for messageId
This commit is contained in:
parent
dd19fa74d9
commit
edb3760b51
3 changed files with 30 additions and 23 deletions
|
|
@ -6,6 +6,7 @@ import java.util.HashSet;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
import org.apache.commons.lang3.tuple.Triple;
|
||||
import org.apache.kafka.clients.producer.Producer;
|
||||
import org.slf4j.Logger;
|
||||
|
|
@ -76,12 +77,13 @@ public class SDFProcessService {
|
|||
boolean txOk = false;
|
||||
imdgTransaction.beginTransaction();
|
||||
HashSet<String> fileNames = new HashSet<>();
|
||||
String messageId = String.valueOf(UUID.randomUUID()).replaceAll("-", "");
|
||||
try { // 2. обновление данных, в транзакции
|
||||
Imdg<SDf53> sdf53Imdg = imdgTransaction.getImdg(IMDGDistributedNames.Map_SDf53, SDf53.class);
|
||||
|
||||
Instant now = Instant.now();
|
||||
for (Triple<SDf52, Account, String> item : toProcessSDF53) {
|
||||
SDf53 sDf53 = createBy(item.getLeft(), item.getRight(), now, generationId);
|
||||
SDf53 sDf53 = createBy(item.getLeft(), item.getRight(), now, generationId, messageId);
|
||||
sdf53Imdg.insert(sDf53);
|
||||
fileNames.add(item.getLeft().getFileName());
|
||||
}
|
||||
|
|
@ -104,7 +106,7 @@ public class SDFProcessService {
|
|||
messageStatementToExport53(generationId, fileNameSingle);
|
||||
}
|
||||
|
||||
SDf53 createBy(SDf52 sdf52, String result, Instant now, Long newGenerationId) {
|
||||
SDf53 createBy(SDf52 sdf52, String result, Instant now, Long newGenerationId, String messageId) {
|
||||
SDf53 newSdf = new SDf53();
|
||||
newSdf.setId(idGenerator.nextId());
|
||||
newSdf.setAccName(sdf52.getAcc_name());
|
||||
|
|
@ -116,8 +118,8 @@ public class SDFProcessService {
|
|||
newSdf.setResult(result);
|
||||
newSdf.setGenerationTime(now);
|
||||
newSdf.setGenerationId(sdf52.getGenerationId());
|
||||
newSdf.setMessageId(String.valueOf(sdf52.getGenerationId()));
|
||||
newSdf.setParentId(sdf52.getMessageId() != null ? sdf52.getMessageId().replaceAll("-", "") : null);
|
||||
newSdf.setMessageId(messageId);
|
||||
newSdf.setParentId(sdf52.getMessageId());
|
||||
if (!Objects.equals(newGenerationId, newSdf.getGenerationId())) { // never
|
||||
log.warn("Different GenerationId={} for sdf53[{}] and GenerationId={} for group of sdf52",
|
||||
newSdf.getGenerationId(), newSdf.getId(), newGenerationId
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import java.util.Collection;
|
|||
import java.util.Comparator;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Function;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -126,6 +127,7 @@ public class Sdf01Executor extends AbstractExecutor<SDf01> {
|
|||
log.info("SDF01 execution: sdf01 file={} number={}, groupId={}", result.getFileName(), sdf.size(), sdf.stream().findFirst().map(SDf01::getGenerationId).orElse(null));
|
||||
ArrayList<SDf01> orderedSdf = new ArrayList<>(sdf);
|
||||
orderedSdf.sort(Comparator.comparing(SDf01::getId));// Сортировка по возрастанию id, чтобы сохранить последовательность строк SDF02, как в SDF01
|
||||
String messageId = String.valueOf(UUID.randomUUID()).replaceAll("-", "");
|
||||
for (SDf01 sdf01 : orderedSdf) {
|
||||
IValidator validator = sDf01Validator.apply(sdf01);
|
||||
Optional<EnumMessage> error = validator.tillFirstError();
|
||||
|
|
@ -149,14 +151,14 @@ public class Sdf01Executor extends AbstractExecutor<SDf01> {
|
|||
if (error.isPresent()) {
|
||||
log.error("sdf01.id={} error: {}", sdf01.getId(), messageResolver.resolve(error.get()));
|
||||
//fixme инициировать = команда для другого сервиса? sdf02Imdg.insert(createErrorSdf02(sdf01, error.get(), generationIdForGroup));
|
||||
sdf02Imdg.insert(createErrorSdf02(sdf01, error.get(), generationIdForGroup));
|
||||
sdf02Imdg.insert(createErrorSdf02(sdf01, error.get(), generationIdForGroup, messageId));
|
||||
continue;
|
||||
}
|
||||
log.debug("sdf01.id={} validation passed", sdf01.getId());
|
||||
|
||||
Statement stmt = createSdf01Statement(sdf01, company, account);
|
||||
|
||||
SDf02 sdf02New = createSuccessSdf02(sdf01, generationIdForGroup);
|
||||
SDf02 sdf02New = createSuccessSdf02(sdf01, generationIdForGroup, messageId);
|
||||
sdf02Imdg.insert(sdf02New);
|
||||
stmt.setOutSDfId(sdf02New.getId());
|
||||
statementImdg.insert(stmt);
|
||||
|
|
@ -278,7 +280,7 @@ public class Sdf01Executor extends AbstractExecutor<SDf01> {
|
|||
return req;
|
||||
}
|
||||
|
||||
private SDf02 createErrorSdf02(SDf01 sdf01, EnumMessage error, Long generationIdForGroup) {
|
||||
private SDf02 createErrorSdf02(SDf01 sdf01, EnumMessage error, Long generationIdForGroup, String messageId) {
|
||||
SDf02 sDf02 = new SDf02();
|
||||
sDf02.setCurr_code(sdf01.getCurr_code());
|
||||
sDf02.setAccount(sdf01.getAccount());
|
||||
|
|
@ -301,12 +303,12 @@ public class Sdf01Executor extends AbstractExecutor<SDf01> {
|
|||
}
|
||||
sDf02.setGenerationId(generationIdForGroup);
|
||||
sDf02.setGenerationTime(Instant.now());
|
||||
sDf02.setMessageId(String.valueOf(sdf01.getGenerationId()));
|
||||
sDf02.setParentId(sdf01.getMessageId() != null ? sdf01.getMessageId().replaceAll("-", "") : null);
|
||||
sDf02.setMessageId(messageId);
|
||||
sDf02.setParentId(sdf01.getMessageId());
|
||||
return sDf02;
|
||||
}
|
||||
|
||||
private SDf02 createSuccessSdf02(SDf01 sdf01, Long generationIdForGroup) {
|
||||
private SDf02 createSuccessSdf02(SDf01 sdf01, Long generationIdForGroup, String messageId) {
|
||||
SDf02 sDf02 = new SDf02();
|
||||
sDf02.setCurr_code(sdf01.getCurr_code());
|
||||
sDf02.setAccount(sdf01.getAccount());
|
||||
|
|
@ -324,8 +326,8 @@ public class Sdf01Executor extends AbstractExecutor<SDf01> {
|
|||
sDf02.setGenerationId(generationIdForGroup);
|
||||
sDf02.setGenerationTime(Instant.now());
|
||||
sDf02.setResult(SdfResult.OK.getKey());
|
||||
sDf02.setMessageId(String.valueOf(sdf01.getGenerationId()));
|
||||
sDf02.setParentId(sdf01.getMessageId() != null ? sdf01.getMessageId().replaceAll("-", "") : null);
|
||||
sDf02.setMessageId(messageId);
|
||||
sDf02.setParentId(sdf01.getMessageId());
|
||||
return sDf02;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import java.util.Collection;
|
|||
import java.util.LinkedList;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Function;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -136,6 +137,7 @@ public class Sdf06Executor {
|
|||
}
|
||||
Collection<AssetOperationRequest> requests = new ArrayList<>();
|
||||
boolean sdf07WasCreated = false;
|
||||
String messageId = String.valueOf(UUID.randomUUID()).replaceAll("-", "");
|
||||
for (SDf06 sDf06 : sdfs) {
|
||||
IValidator validator = sDf06Validator.apply(sDf06);
|
||||
Optional<EnumMessage> err = validator.tillFirstError();
|
||||
|
|
@ -150,7 +152,7 @@ public class Sdf06Executor {
|
|||
((Company) validator.getStored(ValidationStored.Sdf06Company)).getId(),
|
||||
account, null);
|
||||
}
|
||||
errorSdf07 = createSdf07(sDf06, now, errorResult);
|
||||
errorSdf07 = createSdf07(sDf06, now, errorResult, messageId);
|
||||
errorSdf07.setGenerationId(sdf07GroupId);
|
||||
sdf07Imdg.insert(errorSdf07);
|
||||
sdf07WasCreated = true;
|
||||
|
|
@ -175,7 +177,7 @@ public class Sdf06Executor {
|
|||
requests.add(GatewayRequestCreator.from(stmt, company.getTradingCode(), tcr.getCode(),
|
||||
currency.getCurrencyCode()));
|
||||
} else {
|
||||
processedApproved(stmt, sDf06, now, sdf07GroupId);
|
||||
processedApproved(stmt, sDf06, now, sdf07GroupId, messageId);
|
||||
if (tcr != null) {
|
||||
dmiService.setProcContract(tcr.getId(),
|
||||
sDf06.getPay_val(),
|
||||
|
|
@ -198,16 +200,16 @@ public class Sdf06Executor {
|
|||
}
|
||||
}
|
||||
|
||||
private void processedApproved(Statement stmt, SDf06 sDf06, Instant time) {
|
||||
processedApproved(stmt, sDf06, time, sdf07GroupId);
|
||||
private void processedApproved(Statement stmt, SDf06 sDf06, Instant time, String messageId) {
|
||||
processedApproved(stmt, sDf06, time, sdf07GroupId, messageId);
|
||||
}
|
||||
|
||||
private void processedApproved(Statement stmt, SDf06 sDf06, Instant time, Long sdf07GenerationId) {
|
||||
private void processedApproved(Statement stmt, SDf06 sDf06, Instant time, Long sdf07GenerationId, String messageId) {
|
||||
log.trace("statement.id={}, sdf07.id={}, sdf06.id={} executed",
|
||||
stmt.getId(),
|
||||
sDf06.getGenerationId(),
|
||||
sDf06.getId());
|
||||
SDf07 sdf07 = createSdf07(sDf06, time, successResult);
|
||||
SDf07 sdf07 = createSdf07(sDf06, time, successResult, messageId);
|
||||
sdf07.setGenerationId(sdf07GenerationId);
|
||||
sdf07Imdg.insert(sdf07);
|
||||
stmt.setOperationStatus(OperationStatus.Executed.getKey());
|
||||
|
|
@ -266,6 +268,7 @@ public class Sdf06Executor {
|
|||
}
|
||||
requestIsIntendedForSdf06 = true;
|
||||
|
||||
String messageId = String.valueOf(UUID.randomUUID()).replaceAll("-", "");
|
||||
Long sdf06Id = stmt.getInSDfId();
|
||||
SDf06 sdf06 = sdf06Imdg.getSingleObjectByID(sdf06Id);
|
||||
if (fileName == null && !TextUtil.isEmpty(sdf06.getFileName())) {
|
||||
|
|
@ -288,7 +291,7 @@ public class Sdf06Executor {
|
|||
|
||||
Instant updatedTime = Instant.now();
|
||||
if (gatewayMsg.isApproved()) {
|
||||
processedApproved(stmt, sdf06, updatedTime);
|
||||
processedApproved(stmt, sdf06, updatedTime, messageId);
|
||||
Optional<TradingClearingRegistry> tcr = searchTcrOnGatewayResponse(sdf06);
|
||||
dmiService.setProcContract(tcr.map(SpcexObjectBase::getId).orElse(null),
|
||||
sdf06.getPay_val(),
|
||||
|
|
@ -304,7 +307,7 @@ public class Sdf06Executor {
|
|||
statementId,
|
||||
sdf06.getGenerationId(),
|
||||
sdf06.getId());
|
||||
SDf07 sdf07 = createSdf07(sdf06, now, errorResult3);
|
||||
SDf07 sdf07 = createSdf07(sdf06, now, errorResult3, messageId);
|
||||
sdf07.setGenerationId(sdf07GroupId);
|
||||
sdf07Imdg.insert(sdf07);
|
||||
stmt.setOperationStatus(OperationStatus.Rejected.getKey());
|
||||
|
|
@ -339,7 +342,7 @@ public class Sdf06Executor {
|
|||
kafkaSender.sendRequestToQueue(Consts.EXPORT_PROCESS, exportRequest);
|
||||
}
|
||||
|
||||
private SDf07 createSdf07(SDf06 sdf06, Instant time, BigDecimal result) {
|
||||
private SDf07 createSdf07(SDf06 sdf06, Instant time, BigDecimal result, String messageId) {
|
||||
SDf07 sDf07 = new SDf07();
|
||||
sDf07.setInSDfId(sdf06.getId());
|
||||
sDf07.setGenerationTime(time);
|
||||
|
|
@ -357,8 +360,8 @@ public class Sdf06Executor {
|
|||
sDf07.setDoc_date(sdf06.getDoc_date());
|
||||
sDf07.setDoc_num(sdf06.getDoc_num());
|
||||
sDf07.setPay_val(sdf06.getPay_val());
|
||||
sDf07.setMessageId(String.valueOf(sdf06.getGenerationId()));
|
||||
sDf07.setParentId(sdf06.getMessageId() != null ? sdf06.getParentId().replaceAll("-", "") : null);
|
||||
sDf07.setMessageId(messageId);
|
||||
sDf07.setParentId(sdf06.getMessageId());
|
||||
return sDf07;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue