company-service http://jira.mfd.msk:8088/browse/CLS-347 MultiCompanyService добавил обновления
This commit is contained in:
parent
79c56c4571
commit
5cffd47463
4 changed files with 336 additions and 19 deletions
|
|
@ -10,7 +10,10 @@ 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.CompanySymbols;
|
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||||
|
import ru.clearing.classes.statics.data.profile.Contact;
|
||||||
|
import ru.clearing.classes.statics.data.profile.ProfileDocument;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.ActionType;
|
||||||
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;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeNewRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeNewRequest;
|
||||||
|
|
@ -21,7 +24,6 @@ import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||||
import ru.spcex.clearing.util.services.RequestHelper;
|
import ru.spcex.clearing.util.services.RequestHelper;
|
||||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||||
import ru.spcex.platform.enumeration.CompanySymbol;
|
import ru.spcex.platform.enumeration.CompanySymbol;
|
||||||
import ru.spcex.platform.enumeration.UserRole;
|
|
||||||
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.utils.error.ValidationException;
|
import ru.spcex.platform.utils.error.ValidationException;
|
||||||
|
|
@ -29,6 +31,7 @@ import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -55,6 +58,8 @@ public class MultiCompanyService
|
||||||
final ImdgProvider imdgProvider;
|
final ImdgProvider imdgProvider;
|
||||||
final Imdg<Company> companyIMap;
|
final Imdg<Company> companyIMap;
|
||||||
final Imdg<CompanySymbols> companySymbolsImdg;
|
final Imdg<CompanySymbols> companySymbolsImdg;
|
||||||
|
final Imdg<ProfileDocument> profileDocumentImdg;
|
||||||
|
final Imdg<Contact> contactImdg;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public MultiCompanyService(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaProducer,
|
public MultiCompanyService(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaProducer,
|
||||||
|
|
@ -88,6 +93,8 @@ public class MultiCompanyService
|
||||||
|
|
||||||
companyIMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
companyIMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||||
companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||||
|
profileDocumentImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class);
|
||||||
|
contactImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Contact, Contact.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -106,35 +113,62 @@ public class MultiCompanyService
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
todo:
|
|
||||||
1) добавить апдейт кейсы
|
|
||||||
2) сделать транзакции.
|
|
||||||
|
|
||||||
*/
|
|
||||||
Long companyId = null;
|
Long companyId = null;
|
||||||
boolean txOk = false;
|
boolean txOk = false; // todo IMDG transaction
|
||||||
synchronized (companyService) {
|
synchronized (companyService) {
|
||||||
try {
|
try {
|
||||||
companyId = getCompanyIdForCompanySymbols(req.getUuid(), req.getCompany());
|
companyId = getCompanyIdForCompanySymbols(req.getUuid(), req.getCompany());
|
||||||
log.debug("For request {} (uuid {}) company {}.", baseRequest.getId(), req.getUuid(), companyId == null ? "not found" : ("found, id=" + companyId));
|
log.debug("For request {} (uuid {}) company {}.", baseRequest.getId(), req.getUuid(), companyId == null ? "not found" : ("found, id=" + companyId));
|
||||||
|
|
||||||
RequestInfoUpdate replyI;
|
RequestInfoUpdate replyI;
|
||||||
Company company = companyService.createOrUpdateCompany(wrapRequest(baseRequest, req.getCompany()), companyId);
|
Company company = companyService.createOrUpdateCompany(wrapRequest(baseRequest, req.getCompany(), null), companyId);
|
||||||
companyId = company.getId();
|
companyId = company.getId();
|
||||||
log.debug("The companyId={}", companyId);
|
log.debug("The companyId={}", companyId);
|
||||||
fillCompanyId(req, companyId);
|
fillCompanyId(req, companyId);
|
||||||
|
|
||||||
//todo update case:
|
if (req.getCompanyInfo() != null) {
|
||||||
replyI = companyInfoService.companyInfoUpdate(wrapRequest(baseRequest, req.getCompanyInfo()));
|
log.trace("For company {} do update CompanyInfo", companyId);
|
||||||
|
replyI = companyInfoService.companyInfoUpdate(wrapRequest(baseRequest, req.getCompanyInfo(), null));
|
||||||
|
validateReply(companyId, "CompanyInfo", replyI);
|
||||||
|
}
|
||||||
for (ProfileDocumentNewRequest partRequest : req.getProfileDocuments()) {
|
for (ProfileDocumentNewRequest partRequest : req.getProfileDocuments()) {
|
||||||
replyI = profileDocumentService.profileDocumentNew(wrapRequest(baseRequest, partRequest));
|
ProfileDocument existDocument = findCompanyDocument(partRequest);
|
||||||
|
if (existDocument == null) {
|
||||||
|
log.trace("For company[{}] do new profileDocument", companyId);
|
||||||
|
replyI = profileDocumentService.profileDocumentNew(wrapRequest(baseRequest, partRequest, ActionType.NEW));
|
||||||
|
validateReply(companyId, "profileDocumentNew", replyI);
|
||||||
|
} else {
|
||||||
|
log.trace("For company[{}] do update profileDocument[{}]", companyId, existDocument.getId());
|
||||||
|
ProfileDocumentUpdateRequest partUpdateRequest = createUpdateRequest(existDocument, partRequest);
|
||||||
|
replyI = profileDocumentService.profileDocumentUpdate(wrapRequest(baseRequest, partUpdateRequest, ActionType.UPDATE));
|
||||||
|
validateReply(companyId, "profileDocumentUpdate", replyI);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for (CompanySymbolNewRequest partRequest : req.getCompanySymbols()) {
|
for (CompanySymbolNewRequest partRequest : req.getCompanySymbols()) {
|
||||||
replyI = companySymbolService.companySymbolNew(wrapRequest(baseRequest, partRequest));
|
CompanySymbols existSymbol = findCompanySymbols(partRequest);
|
||||||
|
if (existSymbol == null) {
|
||||||
|
log.trace("For company[{}] do new companySymbol", companyId);
|
||||||
|
replyI = companySymbolService.companySymbolNew(wrapRequest(baseRequest, partRequest, ActionType.NEW));
|
||||||
|
validateReply(companyId, "companySymbolNew", replyI);
|
||||||
|
} else {
|
||||||
|
log.trace("For company[{}] do update companySymbol[{}]", companyId, existSymbol.getId());
|
||||||
|
CompanySymbolUpdateRequest partUpdateRequest = createUpdateRequest(existSymbol, partRequest);
|
||||||
|
replyI = companySymbolService.companySymbolUpdate(wrapRequest(baseRequest, partUpdateRequest, ActionType.UPDATE));
|
||||||
|
validateReply(companyId, "companySymbolUpdate", replyI);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for (ContactNewRequest partRequest : req.getContacts()) {
|
for (ContactNewRequest partRequest : req.getContacts()) {
|
||||||
replyI = contactService.contactNew(wrapRequest(baseRequest, partRequest));
|
Contact existContact = findContact(partRequest);
|
||||||
|
if (existContact == null) {
|
||||||
|
log.trace("For company[{}] do new contact", companyId);
|
||||||
|
replyI = contactService.contactNew(wrapRequest(baseRequest, partRequest, ActionType.NEW));
|
||||||
|
validateReply(companyId, "contactNew", replyI);
|
||||||
|
} else {
|
||||||
|
log.trace("For company[{}] do update contact[{}]", companyId, existContact.getId());
|
||||||
|
ContactUpdateRequest partUpdateRequest = createUpdateRequest(existContact, partRequest);
|
||||||
|
replyI = contactService.contactUpdate(wrapRequest(baseRequest, partUpdateRequest, ActionType.UPDATE));
|
||||||
|
validateReply(companyId, "contactUpdate", replyI);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
txOk = true;
|
txOk = true;
|
||||||
} catch (ValidationException vex) {
|
} catch (ValidationException vex) {
|
||||||
|
|
@ -151,6 +185,83 @@ public class MultiCompanyService
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void validateReply(Long companyId, String process, RequestInfoUpdate replyI) {
|
||||||
|
if (replyI != null && replyI.getMessage() != null) {
|
||||||
|
log.warn("Error process {} for companyId={}: {}", process, companyId, replyI.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ProfileDocument findCompanyDocument(ProfileDocumentNewRequest partRequest) {
|
||||||
|
Map<String, Comparable<?>> query = new HashMap<>();
|
||||||
|
query.put("companyId", partRequest.getCompanyId());
|
||||||
|
query.put("documentType", partRequest.getDocumentType());
|
||||||
|
query.put("issueDate", partRequest.getIssueDate()); // может быть null
|
||||||
|
Collection<ProfileDocument> allDoc = profileDocumentImdg.getCollectionObjectsByFieldValues(query);
|
||||||
|
if (allDoc.isEmpty())
|
||||||
|
return null;
|
||||||
|
if (allDoc.size() > 1)
|
||||||
|
log.warn("Fount {} ProfileDocument by: {}", allDoc.size(), query);
|
||||||
|
return allDoc.iterator().next();
|
||||||
|
}
|
||||||
|
|
||||||
|
CompanySymbols findCompanySymbols(CompanySymbolNewRequest partRequest) {
|
||||||
|
Map<String, Comparable<?>> query = new HashMap<>();
|
||||||
|
query.put("companyId", partRequest.getCompanyId());
|
||||||
|
query.put("companySymbol", partRequest.getCompanySymbol());
|
||||||
|
Collection<CompanySymbols> allCS = companySymbolsImdg.getCollectionObjectsByFieldValues(query);
|
||||||
|
if (allCS.isEmpty())
|
||||||
|
return null;
|
||||||
|
if (allCS.size() > 1)
|
||||||
|
log.warn("Fount {} CompanySymbols by: {}", allCS.size(), query);
|
||||||
|
return allCS.iterator().next();
|
||||||
|
}
|
||||||
|
|
||||||
|
Contact findContact(ContactNewRequest partRequest) {
|
||||||
|
Map<String, Comparable<?>> query = new HashMap<>();
|
||||||
|
query.put("companyId", partRequest.getCompanyId());
|
||||||
|
query.put("contactType", partRequest.getContactType());
|
||||||
|
Collection<Contact> allCS = contactImdg.getCollectionObjectsByFieldValues(query);
|
||||||
|
if (allCS.isEmpty())
|
||||||
|
return null;
|
||||||
|
if (allCS.size() > 1)
|
||||||
|
log.warn("Fount {} Contact by: {}", allCS.size(), query);
|
||||||
|
return allCS.iterator().next();
|
||||||
|
}
|
||||||
|
|
||||||
|
ProfileDocumentUpdateRequest createUpdateRequest(ProfileDocument existDocument, ProfileDocumentNewRequest partRequest) {
|
||||||
|
ProfileDocumentUpdateRequest r = new ProfileDocumentUpdateRequest();
|
||||||
|
r.setId(existDocument.getId());
|
||||||
|
r.setCompanyId(partRequest.getCompanyId());
|
||||||
|
r.setDocumentType(partRequest.getDocumentType());
|
||||||
|
r.setIssueDate(partRequest.getIssueDate());
|
||||||
|
r.setIssuePlace(partRequest.getIssuePlace());
|
||||||
|
r.setIssuer(partRequest.getIssuer());
|
||||||
|
r.setIssuerCode(partRequest.getIssuerCode());
|
||||||
|
r.setName(partRequest.getName());
|
||||||
|
r.setNumber(partRequest.getNumber());
|
||||||
|
r.setPlace(partRequest.getPlace());
|
||||||
|
r.setValidFromDate(partRequest.getValidFromDate());
|
||||||
|
r.setValidToDate(partRequest.getValidToDate());
|
||||||
|
r.setLink(partRequest.getLink());
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
CompanySymbolUpdateRequest createUpdateRequest(CompanySymbols existSymbol, CompanySymbolNewRequest partRequest) {
|
||||||
|
CompanySymbolUpdateRequest r = new CompanySymbolUpdateRequest();
|
||||||
|
r.setId(existSymbol.getId());
|
||||||
|
r.setCompanyId(partRequest.getCompanyId());
|
||||||
|
r.setCompanySymbol(partRequest.getCompanySymbol());
|
||||||
|
r.setCompanySymbolValue(partRequest.getCompanySymbolValue());
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
ContactUpdateRequest createUpdateRequest(Contact existContact, ContactNewRequest partRequest) {
|
||||||
|
ContactUpdateRequest r = new ContactUpdateRequest();
|
||||||
|
r.setId(existContact.getId());
|
||||||
|
r.setContactType(partRequest.getContactType());
|
||||||
|
r.setContactValue(partRequest.getContactValue());
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
Long getCompanyIdForCompanySymbols(String uuid, CompanyNewRequest cnr) {
|
Long getCompanyIdForCompanySymbols(String uuid, CompanyNewRequest cnr) {
|
||||||
CompanySymbols companySymbol = null;
|
CompanySymbols companySymbol = null;
|
||||||
|
|
@ -190,10 +301,14 @@ public class MultiCompanyService
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T> BaseRequest<T> wrapRequest(BaseRequest<?> template, T payload) {
|
private <T> BaseRequest<T> wrapRequest(BaseRequest<?> template, T payload, ActionType action) {
|
||||||
BaseRequest<T> r = new BaseRequest<>();
|
BaseRequest<T> r = new BaseRequest<>();
|
||||||
r.setId(template.getId());
|
r.setId(template.getId());
|
||||||
r.setActionType(template.getActionType()); // todo?
|
if (action == null) {
|
||||||
|
r.setActionType(template.getActionType());
|
||||||
|
} else {
|
||||||
|
r.setActionType(action);
|
||||||
|
}
|
||||||
r.setUserId(template.getUserId());
|
r.setUserId(template.getUserId());
|
||||||
r.setCorrelationId(template.getCorrelationId());
|
r.setCorrelationId(template.getCorrelationId());
|
||||||
r.setRequestPayload(payload);
|
r.setRequestPayload(payload);
|
||||||
|
|
@ -201,8 +316,12 @@ public class MultiCompanyService
|
||||||
}
|
}
|
||||||
|
|
||||||
void fillCompanyId(MultiCompanyRequest req, Long companyId) {
|
void fillCompanyId(MultiCompanyRequest req, Long companyId) {
|
||||||
req.getCompany().setId(companyId);
|
if (req.getCompany() != null) {
|
||||||
req.getCompanyInfo().setId(companyId);
|
req.getCompany().setId(companyId);
|
||||||
|
}
|
||||||
|
if (req.getCompanyInfo() != null) {
|
||||||
|
req.getCompanyInfo().setId(companyId);
|
||||||
|
}
|
||||||
if (req.getCompanySymbols() == null) req.setCompanySymbols(new ArrayList<>());
|
if (req.getCompanySymbols() == null) req.setCompanySymbols(new ArrayList<>());
|
||||||
if (req.getClientCodes() == null) req.setClientCodes(new ArrayList<>());
|
if (req.getClientCodes() == null) req.setClientCodes(new ArrayList<>());
|
||||||
if (req.getProfileDocuments() == null) req.setProfileDocuments(new ArrayList<>());
|
if (req.getProfileDocuments() == null) req.setProfileDocuments(new ArrayList<>());
|
||||||
|
|
|
||||||
|
|
@ -168,7 +168,7 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private RequestInfoUpdate profileDocumentUpdate(BaseRequest<ProfileDocumentUpdateRequest> profileDocumentUpdateRequestBaseRequest) {
|
protected RequestInfoUpdate profileDocumentUpdate(BaseRequest<ProfileDocumentUpdateRequest> profileDocumentUpdateRequestBaseRequest) {
|
||||||
log.trace("Start processing ProfileDocumentUpdateRequest!");
|
log.trace("Start processing ProfileDocumentUpdateRequest!");
|
||||||
|
|
||||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(profileDocumentUpdateRequestBaseRequest);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(profileDocumentUpdateRequestBaseRequest);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,184 @@
|
||||||
|
package ru.spcex.clearing.company.service;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
|
import org.springframework.test.context.ContextConfiguration;
|
||||||
|
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||||
|
import ru.clearing.classes.statics.data.company.Company;
|
||||||
|
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||||
|
import ru.clearing.classes.statics.data.profile.Contact;
|
||||||
|
import ru.clearing.classes.statics.data.profile.ProfileDocument;
|
||||||
|
import ru.clearing.platform.dictionary.CompanySymbolDictionary;
|
||||||
|
import ru.clearing.platform.dictionary.WorkflowStatusDictionary;
|
||||||
|
import ru.spcex.clearing.company.config.BeanConfiguration;
|
||||||
|
import ru.spcex.clearing.company.config.validation.*;
|
||||||
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.company.*;
|
||||||
|
import ru.spcex.clearing.test.config.ImdgTestConfig;
|
||||||
|
import ru.spcex.clearing.test.config.KafkaTestConfig;
|
||||||
|
import ru.spcex.platform.enumeration.CompanySymbol;
|
||||||
|
import ru.spcex.platform.enumeration.ContactTypes;
|
||||||
|
import ru.spcex.platform.enumeration.DocumentTypes;
|
||||||
|
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||||
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProviderAndAddAdminWithDefaultId;
|
||||||
|
|
||||||
|
@ExtendWith(SpringExtension.class)
|
||||||
|
@ContextConfiguration(classes = {
|
||||||
|
MultiCompanyService.class,
|
||||||
|
|
||||||
|
CompanyService.class,
|
||||||
|
CompanyValidationConfig.class,
|
||||||
|
ValidationConfig.class,
|
||||||
|
CompanySymbolService.class,
|
||||||
|
AccountNotificationHelper.class,
|
||||||
|
RelationService.class, RelationValidationConfig.class,
|
||||||
|
|
||||||
|
CompanySymbolService.class,
|
||||||
|
CompanySymbolValidationConfig.class,
|
||||||
|
CompanyInfoService.class,
|
||||||
|
ProfileDocumentService.class,
|
||||||
|
ProfileDocumentValidationConfig.class,
|
||||||
|
ContactService.class,
|
||||||
|
ContactValidationConfig.class,
|
||||||
|
|
||||||
|
KafkaTestConfig.class,
|
||||||
|
ImdgTestConfig.class,
|
||||||
|
BeanConfiguration.class})
|
||||||
|
class MultiCompanyServiceTest {
|
||||||
|
final Long COMPANY_ID = 123L;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
protected MultiCompanyService multiCompanyService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
@Qualifier("hazelcastServiceTest")
|
||||||
|
private ImdgProvider hazelcastServiceTest;
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
private void init() {
|
||||||
|
waitAvailableImdgProviderAndAddAdminWithDefaultId();
|
||||||
|
Imdg<Company> companyImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||||
|
Imdg<CompanySymbols> companySymbolsImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||||
|
|
||||||
|
Company company = new Company();
|
||||||
|
company.setId(COMPANY_ID);
|
||||||
|
company.setWorkflowStatus(WorkflowStatus.Active.getKey());
|
||||||
|
company.setFullName("Test company prime");
|
||||||
|
companyImdg.insert(company);
|
||||||
|
|
||||||
|
|
||||||
|
Imdg<CompanySymbolDictionary> companySymbolDictionaryImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_CompanySymbolDictionary, CompanySymbolDictionary.class);
|
||||||
|
{
|
||||||
|
CompanySymbolDictionary cSymbol = new CompanySymbolDictionary();
|
||||||
|
cSymbol.setId(11L);
|
||||||
|
cSymbol.setCode(CompanySymbol.CLRC.getKey());
|
||||||
|
cSymbol.setName(CompanySymbol.CLRC.getKey());
|
||||||
|
cSymbol.setShortname(" CLRC key");
|
||||||
|
companySymbolDictionaryImdg.insert(cSymbol);
|
||||||
|
CompanySymbolDictionary cioSymbol = new CompanySymbolDictionary();
|
||||||
|
cioSymbol.setId(22L);
|
||||||
|
cioSymbol.setCode(CompanySymbol.CIO.getKey());
|
||||||
|
cioSymbol.setName(CompanySymbol.CIO.getKey());
|
||||||
|
companySymbolDictionaryImdg.insert(cioSymbol);
|
||||||
|
}
|
||||||
|
|
||||||
|
Imdg<Contact> contactImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_Contact, Contact.class);
|
||||||
|
Contact contact = new Contact();
|
||||||
|
contact.setId(100L);
|
||||||
|
contact.setCompanyId(company.getId());
|
||||||
|
contact.setContactType(ContactTypes.adrs.getKey());
|
||||||
|
contact.setContactValue("UAR, st.Uarus, anystreet st., house 1");
|
||||||
|
contactImdg.insert(contact);
|
||||||
|
|
||||||
|
CompanySymbols companySymbol = new CompanySymbols();
|
||||||
|
companySymbol.setId(222L);
|
||||||
|
companySymbol.setCompanyId(company.getId());
|
||||||
|
companySymbol.setCompanySymbol(CompanySymbol.CLRC.getKey());
|
||||||
|
companySymbol.setCompanySymbolValue("CL-VALUE");
|
||||||
|
companySymbolsImdg.insert(companySymbol);
|
||||||
|
|
||||||
|
Imdg<ProfileDocument> profileDocumentImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class);
|
||||||
|
ProfileDocument doc = new ProfileDocument();
|
||||||
|
doc.setId(10002L);
|
||||||
|
doc.setCompanyId(COMPANY_ID);
|
||||||
|
doc.setDocumentType(DocumentTypes.form.getKey());
|
||||||
|
doc.setIssueDate(LocalDate.now()); // тест может показать ложное срабатывание в 00:00:00.001
|
||||||
|
profileDocumentImdg.insert(doc);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void findCompanyDocument() {
|
||||||
|
ProfileDocumentNewRequest req = new ProfileDocumentNewRequest();
|
||||||
|
req.setCompanyId(COMPANY_ID);
|
||||||
|
req.setDocumentType(DocumentTypes.form.getKey());
|
||||||
|
req.setIssueDate(LocalDate.now());
|
||||||
|
ProfileDocument doc = multiCompanyService.findCompanyDocument(req);
|
||||||
|
assertNotNull(doc);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void findCompanySymbols() {
|
||||||
|
CompanySymbolNewRequest req = new CompanySymbolNewRequest();
|
||||||
|
req.setCompanyId(COMPANY_ID);
|
||||||
|
req.setCompanySymbol(CompanySymbol.CLRC.getKey());
|
||||||
|
req.setCompanySymbolValue("CL-VALUE-2");
|
||||||
|
CompanySymbols symbol = multiCompanyService.findCompanySymbols(req);
|
||||||
|
assertNotNull(symbol);
|
||||||
|
assertEquals("CL-VALUE", symbol.getCompanySymbolValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void findContact() {
|
||||||
|
ContactNewRequest req = new ContactNewRequest();
|
||||||
|
req.setCompanyId(COMPANY_ID);
|
||||||
|
req.setContactType(ContactTypes.adrs.getKey());
|
||||||
|
req.setContactValue("UAR, st.Uarus, anystreet st., house 2");
|
||||||
|
Contact contact = multiCompanyService.findContact(req);
|
||||||
|
assertNotNull(contact);
|
||||||
|
assertNotEquals(req.getContactValue(), contact.getContactValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void getCompanyIdForCompanySymbols() {
|
||||||
|
CompanyNewRequest req = new CompanyNewRequest();
|
||||||
|
req.setCompanySymbol(CompanySymbol.CLRC.getKey());
|
||||||
|
req.setCompanySymbolValue("CL-VALUE");
|
||||||
|
Long theId = multiCompanyService.getCompanyIdForCompanySymbols("SAMPLE-NO-uuid", req);
|
||||||
|
assertEquals(COMPANY_ID, theId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void fillCompanyId() {
|
||||||
|
{
|
||||||
|
MultiCompanyRequest testReq = new MultiCompanyRequest();
|
||||||
|
testReq.setCompany(new CompanyNewRequest());
|
||||||
|
testReq.setProfileDocuments(null);
|
||||||
|
testReq.setCompanySymbols(null);
|
||||||
|
testReq.setContacts(null);
|
||||||
|
testReq.setClientCodes(null);
|
||||||
|
multiCompanyService.fillCompanyId(testReq, COMPANY_ID);
|
||||||
|
assertEquals(COMPANY_ID, testReq.getCompany().getId());
|
||||||
|
assertNotNull(testReq.getProfileDocuments());
|
||||||
|
assertNotNull(testReq.getCompanySymbols());
|
||||||
|
assertNotNull(testReq.getContacts());
|
||||||
|
assertNotNull(testReq.getClientCodes());
|
||||||
|
}
|
||||||
|
{
|
||||||
|
MultiCompanyRequest testReq = new MultiCompanyRequest();
|
||||||
|
testReq.setCompany(new CompanyNewRequest());
|
||||||
|
testReq.setCompanyInfo(new CompanyInfoUpdateRequest());
|
||||||
|
multiCompanyService.fillCompanyId(testReq, COMPANY_ID);
|
||||||
|
assertEquals(COMPANY_ID, testReq.getCompany().getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -38,4 +38,18 @@ public class TestObjectCreator {
|
||||||
userRoleSession.setStatus(WorkflowStatus.Active.getKey());
|
userRoleSession.setStatus(WorkflowStatus.Active.getKey());
|
||||||
userRoleSessionImdg.insert(userRoleSession);
|
userRoleSessionImdg.insert(userRoleSession);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// public void fillWorkflowStatusDictionary() {
|
||||||
|
// Imdg<WorkflowStatusDictionary> workflowStatusDictionaryImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_WorkflowStatusDictionary, WorkflowStatusDictionary.class);
|
||||||
|
// WorkflowStatusDictionary ws1 = new WorkflowStatusDictionary();
|
||||||
|
// ws1.setId(1L);
|
||||||
|
// ws1.setCode(WorkflowStatus.Active.getKey());
|
||||||
|
// ws1.setName("Active");
|
||||||
|
// workflowStatusDictionaryImdg.insert(ws1);
|
||||||
|
// WorkflowStatusDictionary ws2 = new WorkflowStatusDictionary();
|
||||||
|
// ws2.setId(2L);
|
||||||
|
// ws2.setCode(WorkflowStatus.Blocked.getKey());
|
||||||
|
// ws2.setName("Blocked");
|
||||||
|
// workflowStatusDictionaryImdg.insert(ws2);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue