company-service http://jira.mfd.msk:8088/browse/CLS-284 начало (доделать!)

This commit is contained in:
AKurakin 2023-05-05 14:36:33 +03:00
parent 5938786f84
commit 2829e50e7e
6 changed files with 54 additions and 20 deletions

View file

@ -111,7 +111,7 @@ public class CompanyInfoService extends QueueConsumer implements InitializingBea
transaction.beginTransaction(); transaction.beginTransaction();
boolean txOk = false; boolean txOk = false;
try { try {
companyService.relationHelper.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus()); companyService.relationService.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus());
Imdg<Company> txCompanyMap = transaction.getImdg(IMDGDistributedNames.Map_Company, Company.class); Imdg<Company> txCompanyMap = transaction.getImdg(IMDGDistributedNames.Map_Company, Company.class);
txCompanyMap.update(company); txCompanyMap.update(company);
log.trace("Company {} updated", company.getId()); log.trace("Company {} updated", company.getId());

View file

@ -29,13 +29,11 @@ import ru.spcex.platform.imdg.api.ImdgId;
import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.ImdgTransaction; import ru.spcex.platform.imdg.api.ImdgTransaction;
import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.enumeration.IMessageResolver;
import ru.spcex.platform.utils.error.ClearingBaseException; import ru.spcex.platform.utils.error.ClearingBaseException;
import ru.spcex.platform.utils.error.ValidationException; import ru.spcex.platform.utils.error.ValidationException;
import ru.spcex.platform.utils.validation.IValidator; import ru.spcex.platform.utils.validation.IValidator;
import java.time.Instant; import java.time.Instant;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.function.Function; import java.util.function.Function;
@ -56,7 +54,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
protected CompanySymbolService companySymbolService; protected CompanySymbolService companySymbolService;
protected AccountNotificationHelper accountNotification; protected AccountNotificationHelper accountNotification;
protected RelationHelper relationHelper; protected RelationService relationService;
@Autowired @Autowired
public CompanyService(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaProducer, public CompanyService(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaProducer,
@ -73,7 +71,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
CompanySymbolService companySymbolService, CompanySymbolService companySymbolService,
AccountNotificationHelper accountNotification, AccountNotificationHelper accountNotification,
RelationHelper relationHelper RelationService relationService
) { ) {
super(kafkaQueue, kafkaProducer); super(kafkaQueue, kafkaProducer);
this.imdgProvider = imdgProvider; this.imdgProvider = imdgProvider;
@ -89,7 +87,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
this.companySymbolService = companySymbolService; this.companySymbolService = companySymbolService;
companySymbolService.setCompanyService(this); companySymbolService.setCompanyService(this);
this.accountNotification = accountNotification; this.accountNotification = accountNotification;
this.relationHelper = relationHelper; this.relationService = relationService;
companyIMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); companyIMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
} }
@ -145,9 +143,9 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
companyMap.insert(company); companyMap.insert(company);
log.debug("company-new request processed, BaseRequest.id = {}, company.id={}", log.debug("company-new request processed, BaseRequest.id = {}, company.id={}",
companyNewRequestBaseRequest.getId(), company.getId()); companyNewRequestBaseRequest.getId(), company.getId());
relationHelper.createNewRelation(transaction, company); relationService.createNewRelation(transaction, company);
if (!(WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()))) { // Block if (!(WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()))) { // Block
relationHelper.onChangeWorkflowStatus(transaction, company, null, company.getWorkflowStatus()); relationService.onChangeWorkflowStatus(transaction, company, null, company.getWorkflowStatus());
} }
txOk = true; txOk = true;
} finally { } finally {
@ -180,10 +178,10 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
log.trace("Company {} not found", updateRequest.getId()); log.trace("Company {} not found", updateRequest.getId());
return requestHelper.makeErrorResponse(companyUpdateRequestBaseRequest, CompanyErrors.CompanyNotFound, updateRequest.getId()); return requestHelper.makeErrorResponse(companyUpdateRequestBaseRequest, CompanyErrors.CompanyNotFound, updateRequest.getId());
} }
if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) { // if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) {
log.trace("Company {} not active: {}", company.getId(), company.getWorkflowStatus()); // log.trace("Company {} not active: {}", company.getId(), company.getWorkflowStatus());
return requestHelper.makeErrorResponse(companyUpdateRequestBaseRequest, CompanyErrors.CompanyDisabled, updateRequest.getId()); // return requestHelper.makeErrorResponse(companyUpdateRequestBaseRequest, CompanyErrors.CompanyDisabled, updateRequest.getId());
} // }
company.setUpdated(Instant.now()); company.setUpdated(Instant.now());
company.setShortName(updateRequest.getShortName()); company.setShortName(updateRequest.getShortName());
@ -199,7 +197,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
if (updateRequest.getWorkflowStatus() != null) { if (updateRequest.getWorkflowStatus() != null) {
company.setWorkflowStatus(updateRequest.getWorkflowStatus()); company.setWorkflowStatus(updateRequest.getWorkflowStatus());
if (!Objects.equals(prevStatus, company.getWorkflowStatus())) { if (!Objects.equals(prevStatus, company.getWorkflowStatus())) {
relationHelper.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus()); relationService.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus());
} else { } else {
log.trace("Status was not changed"); log.trace("Status was not changed");
} }
@ -286,7 +284,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
String prevStatus = company.getWorkflowStatus(); String prevStatus = company.getWorkflowStatus();
company.setWorkflowStatus(WorkflowStatus.Blocked.getKey()); company.setWorkflowStatus(WorkflowStatus.Blocked.getKey());
relationHelper.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus()); relationService.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus());
log.debug("Update company.id={}", company.getId()); log.debug("Update company.id={}", company.getId());
companyMap.update(company); companyMap.update(company);
@ -339,7 +337,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
company.setWorkflowStatus(WorkflowStatus.Blocked.getKey()); company.setWorkflowStatus(WorkflowStatus.Blocked.getKey());
relationHelper.onChangeWorkflowStatusOnlyRelationChange(transaction, company, company.getWorkflowStatus()); relationService.onChangeWorkflowStatusOnlyRelationChange(transaction, company, company.getWorkflowStatus());
log.debug("Update company.id={}", company.getId()); log.debug("Update company.id={}", company.getId());
companyMap.update(company); companyMap.update(company);

