From 694056c8cc957054b695f80820863b4c5840ebfe Mon Sep 17 00:00:00 2001 From: mzl Date: Mon, 31 Aug 2026 20:39:28 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=B8=9A=E5=8A=A1=E4=B8=BB=E7=AE=A1?= =?UTF-8?q?=E5=A4=87=E8=B4=A7=E5=8D=95=E5=88=97=E8=A1=A8=E6=81=A2=E5=A4=8D?= =?UTF-8?q?"=E8=87=AA=E5=B7=B1+=E7=9B=B4=E5=B1=9E=E4=B8=8B=E5=B1=9E"?= =?UTF-8?q?=E8=A7=86=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原因:生效角色列表 [1,5,6] 不含业务主管(4),且主管分支被注释, 导致主管落到默认条件只看自己。 修复:intersect 改为 [1,4,5,6],新增主管分支—— salesperson_id IN (自己 + report_to 指向自己的直属下属,一级, 不过滤审批状态即含草稿)。内勤/超管分支优先级不变。 Co-Authored-By: Claude --- app/crm/service/StockOrdersService.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/crm/service/StockOrdersService.php b/app/crm/service/StockOrdersService.php index 1c3ec45..66a0040 100644 --- a/app/crm/service/StockOrdersService.php +++ b/app/crm/service/StockOrdersService.php @@ -61,7 +61,7 @@ class StockOrdersService extends \app\common\service\StockOrdersService $user_role_id = UserRoles::where('user_id', $request->user->uid)->pluck('role_id')->toArray(); //$roles_id = array_intersect([1,6], $request->user->role_ids); - $roles_id = array_intersect([1,5,6], $user_role_id); + $roles_id = array_intersect([1,4,5,6], $user_role_id); if (count($roles_id) != 0){ // if(in_array(4, $request->user->role_ids)){ //业务主管 // $report = User::where('report_to',$request->user->uid)->pluck('id')->toArray(); @@ -88,6 +88,10 @@ class StockOrdersService extends \app\common\service\StockOrdersService $config['orWhere'][] = ['approval_status','>=',1]; $config['orWhere'][] = ['salesperson_id','=',$request->user->uid]; unset($config['where']['salesperson_id']); + } elseif (in_array(4,$roles_id)) { //业务主管:自己+直属下属(report_to指向他,一级,含草稿) + $report = User::where('report_to',$request->user->uid)->pluck('id')->toArray(); + $report[] = $request->user->uid; + $config['where']['salesperson_id'] = ['in',$report]; }else{ $config['where']['salesperson_id'] = $request->user->uid; }