作者 朱兆平

部分报文格式生成及验证

1 package com.sunyo.wlpt.base.model.efreight.fwb; 1 package com.sunyo.wlpt.base.model.efreight.fwb;
2 2
  3 +import com.sunyo.wlpt.base.model.efreight.BASE;
  4 +import com.sunyo.wlpt.base.model.efreight.fwb.exception.FWBException;
  5 +import com.sunyo.wlpt.base.model.efreight.fwb.exception.FWBExceptionType;
  6 +
  7 +import java.util.regex.Matcher;
  8 +import java.util.regex.Pattern;
  9 +
3 /** 10 /**
4 * Accounting Information 11 * Accounting Information
5 * 财务信息 12 * 财务信息
@@ -9,7 +16,7 @@ package com.sunyo.wlpt.base.model.efreight.fwb; @@ -9,7 +16,7 @@ package com.sunyo.wlpt.base.model.efreight.fwb;
9 * ACC/GEN/FREIGHT PREPAID 16 * ACC/GEN/FREIGHT PREPAID
10 * CRLF 17 * CRLF
11 */ 18 */
12 -public class FWB_ACC { 19 +public class FWB_ACC extends BASE implements FWB_BASE {
13 /** 20 /**
14 * 21 *
15 * 财务信息ID标识 22 * 财务信息ID标识
@@ -28,4 +35,53 @@ public class FWB_ACC { @@ -28,4 +35,53 @@ public class FWB_ACC {
28 * /GEN/FREIGHT PREPAID 35 * /GEN/FREIGHT PREPAID
29 */ 36 */
30 private String acc_info; 37 private String acc_info;
  38 +
  39 + public String getAcc_info_id() throws FWBException {
  40 + String patternStr = "^[A-Z]{3}$";
  41 + Pattern pattern = Pattern.compile(patternStr);
  42 + Matcher matcher = pattern.matcher(acc_info_id);
  43 + if (!matcher.find()){
  44 + throw new FWBException(FWBExceptionType.FWB_ACC_ID_ERR);
  45 + }
  46 + return acc_info_id;
  47 + }
  48 +
  49 + public void setAcc_info_id(String acc_info_id) {
  50 + this.acc_info_id = acc_info_id;
  51 + }
  52 +
  53 + public String getAcc_info() throws FWBException {
  54 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{1,34}$";
  55 + Pattern pattern = Pattern.compile(patternStr);
  56 + Matcher matcher = pattern.matcher(acc_info);
  57 + if (!matcher.find()){
  58 + throw new FWBException(FWBExceptionType.FWB_ACC_INFO_ERR);
  59 + }
  60 + return acc_info;
  61 + }
  62 +
  63 + public void setAcc_info(String acc_info) {
  64 + this.acc_info = acc_info;
  65 + }
  66 +
  67 +
  68 + @Override
  69 + public String getFWBNodeText() throws FWBException {
  70 + String SPLIT_CODE = "/";
  71 + String CRLF = "\n";
  72 + StringBuilder sb = new StringBuilder("");
  73 +
  74 + if (hasText(acc_info) || hasText(acc_info_id)){
  75 + sb.append(getNodeName()).append(SPLIT_CODE);
  76 + sb.append(getAcc_info_id()).append(SPLIT_CODE).append(getAcc_info());
  77 + sb.append(CRLF);
  78 + }
  79 +
  80 + return sb.toString();
  81 + }
  82 +
  83 + @Override
  84 + public String getNodeName() {
  85 + return "ACC";
  86 + }
31 } 87 }
1 package com.sunyo.wlpt.base.model.efreight.fwb; 1 package com.sunyo.wlpt.base.model.efreight.fwb;
2 2
  3 +import com.sunyo.wlpt.base.model.efreight.BASE;
  4 +import com.sunyo.wlpt.base.model.efreight.fwb.exception.FWBException;
  5 +import com.sunyo.wlpt.base.model.efreight.fwb.exception.FWBExceptionType;
  6 +
  7 +import java.util.regex.Matcher;
  8 +import java.util.regex.Pattern;
  9 +
3 /** 10 /**
4 * 代理人信息 11 * 代理人信息
5 * 代理人信息有IATA代码 则名称与地址也为必填项 12 * 代理人信息有IATA代码 则名称与地址也为必填项
@@ -7,7 +14,7 @@ package com.sunyo.wlpt.base.model.efreight.fwb; @@ -7,7 +14,7 @@ package com.sunyo.wlpt.base.model.efreight.fwb;
7 * (满足指定条件必须包含在内) 14 * (满足指定条件必须包含在内)
8 * (中性运单包含代理人IATA信息 则必填) 15 * (中性运单包含代理人IATA信息 则必填)
9 */ 16 */
10 -public class FWB_AGT { 17 +public class FWB_AGT extends BASE implements FWB_BASE {
11 18
12 /** 19 /**
13 * 代理人账号信息 20 * 代理人账号信息
@@ -44,4 +51,128 @@ public class FWB_AGT { @@ -44,4 +51,128 @@ public class FWB_AGT {
44 * [A-Z0-9-<=/\s\.]{1,17} 51 * [A-Z0-9-<=/\s\.]{1,17}
45 */ 52 */
46 private String agt_ADR; 53 private String agt_ADR;
  54 +
  55 + public String getAgt_account_number() throws FWBException {
  56 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,14}$";
  57 + Pattern pattern = Pattern.compile(patternStr);
  58 + Matcher matcher = pattern.matcher(agt_account_number);
  59 + if (!matcher.find()){
  60 + throw new FWBException(FWBExceptionType.FWB_AGT_ACC_ERR);
  61 + }
  62 + return agt_account_number;
  63 + }
  64 +
  65 + public void setAgt_account_number(String agt_account_number) {
  66 + this.agt_account_number = agt_account_number;
  67 + }
  68 +
  69 + public String getAgt_IATA_number() throws FWBException {
  70 + String patternStr = "^\\d{7}$";
  71 + Pattern pattern = Pattern.compile(patternStr);
  72 + Matcher matcher = pattern.matcher(agt_IATA_number);
  73 + if (!matcher.find()){
  74 + throw new FWBException(FWBExceptionType.FWB_AGT_IATA_ERR);
  75 + }
  76 + return agt_IATA_number;
  77 + }
  78 +
  79 + public void setAgt_IATA_number(String agt_IATA_number) {
  80 + this.agt_IATA_number = agt_IATA_number;
  81 + }
  82 +
  83 + public String getAgt_CASS_ADR() throws FWBException {
  84 + String patternStr = "^\\d{0,4}$";
  85 + Pattern pattern = Pattern.compile(patternStr);
  86 + Matcher matcher = pattern.matcher(agt_CASS_ADR);
  87 + if (!matcher.find()){
  88 + throw new FWBException(FWBExceptionType.FWB_AGT_CASS_ERR);
  89 + }
  90 + return agt_CASS_ADR;
  91 + }
  92 +
  93 + public void setAgt_CASS_ADR(String agt_CASS_ADR) {
  94 + this.agt_CASS_ADR = agt_CASS_ADR;
  95 + }
  96 +
  97 + public String getAgt_participant_id() throws FWBException {
  98 + String patternStr = "^[A-Z0-9]{0,3}$";
  99 + Pattern pattern = Pattern.compile(patternStr);
  100 + Matcher matcher = pattern.matcher(agt_participant_id);
  101 + if (!matcher.find()){
  102 + throw new FWBException(FWBExceptionType.FWB_AGT_PID_ERR);
  103 + }
  104 + return agt_participant_id;
  105 + }
  106 +
  107 + public void setAgt_participant_id(String agt_participant_id) {
  108 + this.agt_participant_id = agt_participant_id;
  109 + }
  110 +
  111 + public String getAgt_name() throws FWBException {
  112 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,35}$";
  113 + Pattern pattern = Pattern.compile(patternStr);
  114 + Matcher matcher = pattern.matcher(agt_name);
  115 + if (!matcher.find()){
  116 + throw new FWBException(FWBExceptionType.FWB_AGT_NAME_ERR);
  117 + }
  118 + return agt_name;
  119 + }
  120 +
  121 + public void setAgt_name(String agt_name) {
  122 + this.agt_name = agt_name;
  123 + }
  124 +
  125 + public String getAgt_ADR() throws FWBException {
  126 +
  127 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,17}$";
  128 + Pattern pattern = Pattern.compile(patternStr);
  129 + Matcher matcher = pattern.matcher(agt_ADR);
  130 + if (!matcher.find()){
  131 + throw new FWBException(FWBExceptionType.FWB_AGT_ADR_ERR);
  132 + }
  133 + return agt_ADR;
  134 + }
  135 +
  136 + public void setAgt_ADR(String agt_ADR) {
  137 + this.agt_ADR = agt_ADR;
  138 + }
  139 +
  140 + @Override
  141 + public String getFWBNodeText() throws FWBException {
  142 + String SPLIT_CODE = "/";
  143 + String CRLF = "\n";
  144 + StringBuilder sb = new StringBuilder("");
  145 + //代理人信息中有IATA代码时才生成
  146 + if (hasText(agt_IATA_number)){
  147 + sb.append(getNodeName());
  148 + sb.append(SPLIT_CODE);
  149 + if (hasText(agt_account_number)){
  150 + sb.append(getAgt_account_number());
  151 + }
  152 + sb.append(SPLIT_CODE).append(getAgt_IATA_number());
  153 +
  154 + if (hasText(agt_CASS_ADR)){
  155 + sb.append(SPLIT_CODE).append(getAgt_CASS_ADR());
  156 + }
  157 +
  158 + if (hasText(agt_participant_id)){
  159 + sb.append(SPLIT_CODE).append(getAgt_participant_id());
  160 + }
  161 + sb.append(CRLF);
  162 + sb.append(SPLIT_CODE).append(getAgt_name()).append(CRLF)
  163 + .append(SPLIT_CODE).append(getAgt_ADR());
  164 +
  165 +
  166 +
  167 + sb.append(CRLF);
  168 + }
  169 +
  170 +
  171 + return sb.toString();
  172 + }
  173 +
  174 + @Override
  175 + public String getNodeName() {
  176 + return "AGT";
  177 + }
