fix(warehouse): use location time zones for appointment scheduling

This commit is contained in:
2026-10-10 11:02:49 +08:00
parent c4c1bddeec
commit 47dc9e8bf6
16 changed files with 1002 additions and 969 deletions
@@ -67,6 +67,7 @@ for (const row of accepted) {
assert.equal(row.warehouse_code, row.warehouse_code.trim().toUpperCase())
if (row.source_internal_id) assert.match(row.source_internal_id, /^[A-Z0-9]{1,16}$/)
assert.equal(row.country_code, 'US')
assert.ok(row.timezone === '' || /^(America|Pacific)\//.test(row.timezone), `invalid region zone ${row.warehouse_code}`)
assert.ok(!codes.has(row.warehouse_code), `duplicate code ${row.warehouse_code}`)
assert.ok(!warehouseIds.has(row.warehouse_id_seed), `duplicate warehouse id ${row.warehouse_id_seed}`)
assert.ok(!addressIds.has(row.address_id_seed), `duplicate address id ${row.address_id_seed}`)
@@ -76,7 +77,8 @@ for (const row of accepted) {
const internalCode = row.source_internal_id ? `'${row.source_internal_id}'` : 'NULL'
const tuplePrefix = `(${row.warehouse_id_seed},${row.address_id_seed},'${row.warehouse_code}','${row.warehouse_name}',${internalCode},`
assert.ok(sql.includes(tuplePrefix), `standalone SQL missing ${row.warehouse_code}`)
assert.ok(unifiedSql.includes(tuplePrefix), `unified SQL missing ${row.warehouse_code}`)
const currentSeed = `(${row.warehouse_id_seed},0,'${row.warehouse_code}',${internalCode},'${row.warehouse_name}','FBA','US','${row.timezone}'`
assert.ok(unifiedSql.includes(currentSeed), `unified SQL missing current warehouse/timezone ${row.warehouse_code}`)
}
assert.ok(accepted.some((row) => row.warehouse_code === 'FEDEX' && row.city === ''))
@@ -90,10 +92,10 @@ assert.deepEqual(fixedWarehouses.map((row) => row.warehouse_code), [
'US-NYC-01',
])
assert.deepEqual(fixedWarehouses.map((row) => row.timezone), [
'UTC+8',
'UTC+8',
'UTC-8',
'UTC-5',
'Asia/Shanghai',
'Asia/Shanghai',
'America/Los_Angeles',
'America/New_York',
])
assert.deepEqual(
fixedWarehouses.filter((row) => row.warehouse_type === 'OVERSEAS').map((row) => ({
@@ -110,10 +112,10 @@ assert.deepEqual(
)
assert.match(sql, /CREATE TEMPORARY TABLE tmp_wh_fixed_platform_warehouse/)
assert.match(sql, /'CN-YIWU-01','义乌仓','DOMESTIC','CN','UTC\+8'/)
assert.match(sql, /'CN-DONGGUAN-01','东莞仓','DOMESTIC','CN','UTC\+8'/)
assert.match(sql, /'US-LAX-01','洛杉矶仓','OVERSEAS','US','UTC-8'/)
assert.match(sql, /'US-NYC-01','纽约仓','OVERSEAS','US','UTC-5'/)
assert.match(sql, /'CN-YIWU-01','义乌仓','DOMESTIC','CN','Asia\/Shanghai'/)
assert.match(sql, /'CN-DONGGUAN-01','东莞仓','DOMESTIC','CN','Asia\/Shanghai'/)
assert.match(sql, /'US-LAX-01','洛杉矶仓','OVERSEAS','US','America\/Los_Angeles'/)
assert.match(sql, /'US-NYC-01','纽约仓','OVERSEAS','US','America\/New_York'/)
assert.match(sql, /固定平台仓地址种子ID与既有数据冲突/)
assert.match(sql, /固定平台仓地址父子解析失败/)
assert.match(sql, /FROM tmp_wh_fixed_platform_warehouse source[\s\S]+ON DUPLICATE KEY UPDATE\s+tenant_id = VALUES\(tenant_id\);/)