diff --git a/inquiry-api/jeecg-module-inquiry/src/main/java/org/jeecg/modules/inquiry/tms/InquiryTmsQueryService.java b/inquiry-api/jeecg-module-inquiry/src/main/java/org/jeecg/modules/inquiry/tms/InquiryTmsQueryService.java index cc3cc58..79548de 100644 --- a/inquiry-api/jeecg-module-inquiry/src/main/java/org/jeecg/modules/inquiry/tms/InquiryTmsQueryService.java +++ b/inquiry-api/jeecg-module-inquiry/src/main/java/org/jeecg/modules/inquiry/tms/InquiryTmsQueryService.java @@ -93,7 +93,11 @@ public class InquiryTmsQueryService { if (items != null) { segment.put("containerItems", items); } - segment.put("tradeTerms", first(facts.get("贸易条款"), facts.get("trade_terms"), facts.get("tradeTerms"))); + segment.put("transportTerms", first( + facts.get("贸易条款"), + facts.get("trade_terms"), + facts.get("transportTerms"), + facts.get("tradeTerms"))); } else if ("LAND".equals(line)) { // 陆运不套空运包装/件数;分类和中港装载只在工单,mapper 不会放进出站。 segment.putAll(TmsLandSegmentMapper.build(facts)); @@ -654,7 +658,8 @@ public class InquiryTmsQueryService { if (blank(facts.get("箱型箱量"))) { missing.add("箱型箱量"); } - if (blank(facts.get("贸易条款")) && blank(facts.get("trade_terms")) && blank(facts.get("tradeTerms"))) { + if (blank(facts.get("贸易条款")) && blank(facts.get("trade_terms")) + && blank(facts.get("transportTerms")) && blank(facts.get("tradeTerms"))) { missing.add("贸易条款"); } return missing; diff --git a/inquiry-api/jeecg-module-inquiry/src/main/java/org/jeecg/modules/inquiry/tms/TmsV2RequestMapper.java b/inquiry-api/jeecg-module-inquiry/src/main/java/org/jeecg/modules/inquiry/tms/TmsV2RequestMapper.java index 94a3b69..6ac2159 100644 --- a/inquiry-api/jeecg-module-inquiry/src/main/java/org/jeecg/modules/inquiry/tms/TmsV2RequestMapper.java +++ b/inquiry-api/jeecg-module-inquiry/src/main/java/org/jeecg/modules/inquiry/tms/TmsV2RequestMapper.java @@ -113,7 +113,8 @@ public final class TmsV2RequestMapper { } put(target, "containerType", type); put(target, "containerQty", asInteger(qty)); - put(target, "tradeTerms", first(source, "tradeTerms", "贸易条款", "trade_terms")); + // TMS 查询字段是 transportTerms。工单/卡片仍写「贸易条款」,这里只改出站名。 + put(target, "transportTerms", first(source, "transportTerms", "tradeTerms", "贸易条款", "trade_terms")); } /** diff --git a/inquiry-api/jeecg-module-inquiry/src/test/java/org/jeecg/modules/inquiry/tms/TmsV2RequestMapperTest.java b/inquiry-api/jeecg-module-inquiry/src/test/java/org/jeecg/modules/inquiry/tms/TmsV2RequestMapperTest.java index dc7b19e..1b3a92e 100644 --- a/inquiry-api/jeecg-module-inquiry/src/test/java/org/jeecg/modules/inquiry/tms/TmsV2RequestMapperTest.java +++ b/inquiry-api/jeecg-module-inquiry/src/test/java/org/jeecg/modules/inquiry/tms/TmsV2RequestMapperTest.java @@ -132,7 +132,7 @@ public class TmsV2RequestMapperTest { } @Test - public void seaSendsTradeTermsOmitsClass() { + public void seaSendsTransportTermsOmitsClass() { Map seg = new HashMap<>(); seg.put("origin", "上海"); seg.put("destination", "洛杉矶"); @@ -140,7 +140,8 @@ public class TmsV2RequestMapperTest { seg.put("cargoQty", "20吨"); seg.put("loadType", "整柜"); seg.put("containerSpec", "1x40HQ"); - seg.put("tradeTerms", "FOB"); + // 测服 WO202609200019:工单仍是贸易条款,出站必须写成 transportTerms,不能写 tradeTerms。 + seg.put("贸易条款", "4"); seg.put("运输分类", "Port to Port"); Map internal = new HashMap<>(); internal.put("transportMode", "SEA"); @@ -149,7 +150,9 @@ public class TmsV2RequestMapperTest { Map body = TmsV2RequestMapper.quote(internal); @SuppressWarnings("unchecked") List> segs = (List>) body.get("segments"); - assertEquals("FOB", segs.get(0).get("tradeTerms")); + assertEquals("4", segs.get(0).get("transportTerms")); + assertFalse(segs.get(0).containsKey("tradeTerms")); + assertFalse(segs.get(0).containsKey("贸易条款")); assertFalse(segs.get(0).containsKey("运输分类")); assertFalse(body.containsKey("运输分类")); }