Commit 2aac6a0f by chengzhuoshen

1.pacs008001 转换成 VoCustomerCreditTransfer

2.VoCustomerCreditTransfer 转换成 pacs008001
3.VoCustomerCreditTransfer属性优化
parent 0dfd1aa2
......@@ -2,7 +2,9 @@ package com.brilliance.swift;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mt2SwiftDto.Mt2SwiftDtoCreateManager;
import com.brilliance.swift.mx2swiftdto.Mx2SwiftDtoCreatorManager;
import com.brilliance.swift.swiftdto2mt.SwiftDto2MtCreatorManager;
import com.brilliance.swift.swiftdto2mx.SwiftDto2MxCreatorManager;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.SwiftDto;
import org.apache.commons.io.FileUtils;
......@@ -44,7 +46,7 @@ public class SwiftTransfer {
* @return
* @throws SwiftException
*/
public SwiftDto mt2SwiftDto(File file, String outPutFilePath, Map<String, Object> extraMap) throws SwiftException {
public static SwiftDto mt2SwiftDto(File file, String outPutFilePath, Map<String, Object> extraMap) throws SwiftException {
try{
String mtStr = FileUtils.readFileToString(file);
return new Mt2SwiftDtoCreateManager().convert(mtStr, outPutFilePath, extraMap);
......@@ -53,9 +55,89 @@ public class SwiftTransfer {
}
}
public SwiftDto mt2SwiftDto(String mtStr, String outPutFilePath, Map<String, Object> extraMap) throws SwiftException {
public static SwiftDto mt2SwiftDto(String mtStr, String outPutFilePath, Map<String, Object> extraMap) throws SwiftException {
return new Mt2SwiftDtoCreateManager().convert(mtStr, outPutFilePath, extraMap);
}
/**
* MX transfer SWIFTDTO
* @param file
* @param outPutFilePath
* @param extraMap
* @return
* @throws SwiftException
*/
public static SwiftDto mx2SwiftDto(File file, String outPutFilePath, Map<String, Object> extraMap) throws SwiftException {
try{
String xmlStr = FileUtils.readFileToString(file);
return new Mx2SwiftDtoCreatorManager().convert(xmlStr, outPutFilePath, extraMap);
} catch (IOException e) {
throw new SwiftException("ERROR", e.getMessage());
}
}
public static SwiftDto mx2SwiftDto(String xmlStr, String outPutFilePath, Map<String, Object> extraMap) throws SwiftException {
return new Mx2SwiftDtoCreatorManager().convert(xmlStr, outPutFilePath, extraMap);
}
/**
* SWIFTDTO transfer MX
* @param file
* @param fileOutputPath
* @return
* @throws SwiftException
*/
public static String swiftDto2Mx(File file, String fileOutputPath) throws SwiftException {
try {
String gsonStr = FileUtils.readFileToString(file);
SwiftDto swiftDto = SwiftDto.fromJson(gsonStr);
return new SwiftDto2MxCreatorManager().swiftDto2Mx(swiftDto, fileOutputPath);
} catch (IOException e) {
throw new SwiftException("ERROR", e.getMessage());
}
}
public static String swiftDto2Mx(String gsonStr, String fileOutputPath) throws SwiftException{
SwiftDto swiftDto = SwiftDto.fromJson(gsonStr);
return new SwiftDto2MxCreatorManager().swiftDto2Mx(swiftDto, fileOutputPath);
}
/**
* MX TRANSFER MT
*/
public static String mx2Mt(File file, String outPutFilePath, Map<String, Object> extraMap) throws SwiftException {
try{
String xmlStr = FileUtils.readFileToString(file);
SwiftDto swiftDto = new Mx2SwiftDtoCreatorManager().convert(xmlStr, outPutFilePath, extraMap);
return new SwiftDto2MtCreatorManager().swiftDto2Mt(swiftDto, outPutFilePath, null);
} catch (IOException e) {
throw new SwiftException("ERROR", e.getMessage());
}
}
public static String mx2Mt(String xmlStr, String outPutFilePath, Map<String, Object> extraMap) throws SwiftException {
SwiftDto swiftDto = new Mx2SwiftDtoCreatorManager().convert(xmlStr, outPutFilePath, extraMap);
return new SwiftDto2MtCreatorManager().swiftDto2Mt(swiftDto, outPutFilePath, null);
}
/**
* MT TRANSFER MX
*/
public static String mt2Mx(File file, String outPutFilePath, Map<String, Object> extraMap) throws SwiftException {
try{
String mtStr = FileUtils.readFileToString(file);
SwiftDto swiftDto = new Mt2SwiftDtoCreateManager().convert(mtStr, outPutFilePath, extraMap);
return new SwiftDto2MxCreatorManager().swiftDto2Mx(swiftDto, outPutFilePath);
} catch (IOException e) {
throw new SwiftException("ERROR", e.getMessage());
}
}
public static String mt2Mx(String mtStr, String outPutFilePath, Map<String, Object> extraMap) throws SwiftException {
SwiftDto swiftDto = new Mt2SwiftDtoCreateManager().convert(mtStr, outPutFilePath, extraMap);
return new SwiftDto2MxCreatorManager().swiftDto2Mx(swiftDto, outPutFilePath);
}
}
......@@ -2,10 +2,7 @@ package com.brilliance.swift.mt2SwiftDto;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.util.SwiftTransferUtil;
import com.brilliance.swift.vo.common.ClearingSystemMember;
import com.brilliance.swift.vo.common.ClearingSystemMemberCode;
import com.brilliance.swift.vo.common.PartyAccount;
import com.brilliance.swift.vo.common.PartyDto;
import com.brilliance.swift.vo.common.*;
import com.prowidesoftware.swift.model.mt.AbstractMT;
public abstract class AbstractMt2SwiftDtoParseFields implements Mt2SwiftDtoParseFields {
......@@ -32,13 +29,39 @@ public abstract class AbstractMt2SwiftDtoParseFields implements Mt2SwiftDtoParse
return code;
}
public CategoryPurposeCode getCategoryPurposeByCode(String value) {
CategoryPurposeCode code = null;
CategoryPurposeCode[] values = CategoryPurposeCode.values();
for (CategoryPurposeCode tmpCode : values) {
if (value.equals(tmpCode.value())) {
code = tmpCode;
break;
}
}
return code;
}
public ExternalCreditorAgentInstructionCode getExternalCreditorAgentInstructionByCode(String value) {
ExternalCreditorAgentInstructionCode code = null;
ExternalCreditorAgentInstructionCode[] values = ExternalCreditorAgentInstructionCode.values();
for (ExternalCreditorAgentInstructionCode tmpCode : values) {
if (value.equals(tmpCode.value())) {
code = tmpCode;
break;
}
}
return code;
}
protected PartyAccount buildPartyAccount(String account) {
PartyAccount partyAcct = null;
if (StringUtil.isNotEmpty(account)) {
partyAcct = new PartyAccount();
if (account.length() > 4 && account.startsWith("//")) {
if ("CH".equals(account.substring(2, 4))) {
partyAcct.setAcctType("CUID");
AcctSchemeType acctSchemeType = new AcctSchemeType();
acctSchemeType.setCode(AcctSehemeTypeCode.CUID);
partyAcct.setAcctSehemeType(acctSchemeType);
partyAcct.setAccount(account.substring(4));
} else {
partyAcct.setAccount(account.substring(2));
......@@ -71,7 +94,9 @@ public abstract class AbstractMt2SwiftDtoParseFields implements Mt2SwiftDtoParse
} else {
PartyAccount partyAcct = new PartyAccount();
if ("CH".equals(account.substring(2, 4))) {
partyAcct.setAcctType("CUID");
AcctSchemeType acctSchemeType = new AcctSchemeType();
acctSchemeType.setCode(AcctSehemeTypeCode.CUID);
partyAcct.setAcctSehemeType(acctSchemeType);
partyAcct.setAccount(account.substring(4));
} else {
partyAcct.setAccount(account.substring(2));
......
......@@ -2,7 +2,7 @@ package com.brilliance.swift.mt2SwiftDto;
public class Mt2SwiftDtoContextIdentifier {
public static final String MT_TO_MX_OUTPUT_FILE_PATH = "mt.to.mx.output.filepath";
public static final String MT_TO_SWIFTDTO_OUTPUT_FILE_PATH = "mt.to.swiftdto.output.filepath";
public static final String MT_TO_SWIFTDTO_OBJ = "mt.to.swiftdto.obj";
}
......@@ -54,7 +54,7 @@ public class Mt2SwiftDtoCreateManager {
AbstractMt2SwiftDtoCreator creator = getMt2MxCreator();
Mt2SwiftDtoContext context = new Mt2SwiftDtoContext();
context.set(AbstractMT.class, abstractMT);
context.set(Mt2SwiftDtoContextIdentifier.MT_TO_MX_OUTPUT_FILE_PATH, outPutFilePath);
context.set(Mt2SwiftDtoContextIdentifier.MT_TO_SWIFTDTO_OUTPUT_FILE_PATH, outPutFilePath);
context.putAll(extraMap);
creator.setContext(context);
creator.preProcess();
......
......@@ -54,7 +54,7 @@ public class Mt2SwiftDtoPCamt053001Creator extends AbstractMt2SwiftDtoCreator {
@Override
public void postProcess() throws SwiftException {
try {
String outputFilePath = (String)context.get(Mt2SwiftDtoContextIdentifier.MT_TO_MX_OUTPUT_FILE_PATH, true);
String outputFilePath = (String)context.get(Mt2SwiftDtoContextIdentifier.MT_TO_SWIFTDTO_OUTPUT_FILE_PATH, true);
BankToCustomerStatement bankToCustomerStatement = context.get(BankToCustomerStatement.class);
context.set(Mt2SwiftDtoContextIdentifier.MT_TO_SWIFTDTO_OBJ, bankToCustomerStatement);
if (StringUtil.isNotEmpty(outputFilePath)) {
......
......@@ -54,7 +54,7 @@ public class Mt2SwiftDtoPCamt054001Creator extends AbstractMt2SwiftDtoCreator {
@Override
public void postProcess() throws SwiftException {
try {
String outputFilePath = (String)context.get(Mt2SwiftDtoContextIdentifier.MT_TO_MX_OUTPUT_FILE_PATH, true);
String outputFilePath = (String)context.get(Mt2SwiftDtoContextIdentifier.MT_TO_SWIFTDTO_OUTPUT_FILE_PATH, true);
BankToCustomerDebitCreditNotification bankToCustomerDebitCreditNotification = context.get(BankToCustomerDebitCreditNotification.class);
context.set(Mt2SwiftDtoContextIdentifier.MT_TO_SWIFTDTO_OBJ, bankToCustomerDebitCreditNotification);
if (StringUtil.isNotEmpty(outputFilePath)) {
......
......@@ -64,7 +64,7 @@ public class Mt2SwiftDtoPacs008001Creator extends AbstractMt2SwiftDtoCreator {
@Override
public void postProcess() throws SwiftException {
try {
String outputFilePath = (String)context.get(Mt2SwiftDtoContextIdentifier.MT_TO_MX_OUTPUT_FILE_PATH, true);
String outputFilePath = (String)context.get(Mt2SwiftDtoContextIdentifier.MT_TO_SWIFTDTO_OUTPUT_FILE_PATH, true);
VoCustomerCreditTransfer customerCreditTransfer = context.get(VoCustomerCreditTransfer.class);
context.set(Mt2SwiftDtoContextIdentifier.MT_TO_SWIFTDTO_OBJ, customerCreditTransfer);
if (StringUtil.isNotEmpty(outputFilePath)) {
......
......@@ -3,6 +3,8 @@ package com.brilliance.swift.mt2SwiftDto.pacs008001.impl;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields;
import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.common.ServiceLevel;
import com.brilliance.swift.vo.common.ServiceLevelCode;
import com.prowidesoftware.swift.model.field.Field23B;
import com.prowidesoftware.swift.model.mt.AbstractMT;
import com.prowidesoftware.swift.model.mt1xx.MT103;
......@@ -15,11 +17,14 @@ public class Pacs00801Parse23BField extends AbstractMt2SwiftDtoParseFields {
MT103 mt103 = (MT103)context.get(AbstractMT.class);
Field23B field23B = mt103.getField23B();
if (field23B != null) {
ServiceLevel serviceLevel = new ServiceLevel();
String value = field23B.getValue();
if ("CRED".equals(value)) {
value = "SDVA";
serviceLevel.setCode(ServiceLevelCode.SDVA);
} else {
serviceLevel.setProprietary(value);
}
customerCreditTransfer.setBussinessCode(value);
customerCreditTransfer.setServiceLevel(serviceLevel);
}
} catch (Exception e) {
throw new SwiftException("ERROR", e.getMessage());
......
......@@ -2,7 +2,12 @@ package com.brilliance.swift.mt2SwiftDto.pacs008001.impl;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.common.CategoryPurpose;
import com.brilliance.swift.vo.common.CategoryPurposeCode;
import com.brilliance.swift.vo.common.ExternalCreditorAgentInstructionCode;
import com.brilliance.swift.vo.common.InstructionForCreditAgent;
import com.prowidesoftware.swift.model.field.Field23E;
import com.prowidesoftware.swift.model.mt.AbstractMT;
import com.prowidesoftware.swift.model.mt1xx.MT103;
......@@ -19,7 +24,21 @@ public class Pacs00801Parse23EField extends AbstractMt2SwiftDtoParseFields {
if (field23EList.size() > 0) {
for (int i=0; i<field23EList.size(); i++) {
Field23E field23E = field23EList.get(i);
customerCreditTransfer.addInstructionCode(field23E.getValue());
CategoryPurposeCode categoryPurposeCode = getCategoryPurposeByCode(field23E.getComponent(1));
if (categoryPurposeCode != null) {
CategoryPurpose categoryPurpose = new CategoryPurpose();
categoryPurpose.setCode(categoryPurposeCode);
customerCreditTransfer.setCategoryPurpose(categoryPurpose);
}
ExternalCreditorAgentInstructionCode creditorAgentInstructionCode = getExternalCreditorAgentInstructionByCode(field23E.getComponent(1));
if (creditorAgentInstructionCode != null) {
InstructionForCreditAgent instForCrdAgt = new InstructionForCreditAgent();
instForCrdAgt.setCode(creditorAgentInstructionCode);
if (field23E.getComponent(2) != null) {
instForCrdAgt.setInstrInf(field23E.getComponent(2));
}
customerCreditTransfer.setInstForCrdAgt(instForCrdAgt);
}
}
}
} catch (Exception e) {
......
......@@ -3,6 +3,7 @@ package com.brilliance.swift.mt2SwiftDto.pacs008001.impl;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields;
import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.common.PurposeChoice;
import com.prowidesoftware.swift.model.field.Field26T;
import com.prowidesoftware.swift.model.mt.AbstractMT;
import com.prowidesoftware.swift.model.mt1xx.MT103;
......@@ -15,7 +16,9 @@ public class Pacs00801Parse26TField extends AbstractMt2SwiftDtoParseFields {
MT103 mt103 = (MT103)context.get(AbstractMT.class);
Field26T field26T = mt103.getField26T();
if (field26T != null) {
customerCreditTransfer.setTxnTypeCode(field26T.getValue());
PurposeChoice purposeChoice = new PurposeChoice();
purposeChoice.setProprietary(field26T.getValue());
customerCreditTransfer.setPurposeChoice(purposeChoice);
}
} catch (Exception e) {
throw new SwiftException("ERROR", e.getMessage());
......
......@@ -3,6 +3,7 @@ package com.brilliance.swift.mt2SwiftDto.pacs008001.impl;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields;
import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.common.RemittanceInformation;
import com.prowidesoftware.swift.model.field.Field70;
import com.prowidesoftware.swift.model.mt.AbstractMT;
import com.prowidesoftware.swift.model.mt1xx.MT103;
......@@ -17,9 +18,13 @@ public class Pacs00801Parse70Field extends AbstractMt2SwiftDtoParseFields {
MT103 mt103 = (MT103) context.get(AbstractMT.class);
List<Field70> field70List = mt103.getField70List();
if (field70List.size() > 0) {
RemittanceInformation remittanceInfo = new RemittanceInformation();
String value = "";
for (int i=0; i<field70List.size(); i++) {
customerCreditTransfer.addRemittanceInfo(field70List.get(i).getValue());
value += field70List.get(i).getValue();
}
remittanceInfo.addUnstructured(value);
customerCreditTransfer.setRemittanceInfo(remittanceInfo);
}
} catch (Exception e) {
throw new SwiftException("ERROR", e.getMessage());
......
......@@ -4,8 +4,9 @@ import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields;
import com.brilliance.swift.util.SwiftTransferUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.common.InstructionForCreditAgent;
import com.brilliance.swift.vo.common.InstructionForNextAgent;
import com.brilliance.swift.vo.common.PartyDto;
import com.brilliance.swift.vo.common.Send2ReceInfo;
import com.prowidesoftware.swift.model.field.Field72;
import com.prowidesoftware.swift.model.mt.AbstractMT;
import com.prowidesoftware.swift.model.mt1xx.MT103;
......@@ -33,14 +34,16 @@ public class Pacs00801Parse72Field extends AbstractMt2SwiftDtoParseFields {
customerCreditTransfer.setPreInstgAgtParty(party);
}
if (line.startsWith("/ACC/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo();
send2ReceInfo.setInfo(line.substring(5));
customerCreditTransfer.setInstForCrdAgtInfo(send2ReceInfo);
if (customerCreditTransfer.getInstForCrdAgt() == null) {
InstructionForCreditAgent instForCrdAgt = new InstructionForCreditAgent();
instForCrdAgt.setInstrInf(line.substring(5));
customerCreditTransfer.setInstForCrdAgt(instForCrdAgt);
}
}
if (line.startsWith("/REC/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo();
send2ReceInfo.setInfo(line.substring(5));
customerCreditTransfer.setInstForNxtAgtInfo(send2ReceInfo);
InstructionForNextAgent instForNxtAgt = new InstructionForNextAgent();
instForNxtAgt.setInstrInf(line.substring(5));
customerCreditTransfer.setInstForNxtAgt(instForNxtAgt);
}
}
}
......
......@@ -64,7 +64,7 @@ public class Mt2SwiftDtoPacs009001Creator extends AbstractMt2SwiftDtoCreator {
@Override
public void postProcess() throws SwiftException {
try {
String outputFilePath = (String)context.get(Mt2SwiftDtoContextIdentifier.MT_TO_MX_OUTPUT_FILE_PATH, true);
String outputFilePath = (String)context.get(Mt2SwiftDtoContextIdentifier.MT_TO_SWIFTDTO_OUTPUT_FILE_PATH, true);
VoFinancialInstitutionCreditTransfer financialInstitutionCreditTransfer = context.get(VoFinancialInstitutionCreditTransfer.class);
context.set(Mt2SwiftDtoContextIdentifier.MT_TO_SWIFTDTO_OBJ, financialInstitutionCreditTransfer);
if (StringUtil.isNotEmpty(outputFilePath)) {
......
......@@ -4,12 +4,12 @@ import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields;
import com.brilliance.swift.util.SwiftTransferUtil;
import com.brilliance.swift.vo.VoFinancialInstitutionCreditTransfer;
import com.brilliance.swift.vo.common.PartyDto;
import com.brilliance.swift.vo.common.Send2ReceInfo;
import com.brilliance.swift.vo.common.*;
import com.prowidesoftware.swift.model.field.Field72;
import com.prowidesoftware.swift.model.mt.AbstractMT;
import com.prowidesoftware.swift.model.mt2xx.MT202;
import com.prowidesoftware.swift.model.mt2xx.MT202COV;
import com.prowidesoftware.swift.model.mx.dic.Instruction4Code;
public class Pacs009001Parse72Field extends AbstractMt2SwiftDtoParseFields {
@Override
......@@ -33,38 +33,38 @@ public class Pacs009001Parse72Field extends AbstractMt2SwiftDtoParseFields {
financialInstitutionCreditTransfer.setPreInstgAgtParty(party);
}
if (line.startsWith("/ACC/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo();
send2ReceInfo.setInfo(line.substring(5));
financialInstitutionCreditTransfer.setInstForCrdAgtInfo(send2ReceInfo);
InstructionForCreditAgent instForCrdAgent = new InstructionForCreditAgent();
instForCrdAgent.setInstrInf(line.substring(5));
financialInstitutionCreditTransfer.setInstForCrdAgt(instForCrdAgent);
}
if (line.startsWith("/PHONBEN/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo();
send2ReceInfo.setCode("TELB");
send2ReceInfo.setInfo(line.substring(9));
financialInstitutionCreditTransfer.setInstForCrdAgtInfo(send2ReceInfo);
InstructionForCreditAgent instForCrdAgent = new InstructionForCreditAgent();
instForCrdAgent.setCode(ExternalCreditorAgentInstructionCode.TELB);
instForCrdAgent.setInstrInf(line.substring(9));
financialInstitutionCreditTransfer.setInstForCrdAgt(instForCrdAgent);
}
if (line.startsWith("/REC/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo();
send2ReceInfo.setInfo(line.substring(5));
financialInstitutionCreditTransfer.setInstForNxtAgtInfo(send2ReceInfo);
InstructionForNextAgent instForNxtAgent = new InstructionForNextAgent();
instForNxtAgent.setInstrInf(line.substring(5));
financialInstitutionCreditTransfer.setInstForNxtAgt(instForNxtAgent);
}
if (line.startsWith("/PHON/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo();
send2ReceInfo.setCode("PHOA");
send2ReceInfo.setInfo(line.substring(6));
financialInstitutionCreditTransfer.setInstForNxtAgtInfo(send2ReceInfo);
InstructionForNextAgent instForNxtAgent = new InstructionForNextAgent();
instForNxtAgent.setCode(Instruction4Code.PHOA);
instForNxtAgent.setInstrInf(line.substring(6));
financialInstitutionCreditTransfer.setInstForNxtAgt(instForNxtAgent);
}
if (line.startsWith("/TELE/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo();
send2ReceInfo.setCode("TELA");
send2ReceInfo.setInfo(line.substring(6));
financialInstitutionCreditTransfer.setInstForNxtAgtInfo(send2ReceInfo);
InstructionForNextAgent instForNxtAgent = new InstructionForNextAgent();
instForNxtAgent.setCode(Instruction4Code.TELA);
instForNxtAgent.setInstrInf(line.substring(6));
financialInstitutionCreditTransfer.setInstForNxtAgt(instForNxtAgent);
}
if (line.startsWith("/PHONIBK/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo();
send2ReceInfo.setCode("PHOA");
send2ReceInfo.setInfo(line.substring(8));
financialInstitutionCreditTransfer.setInstForNxtAgtInfo(send2ReceInfo);
InstructionForNextAgent instForNxtAgent = new InstructionForNextAgent();
instForNxtAgent.setCode(Instruction4Code.PHOA);
instForNxtAgent.setInstrInf(line.substring(8));
financialInstitutionCreditTransfer.setInstForNxtAgt(instForNxtAgent);
}
}
}
......
......@@ -4,6 +4,7 @@ import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields;
import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.VoFinancialInstitutionCreditTransfer;
import com.brilliance.swift.vo.common.RemittanceInformation;
import com.prowidesoftware.swift.model.field.Field70;
import com.prowidesoftware.swift.model.mt.AbstractMT;
import com.prowidesoftware.swift.model.mt2xx.MT202COV;
......@@ -23,9 +24,13 @@ public class Pacs009001Parse70Field extends AbstractMt2SwiftDtoParseFields {
if (customerCreditTransfer == null) {
customerCreditTransfer = new VoCustomerCreditTransfer();
}
RemittanceInformation remittanceInfo = new RemittanceInformation();
String value = "";
for (int i=0; i<field70List.size(); i++) {
customerCreditTransfer.addRemittanceInfo(field70List.get(i).getValue());
value += field70List.get(i).getValue();
}
remittanceInfo.addUnstructured(value);
customerCreditTransfer.setRemittanceInfo(remittanceInfo);
financialInstitutionCreditTransfer.setUnderCustomerCreditTransfer(customerCreditTransfer);
}
} catch (Exception e) {
......
......@@ -5,8 +5,9 @@ import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields;
import com.brilliance.swift.util.SwiftTransferUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.VoFinancialInstitutionCreditTransfer;
import com.brilliance.swift.vo.common.InstructionForCreditAgent;
import com.brilliance.swift.vo.common.InstructionForNextAgent;
import com.brilliance.swift.vo.common.PartyDto;
import com.brilliance.swift.vo.common.Send2ReceInfo;
import com.prowidesoftware.swift.model.field.Field72;
import com.prowidesoftware.swift.model.mt.AbstractMT;
import com.prowidesoftware.swift.model.mt2xx.MT202COV;
......@@ -38,14 +39,14 @@ public class Pacs009001Parse72BField extends AbstractMt2SwiftDtoParseFields {
customerCreditTransfer.setPreInstgAgtParty(party);
}
if (line.startsWith("/ACC/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo();
send2ReceInfo.setInfo(line.substring(5));
customerCreditTransfer.setInstForCrdAgtInfo(send2ReceInfo);
InstructionForCreditAgent instForCrdAgt = new InstructionForCreditAgent();
instForCrdAgt.setInstrInf(line.substring(5));
customerCreditTransfer.setInstForCrdAgt(instForCrdAgt);
}
if (line.startsWith("/REC/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo();
send2ReceInfo.setInfo(line.substring(5));
customerCreditTransfer.setInstForNxtAgtInfo(send2ReceInfo);
InstructionForNextAgent instForNxtAgt = new InstructionForNextAgent();
instForNxtAgt.setInstrInf(line.substring(5));
customerCreditTransfer.setInstForNxtAgt(instForNxtAgt);
}
}
financialInstitutionCreditTransfer.setUnderCustomerCreditTransfer(customerCreditTransfer);
......
package com.brilliance.swift.mx2swiftdto;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.util.XmlUtil;
import com.brilliance.swift.vo.common.*;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.dom4j.Document;
import java.util.ArrayList;
import java.util.List;
public abstract class AbstractMx2SwiftDtoCreator implements Mx2SwiftDtoCreator{
protected Mx2SwiftDtoContext context;
public void setContext(Mx2SwiftDtoContext context) {
this.context = context;
}
protected Document document = null;
protected String appHdrParentElementName;
protected String grpHdrParentElementName;
protected String bodyHdrParentElementName;
protected String getXmlNodeValue(String parentPath, Document document, String path) {
if (StringUtil.isNotEmpty(parentPath)) {
path = parentPath + "." + path;
}
return XmlUtil.getXmlNodeValue(document, path);
}
protected int getXmlNodeCounts(String parentPath, Document document, String path) {
if (StringUtil.isNotEmpty(parentPath)) {
path = parentPath + "." + path;
}
return XmlUtil.getChildrenCount(document, path, null);
}
protected String getBicCode(String type, Document document, String path) {
//AnyBIC BICFI BICOrBEI BIC
String bicCode = getXmlNodeValue(type, document, path+".AnyBIC");
if (StringUtil.isEmpty(bicCode)) {
bicCode = getXmlNodeValue(type, document, path+".BICFI");
}
if (StringUtil.isEmpty(bicCode)) {
bicCode = getXmlNodeValue(type, document, path+".BICOrBEI");
}
if (StringUtil.isEmpty(bicCode)) {
bicCode = getXmlNodeValue(type, document, path+".BIC");
}
return bicCode;
}
/**
* FinancialInstitutionIdentification18
* @param type
* @param document
* @param agtPath
* @param agtAcctPath
* @return
*/
protected PartyDto agtConvertPartyDto(String type, Document document, String agtPath, String agtAcctPath) {
String bicCode = getBicCode(type, document, agtPath+".FinInstnId");
String name = getXmlNodeValue(type, document, agtPath+".FinInstnId.Nm");
List<String> addressList = null;
int addressCount = getXmlNodeCounts(type, document, agtPath+".FinInstnId.PstlAdr.AdrLine");
if (addressCount > 0) {
addressList = new ArrayList<>();
for (int i=0; i<addressCount; i++) {
String address = getXmlNodeValue(type, document, agtPath+".FinInstnId.PstlAdr.AdrLine("+i+")");
addressList.add(address);
}
}
String memberCode = getXmlNodeValue(type, document, agtPath+".FinInstnId.ClrSysMmbId.ClrSysId.Cd");
String memberPrtry = getXmlNodeValue(type, document, agtPath+".FinInstnId.ClrSysMmbId.ClrSysId.Prtry");
String memberId = getXmlNodeValue(type, document, agtPath+".FinInstnId.ClrSysMmbId.MmbId");
ClearingSystemMember clrSysMember = null;
if (StringUtil.isNotEmpty(memberCode)
|| StringUtil.isNotEmpty(memberPrtry)
|| StringUtil.isNotEmpty(memberId)) {
clrSysMember = new ClearingSystemMember();
clrSysMember.setCode(memberCode);
clrSysMember.setProprietary(memberPrtry);
clrSysMember.setId(memberId);
}
PartyAccount partyAccount = acctConvertPartyAcct(type, document, agtAcctPath);
PartyDto partyDto = null;
if (StringUtil.isNotEmpty(bicCode)
|| StringUtil.isNotEmpty(name)
|| clrSysMember != null
|| partyAccount != null) {
partyDto = new PartyDto();
partyDto.setPartyBic(bicCode);
partyDto.setPartyName(name);
if (addressList != null) {
partyDto.getAddressList().addAll(addressList);
}
partyDto.setClrSysMmb(clrSysMember);
partyDto.setPartyAcct(partyAccount);
}
return partyDto;
}
/**
* PartyIdentification135
* @param type
* @param document
* @param path
* @param agtAcctPath
* @return
*/
protected PartyDto convertPartyDto(String type, Document document, String path, String agtAcctPath) {
String bicCode = getBicCode(type, document, path+".Id.OrgId");
String name = getXmlNodeValue(type, document, path+".Nm");
List<String> addressList = null;
int addressCount = getXmlNodeCounts(type, document, path+".PstlAdr.AdrLine");
if (addressCount > 0) {
addressList = new ArrayList<>();
for (int i=0; i<addressCount; i++) {
String address = getXmlNodeValue(type, document, path+".PstlAdr.AdrLine("+i+")");
addressList.add(address);
}
}
PartyAccount partyAccount = acctConvertPartyAcct(type, document, agtAcctPath);
PartyDto partyDto = null;
if (StringUtil.isNotEmpty(bicCode)
|| StringUtil.isNotEmpty(name)
|| partyAccount != null) {
partyDto = new PartyDto();
partyDto.setPartyBic(bicCode);
partyDto.setPartyName(name);
if (addressList != null) {
partyDto.getAddressList().addAll(addressList);
}
partyDto.setPartyAcct(partyAccount);
}
return partyDto;
}
protected PartyAccount acctConvertPartyAcct(String type, Document document, String agtAcctPath) {
String account = getXmlNodeValue(type, document, agtAcctPath+".Id.Othr.Id");
String ibanAcct = getXmlNodeValue(type, document, agtAcctPath+".Id.IBAN");
String acctCcy = getXmlNodeValue(type, document, agtAcctPath+".Ccy");
String acctName = getXmlNodeValue(type, document, agtAcctPath+".Nm");
String acctTypeCode = getXmlNodeValue(type, document, agtAcctPath+".Tp.Cd");
String acctTypeProprietary = getXmlNodeValue(type, document, agtAcctPath+".Tp.Prtry");
String acctSchemeTypeCode = getXmlNodeValue(type, document, agtAcctPath+".Id.Othr.SchmeNm.Cd");
String acctSchemeTypeProprietary = getXmlNodeValue(type, document, agtAcctPath+".Id.Othr.SchmeNm.Prtry");
PartyAccount partyAccount = null;
if (StringUtil.isNotEmpty(account) || StringUtil.isNotEmpty(ibanAcct)) {
partyAccount = new PartyAccount();
partyAccount.setAccount(account);
partyAccount.setIbanAcct(ibanAcct);
partyAccount.setAcctCcy(acctCcy);
partyAccount.setAcctName(acctName);
if (StringUtil.isNotEmpty(acctTypeCode) || StringUtil.isNotEmpty(acctTypeProprietary)) {
AcctType acctType = new AcctType();
acctType.setCode(AcctTypeCode.valueOf(acctTypeCode));
acctType.setProprietary(acctTypeProprietary);
partyAccount.setAcctType(acctType);
}
if (StringUtil.isNotEmpty(acctSchemeTypeCode) || StringUtil.isNotEmpty(acctSchemeTypeProprietary)) {
AcctSchemeType acctSchemeType = new AcctSchemeType();
acctSchemeType.setCode(AcctSehemeTypeCode.valueOf(acctSchemeTypeCode));
acctSchemeType.setProprietary(acctSchemeTypeProprietary);
partyAccount.setAcctSehemeType(acctSchemeType);
}
}
return partyAccount;
}
protected PartyDto convertPartyDto(BranchAndFinancialInstitutionIdentification6 agt, CashAccount38 agtAcct) {
if (agt == null && agtAcct == null) {
return null;
}
PartyDto partyDto = new PartyDto();
if (agt != null) {
FinancialInstitutionIdentification18 finInstnId = agt.getFinInstnId();
if (finInstnId != null) {
partyDto.setPartyBic(finInstnId.getBICFI());
partyDto.setPartyName(finInstnId.getNm());
if (finInstnId.getPstlAdr() != null) {
partyDto.getAddressList().addAll(finInstnId.getPstlAdr().getAdrLine());
}
ClearingSystemMemberIdentification2 clrSysMmbId = finInstnId.getClrSysMmbId();
if (clrSysMmbId != null) {
ClearingSystemMember clrSysMmb = new ClearingSystemMember();
ClearingSystemIdentification2Choice clrSysId = clrSysMmbId.getClrSysId();
if (clrSysId != null) {
clrSysMmb.setCode(clrSysId.getCd());
clrSysMmb.setProprietary(clrSysId.getPrtry());
}
clrSysMmb.setId(clrSysMmbId.getMmbId());
partyDto.setClrSysMmb(clrSysMmb);
}
}
}
return partyDto;
}
}
package com.brilliance.swift.mx2swiftdto;
import com.brilliance.swift.context.ContextImpl;
public class Mx2SwiftDtoContext extends ContextImpl {
private static final long serialVersionUID = 7933026993681389136L;
}
package com.brilliance.swift.mx2swiftdto;
public class Mx2SwiftDtoContextIdentifier {
public static final String MX_XMl_DOCUMENT = "mx.xml.document";
public static final String MX_OBJ = "mx.obj";
public static final String APPHDR_PARENT_ELEMENT_NAME = "apphdr.parent.element.name";
public static final String GRPHDR_PARENT_ELEMENT_NAME = "grphdr.parent.element.name";
public static final String BODY_PARENT_ELEMENT_NAME = "body.parent.element.name";
public static final String MX_TO_SWIFTDTO_OUTPUT_FILE_PATH = "m.to.swiftdto.output.filepath";
public static final String MX_TO_SWIFTDTO_OBJ = "mx.to.swiftdto.obj";
}
package com.brilliance.swift.mx2swiftdto;
import com.brilliance.swift.exception.SwiftException;
public interface Mx2SwiftDtoCreator {
void preProcess() throws SwiftException;
void appHeader() throws SwiftException;
void groupHeader() throws SwiftException;
void messageBody() throws SwiftException;
void postProcess() throws SwiftException;
}
package com.brilliance.swift.mx2swiftdto;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2swiftdto.custcdttsf.Mx2SwiftDtoCCTCreator;
import com.brilliance.swift.mx2swiftdto.fininstcdttsf.Mx2SwiftDtoFICTCreator;
import com.brilliance.swift.vo.SwiftDto;
import com.prowidesoftware.swift.model.mx.AbstractMX;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import java.util.Map;
public class Mx2SwiftDtoCreatorManager {
private String msgType = "";
private Object mxObj = null;
private String xmlStr = "";
public void init(String xmlStr) {
AbstractMX abstractMX = AbstractMX.parse(xmlStr);
msgType = (abstractMX.getMxId().getBusinessProcess().name()
+ abstractMX.getMxId().getFunctionality()
+ abstractMX.getMxId().getVariant())
//+ abstractMX.getMxId().getVersion())
.trim()
.replace(".", "");
mxObj = abstractMX;
this.xmlStr = xmlStr;
}
public SwiftDto convert(String xmlStr, String outPutFilePath, Map<String, Object> extraMap) throws SwiftException {
try {
init(xmlStr);
Mx2SwiftDtoContext context = new Mx2SwiftDtoContext();
context.set(Mx2SwiftDtoContextIdentifier.MX_TO_SWIFTDTO_OUTPUT_FILE_PATH, outPutFilePath);
context.putAll(extraMap);
Document document = DocumentHelper.parseText(xmlStr);
context.set(Mx2SwiftDtoContextIdentifier.MX_XMl_DOCUMENT, document);
context.set(Mx2SwiftDtoContextIdentifier.MX_OBJ, mxObj);
AbstractMx2SwiftDtoCreator creator = getMx2SwiftDtoCreator(msgType);
creator.setContext(context);
creator.preProcess();
creator.appHeader();
creator.groupHeader();
creator.messageBody();
creator.postProcess();
return (SwiftDto) context.get(Mx2SwiftDtoContextIdentifier.MX_TO_SWIFTDTO_OBJ);
} catch (DocumentException e) {
throw new SwiftException("ERROR", e.getMessage());
}
}
public AbstractMx2SwiftDtoCreator getMx2SwiftDtoCreator(String msgType) throws SwiftException {
if ("pacs008001".equals(msgType)) {
return new Mx2SwiftDtoCCTCreator();
} else if ("pacs009001".equals(msgType)){
return new Mx2SwiftDtoFICTCreator();
} else {
throw new SwiftException("Invalid message type");
}
}
}
package com.brilliance.swift.mx2swiftdto.custcdttsf;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2swiftdto.AbstractMx2SwiftDtoCreator;
import com.brilliance.swift.mx2swiftdto.Mx2SwiftDtoContextIdentifier;
import com.brilliance.swift.util.DateUtil;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.util.XmlUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.common.*;
import com.prowidesoftware.swift.model.mx.dic.Instruction4Code;
import org.dom4j.Document;
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import java.io.File;
import java.math.BigDecimal;
import java.text.ParseException;
import java.util.Date;
import java.util.Map;
/**
* CCT -- VoCustomerCreditTransfer
*/
public class Mx2SwiftDtoCCTCreator extends AbstractMx2SwiftDtoCreator {
private VoCustomerCreditTransfer customerCreditTransfer = null;
private String defaultFormate = "yyyy-MM-dd HH:mm:ss,SSS";
@Override
public void preProcess() throws SwiftException {
document = (Document)context.get(Mx2SwiftDtoContextIdentifier.MX_XMl_DOCUMENT, true);
Map<String, String> parentElementMaps = XmlUtil.getParentElementMaps(document);
appHdrParentElementName = parentElementMaps.get("AppHdr");
grpHdrParentElementName = parentElementMaps.get("GrpHdr");
bodyHdrParentElementName = parentElementMaps.get("CdtTrfTxInf");
customerCreditTransfer = new VoCustomerCreditTransfer();
customerCreditTransfer.setMessageType("pacs.008.001");
}
@Override
public void appHeader() throws SwiftException {
try {
String sendBicCode = getBicCode(appHdrParentElementName, document, "AppHdr.Fr.FIId.FinInstnId");
String receiverBicCode = getBicCode(appHdrParentElementName, document, "AppHdr.To.FIId.FinInstnId");
String createDateStr = getXmlNodeValue(appHdrParentElementName, document, "AppHdr.CreDt");
if (StringUtil.isNotEmpty(createDateStr)) {
XMLGregorianCalendar createDt = DatatypeFactory.newInstance().newXMLGregorianCalendar(createDateStr);
Date createDate = DateUtil.formatAndParseDate(createDt.toGregorianCalendar().getTime(), defaultFormate);
customerCreditTransfer.setCreateDate(createDate);
}
String messageId = getXmlNodeValue(appHdrParentElementName, document, "AppHdr.BizMsgIdr");
String priority = getXmlNodeValue(appHdrParentElementName, document, "AppHdr.Prty");
if (StringUtil.isNotEmpty(priority)) {
customerCreditTransfer.setMessagePriority(MessagePriority.fromValue(priority));
}
customerCreditTransfer.setMessageId(messageId);
customerCreditTransfer.setSenderBic(sendBicCode);
customerCreditTransfer.setReceiverBic(receiverBicCode);
} catch (DatatypeConfigurationException e) {
throw new SwiftException("ERROR", e.getMessage());
} catch (ParseException e) {
throw new SwiftException("ERROR", e.getMessage());
}
}
@Override
public void groupHeader() throws SwiftException {
PartyDto instgAgtParty = agtConvertPartyDto(grpHdrParentElementName, document, "GrpHdr.sttlmInf.InstgRmbrsmntAgt", "sttlmInf.InstgRmbrsmntAgtAcct");
PartyDto instdAgtParty = agtConvertPartyDto(grpHdrParentElementName, document, "GrpHdr.sttlmInf.InstdRmbrsmntAgt", "sttlmInf.InstdRmbrsmntAgtAcct");
PartyDto thridAgtParty = agtConvertPartyDto(grpHdrParentElementName, document, "GrpHdr.sttlmInf.ThrdRmbrsmntAgt", "sttlmInf.ThrdRmbrsmntAgtAcct");
PartyAccount settleAccount = acctConvertPartyAcct(grpHdrParentElementName, document, "GrpHdr.sttlmInf.SttlmAcct");
customerCreditTransfer.setInstgAgtParty(instgAgtParty);
customerCreditTransfer.setInstdAgtParty(instdAgtParty);
customerCreditTransfer.setThridAgtParty(thridAgtParty);
customerCreditTransfer.setSettleAccount(settleAccount);
}
@Override
public void messageBody() throws SwiftException {
try {
//UETR
String uetr = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.PmtId.UETR");
if (StringUtil.isNotEmpty(uetr)) {
customerCreditTransfer.setUetr(uetr);
}
//party
PartyDto debitParty = convertPartyDto(bodyHdrParentElementName, document, "CdtTrfTxInf.Dbtr", "CdtTrfTxInf.DbtrAcct");
PartyDto debitAgtParty = agtConvertPartyDto(bodyHdrParentElementName, document, "CdtTrfTxInf.DbtrAgt", "CdtTrfTxInf.DbtrAgtAcct");
PartyDto intrmyAgtParty = agtConvertPartyDto(bodyHdrParentElementName, document, "CdtTrfTxInf.IntrmyAgt1", "CdtTrfTxInf.IntrmyAgt1Acct");
PartyDto creditAgtParty = agtConvertPartyDto(bodyHdrParentElementName, document, "CdtTrfTxInf.CdtrAgt", "CdtTrfTxInf.CdtrAgtAcct");
PartyDto creditParty = convertPartyDto(bodyHdrParentElementName, document, "CdtTrfTxInf.Cdtr", "CdtTrfTxInf.CdtrAcct");
PartyDto preInstgAgtParty = agtConvertPartyDto(bodyHdrParentElementName, document, "CdtTrfTxInf.PrvsInstgAgt1", "CdtTrfTxInf.PrvsInstgAgt1Acct");
customerCreditTransfer.setDebitParty(debitParty);
customerCreditTransfer.setDebitAgtParty(debitAgtParty);
customerCreditTransfer.setIntrmyAgtParty(intrmyAgtParty);
customerCreditTransfer.setCreditAgtParty(creditAgtParty);
customerCreditTransfer.setCreditParty(creditParty);
customerCreditTransfer.setPreInstgAgtParty(preInstgAgtParty);
//debitDate
String dbtDtTmStr = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.SttlmTmIndctn.DbtDtTm");
if (StringUtil.isNotEmpty(dbtDtTmStr)) {
XMLGregorianCalendar dbtDtTm = DatatypeFactory.newInstance().newXMLGregorianCalendar(dbtDtTmStr);
Date debitDate = DateUtil.formatAndParseDate(dbtDtTm.toGregorianCalendar().getTime(), defaultFormate);
customerCreditTransfer.setDebitDate(debitDate);
}
//creditDate
String cdtDtTmStr = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.SttlmTmIndctn.CdtDtTm");
if (StringUtil.isNotEmpty(cdtDtTmStr)) {
XMLGregorianCalendar cdtDtTm = DatatypeFactory.newInstance().newXMLGregorianCalendar(cdtDtTmStr);
Date creditDate = DateUtil.formatAndParseDate(cdtDtTm.toGregorianCalendar().getTime(), defaultFormate);
customerCreditTransfer.setCreditDate(creditDate);
}
//clsDate
String clsDtTmStr = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.SttlmTmReq.CLSTm");
if (StringUtil.isNotEmpty(clsDtTmStr)) {
XMLGregorianCalendar clsDtTm = DatatypeFactory.newInstance().newXMLGregorianCalendar(clsDtTmStr);
Date clsDate = DateUtil.formatAndParseDate(clsDtTm.toGregorianCalendar().getTime(), defaultFormate);
customerCreditTransfer.setClsDate(clsDate);
}
//serviceLevel;
String svcLvlCode = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.PmtTpInf.SvcLvl.Cd");
String svcLvlPrtry = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.PmtTpInf.SvcLvl.Prtry");
if (StringUtil.isNotEmpty(svcLvlCode) || StringUtil.isNotEmpty(svcLvlPrtry)) {
ServiceLevel serviceLevel = new ServiceLevel();
if (StringUtil.isNotEmpty(svcLvlCode)) {
serviceLevel.setCode(ServiceLevelCode.valueOf(svcLvlCode));
}
serviceLevel.setProprietary(svcLvlPrtry);
customerCreditTransfer.setServiceLevel(serviceLevel);
}
//CategoryPurpose
String ctgyPurpCode = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.PmtTpInf.CtgyPurp.Cd");
String ctgyPurpPrtry = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.PmtTpInf.CtgyPurp.Prtry");
if (StringUtil.isNotEmpty(ctgyPurpCode) || StringUtil.isNotEmpty(ctgyPurpPrtry)) {
CategoryPurpose categoryPurpose = new CategoryPurpose();
if (StringUtil.isNotEmpty(ctgyPurpCode)) {
categoryPurpose.setCode(CategoryPurposeCode.valueOf(ctgyPurpCode));
}
categoryPurpose.setProprietary(ctgyPurpPrtry);
customerCreditTransfer.setCategoryPurpose(categoryPurpose);
}
//PurposeChoice
String purpCode = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.Purp.Cd");
String purpPrtry = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.Purp.Prtry");
if (StringUtil.isNotEmpty(purpCode) || StringUtil.isNotEmpty(purpPrtry)) {
PurposeChoice purposeChoice = new PurposeChoice();
purposeChoice.setCode(purpCode);
purposeChoice.setProprietary(purpPrtry);
customerCreditTransfer.setPurposeChoice(purposeChoice);
}
//settledDate settledCcyFormatAmount
String intrBkSttlmDtStr = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.IntrBkSttlmDt");
if (StringUtil.isNotEmpty(intrBkSttlmDtStr)) {
XMLGregorianCalendar intrBkSttlmDt = DatatypeFactory.newInstance().newXMLGregorianCalendar(intrBkSttlmDtStr);
Date settledDate = DateUtil.formatAndParseDate(intrBkSttlmDt.toGregorianCalendar().getTime(), defaultFormate);
customerCreditTransfer.setSettledDate(settledDate);
}
String intrBkSttlmCcy = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.IntrBkSttlmAmt@Ccy");
String intrBkSttlmAmtStr = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.IntrBkSttlmAmt");
if (StringUtil.isNotEmpty(intrBkSttlmCcy) && StringUtil.isNotEmpty(intrBkSttlmAmtStr)) {
CcyFormatAmount settledCfa = new CcyFormatAmount();
settledCfa.setCcy(intrBkSttlmCcy);
settledCfa.setAmt(new BigDecimal(intrBkSttlmAmtStr));
customerCreditTransfer.setSettledCcyFormatAmount(settledCfa);
}
//InstructedCcyFormatAmount
String instdAmtCcy = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.InstdAmt@Ccy");
String instdAmtStr = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.InstdAmt");
if (StringUtil.isNotEmpty(instdAmtCcy) && StringUtil.isNotEmpty(instdAmtStr)) {
CcyFormatAmount instdCfa = new CcyFormatAmount();
instdCfa.setCcy(instdAmtCcy);
instdCfa.setAmt(new BigDecimal(instdAmtStr));
customerCreditTransfer.setInstructedCcyFormatAmount(instdCfa);
}
//exchangeRate
String exchangeRateStr = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.XchgRate");
if (StringUtil.isNotEmpty(exchangeRateStr)) {
customerCreditTransfer.setExchangeRate(new BigDecimal(exchangeRateStr));
}
//RemittanceInformation
int ustrdCounts = getXmlNodeCounts(bodyHdrParentElementName, document, "CdtTrfTxInf.RmtInf.Ustrd");
if (ustrdCounts > 0) {
RemittanceInformation remittanceInformation = new RemittanceInformation();
for (int i=0; i<ustrdCounts; i++) {
String ustrd = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.RmtInf.Ustrd("+i+")");
remittanceInformation.addUnstructured(ustrd);
}
customerCreditTransfer.setRemittanceInfo(remittanceInformation);
}
//chargeFor chargeCcyFormatAmount
String chrgBr = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.ChrgBr");
if (StringUtil.isNotEmpty(chrgBr)) {
customerCreditTransfer.setChargeFor(ChargeForEnum.valueOf(chrgBr));
}
String chrgAmtStr = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.ChrgsInf");
String chrgCcy = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.ChrgsInf@Ccy");
if (StringUtil.isNotEmpty(chrgCcy) && StringUtil.isNotEmpty(chrgAmtStr)) {
CcyFormatAmount chrgCfa = new CcyFormatAmount();
chrgCfa.setCcy(chrgCcy);
chrgCfa.setAmt(new BigDecimal(chrgAmtStr));
customerCreditTransfer.setChargeCcyFormatAmount(chrgCfa);
}
//InstructionForCreditAgent
String instForCdtAgentCode = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.InstrForCdtrAgt.Cd");
String instForCdtAgentInstrInf = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.InstrForCdtrAgt.InstrInf");
if (StringUtil.isNotEmpty(instForCdtAgentCode) || StringUtil.isNotEmpty(instForCdtAgentInstrInf)) {
InstructionForCreditAgent instForCdtAgt = new InstructionForCreditAgent();
if (StringUtil.isNotEmpty(instForCdtAgentCode)) {
instForCdtAgt.setCode(ExternalCreditorAgentInstructionCode.valueOf(instForCdtAgentCode));
}
instForCdtAgt.setInstrInf(instForCdtAgentInstrInf);
customerCreditTransfer.setInstForCrdAgt(instForCdtAgt);
}
//InstructionForNextAgent
String instForNxtAgentCode = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.InstrForNxtAgt.Cd");
String instForNxtAgentInstrInf = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.InstrForNxtAgt.InstrInf");
if (StringUtil.isNotEmpty(instForNxtAgentCode) || StringUtil.isNotEmpty(instForNxtAgentInstrInf)) {
InstructionForNextAgent instForNxtAgt = new InstructionForNextAgent();
if (StringUtil.isNotEmpty(instForNxtAgentCode)) {
instForNxtAgt.setCode(Instruction4Code.valueOf(instForNxtAgentCode));
}
instForNxtAgt.setInstrInf(instForNxtAgentInstrInf);
customerCreditTransfer.setInstForNxtAgt(instForNxtAgt);
}
//regulatoryReportings
int size = getXmlNodeCounts(bodyHdrParentElementName, document, "CdtTrfTxInf.RgltryRptg");
if (size > 0) {
for (int i=0; i<size; i++) {
String dtlsInf = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.RgltryRptg("+i+").Dtls.Inf");
customerCreditTransfer.addRegulatoryReporting(dtlsInf);
}
}
} catch (DatatypeConfigurationException e) {
throw new SwiftException("ERROR", e.getMessage());
} catch (ParseException e) {
throw new SwiftException("ERROR", e.getMessage());
}
}
@Override
public void postProcess() throws SwiftException {
try {
context.set(Mx2SwiftDtoContextIdentifier.MX_TO_SWIFTDTO_OBJ, customerCreditTransfer);
String outputFilePath = (String)context.get(Mx2SwiftDtoContextIdentifier.MX_TO_SWIFTDTO_OUTPUT_FILE_PATH, true);
if (StringUtil.isNotEmpty(outputFilePath)) {
customerCreditTransfer.write(new File(outputFilePath));
}
} catch (Exception e) {
throw new SwiftException("ERROR", e.getMessage());
}
}
}
package com.brilliance.swift.mx2swiftdto.fininstcdttsf;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2swiftdto.AbstractMx2SwiftDtoCreator;
public class Mx2SwiftDtoFICTCreator extends AbstractMx2SwiftDtoCreator {
@Override
public void preProcess() throws SwiftException {
}
@Override
public void appHeader() throws SwiftException {
}
@Override
public void groupHeader() throws SwiftException {
}
@Override
public void messageBody() throws SwiftException {
}
@Override
public void postProcess() throws SwiftException {
}
}
......@@ -33,7 +33,7 @@ public class SwiftDto2MtCreatorManager {
SwiftDto2MtContext context = new SwiftDto2MtContext();
context.set(SwiftDto2MtContextIdentifier.SWIFT_DTO_OBJ, swiftDto);
context.set(SwiftDto2MtContextIdentifier.MT_OUTPUT_FILE_PATH, fileOutputPath);
context.set(SwiftDto2MtContextIdentifier.MT_IO_TYPE, mtIoType);
context.set(SwiftDto2MtContextIdentifier.MT_IO_TYPE, StringUtil.isEmpty(mtIoType)?"O":mtIoType);
AbstractSwiftDto2MtCreator creator = getCreator(swiftDto.getMessageType());
creator.setContext(context);
creator.preProcess();
......
......@@ -3,8 +3,9 @@ package com.brilliance.swift.swiftdto2mt.mt103.impl;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.swiftdto2mt.AbstractSwiftDto2MtTagGenerate;
import com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.common.ServiceLevel;
import com.brilliance.swift.vo.common.ServiceLevelCode;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
......@@ -20,9 +21,9 @@ public class Tag23BGenerate extends AbstractSwiftDto2MtTagGenerate {
VoCustomerCreditTransfer customerCreditTransfer = (VoCustomerCreditTransfer)context.get(SwiftDto2MtContextIdentifier.SWIFT_DTO_OBJ, true);
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
if (StringUtil.isNotEmpty(customerCreditTransfer.getBussinessCode())) {
String bussinessCode = customerCreditTransfer.getBussinessCode();
String value = "SDVA".equals(bussinessCode) ? "CRED" : bussinessCode;
ServiceLevel serviceLevel = customerCreditTransfer.getServiceLevel();
if (serviceLevel != null) {
String value = ServiceLevelCode.SDVA.equals(serviceLevel.getCode()) ? "CRED" : serviceLevel.getProprietary();
tags.add(new Tag(name, value));
}
}
......
......@@ -3,7 +3,12 @@ package com.brilliance.swift.swiftdto2mt.mt103.impl;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.swiftdto2mt.AbstractSwiftDto2MtTagGenerate;
import com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.common.CategoryPurpose;
import com.brilliance.swift.vo.common.InstructionForCreditAgent;
import com.brilliance.swift.vo.common.ServiceLevel;
import com.brilliance.swift.vo.common.ServiceLevelCode;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
......@@ -19,11 +24,21 @@ public class Tag23EGenerate extends AbstractSwiftDto2MtTagGenerate {
VoCustomerCreditTransfer customerCreditTransfer = (VoCustomerCreditTransfer)context.get(SwiftDto2MtContextIdentifier.SWIFT_DTO_OBJ, true);
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
List<String> instructionCodeList = customerCreditTransfer.getInstructionCodeList();
if (instructionCodeList.size() > 0) {
for (int i=0; i<instructionCodeList.size(); i++) {
tags.add(new Tag(name, instructionCodeList.get(i)));
ServiceLevel serviceLevel = customerCreditTransfer.getServiceLevel();
if (serviceLevel != null && ServiceLevelCode.SDVA.equals(serviceLevel.getCode())) {
tags.add(new Tag(name, serviceLevel.getCode().value()));
}
CategoryPurpose categoryPurpose = customerCreditTransfer.getCategoryPurpose();
if (categoryPurpose != null && categoryPurpose.getCode() != null) {
tags.add(new Tag(name, categoryPurpose.getCode().value()));
}
InstructionForCreditAgent instForCrdAgt = customerCreditTransfer.getInstForCrdAgt();
if (instForCrdAgt != null && instForCrdAgt.getCode() != null) {
String value = instForCrdAgt.getCode().value();
if (StringUtil.isNotEmpty(instForCrdAgt.getInstrInf())) {
value += "/" + instForCrdAgt.getInstrInf();
}
tags.add(new Tag(name, value));
}
}
}
......@@ -5,6 +5,7 @@ import com.brilliance.swift.swiftdto2mt.AbstractSwiftDto2MtTagGenerate;
import com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.common.PurposeChoice;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
......@@ -20,8 +21,9 @@ public class Tag26TGenerate extends AbstractSwiftDto2MtTagGenerate {
VoCustomerCreditTransfer customerCreditTransfer = (VoCustomerCreditTransfer)context.get(SwiftDto2MtContextIdentifier.SWIFT_DTO_OBJ, true);
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
if (StringUtil.isNotEmpty(customerCreditTransfer.getTxnTypeCode())) {
tags.add(new Tag(name, customerCreditTransfer.getTxnTypeCode()));
PurposeChoice purposeChoice = customerCreditTransfer.getPurposeChoice();
if (purposeChoice != null && StringUtil.isNotEmpty(purposeChoice.getProprietary())) {
tags.add(new Tag(name, purposeChoice.getProprietary()));
}
}
}
package com.brilliance.swift.swiftdto2mt.mt103.impl;
import com.brilliance.swift.constants.Mx2MtConstants;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.swiftdto2mt.AbstractSwiftDto2MtTagGenerate;
import com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.common.RemittanceInformation;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
......@@ -19,33 +20,10 @@ public class Tag70Generate extends AbstractSwiftDto2MtTagGenerate {
VoCustomerCreditTransfer customerCreditTransfer = (VoCustomerCreditTransfer)context.get(SwiftDto2MtContextIdentifier.SWIFT_DTO_OBJ, true);
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
List<String> remittanceInfoList = customerCreditTransfer.getRemittanceInfoList();
if (remittanceInfoList.size() > 0) {
String value = "";
for (int i=0; i<remittanceInfoList.size(); i++) {
if (i==0) {
value += remittanceInfoList.get(i);
} else {
value += Mx2MtConstants.NEW_LINE + remittanceInfoList.get(i);
}
}
RemittanceInformation remittanceInfo = customerCreditTransfer.getRemittanceInfo();
if (remittanceInfo != null && remittanceInfo.getUnstructured().size() > 0) {
String value = StringUtil.getStringByEnter(remittanceInfo.getUnstructured().get(0), 35, 4);
tags.add(new Tag(name, value));
}
}
/*@Override
public void fieldsGenerate() throws SwiftException {
try {
String field70 = "";
Document document = (Document)map.get(Mx2MtConstants.MX_XML_DOCUMENT);
int ustrdCounts = getXmlNodeCounts(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "CdtTrfTxInf.RmtInf.Ustrd");
if (ustrdCounts > 0) {
String ustrd = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "CdtTrfTxInf.RmtInf.Ustrd(0)");
field70 = StringUtil.getStringByEnter(ustrd, 35, 4);
}
map.put("field70", field70);
} catch (Exception e) {
throw new SwiftException("ERROR", e.getMessage());
}
}*/
}
\ No newline at end of file
......@@ -6,8 +6,9 @@ import com.brilliance.swift.swiftdto2mt.AbstractSwiftDto2MtTagGenerate;
import com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.common.InstructionForCreditAgent;
import com.brilliance.swift.vo.common.InstructionForNextAgent;
import com.brilliance.swift.vo.common.PartyDto;
import com.brilliance.swift.vo.common.Send2ReceInfo;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
......@@ -36,14 +37,14 @@ public class Tag72Generate extends AbstractSwiftDto2MtTagGenerate {
list.addAll(StringUtil.outStringList(name, 35, "//"));
}
}
Send2ReceInfo instForCrdAgtInfo = customerCreditTransfer.getInstForCrdAgtInfo();
if (instForCrdAgtInfo != null) {
String instrInfo = Mx2MtConstants.ACC + instForCrdAgtInfo.getInfo();
InstructionForCreditAgent instForCrdAgt = customerCreditTransfer.getInstForCrdAgt();
if (instForCrdAgt != null && StringUtil.isNotEmpty(instForCrdAgt.getInstrInf())) {
String instrInfo = Mx2MtConstants.ACC + instForCrdAgt.getInstrInf();
list.addAll(StringUtil.outStringList(instrInfo, 35, "//"));
}
Send2ReceInfo instForNxtAgtInfo = customerCreditTransfer.getInstForNxtAgtInfo();
if (instForNxtAgtInfo != null) {
String instrInfo = Mx2MtConstants.REC + instForNxtAgtInfo.getInfo();
InstructionForNextAgent instForNxtAgt = customerCreditTransfer.getInstForNxtAgt();
if (instForNxtAgt != null && StringUtil.isNotEmpty(instForNxtAgt.getInstrInf())) {
String instrInfo = Mx2MtConstants.REC + instForNxtAgt.getInstrInf();
list.addAll(StringUtil.outStringList(instrInfo, 35, "//"));
}
String value = "";
......
package com.brilliance.swift.swiftdto2mx;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.common.ClearingSystemMember;
import com.brilliance.swift.vo.common.PartyAccount;
import com.brilliance.swift.vo.common.PartyDto;
import com.brilliance.swift.vo.common.*;
import com.prowidesoftware.swift.model.mx.dic.*;
public abstract class AbstractSwiftDto2MxCreator implements SwiftDto2MxCreator{
......@@ -49,16 +47,21 @@ public abstract class AbstractSwiftDto2MxCreator implements SwiftDto2MxCreator{
CashAccount38 cashAccount38 = null;
String ibanAcct = partyAcct.getIbanAcct();
String account = partyAcct.getAccount();
String acctType = partyAcct.getAcctType();
if (StringUtil.isNotEmpty(ibanAcct) || StringUtil.isNotEmpty(account)) {
cashAccount38 = new CashAccount38();
cashAccount38.setCcy(partyAcct.getAcctCcy());
cashAccount38.setNm(partyAcct.getAcctName());
AccountIdentification4Choice id = new AccountIdentification4Choice();
if (StringUtil.isNotEmpty(account)) {
GenericAccountIdentification1 othr = new GenericAccountIdentification1();
othr.setId(account);
if (StringUtil.isNotEmpty(acctType)) {
AcctSchemeType acctSehemeType = partyAcct.getAcctSehemeType();
if (acctSehemeType != null) {
AccountSchemeName1Choice schmeNm = new AccountSchemeName1Choice();
schmeNm.setCd(acctType);
if (acctSehemeType.getCode() != null) {
schmeNm.setCd(acctSehemeType.getCode().value());
}
schmeNm.setPrtry(acctSehemeType.getProprietary());
othr.setSchmeNm(schmeNm);
}
id.setOthr(othr);
......@@ -66,8 +69,16 @@ public abstract class AbstractSwiftDto2MxCreator implements SwiftDto2MxCreator{
if (StringUtil.isNotEmpty(ibanAcct)) {
id.setIBAN(ibanAcct);
}
cashAccount38.setId(id);
AcctType acctType = partyAcct.getAcctType();
if (acctType != null) {
CashAccountType2Choice tp = new CashAccountType2Choice();
if (acctType.getCode() != null) {
tp.setCd(acctType.getCode().value());
}
tp.setPrtry(acctType.getProprietary());
cashAccount38.setTp(tp);
}
}
return cashAccount38;
}
......
......@@ -4,28 +4,9 @@ import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.swiftdto2mx.pacs008001.v09.SwiftDto2MxPacs008001Creator;
import com.brilliance.swift.swiftdto2mx.pacs009001.v09.SwiftDto2MxPacs009001Creator;
import com.brilliance.swift.vo.SwiftDto;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class SwiftDto2MxCreatorManager {
public String swiftDto2Mx(File file, String fileOutputPath) throws SwiftException {
try {
String gsonStr = FileUtils.readFileToString(file);
SwiftDto swiftDto = SwiftDto.fromJson(gsonStr);
return swiftDto2Mx(swiftDto, fileOutputPath);
} catch (IOException e) {
throw new SwiftException("ERROR", e.getMessage());
}
}
public String swiftDto2Mx(String gsonStr, String fileOutputPath) throws SwiftException{
SwiftDto swiftDto = SwiftDto.fromJson(gsonStr);
return swiftDto2Mx(swiftDto, fileOutputPath);
}
public String swiftDto2Mx(SwiftDto swiftDto, String fileOutputPath) throws SwiftException {
SwiftDto2MxContext context = new SwiftDto2MxContext();
context.set(SwiftDto2MxContextIdentifier.SWIFT_DTO_OBJ, swiftDto);
......
......@@ -7,6 +7,7 @@ import com.brilliance.swift.util.DateUtil;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.common.*;
import com.brilliance.swift.vo.common.PurposeChoice;
import com.prowidesoftware.swift.model.mx.BusinessAppHdrV02;
import com.prowidesoftware.swift.model.mx.MxPacs00800109;
import com.prowidesoftware.swift.model.mx.dic.*;
......@@ -134,25 +135,29 @@ public class SwiftDto2MxPacs008001Creator extends AbstractSwiftDto2MxCreator {
}
cdtTrfTxInf.setSttlmTmReq(sttlmTmReq);
//PmtTpInf
String businessCode = customerCreditTransfer.getBussinessCode();
if (StringUtil.isNotEmpty(businessCode)) {
//PmtTpInf (SvcLvl/CtgyPurp)
ServiceLevel serviceLevel = customerCreditTransfer.getServiceLevel();
CategoryPurpose categoryPurpose = customerCreditTransfer.getCategoryPurpose();
if (serviceLevel != null || categoryPurpose != null) {
PaymentTypeInformation28 pmtTpInf = new PaymentTypeInformation28();
ServiceLevel8Choice svcLvl = new ServiceLevel8Choice();
if ("SDVA".equals(businessCode)) {
svcLvl.setCd(businessCode);
} else {
svcLvl.setPrtry(businessCode);
}
svcLvl.setCd(serviceLevel.getCode().value());
svcLvl.setPrtry(serviceLevel.getProprietary());
pmtTpInf.addSvcLvl(svcLvl);
CategoryPurpose1Choice ctgyPurp = new CategoryPurpose1Choice();
ctgyPurp.setCd(categoryPurpose.getCode().value());
ctgyPurp.setPrtry(categoryPurpose.getProprietary());
pmtTpInf.setCtgyPurp(ctgyPurp);
cdtTrfTxInf.setPmtTpInf(pmtTpInf);
}
//Purp
String txnTypeCode = customerCreditTransfer.getTxnTypeCode();
if (StringUtil.isNotEmpty(txnTypeCode)) {
PurposeChoice purposeChoice = customerCreditTransfer.getPurposeChoice();
if (purposeChoice != null) {
Purpose2Choice purp = new Purpose2Choice();
purp.setPrtry(txnTypeCode);
purp.setCd(purposeChoice.getCode());
purp.setPrtry(purposeChoice.getProprietary());
cdtTrfTxInf.setPurp(purp);
}
......@@ -227,14 +232,12 @@ public class SwiftDto2MxPacs008001Creator extends AbstractSwiftDto2MxCreator {
}
//RmtInf
List<String> remittanceInfolist = customerCreditTransfer.getRemittanceInfoList();
if (remittanceInfolist != null && remittanceInfolist.size() > 0) {
RemittanceInformation remittanceInfo = customerCreditTransfer.getRemittanceInfo();
if (remittanceInfo != null && remittanceInfo.getUnstructured().size() > 0) {
RemittanceInformation16 rmtInf = new RemittanceInformation16();
String ustrd = "";
for (String remittanceInfo : remittanceInfolist) {
ustrd += remittanceInfo;
for (String remitInfo : remittanceInfo.getUnstructured()) {
rmtInf.addUstrd(remitInfo);
}
rmtInf.addUstrd(ustrd);
cdtTrfTxInf.setRmtInf(rmtInf);
}
......@@ -268,20 +271,18 @@ public class SwiftDto2MxPacs008001Creator extends AbstractSwiftDto2MxCreator {
prvsInstgAgt1.setFinInstnId(finInstnId);
cdtTrfTxInf.setPrvsInstgAgt1(prvsInstgAgt1);
}
Send2ReceInfo instForCrdAgtInfo = customerCreditTransfer.getInstForCrdAgtInfo();
if (instForCrdAgtInfo != null) {
InstructionForCreditAgent instForCrdAgt = customerCreditTransfer.getInstForCrdAgt();
if (instForCrdAgt != null) {
InstructionForCreditorAgent3 instructionForCreditorAgent3 = new InstructionForCreditorAgent3();
instructionForCreditorAgent3.setCd(instForCrdAgtInfo.getCode());
instructionForCreditorAgent3.setInstrInf(instForCrdAgtInfo.getInfo());
instructionForCreditorAgent3.setCd(instForCrdAgt.getCode().value());
instructionForCreditorAgent3.setInstrInf(instForCrdAgt.getInstrInf());
cdtTrfTxInf.addInstrForCdtrAgt(instructionForCreditorAgent3);
}
Send2ReceInfo instForNxtAgtInfo = customerCreditTransfer.getInstForNxtAgtInfo();
if (instForNxtAgtInfo != null) {
InstructionForNextAgent instForNxtAgt = customerCreditTransfer.getInstForNxtAgt();
if (instForNxtAgt != null) {
InstructionForNextAgent1 instructionForNextAgent1 = new InstructionForNextAgent1();
if (StringUtil.isNotEmpty(instForNxtAgtInfo.getCode())) {
instructionForNextAgent1.setCd(Instruction4Code.valueOf(instForNxtAgtInfo.getCode()));
}
instructionForNextAgent1.setInstrInf(instForNxtAgtInfo.getInfo());
instructionForNextAgent1.setCd(instForNxtAgt.getCode());
instructionForNextAgent1.setInstrInf(instForNxtAgt.getInstrInf());
cdtTrfTxInf.addInstrForNxtAgt(instructionForNextAgent1);
}
//RgltryRptg
......
......@@ -7,10 +7,7 @@ import com.brilliance.swift.util.DateUtil;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.VoFinancialInstitutionCreditTransfer;
import com.brilliance.swift.vo.common.CcyFormatAmount;
import com.brilliance.swift.vo.common.MessagePriority;
import com.brilliance.swift.vo.common.PartyDto;
import com.brilliance.swift.vo.common.Send2ReceInfo;
import com.brilliance.swift.vo.common.*;
import com.prowidesoftware.swift.model.mx.BusinessAppHdrV02;
import com.prowidesoftware.swift.model.mx.MxPacs00900109;
import com.prowidesoftware.swift.model.mx.dic.*;
......@@ -20,7 +17,6 @@ import javax.xml.datatype.XMLGregorianCalendar;
import java.io.File;
import java.io.IOException;
import java.text.ParseException;
import java.util.List;
public class SwiftDto2MxPacs009001Creator extends AbstractSwiftDto2MxCreator {
@Override
......@@ -185,20 +181,18 @@ public class SwiftDto2MxPacs009001Creator extends AbstractSwiftDto2MxCreator {
prvsInstgAgt1.setFinInstnId(finInstnId);
cdtTrfTxInf.setPrvsInstgAgt1(prvsInstgAgt1);
}
Send2ReceInfo instForCrdAgtInfo = financialInstitutionCreditTransfer.getInstForCrdAgtInfo();
if (instForCrdAgtInfo != null) {
InstructionForCreditAgent instForCrdAgt = financialInstitutionCreditTransfer.getInstForCrdAgt();
if (instForCrdAgt != null) {
InstructionForCreditorAgent3 instructionForCreditorAgent3 = new InstructionForCreditorAgent3();
instructionForCreditorAgent3.setCd(instForCrdAgtInfo.getCode());
instructionForCreditorAgent3.setInstrInf(instForCrdAgtInfo.getInfo());
instructionForCreditorAgent3.setCd(instForCrdAgt.getCode().value());
instructionForCreditorAgent3.setInstrInf(instForCrdAgt.getInstrInf());
cdtTrfTxInf.addInstrForCdtrAgt(instructionForCreditorAgent3);
}
Send2ReceInfo instForNxtAgtInfo = financialInstitutionCreditTransfer.getInstForNxtAgtInfo();
if (instForNxtAgtInfo != null) {
InstructionForNextAgent instForNxtAgt = financialInstitutionCreditTransfer.getInstForNxtAgt();
if (instForNxtAgt != null) {
InstructionForNextAgent1 instructionForNextAgent1 = new InstructionForNextAgent1();
if (StringUtil.isNotEmpty(instForNxtAgtInfo.getCode())) {
instructionForNextAgent1.setCd(Instruction4Code.valueOf(instForNxtAgtInfo.getCode()));
}
instructionForNextAgent1.setInstrInf(instForNxtAgtInfo.getInfo());
instructionForNextAgent1.setCd(instForNxtAgt.getCode());
instructionForNextAgent1.setInstrInf(instForNxtAgt.getInstrInf());
cdtTrfTxInf.addInstrForNxtAgt(instructionForNextAgent1);
}
//cover
......@@ -261,14 +255,12 @@ public class SwiftDto2MxPacs009001Creator extends AbstractSwiftDto2MxCreator {
undrlygCstmrCdtTrf.setCdtrAcct(cdtrAcct);
}
//RmtInf
List<String> remittanceInfolist = customerCreditTransfer.getRemittanceInfoList();
if (remittanceInfolist != null && remittanceInfolist.size() > 0) {
RemittanceInformation remittanceInfo1 = customerCreditTransfer.getRemittanceInfo();
if (remittanceInfo1 != null && remittanceInfo1.getUnstructured().size() > 0) {
RemittanceInformation16 rmtInf = new RemittanceInformation16();
String ustrd = "";
for (String remittanceInfo : remittanceInfolist) {
ustrd += remittanceInfo;
for (String remittanceInfo : remittanceInfo1.getUnstructured()) {
rmtInf.addUstrd(remittanceInfo);
}
rmtInf.addUstrd(ustrd);
undrlygCstmrCdtTrf.setRmtInf(rmtInf);
}
//PrvsInstgAgt1 InstrForCdtrAgt InstrForNxtAgt
......@@ -281,20 +273,18 @@ public class SwiftDto2MxPacs009001Creator extends AbstractSwiftDto2MxCreator {
prvsInstgAgt1.setFinInstnId(finInstnId);
undrlygCstmrCdtTrf.setPrvsInstgAgt1(prvsInstgAgt1);
}
Send2ReceInfo underInstForCrdAgtInfo = customerCreditTransfer.getInstForCrdAgtInfo();
if (underInstForCrdAgtInfo != null) {
InstructionForCreditAgent underInstForCrdAgt = customerCreditTransfer.getInstForCrdAgt();
if (underInstForCrdAgt != null) {
InstructionForCreditorAgent3 instructionForCreditorAgent3 = new InstructionForCreditorAgent3();
instructionForCreditorAgent3.setCd(underInstForCrdAgtInfo.getCode());
instructionForCreditorAgent3.setInstrInf(underInstForCrdAgtInfo.getInfo());
instructionForCreditorAgent3.setCd(underInstForCrdAgt.getCode().value());
instructionForCreditorAgent3.setInstrInf(underInstForCrdAgt.getInstrInf());
undrlygCstmrCdtTrf.addInstrForCdtrAgt(instructionForCreditorAgent3);
}
Send2ReceInfo underInstForNxtAgtInfo = customerCreditTransfer.getInstForNxtAgtInfo();
if (underInstForNxtAgtInfo != null) {
InstructionForNextAgent underInstForNxtAgt = customerCreditTransfer.getInstForNxtAgt();
if (underInstForNxtAgt != null) {
InstructionForNextAgent1 instructionForNextAgent1 = new InstructionForNextAgent1();
if (StringUtil.isNotEmpty(underInstForNxtAgtInfo.getCode())) {
instructionForNextAgent1.setCd(Instruction4Code.valueOf(underInstForNxtAgtInfo.getCode()));
}
instructionForNextAgent1.setInstrInf(underInstForNxtAgtInfo.getInfo());
instructionForNextAgent1.setCd(underInstForNxtAgt.getCode());
instructionForNextAgent1.setInstrInf(underInstForNxtAgt.getInstrInf());
undrlygCstmrCdtTrf.addInstrForNxtAgt(instructionForNextAgent1);
}
}
......
......@@ -366,9 +366,9 @@ public abstract class StringUtil {
* @param rows 最多行数
* @param string 需换行的字符串
* @return
* @throws Exception
* @throws
*/
public static String getStringByEnter(String string, int length, int rows) throws Exception {
public static String getStringByEnter(String string, int length, int rows) {
if (StringUtils.isEmpty(string))
return string;
if (--rows <= 0) {
......
......@@ -18,11 +18,11 @@ public class VoCustomerCreditTransfer extends SwiftDto {
protected Date clsDate;
protected String bussinessCode;
protected ServiceLevel serviceLevel;
protected List<String> instructionCodes;
protected CategoryPurpose categoryPurpose;
protected String txnTypeCode;
protected PurposeChoice purposeChoice;
protected Date settledDate;
......@@ -50,7 +50,7 @@ public class VoCustomerCreditTransfer extends SwiftDto {
protected PartyDto creditParty;
protected List<String> remittanceInfos;
protected RemittanceInformation remittanceInfo;
protected ChargeForEnum chargeFor;
......@@ -58,9 +58,9 @@ public class VoCustomerCreditTransfer extends SwiftDto {
protected PartyDto preInstgAgtParty;
protected Send2ReceInfo instForCrdAgtInfo;
protected InstructionForCreditAgent instForCrdAgt;
protected Send2ReceInfo instForNxtAgtInfo;
protected InstructionForNextAgent instForNxtAgt;
protected List<String> regulatoryReportings;
......@@ -88,20 +88,12 @@ public class VoCustomerCreditTransfer extends SwiftDto {
this.clsDate = clsDate;
}
public String getBussinessCode() {
return bussinessCode;
public ServiceLevel getServiceLevel() {
return serviceLevel;
}
public void setBussinessCode(String bussinessCode) {
this.bussinessCode = bussinessCode;
}
public String getTxnTypeCode() {
return txnTypeCode;
}
public void setTxnTypeCode(String txnTypeCode) {
this.txnTypeCode = txnTypeCode;
public void setServiceLevel(ServiceLevel serviceLevel) {
this.serviceLevel = serviceLevel;
}
public Date getSettledDate() {
......@@ -152,30 +144,6 @@ public class VoCustomerCreditTransfer extends SwiftDto {
this.chargeCcyFormatAmount = chargeCcyFormatAmount;
}
public List<String> getInstructionCodeList() {
if (instructionCodes == null) {
instructionCodes = new ArrayList<>();
}
return this.instructionCodes;
}
public VoCustomerCreditTransfer addInstructionCode(String instructionCode) {
getInstructionCodeList().add(instructionCode);
return this;
}
public List<String> getRemittanceInfoList() {
if (remittanceInfos == null) {
remittanceInfos = new ArrayList<>();
}
return this.remittanceInfos;
}
public VoCustomerCreditTransfer addRemittanceInfo(String remittanceInfo) {
getRemittanceInfoList().add(remittanceInfo);
return this;
}
public List<String> getRegulatoryReportingList() {
if (regulatoryReportings == null) {
regulatoryReportings = new ArrayList<>();
......@@ -268,19 +236,43 @@ public class VoCustomerCreditTransfer extends SwiftDto {
this.preInstgAgtParty = preInstgAgtParty;
}
public Send2ReceInfo getInstForCrdAgtInfo() {
return instForCrdAgtInfo;
public CategoryPurpose getCategoryPurpose() {
return categoryPurpose;
}
public void setCategoryPurpose(CategoryPurpose categoryPurpose) {
this.categoryPurpose = categoryPurpose;
}
public PurposeChoice getPurposeChoice() {
return purposeChoice;
}
public void setPurposeChoice(PurposeChoice purposeChoice) {
this.purposeChoice = purposeChoice;
}
public RemittanceInformation getRemittanceInfo() {
return remittanceInfo;
}
public void setRemittanceInfo(RemittanceInformation remittanceInfo) {
this.remittanceInfo = remittanceInfo;
}
public InstructionForCreditAgent getInstForCrdAgt() {
return instForCrdAgt;
}
public void setInstForCrdAgtInfo(Send2ReceInfo instForCrdAgtInfo) {
this.instForCrdAgtInfo = instForCrdAgtInfo;
public void setInstForCrdAgt(InstructionForCreditAgent instForCrdAgt) {
this.instForCrdAgt = instForCrdAgt;
}
public Send2ReceInfo getInstForNxtAgtInfo() {
return instForNxtAgtInfo;
public InstructionForNextAgent getInstForNxtAgt() {
return instForNxtAgt;
}
public void setInstForNxtAgtInfo(Send2ReceInfo instForNxtAgtInfo) {
this.instForNxtAgtInfo = instForNxtAgtInfo;
public void setInstForNxtAgt(InstructionForNextAgent instForNxtAgt) {
this.instForNxtAgt = instForNxtAgt;
}
}
package com.brilliance.swift.vo;
import com.brilliance.swift.vo.common.CcyFormatAmount;
import com.brilliance.swift.vo.common.PartyAccount;
import com.brilliance.swift.vo.common.PartyDto;
import com.brilliance.swift.vo.common.Send2ReceInfo;
import com.brilliance.swift.vo.common.*;
import java.util.Date;
......@@ -40,9 +37,9 @@ public class VoFinancialInstitutionCreditTransfer extends SwiftDto{
protected PartyDto preInstgAgtParty;
protected Send2ReceInfo instForCrdAgtInfo;
protected InstructionForCreditAgent instForCrdAgt;
protected Send2ReceInfo instForNxtAgtInfo;
protected InstructionForNextAgent instForNxtAgt;
/**
* Underlying Customer Credit Transfer
......@@ -161,20 +158,20 @@ public class VoFinancialInstitutionCreditTransfer extends SwiftDto{
this.preInstgAgtParty = preInstgAgtParty;
}
public Send2ReceInfo getInstForCrdAgtInfo() {
return instForCrdAgtInfo;
public InstructionForCreditAgent getInstForCrdAgt() {
return instForCrdAgt;
}
public void setInstForCrdAgtInfo(Send2ReceInfo instForCrdAgtInfo) {
this.instForCrdAgtInfo = instForCrdAgtInfo;
public void setInstForCrdAgt(InstructionForCreditAgent instForCrdAgt) {
this.instForCrdAgt = instForCrdAgt;
}
public Send2ReceInfo getInstForNxtAgtInfo() {
return instForNxtAgtInfo;
public InstructionForNextAgent getInstForNxtAgt() {
return instForNxtAgt;
}
public void setInstForNxtAgtInfo(Send2ReceInfo instForNxtAgtInfo) {
this.instForNxtAgtInfo = instForNxtAgtInfo;
public void setInstForNxtAgt(InstructionForNextAgent instForNxtAgt) {
this.instForNxtAgt = instForNxtAgt;
}
public VoCustomerCreditTransfer getUnderCustomerCreditTransfer() {
......
package com.brilliance.swift.vo.common;
public class AcctSchemeType {
private AcctSehemeTypeCode code;
private String proprietary;
public AcctSehemeTypeCode getCode() {
return code;
}
public void setCode(AcctSehemeTypeCode code) {
this.code = code;
}
public String getProprietary() {
return proprietary;
}
public void setProprietary(String proprietary) {
this.proprietary = proprietary;
}
}
package com.brilliance.swift.vo.common;
public enum AcctSehemeTypeCode {
AIIN("IssuerIdentificationNumber"),
BBAN("BBANIdentifier"),
CUID("CHIPSUniversalIdentifier"),
UPIC("UPICIdentifier");
AcctSehemeTypeCode(String s) {}
public String value() {
return name();
}
}
package com.brilliance.swift.vo.common;
public class AcctType {
private AcctTypeCode code;
private String proprietary;
public AcctTypeCode getCode() {
return code;
}
public void setCode(AcctTypeCode code) {
this.code = code;
}
public String getProprietary() {
return proprietary;
}
public void setProprietary(String proprietary) {
this.proprietary = proprietary;
}
}
package com.brilliance.swift.vo.common;
public enum AcctTypeCode {
CACC("Current"),
CARD("CardAccount"),
CASH("CashPayment"),
CHAR("Charges"),
CISH("CashIncome"),
COMM("Commission"),
CPAC("ClearingParticipantSettlementAccount"),
LLSV("LimitedLiquiditySavingsAccount"),
LOAN("Loan"),
MGLD("MarginalLending"),
MOMA("MoneyMarket"),
NREX("NonResidentExternal"),
ODFT("Overdraft"),
ONDP("OverNightDeposit"),
OTHR("OtherAccount"),
SACC("Settlement"),
SLRY("Salary"),
SVGS("Savings"),
TAXE("Tax"),
TRAN("TransactingAccount"),
TRAS("CashTrading"),
VACC("VirtualAccount");
AcctTypeCode(String s) {}
public String value() {
return name();
}
}
package com.brilliance.swift.vo.common;
public class CategoryPurpose {
private CategoryPurposeCode code;
private String proprietary;
public CategoryPurposeCode getCode() {
return code;
}
public void setCode(CategoryPurposeCode code) {
this.code = code;
}
public String getProprietary() {
return proprietary;
}
public void setProprietary(String proprietary) {
this.proprietary = proprietary;
}
}
package com.brilliance.swift.vo.common;
public enum CategoryPurposeCode {
BONU("BonusPayment"),
CASH("CashManagementTransfer"),
CBLK("CardBulkClearing"),
CCRD("CreditCardPayment"),
CORT("TradeSettlementPayment"),
DCRD("DebitCardPayment"),
DIVI("Dividend"),
DVPM("DeliverAgainstPayment"),
EPAY("Epayment"),
FCIN("FeeCollectionAndInterest"),
FCOL("FeeCollection"),
GP2P("PersontoPersonPayment"),
GOVT("GovernmentPayment"),
HEDG("Hedging"),
ICCP("IrrevocableCreditCardPayment"),
IDCP("IrrevocableDebitCardPayment"),
INTC("IntraCompanyPayment"),
INTE("Interest"),
LBOX("LockboxTransactions"),
LOAN("Loan"),
MP2B("Commercial"),
MP2P("Consumer"),
OTHR("OtherPayment"),
PENS("PensionPayment"),
RPRE("Represented"),
RRCT("ReimbursementReceivedCreditTransfer"),
RVPM("ReceiveAgainstPayment"),
SALA("SalaryPayment"),
SECU("Securities"),
SSBE("SocialSecurityBenefit"),
SUPP("SupplierPayment"),
TAXS("TaxPayment"),
TRAD("Trade"),
TREA("TreasuryPayment"),
VATX("ValueAddedTaxPayment"),
WHLD("WithHolding"),
SWEP("CashManagementSweepAccount"),
TOPG("CashManagementTopAccount"),
ZABA("CashManagementZeroBalanceAccount");
CategoryPurposeCode(String s) {}
public String value() {
return name();
}
}
......@@ -4,6 +4,8 @@ public class ClearingSystemMember {
private String code;
private String proprietary;
private String id;
public String getCode() {
......@@ -14,6 +16,14 @@ public class ClearingSystemMember {
this.code = code;
}
public String getProprietary() {
return proprietary;
}
public void setProprietary(String proprietary) {
this.proprietary = proprietary;
}
public String getId() {
return id;
}
......
package com.brilliance.swift.vo.common;
public enum ExternalCreditorAgentInstructionCode {
CHQB("PayCreditorByCheque"),
HOLD("HoldCashForCreditor"),
PHOB("PhoneBeneficiary"),
PRTK("PayerTokenRequested"),
RECI("ReceiverCustomerInformation"),
TELB("Telecom"),
TKCM("TokenCounterpartyMismatch"),
TKSG("TokenSingleUse"),
TKSP("TokenSuspended"),
TKVE("TokenValueLimitExceeded"),
TKXP("TokenExpired"),
TOKN("Token"),
VLTK("TokenValidation");
ExternalCreditorAgentInstructionCode(String s) {}
public String value() {
return name();
}
}
package com.brilliance.swift.vo.common;
public class InstructionForCreditAgent {
private ExternalCreditorAgentInstructionCode code;
private String instrInf;
public ExternalCreditorAgentInstructionCode getCode() {
return code;
}
public void setCode(ExternalCreditorAgentInstructionCode code) {
this.code = code;
}
public String getInstrInf() {
return instrInf;
}
public void setInstrInf(String instrInf) {
this.instrInf = instrInf;
}
}
package com.brilliance.swift.vo.common;
import com.prowidesoftware.swift.model.mx.dic.Instruction4Code;
public class InstructionForNextAgent {
private Instruction4Code code;
private String instrInf;
public Instruction4Code getCode() {
return code;
}
public void setCode(Instruction4Code code) {
this.code = code;
}
public String getInstrInf() {
return instrInf;
}
public void setInstrInf(String instrInf) {
this.instrInf = instrInf;
}
}
......@@ -18,7 +18,9 @@ public class PartyAccount {
private String acctName;
private String acctType;
private AcctType acctType;
private AcctSchemeType acctSehemeType;
public String getAccount() {
return account;
......@@ -52,11 +54,19 @@ public class PartyAccount {
this.acctName = acctName;
}
public String getAcctType() {
public AcctType getAcctType() {
return acctType;
}
public void setAcctType(String acctType) {
public void setAcctType(AcctType acctType) {
this.acctType = acctType;
}
public AcctSchemeType getAcctSehemeType() {
return acctSehemeType;
}
public void setAcctSehemeType(AcctSchemeType acctSehemeType) {
this.acctSehemeType = acctSehemeType;
}
}
package com.brilliance.swift.vo.common;
public enum PartyTypeEnum {
public enum PartyTypeCode {
OC("Ordering Customer"),
......@@ -18,7 +18,7 @@ public enum PartyTypeEnum {
BC("Beneficiary Customer");
PartyTypeEnum(String s) {}
PartyTypeCode(String s) {}
public String value() {
return name();
......
package com.brilliance.swift.vo.common;
public class Send2ReceInfo {
public class PurposeChoice {
private String code;
private String info;
private String proprietary;
public String getCode() {
return code;
......@@ -14,11 +14,11 @@ public class Send2ReceInfo {
this.code = code;
}
public String getInfo() {
return info;
public String getProprietary() {
return proprietary;
}
public void setInfo(String info) {
this.info = info;
public void setProprietary(String proprietary) {
this.proprietary = proprietary;
}
}
package com.brilliance.swift.vo.common;
import java.util.ArrayList;
import java.util.List;
public class RemittanceInformation {
private List<String> unstructured;
public List<String> getUnstructured() {
if (unstructured == null) {
unstructured = new ArrayList<>();
}
return this.unstructured;
}
public RemittanceInformation addUnstructured(String unstructured) {
getUnstructured().add(unstructured);
return this;
}
}
package com.brilliance.swift.vo.common;
public class ServiceLevel {
private ServiceLevelCode code;
private String proprietary;
public ServiceLevelCode getCode() {
return code;
}
public void setCode(ServiceLevelCode code) {
this.code = code;
}
public String getProprietary() {
return proprietary;
}
public void setProprietary(String proprietary) {
this.proprietary = proprietary;
}
}
package com.brilliance.swift.vo.common;
public enum ServiceLevelCode {
BKTR("BookTransaction"),
G001("TrackedCustomerCreditTransfer"),
G002("TrackedStopAndRecall"),
G003("TrackedCorporateTransfer"),
G004("TrackedFinancialInstitutionTransfer"),
NPCA("NordicPaymentsCouncilAreaTransfer"),
NUGP("NonurgentPriorityPayment"),
NURG("NonurgentPayment"),
PRPT("EBAPriorityService"),
SDVA("SameDayValue"),
SEPA("SingleEuroPaymentsArea"),
SVDE("DomesticChequeClearingAndSettlement"),
URGP("UrgentPayment"),
URNS("UrgentPaymentNetSettlement"),
INST("InstantCreditTransferOrInstantDirectDebit"),
SRTP("ServiceRequestToPay"),
SVAT("ScheckVerarbeitungAustria");
ServiceLevelCode(String s) {}
public String value() {
return name();
}
}
......@@ -71,12 +71,12 @@
<Doc:CLSTm>2022-03-13T21:21:42.112+07:00</Doc:CLSTm>
</Doc:SttlmTmReq>
<Doc:InstrForCdtrAgt>
<Doc:Cd>GHJK</Doc:Cd>
<Doc:Cd>TELB</Doc:Cd>
<Doc:InstrInf>789556</Doc:InstrInf>
</Doc:InstrForCdtrAgt>
<Doc:PmtTpInf>
<Doc:CtgyPurp>
<Doc:Cd>BNKK</Doc:Cd>
<Doc:Cd>CASH</Doc:Cd>
</Doc:CtgyPurp>
<Doc:SvcLvl>
<Doc:Cd>SDVA</Doc:Cd>
......
package com.brilliance.mx.pacs008001;
import com.brilliance.swift.swiftdto2mx.SwiftDto2MxCreatorManager;
import java.io.File;
public class TestSwiftDto2Pacs008001 {
public static void main(String[] args) throws Exception {
File file = new File(System.getProperty("user.dir")+"\\swiftCore\\src\\main\\resources\\swiftJson\\CustomerCreditTransfer.json");
String xmlStr = new SwiftDto2MxCreatorManager().swiftDto2Mx(file, "d:/test/pacs008_json.xml");
System.out.println(xmlStr);
}
}
package com.brilliance.mx.pacs009001;
import com.brilliance.swift.swiftdto2mx.SwiftDto2MxCreatorManager;
import java.io.File;
public class TestSwiftDto2Pacs009001 {
public static void main(String[] args) {
try {
File file = new File(System.getProperty("user.dir")+"\\swiftCore\\src\\main\\resources\\swiftJson\\FinancialInstitutionCreditTransfer.json");
String xmlStr = new SwiftDto2MxCreatorManager().swiftDto2Mx(file, "d:/test/pacs009001_json.xml");
System.out.println(xmlStr);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package com.brilliance.mx2mt.mt103;
import com.brilliance.swift.SwiftTransfer;
import com.brilliance.swift.mx2mt.Mx2MtCreateManager;
import java.io.File;
public class TestMx2MtFor103 {
public static void main(String[] args) throws Exception {
Mx2MtCreateManager mx2MtCreateManager = new Mx2MtCreateManager();
String mt103 = mx2MtCreateManager.mx2mt(
String mt103 = SwiftTransfer.mx2Mt(
new File(System.getProperty("user.dir")+"\\swiftCore\\src\\main\\resources\\swiftXml\\MxPacs00800102.xml"),
"d:/test/MT103.txt");
"d:/test/MT103.txt", null);
System.out.println(mt103);
}
}
package com.brilliance.mx2swiftdto.custcdttsf;
import com.brilliance.swift.SwiftTransfer;
import com.brilliance.swift.vo.SwiftDto;
import java.io.File;
public class Test {
public static void main(String[] args) {
SwiftDto swiftDto = SwiftTransfer.mx2SwiftDto(new File(System.getProperty("user.dir")+"\\swiftCore\\src\\main\\resources\\swiftXml\\MxPacs00800102.xml"), "d:/test/CustomerCreditTransfer.json", null);
System.out.println(swiftDto);
}
}
package com.brilliance.swiftdto2mt.mt103;
import com.brilliance.swift.swiftdto2mt.SwiftDto2MtCreatorManager;
import com.brilliance.swift.SwiftTransfer;
import java.io.File;
......@@ -8,7 +8,7 @@ public class Test {
public static void main(String[] args) {
File file = new File(System.getProperty("user.dir")+"\\swiftCore\\src\\main\\resources\\swiftJson\\CustomerCreditTransfer.json");
String mtStr = new SwiftDto2MtCreatorManager().swiftDto2Mt(file, null, null);
String mtStr = SwiftTransfer.swiftDto2Mt(file, null, null);
System.out.println(mtStr);
}
}
......@@ -18,13 +18,13 @@ package com.prowidesoftware.swift.model.field;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.prowidesoftware.Generated;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.SwiftTagListBlock;
import com.prowidesoftware.swift.model.Tag;
import org.apache.commons.lang3.StringUtils;
import java.io.Serializable;
import java.util.*;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.SwiftTagListBlock;
/**
* <strong>SWIFT MT Field 23E</strong>
* <p>
......@@ -156,6 +156,12 @@ public class Field23E extends Field implements Serializable {
setComponent1(SwiftParseUtils.getTokenFirst(value, "/"));
setComponent2(SwiftParseUtils.getTokenSecond(value, "/"));
}
@Override
public String getComponent(int number) {
return super.getComponent(number);
}
/**
* Serializes the fields' components into the single string value (SWIFT format)
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment