parent
53e10b7527
commit
45f51a1b27
4 changed files with 101 additions and 19 deletions
|
|
@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
|
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
|
||||||
|
import ru.clearing.classes.statics.data.company.Company;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||||
|
|
@ -21,20 +22,25 @@ import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||||
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.ImdgProvider;
|
||||||
|
import ru.spcex.platform.imdg.api.ImdgTransaction;
|
||||||
import ru.spcex.platform.utils.validation.IValidator;
|
import ru.spcex.platform.utils.validation.IValidator;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class ClearingMemberCategoryService extends QueueConsumer implements InitializingBean {
|
public class ClearingMemberCategoryService extends QueueConsumer implements InitializingBean {
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
private final Imdg<ClearingMemberCategory> clearingMemberCategoryMap;
|
private final Imdg<ClearingMemberCategory> clearingMemberCategoryMap;
|
||||||
|
private final Imdg<Company> companyMap;
|
||||||
|
private final ImdgProvider imdgProvider;
|
||||||
|
|
||||||
private final Function<ClearingMemberCategoryNewRequest, IValidator> clearingMemberCategoryNewRequestValidator;
|
private final Function<ClearingMemberCategoryNewRequest, IValidator> clearingMemberCategoryNewRequestValidator;
|
||||||
private final Function<ClearingMemberCategoryUpdateRequest, IValidator> clearingMemberCategoryUpdateRequestValidator;
|
private final Function<ClearingMemberCategoryUpdateRequest, IValidator> clearingMemberCategoryUpdateRequestValidator;
|
||||||
private final Function<CommonDeleteRequest, IValidator> clearingMemberCategoryDeleteRequestValidator;
|
private final Function<CommonDeleteRequest, IValidator> clearingMemberCategoryDeleteRequestValidator;
|
||||||
private final ValidationHelper validationHelper;
|
private final ValidationHelper validationHelper;
|
||||||
private final UserRoleVerification userRoleVerification;
|
private final UserRoleVerification userRoleVerification;
|
||||||
|
private final CompanyService companyService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public ClearingMemberCategoryService(Consumer<String, Object> kafkaQueue,
|
public ClearingMemberCategoryService(Consumer<String, Object> kafkaQueue,
|
||||||
|
|
@ -44,14 +50,18 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init
|
||||||
UserRoleVerification userRoleVerification,
|
UserRoleVerification userRoleVerification,
|
||||||
@Qualifier("clearingMemberCategoryNewRequestValidator") Function<ClearingMemberCategoryNewRequest, IValidator> clearingMemberCategoryNewRequestValidator,
|
@Qualifier("clearingMemberCategoryNewRequestValidator") Function<ClearingMemberCategoryNewRequest, IValidator> clearingMemberCategoryNewRequestValidator,
|
||||||
@Qualifier("clearingMemberCategoryUpdateRequestValidator") Function<ClearingMemberCategoryUpdateRequest, IValidator> clearingMemberCategoryUpdateRequestValidator,
|
@Qualifier("clearingMemberCategoryUpdateRequestValidator") Function<ClearingMemberCategoryUpdateRequest, IValidator> clearingMemberCategoryUpdateRequestValidator,
|
||||||
@Qualifier("clearingMemberCategoryDeleteRequestValidator") Function<CommonDeleteRequest, IValidator> clearingMemberCategoryDeleteRequestValidator) {
|
@Qualifier("clearingMemberCategoryDeleteRequestValidator") Function<CommonDeleteRequest, IValidator> clearingMemberCategoryDeleteRequestValidator,
|
||||||
|
CompanyService companyService) {
|
||||||
super(kafkaQueue, kafkaProducer);
|
super(kafkaQueue, kafkaProducer);
|
||||||
this.clearingMemberCategoryMap = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
|
this.clearingMemberCategoryMap = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
|
||||||
|
this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||||
|
this.imdgProvider = imdgProvider;
|
||||||
this.clearingMemberCategoryNewRequestValidator = clearingMemberCategoryNewRequestValidator;
|
this.clearingMemberCategoryNewRequestValidator = clearingMemberCategoryNewRequestValidator;
|
||||||
this.clearingMemberCategoryUpdateRequestValidator = clearingMemberCategoryUpdateRequestValidator;
|
this.clearingMemberCategoryUpdateRequestValidator = clearingMemberCategoryUpdateRequestValidator;
|
||||||
this.clearingMemberCategoryDeleteRequestValidator = clearingMemberCategoryDeleteRequestValidator;
|
this.clearingMemberCategoryDeleteRequestValidator = clearingMemberCategoryDeleteRequestValidator;
|
||||||
this.validationHelper = validationHelper;
|
this.validationHelper = validationHelper;
|
||||||
this.userRoleVerification = userRoleVerification;
|
this.userRoleVerification = userRoleVerification;
|
||||||
|
this.companyService = companyService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -76,14 +86,28 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init
|
||||||
|
|
||||||
requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, clearingMemberCategoryNewRequestValidator);
|
requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, clearingMemberCategoryNewRequestValidator);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
ClearingMemberCategoryNewRequest req = userRequest.getRequestPayload();
|
ClearingMemberCategoryNewRequest req = userRequest.getRequestPayload();
|
||||||
ClearingMemberCategory newCategory = new ClearingMemberCategory();
|
ClearingMemberCategory newCategory = new ClearingMemberCategory();
|
||||||
newCategory.setCompanyId(req.getCompanyId());
|
newCategory.setCompanyId(req.getCompanyId());
|
||||||
newCategory.setClearingMemberCategory(req.getClearingMemberCategory());
|
newCategory.setClearingMemberCategory(req.getClearingMemberCategory());
|
||||||
clearingMemberCategoryMap.insert(newCategory);
|
|
||||||
log.debug("successfully processed, new category id {}", newCategory.getId());
|
|
||||||
|
|
||||||
|
synchronized (companyService) {
|
||||||
|
ImdgTransaction transaction = imdgProvider.newTransaction();
|
||||||
|
transaction.beginTransaction();
|
||||||
|
boolean txOk = false;
|
||||||
|
try {
|
||||||
|
companyService.relationService.createNewRelation(transaction, req.getCompanyId());
|
||||||
|
Imdg<ClearingMemberCategory> txClearingMemberCategoryMap = transaction.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
|
||||||
|
txClearingMemberCategoryMap.insert(newCategory);
|
||||||
|
txOk = true;
|
||||||
|
} finally {
|
||||||
|
if (txOk)
|
||||||
|
transaction.commitTransaction();
|
||||||
|
else
|
||||||
|
transaction.rollbackTransaction();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
log.debug("Successfully processed, new category id {}", newCategory.getId());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -143,7 +143,7 @@ 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());
|
||||||
relationService.createNewRelation(transaction, company);
|
relationService.createNewRelation(transaction, company.getId());
|
||||||
if (!(WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()))) { // Block
|
if (!(WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()))) { // Block
|
||||||
relationService.onChangeWorkflowStatus(transaction, company, null, company.getWorkflowStatus());
|
relationService.onChangeWorkflowStatus(transaction, company, null, company.getWorkflowStatus());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.lang.NonNull;
|
import org.springframework.lang.NonNull;
|
||||||
import org.springframework.stereotype.Service;
|
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.company.Company;
|
||||||
import ru.clearing.classes.statics.data.profile.ProfileDocument;
|
import ru.clearing.classes.statics.data.profile.ProfileDocument;
|
||||||
import ru.spcex.clearing.company.error.CompanyErrors;
|
import ru.spcex.clearing.company.error.CompanyErrors;
|
||||||
|
|
@ -27,6 +28,7 @@ import ru.spcex.platform.enumeration.DocumentTypes;
|
||||||
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.ImdgProvider;
|
||||||
|
import ru.spcex.platform.imdg.api.ImdgTransaction;
|
||||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
import ru.spcex.platform.utils.validation.IValidator;
|
import ru.spcex.platform.utils.validation.IValidator;
|
||||||
|
|
||||||
|
|
@ -41,6 +43,7 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin
|
||||||
private ImdgProvider imdgProvider;
|
private ImdgProvider imdgProvider;
|
||||||
private AccountNotificationHelper accountNotificationHelper;
|
private AccountNotificationHelper accountNotificationHelper;
|
||||||
|
|
||||||
|
private final CompanyService companyService;
|
||||||
private final Function<ProfileDocumentNewRequest, IValidator> profileDocumentNewRequestValidator;
|
private final Function<ProfileDocumentNewRequest, IValidator> profileDocumentNewRequestValidator;
|
||||||
private final Function<ProfileDocumentUpdateRequest, IValidator> profileDocumentUpdateRequestValidator;
|
private final Function<ProfileDocumentUpdateRequest, IValidator> profileDocumentUpdateRequestValidator;
|
||||||
private final Function<CommonDeleteRequest, IValidator> profileDocumentDeleteRequestValidator;
|
private final Function<CommonDeleteRequest, IValidator> profileDocumentDeleteRequestValidator;
|
||||||
|
|
@ -60,7 +63,8 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin
|
||||||
ValidationHelper validationHelper,
|
ValidationHelper validationHelper,
|
||||||
IMessageResolver messageResolver,
|
IMessageResolver messageResolver,
|
||||||
RequestHelper requestHelper,
|
RequestHelper requestHelper,
|
||||||
AccountNotificationHelper accountNotificationHelper) {
|
AccountNotificationHelper accountNotificationHelper,
|
||||||
|
CompanyService companyService) {
|
||||||
super(kafkaQueue, kafkaProducer);
|
super(kafkaQueue, kafkaProducer);
|
||||||
this.imdgProvider = imdgProvider;
|
this.imdgProvider = imdgProvider;
|
||||||
this.accountNotificationHelper = accountNotificationHelper;
|
this.accountNotificationHelper = accountNotificationHelper;
|
||||||
|
|
@ -71,6 +75,7 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin
|
||||||
this.userRoleVerification = userRoleVerification;
|
this.userRoleVerification = userRoleVerification;
|
||||||
this.messageResolver = messageResolver;
|
this.messageResolver = messageResolver;
|
||||||
this.requestHelper = requestHelper.setLogger(log);
|
this.requestHelper = requestHelper.setLogger(log);
|
||||||
|
this.companyService = companyService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -148,9 +153,22 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin
|
||||||
log.debug("Company {} not active", profileDocument.getCompanyId());
|
log.debug("Company {} not active", profileDocument.getCompanyId());
|
||||||
return requestHelper.makeErrorResponse(deleteRequest, CompanyErrors.CompanyNotFound, profileDocument.getCompanyId());
|
return requestHelper.makeErrorResponse(deleteRequest, CompanyErrors.CompanyNotFound, profileDocument.getCompanyId());
|
||||||
}
|
}
|
||||||
|
synchronized (companyService) {
|
||||||
profileDocumentMap.delete(profileDocument);
|
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);
|
||||||
|
txProfileDocumentMap.delete(profileDocument);
|
||||||
|
txOk = true;
|
||||||
|
} finally {
|
||||||
|
if (txOk)
|
||||||
|
transaction.commitTransaction();
|
||||||
|
else
|
||||||
|
transaction.rollbackTransaction();
|
||||||
|
}
|
||||||
|
}
|
||||||
log.trace("successfully deleted, id {}", profileDocument.getId());
|
log.trace("successfully deleted, id {}", profileDocument.getId());
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import org.springframework.beans.factory.InitializingBean;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.stereotype.Service;
|
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.company.Company;
|
||||||
import ru.clearing.classes.statics.data.company.relation.Relation;
|
import ru.clearing.classes.statics.data.company.relation.Relation;
|
||||||
import ru.spcex.clearing.company.error.CompanyErrors;
|
import ru.spcex.clearing.company.error.CompanyErrors;
|
||||||
|
|
@ -29,6 +30,7 @@ import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgId;
|
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.IEnumKey;
|
||||||
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;
|
||||||
|
|
||||||
|
|
@ -38,6 +40,11 @@ import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.function.Function;
|
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.utils.enumeration.IEnumKey.getEnumByKey;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class RelationService extends QueueConsumer implements InitializingBean {
|
public class RelationService extends QueueConsumer implements InitializingBean {
|
||||||
protected static final Long SPVB_ID = 1L; // СПВБ
|
protected static final Long SPVB_ID = 1L; // СПВБ
|
||||||
|
|
@ -106,6 +113,14 @@ public class RelationService extends QueueConsumer implements InitializingBean {
|
||||||
private synchronized RequestInfoUpdate relationNew(BaseRequest<RelationNewRequest> relationNewBaseRequest) {
|
private synchronized RequestInfoUpdate relationNew(BaseRequest<RelationNewRequest> relationNewBaseRequest) {
|
||||||
RelationNewRequest req = relationNewBaseRequest.getRequestPayload();
|
RelationNewRequest req = relationNewBaseRequest.getRequestPayload();
|
||||||
log.debug("relation-new request received, BaseRequest.id = {}", relationNewBaseRequest.getId());
|
log.debug("relation-new request received, BaseRequest.id = {}", relationNewBaseRequest.getId());
|
||||||
|
|
||||||
|
{ //проверка заполнен ли serviceStatus
|
||||||
|
String serviceStatus = req.getServiceStatus();
|
||||||
|
if (serviceStatus == null || serviceStatus.isEmpty()) {
|
||||||
|
Company company = companyMap.getSingleObjectByFieldValues(Map.of("id", req.getCompanyId()));
|
||||||
|
req.setServiceStatus(company.getWorkflowStatus());
|
||||||
|
}
|
||||||
|
}
|
||||||
{ // Валидация
|
{ // Валидация
|
||||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(relationNewBaseRequest);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(relationNewBaseRequest);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
@ -120,7 +135,7 @@ public class RelationService extends QueueConsumer implements InitializingBean {
|
||||||
Relation existRelation = searchRelation(req.getClearingMemberCategory(), req.getCompanyId());
|
Relation existRelation = searchRelation(req.getClearingMemberCategory(), req.getCompanyId());
|
||||||
if (existRelation != null && !WorkflowStatus.Blocked.equalsByKey(existRelation.getServiceStatus())) {
|
if (existRelation != null && !WorkflowStatus.Blocked.equalsByKey(existRelation.getServiceStatus())) {
|
||||||
CompanyErrors errorType;
|
CompanyErrors errorType;
|
||||||
if (ru.spcex.platform.enumeration.Service.MKR.equalsByKey(existRelation.getService())) {
|
if (MKR.equalsByKey(existRelation.getService())) {
|
||||||
errorType = CompanyErrors.ClearingMemberCategoryOnMKRAlreadyExist;
|
errorType = CompanyErrors.ClearingMemberCategoryOnMKRAlreadyExist;
|
||||||
} else if (ru.spcex.platform.enumeration.Service.FOND.equalsByKey(existRelation.getService())) {
|
} else if (ru.spcex.platform.enumeration.Service.FOND.equalsByKey(existRelation.getService())) {
|
||||||
errorType = CompanyErrors.ClearingMemberCategoryOnFONDAlreadyExist;
|
errorType = CompanyErrors.ClearingMemberCategoryOnFONDAlreadyExist;
|
||||||
|
|
@ -160,7 +175,7 @@ public class RelationService extends QueueConsumer implements InitializingBean {
|
||||||
relation.setServiceStatus(toStatus);
|
relation.setServiceStatus(toStatus);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
relation.setService(ru.spcex.platform.enumeration.Service.MKR.getKey()); // MKR
|
relation.setService(MKR.getKey()); // MKR
|
||||||
relation.setServiceProduct(ServiceProduct.ZERO.getKey());
|
relation.setServiceProduct(ServiceProduct.ZERO.getKey());
|
||||||
relation.setComment(req.getComment());
|
relation.setComment(req.getComment());
|
||||||
|
|
||||||
|
|
@ -176,7 +191,7 @@ public class RelationService extends QueueConsumer implements InitializingBean {
|
||||||
|| ClearingCategory.I.equalsByKey(clearingMemberCategory)
|
|| ClearingCategory.I.equalsByKey(clearingMemberCategory)
|
||||||
|| ClearingCategory.V.equalsByKey(clearingMemberCategory)
|
|| ClearingCategory.V.equalsByKey(clearingMemberCategory)
|
||||||
) {
|
) {
|
||||||
svc = ru.spcex.platform.enumeration.Service.MKR.getKey();
|
svc = MKR.getKey();
|
||||||
} else if (ClearingCategory.C.equalsByKey(clearingMemberCategory)
|
} else if (ClearingCategory.C.equalsByKey(clearingMemberCategory)
|
||||||
|| ClearingCategory.F.equalsByKey(clearingMemberCategory)
|
|| ClearingCategory.F.equalsByKey(clearingMemberCategory)
|
||||||
) {
|
) {
|
||||||
|
|
@ -265,21 +280,46 @@ public class RelationService extends QueueConsumer implements InitializingBean {
|
||||||
|
|
||||||
// --- internal API ---
|
// --- internal API ---
|
||||||
|
|
||||||
protected void createNewRelation(ImdgTransaction transaction, Company company) {
|
protected void createNewRelation(ImdgTransaction transaction, Long companyId) {
|
||||||
|
Imdg<Relation> relationMap = transaction.getImdg(IMDGDistributedNames.Map_Relation, Relation.class);
|
||||||
Relation relation = new Relation();
|
Relation relation = new Relation();
|
||||||
// relation.setId(idSequence.nextId());
|
Company company = transaction.getImdg(IMDGDistributedNames.Map_Company, Company.class).getSingleObjectByFieldValues(Map.of("id", companyId));
|
||||||
|
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());
|
||||||
|
String serviceStatus;
|
||||||
|
switch (Objects.requireNonNull(clearingCategory)){
|
||||||
|
case B:
|
||||||
|
case I:
|
||||||
|
case V:
|
||||||
|
serviceStatus = MKR.getKey();
|
||||||
|
break;
|
||||||
|
case C:
|
||||||
|
case F:
|
||||||
|
serviceStatus = FOND.getKey();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new IllegalStateException("Illegal state of clearingCategory");
|
||||||
|
}
|
||||||
|
|
||||||
relation.setCreated(Instant.now());
|
relation.setCreated(Instant.now());
|
||||||
relation.setUpdated(relation.getCreated());
|
relation.setUpdated(relation.getCreated());
|
||||||
|
relation.setConsumerId(companyId);
|
||||||
relation.setConsumerId(company.getId());
|
|
||||||
relation.setSupplierId(SPVB_ID); // 1 СПВБ
|
relation.setSupplierId(SPVB_ID); // 1 СПВБ
|
||||||
relation.setServiceStatus(WorkflowStatus.Active.getKey());
|
relation.setServiceStatus(Objects.requireNonNull(workflowStatus).getKey());
|
||||||
relation.setService(ru.spcex.platform.enumeration.Service.MKR.getKey()); // MKR
|
relation.setService(serviceStatus);
|
||||||
relation.setServiceProduct(ServiceProduct.ZERO.getKey());
|
relation.setServiceProduct(ServiceProduct.ZERO.getKey());
|
||||||
log.debug("New Relation[{}] created.", relation.getId());
|
log.debug("New Relation[{}] created.", relation.getId());
|
||||||
Imdg<Relation> relationMap = transaction.getImdg(IMDGDistributedNames.Map_Relation, Relation.class);
|
|
||||||
relationMap.insert(relation);
|
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());
|
||||||
|
relationMap.update(relation);
|
||||||
|
log.debug("New Relation[{}] updated.", relation.getId());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param company
|
* @param company
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue