44 lines
1.3 KiB
PHP
44 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
use Illuminate\Console\Command;
|
|
use Modules\EcommerceFinance\Services\DingProcessDetailMirrorImporter;
|
|
use Throwable;
|
|
|
|
class ImportDingProcessDetails extends Command
|
|
{
|
|
protected $signature = 'ding:import-process-details
|
|
{file : 15 列流程明细 CSV 文件路径}
|
|
{--scope=personal_permission : 数据权限范围标识}
|
|
{--replace : 导入前清空同一范围的数据}';
|
|
|
|
protected $description = '导入钉钉流程明细到共享业务镜像';
|
|
|
|
public function handle(DingProcessDetailMirrorImporter $importer): int
|
|
{
|
|
try {
|
|
$result = $importer->import(
|
|
(string) $this->argument('file'),
|
|
(string) $this->option('scope'),
|
|
(bool) $this->option('replace'),
|
|
);
|
|
} catch (Throwable $exception) {
|
|
$this->error('导入失败:' . $exception->getMessage());
|
|
|
|
return self::FAILURE;
|
|
}
|
|
|
|
$this->info(sprintf(
|
|
'导入完成:%d 行,跳过占位 %d 行,跳过无效 %d 行,重复 %d 行,范围 %s。',
|
|
$result['rows'],
|
|
$result['placeholders'],
|
|
$result['invalid'],
|
|
$result['duplicates'],
|
|
$result['scope'],
|
|
));
|
|
|
|
return self::SUCCESS;
|
|
}
|
|
}
|