diff --git a/Dockerfile b/Dockerfile
index aefdc2d..9bae098 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,6 +1,5 @@
FROM eclipse-temurin:17-jre-alpine
MAINTAINER ru.nbch
-RUN apk add gcompat bash
VOLUME /opt/app/logs/app
VOLUME /opt/app/logs/json
@@ -14,6 +13,11 @@ COPY maven/start-credit-tracker.sh /opt/app/start-credit-tracker.sh
COPY maven/credit-tracker.properties /opt/app/credit-tracker.properties
COPY maven/monitoring-request.xsd /opt/app/monitoring-request.xsd
COPY maven/signal-package.xsd /opt/app/signal-package.xsd
+COPY maven/ca_nbki.cer /usr/local/share/ca-certificates/corp.crt
+
+RUN apk add --no-cache ca-certificates \
+ && update-ca-certificates \
+RUN apk add gcompat bash
RUN chmod +x /opt/app/start-credit-tracker.sh
ENTRYPOINT ["/opt/app/start-credit-tracker.sh"]
diff --git a/ca_nbki.cer b/ca_nbki.cer
new file mode 100644
index 0000000..2af388c
--- /dev/null
+++ b/ca_nbki.cer
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFpTCCA42gAwIBAgIQXRfulgQYrrRFEpmSkmctvzANBgkqhkiG9w0BAQsFADBH
+MRMwEQYKCZImiZPyLGQBGRYDbXNrMRQwEgYKCZImiZPyLGQBGRYEbmJraTEaMBgG
+A1UEAxMRTkJLSS1Sb290LUNBLTIwMzIwHhcNMTQwNTE1MDYxODMzWhcNMzcwMjAx
+MTE1OTEyWjBHMRMwEQYKCZImiZPyLGQBGRYDbXNrMRQwEgYKCZImiZPyLGQBGRYE
+bmJraTEaMBgGA1UEAxMRTkJLSS1Sb290LUNBLTIwMzIwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQCjS1l6kx+tjX2PGmQcVw9wg0Q6SCeWbiz7rxAYZPqE
+OGckXWWjtfUOc8BhD3+BnC4BQ414X1HP2OWQ97pa2LogTksbpNpJ0+p82IPAYxV+
+zpI0FnW09FpzjtB6l/1kE9gKecjBoFG3xDhhFmpzCeK7tsKt94j84XPV/Zo82gYM
+egmqhOfQZ+2HAChBj7gaBJALybFN34wkvN9bWdBPmK/j1jQikEAT8QE9qwcdmCKB
+snHw+heYX4uJyZEkXEzW8GxQfTaAL+3d8HdRm1ZT/dN9KScF3Tp13LnQPCcixYoB
+dF9Pd3P8JDAQX1KUVceLq6e75Q36EQaHHfEA8iQjaKlEzD049QbfAfCzKkSTnxHk
+rOGwhm/h3ipwdAL4eqWkXfRriEvQU2fXGYXS0bhDT0/vBVAhHUMZ15/Oww0QSlc9
+clpau6rYG4m/Fmm8LPyEHROenbNwu35TqLl+CUFES25aE2oZcH6+SyE5dDgpX9e1
+Plt3fT6DuEDuT+rWvm0N8NVPNlQP/1lcbvP1oQrby07LToPatdKF9V5g8MX/19bP
+BFsQsUHLlfffWMqqX8W/OPt5da3XL6U7Z8aBdhS7VAqqrvNhAbJBxgyJAzSfSwtZ
+K5dZTKrJMZqmosUSIrLVr+9oXlbqJjKGNWQjwCfRQmPPkCpmpy1SRg8NPDoa3OVU
+3wIDAQABo4GMMIGJMBMGCSsGAQQBgjcUAgQGHgQAQwBBMAsGA1UdDwQEAwIBhjAP
+BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSkqLxdQSQ2+UIWrqSnms7lhp5zLjAQ
+BgkrBgEEAYI3FQEEAwIBATAjBgkrBgEEAYI3FQIEFgQUvM7jX4RA4XBrZqhNhpl6
+EDcEMZEwDQYJKoZIhvcNAQELBQADggIBAINqzWxlGXFgMwSlWmH4ocDa0A3ip51C
+nEaWB58aomzOZYHnNLXj4KiwY59TMDkiRiql4wWCw2AJBVv2//7JwOqrk8rixq02
+95NVX9TNefMKY3oo/g9bSqEsxoHgOoXP0QiY4GrYwAL6Bl0d/V9KUw5+BzBx/DKo
+ncWD6KHnwFPBnHhIWiFlRAy2dX55rg6YSpB5/IlTQxGTjeg0OjX5w0ZE3L/0GZBl
+O5W2E0RvUSErbjzoisxrhG48Mo5TtoGTmazKHRDqRCuZVnV0uEL9XaUOOV3G+LlP
+/ujADUkF4iiIgoynB0W30fpwEqQFBSUxe+KzMw10ojaYaSz2g/HEg9ZKxy1a/bDL
+6Va+vUMrypg26+MFrEdUwpPuORV1chtah/t+OxSk1dO82cuhjmRHX79mRwqjmXUs
+5I/fNey8JWLCAV+Acf24CepdeYzeBGdh94t9FqTWw7aJaN5vL9ghwyG7JT8ozAfp
+wYa1vq3nq+7SiELenQYYEUl792V8OsRV6N9nJkoLC12R9HGHjxMja5O2+Sw9LU4p
+TjQcJt+qhT/c5+i6tQMjJUCTpXtOkaEezwrPpbUcoluGsz9vxs84eDtHiwumUCGj
+XgaMSjcnY35dgne/x3kXcLYazdUYDoyYOEkgKG7ncSFg0lnIgwtYpqW6tzL3t9KN
+Tsm6UcBOJAnv
+-----END CERTIFICATE-----
diff --git a/docker_compose/credit_tracker_config.env b/docker_compose/credit_tracker_config.env
index 7678f1a..ee8f9ad 100644
--- a/docker_compose/credit_tracker_config.env
+++ b/docker_compose/credit_tracker_config.env
@@ -1,5 +1,5 @@
#commons
-APP_VERSION=1.17
+APP_VERSION=1.20
REGISTRY_URL=rh8-vm3.nbki.msk:5000
JMX_PORT=
JMX_HOSTNAME=
diff --git a/pom.xml b/pom.xml
index 1e84518..1599155 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,272 +1,275 @@
- 4.0.0
-
- org.springframework.boot
- spring-boot-starter-parent
- 3.4.6
-
-
- ru.nbch
- credit-tracker
- 2.0
- credit_tracker
- Credit Tracker Application
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 3.4.6
+
+
+ ru.nbch
+ credit-tracker
+ 1.20
+ credit_tracker
+ Credit Tracker Application
-
- 21
- git_info
- git.properties
- rh8-vm3.nbki.msk:5000
-
-
+
+ 17
+ git_info
+ git.properties
+ 10.230.238.56:5000
+
+
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
- org.springframework.boot
- spring-boot-starter-aop
-
-
- org.mybatis.spring.boot
- mybatis-spring-boot-starter
- 3.0.4
-
-
- org.postgresql
- postgresql
- runtime
-
-
- com.ibm.db2
- jcc
- 12.1.0.0
-
-
- org.projectlombok
- lombok
- true
-
-
- org.slf4j
- slf4j-api
- 2.0.7
-
-
- ch.qos.logback
- logback-classic
- 1.4.12
-
-
- ch.qos.logback
- logback-core
-
-
-
-
- ch.qos.logback
- logback-core
- 1.5.12
-
-
- org.apache.commons
- commons-lang3
- 3.17.0
-
-
- commons-io
- commons-io
- 2.18.0
-
-
-
- jakarta.xml.bind
- jakarta.xml.bind-api
- 4.0.2
-
-
-
- org.eclipse.persistence
- org.eclipse.persistence.moxy
- 4.0.2
-
-
-
- com.sun.activation
- jakarta.activation
- 2.0.1
-
-
- co.elastic.apm
- apm-agent-api
- 1.43.0
-
-
- com.internetitem
- logback-elasticsearch-appender
- 1.6
-
-
- net.logstash.logback
- logstash-logback-encoder
- 7.4
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
- org.mybatis.spring.boot
- mybatis-spring-boot-starter-test
- 3.0.4
- test
-
-
- com.h2database
- h2
- test
-
-
- org.mockito
- mockito-junit-jupiter
- test
-
-
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ 3.0.4
+
+
+ org.postgresql
+ postgresql
+ runtime
+
+
+ com.ibm.db2
+ jcc
+ 12.1.0.0
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+ org.slf4j
+ slf4j-api
+ 2.0.7
+
+
+ ch.qos.logback
+ logback-classic
+ 1.4.12
+
+
+ ch.qos.logback
+ logback-core
+
+
+
+
+ ch.qos.logback
+ logback-core
+ 1.5.12
+
+
+ org.apache.commons
+ commons-lang3
+ 3.17.0
+
+
+ commons-io
+ commons-io
+ 2.18.0
+
+
+
+ jakarta.xml.bind
+ jakarta.xml.bind-api
+ 4.0.2
+
+
+
+ org.eclipse.persistence
+ org.eclipse.persistence.moxy
+ 4.0.2
+
+
+
+ com.sun.activation
+ jakarta.activation
+ 2.0.1
+
+
+ co.elastic.apm
+ apm-agent-api
+ 1.43.0
+
+
+ com.internetitem
+ logback-elasticsearch-appender
+ 1.6
+
+
+ net.logstash.logback
+ logstash-logback-encoder
+ 7.4
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter-test
+ 3.0.4
+ test
+
+
+ org.mockito
+ mockito-junit-jupiter
+ test
+
+
-
-
- docker-push-dev
-
-
-
-
- io.fabric8
- docker-maven-plugin
- 0.45.0
-
-
- Build and deploy docker container
- install
-
-
- push
-
-
-
-
-
-
- ${project.artifactId}:${project.version}
- ${registry.url}
-
- ${project.basedir}/Dockerfile
-
-
-
-
- ${project.build.directory}/${project.build.finalName}.jar
- .
-
-
- ${project.basedir}/apm-agent/elastic-apm-agent-1.45.0.jar
- .
-
-
- ${project.basedir}/start-credit-tracker.sh
- .
-
-
- ${project.basedir}/credit-tracker.properties
- .
-
-
- ${project.basedir}/monitoring-request.xsd
- .
-
-
- ${project.basedir}/signal-package.xsd
- .
-
-
-
-
-
- ${project.version}
-
-
-
-
-
-
-
-
-
-
-
-
- credit-tracker
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
-
-
- org.projectlombok
- lombok
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
- org.projectlombok
- lombok
-
-
-
-
-
- pl.project13.maven
- git-commit-id-plugin
- 4.9.10
-
-
- get-the-git-infos
-
- revision
-
- compile
-
-
-
- false
- ${project.basedir}/${git.info.relative.dir}
- true
-
- ${project.build.outputDirectory}/${git.info.filename}
-
- ${git.info.prefix}
-
- ${git.info.prefix}.commit.id
- ${git.info.prefix}.branch
- ${git.info.prefix}.build.version
- ${git.info.prefix}.build.time
- ${git.info.prefix}.closest.tag.name
-
-
-
+
+
+ docker-push-dev
+
+
+
+ io.fabric8
+ docker-maven-plugin
+ 0.45.0
+
+
+ Build and deploy docker container
+ install
+
+ build
+ push
+
+
+
+
+
+
+ ${project.artifactId}:${project.version}
+ ${registry.url}
+
+ ${project.basedir}/Dockerfile
+
+
+
+
+
+ ${project.build.directory}/${project.build.finalName}.jar
+
+ .
+
+
+
+ ${project.basedir}/apm-agent/elastic-apm-agent-1.45.0.jar
+
+ .
+
+
+ ${project.basedir}/start-credit-tracker.sh
+ .
+
+
+ ${project.basedir}/credit-tracker.properties
+ .
+
+
+ ${project.basedir}/monitoring-request.xsd
+ .
+
+
+ ${project.basedir}/signal-package.xsd
+ .
+
+
+
+ ${project.basedir}/ca_nbki.cer
+
+ .
+
+
+
+
+
+ ${project.version}
+
+
+
+
+
+
+
+
+
+
+
+ credit-tracker
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+
+ pl.project13.maven
+ git-commit-id-plugin
+ 4.9.10
+
+
+ get-the-git-infos
+
+ revision
+
+ compile
+
+
+
+ false
+ ${project.basedir}/${git.info.relative.dir}
+ true
+
+ ${project.build.outputDirectory}/${git.info.filename}
+
+ ${git.info.prefix}
+
+ ${git.info.prefix}.commit.id
+ ${git.info.prefix}.branch
+ ${git.info.prefix}.build.version
+ ${git.info.prefix}.build.time
+ ${git.info.prefix}.closest.tag.name
+
+
+
-
-
+
+
diff --git a/src/main/java/ru/nbch/credit_tracker/builder/PersonFactoryBuilder.java b/src/main/java/ru/nbch/credit_tracker/builder/PersonFactoryBuilder.java
index 2bc69dd..55ecaae 100644
--- a/src/main/java/ru/nbch/credit_tracker/builder/PersonFactoryBuilder.java
+++ b/src/main/java/ru/nbch/credit_tracker/builder/PersonFactoryBuilder.java
@@ -30,7 +30,7 @@ public class PersonFactoryBuilder {
private PersonService.PersonData personData;
- private Integer uid;
+ private Long uid;
public static PersonFactoryBuilder builder() {
return new PersonFactoryBuilder();
@@ -41,7 +41,7 @@ public class PersonFactoryBuilder {
return this;
}
- public PersonFactoryBuilder uid(Integer uid) {
+ public PersonFactoryBuilder uid(Long uid) {
this.uid = uid;
return this;
}
diff --git a/src/main/java/ru/nbch/credit_tracker/config/rest/GlobalExceptionHandler.java b/src/main/java/ru/nbch/credit_tracker/config/rest/GlobalExceptionHandler.java
index edbbabb..68968d5 100644
--- a/src/main/java/ru/nbch/credit_tracker/config/rest/GlobalExceptionHandler.java
+++ b/src/main/java/ru/nbch/credit_tracker/config/rest/GlobalExceptionHandler.java
@@ -74,6 +74,7 @@ public class GlobalExceptionHandler {
switch (ex.getErrorFormat()) {
case MonitoringError -> commonError = new MonitoringError();
case MonitoringActivePackagesError -> commonError = new MonitoringActivePackagesError();
+ case MonitoringAllPackagesError -> commonError = new MonitoringAllPackagesError();
case MonitoringDownloadError -> commonError = new MonitoringDownloadError();
case MonitoringReportListError -> commonError = new MonitoringReportListError();
case MonitoringPackageDeleteError -> commonError = new MonitoringPackageDeleteError();
diff --git a/src/main/java/ru/nbch/credit_tracker/entities/dto/Hit.java b/src/main/java/ru/nbch/credit_tracker/entities/dto/Hit.java
index 0b46bb8..e0ed9af 100644
--- a/src/main/java/ru/nbch/credit_tracker/entities/dto/Hit.java
+++ b/src/main/java/ru/nbch/credit_tracker/entities/dto/Hit.java
@@ -8,8 +8,8 @@ import java.time.LocalDateTime;
@Getter
@Setter
public class Hit {
- private Integer id;
- private Integer packageId;
+ private Long id;
+ private Long packageId;
private String subjectId;
private Integer signalType;
private LocalDateTime responseSentAt;
diff --git a/src/main/java/ru/nbch/credit_tracker/entities/dto/PhoneFidMap.java b/src/main/java/ru/nbch/credit_tracker/entities/dto/PhoneFidMap.java
index 456b6f6..0214be5 100644
--- a/src/main/java/ru/nbch/credit_tracker/entities/dto/PhoneFidMap.java
+++ b/src/main/java/ru/nbch/credit_tracker/entities/dto/PhoneFidMap.java
@@ -12,9 +12,9 @@ import java.time.LocalDateTime;
@NoArgsConstructor
@Builder
public class PhoneFidMap {
- private Integer id;
+ private Long id;
+ private Long packageId;
private UUID recUuid;
- private Integer packageId;
private String subjectId;
private String phone;
private Integer fid;
diff --git a/src/main/java/ru/nbch/credit_tracker/entities/dto/UserPackage.java b/src/main/java/ru/nbch/credit_tracker/entities/dto/UserPackage.java
index f5cb245..9f7db86 100644
--- a/src/main/java/ru/nbch/credit_tracker/entities/dto/UserPackage.java
+++ b/src/main/java/ru/nbch/credit_tracker/entities/dto/UserPackage.java
@@ -10,11 +10,12 @@ import java.time.LocalDateTime;
@Setter
@Builder
public class UserPackage {
- private Integer id;
+ private Long id;
private String userId;
private String packageName;
private LocalDateTime createdAt;
private String status;
private LocalDateTime deactivatedAt;
private String lastDownloadedReport;
+ private LocalDateTime monitoringAt;
}
diff --git a/src/main/java/ru/nbch/credit_tracker/entities/external_request/signals/Person.java b/src/main/java/ru/nbch/credit_tracker/entities/external_request/signals/Person.java
index e3f09e4..06b6fc5 100644
--- a/src/main/java/ru/nbch/credit_tracker/entities/external_request/signals/Person.java
+++ b/src/main/java/ru/nbch/credit_tracker/entities/external_request/signals/Person.java
@@ -15,7 +15,7 @@ public class Person {
@XmlValue
protected String value;
@XmlAttribute(name = "uid", required = true)
- protected Integer uid;
+ protected Long uid;
@XmlAttribute(name = "oksm", required = true)
protected String oksm;
@XmlAttribute(name = "s", required = true)
diff --git a/src/main/java/ru/nbch/credit_tracker/entities/external_response/monitoring_report_error/MonitoringReportErrors.java b/src/main/java/ru/nbch/credit_tracker/entities/external_response/monitoring_report_error/MonitoringReportErrors.java
index 690577c..146e42f 100644
--- a/src/main/java/ru/nbch/credit_tracker/entities/external_response/monitoring_report_error/MonitoringReportErrors.java
+++ b/src/main/java/ru/nbch/credit_tracker/entities/external_response/monitoring_report_error/MonitoringReportErrors.java
@@ -63,7 +63,7 @@ public class MonitoringReportErrors {
public static class P {
@XmlAttribute(name = "uid")
- protected Integer uid;
+ protected Long uid;
@XmlValue
protected String value;
diff --git a/src/main/java/ru/nbch/credit_tracker/entities/external_response/online_download/Person.java b/src/main/java/ru/nbch/credit_tracker/entities/external_response/online_download/Person.java
index 7b83f53..7012472 100644
--- a/src/main/java/ru/nbch/credit_tracker/entities/external_response/online_download/Person.java
+++ b/src/main/java/ru/nbch/credit_tracker/entities/external_response/online_download/Person.java
@@ -16,7 +16,7 @@ import java.util.List;
public class Person {
@XmlAttribute(name = "uid", required = true)
- protected Integer uid;
+ protected Long uid;
@XmlElement(name = "Inquiry", required = true)
protected List inquiries;
diff --git a/src/main/java/ru/nbch/credit_tracker/entities/user_response/errors/MonitoringAllPackagesError.java b/src/main/java/ru/nbch/credit_tracker/entities/user_response/errors/MonitoringAllPackagesError.java
new file mode 100644
index 0000000..1a339e6
--- /dev/null
+++ b/src/main/java/ru/nbch/credit_tracker/entities/user_response/errors/MonitoringAllPackagesError.java
@@ -0,0 +1,25 @@
+package ru.nbch.credit_tracker.entities.user_response.errors;
+
+import jakarta.xml.bind.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MonitoringAllPackagesResponse", propOrder = {
+ "status",
+ "errorCode",
+ "errorText"
+})
+@XmlRootElement(name = "MonitoringAllPackagesResponse")
+public class MonitoringAllPackagesError implements CommonError {
+
+ @XmlElement(name = "Status", required = true)
+ protected String status;
+ @XmlElement(name = "Code",required = true)
+ protected String errorCode;
+ @XmlElement(name = "Message",required = true)
+ protected String errorText;
+
+}
diff --git a/src/main/java/ru/nbch/credit_tracker/enums/XmlErrorFormat.java b/src/main/java/ru/nbch/credit_tracker/enums/XmlErrorFormat.java
index 45498ea..c6e3783 100644
--- a/src/main/java/ru/nbch/credit_tracker/enums/XmlErrorFormat.java
+++ b/src/main/java/ru/nbch/credit_tracker/enums/XmlErrorFormat.java
@@ -2,6 +2,7 @@ package ru.nbch.credit_tracker.enums;
public enum XmlErrorFormat {
MonitoringActivePackagesError,
+ MonitoringAllPackagesError,
MonitoringDownloadError,
MonitoringError,
MonitoringPackageDeleteError,
diff --git a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java
index e904779..b44a1c6 100644
--- a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java
+++ b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java
@@ -103,7 +103,7 @@ public class SignalFacade {
// Валидация Архива на количетсво файлов, размер и расширение
MonitoringRequest monitoringRequest;
- Integer packageId;
+ Long packageId;
ZipInputStream zipInputStream = null;
String filePath;
try {
@@ -224,7 +224,7 @@ public class SignalFacade {
}
@SetAndClearMdc(argIndex = 1)
- public void registerFidsAndDebts(Integer packageId, String packageName, String filePath) {
+ public void registerFidsAndDebts(Long packageId, String packageName, String filePath) {
Map context = MDC.getCopyOfContextMap();
executor.execute(() -> {
if (context != null) {
@@ -240,8 +240,9 @@ public class SignalFacade {
return;
}
if (signalRestService.setupMonitoring(packageId)) {
- log.info("Package was successfully registered in signal service. PackageId: {} PackageName: {}", packageId, packageName);
- signalService.updatePackageStatus(packageId, Status.ON_MONITORING);
+ LocalDateTime monitoringAt = LocalDateTime.now();
+ log.info("Package was successfully registered in signal service. PackageId: {} PackageName: {}, MonitoringAt: {}", packageId, packageName, monitoringAt);
+ signalService.updatePackageOnMonitoringSuccess(packageId, monitoringAt);
monitoringErrorProcesingService.findErrors(packageId);
} else {
log.info("Package registration was rejected by signal service. PackageId: {} PackageName: {}", packageId, packageName);
@@ -297,7 +298,7 @@ public class SignalFacade {
try {
AuthorizationService.AuthResult authResult = authorizationService.findAuthInfo(allPackagesRequest.getUserId(), allPackagesRequest.getPassword());
if (!authResult.isSuccess()) {
- throw clientExcp(authResult.getError(), XmlErrorFormat.MonitoringActivePackagesError);
+ throw clientExcp(authResult.getError(), XmlErrorFormat.MonitoringAllPackagesError);
}
List activePackages = signalService.findAllPackages(allPackagesRequest.getUserId());
@@ -319,13 +320,13 @@ public class SignalFacade {
response.setPackages(packages);
return ResponseEntity.ok(response);
} else {
- throw clientExcp(SignalError.ERROR_019, XmlErrorFormat.MonitoringActivePackagesError);
+ throw clientExcp(SignalError.ERROR_019, XmlErrorFormat.MonitoringAllPackagesError);
}
} catch (Exception e) {
if (e instanceof SignalClientException) {
throw (SignalClientException) e;
}
- throw serverExcp(SignalError.ERROR_013, XmlErrorFormat.MonitoringActivePackagesError, e);
+ throw serverExcp(SignalError.ERROR_013, XmlErrorFormat.MonitoringAllPackagesError, e);
}
}
diff --git a/src/main/java/ru/nbch/credit_tracker/mapper/signal/PhoneFidMapMapper.java b/src/main/java/ru/nbch/credit_tracker/mapper/signal/PhoneFidMapMapper.java
index 490eb83..f78a0bc 100644
--- a/src/main/java/ru/nbch/credit_tracker/mapper/signal/PhoneFidMapMapper.java
+++ b/src/main/java/ru/nbch/credit_tracker/mapper/signal/PhoneFidMapMapper.java
@@ -11,11 +11,11 @@ import java.util.List;
@Mapper
public interface PhoneFidMapMapper {
- void registerSubjects(@Param("subjects") List subjects, @Param("packageId") Integer packageId);
- void register(@Param("phoneFidMap") List phoneFidMap, @Param("packageId") Integer packageId);
+ void registerSubjects(@Param("subjects") List subjects, @Param("packageId") Long packageId);
+ void register(@Param("phoneFidMap") List phoneFidMap, @Param("packageId") Long packageId);
void registerWithId(@Param("phoneFidMap") List phoneFidMap);
- List findFullPhoneFidMap(@Param("packageId") Integer packageId, @Param("offset") int offset, @Param("limit") int limit);
+ List findFullPhoneFidMap(@Param("packageId") Long packageId, @Param("offset") int offset, @Param("limit") int limit);
void updatePhoneFidMaps(@Param("subjects") Collection subjects);
void updateOne(@Param("subject") PhoneFidMap subject);
@@ -23,7 +23,7 @@ public interface PhoneFidMapMapper {
void updatePhoneFidMapsErrors(@Param("subjects") List subjects);
- PhoneFidMap findPhoneFidMapById(@Param("id") Integer packageId);
+ PhoneFidMap findPhoneFidMapById(@Param("id") Long packageId);
- boolean hasNonNullFids(@Param("packageId") Integer packageId);
+ boolean hasNonNullFids(@Param("packageId") Long packageId);
}
diff --git a/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java b/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java
index 0540fa1..e2f8b46 100644
--- a/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java
+++ b/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java
@@ -18,13 +18,15 @@ public interface UserPackageMapper {
void deletePackage(@Param("userId") String userId, @Param("packageName") String packageName, @Param("status") String newStatus, @Param("previousStatus") String previousStatus, @Param("deactivatedAt") LocalDateTime deactivatedAt);
- Integer insertPackage(@Param("userPackage") UserPackage userPackage);
+ Long insertPackage(@Param("userPackage") UserPackage userPackage);
- void updatePackageStatus(@Param("packageId") Integer packageId, @Param("status") String status);
+ void updatePackageStatus(@Param("packageId") Long packageId, @Param("status") String status);
- void updatePackageLastDownloadedReport(@Param("id") Integer id, @Param("fileName") String fileName);
+ void updatePackageLastDownloadedReport(@Param("id") Long id, @Param("fileName") String fileName);
- UserPackage findPackage(@Param("id") Integer id);
+ void updatePackageOnMonitoringSuccess(@Param("id") Long id, @Param("monitoringAt") LocalDateTime monitoringAt);
+
+ UserPackage findPackage(@Param("id") Long id);
List findUserPackages(@Param("userId") String userId, @Param("statuses") List status);
diff --git a/src/main/java/ru/nbch/credit_tracker/service/MonitoringErrorProcesingService.java b/src/main/java/ru/nbch/credit_tracker/service/MonitoringErrorProcesingService.java
index 74bd9d1..edd41d4 100644
--- a/src/main/java/ru/nbch/credit_tracker/service/MonitoringErrorProcesingService.java
+++ b/src/main/java/ru/nbch/credit_tracker/service/MonitoringErrorProcesingService.java
@@ -25,13 +25,13 @@ public class MonitoringErrorProcesingService {
this.signalRestService = signalRestService;
}
- public void findErrors(Integer packageId) {
+ public void findErrors(Long packageId) {
UserPackage userPackage = signalService.findPackage(packageId);
getCurrentProxy().processPackage(userPackage, packageId);
}
@SetAndClearMdc
- public void processPackage(UserPackage userPackage, Integer packageId) {
+ public void processPackage(UserPackage userPackage, Long packageId) {
if (userPackage != null) {
String packCode = userPackage.getUserId().substring(0, 6) + "_" + userPackage.getPackageName();
log.info("Проверка на ошибки при постановке на мониторинг. packCode={}, packageId={}", packCode, packageId);
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 07c5a10..6d17ba4 100644
--- a/src/main/java/ru/nbch/credit_tracker/service/MonitoringService.java
+++ b/src/main/java/ru/nbch/credit_tracker/service/MonitoringService.java
@@ -312,7 +312,7 @@ public class MonitoringService {
log.info("Signal hits updated for package {}", userPackage.getPackageName());
}
- public String loadReport(Integer packageId, String reportName) {
+ public String loadReport(Long packageId, String reportName) {
return signalRestService.downloadReport(packageId, reportName);
}
diff --git a/src/main/java/ru/nbch/credit_tracker/service/SignalService.java b/src/main/java/ru/nbch/credit_tracker/service/SignalService.java
index 59e8912..a60fe35 100644
--- a/src/main/java/ru/nbch/credit_tracker/service/SignalService.java
+++ b/src/main/java/ru/nbch/credit_tracker/service/SignalService.java
@@ -77,7 +77,7 @@ public class SignalService {
return userPackageService.isPackageNotUnique(userId, packageName);
}
- public Integer registerPackage(MonitoringRequest request) {
+ public Long registerPackage(MonitoringRequest request) {
UserPackage userPackage = UserPackage.builder()
.userId(request.getUserId())
.packageName(request.getPackageName())
@@ -87,7 +87,7 @@ public class SignalService {
return userPackageService.insertPackage(userPackage);
}
- public Integer registerPackage(String userId, String packageName) {
+ public Long registerPackage(String userId, String packageName) {
UserPackage userPackage = UserPackage.builder()
.userId(userId)
.packageName(packageName)
@@ -97,7 +97,7 @@ public class SignalService {
return userPackageService.insertPackage(userPackage);
}
- public void registerSubjects(String filePath, Integer packageId) {
+ public void registerSubjects(String filePath, Long packageId) {
log.info("Start registering subjects. PackageId: {}", packageId);
try (BufferedInputStream in = new BufferedInputStream(Files.newInputStream(Path.of(filePath)), 8 * 1024 * 1024)) {
staxXmlProcessor.read(in, MonitoringRequest.class,
@@ -122,7 +122,7 @@ public class SignalService {
* на поиск флагов и формирование отчета в оф. сервис сигналов
* @param packageId id пакета, по которому идет выборка {@link PhoneFidMap}
*/
- public void processSubjects(Integer packageId) {
+ public void processSubjects(Long packageId) {
int offset = 0;
List batch;
do {
@@ -139,7 +139,7 @@ public class SignalService {
/**
* Обрабатывает все PhoneFidMap по packageId, выгружая их пачками и фильтруя по переданному фильтру
*/
- public UpdateResult updateSubjects(Integer packageId, Predicate filter) {
+ public UpdateResult updateSubjects(Long packageId, Predicate filter) {
boolean updated = false;
boolean noFidsFound = true;
int offset = 0;
@@ -194,7 +194,7 @@ public class SignalService {
* @return fidsFound true - если хотя бы по одному номеру был найден фид, false - в противном случае
*/
// TODO Добавить отдельный метод. Если не нашелся фид, надо обновить в базе fid = null и флаги = null calculated_at=now()
- public boolean updateFlags(Map fidsMap, Integer packageId) {
+ public boolean updateFlags(Map fidsMap, Long packageId) {
log.info("Start calculating flags for subjects batch. PackageId: {}", packageId);
Map flagsDataMap = flagsService.findFlags(fidsMap.keySet().stream().toList());
List subjectToUpdate = new ArrayList<>();
@@ -238,24 +238,28 @@ public class SignalService {
public void rejectPackage(String userId, String packageName) {
UserPackage userPackage = UserPackage.builder()
- .userId(userId)
- .packageName(packageName)
- .createdAt(LocalDateTime.now())
- .status(Status.REJECTED.name())
- .build();
+ .userId(userId)
+ .packageName(packageName)
+ .createdAt(LocalDateTime.now())
+ .status(Status.REJECTED.name())
+ .build();
userPackageService.insertPackage(userPackage);
}
- public void updatePackageStatus(Integer packageId, Status status) {
+ public void updatePackageStatus(Long packageId, Status status) {
userPackageService.updatePackageStatus(packageId, status);
}
+ public void updatePackageOnMonitoringSuccess(Long packageId, LocalDateTime monitoringAt) {
+ userPackageService.updatePackageOnMonitoringSuccess(packageId, monitoringAt);
+ }
+
/**
* Формирует файл запроса в официальный сервис сигналов, выгружая паспортные данные пачками и сразу записывая их в файл
*
* @return Путь к файлу запроса к официальному сервису сигналов на постановку на мониторинг
*/
- public String writeSignals(Integer packageId) {
+ public String writeSignals(Long packageId) {
String folderPath = config.getLoadDir() + File.separator + "tmp_folder" + File.separator;
String filePath = folderPath + UUID.randomUUID() + "_output.xml";
CTUtil.createFolder(folderPath);
@@ -271,7 +275,7 @@ public class SignalService {
return filePath;
}
- public Signals buildSignals(Integer packageId) {
+ public Signals buildSignals(Long packageId) {
UserPackage userPackage = userPackageService.findPackage(packageId);
Signals signals = new Signals();
signals.setOnline("2"); // Всегда=2 (только онлайн-сигналы)
@@ -287,7 +291,7 @@ public class SignalService {
* Обрабатывает все PhoneFidMap по packageId, выгружая их пачками и фильтруя по переданному фильтру.
* writer записывает пачку сразу в файл
*/
- private void buildPersons(Integer packageId, Consumer> writer) {
+ private void buildPersons(Long packageId, Consumer> writer) {
int offset = 0;
List batch;
do {
@@ -327,7 +331,7 @@ public class SignalService {
return persons;
}
- public void updateSubjectsErrors(String filePath, Integer packageId) {
+ public void updateSubjectsErrors(String filePath, Long packageId) {
log.info("Start updating subjects errors. PackageId: {}", packageId);
try (BufferedInputStream in = new BufferedInputStream(Files.newInputStream(Path.of(filePath)), 8 * 1024 * 1024)) {
staxXmlProcessor.read(in, MonitoringReportErrors.class,
@@ -386,19 +390,19 @@ public class SignalService {
hitsService.insertHits(hits);
}
- public void updateLastDownloadedReport(Integer id, String fileName) {
+ public void updateLastDownloadedReport(Long id, String fileName) {
userPackageService.updatePackageLastDownloadedReport(id, fileName);
}
- public PhoneFidMap findPhoneFidMapById(Integer id) {
+ public PhoneFidMap findPhoneFidMapById(Long id) {
return phoneFidMapService.findPhoneFidMapById(id);
}
- public boolean hasNonNullfids(Integer packageId) {
+ public boolean hasNonNullfids(Long packageId) {
return phoneFidMapService.hasNonNullfids(packageId);
}
- public UserPackage findPackage(Integer packageId) {
+ public UserPackage findPackage(Long packageId) {
return userPackageService.findPackage(packageId);
}
diff --git a/src/main/java/ru/nbch/credit_tracker/service/UpdateProcessingPackagesService.java b/src/main/java/ru/nbch/credit_tracker/service/UpdateProcessingPackagesService.java
index 1ca26c7..81506d5 100644
--- a/src/main/java/ru/nbch/credit_tracker/service/UpdateProcessingPackagesService.java
+++ b/src/main/java/ru/nbch/credit_tracker/service/UpdateProcessingPackagesService.java
@@ -45,7 +45,7 @@ public class UpdateProcessingPackagesService {
}
@SetAndClearMdc(argIndex = 1)
- public void process(Integer packageId, String packageName) {
+ public void process(Long packageId, String packageName) {
try {
SignalService.UpdateResult updateResult = signalService.updateSubjects(packageId, null);
if (updateResult.isNoFidsFound()) {
diff --git a/src/main/java/ru/nbch/credit_tracker/service/UpdatingFlagsService.java b/src/main/java/ru/nbch/credit_tracker/service/UpdatingFlagsService.java
index 3f05e3f..a62e62e 100644
--- a/src/main/java/ru/nbch/credit_tracker/service/UpdatingFlagsService.java
+++ b/src/main/java/ru/nbch/credit_tracker/service/UpdatingFlagsService.java
@@ -54,21 +54,24 @@ public class UpdatingFlagsService {
for (UserPackage userPackage : packages) {
log.info("Updating flags for Package {}", userPackage.getPackageName());
MDC.put("ru.nbch.credit_tracker.log.mdc.key", "[" + userPackage.getPackageName() +"]");
- updateFlags(userPackage.getId(), userPackage.getPackageName());
+ updateFlags(userPackage);
MDC.remove("ru.nbch.credit_tracker.log.mdc.key");
}
log.info("Finish updating flags");
}
- private void updateFlags(Integer packageId, String packageName) {
+ private void updateFlags(UserPackage userPackage) {
+ Long packageId = userPackage.getId();
+ String packageName = userPackage.getPackageName();
try {
signalService.updatePackageStatus(packageId, Status.PROCESSING);
Predicate filter = subject -> subject.getCalculatedAt() != null && hasDaysPassed(subject.getCalculatedAt());
SignalService.UpdateResult updateResult = signalService.updateSubjects(packageId, filter);
if (updateResult.isUpdated()) {
if (signalRestService.setupMonitoring(packageId)) {
- log.info("Flags were updated successfully. PackageId: {} PackageName: {}. Package status changed to ON_MONITORING", packageId, packageName);
- signalService.updatePackageStatus(packageId, Status.ON_MONITORING);
+ LocalDateTime monitoringAt = userPackage.getMonitoringAt() != null ? userPackage.getMonitoringAt() : LocalDateTime.now();
+ log.info("Flags were updated successfully. PackageId: {} PackageName: {} MonitoringAt: {}. Package status changed to ON_MONITORING", packageId, packageName, monitoringAt);
+ signalService.updatePackageOnMonitoringSuccess(packageId, monitoringAt);
monitoringErrorProcesingService.findErrors(packageId);
} else {
log.info("Updated package registration was rejected by signal service. PackageId: {} PackageName: {}", packageId, packageName);
diff --git a/src/main/java/ru/nbch/credit_tracker/service/signal/PhoneFidMapService.java b/src/main/java/ru/nbch/credit_tracker/service/signal/PhoneFidMapService.java
index 8985fe9..3962e5c 100644
--- a/src/main/java/ru/nbch/credit_tracker/service/signal/PhoneFidMapService.java
+++ b/src/main/java/ru/nbch/credit_tracker/service/signal/PhoneFidMapService.java
@@ -22,14 +22,15 @@ public class PhoneFidMapService {
this.sqlSessionFactory = sqlSessionFactory;
}
- public void registerSubjects(List subjects, Integer packageId) {
+ public void registerSubjects(List subjects, Long packageId) {
mapper.registerSubjects(subjects, packageId);
}
- public void register(List phoneFidMap, Integer packageId) {
+ public void register(List phoneFidMap, Long packageId) {
mapper.register(phoneFidMap, packageId);
}
- public List findFullPhoneFidMap(Integer packageId, int offset, int limit) {
+
+ public List findFullPhoneFidMap(Long packageId, int offset, int limit) {
return mapper.findFullPhoneFidMap(packageId, offset, limit);
}
@@ -55,11 +56,11 @@ public class PhoneFidMapService {
mapper.updatePhoneFidMapsErrors(subjects);
}
- public PhoneFidMap findPhoneFidMapById(Integer id) {
+ public PhoneFidMap findPhoneFidMapById(Long id) {
return mapper.findPhoneFidMapById(id);
}
- public boolean hasNonNullfids(Integer packageId) {
+ public boolean hasNonNullfids(Long packageId) {
return mapper.hasNonNullFids(packageId);
}
}
diff --git a/src/main/java/ru/nbch/credit_tracker/service/signal/SignalRestService.java b/src/main/java/ru/nbch/credit_tracker/service/signal/SignalRestService.java
index 2d30db2..ad08a0f 100644
--- a/src/main/java/ru/nbch/credit_tracker/service/signal/SignalRestService.java
+++ b/src/main/java/ru/nbch/credit_tracker/service/signal/SignalRestService.java
@@ -68,7 +68,7 @@ public class SignalRestService {
* Ставит пакет на мониторинг в официальный сервис сигналов
* @return true - если пакет успешно поставился на мониторинг. false - в противном случае
*/
- public boolean setupMonitoring(Integer packageId) throws Exception {
+ public boolean setupMonitoring(Long packageId) throws Exception {
String path = signalService.writeSignals(packageId);
Resource request = compressFile(path);
@@ -105,7 +105,7 @@ public class SignalRestService {
/**
* @return имя файла с ошибками по поставленному на мониторинг отчету
*/
- public String getErrorFileName(Integer packageId, String packCode) {
+ public String getErrorFileName(Long packageId, String packCode) {
String url = GET_REPORT_URI + "?packCode=" + packCode;
HttpHeaders headers = new HttpHeaders();
@@ -148,7 +148,7 @@ public class SignalRestService {
*
* @return путь к разархивированному файлу. Пример: /tmp_folder//0001XX_MY_BATCH_223112.1.errors.xml.gz
*/
- public String loadErrorFile(Integer packageId, String fileName) {
+ public String loadErrorFile(Long packageId, String fileName) {
String url = DOWNLOAD_REPORT_URI + "?fNameRequest=" + fileName;
HttpHeaders headers = new HttpHeaders();
@@ -229,7 +229,7 @@ public class SignalRestService {
*
* @return путь к разархивированному файлу. Пример: /tmp_folder//0001XX_MY_BATCH_204.1.online.2025-07-08T20-00-46.xml.gz.xml
*/
- public String downloadReport(Integer packageId, String reportName) {
+ public String downloadReport(Long packageId, String reportName) {
String url = DOWNLOAD_ONLINE_REPORT_URI + "?fNameReport=" + reportName;
HttpHeaders headers = new HttpHeaders();
@@ -247,7 +247,7 @@ public class SignalRestService {
return unzipReport(response,packageId, reportName);
}
- private String unzipReport(ResponseEntity response, Integer packageId, String reportName) {
+ private String unzipReport(ResponseEntity response, Long packageId, String reportName) {
boolean isGzipped = response.getHeaders().getContentType() != null
&& response.getHeaders().getContentType().toString().equals("application/x-gzip");
diff --git a/src/main/java/ru/nbch/credit_tracker/service/signal/UserPackageService.java b/src/main/java/ru/nbch/credit_tracker/service/signal/UserPackageService.java
index 2699ec6..b38ec4c 100644
--- a/src/main/java/ru/nbch/credit_tracker/service/signal/UserPackageService.java
+++ b/src/main/java/ru/nbch/credit_tracker/service/signal/UserPackageService.java
@@ -34,19 +34,23 @@ public class UserPackageService {
mapper.deletePackage(userId.substring(0, 6), packageName, newStatus.name(), previousStatus.name(), deactivatedAt);
}
- public Integer insertPackage(UserPackage userPackage) {
+ public Long insertPackage(UserPackage userPackage) {
return mapper.insertPackage(userPackage);
}
- public void updatePackageStatus(Integer packageId, Status status) {
+ public void updatePackageStatus(Long packageId, Status status) {
mapper.updatePackageStatus(packageId, status.name());
}
- public void updatePackageLastDownloadedReport(Integer id, String fileName) {
+ public void updatePackageLastDownloadedReport(Long id, String fileName) {
mapper.updatePackageLastDownloadedReport(id, fileName);
}
- public UserPackage findPackage(Integer id) {
+ public void updatePackageOnMonitoringSuccess(Long id, LocalDateTime monitoringAt) {
+ mapper.updatePackageOnMonitoringSuccess(id, monitoringAt);
+ }
+
+ public UserPackage findPackage(Long id) {
return mapper.findPackage(id);
}
diff --git a/src/main/java/ru/nbch/credit_tracker/service/xml/stax/MonitoringReportErrorsStaxtReader.java b/src/main/java/ru/nbch/credit_tracker/service/xml/stax/MonitoringReportErrorsStaxtReader.java
index eb5a703..18e3c2e 100644
--- a/src/main/java/ru/nbch/credit_tracker/service/xml/stax/MonitoringReportErrorsStaxtReader.java
+++ b/src/main/java/ru/nbch/credit_tracker/service/xml/stax/MonitoringReportErrorsStaxtReader.java
@@ -55,7 +55,7 @@ public class MonitoringReportErrorsStaxtReader extends BaseStaxReader {
try {
- int uid = Integer.parseInt(text);
+ Long uid = Long.parseLong(text);
obj.getCurrentPerson().setUid(uid);
} catch (NumberFormatException e) {
log.error("Couldn't parse uid: {}", text);
diff --git a/src/main/java/ru/nbch/credit_tracker/service/xml/stax/OnlineDownloadReportPersonsStaxReader.java b/src/main/java/ru/nbch/credit_tracker/service/xml/stax/OnlineDownloadReportPersonsStaxReader.java
index 1126573..8ad34f1 100644
--- a/src/main/java/ru/nbch/credit_tracker/service/xml/stax/OnlineDownloadReportPersonsStaxReader.java
+++ b/src/main/java/ru/nbch/credit_tracker/service/xml/stax/OnlineDownloadReportPersonsStaxReader.java
@@ -46,7 +46,7 @@ public class OnlineDownloadReportPersonsStaxReader extends BaseStaxReader {
try {
- int uid = Integer.parseInt(text);
+ Long uid = Long.parseLong(text);
obj.getCurrentPerson().setUid(uid);
} catch (NumberFormatException e) {
log.error("Couldn't parse uid: {}", text);
diff --git a/src/main/resources/mybatis/mapper/signal/UserPackageMapper.xml b/src/main/resources/mybatis/mapper/signal/UserPackageMapper.xml
index 263aa5a..35de117 100644
--- a/src/main/resources/mybatis/mapper/signal/UserPackageMapper.xml
+++ b/src/main/resources/mybatis/mapper/signal/UserPackageMapper.xml
@@ -13,6 +13,7 @@
+