47 } 178 }
1 package com.sunyo.wlpt.base.model.efreight.fwb; 1 package com.sunyo.wlpt.base.model.efreight.fwb;
2 2
  3 +import com.sunyo.wlpt.base.model.efreight.BASE;
  4 +import com.sunyo.wlpt.base.model.efreight.fwb.exception.FWBException;
  5 +import com.sunyo.wlpt.base.model.efreight.fwb.exception.FWBExceptionType;
  6 +
  7 +import java.util.regex.Matcher;
  8 +import java.util.regex.Pattern;
  9 +
3 /** 10 /**
4 * 主单收货人 11 * 主单收货人
5 * mandatory (must be included);M 12 * mandatory (must be included);M
6 */ 13 */
7 -public class FWB_CNE { 14 +public class FWB_CNE extends BASE implements FWB_BASE {
8 15
9 /** 16 /**
10 * 收货人账号信息 17 * 收货人账号信息
@@ -57,6 +64,182 @@ public class FWB_CNE { @@ -57,6 +64,182 @@ public class FWB_CNE {
57 */ 64 */
58 private String cne_contact_number; 65 private String cne_contact_number;
59 66
  67 + public String getCne_account_number() throws FWBException {
  68 +
  69 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,14}$";
  70 + Pattern pattern = Pattern.compile(patternStr);
  71 + Matcher matcher = pattern.matcher(cne_account_number);
  72 + if (!matcher.find()){
  73 + throw new FWBException(FWBExceptionType.FWB_CNE_ACC_ERR);
  74 + }
  75 +
  76 + return cne_account_number;
  77 + }
  78 +
  79 + public void setCne_account_number(String cne_account_number) {
  80 + this.cne_account_number = cne_account_number;
  81 + }
  82 +
  83 + public String getCne_name() throws FWBException {
  84 +
  85 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,35}$";
  86 + Pattern pattern = Pattern.compile(patternStr);
  87 + Matcher matcher = pattern.matcher(cne_name);
  88 + if (!matcher.find()){
  89 + throw new FWBException(FWBExceptionType.FWB_CNE_NAME_ERR);
  90 + }
  91 + return cne_name;
  92 + }
  93 +
  94 + public void setCne_name(String cne_name) {
  95 + this.cne_name = cne_name;
  96 + }
  97 +
  98 + public String getCne_adr() throws FWBException {
  99 +
  100 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,35}$";
  101 + Pattern pattern = Pattern.compile(patternStr);
  102 + Matcher matcher = pattern.matcher(cne_adr);
  103 + if (!matcher.find()){
  104 + throw new FWBException(FWBExceptionType.FWB_CNE_ADR_ERR);
  105 + }
  106 + return cne_adr;
  107 + }
  108 +
  109 + public void setCne_adr(String cne_adr) {
  110 + this.cne_adr = cne_adr;
  111 + }
  112 +
  113 + public String getCne_loc_place() throws FWBException {
  114 +
  115 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,17}$";
  116 + Pattern pattern = Pattern.compile(patternStr);
  117 + Matcher matcher = pattern.matcher(cne_loc_place);
  118 + if (!matcher.find()){
  119 + throw new FWBException(FWBExceptionType.FWB_CNE_PLC_ERR);
  120 + }
  121 + return cne_loc_place;
  122 + }
  123 +
  124 + public void setCne_loc_place(String cne_loc_place) {
  125 + this.cne_loc_place = cne_loc_place;
  126 + }
  127 +
  128 + public String getCne_loc_province() throws FWBException {
  129 +
  130 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,9}$";
  131 + Pattern pattern = Pattern.compile(patternStr);
  132 + Matcher matcher = pattern.matcher(cne_loc_province);
  133 + if (!matcher.find()){
  134 + throw new FWBException(FWBExceptionType.FWB_CNE_PVC_ERR);
  135 + }
  136 + return cne_loc_province;
  137 + }
  138 +
  139 + public void setCne_loc_province(String cne_loc_province) {
  140 + this.cne_loc_province = cne_loc_province;
  141 + }
  142 +
  143 + public String getCne_country() throws FWBException {
  144 +
  145 + String patternStr = "^[A-Z]{2}$";
  146 + Pattern pattern = Pattern.compile(patternStr);
  147 + Matcher matcher = pattern.matcher(cne_country);
  148 + if (!matcher.find()){
  149 + throw new FWBException(FWBExceptionType.FWB_CNE_CNT_ERR);
  150 + }
  151 + return cne_country;
  152 + }
  153 +
  154 + public void setCne_country(String cne_country) {
  155 + this.cne_country = cne_country;
  156 + }
  157 +
  158 + public String getCne_postcode() throws FWBException {
  159 +
  160 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,9}$";
  161 + Pattern pattern = Pattern.compile(patternStr);
  162 + Matcher matcher = pattern.matcher(cne_postcode);
  163 + if (!matcher.find()){
  164 + throw new FWBException(FWBExceptionType.FWB_CNE_PC_ERR);
  165 + }
  166 + return cne_postcode;
  167 + }
  168 +
  169 + public void setCne_postcode(String cne_postcode) {
  170 + this.cne_postcode = cne_postcode;
  171 + }
  172 +
  173 + public String getCne_contact_id() throws FWBException {
  174 +
  175 + String patternStr = "^FX|TE|TL$";
  176 + Pattern pattern = Pattern.compile(patternStr);
  177 + Matcher matcher = pattern.matcher(cne_contact_id);
  178 + if (!matcher.find()){
  179 + throw new FWBException(FWBExceptionType.FWB_CNE_CID_ERR);
  180 + }
  181 + return cne_contact_id;
  182 + }
  183 +
  184 + public void setCne_contact_id(String cne_contact_id) {
  185 + this.cne_contact_id = cne_contact_id;
  186 + }
  187 +
  188 + public String getCne_contact_number() throws FWBException {
  189 + String patternStr = "^[A-Z0-9]{1,25}$";
  190 + Pattern pattern = Pattern.compile(patternStr);
  191 + Matcher matcher = pattern.matcher(cne_contact_number);
  192 + if (!matcher.find()){
  193 + throw new FWBException(FWBExceptionType.FWB_CNE_CN_ERR);
  194 + }
  195 + return cne_contact_number;
  196 + }
  197 +
  198 + public void setCne_contact_number(String cne_contact_number) {
  199 + this.cne_contact_number = cne_contact_number;
  200 + }
  201 +
  202 + @Override
  203 + public String getFWBNodeText() throws FWBException {
  204 + String SPLIT_CODE = "/";
  205 + String CRLF = "\n";
  206 + StringBuilder sb = new StringBuilder("");
  207 + if (hasText(cne_account_number)){
  208 + sb.append(SPLIT_CODE).append(getCne_account_number());
  209 + }
  210 + sb.append(CRLF);
  211 + sb.append(SPLIT_CODE).append(getCne_name()).append(CRLF);
  212 + sb.append(SPLIT_CODE).append(getCne_adr()).append(CRLF);
  213 + sb.append(SPLIT_CODE).append(getCne_loc_place());
  214 + if (hasText(getCne_loc_province())){
  215 + sb.append(SPLIT_CODE).append(getCne_loc_province());
  216 + }
  217 + sb.append(CRLF);
  218 + sb.append(SPLIT_CODE).append(getCne_country());
  219 + if (hasText(getCne_postcode())) {
  220 + sb.append(SPLIT_CODE).append(getCne_postcode());
  221 + }else {
  222 + if (hasText(getCne_contact_number())){
  223 + sb.append(SPLIT_CODE);
  224 + }
  225 + }
  226 +
  227 + //联系方式可重复不限次数,todo:处理这种联系方式 有多个信息的
  228 + if (hasText(getCne_contact_number())){
  229 + sb.append(SPLIT_CODE).append(getCne_contact_id()).append(SPLIT_CODE).append(getCne_contact_number());
  230 + }
  231 + //todo:此节点循环的报文内容获取方式
  232 +
  233 + sb.append(CRLF);
  234 +
  235 + return sb.toString();
  236 + }
  237 +
  238 + @Override
  239 + public String getNodeName() {
  240 + return "CNE";
  241 + }
  242 +
