diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/companies/CompaniesRequestParam.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/companies/CompaniesRequestParam.java new file mode 100644 index 000000000..25cb4428d --- /dev/null +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/companies/CompaniesRequestParam.java @@ -0,0 +1,24 @@ +package ru.spcex.clearing.gatewayapi.logic.companies; + +import ru.spcex.clearing.gatewayapi.request.CompaniesRequest; +import ru.spcex.clearing.gatewayapi.request.objects.MemberCompany; + +import java.util.ArrayList; +import java.util.List; + +public class CompaniesRequestParam { + private final CompaniesRequest companiesRequest; + private final List memberCompanyList = new ArrayList<>(); + + public CompaniesRequestParam(CompaniesRequest companiesRequest) { + this.companiesRequest = companiesRequest; + } + + public CompaniesRequest getCompaniesRequest() { + return companiesRequest; + } + + public List getMemberCompanyList() { + return memberCompanyList; + } +} diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/companies/GroupingMemberCompanyParts.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/companies/GroupingMemberCompanyParts.java new file mode 100644 index 000000000..5f27d8975 --- /dev/null +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/companies/GroupingMemberCompanyParts.java @@ -0,0 +1,51 @@ +package ru.spcex.clearing.gatewayapi.logic.companies; + +import ru.spcex.clearing.gatewayapi.logic.ProcessResult; +import ru.spcex.clearing.gatewayapi.logic.Stage; +import ru.spcex.clearing.gatewayapi.request.CompaniesRequest; +import ru.spcex.clearing.gatewayapi.request.objects.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +public class GroupingMemberCompanyParts extends Stage { + @Override + public ProcessResult process(CompaniesRequestParam param) { + CompaniesRequest request = param.getCompaniesRequest(); + + List companyList = request.getCompanyList(); + List companyInfoList = request.getCompanyInfoList(); + List companyClearingCategoryList = request.getCompanyClearingCategoryList(); + List memberCompanySymbolsList = request.getMemberCompanySymbolsList(); + List contactList = request.getContactList(); + List profileDocumentList = request.getProfileDocumentList(); + List clientList = request.getClientList(); + + Map companyForUUID = new HashMap<>(); + for (MemberCompany memberCompany : companyList) { + if (companyForUUID.put(memberCompany.getId(), memberCompany) != null) { + throw new IllegalStateException("Duplicate key"); + } + } + + for (MemberCompanyInfo companyInfo : companyInfoList) { + UUID companyInfoUUID = companyInfo.getCompanyId(); + MemberCompany company = companyForUUID.get(companyInfoUUID); + if (company == null) { + // todo error + continue; + } + company.getCompanyInfoList().add(companyInfo); + } + + for (MemberCompanyClearingCategory companyClearingCategory : companyClearingCategoryList) { + // todo in progress +// UUID companyClearingCate + } + + return null; + } + +} diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/objects/MemberCompany.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/objects/MemberCompany.java index f2b51a1ae..d458c5120 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/objects/MemberCompany.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/objects/MemberCompany.java @@ -1,8 +1,11 @@ package ru.spcex.clearing.gatewayapi.request.objects; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModelProperty; +import java.util.ArrayList; +import java.util.List; import java.util.UUID; /** @@ -59,6 +62,25 @@ public class MemberCompany { private String initiatorCode; + @JsonIgnore + private List companyInfoList = new ArrayList<>(); + + @JsonIgnore + private List companyClearingCategoryList = new ArrayList<>(); + + @JsonIgnore + private List memberCompanySymbolsList = new ArrayList<>(); + + @JsonIgnore + private List contactList = new ArrayList<>(); + + @JsonIgnore + private List profileDocumentList = new ArrayList<>(); + + @JsonIgnore + private List clientList = new ArrayList<>(); + + public UUID getId() { return id; } @@ -114,4 +136,52 @@ public class MemberCompany { public void setInitiatorCode(String initiatorCode) { this.initiatorCode = initiatorCode; } + + public List getCompanyInfoList() { + return companyInfoList; + } + + public void setCompanyInfoList(List companyInfoList) { + this.companyInfoList = companyInfoList; + } + + public List getCompanyClearingCategoryList() { + return companyClearingCategoryList; + } + + public void setCompanyClearingCategoryList(List companyClearingCategoryList) { + this.companyClearingCategoryList = companyClearingCategoryList; + } + + public List getMemberCompanySymbolsList() { + return memberCompanySymbolsList; + } + + public void setMemberCompanySymbolsList(List memberCompanySymbolsList) { + this.memberCompanySymbolsList = memberCompanySymbolsList; + } + + public List getContactList() { + return contactList; + } + + public void setContactList(List contactList) { + this.contactList = contactList; + } + + public List getProfileDocumentList() { + return profileDocumentList; + } + + public void setProfileDocumentList(List profileDocumentList) { + this.profileDocumentList = profileDocumentList; + } + + public List getClientList() { + return clientList; + } + + public void setClientList(List clientList) { + this.clientList = clientList; + } }