View file

@ -1,17 +1,27 @@
package ru.spcex.clearing.company.service; package ru.spcex.clearing.company.service;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.producer.Producer;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.company.relation.Relation; import ru.clearing.classes.statics.data.company.relation.Relation;
import ru.clearing.classes.statics.data.profile.ProfileDocument;
import ru.spcex.clearing.company.error.CompanyErrors; import ru.spcex.clearing.company.error.CompanyErrors;
import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.IMDGDistributedNames;
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.ProfileDocumentNewRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentUpdateRequest;
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
import ru.spcex.platform.enumeration.ServiceProduct; import ru.spcex.platform.enumeration.ServiceProduct;
import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.ServiceStatus;
import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.enumeration.WorkflowStatus;
import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.ImdgTransaction; import ru.spcex.platform.imdg.api.ImdgTransaction;
import ru.spcex.platform.utils.error.ValidationException; import ru.spcex.platform.utils.error.ValidationException;
@ -20,15 +30,41 @@ import java.util.Collection;
import java.util.Objects; import java.util.Objects;
@Service @Service
public class RelationHelper { public class RelationService extends QueueConsumer implements InitializingBean {
protected static final Long SPVB_ID = 1L; // СПВБ protected static final Long SPVB_ID = 1L; // СПВБ
protected final Logger log = LoggerFactory.getLogger(getClass()); protected final Logger log = LoggerFactory.getLogger(getClass());
protected ImdgProvider imdgProvider;
protected AccountNotificationHelper accountNotification; protected AccountNotificationHelper accountNotification;
@Autowired @Autowired
public RelationHelper(AccountNotificationHelper accountNotification) { public RelationService(Consumer<String, Object> kafkaQueue,
Producer<String, Object> kafkaProducer,
ImdgProvider imdgProvider,
AccountNotificationHelper accountNotification) {
super(kafkaQueue, kafkaProducer);
this.imdgProvider = imdgProvider;
this.accountNotification = accountNotification; this.accountNotification = accountNotification;
// this.requestHelper = requestHelper.setLogger(log);
}
@Override
public void afterPropertiesSet() {
// this.profileDocumentMap = imdgProvider.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class);
// this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
//todo all CLS-284
// callback(ProfileDocumentNewRequest.class)
// .setFunction(this::profileDocumentNew)
// .forDestination(Consts.DESTINATION_PROFILE_DOCUMENT_NEW, callbacks::put);
// callback(ProfileDocumentUpdateRequest.class)
// .setFunction(this::profileDocumentUpdate)
// .forDestination(Consts.DESTINATION_PROFILE_DOCUMENT_UPDATE, callbacks::put);
// callback(CommonDeleteRequest.class)
// .setFunction(this::profileDocumentDelete)
// .forDestination(Consts.DESTINATION_PROFILE_DOCUMENT_DELETE, callbacks::put);
// init();
} }
protected void createNewRelation(ImdgTransaction transaction, Company company) { protected void createNewRelation(ImdgTransaction transaction, Company company) {

View file

@ -50,7 +50,7 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProv
ValidationConfig.class, ValidationConfig.class,
CompanySymbolService.class, CompanySymbolService.class,
AccountNotificationHelper.class, AccountNotificationHelper.class,
RelationHelper.class, RelationService.class,
BeanConfiguration.class, BeanConfiguration.class,
KafkaTestConfig.class, KafkaTestConfig.class,

View file

@ -54,7 +54,7 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProv
ValidationConfig.class, ValidationConfig.class,
CompanySymbolService.class, CompanySymbolService.class,
AccountNotificationHelper.class, AccountNotificationHelper.class,
RelationHelper.class, RelationService.class,
CompanySymbolService.class, CompanySymbolService.class,
CompanySymbolValidationConfig.class, CompanySymbolValidationConfig.class,

View file

@ -50,7 +50,7 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProv
CompanyService.class, CompanyService.class,
CompanyValidationConfig.class, CompanyValidationConfig.class,
AccountNotificationHelper.class, AccountNotificationHelper.class,
RelationHelper.class, RelationService.class,
KafkaTestConfig.class, KafkaTestConfig.class,
ImdgTestConfig.class}) ImdgTestConfig.class})