60 243
61 } 244 }
62 245
1 package com.sunyo.wlpt.base.model.efreight.fwb; 1 package com.sunyo.wlpt.base.model.efreight.fwb;
  2 +
  3 +import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
  4 +import com.sunyo.wlpt.base.model.efreight.BASE;
  5 +import com.sunyo.wlpt.base.model.efreight.fwb.exception.FWBException;
  6 +import com.sunyo.wlpt.base.model.efreight.fwb.exception.FWBExceptionType;
  7 +
  8 +import java.util.regex.Matcher;
  9 +import java.util.regex.Pattern;
  10 +
2 /** 11 /**
3 * CVD 12 * CVD
4 * Charge Declarations 13 * Charge Declarations
@@ -9,11 +18,11 @@ package com.sunyo.wlpt.base.model.efreight.fwb; @@ -9,11 +18,11 @@ package com.sunyo.wlpt.base.model.efreight.fwb;
9 * CVD/CNY/(PX)/PP/NVD/NCV/XXX 18 * CVD/CNY/(PX)/PP/NVD/NCV/XXX
10 * CRLF 19 * CRLF
11 */ 20 */
12 -public class FWB_CVD { 21 +public class FWB_CVD extends BASE implements FWB_BASE{
13 22
14 /** 23 /**
15 * 货币单位 24 * 货币单位
16 - * [A-Z]{1,3} 25 + * [A-Z]{3}
17 * M 26 * M
18 * DEMO: 27 * DEMO:
19 * CNY 28 * CNY
@@ -64,10 +73,120 @@ public class FWB_CVD { @@ -64,10 +73,120 @@ public class FWB_CVD {
64 /** 73 /**
65 * Value For insurance Declaration 74 * Value For insurance Declaration
66 * 保险声明价值 75 * 保险声明价值
67 - * [0-9.]{1,11} 76 + * [0-9.]{1,11}|XXX
68 * M 必填 77 * M 必填
69 * DEMO: 78 * DEMO:
70 * 123.05 OR XXX 79 * 123.05 OR XXX
71 */ 80 */
72 - private String getCvd_value_for_customs; 81 + private String cvd_amount_of_insurance;
  82 +
  83 + public String getCvd_currency_code() throws FWBException {
  84 + String patternStr = "^[A-Z]{3}$";
  85 + Pattern pattern = Pattern.compile(patternStr);
  86 + Matcher matcher = pattern.matcher(cvd_currency_code);
  87 + if (!matcher.find()){
  88 + throw new FWBException(FWBExceptionType.FWB_CVD_CUR_ERR);
  89 + }
  90 + return cvd_currency_code;
  91 + }
  92 +
  93 + public void setCvd_currency_code(String cvd_currency_code) {
  94 + this.cvd_currency_code = cvd_currency_code;
  95 + }
  96 +
  97 + public String getCvd_charge_code() throws FWBException {
  98 + String patternStr = "^[A-Z]{2}$";
  99 + Pattern pattern = Pattern.compile(patternStr);
  100 + Matcher matcher = pattern.matcher(cvd_charge_code);
  101 + if (!matcher.find()){
  102 + throw new FWBException(FWBExceptionType.FWB_CVD_CC_ERR);
  103 + }
  104 + return cvd_charge_code;
  105 + }
  106 +
  107 + public void setCvd_charge_code(String cvd_charge_code) {
  108 + this.cvd_charge_code = cvd_charge_code;
  109 + }
  110 +
  111 + public String getCvd_charge_prepaid() throws FWBException {
  112 + String patternStr = "^PP|CC$";
  113 + Pattern pattern = Pattern.compile(patternStr);
  114 + Matcher matcher = pattern.matcher(cvd_charge_prepaid);
  115 + if (!matcher.find()){
  116 + throw new FWBException(FWBExceptionType.FWB_CVD_PCCD_ERR);
  117 + }
  118 + return cvd_charge_prepaid;
  119 + }
  120 +
  121 + public void setCvd_charge_prepaid(String cvd_charge_prepaid) {
  122 + this.cvd_charge_prepaid = cvd_charge_prepaid;
  123 + }
  124 +
  125 + public String getCvd_value_for_carriage() throws FWBException {
  126 + String patternStr = "^[0-9\\.]{1,12}|NVD$";
  127 + Pattern pattern = Pattern.compile(patternStr);
  128 + Matcher matcher = pattern.matcher(cvd_value_for_carriage);
  129 + if (!matcher.find()){
  130 + throw new FWBException(FWBExceptionType.FWB_CVD_VCD_ERR);
  131 + }
  132 + return cvd_value_for_carriage;
  133 + }
  134 +
  135 + public void setCvd_value_for_carriage(String cvd_value_for_carriage) {
  136 + this.cvd_value_for_carriage = cvd_value_for_carriage;
  137 + }
  138 +
  139 + public String getCvd_value_for_customs() throws FWBException {
  140 + String patternStr = "^[0-9\\.]{1,12}|NCV$";
  141 + Pattern pattern = Pattern.compile(patternStr);
  142 + Matcher matcher = pattern.matcher(cvd_value_for_customs);
  143 + if (!matcher.find()){
  144 + throw new FWBException(FWBExceptionType.FWB_CVD_DVC_ERR);
  145 + }
  146 + return cvd_value_for_customs;
  147 + }
  148 +
  149 + public void setCvd_value_for_customs(String cvd_value_for_customs) {
  150 + this.cvd_value_for_customs = cvd_value_for_customs;
  151 + }
  152 +
  153 + public String getCvd_amount_of_insurance() throws FWBException {
  154 + String patternStr = "^[0-9\\.]{1,11}|XXX$";
  155 + Pattern pattern = Pattern.compile(patternStr);
  156 + Matcher matcher = pattern.matcher(cvd_amount_of_insurance);
  157 + if (!matcher.find()){
  158 + throw new FWBException(FWBExceptionType.FWB_CVD_VID_ERR);
  159 + }
  160 + return cvd_amount_of_insurance;
  161 + }
  162 +
  163 + public void setCvd_amount_of_insurance(String cvd_amount_of_insurance) {
  164 + this.cvd_amount_of_insurance = cvd_amount_of_insurance;
  165 + }
  166 +
  167 + @Override
  168 + public String getFWBNodeText() throws FWBException {
  169 + String SPLIT_CODE = "/";
  170 + String CRLF = "\n";
  171 + StringBuilder sb = new StringBuilder("");
  172 + sb.append(getNodeName()).append(SPLIT_CODE).append(getCvd_currency_code()).append(SPLIT_CODE);
  173 + if (hasText(cvd_charge_code)){
  174 + sb.append(getCvd_charge_code());
  175 + }
  176 + sb.append(SPLIT_CODE).append(getCvd_charge_prepaid());
  177 +
  178 + sb.append(SPLIT_CODE).append(getCvd_value_for_carriage()).append(SPLIT_CODE).append(getCvd_value_for_customs());
  179 + sb.append(SPLIT_CODE).append(getCvd_amount_of_insurance());
  180 + sb.append(CRLF);
  181 +
  182 +
  183 +
  184 +
  185 + return sb.toString();
  186 + }
  187 +
  188 + @Override
  189 + public String getNodeName() {
  190 + return "CVD";
  191 + }
73 } 192 }
1 package com.sunyo.wlpt.base.model.efreight.fwb; 1 package com.sunyo.wlpt.base.model.efreight.fwb;
2 2
  3 +import com.sunyo.wlpt.base.model.efreight.BASE;
  4 +import com.sunyo.wlpt.base.model.efreight.fwb.exception.FWBException;
  5 +import com.sunyo.wlpt.base.model.efreight.fwb.exception.FWBExceptionType;
  6 +
  7 +import java.util.regex.Matcher;
  8 +import java.util.regex.Pattern;
  9 +
