From 5e84b114cba06681f96ca9e4ffe565ef7811898b Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期三, 09 四月 2025 20:13:08 +0800
Subject: [PATCH] 接口解析的实体类确认
---
src/main/java/com/gs/xiaomi/dto/Item.java | 69 +++---
src/main/java/com/gs/xiaomi/dto/BoxSum.java | 144 +++++++------
src/main/java/com/gs/xiaomi/service/SoapApiService.java | 30 ++
src/main/java/com/gs/xiaomi/dto/BoxItem.java | 123 ++++++------
src/main/java/com/gs/xiaomi/dto/EtHeader.java | 191 +++++++++++++++++-
5 files changed, 370 insertions(+), 187 deletions(-)
diff --git a/src/main/java/com/gs/xiaomi/dto/BoxItem.java b/src/main/java/com/gs/xiaomi/dto/BoxItem.java
index c24f7fe..11ae017 100644
--- a/src/main/java/com/gs/xiaomi/dto/BoxItem.java
+++ b/src/main/java/com/gs/xiaomi/dto/BoxItem.java
@@ -11,96 +11,95 @@
@Data
public class BoxItem {
- /* 鐗╂祦鍖呰淇℃伅 */
- @XmlElement(name = "BOX_SEQ")
- private String boxSeq; // 绠卞崟搴忓彿
+ @XmlElement(name = "box_seq")
+ private String boxSeq; // 绠卞崟娴佹按鍙�
- @XmlElement(name = "BOX_NO")
- private String boxNo; // 绠卞彿
+ @XmlElement(name = "box_no")
+ private String boxNo; // 鍖呰绠卞敮涓�鏍囪瘑
- @XmlElement(name = "CARTONID")
- private String cartonid; // 灏忕背绠卞彿
+ @XmlElement(name = "cartonid")
+ private String cartonid; // 灏忕背涓撶敤绠卞彿锛堝姞瀵嗘牸寮忥級
- /* 閲囪喘涓庡崟鎹俊鎭� */
- @XmlElement(name = "ZZASN")
- private String zzasn; // 閫佽揣鍗曞彿
+ /* 閲囪喘涓庡崟鎹俊鎭紙6涓牳蹇冨瓧娈碉級 */
+ @XmlElement(name = "zzasn")
+ private String zzasn; // 鍏ㄧ悆缁熶竴閫佽揣鍗曞彿
+ @XmlElement(name = "matnr")
+ private String matnr; // 鍥介檯鐗╂枡缂栫爜
- @XmlElement(name = "MATNR")
- private String matnr; // 鐗╂枡缂栧彿
+ @XmlElement(name = "maktx")
+ private String maktx; // 澶氳瑷�鐗╂枡鎻忚堪
- @XmlElement(name = "MAKTX")
- private String maktx; // 鐗╂枡鎻忚堪
+ /* 瑙勬牸涓庢暟閲忎綋绯伙紙18涓閲忓瓧娈碉級 */
+ @XmlElement(name = "pc_qty")
+ private String pcQty; // 瀹為檯鍙戣揣浠舵暟
- /* 瑙勬牸涓庢暟閲� */
- @XmlElement(name = "PC_QTY")
- private String pcQty; // 鍙戣揣鏁伴噺
+ @XmlElement(name = "lot_no")
+ private String lotNo; // 鎵樼洏鍞竴缂栧彿
- @XmlElement(name = "LOT_NO")
- private String lotNo; // 鎵樼洏鍙�
+ @XmlElement(name = "ntgew_p")
+ private String ntgewP; // 鍗曚欢鍑�閲嶏紙鍏�/浠讹級
- @XmlElement(name = "NTGEW_P")
- private String ntgewP; // 鍗曚欢鍑�閲�(G/PCS)
+ @XmlElement(name = "brgew_p")
+ private String brgewP; // 鍗曠姣涢噸锛堝崈鍏�/绠憋級
- @XmlElement(name = "BRGEW_P")
- private String brgewP; // 鍗曠姣涢噸(KG/绠�)
+ @XmlElement(name = "lot_size")
+ private String lotSize; // 鎵樼洏瑁呰浇瑙勬牸
- @XmlElement(name = "LOT_SIZE")
- private String lotSize; // 鎵樼洏灏哄(m)
+ @XmlElement(name = "box_size")
+ private String boxSize; // 鏍囧噯鍖栫浣撳昂瀵�
- @XmlElement(name = "BOX_SIZE")
- private String boxSize; // 鍗曠灏哄(cm)
+ @XmlElement(name = "total_vlume")
+ private String totalVlume; // 鍚墭鐩樻�讳綋绉�
- @XmlElement(name = "TOTAL_VLUME")
- private String totalVlume; // 鍚墭浣撶Н(m鲁)
+ @XmlElement(name = "box_qty")
+ private String boxQty; // 鎬荤鏁�
- @XmlElement(name = "BOX_QTY")
- private String boxQty; // 绠辨暟
+ @XmlElement(name = "ebeln")
+ private String ebeln; // 閲囪喘璁㈠崟鍙�
- @XmlElement(name = "EBELN")
- private String ebeln; // 閲囪喘鍑瘉鍙�
+ @XmlElement(name = "ebelp")
+ private String ebelp; // 閲囪喘璁㈠崟琛屽彿
- @XmlElement(name = "EBELP")
- private String ebelp; // 閲囪喘鍑瘉椤圭洰缂栧彿
+ @XmlElement(name = "box_spec")
+ private String boxSpec; // 鍗曠瀹归噺锛堜欢/绠憋級
- @XmlElement(name = "BOX_SPEC")
- private String boxSpec; // 鍗曠鍖呰(pcs/绠�)
+ @XmlElement(name = "ntgew")
+ private String ntgew; // 鎬诲噣閲嶏紙鑷姩璁$畻鍊硷級
- @XmlElement(name = "NTGEW")
- private String ntgew; // 鎬诲噣閲�=PC_QTY*NTGEW_P
+ @XmlElement(name = "brgew")
+ private String brgew; // 鎬绘瘺閲嶏紙鍚寘瑁咃級
- @XmlElement(name = "BRGEW")
- private String brgew; // 鎬绘瘺閲�
+ @XmlElement(name = "meins")
+ private String meins; // 鍥介檯璁¢噺鍗曚綅
- @XmlElement(name = "MEINS")
- private String meins; // 璁¢噺鍗曚綅
+ @XmlElement(name = "l_m")
+ private String lM; // 鎵樼洏闀垮害锛堢背锛�
- @XmlElement(name = "BRAND")
- private String brand; // 鍝佺墝
+ @XmlElement(name = "w_m")
+ private String wM; // 鎵樼洏瀹藉害锛堢背锛�
- @XmlElement(name = "PLACE")
- private String place; // 浜у湴
+ @XmlElement(name = "h_m")
+ private String hM; // 鎵樼洏鍫嗛珮锛堢背锛�
- @XmlElement(name = "IMCLR")
- private String imclr; // 杩涘彛鎶ュ叧鏍囪瘑
+ /* 鍟嗗搧涓庣洃绠′俊鎭紙7涓叧閿瓧娈碉級 */
+ @XmlElement(name = "brand")
+ private String brand; // 鍝佺墝璁よ瘉鏍囪瘑
- @XmlElement(name = "MODELNUMBER")
- private String modelnumber; // 鍨嬪彿
+ @XmlElement(name = "place")
+ private String place; // 鍘熶骇鍦扮紪鐮�
- @XmlElement(name = "MATNR_JG")
- private String matnrJg; // 鐩戠鏉′欢
+ @XmlElement(name = "imclr")
+ private String imclr; // 娴峰叧鎶ュ叧鏍囪瘑
- @XmlElement(name = "MATNR_JYJY")
- private String matnrJyjy; // 妫�楠屾鐤�
+ @XmlElement(name = "modelnumber")
+ private String modelnumber; // 鍥介檯鍨嬪彿缂栫爜
- @XmlElement(name = "L_M")
- private String lM; // 鎵樼洏闀�(m)
+ @XmlElement(name = "matnr_jg")
+ private String matnrJg; // 娴峰叧鐩戠鏉′欢
- @XmlElement(name = "W_M")
- private String wM; // 鎵樼洏瀹�(m)
-
- @XmlElement(name = "H_M")
- private String hM; // 鎵樼洏楂�(m)
+ @XmlElement(name = "matnr_jyjy")
+ private String matnrJyjy; // 妫�楠屾鐤唬鐮�
}
diff --git a/src/main/java/com/gs/xiaomi/dto/BoxSum.java b/src/main/java/com/gs/xiaomi/dto/BoxSum.java
index 2c56142..532c6a2 100644
--- a/src/main/java/com/gs/xiaomi/dto/BoxSum.java
+++ b/src/main/java/com/gs/xiaomi/dto/BoxSum.java
@@ -11,89 +11,97 @@
@Data
public class BoxSum {
- @XmlElement(name = "BOX_SEQ")
- private String boxSeq; // 绠卞崟搴忓垪鍙�
+ /* 鐗╂祦鍖呰鏍稿績鏍囪瘑锛�3椤癸級 */
+ @XmlElement(name = "box_seq")
+ private String boxSeq; // 绠卞崟娴佹按鍙�
- @XmlElement(name = "BOX_NO")
- private String boxNo; // 鐗╃悊绠卞彿
+ @XmlElement(name = "box_no")
+ private String boxNo; // 鐗╃悊鍖呰鏍囪瘑
- @XmlElement(name = "ZZASN")
- private String zzasn; // 閫佽揣鍗曞彿
+ @XmlElement(name = "cartonid")
+ private String cartonid; // 灏忕背绠卞彿锛堜繚鐣欏師瀛楁锛�
- @XmlElement(name = "MATNR")
- private String matnr; // SAP鐗╂枡缂栧彿
+ /* 鍗曟嵁涓庣墿鏂欎綋绯伙紙5椤癸級 */
+ @XmlElement(name = "zzasn")
+ private String zzasn; // 鍏ㄧ悆缁熶竴閫佽揣鍗曞彿
- @XmlElement(name = "MAKTX")
- private String maktx; // 鐗╂枡涓枃鎻忚堪
+ @XmlElement(name = "matnr")
+ private String matnr; // SAP鏍囧噯鐗╂枡缂栫爜
- @XmlElement(name = "PC_QTY")
- private String pcQty; // 瀹為檯鍙戣揣鏁伴噺
+ @XmlElement(name = "maktx")
+ private String maktx; // 澶氳瑷�鐗╂枡鎻忚堪
- @XmlElement(name = "LOT_NO")
- private String lotNo; // 鎵樼洏缂栧彿
+ /* 璁¢噺鍙傛暟浣撶郴锛�12椤癸級 */
+ @XmlElement(name = "pc_qty")
+ private String pcQty; // 瀹為檯鍙戣揣浠舵暟
- @XmlElement(name = "NTGEW_P")
- private String ntgewP; // 鍗曚欢鍑�閲嶏紙鍏紡锛氱墿鏂欏噣閲岹/PCS锛�
+ @XmlElement(name = "lot_no")
+ private String lotNo; // 鐗╂祦鎵樼洏缂栧彿
- @XmlElement(name = "BRGEW_P")
- private String brgewP; // 鍗曠姣涢噸锛圞G/绠憋級
+ @XmlElement(name = "ntgew_p")
+ private String ntgewP; // 鍗曚欢鍑�閲嶏紙鍏�/浠讹級
- @XmlElement(name = "LOT_SIZE")
- private String lotSize; // 鎵樼洏灏哄锛堢背鍒讹級
+ @XmlElement(name = "brgew_p")
+ private String brgewP; // 鍗曠姣涢噸锛堝崈鍏�/绠憋級
- @XmlElement(name = "BOX_SIZE")
- private String boxSize; // 鍗曠灏哄锛堝帢绫筹級
+ /* 瑙勬牸缁村害锛�6椤癸級 */
+ @XmlElement(name = "lot_size")
+ private String lotSize; // 鎵樼洏瑁呰浇瑙勬牸
- @XmlElement(name = "TOTAL_VLUME")
+ @XmlElement(name = "box_size")
+ private String boxSize; // 鏍囧噯绠变綋灏哄
+
+ @XmlElement(name = "total_vlume") // 娉ㄦ剰瀛楁鎷煎啓寤鸿淇涓簐olume
private String totalVlume; // 鍚墭鐩樻�讳綋绉�
- @XmlElement(name = "BOX_QTY")
- private String boxQty; // 鎬荤鏁�
-
- /* 閲囪喘鍑瘉淇℃伅鍧� */
- @XmlElement(name = "EBELN")
- private String ebeln; // 閲囪喘鍑瘉鍙�
-
- @XmlElement(name = "EBELP")
- private String ebelp; // 閲囪喘鍑瘉椤圭洰缂栧彿
-
- @XmlElement(name = "BOX_SPEC")
- private String boxSpec; // 鍗曠瀹归噺瑙勬牸
-
- @XmlElement(name = "NTGEW")
- private String ntgew; // 鎬诲噣閲嶏紙鍏紡锛歅C_QTY*NTGEW_P锛�
-
- @XmlElement(name = "BRGEW")
- private String brgew; // 鎬绘瘺閲嶏紙鑷姩璁$畻鍊硷級
-
- /* 鍩虹璁¢噺淇℃伅鍧� */
- @XmlElement(name = "MEINS")
- private String meins; // 鍩烘湰璁¢噺鍗曚綅
-
- @XmlElement(name = "BRAND")
- private String brand; // 鍒堕�犲晢鍝佺墝
-
- @XmlElement(name = "PLACE")
- private String place; // 鍘熶骇鍦颁俊鎭�
-
- @XmlElement(name = "IMCLR")
- private String imclr; // 灏忕背杩涘彛鎶ュ叧鏍囪瘑
-
- @XmlElement(name = "MODELNUMBER")
- private String modelnumber; // 浜у搧鍨嬪彿
-
- @XmlElement(name = "MATNR_JG")
- private String matnrJg; // 娴峰叧鐩戠鏉′欢
-
- @XmlElement(name = "MATNR_JYJY")
- private String matnrJyjy; // 妫�楠屾鐤姹�
-
- @XmlElement(name = "L_M")
+ @XmlElement(name = "l_m")
private String lM; // 鎵樼洏闀垮害锛堢背锛�
- @XmlElement(name = "W_M")
+ @XmlElement(name = "w_m")
private String wM; // 鎵樼洏瀹藉害锛堢背锛�
- @XmlElement(name = "H_M")
- private String hM; // 鎵樼洏楂樺害锛堢背锛�
+ @XmlElement(name = "h_m")
+ private String hM; // 鎵樼洏鍫嗛珮锛堢背锛�
+
+ /* 閲囪喘鍑瘉淇℃伅锛�4椤癸級 */
+ @XmlElement(name = "ebeln")
+ private String ebeln; // 閲囪喘璁㈠崟鍙�
+
+ @XmlElement(name = "ebelp")
+ private String ebelp; // 閲囪喘璁㈠崟琛屽彿
+
+ @XmlElement(name = "box_spec")
+ private String boxSpec; // 鍗曠瀹归噺瑙勬牸
+
+ @XmlElement(name = "box_qty")
+ private String boxQty; // 鎬诲寘瑁呯鏁�
+
+ /* 閲嶉噺璁$畻浣撶郴锛�3椤癸級 */
+ @XmlElement(name = "ntgew")
+ private String ntgew; // 鑷姩璁$畻鎬诲噣閲�
+
+ @XmlElement(name = "brgew")
+ private String brgew; // 绯荤粺鏍哥畻鎬绘瘺閲�
+
+ @XmlElement(name = "meins")
+ private String meins; // 鍥介檯璁¢噺鍗曚綅
+
+ /* 璐告槗鍚堣淇℃伅锛�7椤癸級 */
+ @XmlElement(name = "brand")
+ private String brand; // 鍝佺墝璁よ瘉鏍囪瘑
+
+ @XmlElement(name = "place")
+ private String place; // 鍘熶骇鍦扮紪鐮�
+
+ @XmlElement(name = "imclr")
+ private String imclr; // 鎶ュ叧鏍囪瘑
+
+ @XmlElement(name = "modelnumber")
+ private String modelnumber; // 鍥介檯鍨嬪彿缂栫爜
+
+ @XmlElement(name = "matnr_jg")
+ private String matnrJg; // 娴峰叧鐩戠鏉′欢
+
+ @XmlElement(name = "matnr_jyjy")
+ private String matnrJyjy; // 妫�楠屾鐤唬鐮�
}
diff --git a/src/main/java/com/gs/xiaomi/dto/EtHeader.java b/src/main/java/com/gs/xiaomi/dto/EtHeader.java
index 1304240..60dbaf1 100644
--- a/src/main/java/com/gs/xiaomi/dto/EtHeader.java
+++ b/src/main/java/com/gs/xiaomi/dto/EtHeader.java
@@ -11,36 +11,201 @@
@XmlAccessorType(XmlAccessType.FIELD)
@Data
public class EtHeader {
+ /* 鏍稿績鍗曟嵁淇℃伅鍧� */
@XmlElement(name = "zzasn")
- private String zzasn;
+ private String zzasn; // 閫佽揣鍗曞彿(涓婚敭)
@XmlElement(name = "zzasn_type")
- private String zzasnType;
+ private String zzasnType; // 鍗曟嵁绫诲瀷(鏅��/绱ф��)
+ @XmlElement(name = "migo_type")
+ private String migoType; // 鏀惰揣绫诲瀷(鏍囧噯/閫�璐�)
+
+ /* 閲囪喘涓庡簱瀛樼鐞嗗潡 */
+ @XmlElement(name = "zrproject")
+ private String zrproject; // 椤圭洰璋冩嫧缂栧彿
+
+ @XmlElement(name = "ekorg")
+ private String ekorg; // 閲囪喘缁勭粐缂栫爜
+
+ @XmlElement(name = "ekotx")
+ private String ekotx; // 閲囪喘缁勭粐鎻忚堪
+
+ @XmlElement(name = "stock_org_from")
+ private String stockOrgFrom; // 璋冨嚭搴撳瓨缁勭粐缂栫爜
+
+ @XmlElement(name = "stock_org_from_desc")
+ private String stockOrgFromDesc; // 璋冨嚭搴撳瓨鎻忚堪
+
+ @XmlElement(name = "stock_org_to")
+ private String stockOrgTo; // 璋冨叆搴撳瓨缁勭粐缂栫爜
+
+ @XmlElement(name = "stock_org_to_desc")
+ private String stockOrgToDesc; // 璋冨叆搴撳瓨鎻忚堪
+
+ /* 渚涘簲鍟嗕笌鍚堜綔浼欎即鍧� */
@XmlElement(name = "lifnr")
- private String lifnr;
+ private String lifnr; // 渚涘簲鍟嗙紪鐮�(绀轰緥鍊�:130479)
@XmlElement(name = "vendor_name")
- private String vendorName;
+ private String vendorName; // 渚涘簲鍟嗗叏绉�
- @XmlElement(name = "zzship_addr")
- private String zzshipAddr;
+ @XmlElement(name = "short_name")
+ private String shortName; // 渚涘簲鍟嗙畝绉�
+ @XmlElement(name = "hub_lifnr")
+ private String hubLifnr; // HUB渚涘簲鍟嗙紪鐮�
+
+ /* 鐗╂祦杩愯緭淇℃伅鍧� */
+ @XmlElement(name = "zzcarrier")
+ private String zzcarrier; // 鎵胯繍鍟嗗悕绉�
+
+ @XmlElement(name = "zzcarrier_no")
+ private String zzcarrierNo; // 鎵胯繍鍗曞彿
+
+ @XmlElement(name = "road_transport_no")
+ private String roadTransportNo; // 杩愯緭鍗曟嵁鍙�
+
+ @XmlElement(name = "zztrans_model")
+ private String zztransModel; // 杩愯緭杞﹀瀷
+
+ @XmlElement(name = "zzlicense_numb")
+ private String zzlicenseNumb; // 杞︾墝鍙�
+
+ @XmlElement(name = "zzseal_no")
+ private String zzsealNo; // 閾呭皝鍙�
+
+ @XmlElement(name = "logistics_no")
+ private String logisticsNo; // 鐗╂祦鍗曞彿
+
+ @XmlElement(name = "logistics_company")
+ private String logisticsCompany; // 鐗╂祦鍏徃缂栫爜
+
+ @XmlElement(name = "logistics_company_name")
+ private String logisticsCompanyName; // 鐗╂祦鍏徃鍏ㄧО
+
+ /* 鑱旂郴浜轰俊鎭潡 */
@XmlElement(name = "zzship_name")
- private String zzshipName;
+ private String zzshipName; // 鍙戣揣浜哄鍚�
+ @XmlElement(name = "zzship_phon")
+ private String zzshipPhon; // 鍙戣揣浜虹數璇�
+
+ @XmlElement(name = "zzdriver_name")
+ private String zzdriverName; // 鍙告満濮撳悕
+
+ @XmlElement(name = "zzdriver_phon")
+ private String zzdriverPhon; // 鍙告満鐢佃瘽
+
+ @XmlElement(name = "last4_phone_number")
+ private String last4PhoneNumber; // 鎵嬫満灏惧彿
+
+ @XmlElement(name = "receiver")
+ private String receiver; // 鏀惰揣浜�
+
+ @XmlElement(name = "receive_phone")
+ private String receivePhone; // 鏀惰揣鐢佃瘽
+
+ @XmlElement(name = "final_contact")
+ private String finalContact; // 鏈�缁堟敹璐т汉
+
+ @XmlElement(name = "final_phone")
+ private String finalPhone; // 鏈�缁堣仈绯荤數璇�
+
+ /* 鍦板潃淇℃伅鍧� */
+ @XmlElement(name = "zzship_addr")
+ private String zzshipAddr; // 鍙戣揣鍦板潃
+
+ @XmlElement(name = "zzreceive_addr")
+ private String zzreceiveAddr; // 鏍囧噯鏀惰揣鍦板潃
+
+ @XmlElement(name = "receive_addr")
+ private String receiveAddr; // 瀹為檯鏀惰揣鍦板潃
+
+ @XmlElement(name = "final_addr")
+ private String finalAddr; // 鏈�缁堥厤閫佸湴鍧�
+
+ @XmlElement(name = "final_company")
+ private String finalCompany; // 鏈�缁堟敹璐у崟浣�
+
+ /* 鏃堕棿鎺у埗鍧� */
@XmlElement(name = "zzship_date")
- private String zzshipDate;
+ private String zzshipDate; // 鍙戣揣鏃ユ湡(yyyyMMdd)
+ @XmlElement(name = "zzarrive_time")
+ private String zzarriveTime; // 棰勮鍒拌揣鏃ユ湡
+
+ @XmlElement(name = "zzarrive_time1")
+ private String zzarriveTime1; // 棰勮鍒拌揣鏃堕棿(HHmm)
+
+ @XmlElement(name = "reserve_date")
+ private String reserveDate; // 棰勭害鏃ユ湡
+
+ @XmlElement(name = "reserve_time")
+ private String reserveTime; // 棰勭害鏃堕棿娈�
+
+ /* 浠撳簱绠$悊鍧� */
+ @XmlElement(name = "zzwarehouse_id")
+ private String zzwarehouseId; // 浠撳簱鍞竴鏍囪瘑
+
+ @XmlElement(name = "receive_warehouse_id")
+ private String receiveWarehouseId; // 鏀惰揣浠撳簱ID
+
+ @XmlElement(name = "receive_warehouse_short")
+ private String receiveWarehouseShort; // 浠撳簱绠�绉�
+
+ @XmlElement(name = "bukrs")
+ private String bukrs; // 鍏徃浠g爜
+
+ /* 鐘舵�佹帶鍒跺潡 */
+ @XmlElement(name = "status")
+ private String status; // 鍗曟嵁鐘舵��(鏂板缓/宸插彂璐�/宸插畬鎴�)
+
+ @XmlElement(name = "status_sn")
+ private String statusSn; // 鏉$爜鐘舵��(宸蹭笂浼�/鏈笂浼�)
+
+ @XmlElement(name = "zzcanceled")
+ private String zzcanceled; // 浣滃簾鏍囪瘑
+
+ @XmlElement(name = "price_stat")
+ private String priceStat; // 浠锋牸瀹℃牳鐘舵��
+
+ /* 涓氬姟妯″紡鍧� */
+ @XmlElement(name = "purchase_mode")
+ private String purchaseMode; // 浠撳簱浣滀笟鎸囧绫诲瀷
+
+ @XmlElement(name = "purchase_mode2")
+ private String purchaseMode2; // 閲囪喘妯″紡(VMI/JIT)
+
+ @XmlElement(name = "business_model")
+ private String businessModel; // 浜ゆ枡妯″紡(鑷彁/閰嶉��)
+
+ /* 鎵╁睍淇℃伅鍧� */
+ @XmlElement(name = "asn_desc")
+ private String asnDesc; // 鍗曟嵁鎻忚堪
+
+ @XmlElement(name = "imclr")
+ private String imclr; // 杩涘彛鎶ュ叧鏍囪瘑
+
+ @XmlElement(name = "lifnr_dg")
+ private String lifnrDg; // 澶栭儴宸ュ巶浠g爜
+
+ @XmlElement(name = "product_type")
+ private String productType; // 鐢熶骇绫诲瀷(鑷埗/澶栬喘)
+
+ @XmlElement(name = "zzdriver_license")
+ private String zzdriverLicense; // 椹鹃┒璇佸彿
+
+ /* 闄勪欢淇℃伅鍧� */
@XmlElementWrapper(name = "items")
@XmlElement(name = "item")
- private List<Item> items;
+ private List<Item> items;// 琛岄」鐩槑缁�
- @XmlElementWrapper(name = "BOX_ITEMS")
+ @XmlElementWrapper(name = "box_items")
@XmlElement(name = "boxItems")
- private List<BoxItem> boxItems;
+ private List<BoxItem> boxItems; // 绠卞崟鏄庣粏
- @XmlElementWrapper(name = "BOX_SUMS")
+ @XmlElementWrapper(name = "box_sums")
@XmlElement(name = "boxSum")
- private List<BoxSum> boxSums;
+ private List<BoxSum> boxSums; // 绠辨暟姹囨��
}
diff --git a/src/main/java/com/gs/xiaomi/dto/Item.java b/src/main/java/com/gs/xiaomi/dto/Item.java
index bc7977c..8f6dd2f 100644
--- a/src/main/java/com/gs/xiaomi/dto/Item.java
+++ b/src/main/java/com/gs/xiaomi/dto/Item.java
@@ -11,115 +11,114 @@
@Data
public class Item {
- // 鍩虹鍗曟嵁淇℃伅
/* 鍩虹鍗曟嵁鏍囪瘑 */
- @XmlElement(name = "ZZASN")
+ @XmlElement(name = "zzasn")
private String zzasn; // 閫佽揣鍗曞彿
- @XmlElement(name = "ZZITEM_ID")
+ @XmlElement(name = "zzitem_id")
private String zzitemId; // 閫佽揣鍗曡鍙�
- @XmlElement(name = "ZZPO_NO")
+ @XmlElement(name = "zzpo_no")
private String zzpoNo; // 閲囪喘鍑瘉鍙�
- @XmlElement(name = "ZZPO_ITEM_ID")
+ @XmlElement(name = "zzpo_item_id")
private String zzpoItemId; // PO琛岄」鐩�
/* 閫�鎹㈣揣鍏宠仈淇℃伅 */
- @XmlElement(name = "ZZREQNR")
+ @XmlElement(name = "zzreqnr")
private String zzreqnr; // 灏忕背閫�鎹㈣揣鍗曞彿
- @XmlElement(name = "ZZREQLN")
+ @XmlElement(name = "zzreqln")
private String zzreqln; // 鐢宠鍗曡椤圭洰
/* 鐗╂枡淇℃伅浣撶郴 */
- @XmlElement(name = "ZZPRODUCT_ID")
+ @XmlElement(name = "zzproduct_id")
private String zzproductId; // 灏忕背鐗╂枡鍙�
- @XmlElement(name = "ZZVPRODUCT_ID")
+ @XmlElement(name = "zzvproduct_id")
private String zzvproductId; // 宸ュ巶鏂欏彿
- @XmlElement(name = "ZZSKU")
+ @XmlElement(name = "zzsku")
private String zzsku; // SKU
- @XmlElement(name = "MAKTX")
+ @XmlElement(name = "maktx")
private String maktx; // 鐗╂枡鎻忚堪
- @XmlElement(name = "MODELNUMBER")
+ @XmlElement(name = "modelnumber")
private String modelnumber; // 鍨嬪彿
/* 璁¢噺涓庡簱瀛樻暟鎹� */
- @XmlElement(name = "ZZQUANTITY")
+ @XmlElement(name = "zzquantity")
private String zzquantity; // 璁㈠崟鏁伴噺
- @XmlElement(name = "ZZUNIT")
+ @XmlElement(name = "zzunit")
private String zzunit; // 璁¢噺鍗曚綅
- @XmlElement(name = "ZZOPEN_QTY")
+ @XmlElement(name = "zzopen_qty")
private String zzopenQty; // 寮�鏀炬暟閲�
- @XmlElement(name = "ACT_GR_QTY")
+ @XmlElement(name = "act_gr_qty")
private String actGrQty; // 瀹炴敹鏁伴噺
- @XmlElement(name = "SHIPMENTID_NUM")
+ @XmlElement(name = "shipmentid_num")
private String shipmentidNum; // Shipment鏁伴噺
/* 鍝佺墝涓庝骇鍦颁俊鎭� */
- @XmlElement(name = "BRAND")
+ @XmlElement(name = "brand")
private String brand; // 鍝佺墝
- @XmlElement(name = "PLACE")
+ @XmlElement(name = "place")
private String place; // 浜у湴
- @XmlElement(name = "BRAND_TYPE")
+ @XmlElement(name = "brand_type")
private String brandType; // 鍝佺墝绫诲瀷
/* 鐗╂祦杩借釜淇℃伅 */
- @XmlElement(name = "ZSHIPMENT_ID")
+ @XmlElement(name = "zshipment_id")
private String zshipmentId; // Shipment ID
- @XmlElement(name = "ADDRESS_DETAIL")
+ @XmlElement(name = "address_detail")
private String addressDetail; // 鍦板潃璇︽儏
/* 璋冩嫧绠$悊瀛楁 */
- @XmlElement(name = "BEDNR")
+ @XmlElement(name = "bednr")
private String bednr; // 璋冨嚭椤圭洰鍙�
- @XmlElement(name = "WARE_TYPE_FROM")
+ @XmlElement(name = "ware_type_from")
private String wareTypeFrom; // 璋冨嚭浠撶被鍨�
- @XmlElement(name = "WARE_TYPE_TO")
+ @XmlElement(name = "ware_type_to")
private String wareTypeTo; // 璋冨叆浠撶被鍨�
- @XmlElement(name = "XMSTO_NO")
+ @XmlElement(name = "xmsto_no")
private String xmstoNo; // 鐗╂帶璋冩嫧鍗曞彿
- @XmlElement(name = "XMSTO_ITEM_NO")
+ @XmlElement(name = "xmsto_item_no")
private String xmstoItemNo; // 璋冩嫧鍗曡椤�
/* 绯荤粺鎺у埗瀛楁 */
- @XmlElement(name = "CHANGED_AT")
+ @XmlElement(name = "changed_at")
private String changedAt; // 淇敼鏃堕棿
- @XmlElement(name = "CREATED_AT")
+ @XmlElement(name = "created_at")
private String createdAt; // 鍒涘缓鏃堕棿
/* 鎵╁睍涓氬姟瀛楁 */
- @XmlElement(name = "APP_MODELS")
+ @XmlElement(name = "app_models")
private String appModels; // 椤圭洰鏈哄瀷
- @XmlElement(name = "EXT_DOC_NO")
+ @XmlElement(name = "ext_doc_no")
private String extDocNo; // 澶栭儴鍑瘉鍙�
- @XmlElement(name = "EXT_DOC_ITEM")
+ @XmlElement(name = "ext_doc_item")
private String extDocItem; // 澶栭儴鍑瘉琛岄」
- @XmlElement(name = "BATCH_ID")
+ @XmlElement(name = "batch_id")
private String batchId; // HS缂栫爜
- @XmlElement(name = "BATCH_ROW")
+ @XmlElement(name = "batch_row")
private String batchRow; // 浼樺厛閲囪喘椤�
- @XmlElement(name = "IS_IDENTIFICATION")
+ @XmlElement(name = "is_identification")
private String isIdentification; // 涓插彿绠$悊鏍囪瘑
}
diff --git a/src/main/java/com/gs/xiaomi/service/SoapApiService.java b/src/main/java/com/gs/xiaomi/service/SoapApiService.java
index 453254f..549ed35 100644
--- a/src/main/java/com/gs/xiaomi/service/SoapApiService.java
+++ b/src/main/java/com/gs/xiaomi/service/SoapApiService.java
@@ -23,10 +23,15 @@
if (response.isSuccessful() && response.body() != null) {
String bodyStr = response.body().string();
- String innerXml = extractCdata(bodyStr);
- if (innerXml == null) throw new RuntimeException("No CDATA <document> found in response");
+ String evCode = extractEvCode(bodyStr);
+ if (!"Y".equalsIgnoreCase(evCode)) {
+ throw new RuntimeException("SOAP business failed, EV_CODE: " + evCode);
+ }
- String decodedXml = decodeXmlEntities(innerXml);
+ String decodedXml = decodeXmlEntities(bodyStr);
+
+ String innerXml = extractCdata(decodedXml);
+ if (innerXml == null) throw new RuntimeException("No CDATA <document> found in response");
JAXBContext context = JAXBContext.newInstance(BizDocumentResult.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
@@ -45,7 +50,7 @@
.method("POST", body)
// .addHeader("User-Agent", "Apifox/1.0.0 (https://apifox.com)")
.addHeader("Content-Type", "application/xml")
- .addHeader("Authorization", "Basic UkZDWkpYSUFPQlU6cHBCOVIhSGU=")
+ .addHeader("Authorization", "Basic ")
.addHeader("Accept", "*/*")
.addHeader("Host", "mipoq.p.mi.com")
.addHeader("Connection", "keep-alive")
@@ -55,11 +60,11 @@
return client.newCall(request).execute();
}
- private String extractCdata(String xml) {
- int cdataStart = xml.indexOf("<![CDATA[");
- int cdataEnd = xml.indexOf("]]>", cdataStart);
- if (cdataStart == -1 || cdataEnd == -1) return null;
- return xml.substring(cdataStart + 9, cdataEnd).trim();
+ private String extractEvCode(String xml) {
+ int start = xml.indexOf("<EV_CODE>");
+ int end = xml.indexOf("</EV_CODE>", start);
+ if (start == -1 || end == -1) return null;
+ return xml.substring(start + 9, end).trim();
}
private String decodeXmlEntities(String xml) {
@@ -69,4 +74,11 @@
.replace(">", ">")
.replace("&", "&");
}
+
+ private String extractCdata(String xml) {
+ int cdataStart = xml.indexOf("<EV_RESULT>");
+ int cdataEnd = xml.indexOf("</EV_RESULT>", cdataStart);
+ if (cdataStart == -1 || cdataEnd == -1) return null;
+ return xml.substring(cdataStart + 11, cdataEnd).trim();
+ }
}
--
Gitblit v1.9.3