Commit 0dfd1aa2 by zhanghou

将一些常量提取出来

parent 91498bcd
......@@ -9,4 +9,33 @@ public class SwiftDto2MtContextIdentifier {
public static final String SWIFT_DTO_OBJ = "swift.dto.obj";
public static final String MT_IO_TYPE = "mt.io.type";
public static final String MT_TYPE_900 = "900";
public static final String MT_TYPE_910 = "910";
public static final String MT_TYPE_940 = "940";
public static final String MT_TYPE_950 = "950";
public static final String DRCRMARK_C = "C";
public static final String DRCRMARK_D = "D";
public static final String DRCRMARK_RC = "RC";
public static final String DRCRMARK_RD = "RD";
public static final String CD_60F = "PRCD";
public static final String CD_60M = "ITBD";
public static final String CD_62F = "CLBD";
public static final String CD_62M = "ITBD";
public static final String CD_64 = "CLAV";
public static final String CD_65 = "FWAV";
}
......@@ -9,6 +9,9 @@ import com.brilliance.swift.vo.BankToCustomerDebitCreditNotification;
import java.util.ArrayList;
import java.util.List;
import static com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier.MT_TYPE_900;
import static com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier.MT_TYPE_910;
public class SwiftDto2Mt900910Creator extends AbstractSwiftDto2MtCreator {
@Override
public List<SwiftDto2MtTagGenerate> getGenerateTagList() {
......@@ -29,9 +32,9 @@ public class SwiftDto2Mt900910Creator extends AbstractSwiftDto2MtCreator {
protected String getMtType() {
BankToCustomerDebitCreditNotification bankToCustomerDebitCreditNotification = (BankToCustomerDebitCreditNotification)context.get(SwiftDto2MtContextIdentifier.SWIFT_DTO_OBJ, true);
if(bankToCustomerDebitCreditNotification.getCdtDbtCode().equals("DBIT")){
return "900";
return MT_TYPE_900;
}else {
return "910";
return MT_TYPE_910;
}
}
......
......@@ -9,6 +9,9 @@ import com.brilliance.swift.vo.BankToCustomerStatement;
import java.util.ArrayList;
import java.util.List;
import static com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier.MT_TYPE_940;
import static com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier.MT_TYPE_950;
public class SwiftDto2Mt940950Creator extends AbstractSwiftDto2MtCreator {
@Override
public List<SwiftDto2MtTagGenerate> getGenerateTagList() {
......@@ -30,9 +33,9 @@ public class SwiftDto2Mt940950Creator extends AbstractSwiftDto2MtCreator {
protected String getMtType() {
BankToCustomerStatement bankToCustomerStatement = (BankToCustomerStatement)context.get(SwiftDto2MtContextIdentifier.SWIFT_DTO_OBJ, true);
if(bankToCustomerStatement.getCd().equals("FWAV")||bankToCustomerStatement.getAddtlStmtInf()!=null){
return "940";
return MT_TYPE_940;
}else {
return "950";
return MT_TYPE_950;
}
}
......
......@@ -4,16 +4,18 @@ import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.swiftdto2mt.AbstractSwiftDto2MtTagGenerate;
import com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier;
import com.brilliance.swift.util.DateUtil;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.BankToCustomerStatement;
import com.brilliance.swift.vo.common.BalDto;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import com.prowidesoftware.swift.model.mx.dic.CreditDebitCode;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import static com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier.*;
public class Tag60aGenerate extends AbstractSwiftDto2MtTagGenerate {
......@@ -31,13 +33,13 @@ public class Tag60aGenerate extends AbstractSwiftDto2MtTagGenerate {
if(openBalance!=null){
String value = "";
String dcMark = "";
if("PRCD".equals(openBalance.getCd())){
if(CD_60F.equals(openBalance.getCd())){
tags.add(new Tag(name_F, ""));
}else if("ITBD".equals(openBalance.getCd())){
if("CRDT".equals(openBalance.getCdtDbtInd())){
dcMark = "C";
}else if("DBIT".equals(openBalance.getCdtDbtInd())){
dcMark = "D";
}else if(CD_60M.equals(openBalance.getCd())){
if(CreditDebitCode.CRDT.value().equals(openBalance.getCdtDbtInd())){
dcMark = DRCRMARK_C;
}else if(CreditDebitCode.DBIT.value().equals(openBalance.getCdtDbtInd())){
dcMark = DRCRMARK_D;
}else {
throw new SwiftException("ERROR", "cannot find filed60 D/C Mark.");
}
......
......@@ -10,11 +10,14 @@ import com.brilliance.swift.vo.BankToCustomerStatement;
import com.brilliance.swift.vo.common.statementBreakdown;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import com.prowidesoftware.swift.model.mx.dic.CreditDebitCode;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import static com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier.*;
public class Tag61Generate extends AbstractSwiftDto2MtTagGenerate {
......@@ -45,17 +48,17 @@ public class Tag61Generate extends AbstractSwiftDto2MtTagGenerate {
if(bookDate != null){
bookDateStr = DateUtil.format(valueDate, "yyMMdd");
}
if("CRDT".equals(statementBreakdown.getCdtDbtInd())){
if(CreditDebitCode.CRDT.value().equals(statementBreakdown.getCdtDbtInd())){
if("true".equals(statementBreakdown.getCdtDbtInd())){
dcMark = "RD";
dcMark = DRCRMARK_RD;
}else {
dcMark = "C";
dcMark = DRCRMARK_C;
}
}else if("DBIT".equals(statementBreakdown.getCdtDbtInd())){
}else if(CreditDebitCode.DBIT.value().equals(statementBreakdown.getCdtDbtInd())){
if("true".equals(statementBreakdown.getCdtDbtInd())){
dcMark = "RC";
dcMark = DRCRMARK_RC;
}else {
dcMark = "D";
dcMark = DRCRMARK_D;
}
}else {
throw new SwiftException("ERROR", "cannot find filed61 D/C Mark.");
......
......@@ -9,11 +9,14 @@ import com.brilliance.swift.vo.BankToCustomerStatement;
import com.brilliance.swift.vo.common.BalDto;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import com.prowidesoftware.swift.model.mx.dic.CreditDebitCode;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import static com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier.*;
public class Tag62aGenerate extends AbstractSwiftDto2MtTagGenerate {
......@@ -31,13 +34,13 @@ public class Tag62aGenerate extends AbstractSwiftDto2MtTagGenerate {
if(closingBalance!=null){
String value = "";
String dcMark = "";
if("CLBD".equals(closingBalance.getCd())){
if(CD_62F.equals(closingBalance.getCd())){
tags.add(new Tag(name_F, ""));
}else if("ITBD".equals(closingBalance.getCd())){
if("CRDT".equals(closingBalance.getCdtDbtInd())){
dcMark = "C";
}else if("DBIT".equals(closingBalance.getCdtDbtInd())){
dcMark = "D";
}else if(CD_62M.equals(closingBalance.getCd())){
if(CreditDebitCode.CRDT.value().equals(closingBalance.getCdtDbtInd())){
dcMark = DRCRMARK_C;
}else if(CreditDebitCode.DBIT.value().equals(closingBalance.getCdtDbtInd())){
dcMark = DRCRMARK_D;
}else {
throw new SwiftException("ERROR", "cannot find filed60 D/C Mark.");
}
......
......@@ -9,11 +9,14 @@ import com.brilliance.swift.vo.BankToCustomerStatement;
import com.brilliance.swift.vo.common.BalDto;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import com.prowidesoftware.swift.model.mx.dic.CreditDebitCode;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import static com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier.*;
public class Tag64Generate extends AbstractSwiftDto2MtTagGenerate {
......@@ -26,13 +29,13 @@ public class Tag64Generate extends AbstractSwiftDto2MtTagGenerate {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
BalDto closingAvailableBalance = bankToCustomerStatement.getClosingAvailableBalance();
if(closingAvailableBalance!=null && "CLBD".equals(closingAvailableBalance.getCd())){
if(closingAvailableBalance!=null && CD_64.equals(closingAvailableBalance.getCd())){
String value = "";
String dcMark = "";
if("CRDT".equals(closingAvailableBalance.getCdtDbtInd())){
dcMark = "C";
}else if("DBIT".equals(closingAvailableBalance.getCdtDbtInd())){
dcMark = "D";
if(CreditDebitCode.CRDT.value().equals(closingAvailableBalance.getCdtDbtInd())){
dcMark = DRCRMARK_C;
}else if(CreditDebitCode.DBIT.value().equals(closingAvailableBalance.getCdtDbtInd())){
dcMark = DRCRMARK_D;
}else {
throw new SwiftException("ERROR", "cannot find filed60 D/C Mark.");
}
......
......@@ -10,12 +10,15 @@ import com.brilliance.swift.vo.BankToCustomerStatement;
import com.brilliance.swift.vo.common.BalDto;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import com.prowidesoftware.swift.model.mx.dic.CreditDebitCode;
import com.prowidesoftware.swift.model.mx.dic.Value;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import static com.brilliance.swift.swiftdto2mt.SwiftDto2MtContextIdentifier.*;
public class Tag65Generate extends AbstractSwiftDto2MtTagGenerate {
......@@ -35,12 +38,12 @@ public class Tag65Generate extends AbstractSwiftDto2MtTagGenerate {
if(count>=1){
sb.append(Mx2MtConstants.NEW_LINE).append(":65:");
}
if(forwardAvailableBalance!=null && "FWAV".equals(forwardAvailableBalance.getCd())){
if(forwardAvailableBalance!=null && CD_65.equals(forwardAvailableBalance.getCd())){
String dcMark = "";
if("CRDT".equals(forwardAvailableBalance.getCdtDbtInd())){
dcMark = "C";
}else if("DBIT".equals(forwardAvailableBalance.getCdtDbtInd())){
dcMark = "D";
if(CreditDebitCode.CRDT.value().equals(forwardAvailableBalance.getCdtDbtInd())){
dcMark = DRCRMARK_C;
}else if(CreditDebitCode.DBIT.value().equals(forwardAvailableBalance.getCdtDbtInd())){
dcMark = DRCRMARK_D;
}else {
throw new SwiftException("ERROR", "cannot find filed60 D/C Mark.");
}
......
package com.brilliance.swift.swiftdto2mx.camt054001.v09;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.swiftdto2mx.AbstractSwiftDto2MxCreator;
import com.brilliance.swift.swiftdto2mx.SwiftDto2MxContextIdentifier;
import com.brilliance.swift.util.DateUtil;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.BankToCustomerDebitCreditNotification;
import com.brilliance.swift.vo.common.CcyFormatAmount;
import com.brilliance.swift.vo.common.MessagePriority;
import com.brilliance.swift.vo.common.PartyDto;
import com.prowidesoftware.swift.model.mx.BusinessAppHdrV02;
import com.prowidesoftware.swift.model.mx.MxCamt05400102;
import com.prowidesoftware.swift.model.mx.dic.*;
import javax.xml.datatype.XMLGregorianCalendar;
import java.io.File;
import java.util.Date;
import java.util.List;
/**
* @author zh
* @create 2022-04-26 11:44
*/
public class SwiftDto2MxCamt054001Creator extends AbstractSwiftDto2MxCreator {
@Override
public void create() throws SwiftException {
try {
BankToCustomerDebitCreditNotification bankToCustomerDebitCreditNotification = (BankToCustomerDebitCreditNotification)context.get(SwiftDto2MxContextIdentifier.SWIFT_DTO_OBJ, true);
if (bankToCustomerDebitCreditNotification == null) {
return;
}
MxCamt05400102 mxCamt05400102 = new MxCamt05400102();
//set AppHdr
BusinessAppHdrV02 businessAppHdrV02 = new BusinessAppHdrV02();
//fr
Party44Choice fr = new Party44Choice();
BranchAndFinancialInstitutionIdentification6 fiId = new BranchAndFinancialInstitutionIdentification6();
FinancialInstitutionIdentification18 finInstnId = new FinancialInstitutionIdentification18();
finInstnId.setBICFI(bankToCustomerDebitCreditNotification.getSenderBic());
fiId.setFinInstnId(finInstnId);
fr.setFIId(fiId);
businessAppHdrV02.setFr(fr);
//to
Party44Choice to = new Party44Choice();
BranchAndFinancialInstitutionIdentification6 toFiId = new BranchAndFinancialInstitutionIdentification6();
FinancialInstitutionIdentification18 toFinInstnId = new FinancialInstitutionIdentification18();
toFinInstnId.setBICFI(bankToCustomerDebitCreditNotification.getReceiverBic());
toFiId.setFinInstnId(toFinInstnId);
to.setFIId(toFiId);
businessAppHdrV02.setTo(to);
//
XMLGregorianCalendar creDt = DateUtil.parseXMLGregorianCalendar(bankToCustomerDebitCreditNotification.getCreateDate());
businessAppHdrV02.setCreDt(creDt);
if (MessagePriority.NORM.equals(bankToCustomerDebitCreditNotification.getMessagePriority())) {
businessAppHdrV02.setPrty(Priority2Code.NORM.value());
} else if (MessagePriority.HIGH.equals(bankToCustomerDebitCreditNotification.getMessagePriority())) {
businessAppHdrV02.setPrty(Priority2Code.HIGH.value());
}
businessAppHdrV02.setMsgDefIdr("camt.054.001.02");
businessAppHdrV02.setBizMsgIdr(bankToCustomerDebitCreditNotification.getMessageId());
mxCamt05400102.setAppHdr(businessAppHdrV02);
//grpHdr
BankToCustomerDebitCreditNotificationV02 bkToCstmrDbtCdtNtfctn = new BankToCustomerDebitCreditNotificationV02();
mxCamt05400102.setBkToCstmrDbtCdtNtfctn(bkToCstmrDbtCdtNtfctn);
GroupHeader42 grpHdr = new GroupHeader42();
grpHdr.setMsgId(bankToCustomerDebitCreditNotification.getMessageId());
grpHdr.setCreDtTm(DateUtil.parseXMLGregorianCalendar(bankToCustomerDebitCreditNotification.getCreateDate()));
grpHdr.setAddtlInf("");
bkToCstmrDbtCdtNtfctn.setGrpHdr(grpHdr);
//ntfcn
AccountNotification2 ntfctn = new AccountNotification2();
bkToCstmrDbtCdtNtfctn.addNtfctn(ntfctn);
String endToEndId = bankToCustomerDebitCreditNotification.getEndToEndId();//21
String account = bankToCustomerDebitCreditNotification.getAccount().getAccount();//25
Date valueDate = bankToCustomerDebitCreditNotification.getValueDate();//25a
CcyFormatAmount valueAmount = bankToCustomerDebitCreditNotification.getValueAmount();//25a
PartyDto debitParty = bankToCustomerDebitCreditNotification.getDebitParty();//50
PartyDto debitAgtParty = bankToCustomerDebitCreditNotification.getDebitAgtParty();//52
PartyDto intrmyAgtParty = bankToCustomerDebitCreditNotification.getIntrmyAgtParty();//56
String addtlTxInf = bankToCustomerDebitCreditNotification.getAddtlTxInf();//72
//EndToEndId
ReportEntry2 ntry = new ReportEntry2();
ntfctn.addNtry(ntry);
EntryDetails1 ntryDtls =new EntryDetails1();
ntry.addNtryDtls(ntryDtls);
EntryTransaction2 txDtls = new EntryTransaction2();
ntryDtls.addTxDtls(txDtls);
if(endToEndId!=null){
TransactionReferences2 refs =new TransactionReferences2();
refs.setEndToEndId(endToEndId);
txDtls.setRefs(refs);
}
//IBAN Othr/Id
if(account!=null){
CashAccount20 acct = new CashAccount20();
ntfctn.setAcct(acct);
AccountIdentification4Choice id = new AccountIdentification4Choice();
id.setIBAN(account);
acct.setId(id);
}
//Dt Amt Ccy="XXX"
if(valueDate!=null && valueAmount!=null){
DateAndDateTimeChoice valDt = new DateAndDateTimeChoice();
ntry.setValDt(valDt);
XMLGregorianCalendar dt = DateUtil.parseXMLGregorianCalendar(valueDate);
valDt.setDt(dt);
ActiveOrHistoricCurrencyAndAmount amt = new ActiveOrHistoricCurrencyAndAmount();
amt.setCcy(valueAmount.getCcy());
amt.setValue(valueAmount.getAmt());
ntry.setAmt(amt);
}
//<Ntfctn><Ntry><NtryDtls><TxDtls><RltdPties><Dbtr><Nm>
TransactionParty2 rltdPties =new TransactionParty2();
txDtls.setRltdPties(rltdPties);
PartyIdentification32 dbtr = new PartyIdentification32();
PostalAddress6 pstlAdr = new PostalAddress6();
dbtr.setPstlAdr(pstlAdr);
rltdPties.setDbtr(dbtr);
if(debitParty!=null){
dbtr.setNm(debitParty.getPartyName());
List<String> adrLineList = debitParty.getAddressList();
for (String adrLine : adrLineList) {
pstlAdr.addAdrLine(adrLine);
}
}
//<Ntfctn><Ntry><NtryDtls><TxDtls><RltdPties><Dbtr><Nm>
if(debitAgtParty!=null){
dbtr.setNm(debitAgtParty.getPartyName());
List<String> adrLineList = debitAgtParty.getAddressList();
for (String adrLine : adrLineList) {
pstlAdr.addAdrLine(adrLine);
}
CashAccount16 dbtrAcct = new CashAccount16();
rltdPties.setDbtrAcct(dbtrAcct);
AccountIdentification4Choice id = new AccountIdentification4Choice();
id.setIBAN(debitAgtParty.getPartyAcct().getIbanAcct());
dbtrAcct.setId(id);
}
//<Ntfctn><Ntry><NtryDtls><TxDtls><RltdAgts><IntrmyAgt1><FinInstnId><BICFI>
if(intrmyAgtParty!=null){
TransactionAgents2 rltdAgts = new TransactionAgents2();
txDtls.setRltdAgts(rltdAgts);
BranchAndFinancialInstitutionIdentification4 intrmyAgt1 = new BranchAndFinancialInstitutionIdentification4();
rltdAgts.setIntrmyAgt1(intrmyAgt1);
FinancialInstitutionIdentification7 finInstnId7 = new FinancialInstitutionIdentification7();
intrmyAgt1.setFinInstnId(finInstnId7);
finInstnId7.setNm(intrmyAgtParty.getPartyName());
PostalAddress6 pstlAdr7 = new PostalAddress6();
List<String> adrLineList7 = intrmyAgtParty.getAddressList();
for (String adrLine : adrLineList7) {
pstlAdr7.addAdrLine(adrLine);
}
finInstnId7.setPstlAdr(pstlAdr7);
}
if(addtlTxInf!=null){
txDtls.setAddtlTxInf(addtlTxInf);
}
String xmlStr = mxCamt05400102.message();
context.set(SwiftDto2MxContextIdentifier.MX_XML, xmlStr);
String outputFilePath = (String)context.get(SwiftDto2MxContextIdentifier.MX_OUTPUT_FILE_PATH, true);
if (StringUtil.isNotEmpty(outputFilePath)) {
mxCamt05400102.write(new File(outputFilePath));
}
} catch (Exception e) {
throw new SwiftException("ERROR", e.getMessage());
}
}
}
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