diff --git a/credit-tracker.properties b/credit-tracker.properties index 324bcd6..857724b 100644 --- a/credit-tracker.properties +++ b/credit-tracker.properties @@ -66,7 +66,8 @@ ct.load-dir=D:\\folder_name\\signals # min ct.monitoring-interval=${MONITORING_INTERVAL:15} # days -ct.update-flags-cron-expression=${UPDATE_FLAGS_CRON_EXPRESSION:0 0 22 * * *} +ct.update-flags-cron-expression=${UPDATE_FLAGS_CRON_EXPRESSION:0 25 18 * * *} +ct.update-fid-cron-expression=${UPDATE_FLAGS_CRON_EXPRESSION:0 10 12 * * *} ct.days-to-update-flags=${DAYS_TO_UPDATE_FLAGS:30} ct.db-version=${DB_VERSION:1234} diff --git a/src/main/java/ru/nbch/credit_tracker/CreditTrackerApplication.java b/src/main/java/ru/nbch/credit_tracker/CreditTrackerApplication.java index 02ac99e..d1ef4d8 100644 --- a/src/main/java/ru/nbch/credit_tracker/CreditTrackerApplication.java +++ b/src/main/java/ru/nbch/credit_tracker/CreditTrackerApplication.java @@ -15,9 +15,9 @@ public class CreditTrackerApplication { UpdateProcessingPackagesService updateProcessingPackagesService = ctx.getBean(UpdateProcessingPackagesService.class); MonitoringService monitoringService = ctx.getBean(MonitoringService.class); UpdatingFlagsService updatingFlagsService = ctx.getBean(UpdatingFlagsService.class); - updatingFlagsService.update(); -// updateProcessingPackagesService.run(); -// monitoringService.run(); +// updatingFlagsService.update(); + updateProcessingPackagesService.run(); + monitoringService.run(); } } diff --git a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java index 9954269..7d6e18c 100644 --- a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java +++ b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java @@ -6,7 +6,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardCopyOption; import java.time.LocalDateTime; -import java.util.Arrays; import java.util.List; import java.util.concurrent.ExecutorService; import javax.xml.stream.XMLStreamException; @@ -215,7 +214,9 @@ public class SignalFacadeV3 { PackageAll pack = new PackageAll(); pack.setPackageName(data.getPackageName()); pack.setCreatedAt(data.getCreatedAt() != null ? data.getCreatedAt().toString() : null); - pack.setStatus(data.getStatus()); + String statusForClient = data.getStatus().equals(Status.ACCEPTED.name()) ? Status.PROCESSING.name() : + data.getStatus().equals(Status.PROCESSING_REPEATED.name()) ? Status.ON_MONITORING.name() : data.getStatus(); + pack.setStatus(statusForClient); if (data.getStatus().equals(Status.DELETED.name())) { pack.setDeactivatedAt(data.getDeactivatedAt() != null ? data.getDeactivatedAt().toString() : null); } @@ -233,7 +234,7 @@ public class SignalFacadeV3 { -> clientExcp(SignalError.ERROR_016, XmlErrorFormat.MonitoringPackageDeleteError, packageName)); Status status = EnumUtil.getEnum(Status.class, packageToDelete.getStatus()); - if (!Arrays.asList(Status.ON_MONITORING, Status.PROCESSING_REPEATED).contains(status)) { + if (!Status.ON_MONITORING.equals(status)) { throw clientExcp(deleteStatusError(status), XmlErrorFormat.MonitoringPackageDeleteError, packageName); } diff --git a/src/main/java/ru/nbch/credit_tracker/service/MonitoringService.java b/src/main/java/ru/nbch/credit_tracker/service/MonitoringService.java index 02b688c..14bfd1c 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/MonitoringService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/MonitoringService.java @@ -271,14 +271,16 @@ public class MonitoringService { List hits = new ArrayList<>(); response.getSubjects().getSubjects().forEach(subject -> { subject.getSignals().getSignals().forEach(signal -> { - Hit hit = new Hit(); - hit.setPackageId(userPackage.getId()); - hit.setSubjectId(subject.getId()); - hit.setPhone(Long.valueOf(subject.getClientId())); - hit.setSignalType(signal.getSignalType()); - hit.setResponseSentAt(responseSentAt); - hit.setReportFileName(reportFileName.getFileName().toString()); - hits.add(hit); + if (userPackage.getSignalTypes().contains(signal.getSignalType().toString())) { + Hit hit = new Hit(); + hit.setPackageId(userPackage.getId()); + hit.setSubjectId(subject.getId()); + hit.setPhone(Long.valueOf(subject.getClientId())); + hit.setSignalType(signal.getSignalType()); + hit.setResponseSentAt(responseSentAt); + hit.setReportFileName(reportFileName.getFileName().toString()); + hits.add(hit); + } }); if (!hits.isEmpty()) { hitsService.insertHits(hits); diff --git a/src/main/java/ru/nbch/credit_tracker/service/UpdatingFidAndPdService.java b/src/main/java/ru/nbch/credit_tracker/service/UpdatingFidAndPdService.java new file mode 100644 index 0000000..f32a813 --- /dev/null +++ b/src/main/java/ru/nbch/credit_tracker/service/UpdatingFidAndPdService.java @@ -0,0 +1,38 @@ +package ru.nbch.credit_tracker.service; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; +import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings; +import ru.nbch.credit_tracker.service.task.Pipeline; +import ru.nbch.credit_tracker.service.task.PipelinePackageFabric; +import ru.nbch.credit_tracker.service.task.PipelineRecalcPDOrchestrator; +import ru.nbch.credit_tracker.service.task.SetupParam; +import ru.nbch.credit_tracker.service.task.impl.PipelineMode; + +@Slf4j +@Service +@EnableScheduling +public class UpdatingFidAndPdService { + private final PipelinePackageFabric pipelinePackageManager; + private final PipelineRecalcPDOrchestrator pipelineRecalcPDOrchestrator; + + public UpdatingFidAndPdService(CreditTrackerSettings config, + PipelinePackageFabric pipelinePackageManager, + PipelineRecalcPDOrchestrator pipelineRecalcPDOrchestrator) { + this.pipelinePackageManager = pipelinePackageManager; + this.pipelineRecalcPDOrchestrator = pipelineRecalcPDOrchestrator; + } + + @Scheduled(cron = "${ct.update-fid-cron-expression}") + public void update() { + log.info("Start updating fids and PD"); + try { + Pipeline pipeline = pipelinePackageManager.buildRecalculationPD(new SetupParam(null, null, PipelineMode.RECALC_PERSONAL_DATA)); + pipelineRecalcPDOrchestrator.startOrReject(pipeline); + } catch (Exception e) { + log.error("Failed to build pipeline", e); + } + } +} diff --git a/src/main/java/ru/nbch/credit_tracker/service/task/impl/FidNameUpdater.java b/src/main/java/ru/nbch/credit_tracker/service/task/impl/FidNameUpdater.java index 7c73a31..d6c450f 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/task/impl/FidNameUpdater.java +++ b/src/main/java/ru/nbch/credit_tracker/service/task/impl/FidNameUpdater.java @@ -73,7 +73,9 @@ public class FidNameUpdater implements Handler { if (!changingFids.isEmpty()) { List packageIds = packageRecordsService.selectUniquePackageIds(changingFids); - userPackageService.setFidChanged(packageIds); + if (!packageIds.isEmpty()) { + userPackageService.setFidChanged(packageIds); + } } //2.set new fid name and id data in signals_phones_map //2.2 set FID_CHANGED = 1 for this package(select by phone) diff --git a/src/main/resources/mybatis/mapper/signal/PackageRecordsMapper.xml b/src/main/resources/mybatis/mapper/signal/PackageRecordsMapper.xml index c2a0168..dceab51 100644 --- a/src/main/resources/mybatis/mapper/signal/PackageRecordsMapper.xml +++ b/src/main/resources/mybatis/mapper/signal/PackageRecordsMapper.xml @@ -23,7 +23,7 @@ WHERE id = #{id} - WITH src AS (SELECT phone FROM json_to_recordset(#{json}::json) AS t( phone bigint diff --git a/src/main/resources/sql/v2.21.ddl b/src/main/resources/sql/v2.21.ddl index 6d8b67b..38ad0c7 100644 --- a/src/main/resources/sql/v2.21.ddl +++ b/src/main/resources/sql/v2.21.ddl @@ -13,6 +13,8 @@ alter table signals_user_packages add EXTERNAL_PACKAGE_NAME varchar(255); alter table signals_user_packages add FID_CHANGED smallint; +alter table signals_packages_records + add phone_l bigint; alter table signals_hits