fix(发货数据): 快递名称以出库单/发货明细当前值为准,发货数据视图仅兜底
- 聚水潭换单、改快递公司后,出库单、发货明细、订单的快递公司都会更新(如 崔桥顺丰干配→常州德邦、德邦快递→申通E物流), 工作平台随之显示新值;发货数据视图的 expressName 却停在旧值。此前优先取视图,9 月 111 个包裹快递名称与工作平台不一致。 - 改为:快递名称取出库单/发货明细当前值,视图只在两者都没有时兜底;仓库仍按视图 wareHoursName。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014nvGZkg27YMEdhRy6EiUwf
This commit is contained in:
parent
13d54d0c76
commit
1d94df969f
@ -1292,15 +1292,16 @@ class ShippingReplicaSynchronizer
|
||||
}
|
||||
|
||||
/**
|
||||
* 工作平台的快递名称/仓库即发货数据视图的 expressName / wareHoursName(抽样 14/14 一致):
|
||||
* 视图有值时以视图为准;视图无该出库单时保留出库单/发货明细推断的值。
|
||||
* 仓库以发货数据视图的 wareHoursName 为准(工作平台口径);快递名称以出库单/发货明细当前值为准,视图仅兜底。
|
||||
*/
|
||||
private function withViewCarrier(string $io, array $pkg, int $pkgId): array
|
||||
{
|
||||
if ($io === '') {
|
||||
return $pkg;
|
||||
}
|
||||
if (! empty($this->ioExpress[$io])) {
|
||||
// 快递名称以出库单/发货明细的当前值为准:聚水潭换单、改快递公司后出库单与发货明细会更新,工作平台跟着变,
|
||||
// 发货数据视图的 expressName 却停在旧值(如 崔桥顺丰干配→常州德邦)。视图只在出库单/发货明细没有快递名称时兜底。
|
||||
if (trim((string) ($pkg['express_name1'] ?? '')) === '' && ! empty($this->ioExpress[$io])) {
|
||||
$pkg['express_name1'] = $this->ioExpress[$io];
|
||||
}
|
||||
if (! empty($this->ioWare[$io])) {
|
||||
|
||||
@ -1300,8 +1300,11 @@ class ShippingReplicaSynchronizerTest extends TestCase
|
||||
$carrier->setAccessible(true);
|
||||
|
||||
// 视图有值:快递名称、仓库按视图(工作平台口径),不再按发货主体回填
|
||||
// 快递名称:出库单/发货明细已有当前值(换单后)时不被视图旧值覆盖;没有时用视图兜底
|
||||
$pkg = $carrier->invoke($sync, '12', ['express_name1' => '崔桥顺丰干配', 'warehouse_name' => '工厂-河北浩浦代发仓'], 1);
|
||||
$this->assertSame('常州德邦', $pkg['express_name1']);
|
||||
$this->assertSame('崔桥顺丰干配', $pkg['express_name1']);
|
||||
$blank = $carrier->invoke($sync, '12', ['express_name1' => '', 'warehouse_name' => ''], 5);
|
||||
$this->assertSame('常州德邦', $blank['express_name1']);
|
||||
$this->assertSame('工厂-河南千优代发仓', $pkg['warehouse_name']);
|
||||
$this->assertArrayNotHasKey(1, $pending->getValue($sync));
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user