作者 朱兆平

部分报文格式生成及验证

  1 +package com.sunyo.wlpt.base.model.efreight;
  2 +
  3 +import org.springframework.util.StringUtils;
  4 +
  5 +public class BASE {
  6 +
  7 + public boolean hasText(String var){
  8 + return StringUtils.hasText(var);
  9 + }
  10 +
  11 +}
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 * @author mrz 12 * @author mrz
6 * @date 2023-05-30 13 * @date 2023-05-30
7 * 14 *
8 */ 15 */
9 -public class FWB { 16 +public class FWB extends BASE implements FWB_BASE {
10 /** 17 /**
11 * 版本号 18 * 版本号
12 * 默认16 19 * 默认16
@@ -14,35 +21,36 @@ public class FWB { @@ -14,35 +21,36 @@ public class FWB {
14 public String ver = "16"; 21 public String ver = "16";
15 /** 22 /**
16 * 主运单格式 23 * 主运单格式
  24 + * [0-9]{3}-[0-9]{8}
17 */ 25 */
18 - private String waybillNum; 26 + private String waybillNum = "";
19 /** 27 /**
20 * 运单起始站 28 * 运单起始站
21 */ 29 */
22 - private String origin; 30 + private String origin = "";
23 /** 31 /**
24 * 运单目的站 32 * 运单目的站
25 */ 33 */
26 - private String destination; 34 + private String destination = "";
27 /** 35 /**
28 * 运单总件数 36 * 运单总件数
29 * number of pieces 37 * number of pieces
30 */ 38 */
31 - private String quantity_picecs; 39 + private String quantity_picecs = "";
32 /** 40 /**
33 * 运单毛重,运单的实际称重 41 * 运单毛重,运单的实际称重
34 */ 42 */
35 - private String quantity_weight; 43 + private String quantity_weight = "";
36 /** 44 /**
37 * 计重单位, 45 * 计重单位,
38 * K 代表KG 公斤 46 * K 代表KG 公斤
39 * L 代表公升 47 * L 代表公升
40 */ 48 */
41 - private String quantity_weight_code; 49 + private String quantity_weight_code = "";
42 /** 50 /**
43 * 体积 51 * 体积
44 */ 52 */
45 - private String quantity_volume; 53 + private String quantity_volume = "";
46 /** 54 /**
47 * 体积单位 55 * 体积单位
48 * MC 代表 立方米 Cubic Metres 56 * MC 代表 立方米 Cubic Metres
@@ -50,19 +58,199 @@ public class FWB { @@ -50,19 +58,199 @@ public class FWB {
50 * CF 代表 立方英尺 Cubic Feet 58 * CF 代表 立方英尺 Cubic Feet
51 * CI 代表 立方英寸 Cubic Inches 59 * CI 代表 立方英寸 Cubic Inches
52 */ 60 */
53 - private String quantity_volume_code; 61 + private String quantity_volume_code = "";
54 /** 62 /**
55 * 密度 63 * 密度
56 * 可选节点 64 * 可选节点
57 */ 65 */
58 - private String quantity_density ; 66 + private String quantity_density = "";
59 /** 67 /**
60 * 密度 68 * 密度
61 * 可选节点 69 * 可选节点
62 */ 70 */
63 private String quantity_density_code = "DG"; 71 private String quantity_density_code = "DG";
64 72
  73 + public String getWaybillNum() throws FWBException {
  74 +
  75 + String patternStr = "^[0-9]{3}-[0-9]{8}$";
  76 + Pattern pattern = Pattern.compile(patternStr);
  77 + Matcher matcher = pattern.matcher(waybillNum);
  78 + if (!matcher.find()){
  79 + throw new FWBException(FWBExceptionType.FWB_WAYBILL_ERR);
  80 + }
  81 +
  82 + String serialNumber = waybillNum.split("-")[1];
  83 + Integer serialNumber7 = Integer.valueOf(serialNumber.substring(0,7)) ;
  84 + Integer serialNumberEnd = Integer.valueOf(serialNumber.substring(7));
  85 +
  86 + //模七校验
  87 + if ((serialNumber7%7) != serialNumberEnd){
  88 + throw new FWBException(FWBExceptionType.FWB_WAYBILL_REGX_ERR);
  89 + }
  90 +
  91 + return waybillNum;
  92 + }
  93 +
  94 + public void setWaybillNum(String waybillNum) {
  95 + this.waybillNum = waybillNum;
  96 + }
  97 +
  98 + public String getOrigin() throws FWBException {
  99 + String patternStr = "^[A-Z]{3}$";
  100 + Pattern pattern = Pattern.compile(patternStr);
  101 + Matcher matcher = pattern.matcher(origin);
  102 + if (!matcher.find()){
  103 + throw new FWBException(FWBExceptionType.FWB_WAYBILL_ORGN_ERR);
  104 + }
  105 + return origin;
  106 + }
  107 +
  108 + public void setOrigin(String origin) {
  109 + this.origin = origin;
  110 + }
  111 +
  112 + public String getDestination() throws FWBException {
  113 + String patternStr = "^[A-Z]{3}$";
  114 + Pattern pattern = Pattern.compile(patternStr);
  115 + Matcher matcher = pattern.matcher(origin);
  116 + if (!matcher.find()){
  117 + throw new FWBException(FWBExceptionType.FWB_WAYBILL_DES_ERR);
  118 + }
  119 + return destination;
  120 + }
  121 +
  122 + public void setDestination(String destination) {
  123 + this.destination = destination;
  124 + }
  125 +
  126 + public String getQuantity_picecs() throws FWBException {
  127 +
  128 + String patternStr = "^[0-9]{1,4}$";
  129 + Pattern pattern = Pattern.compile(patternStr);
  130 + Matcher matcher = pattern.matcher(quantity_picecs);
  131 + if (!matcher.find()){
  132 + throw new FWBException(FWBExceptionType.FWB_WAYBILL_PCE_ERR);
  133 + }
  134 + return quantity_picecs;
  135 + }
  136 +
  137 + public void setQuantity_picecs(String quantity_picecs) {
  138 + this.quantity_picecs = quantity_picecs;
  139 + }
  140 +
  141 + public String getQuantity_weight() throws FWBException {
  142 +
  143 + String patternStr = "^[1-9][0-9\\.]{1,6}$";
  144 + Pattern pattern = Pattern.compile(patternStr);
  145 + Matcher matcher = pattern.matcher(quantity_weight);
  146 + if (!matcher.find()){
  147 + throw new FWBException(FWBExceptionType.FWB_WAYBILL_WGT_ERR);
  148 + }
  149 + return quantity_weight;
  150 + }
  151 +
  152 + public void setQuantity_weight(String quantity_weight) {
  153 + this.quantity_weight = quantity_weight;
  154 + }
  155 +
  156 + public String getQuantity_weight_code() throws FWBException {
  157 +
  158 + String patternStr = "^[KL]$";
  159 + Pattern pattern = Pattern.compile(patternStr);
  160 + Matcher matcher = pattern.matcher(quantity_weight_code);
  161 + if (!matcher.find()){
  162 + throw new FWBException(FWBExceptionType.FWB_WAYBILL_WGT_CODE_ERR);
  163 + }
  164 +
  165 + return quantity_weight_code;
  166 + }
  167 +
  168 + public void setQuantity_weight_code(String quantity_weight_code) {
  169 + this.quantity_weight_code = quantity_weight_code;
  170 + }
  171 +
  172 + public String getQuantity_volume() throws FWBException {
  173 +
  174 + if (hasText(quantity_volume)){
  175 + String patternStr = "^[1-9][0-9\\.]{0,8}$";
  176 + Pattern pattern = Pattern.compile(patternStr);
  177 + Matcher matcher = pattern.matcher(quantity_volume);
  178 + if (!matcher.find()){
  179 + throw new FWBException(FWBExceptionType.FWB_WAYBILL_VOL_ERR);
  180 + }
  181 + }
  182 +
  183 + return quantity_volume;
  184 + }
  185 +
  186 + public void setQuantity_volume(String quantity_volume) {
  187 + this.quantity_volume = quantity_volume;
  188 + }
  189 +
  190 + public String getQuantity_volume_code() throws FWBException {
  191 + String patternStr = "^MC|CC|CI|CF$";
  192 + Pattern pattern = Pattern.compile(patternStr);
  193 + Matcher matcher = pattern.matcher(quantity_volume_code);
  194 + if (!matcher.find()){
  195 + throw new FWBException(FWBExceptionType.FWB_WAYBILL_VOL_CODE_ERR);
  196 + }
  197 + return quantity_volume_code;
  198 + }
  199 +
  200 + public void setQuantity_volume_code(String quantity_volume_code) {
  201 + this.quantity_volume_code = quantity_volume_code;
  202 + }
  203 +
  204 + public String getQuantity_density() throws FWBException {
  205 + String patternStr = "^[1-9]?[0-9]?$";
  206 + Pattern pattern = Pattern.compile(patternStr);
  207 + Matcher matcher = pattern.matcher(quantity_density);
  208 + if (!matcher.find()){
  209 + throw new FWBException(FWBExceptionType.FWB_WAYBILL_DG_ERR);
  210 + }
  211 + return quantity_density;
  212 + }
  213 +
  214 + public void setQuantity_density(String quantity_density) {
  215 + this.quantity_density = quantity_density;
  216 + }
  217 +
  218 + public String getQuantity_density_code() {
  219 + return quantity_density_code;
  220 + }
  221 +
  222 + public void setQuantity_density_code(String quantity_density_code) {
  223 + this.quantity_density_code = quantity_density_code;
  224 + }
  225 +
  226 + @Override
  227 + public String getFWBNodeText() throws FWBException {
  228 +
  229 + String SPLIT_CODE = "/";
  230 + String CRLF = "\n";
  231 + StringBuilder sb = new StringBuilder("");
  232 +
  233 + sb.append(getWaybillNum()).append(getOrigin()).append(getDestination())
  234 + .append(SPLIT_CODE).append("T").append(getQuantity_picecs())
  235 + .append(getQuantity_weight_code()).append(getQuantity_weight());
  236 +
  237 + if (hasText(getQuantity_volume())){
  238 + sb.append(getQuantity_volume_code()).append(getQuantity_volume());
  239 + }
  240 +
  241 + if (hasText(getQuantity_density())){
  242 + sb.append(getQuantity_density_code()).append(getQuantity_density());
  243 + }
  244 +
  245 +
65 246
  247 + sb.append(CRLF);
66 248
  249 + return sb.toString();
  250 + }
67 251
  252 + @Override
  253 + public String getNodeName() {
  254 + return "FWB/"+ver+"\n";
  255 + }
68 } 256 }
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 * Flight Bookings 11 * Flight Bookings
5 * FLT 12 * FLT
6 * 运单航程航班 13 * 运单航程航班
  14 + * O 可选节点
  15 + * 可重复最多两次
