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; package ru.spcex.clearing.swt.importer.logic.data.tables;
import java.time.Instant; import java.time.Instant;
import java.util.Collection;
import java.util.Map;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import ru.clearing.classes.statics.data.sdf.SDf20; 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]); result.setNameCl(record.getValFor83DTag()[1]);
return result; 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; package ru.spcex.clearing.swt.importer.logic.data.tables;
import java.time.Instant; import java.time.Instant;
import java.util.Collection;
import java.util.Map;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import ru.clearing.classes.statics.data.sdf.SDf21; import ru.clearing.classes.statics.data.sdf.SDf21;
import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.swt.importer.logic.data.enums.ETable; import ru.spcex.clearing.swt.importer.logic.data.enums.ETable;
import ru.spcex.clearing.swt.importer.readers.SWTRecord; 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 { public class SDf21Table extends AbstractTable<SDf21> implements WithTransactionNumber {
private final Logger log = LoggerFactory.getLogger(getClass()); private final Logger log = LoggerFactory.getLogger(getClass());
@ -48,10 +48,17 @@ public class SDf21Table extends AbstractTable<SDf21> implements WithTransactionN
if (map == null) { if (map == null) {
bootMap(); bootMap();
} }
Collection<SDf21> sDf21s = map.getCollectionObjectsByFieldValues(Map.of("transactionNumber", obj.getTransactionNumber())); ImdgPredicateBuilder pb = map.predicateBuilder();
if (!sDf21s.isEmpty()) { 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()); log.warn("Skip insert by {}, sdf57.dbfId: {}", PREFIX, obj.getTransactionNumber());
} }
return sDf21s.isEmpty(); return firstObjectBySQL == null;
} }
} }