CaiWuXiTong/modules/EcommerceFinance/Console/ProcessDingRefreshRequests.php
yueyang 7b8a5e1214 feat: 增加OA进行中流程按需刷新 (#785)
页面进入时仅异步刷新当前页审批中的流程,并自动载入最新镜像。
2026-10-30 15:04:43 +08:00

43 lines
1.3 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace Modules\EcommerceFinance\Console;
use Illuminate\Console\Command;
use Modules\EcommerceFinance\Services\DingProcessDetailMirrorSynchronizer;
use Modules\EcommerceFinance\Services\DingProcessRefreshQueue;
use Throwable;
class ProcessDingRefreshRequests extends Command
{
protected $signature = 'business-mirror:process-ding-refresh-requests';
protected $description = '处理 OA 页面提交的进行中审批定向刷新请求';
public function handle(
DingProcessRefreshQueue $queue,
DingProcessDetailMirrorSynchronizer $synchronizer,
): int {
$queue->cleanup();
$request = $queue->claimNext();
if ($request === null) {
return self::SUCCESS;
}
try {
$result = $synchronizer->syncBusinessIds($request['business_ids']);
$queue->complete($request['token'], $result);
$this->info(sprintf(
'OA定向刷新完成:%d 个审批。',
count($request['business_ids']),
));
return self::SUCCESS;
} catch (Throwable $exception) {
$queue->fail($request['token'], $exception->getMessage());
$this->error('OA定向刷新失败:' . $exception->getMessage());
return self::FAILURE;
}
}
}