Rename all *V2 and *2 classes
This commit is contained in:
parent
b05b48f800
commit
4cc3f6eb3f
24 changed files with 192 additions and 219 deletions
|
|
@ -1,7 +1,5 @@
|
||||||
package ru.nbch.credit_tracker.builder;
|
package ru.nbch.credit_tracker.builder;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import ru.nbch.credit_tracker.entities.external_request.signals.Person;
|
import ru.nbch.credit_tracker.entities.external_request.signals.Person;
|
||||||
|
|
@ -9,8 +7,11 @@ import ru.nbch.credit_tracker.model.IdData;
|
||||||
import ru.nbch.credit_tracker.model.NameData;
|
import ru.nbch.credit_tracker.model.NameData;
|
||||||
import ru.nbch.credit_tracker.model.SubjectProfile;
|
import ru.nbch.credit_tracker.model.SubjectProfile;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class PersonFactoryBuilderV2 {
|
public class PersonFactoryBuilder {
|
||||||
private final static DateTimeFormatter DATE_FORMAT = DateTimeFormatter.ofPattern("dd.MM.yyyy");
|
private final static DateTimeFormatter DATE_FORMAT = DateTimeFormatter.ofPattern("dd.MM.yyyy");
|
||||||
|
|
||||||
private final static String DEFAULT_DATE = "01.01.2000";
|
private final static String DEFAULT_DATE = "01.01.2000";
|
||||||
|
|
@ -31,11 +32,11 @@ public class PersonFactoryBuilderV2 {
|
||||||
|
|
||||||
private SubjectProfile personData;
|
private SubjectProfile personData;
|
||||||
|
|
||||||
public static PersonFactoryBuilderV2 builder() {
|
public static PersonFactoryBuilder builder() {
|
||||||
return new PersonFactoryBuilderV2();
|
return new PersonFactoryBuilder();
|
||||||
}
|
}
|
||||||
|
|
||||||
public PersonFactoryBuilderV2 personData(SubjectProfile personData) {
|
public PersonFactoryBuilder personData(SubjectProfile personData) {
|
||||||
this.personData = personData;
|
this.personData = personData;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
@ -3,12 +3,7 @@ package ru.nbch.credit_tracker.controller;
|
||||||
import org.springframework.core.io.Resource;
|
import org.springframework.core.io.Resource;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
import ru.nbch.credit_tracker.config.mdc.ClearMdc;
|
import ru.nbch.credit_tracker.config.mdc.ClearMdc;
|
||||||
import ru.nbch.credit_tracker.entities.user_request.active_packages.MonitoringActivePackagesRequest;
|
import ru.nbch.credit_tracker.entities.user_request.active_packages.MonitoringActivePackagesRequest;
|
||||||
|
|
@ -21,30 +16,31 @@ import ru.nbch.credit_tracker.entities.user_response.success.MonitoringSetupResp
|
||||||
import ru.nbch.credit_tracker.enums.SignalError;
|
import ru.nbch.credit_tracker.enums.SignalError;
|
||||||
import ru.nbch.credit_tracker.enums.XmlErrorFormat;
|
import ru.nbch.credit_tracker.enums.XmlErrorFormat;
|
||||||
import ru.nbch.credit_tracker.exceptions.SignalException;
|
import ru.nbch.credit_tracker.exceptions.SignalException;
|
||||||
import ru.nbch.credit_tracker.facade.SignalFacadeV3;
|
import ru.nbch.credit_tracker.facade.SignalFacade;
|
||||||
|
|
||||||
import static ru.nbch.credit_tracker.utils.error.ExceptionUtils.serverExcp;
|
import static ru.nbch.credit_tracker.utils.error.ExceptionUtils.serverExcp;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/v1/signal")
|
@RequestMapping("/api/v1/signal")
|
||||||
public class SignalControllerV3 {
|
public class SignalController {
|
||||||
|
|
||||||
private final SignalFacadeV3 signalFacadeV3;
|
private final SignalFacade signalFacade;
|
||||||
|
|
||||||
public SignalControllerV3(SignalFacadeV3 signalFacadeV3) {
|
public SignalController(SignalFacade signalFacade) {
|
||||||
this.signalFacadeV3 = signalFacadeV3;
|
this.signalFacade = signalFacade;
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping(value = "/set", produces = MediaType.APPLICATION_XML_VALUE)
|
@PostMapping(value = "/set", produces = MediaType.APPLICATION_XML_VALUE)
|
||||||
@ClearMdc
|
@ClearMdc
|
||||||
public ResponseEntity<MonitoringSetupResponse> setupMonitoring(@RequestParam("file") MultipartFile file) {
|
public ResponseEntity<MonitoringSetupResponse> setupMonitoring(@RequestParam("file") MultipartFile file) {
|
||||||
signalFacadeV3.setupMonitoringRequest(file);
|
signalFacade.setupMonitoringRequest(file);
|
||||||
return ResponseEntity.ok().body(new MonitoringSetupResponse());
|
return ResponseEntity.ok().body(new MonitoringSetupResponse());
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping(value = "/active_packages", consumes = MediaType.APPLICATION_XML_VALUE, produces = MediaType.APPLICATION_XML_VALUE)
|
@PostMapping(value = "/active_packages", consumes = MediaType.APPLICATION_XML_VALUE, produces = MediaType.APPLICATION_XML_VALUE)
|
||||||
public ResponseEntity<MonitoringActivePackagesResponse> findActivePackages(@RequestBody MonitoringActivePackagesRequest activePackagesRequest) {
|
public ResponseEntity<MonitoringActivePackagesResponse> findActivePackages(@RequestBody MonitoringActivePackagesRequest activePackagesRequest) {
|
||||||
try {
|
try {
|
||||||
return signalFacadeV3.findActivePackages(activePackagesRequest);
|
return signalFacade.findActivePackages(activePackagesRequest);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throwOrWrap(SignalError.ERROR_013, XmlErrorFormat.MonitoringActivePackagesError, e);
|
throwOrWrap(SignalError.ERROR_013, XmlErrorFormat.MonitoringActivePackagesError, e);
|
||||||
return null;
|
return null;
|
||||||
|
|
@ -54,7 +50,7 @@ public class SignalControllerV3 {
|
||||||
@PostMapping(value = "/all_packages", consumes = MediaType.APPLICATION_XML_VALUE, produces = MediaType.APPLICATION_XML_VALUE)
|
@PostMapping(value = "/all_packages", consumes = MediaType.APPLICATION_XML_VALUE, produces = MediaType.APPLICATION_XML_VALUE)
|
||||||
public ResponseEntity<MonitoringAllPackagesResponse> findAllPackages(@RequestBody MonitoringAllPackagesRequest allPackagesRequest) {
|
public ResponseEntity<MonitoringAllPackagesResponse> findAllPackages(@RequestBody MonitoringAllPackagesRequest allPackagesRequest) {
|
||||||
try {
|
try {
|
||||||
return signalFacadeV3.findAllPackages(allPackagesRequest);
|
return signalFacade.findAllPackages(allPackagesRequest);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throwOrWrap(SignalError.ERROR_013, XmlErrorFormat.MonitoringAllPackagesError, e);
|
throwOrWrap(SignalError.ERROR_013, XmlErrorFormat.MonitoringAllPackagesError, e);
|
||||||
return null;
|
return null;
|
||||||
|
|
@ -65,7 +61,7 @@ public class SignalControllerV3 {
|
||||||
@PostMapping(value = "/delete", params = {"username", "packageName"}, produces = MediaType.APPLICATION_XML_VALUE)
|
@PostMapping(value = "/delete", params = {"username", "packageName"}, produces = MediaType.APPLICATION_XML_VALUE)
|
||||||
public ResponseEntity<MonitoringPackageDeleteResponse> deletePackage(@RequestParam("username") String username, @RequestParam("packageName") String packageName) {
|
public ResponseEntity<MonitoringPackageDeleteResponse> deletePackage(@RequestParam("username") String username, @RequestParam("packageName") String packageName) {
|
||||||
try {
|
try {
|
||||||
return signalFacadeV3.deletePackage(username, packageName);
|
return signalFacade.deletePackage(username, packageName);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throwOrWrap(SignalError.ERROR_017, XmlErrorFormat.MonitoringPackageDeleteError, e);
|
throwOrWrap(SignalError.ERROR_017, XmlErrorFormat.MonitoringPackageDeleteError, e);
|
||||||
return null;
|
return null;
|
||||||
|
|
@ -74,12 +70,12 @@ public class SignalControllerV3 {
|
||||||
|
|
||||||
@GetMapping(value = "/report_list", params = {"username", "packageName"}, produces = MediaType.APPLICATION_XML_VALUE)
|
@GetMapping(value = "/report_list", params = {"username", "packageName"}, produces = MediaType.APPLICATION_XML_VALUE)
|
||||||
public ResponseEntity<MonitoringReportListResponse> getReportList(@RequestParam("username") String username, @RequestParam("packageName") String packageName) {
|
public ResponseEntity<MonitoringReportListResponse> getReportList(@RequestParam("username") String username, @RequestParam("packageName") String packageName) {
|
||||||
return signalFacadeV3.getReportList(username, packageName);
|
return signalFacade.getReportList(username, packageName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "/download", params = "file", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
|
@GetMapping(value = "/download", params = "file", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
|
||||||
public ResponseEntity<Resource> downloadFile(@RequestParam("file") String file) {
|
public ResponseEntity<Resource> downloadFile(@RequestParam("file") String file) {
|
||||||
return signalFacadeV3.downloadFile(file);
|
return signalFacade.downloadFile(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void throwOrWrap(SignalError error, XmlErrorFormat specific, Exception ex) {
|
private static void throwOrWrap(SignalError error, XmlErrorFormat specific, Exception ex) {
|
||||||
|
|
@ -1,17 +1,5 @@
|
||||||
package ru.nbch.credit_tracker.facade;
|
package ru.nbch.credit_tracker.facade;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
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 java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
import javax.xml.stream.XMLStreamException;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.core.io.FileUrlResource;
|
import org.springframework.core.io.FileUrlResource;
|
||||||
import org.springframework.core.io.Resource;
|
import org.springframework.core.io.Resource;
|
||||||
|
|
@ -52,12 +40,25 @@ import ru.nbch.credit_tracker.utils.CtFileUtils;
|
||||||
import ru.nbch.credit_tracker.utils.EnumUtil;
|
import ru.nbch.credit_tracker.utils.EnumUtil;
|
||||||
import ru.nbch.credit_tracker.utils.LogUtil;
|
import ru.nbch.credit_tracker.utils.LogUtil;
|
||||||
import ru.nbch.credit_tracker.utils.ZipUtils;
|
import ru.nbch.credit_tracker.utils.ZipUtils;
|
||||||
|
|
||||||
|
import javax.xml.stream.XMLStreamException;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
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.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import static ru.nbch.credit_tracker.utils.error.ExceptionUtils.clientExcp;
|
import static ru.nbch.credit_tracker.utils.error.ExceptionUtils.clientExcp;
|
||||||
import static ru.nbch.credit_tracker.utils.error.ExceptionUtils.serverExcp;
|
import static ru.nbch.credit_tracker.utils.error.ExceptionUtils.serverExcp;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class SignalFacadeV3 {
|
public class SignalFacade {
|
||||||
|
|
||||||
private final MonitoringRequestValidator monitoringRequestValidator;
|
private final MonitoringRequestValidator monitoringRequestValidator;
|
||||||
private final CreditTrackerSettings config;
|
private final CreditTrackerSettings config;
|
||||||
|
|
@ -66,28 +67,22 @@ public class SignalFacadeV3 {
|
||||||
private final PipelinePackageFabric pipelinePackageManager;
|
private final PipelinePackageFabric pipelinePackageManager;
|
||||||
private final SignalRestService signalRestService;
|
private final SignalRestService signalRestService;
|
||||||
private final Saver saver;
|
private final Saver saver;
|
||||||
private final ExecutorService pipelineExecutorService;
|
|
||||||
private final ExecutorService saverExecutorService;
|
|
||||||
private final PipelinePackageOrchestrator pipelineOrchestrator;
|
private final PipelinePackageOrchestrator pipelineOrchestrator;
|
||||||
private final Pattern DOWNLOAD_FILE_PATTERN = Pattern.compile("^(?<member>[A-Za-z0-9]{6})_(?<package>[A-Za-z0-9_]+)_(?<ts>\\d{4}\\d{2}\\d{2}_\\d{2}\\d{2}\\d{2})(?:\\.xml)?\\.zip$");
|
private final Pattern DOWNLOAD_FILE_PATTERN = Pattern.compile("^(?<member>[A-Za-z0-9]{6})_(?<package>[A-Za-z0-9_]+)_(?<ts>\\d{4}\\d{2}\\d{2}_\\d{2}\\d{2}\\d{2})(?:\\.xml)?\\.zip$");
|
||||||
|
|
||||||
public SignalFacadeV3(MonitoringRequestValidator monitoringRequestValidator,
|
public SignalFacade(MonitoringRequestValidator monitoringRequestValidator,
|
||||||
CreditTrackerSettings config,
|
CreditTrackerSettings config,
|
||||||
UserPackageService userPackageService,
|
UserPackageService userPackageService,
|
||||||
AuthorizationService authorizationService,
|
AuthorizationService authorizationService,
|
||||||
PipelinePackageFabric pipelinePackageManager,
|
PipelinePackageFabric pipelinePackageManager,
|
||||||
SignalRestService signalRestService,
|
SignalRestService signalRestService,
|
||||||
Saver saver,
|
Saver saver, PipelinePackageOrchestrator pipelineOrchestrator) {
|
||||||
ExecutorService pipelineExecutorService,
|
|
||||||
ExecutorService saverExecutorService, PipelinePackageOrchestrator pipelineOrchestrator) {
|
|
||||||
this.monitoringRequestValidator = monitoringRequestValidator;
|
this.monitoringRequestValidator = monitoringRequestValidator;
|
||||||
this.config = config;
|
this.config = config;
|
||||||
this.userPackageService = userPackageService;
|
this.userPackageService = userPackageService;
|
||||||
this.authorizationService = authorizationService;
|
this.authorizationService = authorizationService;
|
||||||
this.pipelinePackageManager = pipelinePackageManager;
|
this.pipelinePackageManager = pipelinePackageManager;
|
||||||
this.signalRestService = signalRestService;
|
this.signalRestService = signalRestService;
|
||||||
this.saverExecutorService = saverExecutorService;
|
|
||||||
this.pipelineExecutorService = pipelineExecutorService;
|
|
||||||
this.saver = saver;
|
this.saver = saver;
|
||||||
this.pipelineOrchestrator = pipelineOrchestrator;
|
this.pipelineOrchestrator = pipelineOrchestrator;
|
||||||
}
|
}
|
||||||
|
|
@ -1,11 +1,5 @@
|
||||||
package ru.nbch.credit_tracker.service;
|
package ru.nbch.credit_tracker.service;
|
||||||
|
|
||||||
import java.io.BufferedInputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.aop.framework.AopContext;
|
import org.springframework.aop.framework.AopContext;
|
||||||
|
|
@ -17,11 +11,19 @@ import ru.nbch.credit_tracker.entities.app.UserPackage;
|
||||||
import ru.nbch.credit_tracker.entities.external_response.monitoring_report_error.MonitoringReportErrors;
|
import ru.nbch.credit_tracker.entities.external_response.monitoring_report_error.MonitoringReportErrors;
|
||||||
import ru.nbch.credit_tracker.enums.RejectedStatus;
|
import ru.nbch.credit_tracker.enums.RejectedStatus;
|
||||||
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
|
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
|
||||||
import ru.nbch.credit_tracker.service.indic.PhoneService2;
|
import ru.nbch.credit_tracker.refactoring.Suspicios;
|
||||||
|
import ru.nbch.credit_tracker.service.indic.PhoneService;
|
||||||
import ru.nbch.credit_tracker.service.signal.SignalRestService;
|
import ru.nbch.credit_tracker.service.signal.SignalRestService;
|
||||||
import ru.nbch.credit_tracker.service.xml.stax.StaxXmlProcessor;
|
import ru.nbch.credit_tracker.service.xml.stax.StaxXmlProcessor;
|
||||||
import ru.nbch.credit_tracker.utils.CtFileUtils;
|
import ru.nbch.credit_tracker.utils.CtFileUtils;
|
||||||
|
|
||||||
|
import java.io.BufferedInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@EnableAspectJAutoProxy(exposeProxy = true)
|
@EnableAspectJAutoProxy(exposeProxy = true)
|
||||||
|
|
@ -31,18 +33,18 @@ public class MonitoringErrorProcesingService {
|
||||||
private final UserPackageMapper userPackageMapper;
|
private final UserPackageMapper userPackageMapper;
|
||||||
private final SignalRestService signalRestService;
|
private final SignalRestService signalRestService;
|
||||||
private final StaxXmlProcessor staxXmlProcessor;
|
private final StaxXmlProcessor staxXmlProcessor;
|
||||||
private final PhoneService2 phoneService2;
|
private final PhoneService phoneService;
|
||||||
private final Integer batchSize;
|
private final Integer batchSize;
|
||||||
|
|
||||||
public MonitoringErrorProcesingService(UserPackageMapper userPackageMapper,
|
public MonitoringErrorProcesingService(UserPackageMapper userPackageMapper,
|
||||||
SignalRestService signalRestService,
|
SignalRestService signalRestService,
|
||||||
StaxXmlProcessor staxXmlProcessor,
|
StaxXmlProcessor staxXmlProcessor,
|
||||||
PhoneService2 phoneService2,
|
PhoneService phoneService,
|
||||||
CreditTrackerSettings config) {
|
CreditTrackerSettings config) {
|
||||||
this.userPackageMapper = userPackageMapper;
|
this.userPackageMapper = userPackageMapper;
|
||||||
this.signalRestService = signalRestService;
|
this.signalRestService = signalRestService;
|
||||||
this.staxXmlProcessor = staxXmlProcessor;
|
this.staxXmlProcessor = staxXmlProcessor;
|
||||||
this.phoneService2 = phoneService2;
|
this.phoneService = phoneService;
|
||||||
this.batchSize = config.getPipeline().subjectBatchSize();
|
this.batchSize = config.getPipeline().subjectBatchSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -82,7 +84,7 @@ public class MonitoringErrorProcesingService {
|
||||||
.errorText(p.getValue())
|
.errorText(p.getValue())
|
||||||
.build();
|
.build();
|
||||||
}).toList();
|
}).toList();
|
||||||
phoneService2.updateOnError(subjects);
|
phoneService.updateOnError(subjects);
|
||||||
log.trace("Updated subject's batch. Total count: {}. PackageId: {}", request.getPersons().size(), packageId);
|
log.trace("Updated subject's batch. Total count: {}. PackageId: {}", request.getPersons().size(), packageId);
|
||||||
request.getPersons().clear();
|
request.getPersons().clear();
|
||||||
}
|
}
|
||||||
|
|
@ -95,6 +97,7 @@ public class MonitoringErrorProcesingService {
|
||||||
log.info("Subject's errors were updated. PackageId: {}", packageId);
|
log.info("Subject's errors were updated. PackageId: {}", packageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suspicios("Нужен для аоп? А где используется")
|
||||||
private MonitoringErrorProcesingService getCurrentProxy() {
|
private MonitoringErrorProcesingService getCurrentProxy() {
|
||||||
if (self == null) {
|
if (self == null) {
|
||||||
self = (MonitoringErrorProcesingService) AopContext.currentProxy();
|
self = (MonitoringErrorProcesingService) AopContext.currentProxy();
|
||||||
|
|
|
||||||
|
|
@ -12,10 +12,10 @@ import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class FlagsService2 {
|
public class FlagsService {
|
||||||
private final IndicFlagsMapper flagsMapper;
|
private final IndicFlagsMapper flagsMapper;
|
||||||
|
|
||||||
public FlagsService2(IndicFlagsMapper flagsMapper) {
|
public FlagsService(IndicFlagsMapper flagsMapper) {
|
||||||
this.flagsMapper = flagsMapper;
|
this.flagsMapper = flagsMapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1,13 +1,5 @@
|
||||||
package ru.nbch.credit_tracker.service.indic;
|
package ru.nbch.credit_tracker.service.indic;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.function.BinaryOperator;
|
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
@ -17,9 +9,18 @@ import ru.nbch.credit_tracker.mapper.indic.PersonMapper;
|
||||||
import ru.nbch.credit_tracker.model.SubjectProfile;
|
import ru.nbch.credit_tracker.model.SubjectProfile;
|
||||||
import ru.nbch.credit_tracker.utils.CTUtil;
|
import ru.nbch.credit_tracker.utils.CTUtil;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.function.BinaryOperator;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class PersonServiceV2 {
|
public class PersonService {
|
||||||
|
|
||||||
private final PersonMapper mapper;
|
private final PersonMapper mapper;
|
||||||
private final Comparator<Id> byDatesDesc =
|
private final Comparator<Id> byDatesDesc =
|
||||||
|
|
@ -31,7 +32,7 @@ public class PersonServiceV2 {
|
||||||
.thenComparing(Name::getFileSinceDate, Comparator.nullsFirst(Comparator.naturalOrder()))
|
.thenComparing(Name::getFileSinceDate, Comparator.nullsFirst(Comparator.naturalOrder()))
|
||||||
.thenComparing(Name::getFid);
|
.thenComparing(Name::getFid);
|
||||||
|
|
||||||
public PersonServiceV2(PersonMapper mapper) {
|
public PersonService(PersonMapper mapper) {
|
||||||
this.mapper = mapper;
|
this.mapper = mapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -5,25 +5,20 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.nbch.credit_tracker.entities.app.PackagesRecordsMap;
|
import ru.nbch.credit_tracker.entities.app.PackagesRecordsMap;
|
||||||
import ru.nbch.credit_tracker.entities.indic.Name;
|
|
||||||
import ru.nbch.credit_tracker.mapper.signal.PackagesRecordsMapper;
|
import ru.nbch.credit_tracker.mapper.signal.PackagesRecordsMapper;
|
||||||
|
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class PhoneService2 {
|
public class PhoneService {
|
||||||
|
|
||||||
private final PackagesRecordsMapper phoneFidMapMapper;
|
private final PackagesRecordsMapper phoneFidMapMapper;
|
||||||
private final ObjectMapper entityToJsonMapper;
|
private final ObjectMapper entityToJsonMapper;
|
||||||
private final Comparator<Name> byDateThenIdNullSafe =
|
|
||||||
Comparator.comparing(Name::getFileSinceDate, Comparator.nullsFirst(Comparator.naturalOrder()))
|
|
||||||
.thenComparing(Name::getFid);
|
|
||||||
|
|
||||||
public PhoneService2(PackagesRecordsMapper phoneFidMapMapper,
|
public PhoneService(PackagesRecordsMapper phoneFidMapMapper,
|
||||||
ObjectMapper entityToJsonMapper) {
|
ObjectMapper entityToJsonMapper) {
|
||||||
this.phoneFidMapMapper = phoneFidMapMapper;
|
this.phoneFidMapMapper = phoneFidMapMapper;
|
||||||
this.entityToJsonMapper = entityToJsonMapper;
|
this.entityToJsonMapper = entityToJsonMapper;
|
||||||
}
|
}
|
||||||
|
|
@ -1,10 +1,6 @@
|
||||||
package ru.nbch.credit_tracker.service.mode.common;
|
package ru.nbch.credit_tracker.service.mode.common;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
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;
|
||||||
|
|
@ -13,6 +9,9 @@ import ru.nbch.credit_tracker.entities.app.PhonesMap;
|
||||||
import ru.nbch.credit_tracker.mapper.signal.PhonesMapMapper;
|
import ru.nbch.credit_tracker.mapper.signal.PhonesMapMapper;
|
||||||
import ru.nbch.credit_tracker.service.task.impl.FlagsEnricher;
|
import ru.nbch.credit_tracker.service.task.impl.FlagsEnricher;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Сервис периодического обновления фидов и флагов просрочек по пакетам находящимся в статусе ON_MONITORING
|
* Сервис периодического обновления фидов и флагов просрочек по пакетам находящимся в статусе ON_MONITORING
|
||||||
* По обновленным пакетам формируется новый запрос постановки на мониторинг в официальный сервис сигналов
|
* По обновленным пакетам формируется новый запрос постановки на мониторинг в официальный сервис сигналов
|
||||||
|
|
@ -21,7 +20,6 @@ import ru.nbch.credit_tracker.service.task.impl.FlagsEnricher;
|
||||||
@Service
|
@Service
|
||||||
@EnableScheduling
|
@EnableScheduling
|
||||||
public class UpdatingFlagsService {
|
public class UpdatingFlagsService {
|
||||||
private final Logger log = LoggerFactory.getLogger(this.getClass());
|
|
||||||
private final static int BATCH_SIZE = 1000;
|
private final static int BATCH_SIZE = 1000;
|
||||||
private final PhonesMapMapper phonesMapMapper;
|
private final PhonesMapMapper phonesMapMapper;
|
||||||
private final FlagsEnricher flagsEnricherV2;
|
private final FlagsEnricher flagsEnricherV2;
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,8 @@ import ru.nbch.credit_tracker.component.MonitoringRequestValidator;
|
||||||
import ru.nbch.credit_tracker.config.datasource.ScoringDataSourceConfig;
|
import ru.nbch.credit_tracker.config.datasource.ScoringDataSourceConfig;
|
||||||
import ru.nbch.credit_tracker.config.rest.RestConfig;
|
import ru.nbch.credit_tracker.config.rest.RestConfig;
|
||||||
import ru.nbch.credit_tracker.config.xml.XmlConfig;
|
import ru.nbch.credit_tracker.config.xml.XmlConfig;
|
||||||
import ru.nbch.credit_tracker.controller.SignalControllerV3;
|
import ru.nbch.credit_tracker.controller.SignalController;
|
||||||
import ru.nbch.credit_tracker.facade.SignalFacadeV3;
|
import ru.nbch.credit_tracker.facade.SignalFacade;
|
||||||
import ru.nbch.credit_tracker.service.MonitoringErrorProcesingService;
|
import ru.nbch.credit_tracker.service.MonitoringErrorProcesingService;
|
||||||
import ru.nbch.credit_tracker.service.mode.common.CTMainApplication;
|
import ru.nbch.credit_tracker.service.mode.common.CTMainApplication;
|
||||||
import ru.nbch.credit_tracker.service.mode.common.StartupRestoreService;
|
import ru.nbch.credit_tracker.service.mode.common.StartupRestoreService;
|
||||||
|
|
@ -35,7 +35,7 @@ import ru.nbch.credit_tracker.service.task.impl.Saver;
|
||||||
classes = {CTMonitoringApplication.class, CTMainApplication.class,
|
classes = {CTMonitoringApplication.class, CTMainApplication.class,
|
||||||
ScoringDataSourceConfig.class,StartupRestoreService.class, UpdatingFidAndPdService.class,
|
ScoringDataSourceConfig.class,StartupRestoreService.class, UpdatingFidAndPdService.class,
|
||||||
UpdatingFlagsService.class, MonitoringService.class, AuthorizationService.class,
|
UpdatingFlagsService.class, MonitoringService.class, AuthorizationService.class,
|
||||||
SignalFacadeV3.class, SignalControllerV3.class, FlagsEnricher.class, PipelinePackageFabric.class,
|
SignalFacade.class, SignalController.class, FlagsEnricher.class, PipelinePackageFabric.class,
|
||||||
RestConfig.class, SignalRestService.class, MonitoringErrorProcesingService.class, Saver.class,
|
RestConfig.class, SignalRestService.class, MonitoringErrorProcesingService.class, Saver.class,
|
||||||
PipelinePackageOrchestrator.class, XmlConfig.class, MonitoringRequestValidator.class
|
PipelinePackageOrchestrator.class, XmlConfig.class, MonitoringRequestValidator.class
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
package ru.nbch.credit_tracker.service.task;
|
package ru.nbch.credit_tracker.service.task;
|
||||||
|
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.function.Supplier;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
|
|
@ -16,7 +14,10 @@ import ru.nbch.credit_tracker.service.task.impl.FidIdUpdater;
|
||||||
import ru.nbch.credit_tracker.service.task.impl.FidNameUpdaterMigration;
|
import ru.nbch.credit_tracker.service.task.impl.FidNameUpdaterMigration;
|
||||||
import ru.nbch.credit_tracker.service.task.setup.IPipeLineStarter;
|
import ru.nbch.credit_tracker.service.task.setup.IPipeLineStarter;
|
||||||
import ru.nbch.credit_tracker.service.task.setup.IPipeLineTerminator;
|
import ru.nbch.credit_tracker.service.task.setup.IPipeLineTerminator;
|
||||||
import ru.nbch.credit_tracker.service.task.setup.PipeLineBuilderV2;
|
import ru.nbch.credit_tracker.service.task.setup.PipeLineBuilder;
|
||||||
|
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|
@ -52,7 +53,7 @@ public class PipelineMigrationPackageFabric implements InitializingBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Pipeline buildRecalculationPDMigration(SetupParam setupParam) throws Exception {
|
public Pipeline buildRecalculationPDMigration(SetupParam setupParam) throws Exception {
|
||||||
return PipeLineBuilderV2.first(nameUpdaterQueueFactory.getObject(), idUpdaterQueueFactory.getObject())
|
return PipeLineBuilder.first(nameUpdaterQueueFactory.getObject(), idUpdaterQueueFactory.getObject())
|
||||||
.handler(fidNameUpdaterMigration)
|
.handler(fidNameUpdaterMigration)
|
||||||
.andThen()
|
.andThen()
|
||||||
.stage(noOpQueueFactory.getObject())
|
.stage(noOpQueueFactory.getObject())
|
||||||
|
|
|
||||||
|
|
@ -1,33 +1,23 @@
|
||||||
package ru.nbch.credit_tracker.service.task;
|
package ru.nbch.credit_tracker.service.task;
|
||||||
|
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.function.Supplier;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||||
import ru.nbch.credit_tracker.config.task.StageQueueFactory;
|
import ru.nbch.credit_tracker.config.task.StageQueueFactory;
|
||||||
import ru.nbch.credit_tracker.model.impl.EmptyTerminatePayload;
|
import ru.nbch.credit_tracker.model.impl.*;
|
||||||
import ru.nbch.credit_tracker.model.impl.PackageVariable;
|
import ru.nbch.credit_tracker.service.task.impl.*;
|
||||||
import ru.nbch.credit_tracker.model.impl.PartFilePayload;
|
|
||||||
import ru.nbch.credit_tracker.model.impl.SignalXmlFilePayload;
|
|
||||||
import ru.nbch.credit_tracker.model.impl.SubjectPayload;
|
|
||||||
import ru.nbch.credit_tracker.model.impl.VoidPayload;
|
|
||||||
import ru.nbch.credit_tracker.service.task.impl.FidIdEnricher;
|
|
||||||
import ru.nbch.credit_tracker.service.task.impl.FidIdUpdater;
|
|
||||||
import ru.nbch.credit_tracker.service.task.impl.FidNameEnricher;
|
|
||||||
import ru.nbch.credit_tracker.service.task.impl.FidNameUpdater;
|
|
||||||
import ru.nbch.credit_tracker.service.task.impl.FidNameUpdaterMigration;
|
|
||||||
import ru.nbch.credit_tracker.service.task.impl.FlagsEnricher;
|
|
||||||
import ru.nbch.credit_tracker.service.task.setup.IPipeLineStarter;
|
import ru.nbch.credit_tracker.service.task.setup.IPipeLineStarter;
|
||||||
import ru.nbch.credit_tracker.service.task.setup.IPipeLineTerminator;
|
import ru.nbch.credit_tracker.service.task.setup.IPipeLineTerminator;
|
||||||
import ru.nbch.credit_tracker.service.task.setup.PipeLineBuilderV2;
|
import ru.nbch.credit_tracker.service.task.setup.PipeLineBuilder;
|
||||||
|
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class PipelinePackageFabric implements InitializingBean {
|
public class PipelinePackageFabric implements InitializingBean {
|
||||||
private final FlagsEnricher flagsEnricherV2;
|
|
||||||
private final StageQueueFactory<SubjectPayload> idEnricherQueueFactory;
|
private final StageQueueFactory<SubjectPayload> idEnricherQueueFactory;
|
||||||
private final StageQueueFactory<SubjectPayload> idUpdaterQueueFactory;
|
private final StageQueueFactory<SubjectPayload> idUpdaterQueueFactory;
|
||||||
private final StageQueueFactory<SubjectPayload> nameEnricherQueueFactory;
|
private final StageQueueFactory<SubjectPayload> nameEnricherQueueFactory;
|
||||||
|
|
@ -58,7 +48,6 @@ public class PipelinePackageFabric implements InitializingBean {
|
||||||
Supplier<IPipeLineTerminator<PartFilePayload, SignalXmlFilePayload>> pipelineTerminatorFactory,
|
Supplier<IPipeLineTerminator<PartFilePayload, SignalXmlFilePayload>> pipelineTerminatorFactory,
|
||||||
Supplier<IPipeLineTerminator<VoidPayload, EmptyTerminatePayload>> noOpTerminatorFactory,
|
Supplier<IPipeLineTerminator<VoidPayload, EmptyTerminatePayload>> noOpTerminatorFactory,
|
||||||
Function<SetupParam, IPipeLineStarter<SubjectPayload>> pipelineStarterFactory,
|
Function<SetupParam, IPipeLineStarter<SubjectPayload>> pipelineStarterFactory,
|
||||||
FlagsEnricher flagsEnricherV2,
|
|
||||||
FidNameEnricher fidNameEnricher,
|
FidNameEnricher fidNameEnricher,
|
||||||
CreditTrackerSettings creditTrackerSettings,
|
CreditTrackerSettings creditTrackerSettings,
|
||||||
PipelineBackoff pipelineBackoff) {
|
PipelineBackoff pipelineBackoff) {
|
||||||
|
|
@ -75,14 +64,13 @@ public class PipelinePackageFabric implements InitializingBean {
|
||||||
this.pipelineTerminatorFactory = pipelineTerminatorFactory;
|
this.pipelineTerminatorFactory = pipelineTerminatorFactory;
|
||||||
this.noOpTerminatorFactory = noOpTerminatorFactory;
|
this.noOpTerminatorFactory = noOpTerminatorFactory;
|
||||||
this.pipelineStarterFactory = pipelineStarterFactory;
|
this.pipelineStarterFactory = pipelineStarterFactory;
|
||||||
this.flagsEnricherV2 = flagsEnricherV2;
|
|
||||||
this.fidNameEnricher = fidNameEnricher;
|
this.fidNameEnricher = fidNameEnricher;
|
||||||
this.creditTrackerSettings = creditTrackerSettings;
|
this.creditTrackerSettings = creditTrackerSettings;
|
||||||
this.pipelineBackoff = pipelineBackoff;
|
this.pipelineBackoff = pipelineBackoff;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Pipeline build(SetupParam setupParam) throws Exception {
|
public Pipeline build(SetupParam setupParam) throws Exception {
|
||||||
return PipeLineBuilderV2.first(nameEnricherQueueFactory.getObject(), idEnricherQueueFactory.getObject())
|
return PipeLineBuilder.first(nameEnricherQueueFactory.getObject(), idEnricherQueueFactory.getObject())
|
||||||
.handler(fidNameEnricher)
|
.handler(fidNameEnricher)
|
||||||
.andThen()
|
.andThen()
|
||||||
.stage(sendSignalQueueFactory.getObject())
|
.stage(sendSignalQueueFactory.getObject())
|
||||||
|
|
@ -96,7 +84,7 @@ public class PipelinePackageFabric implements InitializingBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Pipeline buildRecalculationPD(SetupParam setupParam) throws Exception {
|
public Pipeline buildRecalculationPD(SetupParam setupParam) throws Exception {
|
||||||
return PipeLineBuilderV2.first(nameUpdaterQueueFactory.getObject(), idUpdaterQueueFactory.getObject())
|
return PipeLineBuilder.first(nameUpdaterQueueFactory.getObject(), idUpdaterQueueFactory.getObject())
|
||||||
.handler(fidNameUpdater)
|
.handler(fidNameUpdater)
|
||||||
.andThen()
|
.andThen()
|
||||||
.stage(noOpQueueFactory.getObject())
|
.stage(noOpQueueFactory.getObject())
|
||||||
|
|
@ -110,7 +98,7 @@ public class PipelinePackageFabric implements InitializingBean {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Pipeline buildRecalculationPDMigration(SetupParam setupParam) throws Exception {
|
public Pipeline buildRecalculationPDMigration(SetupParam setupParam) throws Exception {
|
||||||
return PipeLineBuilderV2.first(nameUpdaterQueueFactory.getObject(), idUpdaterQueueFactory.getObject())
|
return PipeLineBuilder.first(nameUpdaterQueueFactory.getObject(), idUpdaterQueueFactory.getObject())
|
||||||
.handler(fidNameUpdaterMigration)
|
.handler(fidNameUpdaterMigration)
|
||||||
.andThen()
|
.andThen()
|
||||||
.stage(noOpQueueFactory.getObject())
|
.stage(noOpQueueFactory.getObject())
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,8 @@
|
||||||
package ru.nbch.credit_tracker.service.task.impl;
|
package ru.nbch.credit_tracker.service.task.impl;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.nio.file.Paths;
|
|
||||||
import java.nio.file.StandardCopyOption;
|
|
||||||
import java.nio.file.StandardOpenOption;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.nbch.credit_tracker.builder.PersonFactoryBuilderV2;
|
import ru.nbch.credit_tracker.builder.PersonFactoryBuilder;
|
||||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||||
import ru.nbch.credit_tracker.entities.external_request.signals.Person;
|
import ru.nbch.credit_tracker.entities.external_request.signals.Person;
|
||||||
import ru.nbch.credit_tracker.entities.indic.Id;
|
import ru.nbch.credit_tracker.entities.indic.Id;
|
||||||
|
|
@ -23,21 +10,28 @@ import ru.nbch.credit_tracker.model.IdData;
|
||||||
import ru.nbch.credit_tracker.model.SubjectProfile;
|
import ru.nbch.credit_tracker.model.SubjectProfile;
|
||||||
import ru.nbch.credit_tracker.model.impl.PartFilePayload;
|
import ru.nbch.credit_tracker.model.impl.PartFilePayload;
|
||||||
import ru.nbch.credit_tracker.model.impl.SubjectPayload;
|
import ru.nbch.credit_tracker.model.impl.SubjectPayload;
|
||||||
import ru.nbch.credit_tracker.service.indic.PersonServiceV2;
|
import ru.nbch.credit_tracker.service.indic.PersonService;
|
||||||
import ru.nbch.credit_tracker.service.signal.PackageRecordsService;
|
import ru.nbch.credit_tracker.service.signal.PackageRecordsService;
|
||||||
import ru.nbch.credit_tracker.service.task.Handler;
|
import ru.nbch.credit_tracker.service.task.Handler;
|
||||||
import ru.nbch.credit_tracker.service.xml.stax.SignalsStaxXmlWriterV2;
|
import ru.nbch.credit_tracker.service.xml.stax.SignalsStaxXmlWriterV2;
|
||||||
import ru.nbch.credit_tracker.utils.CTUtil;
|
import ru.nbch.credit_tracker.utils.CTUtil;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.nio.file.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
import static ru.nbch.credit_tracker.utils.CTUtil.defineIdType;
|
import static ru.nbch.credit_tracker.utils.CTUtil.defineIdType;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class FidIdEnricher implements Handler<SubjectPayload, PartFilePayload> {
|
public class FidIdEnricher implements Handler<SubjectPayload, PartFilePayload> {
|
||||||
private final PersonServiceV2 personService;
|
private final PersonService personService;
|
||||||
private final PackageRecordsService packageRecordsService;
|
private final PackageRecordsService packageRecordsService;
|
||||||
private final CreditTrackerSettings creditTrackerSettings;
|
private final CreditTrackerSettings creditTrackerSettings;
|
||||||
|
|
||||||
public FidIdEnricher(PersonServiceV2 personService,
|
public FidIdEnricher(PersonService personService,
|
||||||
PackageRecordsService packageRecordsService,
|
PackageRecordsService packageRecordsService,
|
||||||
CreditTrackerSettings creditTrackerSettings) {
|
CreditTrackerSettings creditTrackerSettings) {
|
||||||
this.personService = personService;
|
this.personService = personService;
|
||||||
|
|
@ -84,7 +78,7 @@ public class FidIdEnricher implements Handler<SubjectPayload, PartFilePayload> {
|
||||||
idCacheOnUpdate.add(idData);
|
idCacheOnUpdate.add(idData);
|
||||||
subjectProfile.setIdData(idData);
|
subjectProfile.setIdData(idData);
|
||||||
}
|
}
|
||||||
return Stream.of(PersonFactoryBuilderV2.builder()
|
return Stream.of(PersonFactoryBuilder.builder()
|
||||||
.personData(subjectProfile)
|
.personData(subjectProfile)
|
||||||
.build());
|
.build());
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,5 @@
|
||||||
package ru.nbch.credit_tracker.service.task.impl;
|
package ru.nbch.credit_tracker.service.task.impl;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||||
|
|
@ -11,20 +8,25 @@ import ru.nbch.credit_tracker.model.IdData;
|
||||||
import ru.nbch.credit_tracker.model.SubjectProfile;
|
import ru.nbch.credit_tracker.model.SubjectProfile;
|
||||||
import ru.nbch.credit_tracker.model.impl.SubjectPayload;
|
import ru.nbch.credit_tracker.model.impl.SubjectPayload;
|
||||||
import ru.nbch.credit_tracker.model.impl.VoidPayload;
|
import ru.nbch.credit_tracker.model.impl.VoidPayload;
|
||||||
import ru.nbch.credit_tracker.service.indic.PersonServiceV2;
|
import ru.nbch.credit_tracker.service.indic.PersonService;
|
||||||
import ru.nbch.credit_tracker.service.signal.PackageRecordsService;
|
import ru.nbch.credit_tracker.service.signal.PackageRecordsService;
|
||||||
import ru.nbch.credit_tracker.service.task.Handler;
|
import ru.nbch.credit_tracker.service.task.Handler;
|
||||||
import ru.nbch.credit_tracker.utils.CTUtil;
|
import ru.nbch.credit_tracker.utils.CTUtil;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
import static ru.nbch.credit_tracker.utils.CTUtil.defineIdType;
|
import static ru.nbch.credit_tracker.utils.CTUtil.defineIdType;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class FidIdUpdater implements Handler<SubjectPayload, VoidPayload> {
|
public class FidIdUpdater implements Handler<SubjectPayload, VoidPayload> {
|
||||||
private final PersonServiceV2 personService;
|
private final PersonService personService;
|
||||||
private final PackageRecordsService packageRecordsService;
|
private final PackageRecordsService packageRecordsService;
|
||||||
private final CreditTrackerSettings creditTrackerSettings;
|
private final CreditTrackerSettings creditTrackerSettings;
|
||||||
|
|
||||||
public FidIdUpdater(PersonServiceV2 personService,
|
public FidIdUpdater(PersonService personService,
|
||||||
PackageRecordsService packageRecordsService,
|
PackageRecordsService packageRecordsService,
|
||||||
CreditTrackerSettings creditTrackerSettings) {
|
CreditTrackerSettings creditTrackerSettings) {
|
||||||
this.personService = personService;
|
this.personService = personService;
|
||||||
|
|
|
||||||
|
|
@ -1,29 +1,22 @@
|
||||||
package ru.nbch.credit_tracker.service.task.impl;
|
package ru.nbch.credit_tracker.service.task.impl;
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||||
import ru.nbch.credit_tracker.entities.app.PhonesMap;
|
import ru.nbch.credit_tracker.entities.app.PhonesMap;
|
||||||
import ru.nbch.credit_tracker.entities.indic.Name;
|
import ru.nbch.credit_tracker.entities.indic.Name;
|
||||||
import ru.nbch.credit_tracker.model.FlagData;
|
import ru.nbch.credit_tracker.model.*;
|
||||||
import ru.nbch.credit_tracker.model.IdData;
|
|
||||||
import ru.nbch.credit_tracker.model.NameData;
|
|
||||||
import ru.nbch.credit_tracker.model.PipelineContext;
|
|
||||||
import ru.nbch.credit_tracker.model.SubjectProfile;
|
|
||||||
import ru.nbch.credit_tracker.model.impl.PackageVariable;
|
import ru.nbch.credit_tracker.model.impl.PackageVariable;
|
||||||
import ru.nbch.credit_tracker.model.impl.SubjectPayload;
|
import ru.nbch.credit_tracker.model.impl.SubjectPayload;
|
||||||
import ru.nbch.credit_tracker.service.indic.PersonServiceV2;
|
import ru.nbch.credit_tracker.service.indic.PersonService;
|
||||||
import ru.nbch.credit_tracker.service.signal.PackageRecordsService;
|
import ru.nbch.credit_tracker.service.signal.PackageRecordsService;
|
||||||
import ru.nbch.credit_tracker.service.task.Handler;
|
import ru.nbch.credit_tracker.service.task.Handler;
|
||||||
import ru.nbch.credit_tracker.utils.CTUtil;
|
import ru.nbch.credit_tracker.utils.CTUtil;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Стадия для сопоставления FID к номеру телефона и регистрации пакета в базе данных.
|
* Стадия для сопоставления FID к номеру телефона и регистрации пакета в базе данных.
|
||||||
* Так же выполняется поиск и обогащение перс.данными из NAME для дальнейшей обработки.
|
* Так же выполняется поиск и обогащение перс.данными из NAME для дальнейшей обработки.
|
||||||
|
|
@ -32,11 +25,11 @@ import ru.nbch.credit_tracker.utils.CTUtil;
|
||||||
@Service
|
@Service
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class FidNameEnricher implements Handler<SubjectPayload, SubjectPayload> {
|
public class FidNameEnricher implements Handler<SubjectPayload, SubjectPayload> {
|
||||||
private final PersonServiceV2 personService;
|
private final PersonService personService;
|
||||||
private final CreditTrackerSettings creditTrackerSettings;
|
private final CreditTrackerSettings creditTrackerSettings;
|
||||||
private final PackageRecordsService packageRecordsService;
|
private final PackageRecordsService packageRecordsService;
|
||||||
|
|
||||||
public FidNameEnricher(PersonServiceV2 personService,
|
public FidNameEnricher(PersonService personService,
|
||||||
CreditTrackerSettings creditTrackerSettings,
|
CreditTrackerSettings creditTrackerSettings,
|
||||||
PackageRecordsService packageRecordsService) {
|
PackageRecordsService packageRecordsService) {
|
||||||
this.personService = personService;
|
this.personService = personService;
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,5 @@
|
||||||
package ru.nbch.credit_tracker.service.task.impl;
|
package ru.nbch.credit_tracker.service.task.impl;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||||
|
|
@ -12,22 +8,27 @@ import ru.nbch.credit_tracker.model.SubjectProfile;
|
||||||
import ru.nbch.credit_tracker.model.impl.PackageVariable;
|
import ru.nbch.credit_tracker.model.impl.PackageVariable;
|
||||||
import ru.nbch.credit_tracker.model.impl.SubjectPayload;
|
import ru.nbch.credit_tracker.model.impl.SubjectPayload;
|
||||||
import ru.nbch.credit_tracker.service.UserPackageService;
|
import ru.nbch.credit_tracker.service.UserPackageService;
|
||||||
import ru.nbch.credit_tracker.service.indic.PersonServiceV2;
|
import ru.nbch.credit_tracker.service.indic.PersonService;
|
||||||
import ru.nbch.credit_tracker.service.signal.PackageRecordsService;
|
import ru.nbch.credit_tracker.service.signal.PackageRecordsService;
|
||||||
import ru.nbch.credit_tracker.service.signal.PhonesMapService;
|
import ru.nbch.credit_tracker.service.signal.PhonesMapService;
|
||||||
import ru.nbch.credit_tracker.service.task.Handler;
|
import ru.nbch.credit_tracker.service.task.Handler;
|
||||||
import ru.nbch.credit_tracker.utils.CTUtil;
|
import ru.nbch.credit_tracker.utils.CTUtil;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class FidNameUpdater implements Handler<SubjectPayload, SubjectPayload> {
|
public class FidNameUpdater implements Handler<SubjectPayload, SubjectPayload> {
|
||||||
private final PersonServiceV2 personService;
|
private final PersonService personService;
|
||||||
private final CreditTrackerSettings creditTrackerSettings;
|
private final CreditTrackerSettings creditTrackerSettings;
|
||||||
private final PackageRecordsService packageRecordsService;
|
private final PackageRecordsService packageRecordsService;
|
||||||
private final PhonesMapService phonesMapService;
|
private final PhonesMapService phonesMapService;
|
||||||
private final UserPackageService userPackageService;
|
private final UserPackageService userPackageService;
|
||||||
|
|
||||||
public FidNameUpdater(PersonServiceV2 personService,
|
public FidNameUpdater(PersonService personService,
|
||||||
CreditTrackerSettings creditTrackerSettings,
|
CreditTrackerSettings creditTrackerSettings,
|
||||||
PackageRecordsService packageRecordsService,
|
PackageRecordsService packageRecordsService,
|
||||||
PhonesMapService phonesMapService,
|
PhonesMapService phonesMapService,
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,5 @@
|
||||||
package ru.nbch.credit_tracker.service.task.impl;
|
package ru.nbch.credit_tracker.service.task.impl;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||||
|
|
@ -10,19 +7,23 @@ import ru.nbch.credit_tracker.entities.indic.Name;
|
||||||
import ru.nbch.credit_tracker.model.SubjectProfile;
|
import ru.nbch.credit_tracker.model.SubjectProfile;
|
||||||
import ru.nbch.credit_tracker.model.impl.PackageVariable;
|
import ru.nbch.credit_tracker.model.impl.PackageVariable;
|
||||||
import ru.nbch.credit_tracker.model.impl.SubjectPayload;
|
import ru.nbch.credit_tracker.model.impl.SubjectPayload;
|
||||||
import ru.nbch.credit_tracker.service.indic.PersonServiceV2;
|
import ru.nbch.credit_tracker.service.indic.PersonService;
|
||||||
import ru.nbch.credit_tracker.service.signal.PhonesMapService;
|
import ru.nbch.credit_tracker.service.signal.PhonesMapService;
|
||||||
import ru.nbch.credit_tracker.service.task.Handler;
|
import ru.nbch.credit_tracker.service.task.Handler;
|
||||||
import ru.nbch.credit_tracker.utils.CTUtil;
|
import ru.nbch.credit_tracker.utils.CTUtil;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class FidNameUpdaterMigration implements Handler<SubjectPayload, SubjectPayload> {
|
public class FidNameUpdaterMigration implements Handler<SubjectPayload, SubjectPayload> {
|
||||||
private final PersonServiceV2 personService;
|
private final PersonService personService;
|
||||||
private final CreditTrackerSettings creditTrackerSettings;
|
private final CreditTrackerSettings creditTrackerSettings;
|
||||||
private final PhonesMapService phonesMapService;
|
private final PhonesMapService phonesMapService;
|
||||||
|
|
||||||
public FidNameUpdaterMigration(PersonServiceV2 personService,
|
public FidNameUpdaterMigration(PersonService personService,
|
||||||
CreditTrackerSettings creditTrackerSettings,
|
CreditTrackerSettings creditTrackerSettings,
|
||||||
PhonesMapService phonesMapService) {
|
PhonesMapService phonesMapService) {
|
||||||
this.personService = personService;
|
this.personService = personService;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,13 @@
|
||||||
package ru.nbch.credit_tracker.service.task.impl;
|
package ru.nbch.credit_tracker.service.task.impl;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||||
|
import ru.nbch.credit_tracker.entities.app.PhonesMap;
|
||||||
|
import ru.nbch.credit_tracker.model.FlagData;
|
||||||
|
import ru.nbch.credit_tracker.service.indic.FlagsService;
|
||||||
|
import ru.nbch.credit_tracker.service.signal.PackageRecordsService;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
@ -8,23 +16,16 @@ import java.util.concurrent.LinkedBlockingQueue;
|
||||||
import java.util.concurrent.ThreadPoolExecutor;
|
import java.util.concurrent.ThreadPoolExecutor;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
|
||||||
import ru.nbch.credit_tracker.entities.app.PhonesMap;
|
|
||||||
import ru.nbch.credit_tracker.model.FlagData;
|
|
||||||
import ru.nbch.credit_tracker.service.indic.FlagsService2;
|
|
||||||
import ru.nbch.credit_tracker.service.signal.PackageRecordsService;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class FlagsEnricher {
|
public class FlagsEnricher {
|
||||||
|
|
||||||
private final FlagsService2 flagsService;
|
private final FlagsService flagsService;
|
||||||
private final PackageRecordsService packageRecordsService;
|
private final PackageRecordsService packageRecordsService;
|
||||||
private final ExecutorService ioPool;
|
private final ExecutorService ioPool;
|
||||||
|
|
||||||
public FlagsEnricher(FlagsService2 flagsService,
|
public FlagsEnricher(FlagsService flagsService,
|
||||||
PackageRecordsService packageRecordsService,
|
PackageRecordsService packageRecordsService,
|
||||||
CreditTrackerSettings creditTrackerSettings) {
|
CreditTrackerSettings creditTrackerSettings) {
|
||||||
this.flagsService = flagsService;
|
this.flagsService = flagsService;
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,5 @@
|
||||||
package ru.nbch.credit_tracker.service.task.impl;
|
package ru.nbch.credit_tracker.service.task.impl;
|
||||||
|
|
||||||
import java.io.BufferedInputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.util.List;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
@ -13,25 +8,31 @@ import ru.nbch.credit_tracker.entities.app.PackagesRecordsMap;
|
||||||
import ru.nbch.credit_tracker.entities.user_request.monitoring_request.MonitoringRequest;
|
import ru.nbch.credit_tracker.entities.user_request.monitoring_request.MonitoringRequest;
|
||||||
import ru.nbch.credit_tracker.enums.Status;
|
import ru.nbch.credit_tracker.enums.Status;
|
||||||
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
|
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
|
||||||
import ru.nbch.credit_tracker.service.indic.PhoneService2;
|
import ru.nbch.credit_tracker.service.indic.PhoneService;
|
||||||
import ru.nbch.credit_tracker.service.xml.stax.StaxXmlProcessor;
|
import ru.nbch.credit_tracker.service.xml.stax.StaxXmlProcessor;
|
||||||
import ru.nbch.credit_tracker.utils.error.ExceptionUtils;
|
import ru.nbch.credit_tracker.utils.error.ExceptionUtils;
|
||||||
|
|
||||||
|
import java.io.BufferedInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class Saver {
|
public class Saver {
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
private final StaxXmlProcessor xmlProcessor;
|
private final StaxXmlProcessor xmlProcessor;
|
||||||
private final PhoneService2 phoneService2;
|
private final PhoneService phoneService;
|
||||||
private final UserPackageMapper userPackageMapper;
|
private final UserPackageMapper userPackageMapper;
|
||||||
private final int BATCH_SIZE;
|
private final int BATCH_SIZE;
|
||||||
|
|
||||||
|
|
||||||
public Saver(StaxXmlProcessor xmlProcessor,
|
public Saver(StaxXmlProcessor xmlProcessor,
|
||||||
PhoneService2 phoneService2,
|
PhoneService phoneService,
|
||||||
UserPackageMapper userPackageMapper,
|
UserPackageMapper userPackageMapper,
|
||||||
CreditTrackerSettings creditTrackerSettings) {
|
CreditTrackerSettings creditTrackerSettings) {
|
||||||
this.xmlProcessor = xmlProcessor;
|
this.xmlProcessor = xmlProcessor;
|
||||||
this.phoneService2 = phoneService2;
|
this.phoneService = phoneService;
|
||||||
this.userPackageMapper = userPackageMapper;
|
this.userPackageMapper = userPackageMapper;
|
||||||
this.BATCH_SIZE = creditTrackerSettings.getSaverSubjectBatchSize();
|
this.BATCH_SIZE = creditTrackerSettings.getSaverSubjectBatchSize();
|
||||||
}
|
}
|
||||||
|
|
@ -48,7 +49,7 @@ public class Saver {
|
||||||
.packageId(packageId)
|
.packageId(packageId)
|
||||||
.phone_l(Long.valueOf(subject.getClientId())) // validated ru.nbch.credit_tracker.service.ValidationService.validateMonitoringRequest
|
.phone_l(Long.valueOf(subject.getClientId())) // validated ru.nbch.credit_tracker.service.ValidationService.validateMonitoringRequest
|
||||||
.build()).toList();
|
.build()).toList();
|
||||||
phoneService2.registerSubjects(subjectForSave);
|
phoneService.registerSubjects(subjectForSave);
|
||||||
request.getSubjects().getSubject().clear();
|
request.getSubjects().getSubject().clear();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,5 @@
|
||||||
package ru.nbch.credit_tracker.service.task.setup;
|
package ru.nbch.credit_tracker.service.task.setup;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.concurrent.BlockingQueue;
|
|
||||||
import ru.nbch.credit_tracker.model.PipelineContext;
|
import ru.nbch.credit_tracker.model.PipelineContext;
|
||||||
import ru.nbch.credit_tracker.model.StagePayload;
|
import ru.nbch.credit_tracker.model.StagePayload;
|
||||||
import ru.nbch.credit_tracker.service.task.Pipeline;
|
import ru.nbch.credit_tracker.service.task.Pipeline;
|
||||||
|
|
@ -11,7 +7,12 @@ import ru.nbch.credit_tracker.service.task.PipelineBackoff;
|
||||||
import ru.nbch.credit_tracker.service.task.Stage;
|
import ru.nbch.credit_tracker.service.task.Stage;
|
||||||
import ru.nbch.credit_tracker.service.task.setup.step.HandlerStep;
|
import ru.nbch.credit_tracker.service.task.setup.step.HandlerStep;
|
||||||
|
|
||||||
public class PipeLineBuilderV2<FIRST extends StagePayload, LAST extends StagePayload> {
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.concurrent.BlockingQueue;
|
||||||
|
|
||||||
|
public class PipeLineBuilder<FIRST extends StagePayload, LAST extends StagePayload> {
|
||||||
private final List<Stage<?, ?>> stages;
|
private final List<Stage<?, ?>> stages;
|
||||||
private Stage<FIRST, ?> firstStage;
|
private Stage<FIRST, ?> firstStage;
|
||||||
private BlockingQueue<LAST> lastQueue;
|
private BlockingQueue<LAST> lastQueue;
|
||||||
|
|
@ -20,29 +21,29 @@ public class PipeLineBuilderV2<FIRST extends StagePayload, LAST extends StagePay
|
||||||
private PipelineBackoff backoff;
|
private PipelineBackoff backoff;
|
||||||
private PipelineContext<?> context;
|
private PipelineContext<?> context;
|
||||||
|
|
||||||
private PipeLineBuilderV2() {
|
private PipeLineBuilder() {
|
||||||
this.stages = new ArrayList<>();
|
this.stages = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <I extends StagePayload, O extends StagePayload>
|
public static <I extends StagePayload, O extends StagePayload>
|
||||||
HandlerStep<I, I, O> first(BlockingQueue<I> inputQueue, BlockingQueue<O> outputQueue) {
|
HandlerStep<I, I, O> first(BlockingQueue<I> inputQueue, BlockingQueue<O> outputQueue) {
|
||||||
PipeLineBuilderV2<I, O> builder = new PipeLineBuilderV2<>();
|
PipeLineBuilder<I, O> builder = new PipeLineBuilder<>();
|
||||||
builder.lastQueue = outputQueue;
|
builder.lastQueue = outputQueue;
|
||||||
HandlerStep<I, I, O> step = StageBuilderV2.create(inputQueue, outputQueue);
|
HandlerStep<I, I, O> step = StageBuilder.create(inputQueue, outputQueue);
|
||||||
((StageBuilderV2<I, I, O>) step).setParent(builder);
|
((StageBuilder<I, I, O>) step).setParent(builder);
|
||||||
return step;
|
return step;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public <NEXT extends StagePayload>
|
public <NEXT extends StagePayload>
|
||||||
HandlerStep<FIRST, LAST, NEXT> stage(BlockingQueue<NEXT> outputQueue) {
|
HandlerStep<FIRST, LAST, NEXT> stage(BlockingQueue<NEXT> outputQueue) {
|
||||||
HandlerStep<FIRST, LAST, NEXT> step = StageBuilderV2.create(lastQueue, outputQueue);
|
HandlerStep<FIRST, LAST, NEXT> step = StageBuilder.create(lastQueue, outputQueue);
|
||||||
lastQueue = (BlockingQueue<LAST>) outputQueue;
|
lastQueue = (BlockingQueue<LAST>) outputQueue;
|
||||||
((StageBuilderV2<FIRST, LAST, NEXT>) step).setParent((PipeLineBuilderV2<FIRST, NEXT>) this);
|
((StageBuilder<FIRST, LAST, NEXT>) step).setParent((PipeLineBuilder<FIRST, NEXT>) this);
|
||||||
return step;
|
return step;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PipeLineBuilderV2<FIRST, LAST> fillInitialQueue(IPipeLineStarter<FIRST> pipeLineStarter) {
|
public PipeLineBuilder<FIRST, LAST> fillInitialQueue(IPipeLineStarter<FIRST> pipeLineStarter) {
|
||||||
Objects.requireNonNull(pipeLineStarter, "pipeLineStarter is required");
|
Objects.requireNonNull(pipeLineStarter, "pipeLineStarter is required");
|
||||||
if (firstStage == null) {
|
if (firstStage == null) {
|
||||||
throw new IllegalStateException("Pipeline has no stages");
|
throw new IllegalStateException("Pipeline has no stages");
|
||||||
|
|
@ -51,19 +52,19 @@ public class PipeLineBuilderV2<FIRST extends StagePayload, LAST extends StagePay
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PipeLineBuilderV2<FIRST, LAST> pollFinishingQueue(IPipeLineTerminator<LAST, ?> pipeLineTerminator) {
|
public PipeLineBuilder<FIRST, LAST> pollFinishingQueue(IPipeLineTerminator<LAST, ?> pipeLineTerminator) {
|
||||||
Objects.requireNonNull(pipeLineTerminator, "pipeLineTerminator is required");
|
Objects.requireNonNull(pipeLineTerminator, "pipeLineTerminator is required");
|
||||||
this.pipeLineTerminator = pipeLineTerminator;
|
this.pipeLineTerminator = pipeLineTerminator;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PipeLineBuilderV2<FIRST, LAST> backoff(PipelineBackoff backoff) {
|
public PipeLineBuilder<FIRST, LAST> backoff(PipelineBackoff backoff) {
|
||||||
this.backoff = backoff;
|
this.backoff = backoff;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T extends Enum<T>>
|
public <T extends Enum<T>>
|
||||||
PipeLineBuilderV2<FIRST, LAST> context(Class<T> contextKeyClass) {
|
PipeLineBuilder<FIRST, LAST> context(Class<T> contextKeyClass) {
|
||||||
this.context = new PipelineContext<>(contextKeyClass);
|
this.context = new PipelineContext<>(contextKeyClass);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
@ -15,16 +15,16 @@ import java.util.function.Consumer;
|
||||||
* Step Builder для Stage:
|
* Step Builder для Stage:
|
||||||
* Обязательная последовательность: handler(...) -> poison(...) -> buildStage()
|
* Обязательная последовательность: handler(...) -> poison(...) -> buildStage()
|
||||||
*/
|
*/
|
||||||
public class StageBuilderV2<FIRST extends StagePayload, I extends StagePayload, O extends StagePayload>
|
public class StageBuilder<FIRST extends StagePayload, I extends StagePayload, O extends StagePayload>
|
||||||
implements HandlerStep<FIRST, I, O>, BuildStep<FIRST, O> {
|
implements HandlerStep<FIRST, I, O>, BuildStep<FIRST, O> {
|
||||||
|
|
||||||
private PipeLineBuilderV2<FIRST, O> parent;
|
private PipeLineBuilder<FIRST, O> parent;
|
||||||
private final BlockingQueue<I> inputQueue;
|
private final BlockingQueue<I> inputQueue;
|
||||||
private final BlockingQueue<O> outputQueue;
|
private final BlockingQueue<O> outputQueue;
|
||||||
private Handler<I, O> handler;
|
private Handler<I, O> handler;
|
||||||
private Consumer<O> consumer = null;
|
private Consumer<O> consumer = null;
|
||||||
|
|
||||||
private StageBuilderV2(BlockingQueue<I> inputQueue, BlockingQueue<O> outputQueue) {
|
private StageBuilder(BlockingQueue<I> inputQueue, BlockingQueue<O> outputQueue) {
|
||||||
this.inputQueue = Objects.requireNonNull(inputQueue, "inputQueue is required");
|
this.inputQueue = Objects.requireNonNull(inputQueue, "inputQueue is required");
|
||||||
this.outputQueue = Objects.requireNonNull(outputQueue, "outputQueue is required");
|
this.outputQueue = Objects.requireNonNull(outputQueue, "outputQueue is required");
|
||||||
}
|
}
|
||||||
|
|
@ -32,10 +32,10 @@ public class StageBuilderV2<FIRST extends StagePayload, I extends StagePayload,
|
||||||
/** Стартовая фабрика возвращает первый шаг — HandlerStep */
|
/** Стартовая фабрика возвращает первый шаг — HandlerStep */
|
||||||
public static <FIRST extends StagePayload, I extends StagePayload, O extends StagePayload>
|
public static <FIRST extends StagePayload, I extends StagePayload, O extends StagePayload>
|
||||||
HandlerStep<FIRST, I, O> create(BlockingQueue<I> inputQueue, BlockingQueue<O> outputQueue) {
|
HandlerStep<FIRST, I, O> create(BlockingQueue<I> inputQueue, BlockingQueue<O> outputQueue) {
|
||||||
return new StageBuilderV2<>(inputQueue, outputQueue);
|
return new StageBuilder<>(inputQueue, outputQueue);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setParent(PipeLineBuilderV2<FIRST, O> parent) {
|
void setParent(PipeLineBuilder<FIRST, O> parent) {
|
||||||
this.parent = Objects.requireNonNull(parent, "parent is required");
|
this.parent = Objects.requireNonNull(parent, "parent is required");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -57,7 +57,7 @@ public class StageBuilderV2<FIRST extends StagePayload, I extends StagePayload,
|
||||||
|
|
||||||
/** Шаг 3: собрать Stage и вернуться к PipeLineBuilder */
|
/** Шаг 3: собрать Stage и вернуться к PipeLineBuilder */
|
||||||
@Override
|
@Override
|
||||||
public PipeLineBuilderV2<FIRST, O> andThen() {
|
public PipeLineBuilder<FIRST, O> andThen() {
|
||||||
if (parent == null) {
|
if (parent == null) {
|
||||||
throw new IllegalStateException("parent PipeLineBuilder is not set");
|
throw new IllegalStateException("parent PipeLineBuilder is not set");
|
||||||
}
|
}
|
||||||
|
|
@ -2,12 +2,12 @@ package ru.nbch.credit_tracker.service.task.setup.step;
|
||||||
|
|
||||||
import ru.nbch.credit_tracker.model.StagePayload;
|
import ru.nbch.credit_tracker.model.StagePayload;
|
||||||
import ru.nbch.credit_tracker.refactoring.Suspicios;
|
import ru.nbch.credit_tracker.refactoring.Suspicios;
|
||||||
import ru.nbch.credit_tracker.service.task.setup.PipeLineBuilderV2;
|
import ru.nbch.credit_tracker.service.task.setup.PipeLineBuilder;
|
||||||
|
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public interface BuildStep<FIRST extends StagePayload, O extends StagePayload> {
|
public interface BuildStep<FIRST extends StagePayload, O extends StagePayload> {
|
||||||
PipeLineBuilderV2<FIRST, O> andThen();
|
PipeLineBuilder<FIRST, O> andThen();
|
||||||
|
|
||||||
@Suspicios("Удалить?")
|
@Suspicios("Удалить?")
|
||||||
BuildStep<FIRST, O> handlerResult(Consumer<O> consumer);
|
BuildStep<FIRST, O> handlerResult(Consumer<O> consumer);
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import java.time.temporal.ChronoUnit;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class FlagsService2Test {
|
public class FlagsServiceTest {
|
||||||
|
|
||||||
private static final LocalDate INITIAL_DATE = LocalDate.parse("2025-09-25");
|
private static final LocalDate INITIAL_DATE = LocalDate.parse("2025-09-25");
|
||||||
|
|
||||||
|
|
@ -1,22 +1,23 @@
|
||||||
package ru.nbch.credit_tracker.service;
|
package ru.nbch.credit_tracker.service;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.mockito.junit.jupiter.MockitoExtension;
|
import org.mockito.junit.jupiter.MockitoExtension;
|
||||||
import ru.nbch.credit_tracker.entities.indic.Id;
|
import ru.nbch.credit_tracker.entities.indic.Id;
|
||||||
import ru.nbch.credit_tracker.service.indic.PersonServiceV2;
|
import ru.nbch.credit_tracker.service.indic.PersonService;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@ExtendWith(MockitoExtension.class)
|
@ExtendWith(MockitoExtension.class)
|
||||||
public class PersonServiceTest {
|
public class PersonServiceTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void groupingPassportDataTest() {
|
public void groupingPassportDataTest() {
|
||||||
PersonServiceV2 personServiceV2 = new PersonServiceV2(null);
|
PersonService personService = new PersonService(null);
|
||||||
|
|
||||||
List<Id> ids = new ArrayList<>();
|
List<Id> ids = new ArrayList<>();
|
||||||
{
|
{
|
||||||
|
|
@ -40,7 +41,7 @@ public class PersonServiceTest {
|
||||||
.build();
|
.build();
|
||||||
ids.add(id);
|
ids.add(id);
|
||||||
}
|
}
|
||||||
Map<Integer, Id> grouped = personServiceV2.groupPassportsData(ids);
|
Map<Integer, Id> grouped = personService.groupPassportsData(ids);
|
||||||
Assertions.assertTrue(grouped.isEmpty());
|
Assertions.assertTrue(grouped.isEmpty());
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
@ -54,7 +55,7 @@ public class PersonServiceTest {
|
||||||
ids.add(id);
|
ids.add(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
grouped = personServiceV2.groupPassportsData(ids);
|
grouped = personService.groupPassportsData(ids);
|
||||||
Assertions.assertFalse(grouped.isEmpty());
|
Assertions.assertFalse(grouped.isEmpty());
|
||||||
Assertions.assertNotNull(grouped.get(1));
|
Assertions.assertNotNull(grouped.get(1));
|
||||||
|
|
||||||
|
|
@ -70,7 +71,7 @@ public class PersonServiceTest {
|
||||||
ids.add(id);
|
ids.add(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
grouped = personServiceV2.groupPassportsData(ids);
|
grouped = personService.groupPassportsData(ids);
|
||||||
Assertions.assertNotNull(grouped.get(1));
|
Assertions.assertNotNull(grouped.get(1));
|
||||||
Assertions.assertEquals("1111", grouped.get(1).getIdNum());
|
Assertions.assertEquals("1111", grouped.get(1).getIdNum());
|
||||||
|
|
||||||
|
|
@ -86,7 +87,7 @@ public class PersonServiceTest {
|
||||||
ids.add(id);
|
ids.add(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
grouped = personServiceV2.groupPassportsData(ids);
|
grouped = personService.groupPassportsData(ids);
|
||||||
Assertions.assertNotNull(grouped.get(2));
|
Assertions.assertNotNull(grouped.get(2));
|
||||||
Assertions.assertEquals("22222222", grouped.get(2).getIdNum());
|
Assertions.assertEquals("22222222", grouped.get(2).getIdNum());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ExtendWith(MockitoExtension.class)
|
@ExtendWith(MockitoExtension.class)
|
||||||
public class PhoneService2Test {
|
public class PhoneServiceTest {
|
||||||
|
|
||||||
// @Mock
|
// @Mock
|
||||||
// PhoneRepository phoneRepository;
|
// PhoneRepository phoneRepository;
|
||||||
Loading…
Add table
Reference in a new issue