3 /** 10 /**
4 * NFY 11 * NFY
5 * Also Notify 12 * Also Notify
@@ -9,7 +16,7 @@ package com.sunyo.wlpt.base.model.efreight.fwb; @@ -9,7 +16,7 @@ package com.sunyo.wlpt.base.model.efreight.fwb;
9 * DEMO: 16 * DEMO:
10 * /NFY/ 17 * /NFY/
11 */ 18 */
12 -public class FWB_NFY { 19 +public class FWB_NFY extends BASE implements FWB_BASE {
13 /** 20 /**
14 * 被通知人名称 21 * 被通知人名称
15 * [A-Z0-9-<=/\s\.]{1,35} 22 * [A-Z0-9-<=/\s\.]{1,35}
@@ -68,4 +75,158 @@ public class FWB_NFY { @@ -68,4 +75,158 @@ public class FWB_NFY {
68 * M 75 * M
69 */ 76 */
70 private String nfy_contact_NUM; 77 private String nfy_contact_NUM;
  78 +
  79 + public String getNfy_name() throws FWBException {
  80 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,35}$";
  81 + Pattern pattern = Pattern.compile(patternStr);
  82 + Matcher matcher = pattern.matcher(nfy_name);
  83 + if (!matcher.find()){
  84 + throw new FWBException(FWBExceptionType.FWB_NFY_NAME_ERR);
  85 + }
  86 + return nfy_name;
  87 + }
  88 +
  89 + public void setNfy_name(String nfy_name) {
  90 + this.nfy_name = nfy_name;
  91 + }
  92 +
  93 + public String getNfy_ADR() throws FWBException {
  94 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,35}$";
  95 + Pattern pattern = Pattern.compile(patternStr);
  96 + Matcher matcher = pattern.matcher(nfy_ADR);
  97 + if (!matcher.find()){
  98 + throw new FWBException(FWBExceptionType.FWB_NFY_ADR_ERR);
  99 + }
  100 + return nfy_ADR;
  101 + }
  102 +
  103 + public void setNfy_ADR(String nfy_ADR) {
  104 + this.nfy_ADR = nfy_ADR;
  105 + }
  106 +
  107 + public String getNfy_LOC_city() throws FWBException {
  108 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,17}$";
  109 + Pattern pattern = Pattern.compile(patternStr);
  110 + Matcher matcher = pattern.matcher(nfy_LOC_city);
  111 + if (!matcher.find()){
  112 + throw new FWBException(FWBExceptionType.FWB_NFY_PLC_ERR);
  113 + }
  114 + return nfy_LOC_city;
  115 + }
  116 +
  117 + public void setNfy_LOC_city(String nfy_LOC_city) {
  118 + this.nfy_LOC_city = nfy_LOC_city;
  119 + }
  120 +
  121 + public String getNfy_LOC_province() throws FWBException {
  122 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,9}$";
  123 + Pattern pattern = Pattern.compile(patternStr);
  124 + Matcher matcher = pattern.matcher(nfy_LOC_province);
  125 + if (!matcher.find()){
  126 + throw new FWBException(FWBExceptionType.FWB_NFY_PVC_ERR);
  127 + }
  128 + return nfy_LOC_province;
  129 + }
  130 +
  131 + public void setNfy_LOC_province(String nfy_LOC_province) {
  132 + this.nfy_LOC_province = nfy_LOC_province;
  133 + }
  134 +
  135 + public String getNfy_country() throws FWBException {
  136 + String patternStr = "^[A-Z]{2}$";
  137 + Pattern pattern = Pattern.compile(patternStr);
  138 + Matcher matcher = pattern.matcher(nfy_country);
  139 + if (!matcher.find()){
  140 + throw new FWBException(FWBExceptionType.FWB_NFY_CNT_ERR);
  141 + }
  142 + return nfy_country;
  143 + }
  144 +
  145 + public void setNfy_country(String nfy_country) {
  146 + this.nfy_country = nfy_country;
  147 + }
  148 +
  149 + public String getNfy_postcode() throws FWBException {
  150 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,9}$";
  151 + Pattern pattern = Pattern.compile(patternStr);
  152 + Matcher matcher = pattern.matcher(nfy_postcode);
  153 + if (!matcher.find()){
  154 + throw new FWBException(FWBExceptionType.FWB_NFY_PC_ERR);
  155 + }
  156 + return nfy_postcode;
  157 + }
  158 +
  159 + public void setNfy_postcode(String nfy_postcode) {
  160 + this.nfy_postcode = nfy_postcode;
  161 + }
  162 +
  163 + public String getNfy_contact_id() throws FWBException {
  164 + String patternStr = "^FX|TE|TL$";
  165 + Pattern pattern = Pattern.compile(patternStr);
  166 + Matcher matcher = pattern.matcher(nfy_contact_id);
  167 + if (!matcher.find()){
  168 + throw new FWBException(FWBExceptionType.FWB_NFY_CID_ERR);
  169 + }
  170 + return nfy_contact_id;
  171 + }
  172 +
  173 + public void setNfy_contact_id(String nfy_contact_id) {
  174 + this.nfy_contact_id = nfy_contact_id;
  175 + }
  176 +
  177 + public String getNfy_contact_NUM() throws FWBException {
  178 + String patternStr = "^[A-Z0-9]{1,25}$";
  179 + Pattern pattern = Pattern.compile(patternStr);
  180 + Matcher matcher = pattern.matcher(nfy_contact_NUM);
  181 + if (!matcher.find()){
  182 + throw new FWBException(FWBExceptionType.FWB_NFY_CN_ERR);
  183 + }
  184 + return nfy_contact_NUM;
  185 + }
  186 +
  187 + public void setNfy_contact_NUM(String nfy_contact_NUM) {
  188 + this.nfy_contact_NUM = nfy_contact_NUM;
  189 + }
  190 +
  191 + @Override
  192 + public String getFWBNodeText() throws FWBException {
  193 + String SPLIT_CODE = "/";
  194 + String CRLF = "\n";
  195 + StringBuilder sb = new StringBuilder("");
  196 +
  197 + if (hasText(nfy_name) || hasText(nfy_ADR) || hasText(nfy_LOC_city) || hasText(nfy_country)){
  198 + sb.append(getNodeName());
  199 + sb.append(SPLIT_CODE).append(getNfy_name()).append(CRLF);
  200 + sb.append(SPLIT_CODE).append(getNfy_ADR()).append(CRLF);
  201 +
  202 + sb.append(SPLIT_CODE).append(getNfy_LOC_city());
  203 + if (hasText(nfy_LOC_province)){
  204 + sb.append(SPLIT_CODE).append(getNfy_LOC_province());
  205 + }
  206 + sb.append(CRLF);
  207 +
  208 + sb.append(SPLIT_CODE).append(getNfy_country());
  209 + if (hasText(nfy_postcode)){
  210 + sb.append(SPLIT_CODE).append(getNfy_postcode());
  211 + }else {
  212 + if (hasText(nfy_contact_NUM)){
  213 + sb.append(SPLIT_CODE);
  214 + }
  215 + }
  216 +
  217 + if (hasText(nfy_contact_NUM)){
  218 + sb.append(SPLIT_CODE).append(getNfy_contact_id()).append(SPLIT_CODE).append(getNfy_contact_NUM());
  219 + }
  220 + sb.append(CRLF);
  221 +
  222 +
  223 + }
  224 +
  225 + return sb.toString();
  226 + }
  227 +
  228 + @Override
  229 + public String getNodeName() {
  230 + return "NFY";
  231 + }
