Fixed sending package to nbki service

This commit is contained in:
Mikhail Trofimov 2025-06-17 12:48:30 +03:00
parent cf9cba8aad
commit 7a4290ad0b
4 changed files with 18 additions and 14 deletions

View file

@ -28,6 +28,6 @@ ct.scoring-data-source-settings.password=tester
ct.xsd-validation.monitoring-request-path=monitoring-request.xsd
ct.xsd-validation.signal-package-path=signal-package.xsd
ct.signals-root-uri=http://reports.test-alfa.nbki.ru/signalRUalfa/
ct.signals-root-uri=http://10.230.227.102:11094/signalRUalfa/
ct.signals-token=gttcHxwcGojoAvZK
ct.signals-user=0001ZZ000001

View file

@ -229,16 +229,14 @@ public class SignalFacade {
if (!phoneFidsData.isEmpty()) {
Signals signals = signalService.buildSignals(packageId, phoneFidsData);
// TODO validate xsd?
String response = null;
// response = signalRestService.update(signals);
if (response == null) {
if (signalRestService.update(signals)) {
signalService.setPackageStatus(packageId, Status.ON_MONITORING);
} else {
signalService.setPackageStatus(packageId, Status.ERROR);
}
}
} catch (Exception e) {
log.error("Ошибка при поиске фидов или расчете флагов просрочек", e);
log.error("Ошибка при поиске фидов или расчете флагов просрочек. Package_id {}", packageId, e);
}
});
}

View file

@ -4,6 +4,7 @@ import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
import ru.nbch.credit_tracker.entities.monitoring_request.MonitoringRequest;
import ru.nbch.credit_tracker.entities.signal_package.Auth;
import ru.nbch.credit_tracker.entities.signal_package.Person;
@ -27,14 +28,18 @@ public class SignalService {
private final static DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yyyy");
private final CreditTrackerSettings config;
private final SignalMapper mapper;
private final PhoneService phoneService;
private final FlagsService flagsService;
private final PersonService personService;
public SignalService(SignalMapper mapper,
public SignalService(CreditTrackerSettings config,
SignalMapper mapper,
PhoneService phoneService,
FlagsService flagsService, PersonService personService) {
FlagsService flagsService,
PersonService personService) {
this.config = config;
this.mapper = mapper;
this.phoneService = phoneService;
this.flagsService = flagsService;
@ -77,7 +82,7 @@ public class SignalService {
signals.setOnline("2"); // Всегда=2 (только онлайн-сигналы)
signals.setId(packageData.getUserId().substring(0, 6) + "_" + packageData.getPackageName()); // <MEMBERCODE>_<PackageName>
Auth auth = new Auth();
auth.setUser("test_user"); // TODO from properties // Внутренний логин НБКИ
auth.setUser(config.getSignalsuser());
signals.setAuth(auth);
for (PhoneService.FidsPhoneData fidData : fids) {
Person person = findPerson(fidData.getFid(), fidData.getSubjectId());

View file

@ -43,28 +43,29 @@ public class SignalRestService {
this.authToken = buildToken(config.getSignalsToken(), config.getSignalsuser());
}
public String update(Signals signals) throws Exception {
public boolean update(Signals signals) throws Exception {
Resource request = compressFile(signals);
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
MultiValueMap<String, Resource> body = new LinkedMultiValueMap<>();
body.add("file", request);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
headers.setBasicAuth(authToken);
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers);
HttpEntity<MultiValueMap<String, Resource>> requestEntity = new HttpEntity<>(body, headers);
ResponseEntity<String> response = restTemplate.postForEntity(UPDATE_URI, requestEntity, String.class);
if (response.getStatusCode().value() == 302) {
// good response
return null;
return true;
} else if (response.getStatusCode().value() == 200 && response.getBody() != null) {
// bad response
return response.getBody();
log.error("Ошибка при постановке пакета на мониторинг в официальный сервис сигналов: {}", response.getBody());
return false;
}
return "Непредвиденная ошибка";
return false;
}
private Resource compressFile(Signals signals) throws Exception {