Commit 2aac6a0f by chengzhuoshen

1.pacs008001 转换成 VoCustomerCreditTransfer

2.VoCustomerCreditTransfer 转换成 pacs008001
3.VoCustomerCreditTransfer属性优化
parent 0dfd1aa2
...@@ -2,7 +2,9 @@ package com.brilliance.swift; ...@@ -2,7 +2,9 @@ package com.brilliance.swift;
import com.brilliance.swift.exception.SwiftException; import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mt2SwiftDto.Mt2SwiftDtoCreateManager; import com.brilliance.swift.mt2SwiftDto.Mt2SwiftDtoCreateManager;
import com.brilliance.swift.mx2swiftdto.Mx2SwiftDtoCreatorManager;
import com.brilliance.swift.swiftdto2mt.SwiftDto2MtCreatorManager; import com.brilliance.swift.swiftdto2mt.SwiftDto2MtCreatorManager;
import com.brilliance.swift.swiftdto2mx.SwiftDto2MxCreatorManager;
import com.brilliance.swift.util.StringUtil; import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.SwiftDto; import com.brilliance.swift.vo.SwiftDto;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
...@@ -44,7 +46,7 @@ public class SwiftTransfer { ...@@ -44,7 +46,7 @@ public class SwiftTransfer {
* @return * @return
* @throws SwiftException * @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{ try{
String mtStr = FileUtils.readFileToString(file); String mtStr = FileUtils.readFileToString(file);
return new Mt2SwiftDtoCreateManager().convert(mtStr, outPutFilePath, extraMap); return new Mt2SwiftDtoCreateManager().convert(mtStr, outPutFilePath, extraMap);
...@@ -53,9 +55,89 @@ public class SwiftTransfer { ...@@ -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); 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; ...@@ -2,10 +2,7 @@ package com.brilliance.swift.mt2SwiftDto;
import com.brilliance.swift.util.StringUtil; import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.util.SwiftTransferUtil; import com.brilliance.swift.util.SwiftTransferUtil;
import com.brilliance.swift.vo.common.ClearingSystemMember; import com.brilliance.swift.vo.common.*;
import com.brilliance.swift.vo.common.ClearingSystemMemberCode;
import com.brilliance.swift.vo.common.PartyAccount;
import com.brilliance.swift.vo.common.PartyDto;
import com.prowidesoftware.swift.model.mt.AbstractMT; import com.prowidesoftware.swift.model.mt.AbstractMT;
public abstract class AbstractMt2SwiftDtoParseFields implements Mt2SwiftDtoParseFields { public abstract class AbstractMt2SwiftDtoParseFields implements Mt2SwiftDtoParseFields {
...@@ -32,13 +29,39 @@ public abstract class AbstractMt2SwiftDtoParseFields implements Mt2SwiftDtoParse ...@@ -32,13 +29,39 @@ public abstract class AbstractMt2SwiftDtoParseFields implements Mt2SwiftDtoParse
return code; 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) { protected PartyAccount buildPartyAccount(String account) {
PartyAccount partyAcct = null; PartyAccount partyAcct = null;
if (StringUtil.isNotEmpty(account)) { if (StringUtil.isNotEmpty(account)) {
partyAcct = new PartyAccount(); partyAcct = new PartyAccount();
if (account.length() > 4 && account.startsWith("//")) { if (account.length() > 4 && account.startsWith("//")) {
if ("CH".equals(account.substring(2, 4))) { 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)); partyAcct.setAccount(account.substring(4));
} else { } else {
partyAcct.setAccount(account.substring(2)); partyAcct.setAccount(account.substring(2));
...@@ -71,7 +94,9 @@ public abstract class AbstractMt2SwiftDtoParseFields implements Mt2SwiftDtoParse ...@@ -71,7 +94,9 @@ public abstract class AbstractMt2SwiftDtoParseFields implements Mt2SwiftDtoParse
} else { } else {
PartyAccount partyAcct = new PartyAccount(); PartyAccount partyAcct = new PartyAccount();
if ("CH".equals(account.substring(2, 4))) { 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)); partyAcct.setAccount(account.substring(4));
} else { } else {
partyAcct.setAccount(account.substring(2)); partyAcct.setAccount(account.substring(2));
......
...@@ -2,7 +2,7 @@ package com.brilliance.swift.mt2SwiftDto; ...@@ -2,7 +2,7 @@ package com.brilliance.swift.mt2SwiftDto;
public class Mt2SwiftDtoContextIdentifier { 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"; public static final String MT_TO_SWIFTDTO_OBJ = "mt.to.swiftdto.obj";
} }
...@@ -54,7 +54,7 @@ public class Mt2SwiftDtoCreateManager { ...@@ -54,7 +54,7 @@ public class Mt2SwiftDtoCreateManager {
AbstractMt2SwiftDtoCreator creator = getMt2MxCreator(); AbstractMt2SwiftDtoCreator creator = getMt2MxCreator();
Mt2SwiftDtoContext context = new Mt2SwiftDtoContext(); Mt2SwiftDtoContext context = new Mt2SwiftDtoContext();
context.set(AbstractMT.class, abstractMT); 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); context.putAll(extraMap);
creator.setContext(context); creator.setContext(context);
creator.preProcess(); creator.preProcess();
......
...@@ -54,7 +54,7 @@ public class Mt2SwiftDtoPCamt053001Creator extends AbstractMt2SwiftDtoCreator { ...@@ -54,7 +54,7 @@ public class Mt2SwiftDtoPCamt053001Creator extends AbstractMt2SwiftDtoCreator {
@Override @Override
public void postProcess() throws SwiftException { public void postProcess() throws SwiftException {
try { 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); BankToCustomerStatement bankToCustomerStatement = context.get(BankToCustomerStatement.class);
context.set(Mt2SwiftDtoContextIdentifier.MT_TO_SWIFTDTO_OBJ, bankToCustomerStatement); context.set(Mt2SwiftDtoContextIdentifier.MT_TO_SWIFTDTO_OBJ, bankToCustomerStatement);
if (StringUtil.isNotEmpty(outputFilePath)) { if (StringUtil.isNotEmpty(outputFilePath)) {
......
...@@ -54,7 +54,7 @@ public class Mt2SwiftDtoPCamt054001Creator extends AbstractMt2SwiftDtoCreator { ...@@ -54,7 +54,7 @@ public class Mt2SwiftDtoPCamt054001Creator extends AbstractMt2SwiftDtoCreator {
@Override @Override
public void postProcess() throws SwiftException { public void postProcess() throws SwiftException {
try { 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); BankToCustomerDebitCreditNotification bankToCustomerDebitCreditNotification = context.get(BankToCustomerDebitCreditNotification.class);
context.set(Mt2SwiftDtoContextIdentifier.MT_TO_SWIFTDTO_OBJ, bankToCustomerDebitCreditNotification); context.set(Mt2SwiftDtoContextIdentifier.MT_TO_SWIFTDTO_OBJ, bankToCustomerDebitCreditNotification);
if (StringUtil.isNotEmpty(outputFilePath)) { if (StringUtil.isNotEmpty(outputFilePath)) {
......
...@@ -64,7 +64,7 @@ public class Mt2SwiftDtoPacs008001Creator extends AbstractMt2SwiftDtoCreator { ...@@ -64,7 +64,7 @@ public class Mt2SwiftDtoPacs008001Creator extends AbstractMt2SwiftDtoCreator {
@Override @Override
public void postProcess() throws SwiftException { public void postProcess() throws SwiftException {
try { 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); VoCustomerCreditTransfer customerCreditTransfer = context.get(VoCustomerCreditTransfer.class);
context.set(Mt2SwiftDtoContextIdentifier.MT_TO_SWIFTDTO_OBJ, customerCreditTransfer); context.set(Mt2SwiftDtoContextIdentifier.MT_TO_SWIFTDTO_OBJ, customerCreditTransfer);
if (StringUtil.isNotEmpty(outputFilePath)) { if (StringUtil.isNotEmpty(outputFilePath)) {
......
...@@ -3,6 +3,8 @@ package com.brilliance.swift.mt2SwiftDto.pacs008001.impl; ...@@ -3,6 +3,8 @@ package com.brilliance.swift.mt2SwiftDto.pacs008001.impl;
import com.brilliance.swift.exception.SwiftException; import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields; import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields;
import com.brilliance.swift.vo.VoCustomerCreditTransfer; 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.field.Field23B;
import com.prowidesoftware.swift.model.mt.AbstractMT; import com.prowidesoftware.swift.model.mt.AbstractMT;
import com.prowidesoftware.swift.model.mt1xx.MT103; import com.prowidesoftware.swift.model.mt1xx.MT103;
...@@ -15,11 +17,14 @@ public class Pacs00801Parse23BField extends AbstractMt2SwiftDtoParseFields { ...@@ -15,11 +17,14 @@ public class Pacs00801Parse23BField extends AbstractMt2SwiftDtoParseFields {
MT103 mt103 = (MT103)context.get(AbstractMT.class); MT103 mt103 = (MT103)context.get(AbstractMT.class);
Field23B field23B = mt103.getField23B(); Field23B field23B = mt103.getField23B();
if (field23B != null) { if (field23B != null) {
ServiceLevel serviceLevel = new ServiceLevel();
String value = field23B.getValue(); String value = field23B.getValue();
if ("CRED".equals(value)) { if ("CRED".equals(value)) {
value = "SDVA"; serviceLevel.setCode(ServiceLevelCode.SDVA);
} else {
serviceLevel.setProprietary(value);
} }
customerCreditTransfer.setBussinessCode(value); customerCreditTransfer.setServiceLevel(serviceLevel);
} }
} catch (Exception e) { } catch (Exception e) {
throw new SwiftException("ERROR", e.getMessage()); throw new SwiftException("ERROR", e.getMessage());
......
...@@ -2,7 +2,12 @@ package com.brilliance.swift.mt2SwiftDto.pacs008001.impl; ...@@ -2,7 +2,12 @@ package com.brilliance.swift.mt2SwiftDto.pacs008001.impl;
import com.brilliance.swift.exception.SwiftException; import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields; import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer; 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.field.Field23E;
import com.prowidesoftware.swift.model.mt.AbstractMT; import com.prowidesoftware.swift.model.mt.AbstractMT;
import com.prowidesoftware.swift.model.mt1xx.MT103; import com.prowidesoftware.swift.model.mt1xx.MT103;
...@@ -19,7 +24,21 @@ public class Pacs00801Parse23EField extends AbstractMt2SwiftDtoParseFields { ...@@ -19,7 +24,21 @@ public class Pacs00801Parse23EField extends AbstractMt2SwiftDtoParseFields {
if (field23EList.size() > 0) { if (field23EList.size() > 0) {
for (int i=0; i<field23EList.size(); i++) { for (int i=0; i<field23EList.size(); i++) {
Field23E field23E = field23EList.get(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) { } catch (Exception e) {
......
...@@ -3,6 +3,7 @@ package com.brilliance.swift.mt2SwiftDto.pacs008001.impl; ...@@ -3,6 +3,7 @@ package com.brilliance.swift.mt2SwiftDto.pacs008001.impl;
import com.brilliance.swift.exception.SwiftException; import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields; import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields;
import com.brilliance.swift.vo.VoCustomerCreditTransfer; 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.field.Field26T;
import com.prowidesoftware.swift.model.mt.AbstractMT; import com.prowidesoftware.swift.model.mt.AbstractMT;
import com.prowidesoftware.swift.model.mt1xx.MT103; import com.prowidesoftware.swift.model.mt1xx.MT103;
...@@ -15,7 +16,9 @@ public class Pacs00801Parse26TField extends AbstractMt2SwiftDtoParseFields { ...@@ -15,7 +16,9 @@ public class Pacs00801Parse26TField extends AbstractMt2SwiftDtoParseFields {
MT103 mt103 = (MT103)context.get(AbstractMT.class); MT103 mt103 = (MT103)context.get(AbstractMT.class);
Field26T field26T = mt103.getField26T(); Field26T field26T = mt103.getField26T();
if (field26T != null) { if (field26T != null) {
customerCreditTransfer.setTxnTypeCode(field26T.getValue()); PurposeChoice purposeChoice = new PurposeChoice();
purposeChoice.setProprietary(field26T.getValue());
customerCreditTransfer.setPurposeChoice(purposeChoice);
} }
} catch (Exception e) { } catch (Exception e) {
throw new SwiftException("ERROR", e.getMessage()); throw new SwiftException("ERROR", e.getMessage());
......
...@@ -3,6 +3,7 @@ package com.brilliance.swift.mt2SwiftDto.pacs008001.impl; ...@@ -3,6 +3,7 @@ package com.brilliance.swift.mt2SwiftDto.pacs008001.impl;
import com.brilliance.swift.exception.SwiftException; import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields; import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields;
import com.brilliance.swift.vo.VoCustomerCreditTransfer; 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.field.Field70;
import com.prowidesoftware.swift.model.mt.AbstractMT; import com.prowidesoftware.swift.model.mt.AbstractMT;
import com.prowidesoftware.swift.model.mt1xx.MT103; import com.prowidesoftware.swift.model.mt1xx.MT103;
...@@ -17,9 +18,13 @@ public class Pacs00801Parse70Field extends AbstractMt2SwiftDtoParseFields { ...@@ -17,9 +18,13 @@ public class Pacs00801Parse70Field extends AbstractMt2SwiftDtoParseFields {
MT103 mt103 = (MT103) context.get(AbstractMT.class); MT103 mt103 = (MT103) context.get(AbstractMT.class);
List<Field70> field70List = mt103.getField70List(); List<Field70> field70List = mt103.getField70List();
if (field70List.size() > 0) { if (field70List.size() > 0) {
RemittanceInformation remittanceInfo = new RemittanceInformation();
String value = "";
for (int i=0; i<field70List.size(); i++) { 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) { } catch (Exception e) {
throw new SwiftException("ERROR", e.getMessage()); throw new SwiftException("ERROR", e.getMessage());
......
...@@ -4,8 +4,9 @@ import com.brilliance.swift.exception.SwiftException; ...@@ -4,8 +4,9 @@ import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields; import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields;
import com.brilliance.swift.util.SwiftTransferUtil; import com.brilliance.swift.util.SwiftTransferUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer; 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.PartyDto;
import com.brilliance.swift.vo.common.Send2ReceInfo;
import com.prowidesoftware.swift.model.field.Field72; import com.prowidesoftware.swift.model.field.Field72;
import com.prowidesoftware.swift.model.mt.AbstractMT; import com.prowidesoftware.swift.model.mt.AbstractMT;
import com.prowidesoftware.swift.model.mt1xx.MT103; import com.prowidesoftware.swift.model.mt1xx.MT103;
...@@ -33,14 +34,16 @@ public class Pacs00801Parse72Field extends AbstractMt2SwiftDtoParseFields { ...@@ -33,14 +34,16 @@ public class Pacs00801Parse72Field extends AbstractMt2SwiftDtoParseFields {
customerCreditTransfer.setPreInstgAgtParty(party); customerCreditTransfer.setPreInstgAgtParty(party);
} }
if (line.startsWith("/ACC/")) { if (line.startsWith("/ACC/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo(); if (customerCreditTransfer.getInstForCrdAgt() == null) {
send2ReceInfo.setInfo(line.substring(5)); InstructionForCreditAgent instForCrdAgt = new InstructionForCreditAgent();
customerCreditTransfer.setInstForCrdAgtInfo(send2ReceInfo); instForCrdAgt.setInstrInf(line.substring(5));
customerCreditTransfer.setInstForCrdAgt(instForCrdAgt);
}
} }
if (line.startsWith("/REC/")) { if (line.startsWith("/REC/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo(); InstructionForNextAgent instForNxtAgt = new InstructionForNextAgent();
send2ReceInfo.setInfo(line.substring(5)); instForNxtAgt.setInstrInf(line.substring(5));
customerCreditTransfer.setInstForNxtAgtInfo(send2ReceInfo); customerCreditTransfer.setInstForNxtAgt(instForNxtAgt);
} }
} }
} }
......
...@@ -64,7 +64,7 @@ public class Mt2SwiftDtoPacs009001Creator extends AbstractMt2SwiftDtoCreator { ...@@ -64,7 +64,7 @@ public class Mt2SwiftDtoPacs009001Creator extends AbstractMt2SwiftDtoCreator {
@Override @Override
public void postProcess() throws SwiftException { public void postProcess() throws SwiftException {
try { 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); VoFinancialInstitutionCreditTransfer financialInstitutionCreditTransfer = context.get(VoFinancialInstitutionCreditTransfer.class);
context.set(Mt2SwiftDtoContextIdentifier.MT_TO_SWIFTDTO_OBJ, financialInstitutionCreditTransfer); context.set(Mt2SwiftDtoContextIdentifier.MT_TO_SWIFTDTO_OBJ, financialInstitutionCreditTransfer);
if (StringUtil.isNotEmpty(outputFilePath)) { if (StringUtil.isNotEmpty(outputFilePath)) {
......
...@@ -4,12 +4,12 @@ import com.brilliance.swift.exception.SwiftException; ...@@ -4,12 +4,12 @@ import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields; import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields;
import com.brilliance.swift.util.SwiftTransferUtil; import com.brilliance.swift.util.SwiftTransferUtil;
import com.brilliance.swift.vo.VoFinancialInstitutionCreditTransfer; import com.brilliance.swift.vo.VoFinancialInstitutionCreditTransfer;
import com.brilliance.swift.vo.common.PartyDto; import com.brilliance.swift.vo.common.*;
import com.brilliance.swift.vo.common.Send2ReceInfo;
import com.prowidesoftware.swift.model.field.Field72; import com.prowidesoftware.swift.model.field.Field72;
import com.prowidesoftware.swift.model.mt.AbstractMT; import com.prowidesoftware.swift.model.mt.AbstractMT;
import com.prowidesoftware.swift.model.mt2xx.MT202; import com.prowidesoftware.swift.model.mt2xx.MT202;
import com.prowidesoftware.swift.model.mt2xx.MT202COV; import com.prowidesoftware.swift.model.mt2xx.MT202COV;
import com.prowidesoftware.swift.model.mx.dic.Instruction4Code;
public class Pacs009001Parse72Field extends AbstractMt2SwiftDtoParseFields { public class Pacs009001Parse72Field extends AbstractMt2SwiftDtoParseFields {
@Override @Override
...@@ -33,38 +33,38 @@ public class Pacs009001Parse72Field extends AbstractMt2SwiftDtoParseFields { ...@@ -33,38 +33,38 @@ public class Pacs009001Parse72Field extends AbstractMt2SwiftDtoParseFields {
financialInstitutionCreditTransfer.setPreInstgAgtParty(party); financialInstitutionCreditTransfer.setPreInstgAgtParty(party);
} }
if (line.startsWith("/ACC/")) { if (line.startsWith("/ACC/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo(); InstructionForCreditAgent instForCrdAgent = new InstructionForCreditAgent();
send2ReceInfo.setInfo(line.substring(5)); instForCrdAgent.setInstrInf(line.substring(5));
financialInstitutionCreditTransfer.setInstForCrdAgtInfo(send2ReceInfo); financialInstitutionCreditTransfer.setInstForCrdAgt(instForCrdAgent);
} }
if (line.startsWith("/PHONBEN/")) { if (line.startsWith("/PHONBEN/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo(); InstructionForCreditAgent instForCrdAgent = new InstructionForCreditAgent();
send2ReceInfo.setCode("TELB"); instForCrdAgent.setCode(ExternalCreditorAgentInstructionCode.TELB);
send2ReceInfo.setInfo(line.substring(9)); instForCrdAgent.setInstrInf(line.substring(9));
financialInstitutionCreditTransfer.setInstForCrdAgtInfo(send2ReceInfo); financialInstitutionCreditTransfer.setInstForCrdAgt(instForCrdAgent);
} }
if (line.startsWith("/REC/")) { if (line.startsWith("/REC/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo(); InstructionForNextAgent instForNxtAgent = new InstructionForNextAgent();
send2ReceInfo.setInfo(line.substring(5)); instForNxtAgent.setInstrInf(line.substring(5));
financialInstitutionCreditTransfer.setInstForNxtAgtInfo(send2ReceInfo); financialInstitutionCreditTransfer.setInstForNxtAgt(instForNxtAgent);
} }
if (line.startsWith("/PHON/")) { if (line.startsWith("/PHON/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo(); InstructionForNextAgent instForNxtAgent = new InstructionForNextAgent();
send2ReceInfo.setCode("PHOA"); instForNxtAgent.setCode(Instruction4Code.PHOA);
send2ReceInfo.setInfo(line.substring(6)); instForNxtAgent.setInstrInf(line.substring(6));
financialInstitutionCreditTransfer.setInstForNxtAgtInfo(send2ReceInfo); financialInstitutionCreditTransfer.setInstForNxtAgt(instForNxtAgent);
} }
if (line.startsWith("/TELE/")) { if (line.startsWith("/TELE/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo(); InstructionForNextAgent instForNxtAgent = new InstructionForNextAgent();
send2ReceInfo.setCode("TELA"); instForNxtAgent.setCode(Instruction4Code.TELA);
send2ReceInfo.setInfo(line.substring(6)); instForNxtAgent.setInstrInf(line.substring(6));
financialInstitutionCreditTransfer.setInstForNxtAgtInfo(send2ReceInfo); financialInstitutionCreditTransfer.setInstForNxtAgt(instForNxtAgent);
} }
if (line.startsWith("/PHONIBK/")) { if (line.startsWith("/PHONIBK/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo(); InstructionForNextAgent instForNxtAgent = new InstructionForNextAgent();
send2ReceInfo.setCode("PHOA"); instForNxtAgent.setCode(Instruction4Code.PHOA);
send2ReceInfo.setInfo(line.substring(8)); instForNxtAgent.setInstrInf(line.substring(8));
financialInstitutionCreditTransfer.setInstForNxtAgtInfo(send2ReceInfo); financialInstitutionCreditTransfer.setInstForNxtAgt(instForNxtAgent);
} }
} }
} }
......
...@@ -4,6 +4,7 @@ import com.brilliance.swift.exception.SwiftException; ...@@ -4,6 +4,7 @@ import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields; import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields;
import com.brilliance.swift.vo.VoCustomerCreditTransfer; import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.VoFinancialInstitutionCreditTransfer; 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.field.Field70;
import com.prowidesoftware.swift.model.mt.AbstractMT; import com.prowidesoftware.swift.model.mt.AbstractMT;
import com.prowidesoftware.swift.model.mt2xx.MT202COV; import com.prowidesoftware.swift.model.mt2xx.MT202COV;
...@@ -23,9 +24,13 @@ public class Pacs009001Parse70Field extends AbstractMt2SwiftDtoParseFields { ...@@ -23,9 +24,13 @@ public class Pacs009001Parse70Field extends AbstractMt2SwiftDtoParseFields {
if (customerCreditTransfer == null) { if (customerCreditTransfer == null) {
customerCreditTransfer = new VoCustomerCreditTransfer(); customerCreditTransfer = new VoCustomerCreditTransfer();
} }
RemittanceInformation remittanceInfo = new RemittanceInformation();
String value = "";
for (int i=0; i<field70List.size(); i++) { 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); financialInstitutionCreditTransfer.setUnderCustomerCreditTransfer(customerCreditTransfer);
} }
} catch (Exception e) { } catch (Exception e) {
......
...@@ -5,8 +5,9 @@ import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields; ...@@ -5,8 +5,9 @@ import com.brilliance.swift.mt2SwiftDto.AbstractMt2SwiftDtoParseFields;
import com.brilliance.swift.util.SwiftTransferUtil; import com.brilliance.swift.util.SwiftTransferUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer; import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.VoFinancialInstitutionCreditTransfer; 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.PartyDto;
import com.brilliance.swift.vo.common.Send2ReceInfo;
import com.prowidesoftware.swift.model.field.Field72; import com.prowidesoftware.swift.model.field.Field72;
import com.prowidesoftware.swift.model.mt.AbstractMT; import com.prowidesoftware.swift.model.mt.AbstractMT;
import com.prowidesoftware.swift.model.mt2xx.MT202COV; import com.prowidesoftware.swift.model.mt2xx.MT202COV;
...@@ -38,14 +39,14 @@ public class Pacs009001Parse72BField extends AbstractMt2SwiftDtoParseFields { ...@@ -38,14 +39,14 @@ public class Pacs009001Parse72BField extends AbstractMt2SwiftDtoParseFields {
customerCreditTransfer.setPreInstgAgtParty(party); customerCreditTransfer.setPreInstgAgtParty(party);
} }
if (line.startsWith("/ACC/")) { if (line.startsWith("/ACC/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo(); InstructionForCreditAgent instForCrdAgt = new InstructionForCreditAgent();
send2ReceInfo.setInfo(line.substring(5)); instForCrdAgt.setInstrInf(line.substring(5));
customerCreditTransfer.setInstForCrdAgtInfo(send2ReceInfo); customerCreditTransfer.setInstForCrdAgt(instForCrdAgt);
} }
if (line.startsWith("/REC/")) { if (line.startsWith("/REC/")) {
Send2ReceInfo send2ReceInfo = new Send2ReceInfo(); InstructionForNextAgent instForNxtAgt = new InstructionForNextAgent();
send2ReceInfo.setInfo(line.substring(5)); instForNxtAgt.setInstrInf(line.substring(5));
customerCreditTransfer.setInstForNxtAgtInfo(send2ReceInfo); customerCreditTransfer.setInstForNxtAgt(instForNxtAgt);
} }
} }
financialInstitutionCreditTransfer.setUnderCustomerCreditTransfer(customerCreditTransfer); 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 { ...@@ -33,7 +33,7 @@ public class SwiftDto2MtCreatorManager {
SwiftDto2MtContext context = new SwiftDto2MtContext(); SwiftDto2MtContext context = new SwiftDto2MtContext();
context.set(SwiftDto2MtContextIdentifier.SWIFT_DTO_OBJ, swiftDto); context.set(SwiftDto2MtContextIdentifier.SWIFT_DTO_OBJ, swiftDto);
context.set(SwiftDto2MtContextIdentifier.MT_OUTPUT_FILE_PATH, fileOutputPath); 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()); AbstractSwiftDto2MtCreator creator = getCreator(swiftDto.getMessageType());
creator.setContext(context); creator.setContext(context);
creator.preProcess(); creator.preProcess();
......
...@@ -3,8 +3,9 @@ package com.brilliance.swift.swiftdto2mt.mt103.impl; ...@@ -3,8 +3,9 @@ package com.brilliance.swift.swiftdto2mt.mt103.impl;
import com.brilliance.swift.exception.SwiftException; import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.swiftdto2mt.AbstractSwiftDto2MtTagGenerate; import com.brilliance.swift.swiftdto2mt.AbstractSwiftDto2MtTagGenerate;
import com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier; import com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer; 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.SwiftMessage;
import com.prowidesoftware.swift.model.Tag; import com.prowidesoftware.swift.model.Tag;
...@@ -20,9 +21,9 @@ public class Tag23BGenerate extends AbstractSwiftDto2MtTagGenerate { ...@@ -20,9 +21,9 @@ public class Tag23BGenerate extends AbstractSwiftDto2MtTagGenerate {
VoCustomerCreditTransfer customerCreditTransfer = (VoCustomerCreditTransfer)context.get(SwiftDto2MtContextIdentifier.SWIFT_DTO_OBJ, true); VoCustomerCreditTransfer customerCreditTransfer = (VoCustomerCreditTransfer)context.get(SwiftDto2MtContextIdentifier.SWIFT_DTO_OBJ, true);
SwiftMessage swiftMessage = context.get(SwiftMessage.class); SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags(); List<Tag> tags = swiftMessage.getBlock4().getTags();
if (StringUtil.isNotEmpty(customerCreditTransfer.getBussinessCode())) { ServiceLevel serviceLevel = customerCreditTransfer.getServiceLevel();
String bussinessCode = customerCreditTransfer.getBussinessCode(); if (serviceLevel != null) {
String value = "SDVA".equals(bussinessCode) ? "CRED" : bussinessCode; String value = ServiceLevelCode.SDVA.equals(serviceLevel.getCode()) ? "CRED" : serviceLevel.getProprietary();
tags.add(new Tag(name, value)); tags.add(new Tag(name, value));
} }
} }
......
...@@ -3,7 +3,12 @@ package com.brilliance.swift.swiftdto2mt.mt103.impl; ...@@ -3,7 +3,12 @@ package com.brilliance.swift.swiftdto2mt.mt103.impl;
import com.brilliance.swift.exception.SwiftException; import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.swiftdto2mt.AbstractSwiftDto2MtTagGenerate; import com.brilliance.swift.swiftdto2mt.AbstractSwiftDto2MtTagGenerate;
import com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier; import com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer; 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.SwiftMessage;
import com.prowidesoftware.swift.model.Tag; import com.prowidesoftware.swift.model.Tag;
...@@ -19,11 +24,21 @@ public class Tag23EGenerate extends AbstractSwiftDto2MtTagGenerate { ...@@ -19,11 +24,21 @@ public class Tag23EGenerate extends AbstractSwiftDto2MtTagGenerate {
VoCustomerCreditTransfer customerCreditTransfer = (VoCustomerCreditTransfer)context.get(SwiftDto2MtContextIdentifier.SWIFT_DTO_OBJ, true); VoCustomerCreditTransfer customerCreditTransfer = (VoCustomerCreditTransfer)context.get(SwiftDto2MtContextIdentifier.SWIFT_DTO_OBJ, true);
SwiftMessage swiftMessage = context.get(SwiftMessage.class); SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags(); List<Tag> tags = swiftMessage.getBlock4().getTags();
List<String> instructionCodeList = customerCreditTransfer.getInstructionCodeList(); ServiceLevel serviceLevel = customerCreditTransfer.getServiceLevel();
if (instructionCodeList.size() > 0) { if (serviceLevel != null && ServiceLevelCode.SDVA.equals(serviceLevel.getCode())) {
for (int i=0; i<instructionCodeList.size(); i++) { tags.add(new Tag(name, serviceLevel.getCode().value()));
tags.add(new Tag(name, instructionCodeList.get(i))); }
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; ...@@ -5,6 +5,7 @@ import com.brilliance.swift.swiftdto2mt.AbstractSwiftDto2MtTagGenerate;
import com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier; import com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier;
import com.brilliance.swift.util.StringUtil; import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer; import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.common.PurposeChoice;
import com.prowidesoftware.swift.model.SwiftMessage; import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag; import com.prowidesoftware.swift.model.Tag;
...@@ -20,8 +21,9 @@ public class Tag26TGenerate extends AbstractSwiftDto2MtTagGenerate { ...@@ -20,8 +21,9 @@ public class Tag26TGenerate extends AbstractSwiftDto2MtTagGenerate {
VoCustomerCreditTransfer customerCreditTransfer = (VoCustomerCreditTransfer)context.get(SwiftDto2MtContextIdentifier.SWIFT_DTO_OBJ, true); VoCustomerCreditTransfer customerCreditTransfer = (VoCustomerCreditTransfer)context.get(SwiftDto2MtContextIdentifier.SWIFT_DTO_OBJ, true);
SwiftMessage swiftMessage = context.get(SwiftMessage.class); SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags(); List<Tag> tags = swiftMessage.getBlock4().getTags();
if (StringUtil.isNotEmpty(customerCreditTransfer.getTxnTypeCode())) { PurposeChoice purposeChoice = customerCreditTransfer.getPurposeChoice();
tags.add(new Tag(name, customerCreditTransfer.getTxnTypeCode())); if (purposeChoice != null && StringUtil.isNotEmpty(purposeChoice.getProprietary())) {
tags.add(new Tag(name, purposeChoice.getProprietary()));
} }
} }
} }
package com.brilliance.swift.swiftdto2mt.mt103.impl; package com.brilliance.swift.swiftdto2mt.mt103.impl;
import com.brilliance.swift.constants.Mx2MtConstants;
import com.brilliance.swift.exception.SwiftException; import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.swiftdto2mt.AbstractSwiftDto2MtTagGenerate; import com.brilliance.swift.swiftdto2mt.AbstractSwiftDto2MtTagGenerate;
import com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier; import com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer; import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.common.RemittanceInformation;
import com.prowidesoftware.swift.model.SwiftMessage; import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag; import com.prowidesoftware.swift.model.Tag;
...@@ -19,33 +20,10 @@ public class Tag70Generate extends AbstractSwiftDto2MtTagGenerate { ...@@ -19,33 +20,10 @@ public class Tag70Generate extends AbstractSwiftDto2MtTagGenerate {
VoCustomerCreditTransfer customerCreditTransfer = (VoCustomerCreditTransfer)context.get(SwiftDto2MtContextIdentifier.SWIFT_DTO_OBJ, true); VoCustomerCreditTransfer customerCreditTransfer = (VoCustomerCreditTransfer)context.get(SwiftDto2MtContextIdentifier.SWIFT_DTO_OBJ, true);
SwiftMessage swiftMessage = context.get(SwiftMessage.class); SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags(); List<Tag> tags = swiftMessage.getBlock4().getTags();
List<String> remittanceInfoList = customerCreditTransfer.getRemittanceInfoList(); RemittanceInformation remittanceInfo = customerCreditTransfer.getRemittanceInfo();
if (remittanceInfoList.size() > 0) { if (remittanceInfo != null && remittanceInfo.getUnstructured().size() > 0) {
String value = ""; String value = StringUtil.getStringByEnter(remittanceInfo.getUnstructured().get(0), 35, 4);
for (int i=0; i<remittanceInfoList.size(); i++) {
if (i==0) {
value += remittanceInfoList.get(i);
} else {
value += Mx2MtConstants.NEW_LINE + remittanceInfoList.get(i);
}
}
tags.add(new Tag(name, value)); 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; ...@@ -6,8 +6,9 @@ import com.brilliance.swift.swiftdto2mt.AbstractSwiftDto2MtTagGenerate;
import com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier; import com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier;
import com.brilliance.swift.util.StringUtil; import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer; 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.PartyDto;
import com.brilliance.swift.vo.common.Send2ReceInfo;
import com.prowidesoftware.swift.model.SwiftMessage; import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag; import com.prowidesoftware.swift.model.Tag;
...@@ -36,14 +37,14 @@ public class Tag72Generate extends AbstractSwiftDto2MtTagGenerate { ...@@ -36,14 +37,14 @@ public class Tag72Generate extends AbstractSwiftDto2MtTagGenerate {
list.addAll(StringUtil.outStringList(name, 35, "//")); list.addAll(StringUtil.outStringList(name, 35, "//"));
} }
} }
Send2ReceInfo instForCrdAgtInfo = customerCreditTransfer.getInstForCrdAgtInfo(); InstructionForCreditAgent instForCrdAgt = customerCreditTransfer.getInstForCrdAgt();
if (instForCrdAgtInfo != null) { if (instForCrdAgt != null && StringUtil.isNotEmpty(instForCrdAgt.getInstrInf())) {
String instrInfo = Mx2MtConstants.ACC + instForCrdAgtInfo.getInfo(); String instrInfo = Mx2MtConstants.ACC + instForCrdAgt.getInstrInf();
list.addAll(StringUtil.outStringList(instrInfo, 35, "//")); list.addAll(StringUtil.outStringList(instrInfo, 35, "//"));
} }
Send2ReceInfo instForNxtAgtInfo = customerCreditTransfer.getInstForNxtAgtInfo(); InstructionForNextAgent instForNxtAgt = customerCreditTransfer.getInstForNxtAgt();
if (instForNxtAgtInfo != null) { if (instForNxtAgt != null && StringUtil.isNotEmpty(instForNxtAgt.getInstrInf())) {
String instrInfo = Mx2MtConstants.REC + instForNxtAgtInfo.getInfo(); String instrInfo = Mx2MtConstants.REC + instForNxtAgt.getInstrInf();
list.addAll(StringUtil.outStringList(instrInfo, 35, "//")); list.addAll(StringUtil.outStringList(instrInfo, 35, "//"));
} }
String value = ""; String value = "";
......
package com.brilliance.swift.swiftdto2mx; package com.brilliance.swift.swiftdto2mx;
import com.brilliance.swift.util.StringUtil; import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.common.ClearingSystemMember; import com.brilliance.swift.vo.common.*;
import com.brilliance.swift.vo.common.PartyAccount;
import com.brilliance.swift.vo.common.PartyDto;
import com.prowidesoftware.swift.model.mx.dic.*; import com.prowidesoftware.swift.model.mx.dic.*;
public abstract class AbstractSwiftDto2MxCreator implements SwiftDto2MxCreator{ public abstract class AbstractSwiftDto2MxCreator implements SwiftDto2MxCreator{
...@@ -49,16 +47,21 @@ public abstract class AbstractSwiftDto2MxCreator implements SwiftDto2MxCreator{ ...@@ -49,16 +47,21 @@ public abstract class AbstractSwiftDto2MxCreator implements SwiftDto2MxCreator{
CashAccount38 cashAccount38 = null; CashAccount38 cashAccount38 = null;
String ibanAcct = partyAcct.getIbanAcct(); String ibanAcct = partyAcct.getIbanAcct();
String account = partyAcct.getAccount(); String account = partyAcct.getAccount();
String acctType = partyAcct.getAcctType();
if (StringUtil.isNotEmpty(ibanAcct) || StringUtil.isNotEmpty(account)) { if (StringUtil.isNotEmpty(ibanAcct) || StringUtil.isNotEmpty(account)) {
cashAccount38 = new CashAccount38(); cashAccount38 = new CashAccount38();
cashAccount38.setCcy(partyAcct.getAcctCcy());
cashAccount38.setNm(partyAcct.getAcctName());
AccountIdentification4Choice id = new AccountIdentification4Choice(); AccountIdentification4Choice id = new AccountIdentification4Choice();
if (StringUtil.isNotEmpty(account)) { if (StringUtil.isNotEmpty(account)) {
GenericAccountIdentification1 othr = new GenericAccountIdentification1(); GenericAccountIdentification1 othr = new GenericAccountIdentification1();
othr.setId(account); othr.setId(account);
if (StringUtil.isNotEmpty(acctType)) { AcctSchemeType acctSehemeType = partyAcct.getAcctSehemeType();
if (acctSehemeType != null) {
AccountSchemeName1Choice schmeNm = new AccountSchemeName1Choice(); AccountSchemeName1Choice schmeNm = new AccountSchemeName1Choice();
schmeNm.setCd(acctType); if (acctSehemeType.getCode() != null) {
schmeNm.setCd(acctSehemeType.getCode().value());
}
schmeNm.setPrtry(acctSehemeType.getProprietary());
othr.setSchmeNm(schmeNm); othr.setSchmeNm(schmeNm);
} }
id.setOthr(othr); id.setOthr(othr);
...@@ -66,8 +69,16 @@ public abstract class AbstractSwiftDto2MxCreator implements SwiftDto2MxCreator{ ...@@ -66,8 +69,16 @@ public abstract class AbstractSwiftDto2MxCreator implements SwiftDto2MxCreator{
if (StringUtil.isNotEmpty(ibanAcct)) { if (StringUtil.isNotEmpty(ibanAcct)) {
id.setIBAN(ibanAcct); id.setIBAN(ibanAcct);
} }
cashAccount38.setId(id); 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; return cashAccount38;
} }
......
...@@ -4,28 +4,9 @@ import com.brilliance.swift.exception.SwiftException; ...@@ -4,28 +4,9 @@ import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.swiftdto2mx.pacs008001.v09.SwiftDto2MxPacs008001Creator; import com.brilliance.swift.swiftdto2mx.pacs008001.v09.SwiftDto2MxPacs008001Creator;
import com.brilliance.swift.swiftdto2mx.pacs009001.v09.SwiftDto2MxPacs009001Creator; import com.brilliance.swift.swiftdto2mx.pacs009001.v09.SwiftDto2MxPacs009001Creator;
import com.brilliance.swift.vo.SwiftDto; import com.brilliance.swift.vo.SwiftDto;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class SwiftDto2MxCreatorManager { 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 { public String swiftDto2Mx(SwiftDto swiftDto, String fileOutputPath) throws SwiftException {
SwiftDto2MxContext context = new SwiftDto2MxContext(); SwiftDto2MxContext context = new SwiftDto2MxContext();
context.set(SwiftDto2MxContextIdentifier.SWIFT_DTO_OBJ, swiftDto); context.set(SwiftDto2MxContextIdentifier.SWIFT_DTO_OBJ, swiftDto);
......
...@@ -7,6 +7,7 @@ import com.brilliance.swift.util.DateUtil; ...@@ -7,6 +7,7 @@ import com.brilliance.swift.util.DateUtil;
import com.brilliance.swift.util.StringUtil; import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer; import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.common.*; 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.BusinessAppHdrV02;
import com.prowidesoftware.swift.model.mx.MxPacs00800109; import com.prowidesoftware.swift.model.mx.MxPacs00800109;
import com.prowidesoftware.swift.model.mx.dic.*; import com.prowidesoftware.swift.model.mx.dic.*;
...@@ -134,25 +135,29 @@ public class SwiftDto2MxPacs008001Creator extends AbstractSwiftDto2MxCreator { ...@@ -134,25 +135,29 @@ public class SwiftDto2MxPacs008001Creator extends AbstractSwiftDto2MxCreator {
} }
cdtTrfTxInf.setSttlmTmReq(sttlmTmReq); cdtTrfTxInf.setSttlmTmReq(sttlmTmReq);
//PmtTpInf //PmtTpInf (SvcLvl/CtgyPurp)
String businessCode = customerCreditTransfer.getBussinessCode(); ServiceLevel serviceLevel = customerCreditTransfer.getServiceLevel();
if (StringUtil.isNotEmpty(businessCode)) { CategoryPurpose categoryPurpose = customerCreditTransfer.getCategoryPurpose();
if (serviceLevel != null || categoryPurpose != null) {
PaymentTypeInformation28 pmtTpInf = new PaymentTypeInformation28(); PaymentTypeInformation28 pmtTpInf = new PaymentTypeInformation28();
ServiceLevel8Choice svcLvl = new ServiceLevel8Choice(); ServiceLevel8Choice svcLvl = new ServiceLevel8Choice();
if ("SDVA".equals(businessCode)) { svcLvl.setCd(serviceLevel.getCode().value());
svcLvl.setCd(businessCode); svcLvl.setPrtry(serviceLevel.getProprietary());
} else {
svcLvl.setPrtry(businessCode);
}
pmtTpInf.addSvcLvl(svcLvl); pmtTpInf.addSvcLvl(svcLvl);
CategoryPurpose1Choice ctgyPurp = new CategoryPurpose1Choice();
ctgyPurp.setCd(categoryPurpose.getCode().value());
ctgyPurp.setPrtry(categoryPurpose.getProprietary());
pmtTpInf.setCtgyPurp(ctgyPurp);
cdtTrfTxInf.setPmtTpInf(pmtTpInf); cdtTrfTxInf.setPmtTpInf(pmtTpInf);
} }
//Purp //Purp
String txnTypeCode = customerCreditTransfer.getTxnTypeCode(); PurposeChoice purposeChoice = customerCreditTransfer.getPurposeChoice();
if (StringUtil.isNotEmpty(txnTypeCode)) { if (purposeChoice != null) {
Purpose2Choice purp = new Purpose2Choice(); Purpose2Choice purp = new Purpose2Choice();
purp.setPrtry(txnTypeCode); purp.setCd(purposeChoice.getCode());
purp.setPrtry(purposeChoice.getProprietary());
cdtTrfTxInf.setPurp(purp); cdtTrfTxInf.setPurp(purp);
} }
...@@ -227,14 +232,12 @@ public class SwiftDto2MxPacs008001Creator extends AbstractSwiftDto2MxCreator { ...@@ -227,14 +232,12 @@ public class SwiftDto2MxPacs008001Creator extends AbstractSwiftDto2MxCreator {
} }
//RmtInf //RmtInf
List<String> remittanceInfolist = customerCreditTransfer.getRemittanceInfoList(); RemittanceInformation remittanceInfo = customerCreditTransfer.getRemittanceInfo();
if (remittanceInfolist != null && remittanceInfolist.size() > 0) { if (remittanceInfo != null && remittanceInfo.getUnstructured().size() > 0) {
RemittanceInformation16 rmtInf = new RemittanceInformation16(); RemittanceInformation16 rmtInf = new RemittanceInformation16();
String ustrd = ""; for (String remitInfo : remittanceInfo.getUnstructured()) {
for (String remittanceInfo : remittanceInfolist) { rmtInf.addUstrd(remitInfo);
ustrd += remittanceInfo;
} }
rmtInf.addUstrd(ustrd);
cdtTrfTxInf.setRmtInf(rmtInf); cdtTrfTxInf.setRmtInf(rmtInf);
} }
...@@ -268,20 +271,18 @@ public class SwiftDto2MxPacs008001Creator extends AbstractSwiftDto2MxCreator { ...@@ -268,20 +271,18 @@ public class SwiftDto2MxPacs008001Creator extends AbstractSwiftDto2MxCreator {
prvsInstgAgt1.setFinInstnId(finInstnId); prvsInstgAgt1.setFinInstnId(finInstnId);
cdtTrfTxInf.setPrvsInstgAgt1(prvsInstgAgt1); cdtTrfTxInf.setPrvsInstgAgt1(prvsInstgAgt1);
} }
Send2ReceInfo instForCrdAgtInfo = customerCreditTransfer.getInstForCrdAgtInfo(); InstructionForCreditAgent instForCrdAgt = customerCreditTransfer.getInstForCrdAgt();
if (instForCrdAgtInfo != null) { if (instForCrdAgt != null) {
InstructionForCreditorAgent3 instructionForCreditorAgent3 = new InstructionForCreditorAgent3(); InstructionForCreditorAgent3 instructionForCreditorAgent3 = new InstructionForCreditorAgent3();
instructionForCreditorAgent3.setCd(instForCrdAgtInfo.getCode()); instructionForCreditorAgent3.setCd(instForCrdAgt.getCode().value());
instructionForCreditorAgent3.setInstrInf(instForCrdAgtInfo.getInfo()); instructionForCreditorAgent3.setInstrInf(instForCrdAgt.getInstrInf());
cdtTrfTxInf.addInstrForCdtrAgt(instructionForCreditorAgent3); cdtTrfTxInf.addInstrForCdtrAgt(instructionForCreditorAgent3);
} }
Send2ReceInfo instForNxtAgtInfo = customerCreditTransfer.getInstForNxtAgtInfo(); InstructionForNextAgent instForNxtAgt = customerCreditTransfer.getInstForNxtAgt();
if (instForNxtAgtInfo != null) { if (instForNxtAgt != null) {
InstructionForNextAgent1 instructionForNextAgent1 = new InstructionForNextAgent1(); InstructionForNextAgent1 instructionForNextAgent1 = new InstructionForNextAgent1();
if (StringUtil.isNotEmpty(instForNxtAgtInfo.getCode())) { instructionForNextAgent1.setCd(instForNxtAgt.getCode());
instructionForNextAgent1.setCd(Instruction4Code.valueOf(instForNxtAgtInfo.getCode())); instructionForNextAgent1.setInstrInf(instForNxtAgt.getInstrInf());
}
instructionForNextAgent1.setInstrInf(instForNxtAgtInfo.getInfo());
cdtTrfTxInf.addInstrForNxtAgt(instructionForNextAgent1); cdtTrfTxInf.addInstrForNxtAgt(instructionForNextAgent1);
} }
//RgltryRptg //RgltryRptg
......
...@@ -7,10 +7,7 @@ import com.brilliance.swift.util.DateUtil; ...@@ -7,10 +7,7 @@ import com.brilliance.swift.util.DateUtil;
import com.brilliance.swift.util.StringUtil; import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.VoCustomerCreditTransfer; import com.brilliance.swift.vo.VoCustomerCreditTransfer;
import com.brilliance.swift.vo.VoFinancialInstitutionCreditTransfer; import com.brilliance.swift.vo.VoFinancialInstitutionCreditTransfer;
import com.brilliance.swift.vo.common.CcyFormatAmount; import com.brilliance.swift.vo.common.*;
import com.brilliance.swift.vo.common.MessagePriority;
import com.brilliance.swift.vo.common.PartyDto;
import com.brilliance.swift.vo.common.Send2ReceInfo;
import com.prowidesoftware.swift.model.mx.BusinessAppHdrV02; import com.prowidesoftware.swift.model.mx.BusinessAppHdrV02;
import com.prowidesoftware.swift.model.mx.MxPacs00900109; import com.prowidesoftware.swift.model.mx.MxPacs00900109;
import com.prowidesoftware.swift.model.mx.dic.*; import com.prowidesoftware.swift.model.mx.dic.*;
...@@ -20,7 +17,6 @@ import javax.xml.datatype.XMLGregorianCalendar; ...@@ -20,7 +17,6 @@ import javax.xml.datatype.XMLGregorianCalendar;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.text.ParseException; import java.text.ParseException;
import java.util.List;
public class SwiftDto2MxPacs009001Creator extends AbstractSwiftDto2MxCreator { public class SwiftDto2MxPacs009001Creator extends AbstractSwiftDto2MxCreator {
@Override @Override
...@@ -185,20 +181,18 @@ public class SwiftDto2MxPacs009001Creator extends AbstractSwiftDto2MxCreator { ...@@ -185,20 +181,18 @@ public class SwiftDto2MxPacs009001Creator extends AbstractSwiftDto2MxCreator {
prvsInstgAgt1.setFinInstnId(finInstnId); prvsInstgAgt1.setFinInstnId(finInstnId);
cdtTrfTxInf.setPrvsInstgAgt1(prvsInstgAgt1); cdtTrfTxInf.setPrvsInstgAgt1(prvsInstgAgt1);
} }
Send2ReceInfo instForCrdAgtInfo = financialInstitutionCreditTransfer.getInstForCrdAgtInfo(); InstructionForCreditAgent instForCrdAgt = financialInstitutionCreditTransfer.getInstForCrdAgt();
if (instForCrdAgtInfo != null) { if (instForCrdAgt != null) {
InstructionForCreditorAgent3 instructionForCreditorAgent3 = new InstructionForCreditorAgent3(); InstructionForCreditorAgent3 instructionForCreditorAgent3 = new InstructionForCreditorAgent3();
instructionForCreditorAgent3.setCd(instForCrdAgtInfo.getCode()); instructionForCreditorAgent3.setCd(instForCrdAgt.getCode().value());
instructionForCreditorAgent3.setInstrInf(instForCrdAgtInfo.getInfo()); instructionForCreditorAgent3.setInstrInf(instForCrdAgt.getInstrInf());
cdtTrfTxInf.addInstrForCdtrAgt(instructionForCreditorAgent3); cdtTrfTxInf.addInstrForCdtrAgt(instructionForCreditorAgent3);
} }
Send2ReceInfo instForNxtAgtInfo = financialInstitutionCreditTransfer.getInstForNxtAgtInfo(); InstructionForNextAgent instForNxtAgt = financialInstitutionCreditTransfer.getInstForNxtAgt();
if (instForNxtAgtInfo != null) { if (instForNxtAgt != null) {
InstructionForNextAgent1 instructionForNextAgent1 = new InstructionForNextAgent1(); InstructionForNextAgent1 instructionForNextAgent1 = new InstructionForNextAgent1();
if (StringUtil.isNotEmpty(instForNxtAgtInfo.getCode())) { instructionForNextAgent1.setCd(instForNxtAgt.getCode());
instructionForNextAgent1.setCd(Instruction4Code.valueOf(instForNxtAgtInfo.getCode())); instructionForNextAgent1.setInstrInf(instForNxtAgt.getInstrInf());
}
instructionForNextAgent1.setInstrInf(instForNxtAgtInfo.getInfo());
cdtTrfTxInf.addInstrForNxtAgt(instructionForNextAgent1); cdtTrfTxInf.addInstrForNxtAgt(instructionForNextAgent1);
} }
//cover //cover
...@@ -261,14 +255,12 @@ public class SwiftDto2MxPacs009001Creator extends AbstractSwiftDto2MxCreator { ...@@ -261,14 +255,12 @@ public class SwiftDto2MxPacs009001Creator extends AbstractSwiftDto2MxCreator {
undrlygCstmrCdtTrf.setCdtrAcct(cdtrAcct); undrlygCstmrCdtTrf.setCdtrAcct(cdtrAcct);
} }
//RmtInf //RmtInf
List<String> remittanceInfolist = customerCreditTransfer.getRemittanceInfoList(); RemittanceInformation remittanceInfo1 = customerCreditTransfer.getRemittanceInfo();
if (remittanceInfolist != null && remittanceInfolist.size() > 0) { if (remittanceInfo1 != null && remittanceInfo1.getUnstructured().size() > 0) {
RemittanceInformation16 rmtInf = new RemittanceInformation16(); RemittanceInformation16 rmtInf = new RemittanceInformation16();
String ustrd = ""; for (String remittanceInfo : remittanceInfo1.getUnstructured()) {
for (String remittanceInfo : remittanceInfolist) { rmtInf.addUstrd(remittanceInfo);
ustrd += remittanceInfo;
} }
rmtInf.addUstrd(ustrd);
undrlygCstmrCdtTrf.setRmtInf(rmtInf); undrlygCstmrCdtTrf.setRmtInf(rmtInf);
} }
//PrvsInstgAgt1 InstrForCdtrAgt InstrForNxtAgt //PrvsInstgAgt1 InstrForCdtrAgt InstrForNxtAgt
...@@ -281,20 +273,18 @@ public class SwiftDto2MxPacs009001Creator extends AbstractSwiftDto2MxCreator { ...@@ -281,20 +273,18 @@ public class SwiftDto2MxPacs009001Creator extends AbstractSwiftDto2MxCreator {
prvsInstgAgt1.setFinInstnId(finInstnId); prvsInstgAgt1.setFinInstnId(finInstnId);
undrlygCstmrCdtTrf.setPrvsInstgAgt1(prvsInstgAgt1); undrlygCstmrCdtTrf.setPrvsInstgAgt1(prvsInstgAgt1);
} }
Send2ReceInfo underInstForCrdAgtInfo = customerCreditTransfer.getInstForCrdAgtInfo(); InstructionForCreditAgent underInstForCrdAgt = customerCreditTransfer.getInstForCrdAgt();
if (underInstForCrdAgtInfo != null) { if (underInstForCrdAgt != null) {
InstructionForCreditorAgent3 instructionForCreditorAgent3 = new InstructionForCreditorAgent3(); InstructionForCreditorAgent3 instructionForCreditorAgent3 = new InstructionForCreditorAgent3();
instructionForCreditorAgent3.setCd(underInstForCrdAgtInfo.getCode()); instructionForCreditorAgent3.setCd(underInstForCrdAgt.getCode().value());
instructionForCreditorAgent3.setInstrInf(underInstForCrdAgtInfo.getInfo()); instructionForCreditorAgent3.setInstrInf(underInstForCrdAgt.getInstrInf());
undrlygCstmrCdtTrf.addInstrForCdtrAgt(instructionForCreditorAgent3); undrlygCstmrCdtTrf.addInstrForCdtrAgt(instructionForCreditorAgent3);
} }
Send2ReceInfo underInstForNxtAgtInfo = customerCreditTransfer.getInstForNxtAgtInfo(); InstructionForNextAgent underInstForNxtAgt = customerCreditTransfer.getInstForNxtAgt();
if (underInstForNxtAgtInfo != null) { if (underInstForNxtAgt != null) {
InstructionForNextAgent1 instructionForNextAgent1 = new InstructionForNextAgent1(); InstructionForNextAgent1 instructionForNextAgent1 = new InstructionForNextAgent1();
if (StringUtil.isNotEmpty(underInstForNxtAgtInfo.getCode())) { instructionForNextAgent1.setCd(underInstForNxtAgt.getCode());
instructionForNextAgent1.setCd(Instruction4Code.valueOf(underInstForNxtAgtInfo.getCode())); instructionForNextAgent1.setInstrInf(underInstForNxtAgt.getInstrInf());
}
instructionForNextAgent1.setInstrInf(underInstForNxtAgtInfo.getInfo());
undrlygCstmrCdtTrf.addInstrForNxtAgt(instructionForNextAgent1); undrlygCstmrCdtTrf.addInstrForNxtAgt(instructionForNextAgent1);
} }
} }
......
...@@ -366,9 +366,9 @@ public abstract class StringUtil { ...@@ -366,9 +366,9 @@ public abstract class StringUtil {
* @param rows 最多行数 * @param rows 最多行数
* @param string 需换行的字符串 * @param string 需换行的字符串
* @return * @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)) if (StringUtils.isEmpty(string))
return string; return string;
if (--rows <= 0) { if (--rows <= 0) {
......
...@@ -18,11 +18,11 @@ public class VoCustomerCreditTransfer extends SwiftDto { ...@@ -18,11 +18,11 @@ public class VoCustomerCreditTransfer extends SwiftDto {
protected Date clsDate; 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; protected Date settledDate;
...@@ -50,7 +50,7 @@ public class VoCustomerCreditTransfer extends SwiftDto { ...@@ -50,7 +50,7 @@ public class VoCustomerCreditTransfer extends SwiftDto {
protected PartyDto creditParty; protected PartyDto creditParty;
protected List<String> remittanceInfos; protected RemittanceInformation remittanceInfo;
protected ChargeForEnum chargeFor; protected ChargeForEnum chargeFor;
...@@ -58,9 +58,9 @@ public class VoCustomerCreditTransfer extends SwiftDto { ...@@ -58,9 +58,9 @@ public class VoCustomerCreditTransfer extends SwiftDto {
protected PartyDto preInstgAgtParty; protected PartyDto preInstgAgtParty;
protected Send2ReceInfo instForCrdAgtInfo; protected InstructionForCreditAgent instForCrdAgt;
protected Send2ReceInfo instForNxtAgtInfo; protected InstructionForNextAgent instForNxtAgt;
protected List<String> regulatoryReportings; protected List<String> regulatoryReportings;
...@@ -88,20 +88,12 @@ public class VoCustomerCreditTransfer extends SwiftDto { ...@@ -88,20 +88,12 @@ public class VoCustomerCreditTransfer extends SwiftDto {
this.clsDate = clsDate; this.clsDate = clsDate;
} }
public String getBussinessCode() { public ServiceLevel getServiceLevel() {
return bussinessCode; return serviceLevel;
} }
public void setBussinessCode(String bussinessCode) { public void setServiceLevel(ServiceLevel serviceLevel) {
this.bussinessCode = bussinessCode; this.serviceLevel = serviceLevel;
}
public String getTxnTypeCode() {
return txnTypeCode;
}
public void setTxnTypeCode(String txnTypeCode) {
this.txnTypeCode = txnTypeCode;
} }
public Date getSettledDate() { public Date getSettledDate() {
...@@ -152,30 +144,6 @@ public class VoCustomerCreditTransfer extends SwiftDto { ...@@ -152,30 +144,6 @@ public class VoCustomerCreditTransfer extends SwiftDto {
this.chargeCcyFormatAmount = chargeCcyFormatAmount; 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() { public List<String> getRegulatoryReportingList() {
if (regulatoryReportings == null) { if (regulatoryReportings == null) {
regulatoryReportings = new ArrayList<>(); regulatoryReportings = new ArrayList<>();
...@@ -268,19 +236,43 @@ public class VoCustomerCreditTransfer extends SwiftDto { ...@@ -268,19 +236,43 @@ public class VoCustomerCreditTransfer extends SwiftDto {
this.preInstgAgtParty = preInstgAgtParty; this.preInstgAgtParty = preInstgAgtParty;
} }
public Send2ReceInfo getInstForCrdAgtInfo() { public CategoryPurpose getCategoryPurpose() {
return instForCrdAgtInfo; 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) { public void setInstForCrdAgt(InstructionForCreditAgent instForCrdAgt) {
this.instForCrdAgtInfo = instForCrdAgtInfo; this.instForCrdAgt = instForCrdAgt;
} }
public Send2ReceInfo getInstForNxtAgtInfo() { public InstructionForNextAgent getInstForNxtAgt() {
return instForNxtAgtInfo; return instForNxtAgt;
} }
public void setInstForNxtAgtInfo(Send2ReceInfo instForNxtAgtInfo) { public void setInstForNxtAgt(InstructionForNextAgent instForNxtAgt) {
this.instForNxtAgtInfo = instForNxtAgtInfo; this.instForNxtAgt = instForNxtAgt;
} }
} }
package com.brilliance.swift.vo; package com.brilliance.swift.vo;
import com.brilliance.swift.vo.common.CcyFormatAmount; import com.brilliance.swift.vo.common.*;
import com.brilliance.swift.vo.common.PartyAccount;
import com.brilliance.swift.vo.common.PartyDto;
import com.brilliance.swift.vo.common.Send2ReceInfo;
import java.util.Date; import java.util.Date;
...@@ -40,9 +37,9 @@ public class VoFinancialInstitutionCreditTransfer extends SwiftDto{ ...@@ -40,9 +37,9 @@ public class VoFinancialInstitutionCreditTransfer extends SwiftDto{
protected PartyDto preInstgAgtParty; protected PartyDto preInstgAgtParty;
protected Send2ReceInfo instForCrdAgtInfo; protected InstructionForCreditAgent instForCrdAgt;
protected Send2ReceInfo instForNxtAgtInfo; protected InstructionForNextAgent instForNxtAgt;
/** /**
* Underlying Customer Credit Transfer * Underlying Customer Credit Transfer
...@@ -161,20 +158,20 @@ public class VoFinancialInstitutionCreditTransfer extends SwiftDto{ ...@@ -161,20 +158,20 @@ public class VoFinancialInstitutionCreditTransfer extends SwiftDto{
this.preInstgAgtParty = preInstgAgtParty; this.preInstgAgtParty = preInstgAgtParty;
} }
public Send2ReceInfo getInstForCrdAgtInfo() { public InstructionForCreditAgent getInstForCrdAgt() {
return instForCrdAgtInfo; return instForCrdAgt;
} }
public void setInstForCrdAgtInfo(Send2ReceInfo instForCrdAgtInfo) { public void setInstForCrdAgt(InstructionForCreditAgent instForCrdAgt) {
this.instForCrdAgtInfo = instForCrdAgtInfo; this.instForCrdAgt = instForCrdAgt;
} }
public Send2ReceInfo getInstForNxtAgtInfo() { public InstructionForNextAgent getInstForNxtAgt() {
return instForNxtAgtInfo; return instForNxtAgt;
} }
public void setInstForNxtAgtInfo(Send2ReceInfo instForNxtAgtInfo) { public void setInstForNxtAgt(InstructionForNextAgent instForNxtAgt) {
this.instForNxtAgtInfo = instForNxtAgtInfo; this.instForNxtAgt = instForNxtAgt;
} }
public VoCustomerCreditTransfer getUnderCustomerCreditTransfer() { 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 { ...@@ -4,6 +4,8 @@ public class ClearingSystemMember {
private String code; private String code;
private String proprietary;
private String id; private String id;
public String getCode() { public String getCode() {
...@@ -14,6 +16,14 @@ public class ClearingSystemMember { ...@@ -14,6 +16,14 @@ public class ClearingSystemMember {
this.code = code; this.code = code;
} }
public String getProprietary() {
return proprietary;
}
public void setProprietary(String proprietary) {
this.proprietary = proprietary;
}
public String getId() { public String getId() {
return id; 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 { ...@@ -18,7 +18,9 @@ public class PartyAccount {
private String acctName; private String acctName;
private String acctType; private AcctType acctType;
private AcctSchemeType acctSehemeType;
public String getAccount() { public String getAccount() {
return account; return account;
...@@ -52,11 +54,19 @@ public class PartyAccount { ...@@ -52,11 +54,19 @@ public class PartyAccount {
this.acctName = acctName; this.acctName = acctName;
} }
public String getAcctType() { public AcctType getAcctType() {
return acctType; return acctType;
} }
public void setAcctType(String acctType) { public void setAcctType(AcctType acctType) {
this.acctType = acctType; this.acctType = acctType;
} }
public AcctSchemeType getAcctSehemeType() {
return acctSehemeType;
}
public void setAcctSehemeType(AcctSchemeType acctSehemeType) {
this.acctSehemeType = acctSehemeType;
}
} }
package com.brilliance.swift.vo.common; package com.brilliance.swift.vo.common;
public enum PartyTypeEnum { public enum PartyTypeCode {
OC("Ordering Customer"), OC("Ordering Customer"),
...@@ -18,7 +18,7 @@ public enum PartyTypeEnum { ...@@ -18,7 +18,7 @@ public enum PartyTypeEnum {
BC("Beneficiary Customer"); BC("Beneficiary Customer");
PartyTypeEnum(String s) {} PartyTypeCode(String s) {}
public String value() { public String value() {
return name(); return name();
......
package com.brilliance.swift.vo.common; package com.brilliance.swift.vo.common;
public class Send2ReceInfo { public class PurposeChoice {
private String code; private String code;
private String info; private String proprietary;
public String getCode() { public String getCode() {
return code; return code;
...@@ -14,11 +14,11 @@ public class Send2ReceInfo { ...@@ -14,11 +14,11 @@ public class Send2ReceInfo {
this.code = code; this.code = code;
} }
public String getInfo() { public String getProprietary() {
return info; return proprietary;
} }
public void setInfo(String info) { public void setProprietary(String proprietary) {
this.info = info; 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 @@ ...@@ -71,12 +71,12 @@
<Doc:CLSTm>2022-03-13T21:21:42.112+07:00</Doc:CLSTm> <Doc:CLSTm>2022-03-13T21:21:42.112+07:00</Doc:CLSTm>
</Doc:SttlmTmReq> </Doc:SttlmTmReq>
<Doc:InstrForCdtrAgt> <Doc:InstrForCdtrAgt>
<Doc:Cd>GHJK</Doc:Cd> <Doc:Cd>TELB</Doc:Cd>
<Doc:InstrInf>789556</Doc:InstrInf> <Doc:InstrInf>789556</Doc:InstrInf>
</Doc:InstrForCdtrAgt> </Doc:InstrForCdtrAgt>
<Doc:PmtTpInf> <Doc:PmtTpInf>
<Doc:CtgyPurp> <Doc:CtgyPurp>
<Doc:Cd>BNKK</Doc:Cd> <Doc:Cd>CASH</Doc:Cd>
</Doc:CtgyPurp> </Doc:CtgyPurp>
<Doc:SvcLvl> <Doc:SvcLvl>
<Doc:Cd>SDVA</Doc:Cd> <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; package com.brilliance.mx2mt.mt103;
import com.brilliance.swift.SwiftTransfer;
import com.brilliance.swift.mx2mt.Mx2MtCreateManager; import com.brilliance.swift.mx2mt.Mx2MtCreateManager;
import java.io.File; import java.io.File;
public class TestMx2MtFor103 { public class TestMx2MtFor103 {
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
Mx2MtCreateManager mx2MtCreateManager = new Mx2MtCreateManager(); String mt103 = SwiftTransfer.mx2Mt(
String mt103 = mx2MtCreateManager.mx2mt(
new File(System.getProperty("user.dir")+"\\swiftCore\\src\\main\\resources\\swiftXml\\MxPacs00800102.xml"), 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); 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; package com.brilliance.swiftdto2mt.mt103;
import com.brilliance.swift.swiftdto2mt.SwiftDto2MtCreatorManager; import com.brilliance.swift.SwiftTransfer;
import java.io.File; import java.io.File;
...@@ -8,7 +8,7 @@ public class Test { ...@@ -8,7 +8,7 @@ public class Test {
public static void main(String[] args) { public static void main(String[] args) {
File file = new File(System.getProperty("user.dir")+"\\swiftCore\\src\\main\\resources\\swiftJson\\CustomerCreditTransfer.json"); 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); System.out.println(mtStr);
} }
} }
...@@ -18,13 +18,13 @@ package com.prowidesoftware.swift.model.field; ...@@ -18,13 +18,13 @@ package com.prowidesoftware.swift.model.field;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.JsonParser; import com.google.gson.JsonParser;
import com.prowidesoftware.Generated; import com.prowidesoftware.Generated;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.SwiftTagListBlock;
import com.prowidesoftware.swift.model.Tag; import com.prowidesoftware.swift.model.Tag;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import java.io.Serializable; import java.io.Serializable;
import java.util.*; import java.util.*;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.SwiftTagListBlock;
/** /**
* <strong>SWIFT MT Field 23E</strong> * <strong>SWIFT MT Field 23E</strong>
* <p> * <p>
...@@ -156,6 +156,12 @@ public class Field23E extends Field implements Serializable { ...@@ -156,6 +156,12 @@ public class Field23E extends Field implements Serializable {
setComponent1(SwiftParseUtils.getTokenFirst(value, "/")); setComponent1(SwiftParseUtils.getTokenFirst(value, "/"));
setComponent2(SwiftParseUtils.getTokenSecond(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) * 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