71 } 232 }
1 package com.sunyo.wlpt.base.model.efreight.fwb; 1 package com.sunyo.wlpt.base.model.efreight.fwb;
2 2
  3 +import com.sunyo.wlpt.base.model.efreight.BASE;
  4 +import com.sunyo.wlpt.base.model.efreight.fwb.exception.FWBException;
  5 +import com.sunyo.wlpt.base.model.efreight.fwb.exception.FWBExceptionType;
  6 +
  7 +import java.util.regex.Matcher;
  8 +import java.util.regex.Pattern;
  9 +
3 /** 10 /**
4 * 主单发货人 11 * 主单发货人
5 * mandatory (must be included); M 12 * mandatory (must be included); M
6 */ 13 */
7 -public class FWB_SHP { 14 +public class FWB_SHP extends BASE implements FWB_BASE {
8 15
9 /** 16 /**
10 * 发货人账号信息 17 * 发货人账号信息
@@ -57,5 +64,175 @@ public class FWB_SHP { @@ -57,5 +64,175 @@ public class FWB_SHP {
57 private String shp_contact_number; 64 private String shp_contact_number;
58 65
59 66
  67 +
  68 + public String getShp_account_number() throws FWBException {
  69 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,14}$";
  70 + Pattern pattern = Pattern.compile(patternStr);
  71 + Matcher matcher = pattern.matcher(shp_account_number);
  72 + if (!matcher.find()){
  73 + throw new FWBException(FWBExceptionType.FWB_SHP_ACC_ERR);
  74 + }
  75 +
  76 + return shp_account_number;
  77 + }
  78 +
  79 + public void setShp_account_number(String shp_account_number) {
  80 +
  81 + this.shp_account_number = shp_account_number;
  82 + }
  83 +
  84 + public String getShp_name() throws FWBException {
  85 +
  86 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,35}$";
  87 + Pattern pattern = Pattern.compile(patternStr);
  88 + Matcher matcher = pattern.matcher(shp_name);
  89 + if (!matcher.find()){
  90 + throw new FWBException(FWBExceptionType.FWB_SHP_NAME_ERR);
  91 + }
  92 + return shp_name;
  93 + }
  94 +
  95 + public void setShp_name(String shp_name) {
  96 + this.shp_name = shp_name;
  97 + }
  98 +
  99 + public String getShp_adr() throws FWBException {
  100 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,35}$";
  101 + Pattern pattern = Pattern.compile(patternStr);
  102 + Matcher matcher = pattern.matcher(shp_adr);
  103 + if (!matcher.find()){
  104 + throw new FWBException(FWBExceptionType.FWB_SHP_ADR_ERR);
  105 + }
  106 + return shp_adr;
  107 + }
  108 +
  109 + public void setShp_adr(String shp_adr) {
  110 + this.shp_adr = shp_adr;
  111 + }
  112 +
  113 + public String getShp_loc_place() throws FWBException {
  114 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,17}$";
  115 + Pattern pattern = Pattern.compile(patternStr);
  116 + Matcher matcher = pattern.matcher(shp_loc_place);
  117 + if (!matcher.find()){
  118 + throw new FWBException(FWBExceptionType.FWB_SHP_PLC_ERR);
  119 + }
  120 + return shp_loc_place;
  121 + }
  122 +
  123 + public void setShp_loc_place(String shp_loc_place) {
  124 + this.shp_loc_place = shp_loc_place;
  125 + }
  126 +
  127 + public String getShp_loc_province() throws FWBException {
  128 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,9}$";
  129 + Pattern pattern = Pattern.compile(patternStr);
  130 + Matcher matcher = pattern.matcher(shp_loc_province);
  131 + if (!matcher.find()){
  132 + throw new FWBException(FWBExceptionType.FWB_SHP_PVC_ERR);
  133 + }
  134 + return shp_loc_province;
  135 + }
  136 +
  137 + public void setShp_loc_province(String shp_loc_province) {
  138 + this.shp_loc_province = shp_loc_province;
  139 + }
  140 +
  141 + public String getShp_country() throws FWBException {
  142 + String patternStr = "^[A-Z]{2}$";
  143 + Pattern pattern = Pattern.compile(patternStr);
  144 + Matcher matcher = pattern.matcher(shp_country);
  145 + if (!matcher.find()){
  146 + throw new FWBException(FWBExceptionType.FWB_SHP_CNT_ERR);
  147 + }
  148 + return shp_country;
  149 + }
  150 +
  151 + public void setShp_country(String shp_country) {
  152 + this.shp_country = shp_country;
  153 + }
  154 +
  155 + public String getShp_postcode() throws FWBException {
  156 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,9}$";
  157 + Pattern pattern = Pattern.compile(patternStr);
  158 + Matcher matcher = pattern.matcher(shp_postcode);
  159 + if (!matcher.find()){
  160 + throw new FWBException(FWBExceptionType.FWB_SHP_PC_ERR);
  161 + }
  162 + return shp_postcode;
  163 + }
  164 +
  165 + public void setShp_postcode(String shp_postcode) {
  166 + this.shp_postcode = shp_postcode;
  167 + }
  168 +
  169 + public String getShp_contact_id() throws FWBException {
  170 + String patternStr = "^FX|TE|TL$";
  171 + Pattern pattern = Pattern.compile(patternStr);
  172 + Matcher matcher = pattern.matcher(shp_contact_id);
  173 + if (!matcher.find()){
  174 + throw new FWBException(FWBExceptionType.FWB_SHP_CID_ERR);
  175 + }
  176 + return shp_contact_id;
  177 + }
  178 +
  179 + public void setShp_contact_id(String shp_contact_id) {
  180 + this.shp_contact_id = shp_contact_id;
  181 + }
  182 +
  183 + public String getShp_contact_number() throws FWBException {
  184 + String patternStr = "^[A-Z0-9]{1,25}$";
  185 + Pattern pattern = Pattern.compile(patternStr);
  186 + Matcher matcher = pattern.matcher(shp_contact_number);
  187 + if (!matcher.find()){
  188 + throw new FWBException(FWBExceptionType.FWB_SHP_CN_ERR);
  189 + }
  190 + return shp_contact_number;
  191 + }
  192 +
  193 + public void setShp_contact_number(String shp_contact_number) {
  194 + this.shp_contact_number = shp_contact_number;
  195 + }
  196 +
  197 + @Override
  198 + public String getFWBNodeText() throws FWBException {
  199 + String SPLIT_CODE = "/";
  200 + String CRLF = "\n";
  201 + StringBuilder sb = new StringBuilder("");
  202 + if (hasText(shp_account_number)){
  203 + sb.append(SPLIT_CODE).append(getShp_account_number());
  204 + }
  205 + sb.append(CRLF);
  206 + sb.append(SPLIT_CODE).append(getShp_name()).append(CRLF);
  207 + sb.append(SPLIT_CODE).append(getShp_adr()).append(CRLF);
  208 + sb.append(SPLIT_CODE).append(getShp_loc_place());
  209 + if (hasText(shp_loc_province)){
  210 + sb.append(SPLIT_CODE).append(getShp_loc_province());
  211 + }
  212 + sb.append(CRLF);
  213 + sb.append(SPLIT_CODE).append(getShp_country());
  214 + if (hasText(shp_postcode)) {
  215 + sb.append(SPLIT_CODE).append(getShp_postcode());
  216 + }else {
  217 + if (hasText(shp_contact_number)){
  218 + sb.append(SPLIT_CODE);
  219 + }
  220 + }
  221 +
  222 + //联系方式可重复不限次数,todo:处理这种联系方式 有多个信息的
  223 + if (hasText(shp_contact_number)){
  224 + sb.append(SPLIT_CODE).append(getShp_contact_id()).append(SPLIT_CODE).append(getShp_contact_number());
  225 + }
  226 + //todo:此节点循环的报文内容获取方式
  227 +
  228 + sb.append(CRLF);
  229 +
  230 + return sb.toString();
  231 + }
  232 +
  233 + @Override
  234 + public String getNodeName() {
  235 + return "SHP";
  236 + }
60 } 237 }
61 238
1 package com.sunyo.wlpt.base.model.efreight.fwb; 1 package com.sunyo.wlpt.base.model.efreight.fwb;
2 2
  3 +import com.sunyo.wlpt.base.model.efreight.BASE;
  4 +import com.sunyo.wlpt.base.model.efreight.fwb.exception.FWBException;
  5 +import com.sunyo.wlpt.base.model.efreight.fwb.exception.FWBExceptionType;
  6 +
  7 +import java.util.regex.Matcher;
  8 +import java.util.regex.Pattern;
  9 +
3 /** 10 /**
4 * SSR 11 * SSR
5 - * special service request 12 + * Special Service Request
6 * 特殊服务请求 13 * 特殊服务请求
7 * optional (may be included) 可选(有可能包含) 14 * optional (may be included) 可选(有可能包含)
8 * 请求最多可重复3次 15 * 请求最多可重复3次
9 * DEMO: 16 * DEMO:
10 * /SSR/RQUEST TXT/REQUST TXT/REQUEST TXT 17 * /SSR/RQUEST TXT/REQUST TXT/REQUEST TXT
11 */ 18 */
12 -public class FWB_SSR { 19 +public class FWB_SSR extends BASE implements FWB_BASE {
13 /** 20 /**
14 * 特殊服务请求内容 21 * 特殊服务请求内容
15 * [A-Z0-9-<=/\s\.]{0,65} 22 * [A-Z0-9-<=/\s\.]{0,65}
16 */ 23 */
17 private String ssr_request_content; 24 private String ssr_request_content;
  25 +
  26 + public String getSsr_request_content() throws FWBException {
  27 +
  28 + String patternStr = "^[A-Z0-9-<=/\\s\\.]{0,65}$";
  29 + Pattern pattern = Pattern.compile(patternStr);
  30 + Matcher matcher = pattern.matcher(ssr_request_content);
  31 + if (!matcher.find()){
  32 + throw new FWBException(FWBExceptionType.FWB_SSR_CONT_ERR);
  33 + }
  34 +
  35 + return ssr_request_content;
  36 + }
  37 +
  38 + public void setSsr_request_content(String ssr_request_content) {
  39 + this.ssr_request_content = ssr_request_content;
  40 + }
  41 +
  42 + @Override
  43 + public String getFWBNodeText() throws FWBException {
  44 + String SPLIT_CODE = "/";
  45 + String CRLF = "\n";
  46 + StringBuilder sb = new StringBuilder("");
  47 +
  48 + if (hasText(ssr_request_content)){
  49 + sb.append(getNodeName());
  50 + sb.append(SPLIT_CODE).append(getSsr_request_content());
  51 + sb.append(CRLF);
  52 + }
  53 +
  54 + return sb.toString();
  55 + }
  56 +
  57 + @Override
  58 + public String getNodeName() {
  59 + return "SSR";
  60 + }
18 } 61 }
@@ -32,6 +32,56 @@ public enum FWBExceptionType { @@ -32,6 +32,56 @@ public enum FWBExceptionType {
32 FWB_RTG_AIRPORT_ERR("422","涉及航站信息有误"), 32 FWB_RTG_AIRPORT_ERR("422","涉及航站信息有误"),
33 FWB_RTG_CARRIER_ERR("422","涉及承运人信息有误"), 33 FWB_RTG_CARRIER_ERR("422","涉及承运人信息有误"),
34 34
  35 + FWB_SHP_ACC_ERR("522","发货人账号信息格式有误"),
  36 + FWB_SHP_NAME_ERR("543","发货人名称信息格式有误"),
  37 + FWB_SHP_ADR_ERR("553","发货人地址信息格式有误"),
  38 + FWB_SHP_PLC_ERR("563","发货人城市信息格式有误"),
  39 + FWB_SHP_PVC_ERR("565","发货人省份信息格式有误"),
  40 + FWB_SHP_CNT_ERR("572","发货人国家信息格式有误"),
  41 + FWB_SHP_PC_ERR("573","发货人邮编信息格式有误"),
  42 + FWB_SHP_CID_ERR("582","发货人联系方式代码格式有误"),
  43 + FWB_SHP_CN_ERR("584","发货人联系方式信息格式有误"),
  44 +
  45 + FWB_CNE_ACC_ERR("622","收货人账号信息格式有误"),
  46 + FWB_CNE_NAME_ERR("643","收货人名称信息格式有误"),
  47 + FWB_CNE_ADR_ERR("653","收货人地址信息格式有误"),
  48 + FWB_CNE_PLC_ERR("663","收货人城市信息格式有误"),
  49 + FWB_CNE_PVC_ERR("665","收货人省份信息格式有误"),
  50 + FWB_CNE_CNT_ERR("672","收货人国家信息格式有误"),
  51 + FWB_CNE_PC_ERR("673","收货人邮编信息格式有误"),
  52 + FWB_CNE_CID_ERR("682","收货人联系方式代码格式有误"),
  53 + FWB_CNE_CN_ERR("684","收货人联系方式信息格式有误"),
  54 +
  55 +
  56 + FWB_AGT_ACC_ERR("722","代理人账号信息格式有误"),
  57 + FWB_AGT_IATA_ERR("724","代理人IATA注册号信息格式有误"),
  58 + FWB_AGT_CASS_ERR("726","代理人CASS注册号信息格式有误"),
  59 + FWB_AGT_PID_ERR("728","代理人参与者标识符信息格式有误"),
  60 + FWB_AGT_NAME_ERR("742","代理人名称信息格式有误"),
  61 + FWB_AGT_ADR_ERR("752","代理人地址信息格式有误"),
  62 +
  63 + FWB_SSR_CONT_ERR("883","SSR特殊服务请求内容信息格式有误"),
  64 +
  65 + FWB_NFY_NAME_ERR("933","被通知人名称信息格式有误"),
  66 + FWB_NFY_ADR_ERR("943"," 被通知人地址信息格式有误"),
  67 + FWB_NFY_PLC_ERR("953"," 被通知人城市信息格式有误"),
  68 + FWB_NFY_PVC_ERR("955"," 被通知人省份信息格式有误"),
  69 + FWB_NFY_CNT_ERR("962"," 被通知人国家信息格式有误"),
  70 + FWB_NFY_PC_ERR("964"," 被通知人邮编信息格式有误"),
  71 + FWB_NFY_CID_ERR("972"," 被通知人联系方式代码格式有误"),
  72 + FWB_NFY_CN_ERR("974"," 被通知人联系方式信息格式有误"),
  73 +
  74 + FWB_ACC_ID_ERR ("1022","ACC财务信息ID格式有误"),
  75 + FWB_ACC_INFO_ERR("1024","ACC财务信息内容格式有误"),
  76 +
  77 + FWB_CVD_CUR_ERR("1130","CVD收费声明货币单位格式有误"),
  78 + FWB_CVD_CC_ERR("1150","CVD收费代码格式有误"),
  79 + FWB_CVD_PCCD_ERR("1170","CVD预付/到付声明格式有误"),
  80 + FWB_CVD_VCD_ERR("1180","运费申报价值对承运人声明格式有误"),
  81 + FWB_CVD_DVC_ERR("11101","海关声明价值格式有误"),
  82 + FWB_CVD_VID_ERR("11112","保险声明价值格式有误"),
  83 +
  84 +
35 85
36 REF_ERROR("203", "缺少 REF Sender Reference - Sender Office Message Address"), 86 REF_ERROR("203", "缺少 REF Sender Reference - Sender Office Message Address"),
37 REF_SOMA_REGEX_FAILD("2031", "REF- Sender Office Message Address RegEx Faild"), 87 REF_SOMA_REGEX_FAILD("2031", "REF- Sender Office Message Address RegEx Faild"),
  1 +import com.sun.org.apache.regexp.internal.RE;
1 import com.sunyo.wlpt.base.model.efreight.fwb.*; 2 import com.sunyo.wlpt.base.model.efreight.fwb.*;
2 import com.sunyo.wlpt.base.model.efreight.fwb.exception.FWBException; 3 import com.sunyo.wlpt.base.model.efreight.fwb.exception.FWBException;
3 4
4 public class FWBTest { 5 public class FWBTest {
5 -  
6 public static void main(String[] args) { 6 public static void main(String[] args) {
7 7
8 - FWB_WAYBILL_TEST();  
9 -// FWB_FLT_TEST();  
10 - FWB_RTG_TEST();  
11 - REF_TEST();  
12 -  
13 -// OCI_TEST();  
14 -  
15 8
16 - } 9 + System.out.println(
  10 + FWB_WAYBILL_TEST()
  11 + + FWB_FLT_TEST()
  12 + + FWB_RTG_TEST()
  13 + + FWB_SHP_TEST()
  14 + + FWB_AGT_TEST()
  15 + + FWB_SSR_TEST()
  16 + + FWB_NFY_TEST()
  17 + + FWB_ACC_TEST()
  18 + + FWB_CVD_TEST()
  19 + );
  20 +// REF_TEST();
17 21
18 - static void OCI_TEST(){  
19 - FWB_OCI fwb_oci = new FWB_OCI();  
20 - fwb_oci.setOci_csrc_id("T");  
21 - fwb_oci.setOci_csrc_info("USCI91440101MA9Y9E79XG");  
22 - fwb_oci.setOci_country_code("CN");  
23 - fwb_oci.setOci_information_id("SHP");  
24 - try {  
25 - String oci = fwb_oci.getFWBNodeText();  
26 - System.out.println(oci);  
27 - } catch (FWBException e) {  
28 - e.printStackTrace();  
29 - }  
30 - } 22 +// OCI_TEST();
31 23
32 - static void REF_TEST(){  
33 - FWB_REF fwb_ref = new FWB_REF();  
34 - fwb_ref.setRef_address("CGOFDIE");  
35 - fwb_ref.setRef_file_reference("EC1A2C4CBC3D1");  
36 - fwb_ref.setRef_participant_id("AGT");  
37 - fwb_ref.setRef_participant_code("MECCGO01");  
38 - fwb_ref.setRef_participant_airport("CGO");  
39 24
40 - try {  
41 - String oci = fwb_ref.getNodeName() + fwb_ref.getFWBNodeText();  
42 - System.out.println(oci);  
43 - } catch (FWBException e) {  
44 - e.printStackTrace();  
45 - }  
46 } 25 }
47 26
48 static String FWB_WAYBILL_TEST(){ 27 static String FWB_WAYBILL_TEST(){
@@ -67,7 +46,7 @@ public class FWBTest { @@ -67,7 +46,7 @@ public class FWBTest {
67 return ""; 46 return "";
68 } 47 }
69 48
70 - static void FWB_FLT_TEST(){ 49 + static String FWB_FLT_TEST(){
71 FWB_FLT flt = new FWB_FLT(); 50 FWB_FLT flt = new FWB_FLT();
72 flt.setCariier("CV"); 51 flt.setCariier("CV");
73 flt.setFlightNumber("732"); 52 flt.setFlightNumber("732");
@@ -75,24 +54,165 @@ public class FWBTest { @@ -75,24 +54,165 @@ public class FWBTest {
75 54
76 try { 55 try {
77 String nodeText = flt.getNodeName() + flt.getFWBNodeText() + "\n"; 56 String nodeText = flt.getNodeName() + flt.getFWBNodeText() + "\n";
78 - System.out.println(FWB_WAYBILL_TEST()+nodeText); 57 + return nodeText;
  58 +// System.out.println(FWB_WAYBILL_TEST()+nodeText);
79 } catch (FWBException e) { 59 } catch (FWBException e) {
80 e.printStackTrace(); 60 e.printStackTrace();
81 } 61 }
  62 + return "";
82 } 63 }
83 64
84 - static void FWB_RTG_TEST(){ 65 + static String FWB_RTG_TEST(){
85 FWB_RTG var = new FWB_RTG(); 66 FWB_RTG var = new FWB_RTG();
86 -// var.setDestinationAirport("ICN");  
87 - var.setDestinationCarrier("F5");  
88 - var.setOnwardAirport("SIN"); 67 + var.setDestinationAirport("ICN");
  68 + var.setDestinationCarrier("CV");
  69 +// var.setOnwardAirport("SIN");
89 // var.setOnwardCarrier("K9"); 70 // var.setOnwardCarrier("K9");
90 71
91 try { 72 try {
92 String nodeText = var.getNodeName() + var.getFWBNodeText() + "\n"; 73 String nodeText = var.getNodeName() + var.getFWBNodeText() + "\n";
93 - System.out.println(FWB_WAYBILL_TEST()+nodeText); 74 +// System.out.println(FWB_WAYBILL_TEST()+nodeText);
  75 + return nodeText;
  76 + } catch (FWBException e) {
  77 + e.printStackTrace();
  78 + }
  79 + return "";
  80 + }
  81 +
  82 + static String FWB_SHP_TEST(){
  83 + FWB_SHP var = new FWB_SHP();
  84 + var.setShp_name("HENAN CIVIL AVIATION DEVELOPMENT");
  85 + var.setShp_account_number("ABC");
  86 + var.setShp_adr("HNCA BUILDING YUHONG WORLD");
  87 + var.setShp_loc_place("ZHENGZHOU");
  88 + var.setShp_loc_province("HENAN");
  89 + var.setShp_country("CN");
  90 + var.setShp_postcode("");
  91 + var.setShp_contact_id("TE");
  92 + var.setShp_contact_number("450000");
  93 +
  94 +
  95 + try {
  96 + String nodeText = var.getNodeName() + var.getFWBNodeText();
  97 + return nodeText;
94 } catch (FWBException e) { 98 } catch (FWBException e) {
95 e.printStackTrace(); 99 e.printStackTrace();
96 } 100 }
  101 + return "";
97 } 102 }
  103 +
  104 + static String FWB_AGT_TEST(){
  105 + FWB_AGT var = new FWB_AGT();
  106 + var.setAgt_account_number("");
  107 + var.setAgt_IATA_number("0831714");
  108 + var.setAgt_CASS_ADR("0215");
  109 +// var.setAgt_participant_id("CAG");
  110 + var.setAgt_name("BOLLORE LOGISTICS CHINA CO LTD ");
  111 + var.setAgt_ADR("SHANGHAI");
  112 +
  113 +
  114 + try {
  115 + String nodeText = var.getFWBNodeText() ;
  116 + return nodeText;
  117 + } catch (FWBException e) {
  118 + e.printStackTrace();
  119 + }
  120 + return "";
  121 + }
  122 +
  123 + static String FWB_SSR_TEST(){
  124 + FWB_SSR var = new FWB_SSR();
  125 + var.setSsr_request_content("ALSO CNEE OPERATIONAL CODE 086500 NETTING CODE 0462 VAT NO 486017");
  126 +
  127 + try {
  128 + String nodeText = var.getFWBNodeText() ;
  129 + return nodeText;
  130 + } catch (FWBException e) {
  131 + e.printStackTrace();
  132 + }
  133 + return "";
  134 + }
  135 +
  136 + static String FWB_NFY_TEST(){
  137 + FWB_NFY var = new FWB_NFY();
  138 + var.setNfy_name("DSV AIR SEA AB - I200");
  139 + var.setNfy_ADR("NO.3 UNIT 2F-W2 WAREHOUSE NO.83 SH");
  140 + var.setNfy_LOC_city("SHANGHAI");
  141 + var.setNfy_LOC_province("");
  142 + var.setNfy_country("CN");
  143 + var.setNfy_postcode("");
  144 + var.setNfy_contact_id("TE");
  145 + var.setNfy_contact_NUM("TE00862160278315");
  146 + try {
  147 + String nodeText = var.getFWBNodeText() ;
  148 + return nodeText;
  149 + } catch (FWBException e) {
  150 + e.printStackTrace();
  151 + }
  152 + return "";
  153 + }
  154 +
  155 + static String FWB_ACC_TEST(){
  156 + FWB_ACC var = new FWB_ACC();
  157 + var.setAcc_info_id("GEN");
  158 + var.setAcc_info("FREIGHT PREPAID");
  159 + try {
  160 + String nodeText = var.getFWBNodeText() ;
  161 + return nodeText;
  162 + } catch (FWBException e) {
  163 + e.printStackTrace();
  164 + }
  165 + return "";
  166 + }
  167 +
  168 + static String FWB_CVD_TEST(){
  169 + FWB_CVD var = new FWB_CVD();
  170 + var.setCvd_currency_code("INR");
  171 +// var.setCvd_charge_code("PX");
  172 + var.setCvd_charge_prepaid("PP");
  173 + var.setCvd_value_for_carriage("NVD");
  174 + var.setCvd_value_for_customs("NCV");
  175 + var.setCvd_amount_of_insurance("XXX");
  176 +
  177 + try {
  178 + String nodeText = var.getFWBNodeText() ;
  179 + return nodeText;
  180 + } catch (FWBException e) {
  181 + e.printStackTrace();
  182 + }
  183 + return "";
  184 + }
  185 +
  186 +
  187 + static void OCI_TEST(){
  188 + FWB_OCI fwb_oci = new FWB_OCI();
  189 + fwb_oci.setOci_csrc_id("T");
  190 + fwb_oci.setOci_csrc_info("USCI91440101MA9Y9E79XG");
  191 + fwb_oci.setOci_country_code("CN");
  192 + fwb_oci.setOci_information_id("SHP");
  193 + try {
  194 + String oci = fwb_oci.getFWBNodeText();
  195 + System.out.println(oci);
  196 + } catch (FWBException e) {
  197 + e.printStackTrace();
  198 + }
  199 + }
  200 +
  201 + static void REF_TEST(){
  202 + FWB_REF fwb_ref = new FWB_REF();
  203 + fwb_ref.setRef_address("CGOFDIE");
  204 + fwb_ref.setRef_file_reference("EC1A2C4CBC3D1");
  205 + fwb_ref.setRef_participant_id("AGT");
  206 + fwb_ref.setRef_participant_code("MECCGO01");
  207 + fwb_ref.setRef_participant_airport("CGO");
  208 +
  209 + try {
  210 + String oci = fwb_ref.getNodeName() + fwb_ref.getFWBNodeText();
  211 + System.out.println(oci);
  212 + } catch (FWBException e) {
  213 + e.printStackTrace();
  214 + }
  215 + }
  216 +
  217 +
98 } 218 }