SUPPORT-9525: Fix
This commit is contained in:
parent
d106b37d8e
commit
17b2469b2b
5 changed files with 59 additions and 45 deletions
|
|
@ -339,16 +339,19 @@ public class EmployeeInfoFileUploadService {
|
|||
|
||||
String signerInfo = verifyDocumentSignResponse.getSignerInfo();
|
||||
Map<String, String> signerInfoMap = parseKeyValuePairs(signerInfo);
|
||||
|
||||
String chiefMiddleName = chiefModel.getPerson().getMiddleName();
|
||||
String chiefLastName = chiefModel.getPerson().getLastName();
|
||||
String chiefFirstName = chiefModel.getPerson().getFirstName();
|
||||
boolean isSignerLastName = signerInfoMap.get("SN").equalsIgnoreCase(chiefLastName);
|
||||
boolean isSignerFirstNameAndMiddleName = signerInfoMap.get("G")
|
||||
.equalsIgnoreCase(chiefFirstName + " " + chiefMiddleName);
|
||||
boolean isSignerOgrn = signerInfoMap.get("ОГРН").equalsIgnoreCase(ogrn);
|
||||
|
||||
if (isSignerLastName && isSignerFirstNameAndMiddleName && isSignerOgrn) {
|
||||
String signSnils = signerInfoMap.get("СНИЛС");
|
||||
boolean isSignerSnils = signSnils.equalsIgnoreCase(
|
||||
chiefModel.getPerson().getSnils().replaceAll("[\\s-]", ""));
|
||||
if (isSignerSnils) {
|
||||
String signOgrn = signerInfoMap.get("ОГРН");
|
||||
if (signOgrn == null ) {
|
||||
handeSignError(fileInfo, signFileInfo, uploadOrgInfo, response);
|
||||
throw new LocalizedException("sign_ogrn_null", MESSAGE_SOURCE);
|
||||
}
|
||||
if (!signOgrn.equals(ogrn)) {
|
||||
handeSignError(fileInfo, signFileInfo, uploadOrgInfo, response);
|
||||
throw new LocalizedException("sign_ogrn_invalid", MESSAGE_SOURCE);
|
||||
}
|
||||
FileStatusResponse fileStatusResponse = new FileStatusResponse(uploadOrgInfo,
|
||||
new FileInfo[] {fileInfo, signFileInfo}, fileInfo.getFileStatus()
|
||||
);
|
||||
|
|
@ -372,24 +375,13 @@ public class EmployeeInfoFileUploadService {
|
|||
if (mchdFile == null) {
|
||||
handleMchdValidationError(uploadOrgInfo, fileInfo, signFileInfo, null, ervuId, response
|
||||
);
|
||||
List<String> falseResults = new ArrayList<>();
|
||||
if (!isSignerLastName) {
|
||||
falseResults.add("фамилия");
|
||||
}
|
||||
if (!isSignerFirstNameAndMiddleName) {
|
||||
falseResults.add("имя или отчество");
|
||||
}
|
||||
if (!isSignerOgrn) {
|
||||
falseResults.add("организация");
|
||||
}
|
||||
String result = String.join(", ", falseResults);
|
||||
throw new LocalizedException("mchd_null", MESSAGE_SOURCE, result);
|
||||
throw new LocalizedException("mchd_null", MESSAGE_SOURCE);
|
||||
}
|
||||
FileStatusResponse fileStatusResponse = new FileStatusResponse(uploadOrgInfo,
|
||||
new FileInfo[] {fileInfo, signFileInfo, mchdFileInfo}, fileInfo.getFileStatus()
|
||||
);
|
||||
try {
|
||||
validateMchd(mchdFile, ogrn, signerInfoMap.get("СНИЛС"));
|
||||
validateMchd(mchdFile, ogrn, signSnils);
|
||||
|
||||
if (sendMessage(fileStatusResponse)) {
|
||||
interactionService.updateStatus(fileInfo.getFileId(), "Направлено в ЕРВУ", ervuId);
|
||||
|
|
@ -567,10 +559,15 @@ public class EmployeeInfoFileUploadService {
|
|||
}
|
||||
MchdInfoModel mchdInfoModel = mchdService.getMchdInfoModel(mchdGuid);
|
||||
LocalDate now = LocalDate.now();
|
||||
if (!mchdInfoModel.getStatus().equals("A") || now.isAfter(mchdInfoModel.getExpiredOn())
|
||||
|| mchdInfoModel.getIssuedOn().isAfter(now)) {
|
||||
if (!mchdInfoModel.getStatus().equals("A")) {
|
||||
throw new LocalizedException("mchd_status_invalid", MESSAGE_SOURCE);
|
||||
}
|
||||
if (now.isAfter(mchdInfoModel.getExpiredOn())) {
|
||||
throw new LocalizedException("mchd_expired", MESSAGE_SOURCE);
|
||||
}
|
||||
if (mchdInfoModel.getIssuedOn().isAfter(now)) {
|
||||
throw new LocalizedException("mchd_issued_on_invalid", MESSAGE_SOURCE);
|
||||
}
|
||||
boolean validAgent = mchdInfoModel.getAgents()
|
||||
.getElements()
|
||||
.stream()
|
||||
|
|
@ -581,7 +578,13 @@ public class EmployeeInfoFileUploadService {
|
|||
while (mchdInfoModel.getParentGuid() != null) {
|
||||
mchdInfoModel = mchdService.getMchdInfoModel(mchdInfoModel.getParentGuid());
|
||||
if (!mchdInfoModel.getStatus().equals("A")) {
|
||||
throw new LocalizedException("mchd_tree_expired", MESSAGE_SOURCE);
|
||||
throw new LocalizedException("mchd_tree_status_invalid", MESSAGE_SOURCE, mchdInfoModel.getGuid());
|
||||
}
|
||||
if (now.isAfter(mchdInfoModel.getExpiredOn())) {
|
||||
throw new LocalizedException("mchd_tree_expired", MESSAGE_SOURCE, mchdInfoModel.getGuid());
|
||||
}
|
||||
if (mchdInfoModel.getIssuedOn().isAfter(now)) {
|
||||
throw new LocalizedException("mchd_tree_issued_on_invalid", MESSAGE_SOURCE, mchdInfoModel.getGuid());
|
||||
}
|
||||
}
|
||||
MchdInfoModel.Element principal = mchdInfoModel.getPrincipals().getElements().get(0);
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ public class EsiaConfig {
|
|||
@Value("${file.sign.verify.url}")
|
||||
private String fileSignVerifyUrl;
|
||||
|
||||
@Value("${esia.system.scope: pow_reg, pow_reg_search}")
|
||||
@Value("${esia.system.scope: pow_reg, pow_reg_search}")
|
||||
private String esiaSystemScope;
|
||||
|
||||
public String getEsiaOrgScopes() {
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ public class MchdService {
|
|||
|
||||
public MchdInfoModel getMchdInfoModel(String guid) {
|
||||
String accessToken = EsiaAuthInfoStore.getSystemEsiaToken();
|
||||
boolean isNewToken = (accessToken == null);
|
||||
boolean isNewToken = accessToken == null;
|
||||
if (isNewToken) {
|
||||
accessToken = esiaAuthService.getSystemAccessToken();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,12 +5,17 @@ crl_certificate_expired=Превышено время ожидания отве
|
|||
cert_trust_revocation=Неизвестен статус отзыва сертификата или одного из сертификатов в цепочке (проблема с CRL)
|
||||
cert_untrusted_root=Сертификат или цепочка сертификатов основана на ненадежном корневом сертификате
|
||||
cert_is_not_time_valid=Этот сертификат или один из сертификатов в цепочке сертификатов является недопустимым по времени
|
||||
file_sign_validate=Ошибка проверки файлов. Некорректная электронная подпись
|
||||
mchd_validate_agent=Ошибка проверки файлов. Некорректная машиночитаемая доверенность. Представитель не совпадает с подписантом
|
||||
mchd_null=Ошибка проверки файлов. Отсутствует машиночитаемая доверенность. Подписант не является руководителем организации. Не совпадает {0}
|
||||
temp_sign_error=Ошибка проверки файлов. Подписант не является руководителем организации. Приложите подпись руководителя
|
||||
mchd_expired=Ошибка проверки файлов. Недействующая машиночитаемая доверенность.
|
||||
mchd_tree_expired=Ошибка проверки файлов. Одна из родительских доверенностей недействующая.
|
||||
mchd_validate_principal=Ошибка проверки файлов. Некорректная машиночитаемая доверенность. Доверенность выдана не той организацией, под которой была осуществлена загрузка файлов.
|
||||
av_file_infected=Ошибка проверки файлов. Файлы заражены вирусом
|
||||
mchd_cant_parse=Ошибка проверки файлов. Некорректный формат машиночитаемой доверенности
|
||||
file_sign_validate=Некорректная электронная подпись
|
||||
mchd_validate_agent=Некорректная машиночитаемая доверенность. Представитель не совпадает с подписантом
|
||||
mchd_null=Отсутствует машиночитаемая доверенность. Подписант не является руководителем организации.
|
||||
sign_ogrn_null=Приложена электронная подпись физического лица.
|
||||
sign_ogrn_invalid=Файл подписан не той организацией, под которой была осуществлена загрузка.
|
||||
mchd_status_invalid=Недействующая машиночитаемая доверенность.
|
||||
mchd_issued_on_invalid=Не наступил срок действия машиночитаемой доверенности.
|
||||
mchd_expired=Истек срок действия машиночитаемой доверенности.
|
||||
mchd_tree_status_invalid=Одна из родительских доверенностей недействующая. Номер доверенности: {0}
|
||||
mchd_tree_issued_on_invalid=У одной из родительских доверенностей истек срок действия. Номер доверенности: {0}
|
||||
mchd_tree_expired=У одной из родительских доверенностей не наступил срок действия. Номер доверенности: {0}
|
||||
mchd_validate_principal=Некорректная машиночитаемая доверенность. Доверенность выдана не той организацией, под которой была осуществлена загрузка файлов.
|
||||
av_file_infected=Файлы заражены вирусом
|
||||
mchd_cant_parse=Некорректный формат машиночитаемой доверенности
|
||||
|
|
@ -5,11 +5,17 @@ crl_certificate_expired=Превышено время ожидания отве
|
|||
cert_trust_revocation=Неизвестен статус отзыва сертификата или одного из сертификатов в цепочке (проблема с CRL)
|
||||
cert_untrusted_root=Сертификат или цепочка сертификатов основана на ненадежном корневом сертификате
|
||||
cert_is_not_time_valid=Этот сертификат или один из сертификатов в цепочке сертификатов является недопустимым по времени
|
||||
file_sign_validate=Ошибка проверки файлов. Некорректная электронная подпись
|
||||
mchd_validate_agent=Ошибка проверки файлов. Некорректная машиночитаемая доверенность. Представитель не совпадает с подписантом
|
||||
mchd_null=Ошибка проверки файлов. Отсутствует машиночитаемая доверенность. Подписант не является руководителем организации. Не совпадает {0}
|
||||
mchd_expired=Ошибка проверки файлов. Недействующая машиночитаемая доверенность.
|
||||
mchd_tree_expired=Ошибка проверки файлов. Одна из родительских доверенностей недействующая.
|
||||
mchd_validate_principal=Ошибка проверки файлов. Некорректная машиночитаемая доверенность. Доверенность выдана не той организацией, под которой была осуществлена загрузка файлов.
|
||||
av_file_infected=Ошибка проверки файлов. Файлы заражены вирусом
|
||||
mchd_cant_parse=Ошибка проверки файлов. Некорректный формат машиночитаемой доверенности
|
||||
file_sign_validate=Некорректная электронная подпись
|
||||
mchd_validate_agent=Некорректная машиночитаемая доверенность. Представитель не совпадает с подписантом
|
||||
mchd_null=Подписант не является руководителем организации и отсутствует машиночитаемая доверенность.
|
||||
sign_ogrn_null=Приложена электронная подпись физического лица.
|
||||
sign_ogrn_invalid=Файл подписан не той организацией, под которой была осуществлена загрузка.
|
||||
mchd_status_invalid=Недействующая машиночитаемая доверенность.
|
||||
mchd_issued_on_invalid=Не наступил срок действия машиночитаемой доверенности.
|
||||
mchd_expired=Истек срок действия машиночитаемой доверенности.
|
||||
mchd_tree_status_invalid=Одна из родительских доверенностей недействующая. Номер доверенности: {0}
|
||||
mchd_tree_issued_on_invalid=У одной из родительских доверенностей истек срок действия. Номер доверенности: {0}
|
||||
mchd_tree_expired=У одной из родительских доверенностей не наступил срок действия. Номер доверенности: {0}
|
||||
mchd_validate_principal=Некорректная машиночитаемая доверенность. Доверенность выдана не той организацией, под которой была осуществлена загрузка файлов.
|
||||
av_file_infected=Файлы заражены вирусом
|
||||
mchd_cant_parse=Некорректный формат машиночитаемой доверенности
|
||||
Loading…
Add table
Add a link
Reference in a new issue