Commit 2ef15e40 by 杨树贤

fix

parent 8b22f616
Showing with 75 additions and 60 deletions
......@@ -1320,7 +1320,7 @@ class SupplierService
$suppliers = $query->get();
\dump("一共处理供应商 : " . count($suppliers->toArray()));
// 记录总数但不使用dump避免输出问题
$result = [
'mode' => $isProdMode ? 'production' : 'debug',
......@@ -1333,60 +1333,85 @@ class SupplierService
];
foreach ($suppliers as $supplier) {
$result['total']++;
$supplierId = $supplier->supplier_id;
$yunxinChannelUid = $supplier->yunxin_channel_uid;
try {
// 数据库重连,防止长时间运行断开
if ($result['total'] > 0 && $result['total'] % 100 == 0) {
\DB::reconnect('web');
}
// 调用autoAssignPurchaseUser处理分配逻辑
$assignResult = $supplierService->autoAssignPurchaseUser($supplierId, $yunxinChannelUid, $isProdMode);
$result['total']++;
$supplierId = $supplier->supplier_id;
$yunxinChannelUid = $supplier->yunxin_channel_uid;
if ($assignResult['success']) {
// 判断是跳过还是真正分配了
if (strpos($assignResult['reason'], '跳过') !== false) {
$result['skipped']++;
$result['debug_info'][] = [
'supplier_id' => $supplierId,
'supplier_code' => $supplier->supplier_code,
'supplier_name' => $supplier->supplier_name,
'skip_reason' => $assignResult['reason'],
];
// 调用autoAssignPurchaseUser处理分配逻辑
$assignResult = $supplierService->autoAssignPurchaseUser($supplierId, $yunxinChannelUid, $isProdMode);
if ($progressCallback) {
$progressCallback([
if ($assignResult['success']) {
// 判断是跳过还是真正分配了
if (strpos($assignResult['reason'], '跳过') !== false) {
$result['skipped']++;
$result['debug_info'][] = [
'supplier_id' => $supplierId,
'supplier_code' => $supplier->supplier_code,
'supplier_name' => $supplier->supplier_name,
'action' => '跳过:' . $assignResult['reason'],
'status' => 'skip',
]);
}
} else {
$result['success']++;
$assignCodeIds = isset($assignResult['debug_info']['assign_code_ids']) ? $assignResult['debug_info']['assign_code_ids'] : [];
$assignNames = array_map(function ($codeId) use ($adminUserService) {
return $adminUserService->getAdminUserNameByCodeId($codeId);
}, $assignCodeIds);
'skip_reason' => $assignResult['reason'],
];
if ($progressCallback) {
$progressCallback([
'supplier_id' => $supplierId,
'supplier_name' => $supplier->supplier_name,
'action' => '跳过:' . $assignResult['reason'],
'status' => 'skip',
]);
}
} else {
$result['success']++;
$assignCodeIds = isset($assignResult['debug_info']['assign_code_ids']) ? $assignResult['debug_info']['assign_code_ids'] : [];
$assignNames = array_map(function ($codeId) use ($adminUserService) {
return $adminUserService->getAdminUserNameByCodeId($codeId);
}, $assignCodeIds);
// 获取需要分配的数量
$needAssignLiexin = isset($assignResult['debug_info']['need_assign_liexin']) ? $assignResult['debug_info']['need_assign_liexin'] : array();
$needAssignDataFollower = isset($assignResult['debug_info']['need_assign_data_follower']) ? $assignResult['debug_info']['need_assign_data_follower'] : array();
// 获取需要分配的数量
$needAssignLiexin = isset($assignResult['debug_info']['need_assign_liexin']) ? $assignResult['debug_info']['need_assign_liexin'] : array();
$needAssignDataFollower = isset($assignResult['debug_info']['need_assign_data_follower']) ? $assignResult['debug_info']['need_assign_data_follower'] : array();
$liexinCount = count($needAssignLiexin);
$followerCount = count($needAssignDataFollower);
$liexinCount = count($needAssignLiexin);
$followerCount = count($needAssignDataFollower);
// 判断是新增还是补充
$isNew = ($liexinCount == count($assignCodeIds) && $followerCount == count($assignCodeIds));
$action = '新增' . $liexinCount . '个猎芯采购,' . $followerCount . '个数据跟单员';
// 判断是新增还是补充
$isNew = ($liexinCount == count($assignCodeIds) && $followerCount == count($assignCodeIds));
$action = '新增' . $liexinCount . '个猎芯采购,' . $followerCount . '个数据跟单员';
$result['details'][] = [
$result['details'][] = [
'supplier_id' => $supplierId,
'supplier_code' => $supplier->supplier_code,
'supplier_name' => $supplier->supplier_name,
'action' => $action,
'assign_code_ids' => $assignCodeIds,
'assign_names' => $assignNames,
'is_new' => $isNew,
'need_assign_liexin' => $liexinCount,
'need_assign_follower' => $followerCount,
];
// 回调进度
if ($progressCallback) {
$progressCallback([
'supplier_id' => $supplierId,
'supplier_name' => $supplier->supplier_name,
'action' => '成功:' . $action,
'status' => 'success',
]);
}
}
} else {
$result['failed']++;
$result['debug_info'][] = [
'supplier_id' => $supplierId,
'supplier_code' => $supplier->supplier_code,
'supplier_name' => $supplier->supplier_name,
'action' => $action,
'assign_code_ids' => $assignCodeIds,
'assign_names' => $assignNames,
'is_new' => $isNew,
'need_assign_liexin' => $liexinCount,
'need_assign_follower' => $followerCount,
'fail_reason' => $assignResult['reason'],
];
// 回调进度
......@@ -1394,29 +1419,19 @@ class SupplierService
$progressCallback([
'supplier_id' => $supplierId,
'supplier_name' => $supplier->supplier_name,
'action' => '成功:' . $action,
'status' => 'success',
'action' => '失败:' . $assignResult['reason'],
'status' => 'failed',
]);
}
}
} else {
} catch (\Exception $e) {
$result['failed']++;
$result['debug_info'][] = [
'supplier_id' => $supplierId,
'supplier_code' => $supplier->supplier_code,
'supplier_name' => $supplier->supplier_name,
'fail_reason' => $assignResult['reason'],
'supplier_id' => isset($supplierId) ? $supplierId : 0,
'supplier_code' => isset($supplier->supplier_code) ? $supplier->supplier_code : '',
'supplier_name' => isset($supplier->supplier_name) ? $supplier->supplier_name : '',
'fail_reason' => '异常: ' . $e->getMessage(),
];
// 回调进度
if ($progressCallback) {
$progressCallback([
'supplier_id' => $supplierId,
'supplier_name' => $supplier->supplier_name,
'action' => '失败:' . $assignResult['reason'],
'status' => 'failed',
]);
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment