fix: 业务主管备货单列表恢复"自己+直属下属"视图

原因:生效角色列表 [1,5,6] 不含业务主管(4),且主管分支被注释,
导致主管落到默认条件只看自己。
修复:intersect 改为 [1,4,5,6],新增主管分支——
salesperson_id IN (自己 + report_to 指向自己的直属下属,一级,
不过滤审批状态即含草稿)。内勤/超管分支优先级不变。

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
mzl
2026-08-31 20:39:28 +08:00
parent 2de6342058
commit 694056c8cc
+5 -1
View File
@@ -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;
}