parent
e2e8fba2a1
commit
d10b79f05e
3 changed files with 36 additions and 38 deletions
|
|
@ -52,7 +52,7 @@ public class RelationValidationConfig {
|
|||
CompanyErrors.WrongFieldValue),
|
||||
DictionaryPresentRule.instance("serviceStatus",
|
||||
RelationNewRequest::getServiceStatus,
|
||||
IMDGDistributedNames.Map_WorkflowStatusDictionary,
|
||||
IMDGDistributedNames.Map_ServiceStatusDictionary,
|
||||
WorkflowStatusDictionary.class,
|
||||
CompanyErrors.RequiredFieldEmpty,
|
||||
CompanyErrors.WrongFieldValue)
|
||||
|
|
@ -103,7 +103,7 @@ public class RelationValidationConfig {
|
|||
// CompanyErrors.WrongFieldValue),
|
||||
DictionaryPresentRule.instance("serviceStatus",
|
||||
RelationUpdateRequest::getServiceStatus,
|
||||
IMDGDistributedNames.Map_WorkflowStatusDictionary,
|
||||
IMDGDistributedNames.Map_ServiceStatusDictionary,
|
||||
WorkflowStatusDictionary.class,
|
||||
CompanyErrors.RequiredFieldEmpty,
|
||||
CompanyErrors.WrongFieldValue)
|
||||
|
|
|
|||
|
|
@ -9,11 +9,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
|
||||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.classes.statics.data.profile.ProfileDocument;
|
||||
import ru.spcex.clearing.company.error.CompanyErrors;
|
||||
import ru.spcex.clearing.util.services.RequestHelper;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
|
|
@ -23,6 +21,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentUp
|
|||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||
import ru.spcex.clearing.util.services.RequestHelper;
|
||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||
import ru.spcex.platform.enumeration.DocumentTypes;
|
||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||
|
|
@ -38,11 +37,6 @@ import java.util.function.Function;
|
|||
@Service
|
||||
public class ProfileDocumentService extends QueueConsumer implements InitializingBean {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private Imdg<ProfileDocument> profileDocumentMap;
|
||||
private Imdg<Company> companyMap;
|
||||
private ImdgProvider imdgProvider;
|
||||
private AccountNotificationHelper accountNotificationHelper;
|
||||
|
||||
private final CompanyService companyService;
|
||||
private final Function<ProfileDocumentNewRequest, IValidator> profileDocumentNewRequestValidator;
|
||||
private final Function<ProfileDocumentUpdateRequest, IValidator> profileDocumentUpdateRequestValidator;
|
||||
|
|
@ -51,6 +45,10 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin
|
|||
private final UserRoleVerification userRoleVerification;
|
||||
protected IMessageResolver messageResolver;
|
||||
protected RequestHelper requestHelper;
|
||||
private Imdg<ProfileDocument> profileDocumentMap;
|
||||
private Imdg<Company> companyMap;
|
||||
private final ImdgProvider imdgProvider;
|
||||
private final AccountNotificationHelper accountNotificationHelper;
|
||||
|
||||
@Autowired
|
||||
public ProfileDocumentService(Consumer<String, Object> kafkaQueue,
|
||||
|
|
@ -140,26 +138,25 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin
|
|||
deleteRequest, profileDocumentDeleteRequestValidator
|
||||
);
|
||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||
|
||||
CommonDeleteRequest profileDocumentDeleteRequest = deleteRequest.getRequestPayload();
|
||||
ProfileDocument profileDocument = profileDocumentMap.getSingleObjectByID(profileDocumentDeleteRequest.getId());
|
||||
|
||||
Company existCompany = profileDocument.getCompanyId() == null ? null : companyMap.getSingleObjectByID(profileDocument.getCompanyId());
|
||||
if (existCompany == null) {
|
||||
log.warn("Company {} not found by profileDocument {}", profileDocument.getCompanyId(), profileDocument.getId());
|
||||
return requestHelper.makeErrorResponse(deleteRequest, CompanyErrors.CompanyNotFound, profileDocument.getCompanyId());
|
||||
}
|
||||
if (!WorkflowStatus.Active.equalsByKey(existCompany.getWorkflowStatus())) {
|
||||
log.debug("Company {} not active", profileDocument.getCompanyId());
|
||||
return requestHelper.makeErrorResponse(deleteRequest, CompanyErrors.CompanyNotFound, profileDocument.getCompanyId());
|
||||
}
|
||||
synchronized (companyService) {
|
||||
Company existCompany = profileDocument.getCompanyId() == null ? null : companyMap.getSingleObjectByID(profileDocument.getCompanyId());
|
||||
if (existCompany == null) {
|
||||
log.warn("Company {} not found by profileDocument {}", profileDocument.getCompanyId(), profileDocument.getId());
|
||||
return requestHelper.makeErrorResponse(deleteRequest, CompanyErrors.CompanyNotFound, profileDocument.getCompanyId());
|
||||
}
|
||||
if (!WorkflowStatus.Active.equalsByKey(existCompany.getWorkflowStatus())) {
|
||||
log.debug("Company {} not active", profileDocument.getCompanyId());
|
||||
return requestHelper.makeErrorResponse(deleteRequest, CompanyErrors.CompanyNotFound, profileDocument.getCompanyId());
|
||||
}
|
||||
|
||||
ImdgTransaction transaction = imdgProvider.newTransaction();
|
||||
transaction.beginTransaction();
|
||||
boolean txOk = false;
|
||||
try {
|
||||
companyService.relationService.cancelingOfAgreementUpdateRelation(transaction, profileDocument.getCompanyId());
|
||||
Imdg<ProfileDocument> txProfileDocumentMap= transaction.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class);
|
||||
companyService.relationService.cancelingOfAgreementUpdateRelation(transaction, profileDocument.getCompanyId());
|
||||
Imdg<ProfileDocument> txProfileDocumentMap = transaction.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class);
|
||||
txProfileDocumentMap.delete(profileDocument);
|
||||
txOk = true;
|
||||
} finally {
|
||||
|
|
|
|||
|
|
@ -12,15 +12,16 @@ import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
|
|||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.classes.statics.data.company.relation.Relation;
|
||||
import ru.spcex.clearing.company.error.CompanyErrors;
|
||||
import ru.spcex.clearing.util.services.RequestHelper;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.company.*;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.company.RelationNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.company.RelationUpdateRequest;
|
||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||
import ru.spcex.clearing.util.services.RequestHelper;
|
||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||
import ru.spcex.platform.enumeration.ClearingCategory;
|
||||
import ru.spcex.platform.enumeration.ServiceProduct;
|
||||
|
|
@ -30,7 +31,6 @@ import ru.spcex.platform.imdg.api.Imdg;
|
|||
import ru.spcex.platform.imdg.api.ImdgId;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.imdg.api.ImdgTransaction;
|
||||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||
import ru.spcex.platform.utils.error.ValidationException;
|
||||
import ru.spcex.platform.utils.validation.IValidator;
|
||||
|
||||
|
|
@ -42,7 +42,7 @@ import java.util.function.Function;
|
|||
|
||||
import static ru.spcex.platform.enumeration.Service.FOND;
|
||||
import static ru.spcex.platform.enumeration.Service.MKR;
|
||||
import static ru.spcex.platform.enumeration.SessionStatus.CLOS;
|
||||
import static ru.spcex.platform.enumeration.ServiceStatus.Closed;
|
||||
import static ru.spcex.platform.utils.enumeration.IEnumKey.getEnumByKey;
|
||||
|
||||
@Service
|
||||
|
|
@ -59,9 +59,9 @@ public class RelationService extends QueueConsumer implements InitializingBean {
|
|||
protected RequestHelper requestHelper;
|
||||
|
||||
protected ValidationHelper validationHelper;
|
||||
private Function<RelationNewRequest, IValidator> relationNewRequestValidator;
|
||||
private Function<RelationUpdateRequest, IValidator> relationUpdateRequestValidator;
|
||||
private Function<CommonDeleteRequest, IValidator> relationDeleteRequestValidator;
|
||||
private final Function<RelationNewRequest, IValidator> relationNewRequestValidator;
|
||||
private final Function<RelationUpdateRequest, IValidator> relationUpdateRequestValidator;
|
||||
private final Function<CommonDeleteRequest, IValidator> relationDeleteRequestValidator;
|
||||
|
||||
@Autowired
|
||||
public RelationService(Consumer<String, Object> kafkaQueue,
|
||||
|
|
@ -117,7 +117,7 @@ public class RelationService extends QueueConsumer implements InitializingBean {
|
|||
{ //проверка заполнен ли serviceStatus
|
||||
String serviceStatus = req.getServiceStatus();
|
||||
if (serviceStatus == null || serviceStatus.isEmpty()) {
|
||||
Company company = companyMap.getSingleObjectByFieldValues(Map.of("id", req.getCompanyId()));
|
||||
Company company = companyMap.getSingleObjectByID(req.getCompanyId());
|
||||
req.setServiceStatus(company.getWorkflowStatus());
|
||||
}
|
||||
}
|
||||
|
|
@ -168,7 +168,7 @@ public class RelationService extends QueueConsumer implements InitializingBean {
|
|||
log.debug("Request has no status. Set status by resume: {}", relation.getServiceStatus());
|
||||
} else {
|
||||
String toStatus = WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? ServiceStatus.Active.getKey() :
|
||||
WorkflowStatus.Blocked.equalsByKey(company.getWorkflowStatus()) ? ServiceStatus.Closed.getKey() :
|
||||
WorkflowStatus.Blocked.equalsByKey(company.getWorkflowStatus()) ? Closed.getKey() :
|
||||
null;
|
||||
log.debug("Request has no status. Set status by company[{}].status={}. Relation[{}].serviceSStatus={}",
|
||||
company.getId(), company.getWorkflowStatus(), toStatus);
|
||||
|
|
@ -231,9 +231,9 @@ public class RelationService extends QueueConsumer implements InitializingBean {
|
|||
}
|
||||
Company company = companyMap.getSingleObjectByID(relation.getConsumerId());
|
||||
String toStatus = WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? ServiceStatus.Active.getKey() :
|
||||
WorkflowStatus.Blocked.equalsByKey(company.getWorkflowStatus()) ? ServiceStatus.Closed.getKey() :
|
||||
WorkflowStatus.Blocked.equalsByKey(company.getWorkflowStatus()) ? Closed.getKey() :
|
||||
null;
|
||||
if (ServiceStatus.Active.equalsByKey(toStatus) && ServiceStatus.Closed.equalsByKey(relation.getServiceStatus())) {
|
||||
if (ServiceStatus.Active.equalsByKey(toStatus) && Closed.equalsByKey(relation.getServiceStatus())) {
|
||||
relation.setServiceStatus(ServiceStatus.Reopened.getKey());
|
||||
log.debug("Set status by resume: {}", relation.getServiceStatus());
|
||||
} else {
|
||||
|
|
@ -287,9 +287,9 @@ public class RelationService extends QueueConsumer implements InitializingBean {
|
|||
ClearingMemberCategory clearingMemberCategory = transaction.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class).getSingleObjectByFieldValues(Map.of("companyId", companyId));
|
||||
|
||||
WorkflowStatus workflowStatus = getEnumByKey(WorkflowStatus.class, company.getWorkflowStatus());
|
||||
ClearingCategory clearingCategory = getEnumByKey(ClearingCategory.class, clearingMemberCategory.getClearingMemberCategory());
|
||||
ClearingCategory clearingCategory = getEnumByKey(ClearingCategory.class, clearingMemberCategory.getClearingMemberCategory());
|
||||
String serviceStatus;
|
||||
switch (Objects.requireNonNull(clearingCategory)){
|
||||
switch (Objects.requireNonNull(clearingCategory)) {
|
||||
case B:
|
||||
case I:
|
||||
case V:
|
||||
|
|
@ -313,10 +313,11 @@ public class RelationService extends QueueConsumer implements InitializingBean {
|
|||
log.debug("New Relation[{}] created.", relation.getId());
|
||||
relationMap.insert(relation);
|
||||
}
|
||||
|
||||
protected void cancelingOfAgreementUpdateRelation(ImdgTransaction transaction, Long companyId) {
|
||||
Imdg<Relation> relationMap = transaction.getImdg(IMDGDistributedNames.Map_Relation, Relation.class);
|
||||
Relation relation = relationMap.getSingleObjectByFieldValues(Map.of("consumerId", companyId));
|
||||
relation.setServiceStatus(CLOS.getKey());
|
||||
relation.setServiceStatus(Closed.getKey());
|
||||
relationMap.update(relation);
|
||||
log.debug("New Relation[{}] updated.", relation.getId());
|
||||
}
|
||||
|
|
@ -356,8 +357,8 @@ public class RelationService extends QueueConsumer implements InitializingBean {
|
|||
modified = true;
|
||||
}
|
||||
} else if (WorkflowStatus.Blocked.equalsByKey(company.getWorkflowStatus())) {
|
||||
if (!ServiceStatus.Closed.equalsByKey(relation.getServiceStatus())) {
|
||||
relation.setServiceStatus(ServiceStatus.Closed.getKey());
|
||||
if (!Closed.equalsByKey(relation.getServiceStatus())) {
|
||||
relation.setServiceStatus(Closed.getKey());
|
||||
modified = true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue