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