etreschenkov 2024-09-02 17:02:58 +03:00
parent e557b948fe
commit 7fc8f95c20
2 changed files with 12 additions and 19 deletions

View file

@ -1,8 +1,6 @@
package ru.spcex.clearing.swt.importer.logic.data.tables;
import java.time.Instant;
import java.util.Collection;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.clearing.classes.statics.data.sdf.SDf20;
@ -42,16 +40,4 @@ public class SDf20Table extends AbstractTable<SDf20> implements WithTransactionN
result.setNameCl(record.getValFor83DTag()[1]);
return result;
}
@Override
public boolean checkOnExisting(SDf20 obj) {
if (map == null) {
bootMap();
}
Collection<SDf20> sDf20s = map.getCollectionObjectsByFieldValues(Map.of("transactionNumber", obj.getTransactionNumber()));
if (!sDf20s.isEmpty()) {
log.warn("Skip insert by {}, sdf57.dbfId: {}", PREFIX, obj.getTransactionNumber());
}
return sDf20s.isEmpty();
}
}

View file

@ -1,14 +1,14 @@
package ru.spcex.clearing.swt.importer.logic.data.tables;
import java.time.Instant;
import java.util.Collection;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.clearing.classes.statics.data.sdf.SDf21;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.swt.importer.logic.data.enums.ETable;
import ru.spcex.clearing.swt.importer.readers.SWTRecord;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
public class SDf21Table extends AbstractTable<SDf21> implements WithTransactionNumber {
private final Logger log = LoggerFactory.getLogger(getClass());
@ -48,10 +48,17 @@ public class SDf21Table extends AbstractTable<SDf21> implements WithTransactionN
if (map == null) {
bootMap();
}
Collection<SDf21> sDf21s = map.getCollectionObjectsByFieldValues(Map.of("transactionNumber", obj.getTransactionNumber()));
if (!sDf21s.isEmpty()) {
ImdgPredicateBuilder pb = map.predicateBuilder();
ImdgPredicate sameTransactionNumberAndOperationCode = pb.and(
pb.equals("transactionNumber", obj.getTransactionNumber()),
pb.equals("operationCode", obj.getOperationCode())
);
SDf21 firstObjectBySQL = map.getFirstObjectByPredicate(
sameTransactionNumberAndOperationCode
);
if (firstObjectBySQL != null) {
log.warn("Skip insert by {}, sdf57.dbfId: {}", PREFIX, obj.getTransactionNumber());
}
return sDf21s.isEmpty();
return firstObjectBySQL == null;
}
}