7 */ 16 */
8 -public class FWB_FLT { 17 +public class FWB_FLT extends BASE implements FWB_BASE {
9 /** 18 /**
10 * 承运人代码 mm 19 * 承运人代码 mm
11 - * [A-Z]{2} 20 + * [A-Z0-9]{2}
12 */ 21 */
13 - private String cariier; 22 + private String cariier = "";
14 /** 23 /**
15 * 航班号 nnn(n)(a) 24 * 航班号 nnn(n)(a)
16 * [0-9]{3}\d?[A-Z0-9]? 25 * [0-9]{3}\d?[A-Z0-9]?
17 */ 26 */
18 - private String flightNumber; 27 + private String flightNumber = "";
19 /** 28 /**
20 * 航班日期 - 按日标识 29 * 航班日期 - 按日标识
21 * [0-9]{2} 30 * [0-9]{2}
22 */ 31 */
23 - private String day; 32 + private String day = "";
  33 +
  34 + public String getCariier() throws FWBException {
  35 + String patternStr = "^[A-Z0-9]{0,2}$";
  36 + Pattern pattern = Pattern.compile(patternStr);
  37 + Matcher matcher = pattern.matcher(cariier);
  38 + if (!matcher.find()){
  39 + throw new FWBException(FWBExceptionType.FWB_FLT_CARRIER_ERR);
  40 + }
  41 + return cariier;
  42 + }
  43 +
  44 + public void setCariier(String cariier) {
  45 + this.cariier = cariier;
  46 + }
  47 +
  48 + public String getFlightNumber() throws FWBException {
  49 + String patternStr = "^[0-9]{3}\\d?[A-Z0-9]?$";
  50 + Pattern pattern = Pattern.compile(patternStr);
  51 + Matcher matcher = pattern.matcher(flightNumber);
  52 + if (!matcher.find()){
  53 + throw new FWBException(FWBExceptionType.FWB_FLT_NUMBER_ERR);
  54 + }
  55 +
  56 + return flightNumber;
  57 + }
  58 +
  59 + public void setFlightNumber(String flightNumber) {
  60 + this.flightNumber = flightNumber;
  61 + }
  62 +
  63 + public String getDay() throws FWBException {
  64 + String patternStr = "^[0-9]{2}$";
  65 + Pattern pattern = Pattern.compile(patternStr);
  66 + Matcher matcher = pattern.matcher(day);
  67 + if (!matcher.find() || Integer.parseInt(day) > 31){
  68 + throw new FWBException(FWBExceptionType.FWB_FLT_DAY_ERR);
  69 + }
  70 +
  71 + return day;
  72 + }
  73 +
  74 + public void setDay(String day) {
  75 + this.day = day;
  76 + }
  77 +
  78 + @Override
  79 + public String getFWBNodeText() throws FWBException {
  80 + String SPLIT_CODE = "/";
  81 + String CRLF = "\n";
  82 + StringBuilder sb = new StringBuilder("");
  83 +
  84 + if (hasText(cariier) || hasText(flightNumber) || hasText(day)){
  85 + sb.append(SPLIT_CODE).append(getCariier()).append(getFlightNumber()).append(SPLIT_CODE).append(getDay());
  86 + }
  87 +
  88 + //todo:此节点循环的报文内容获取方式
  89 +
  90 +// sb.append(CRLF);
  91 +
  92 + return sb.toString();
  93 + }
24 94
  95 + @Override
  96 + public String getNodeName() {
  97 + return "FLT";
  98 + }
25 } 99 }
1 package com.sunyo.wlpt.base.model.efreight.fwb; 1 package com.sunyo.wlpt.base.model.efreight.fwb;
2 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 +
3 /** 11 /**
4 * Flight Bookings 12 * Flight Bookings
5 * Routing 13 * Routing
6 * RTG 14 * RTG
7 * 运单航程目的地承运人 15 * 运单航程目的地承运人
8 */ 16 */
9 -public class FWB_RTG { 17 +public class FWB_RTG extends BASE implements FWB_BASE {
10 /** 18 /**
11 * 首程目的站 19 * 首程目的站
12 * [A-Z]{3} 20 * [A-Z]{3}
@@ -22,10 +30,98 @@ public class FWB_RTG { @@ -22,10 +30,98 @@ public class FWB_RTG {
22 * 下一航程起始航站 30 * 下一航程起始航站
23 * 可选节点 31 * 可选节点
24 * 下一航程节点最多可重复两次,结合首程一共三个航程 32 * 下一航程节点最多可重复两次,结合首程一共三个航程
  33 + * Onward 部分最多可以出现2次
25 */ 34 */
26 private String onwardAirport; 35 private String onwardAirport;
27 /** 36 /**
28 * 下一航程起始航站承运人 37 * 下一航程起始航站承运人
29 */ 38 */
30 private String onwardCarrier; 39 private String onwardCarrier;
  40 +
  41 + public String getDestinationAirport() throws FWBException {
  42 +
  43 + String patternStr = "^[A-Z]{3}$";
  44 + Pattern pattern = Pattern.compile(patternStr);
  45 + Matcher matcher = pattern.matcher(destinationAirport);
  46 + if (!matcher.find()){
  47 + throw new FWBException(FWBExceptionType.FWB_RTG_AIRPORT_ERR);
  48 + }
  49 + return destinationAirport;
  50 + }
  51 +
  52 + public void setDestinationAirport(String destinationAirport) {
  53 + this.destinationAirport = destinationAirport;
  54 + }
  55 +
  56 + public String getDestinationCarrier() throws FWBException {
  57 + String patternStr = "^[A-Z0-9]{0,2}$";
  58 + Pattern pattern = Pattern.compile(patternStr);
  59 + Matcher matcher = pattern.matcher(destinationCarrier);
  60 + if (!matcher.find()){
  61 + throw new FWBException(FWBExceptionType.FWB_RTG_CARRIER_ERR);
  62 + }
  63 + return destinationCarrier;
  64 + }
  65 +
  66 + public void setDestinationCarrier(String destinationCarrier) {
  67 + this.destinationCarrier = destinationCarrier;
  68 + }
  69 +
  70 + public String getOnwardAirport() throws FWBException {
  71 + String patternStr = "^[A-Z]{3}$";
  72 + Pattern pattern = Pattern.compile(patternStr);
  73 + Matcher matcher = pattern.matcher(onwardAirport);
  74 + if (!matcher.find()){
  75 + throw new FWBException(FWBExceptionType.FWB_RTG_AIRPORT_ERR);
  76 + }
  77 + return onwardAirport;
  78 + }
  79 +
  80 + public void setOnwardAirport(String onwardAirport) {
  81 + this.onwardAirport = onwardAirport;
  82 + }
  83 +
  84 + public String getOnwardCarrier() throws FWBException {
  85 + String patternStr = "^[A-Z0-9]{0,2}$";
  86 + Pattern pattern = Pattern.compile(patternStr);
  87 + Matcher matcher = pattern.matcher(onwardCarrier);
  88 + if (!matcher.find()){
  89 + throw new FWBException(FWBExceptionType.FWB_RTG_CARRIER_ERR);
  90 + }
  91 + return onwardCarrier;
  92 + }
  93 +
  94 + public void setOnwardCarrier(String onwardCarrier) {
  95 + this.onwardCarrier = onwardCarrier;
  96 + }
  97 +
  98 +
  99 + @Override
  100 + public String getFWBNodeText() throws FWBException {
  101 + String SPLIT_CODE = "/";
  102 + String CRLF = "\n";
  103 + StringBuilder sb = new StringBuilder("");
  104 + sb.append(SPLIT_CODE);
  105 + if (hasText(destinationAirport)) {
  106 + sb.append(getDestinationAirport());
  107 + }
  108 + sb.append(getDestinationCarrier());
  109 + if (hasText(onwardAirport)) {
  110 + sb.append(SPLIT_CODE).append(getOnwardAirport());
  111 + }
  112 + if (hasText(onwardCarrier) ){
  113 + sb.append(getOnwardCarrier());
  114 + }
  115 +
  116 + //todo:此节点循环的报文内容获取方式
  117 +
  118 +// sb.append(CRLF);
  119 +
  120 + return sb.toString();
  121 + }
  122 +
  123 + @Override
  124 + public String getNodeName() {
  125 + return "RTG";
  126 + }
31 } 127 }
@@ -7,6 +7,32 @@ package com.sunyo.wlpt.base.model.efreight.fwb.exception; @@ -7,6 +7,32 @@ package com.sunyo.wlpt.base.model.efreight.fwb.exception;
7 */ 7 */
8 8
9 public enum FWBExceptionType { 9 public enum FWBExceptionType {
  10 +
  11 + /**
  12 + * 运单号格式验证错误
  13 + */
  14 + FWB_WAYBILL_ERR("21","运单格式错误,格式须为 [0-9]{3}-[0-9]{8}"),
  15 + /**
  16 + * 运单号模七验证错误
  17 + */
  18 + FWB_WAYBILL_REGX_ERR("211","运单不符合模七校验"),
  19 + FWB_WAYBILL_ORGN_ERR("221","运单起始地格式错误"),
  20 + FWB_WAYBILL_DES_ERR("222","运单目的地格式错误"),
  21 + FWB_WAYBILL_PCE_ERR("233","运单件数信息错误"),
  22 + FWB_WAYBILL_WGT_CODE_ERR("234","运单重量单位信息错误"),
  23 + FWB_WAYBILL_WGT_ERR("235","运单重量信息错误"),
  24 + FWB_WAYBILL_VOL_CODE_ERR("241","运单体积单位信息错误"),
  25 + FWB_WAYBILL_VOL_ERR("242","运单体积 信息错误"),
  26 + FWB_WAYBILL_DG_ERR("252","运单密度信息错误"),
  27 +
  28 + FWB_FLT_CARRIER_ERR("322","承运人信息错误"),
  29 + FWB_FLT_NUMBER_ERR("323","航班号信息错误"),
  30 + FWB_FLT_DAY_ERR("325","航班日期信息错误,格式为应为[0-9]{2}"),
  31 +
  32 + FWB_RTG_AIRPORT_ERR("422","涉及航站信息有误"),
  33 + FWB_RTG_CARRIER_ERR("422","涉及承运人信息有误"),
  34 +
  35 +
10 REF_ERROR("203", "缺少 REF Sender Reference - Sender Office Message Address"), 36 REF_ERROR("203", "缺少 REF Sender Reference - Sender Office Message Address"),
11 REF_SOMA_REGEX_FAILD("2031", "REF- Sender Office Message Address RegEx Faild"), 37 REF_SOMA_REGEX_FAILD("2031", "REF- Sender Office Message Address RegEx Faild"),
12 REF_SPID_REGEX_FAILD("206", "REF- Sender Participant Idenfitication RegEx Faild,缺少关联节点信息"), 38 REF_SPID_REGEX_FAILD("206", "REF- Sender Participant Idenfitication RegEx Faild,缺少关联节点信息"),
@@ -14,11 +40,12 @@ public enum FWBExceptionType { @@ -14,11 +40,12 @@ public enum FWBExceptionType {
14 OCI_CSRC_ERROR("297", "缺少 Other Customs,Security And Regulatory Control Information Identifier"); 40 OCI_CSRC_ERROR("297", "缺少 Other Customs,Security And Regulatory Control Information Identifier");
15 41
16 /** 42 /**
17 - * 响应业务状态 43 + * 参照字典FWB节点位置
  44 + * 如21 为 第二章 第一部分 211 为 第二章 第一部分 第一节
18 */ 45 */
19 private String code; 46 private String code;
20 /** 47 /**
21 - * 响应消息 48 + * 错误信息描述
22 */ 49 */
23 private String msg; 50 private String msg;
24 51
1 -import com.sunyo.wlpt.base.model.efreight.fwb.FWB_OCI;  
2 -import com.sunyo.wlpt.base.model.efreight.fwb.FWB_REF; 1 +import com.sunyo.wlpt.base.model.efreight.fwb.*;
3 import com.sunyo.wlpt.base.model.efreight.fwb.exception.FWBException; 2 import com.sunyo.wlpt.base.model.efreight.fwb.exception.FWBException;
4 3
5 public class FWBTest { 4 public class FWBTest {
6 5
7 public static void main(String[] args) { 6 public static void main(String[] args) {
8 7
  8 + FWB_WAYBILL_TEST();
  9 +// FWB_FLT_TEST();
  10 + FWB_RTG_TEST();
9 REF_TEST(); 11 REF_TEST();
10 12
11 // OCI_TEST(); 13 // OCI_TEST();
@@ -36,10 +38,61 @@ public class FWBTest { @@ -36,10 +38,61 @@ public class FWBTest {
36 fwb_ref.setRef_participant_airport("CGO"); 38 fwb_ref.setRef_participant_airport("CGO");
37 39
38 try { 40 try {
39 - String oci = fwb_ref.getFWBNodeText(); 41 + String oci = fwb_ref.getNodeName() + fwb_ref.getFWBNodeText();
40 System.out.println(oci); 42 System.out.println(oci);
41 } catch (FWBException e) { 43 } catch (FWBException e) {
42 e.printStackTrace(); 44 e.printStackTrace();
43 } 45 }
44 } 46 }
  47 +
  48 + static String FWB_WAYBILL_TEST(){
  49 + FWB fwb = new FWB();
  50 + fwb.setWaybillNum("804-31118393");
  51 + fwb.setOrigin("CGO");
  52 + fwb.setDestination("ICN");
  53 + fwb.setQuantity_picecs("1");
  54 + fwb.setQuantity_weight("102.22");
  55 + fwb.setQuantity_weight_code("L");
  56 + fwb.setQuantity_volume("20.22");
  57 + fwb.setQuantity_volume_code("MC");
  58 + fwb.setQuantity_density("22");
  59 + try {
  60 + fwb.getWaybillNum();
  61 + String nodeText = fwb.getNodeName() + fwb.getFWBNodeText();
  62 +// System.out.println(nodeText);
  63 + return nodeText;
  64 + } catch (FWBException e) {
  65 + e.printStackTrace();
  66 + }
  67 + return "";
  68 + }
  69 +
  70 + static void FWB_FLT_TEST(){
  71 + FWB_FLT flt = new FWB_FLT();
  72 + flt.setCariier("CV");
  73 + flt.setFlightNumber("732");
  74 + flt.setDay("29");
  75 +
  76 + try {
  77 + String nodeText = flt.getNodeName() + flt.getFWBNodeText() + "\n";
  78 + System.out.println(FWB_WAYBILL_TEST()+nodeText);
  79 + } catch (FWBException e) {
  80 + e.printStackTrace();
  81 + }
  82 + }
  83 +
  84 + static void FWB_RTG_TEST(){
  85 + FWB_RTG var = new FWB_RTG();
  86 +// var.setDestinationAirport("ICN");
  87 + var.setDestinationCarrier("F5");
  88 + var.setOnwardAirport("SIN");
  89 +// var.setOnwardCarrier("K9");
  90 +
  91 + try {
  92 + String nodeText = var.getNodeName() + var.getFWBNodeText() + "\n";
  93 + System.out.println(FWB_WAYBILL_TEST()+nodeText);
  94 + } catch (FWBException e) {
  95 + e.printStackTrace();
  96 + }
  97 + }
45 } 98 }