- 商品来源从「下单商品 jst_OrderItem」改为「出库实发商品」:按出库单 io_id 关联发货数据视图 Jst_SendData_View_extension 取实发条码/数量,jst_OrderItem/dws 仅作兜底。消除组合/多规格包裹的多吐行与数量错误。 - 长宽高/体积/供应商/重量优先取自发货视图(体积=长×宽×高,整箱算一次)。 - 导出明细:多条码(逗号拼接)按条码拆条,数量/体积按条码数均摊,合并求和后与整行一致。 - 去除以 @ 开头、去@后已存在的重复单号(换单/重拉产生)。 - 发货单查询改为按主键翻页 + PHP 窗口过滤,避免 send_time 无索引全表扫。 - 逐天预载 dws,进度回调输出扫描/命中进度。 新增命令:jst:dump(导出对比CSV)、jst:row(抽查单号)、jst:dedup-at(去@重复)。 9.1-9.16 全量对比:共有 19.3 万包裹,数量/名称/条码/体积/供应商等字段一致率 99.9%; 导出明细件数结构 99.87% 一致。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014nvGZkg27YMEdhRy6EiUwf
28 lines
738 B
PHP
28 lines
738 B
PHP
<?php
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
use Illuminate\Console\Command;
|
|
use Modules\EcommerceFinance\Services\Jushuitan\ShippingReplicaSynchronizer;
|
|
|
|
/**
|
|
* 一次性:删除现有发货数据里以 @ 开头、去@后已存在的重复单号。
|
|
* php artisan jst:dedup-at
|
|
*/
|
|
class DedupAt extends Command
|
|
{
|
|
protected $signature = 'jst:dedup-at';
|
|
|
|
protected $description = '去除 @ 开头的重复单号(去@后已存在则删)';
|
|
|
|
public function handle(): int
|
|
{
|
|
@ini_set('memory_limit', '1024M');
|
|
@set_time_limit(0);
|
|
$removed = ShippingReplicaSynchronizer::make()->dedupAtPrefix();
|
|
$this->info('去除@重复单号:' . $removed . ' 条');
|
|
|
|
return self::SUCCESS;
|
|
}
|
|
}
|