fix: print overseas warehouse address on BOL

This commit is contained in:
2026-09-11 11:55:46 +08:00
parent 749d403ed4
commit 69076ea712
4 changed files with 26 additions and 7 deletions
@@ -102,9 +102,12 @@ public class DispatchBolPrintService {
List<String> parts = new ArrayList<>();
add(parts, address.addressLine1());
add(parts, address.addressLine2());
add(parts, address.city());
add(parts, address.stateProvince());
add(parts, address.postalCode());
String city = trimmed(address.city());
String state = trimmed(address.stateProvince());
String postalCode = trimmed(address.postalCode());
String region = city == null ? state : state == null ? city : city + ", " + state;
if (postalCode != null) region = region == null ? postalCode : region + " " + postalCode;
add(parts, region);
add(parts, address.countryCode());
return parts.isEmpty() ? "—" : String.join(", ", parts);
} catch (FeignException exception) {
@@ -116,6 +119,10 @@ public class DispatchBolPrintService {
if (value != null && !value.isBlank()) parts.add(value.strip());
}
private String trimmed(String value) {
return value == null || value.isBlank() ? null : value.strip();
}
static int pageCount(int rowCount) {
if (rowCount <= FIRST_PAGE_ROWS) return 1;
return 1 + (rowCount - FIRST_PAGE_ROWS + CONTINUATION_PAGE_ROWS - 1) / CONTINUATION_PAGE_ROWS;
@@ -73,6 +73,6 @@ class DispatchBolPrintServiceTest {
verify(print).generateDispatchBol(eq("internal-test-token"), eq("request-1"), request.capture());
assertThat(request.getValue().documents()).singleElement().satisfies(document ->
assertThat(document.shipFromAddress()).isEqualTo(
"10767 7th Street, Rancho Cucamonga, California, 91730, US"));
"10767 7th Street, Rancho Cucamonga, California 91730, US"));
}
}
@@ -95,7 +95,19 @@ assert.deepEqual(fixedWarehouses.map((row) => row.timezone), [
'UTC-8',
'UTC-5',
])
assert.ok(fixedWarehouses.every((row) => row.address_line1.includes('待维护') || row.address_line1.includes('pending maintenance')))
assert.deepEqual(
fixedWarehouses.filter((row) => row.warehouse_type === 'OVERSEAS').map((row) => ({
warehouse_code: row.warehouse_code,
state_province: row.state_province,
city: row.city,
postal_code: row.postal_code,
address_line1: row.address_line1,
})),
[
{ warehouse_code: 'US-LAX-01', state_province: 'California', city: 'Rancho Cucamonga', postal_code: '91730', address_line1: '10767 7th Street' },
{ warehouse_code: 'US-NYC-01', state_province: 'New Jersey', city: 'Edison', postal_code: '08817', address_line1: 'Door 13-14, 75 Carter Dr' },
],
)
assert.match(sql, /CREATE TEMPORARY TABLE tmp_wh_fixed_platform_warehouse/)
assert.match(sql, /'CN-YIWU-01','义乌仓','DOMESTIC','CN','UTC\+8'/)
@@ -1,5 +1,5 @@
warehouse_id_seed,address_id_seed,warehouse_code,warehouse_name,warehouse_type,country_code,timezone,state_province,city,postal_code,address_line1,note
193000000000200001,193000000000300001,CN-YIWU-01,义乌仓,DOMESTIC,CN,UTC+8,浙江省,义乌市,322000,义乌仓通用地址待维护,按用户确认生成通用格式;后续运营可维护真实地址。
193000000000200002,193000000000300002,CN-DONGGUAN-01,东莞仓,DOMESTIC,CN,UTC+8,广东省,东莞市,523000,东莞仓通用地址待维护,按用户确认生成通用格式;后续运营可维护真实地址。
193000000000200003,193000000000300003,US-LAX-01,洛杉矶仓,OVERSEAS,US,UTC-8,CA,Los Angeles,90001,Los Angeles warehouse generic address pending maintenance,按用户确认生成通用格式;后续运营可维护真实地址。
193000000000200004,193000000000300004,US-NYC-01,纽约仓,OVERSEAS,US,UTC-5,NY,New York,10001,New York warehouse generic address pending maintenance,按用户确认生成通用格式;后续运营可维护真实地址。
193000000000200003,193000000000300003,US-LAX-01,洛杉矶仓,OVERSEAS,US,UTC-8,California,Rancho Cucamonga,91730,10767 7th Street,用户确认的真实海外仓地址。
193000000000200004,193000000000300004,US-NYC-01,纽约仓,OVERSEAS,US,UTC-5,New Jersey,Edison,08817,"Door 13-14, 75 Carter Dr",用户确认的真实海外仓地址。
1 warehouse_id_seed address_id_seed warehouse_code warehouse_name warehouse_type country_code timezone state_province city postal_code address_line1 note
2 193000000000200001 193000000000300001 CN-YIWU-01 义乌仓 DOMESTIC CN UTC+8 浙江省 义乌市 322000 义乌仓通用地址待维护 按用户确认生成通用格式;后续运营可维护真实地址。
3 193000000000200002 193000000000300002 CN-DONGGUAN-01 东莞仓 DOMESTIC CN UTC+8 广东省 东莞市 523000 东莞仓通用地址待维护 按用户确认生成通用格式;后续运营可维护真实地址。
4 193000000000200003 193000000000300003 US-LAX-01 洛杉矶仓 OVERSEAS US UTC-8 CA California Los Angeles Rancho Cucamonga 90001 91730 Los Angeles warehouse generic address pending maintenance 10767 7th Street 按用户确认生成通用格式;后续运营可维护真实地址。 用户确认的真实海外仓地址。
5 193000000000200004 193000000000300004 US-NYC-01 纽约仓 OVERSEAS US UTC-5 NY New Jersey New York Edison 10001 08817 New York warehouse generic address pending maintenance Door 13-14, 75 Carter Dr 按用户确认生成通用格式;后续运营可维护真实地址。 用户确认的真实海外仓地址。