clearing-service dbf-exporter ASGN.M.BT10-1.1 и ASGN.M.BT10-1.2. S_DF03 S_DF11 правка для множества вариантов learing_member_category

This commit is contained in:
AKurakin 2023-01-18 11:08:06 +03:00
parent 8644d18a90
commit 718bb594ef
3 changed files with 95 additions and 66 deletions

View file

@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ru.spcex.platform.utils.log.ExceptionUtils;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
@ -32,17 +33,35 @@ public class ClearingService implements DisposableBean {
// @Scheduled(cron = "${clearing-service.scheduler.check-payment-instruction}") // @Scheduled(cron = "${clearing-service.scheduler.check-payment-instruction}")
public void sdfCreate() { public void sdfCreate() {
log.info("creating sdf03/11 from STLD payments task added to queue"); log.info("creating sdf03/11 from STLD payments task added to queue");
executor.execute(sdfCreator::createSdfFromPaymentInstructionSTLD); executor.execute(() -> {
try {
sdfCreator.createSdfFromPaymentInstructionSTLD();
} catch (Throwable e) {
log.error("{}", ExceptionUtils.getStackTrace(e));
}
});
} }
public void paymentUpdateBySdf04(Long sdf04GroupId) { public void paymentUpdateBySdf04(Long sdf04GroupId) {
log.info("updating payment.transactionStatus by sdf04 task added to queue"); log.info("updating payment.transactionStatus by sdf04 task added to queue");
executor.execute(() -> paymentUpdater.updatePayments(sdf04GroupId)); executor.execute(() -> {
try {
paymentUpdater.updatePayments(sdf04GroupId);
} catch (Throwable e) {
log.error("{}", ExceptionUtils.getStackTrace(e));
}
});
} }
public void executeVerification() { public void executeVerification() {
log.info("execute verification"); log.info("execute verification");
executor.execute(() -> verificationResultComponent.executeRevision()); executor.execute(() -> {
try {
verificationResultComponent.executeRevision();
} catch (Throwable e) {
log.error("{}", ExceptionUtils.getStackTrace(e));
}
});
} }
@Override @Override

View file

@ -19,9 +19,11 @@ import ru.spcex.platform.utils.enumeration.IEnumKey;
import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.enumeration.IMessageResolver;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors;
@Component @Component
public class PaymentInstructionSorter { public class PaymentInstructionSorter {
@ -41,10 +43,15 @@ public class PaymentInstructionSorter {
} }
public PaymentBatchInfo sortCompanyPayments(Long generationId, Long senderId, List<PaymentInstruction> payments) { public PaymentBatchInfo sortCompanyPayments(Long generationId, Long senderId, List<PaymentInstruction> payments) {
PaymentBatchInfo batchInfo = new PaymentBatchInfo();
log.info("processing PaymentInstruction's generationId={} senderId={} size={}", generationId, senderId, payments.size()); log.info("processing PaymentInstruction's generationId={} senderId={} size={}", generationId, senderId, payments.size());
ClearingMemberCategory category = clrngMmbrImdg.getSingleObjectByFieldValues(Map.of("companyId", senderId)); Collection<ClearingMemberCategory> cmcList = clrngMmbrImdg.getCollectionObjectsByFieldValues(Map.of("companyId", senderId));
ClearingMemberCategoryD categoryValue = IEnumKey.getEnumByKey(ClearingMemberCategoryD.class, category.getClearingMemberCategory()); Collection<ClearingMemberCategoryD> companyCategory = cmcList.stream()
.filter(cat -> cat.getClearingMemberCategory()!=null)
.map(cat -> IEnumKey.getEnumByKey(ClearingMemberCategoryD.class, cat.getClearingMemberCategory()))
.collect(Collectors.toSet());
for (ClearingMemberCategoryD categoryValue: companyCategory) {
log.debug("For category {}", categoryValue);
PaymentBatchInfo batchInfo = new PaymentBatchInfo();
batchInfo.setCategoryD(categoryValue); batchInfo.setCategoryD(categoryValue);
if (ClearingMemberCategoryD.I.equals(categoryValue)) { if (ClearingMemberCategoryD.I.equals(categoryValue)) {
EnumMessage error = null; EnumMessage error = null;
@ -114,8 +121,11 @@ public class PaymentInstructionSorter {
batchInfo.setInitialOrder(payments); batchInfo.setInitialOrder(payments);
return batchInfo; return batchInfo;
} else { } else {
throw new IllegalStateException("unknown clearing member category for generationId=" log.debug("Do nothing as category {}, check next", categoryValue);
// проверить следующую категорил, когда закончатся выдать ошибку
}
}
throw new IllegalStateException("unknown clearing member category ["+companyCategory+"] for generationId="
+ generationId + " companyId=" + senderId + ""); + generationId + " companyId=" + senderId + "");
} }
} }
}

View file

@ -36,7 +36,7 @@ public class CommandService extends QueueConsumer implements InitializingBean {
.setConsumer(this::process) .setConsumer(this::process)
.forDestination(Consts.EXPORT_PROCESS, callbacks::put); .forDestination(Consts.EXPORT_PROCESS, callbacks::put);
callback(SdfClearingRequest.class) callback(SdfClearingRequest.class)
.setConsumer(r -> processSpecial(Table.S_DF03, r)) .setConsumer(r -> processSpecial(Table.S_DF03, r)) // todo необходимо в отдельную папку: "в отдельную директорию SettlementHouse_Fail (чтобы не отдавать такие файлы в ПРЦ"
.forDestination(Consts.SDF03_PROCESS, callbacks::put); .forDestination(Consts.SDF03_PROCESS, callbacks::put);
callback(SdfClearingRequest.class) callback(SdfClearingRequest.class)
.setConsumer(r -> processSpecial(Table.S_DF11, r)) .setConsumer(r -> processSpecial(Table.S_DF11, r))