Merge branch 'master' into develop

This commit is contained in:
2025-12-09 11:28:51 +08:00
2 changed files with 77 additions and 5 deletions
+52 -4
View File
@@ -2,6 +2,8 @@
namespace app\common\service;
use app\common\model\User;
use app\common\model\UserGroupMembers;
use app\common\validate\ApprovalRecordsValidate;
use app\common\traits\crud\CrudServiceTrait;
use app\common\model\ApprovalRecords;
@@ -56,16 +58,62 @@ class ApprovalRecordsService
case 'todo':
if ($p['scene'] === 'todo') {
if (!in_array(1, $request->user->role_ids)) {
$config['where']['approver_id'] = $request->user->uid;
// if (!in_array(1, $request->user->role_ids)) {
// $config['where']['approver_id'] = $request->user->uid;
// }
$roles_id = array_intersect([1,6], $request->user->role_ids);
if(count($roles_id) == 0){
if(in_array(4, $request->user->role_ids)){
$report = User::where('report_to',$request->user->uid)->pluck('id')->toArray();
$report = array_merge($report, [$request->user->uid]);
$config['where']['approver_id'] = ['in',$report];
} elseif (in_array(5, $request->user->role_ids)){ //内勤
$userGroupMember = UserGroupMembers::where('user_id',$request->user->uid)
->where('is_leader',1)
->first();
if($userGroupMember){
$report = UserGroupMembers::where('group_id',$userGroupMember->group_id)
->pluck('user_id')
->toArray();
$report = array_merge($report, [$request->user->uid]);
$config['where']['approver_id'] = ['in',$report];
}else{ //内勤没有负责的组时
$config['where']['approver_id'] = $request->user->uid;
}
} else {
$config['where']['approver_id'] = $request->user->uid;
}
}
$config['where']['status'] = 'pending';
$config['where']['instance.status'] = 'processing';
}
if ($p['scene'] === 'history') {
if (!in_array(1, $request->user->role_ids)) {
$config['where']['approver_id'] = $request->user->uid;
// if (!in_array(1, $request->user->role_ids) && !in_array(5, $request->user->role_ids)) {
// $config['where']['approver_id'] = $request->user->uid;
// }
$roles_id = array_intersect([1,6], $request->user->role_ids);
if(count($roles_id) == 0){
if(in_array(4, $request->user->role_ids)){
$report = User::where('report_to',$request->user->uid)->pluck('id')->toArray();
$report = array_merge($report, [$request->user->uid]);
$config['where']['approver_id'] = ['in',$report];
} elseif (in_array(5, $request->user->role_ids)){ //内勤
$userGroupMember = UserGroupMembers::where('user_id',$request->user->uid)
->where('is_leader',1)
->first();
if($userGroupMember){
$report = UserGroupMembers::where('group_id',$userGroupMember->group_id)
->pluck('user_id')
->toArray();
$report = array_merge($report, [$request->user->uid]);
$config['where']['approver_id'] = ['in',$report];
}else{ //内勤没有负责的组时
$config['where']['approver_id'] = $request->user->uid;
}
} else {
$config['where']['approver_id'] = $request->user->uid;
}
}
$config['where']['status'] = ['!=', 'pending'];
}
+25 -1
View File
@@ -2,6 +2,8 @@
namespace app\crm\service;
use app\common\model\User;
use app\common\model\UserGroupMembers;
use support\Request;
use support\exception\BusinessException;
@@ -34,7 +36,29 @@ class StockOrdersService extends \app\common\service\StockOrdersService
$config['order']['id'] = 'desc';
$config['where']['salesperson_id'] = $request->user->uid;
$roles_id = array_intersect([1,6], $request->user->role_ids);
if (count($roles_id) == 0){
if(in_array(4, $request->user->role_ids)){ //业务主管
$report = User::where('report_to',$request->user->uid)->pluck('id')->toArray();
$report = array_merge($report, [$request->user->uid]);
$config['where']['salesperson_id'] = ['in',$report];
} elseif (in_array(5, $request->user->role_ids)){ //内勤
$userGroupMember = UserGroupMembers::where('user_id',$request->user->uid)
->where('is_leader',1)
->first();
if($userGroupMember){
$report = UserGroupMembers::where('group_id',$userGroupMember->group_id)
->pluck('user_id')
->toArray();
$report = array_merge($report, [$request->user->uid]);
$config['where']['salesperson_id'] = ['in',$report];
}else{ //内勤没有负责的组时
$config['where']['salesperson_id'] = $request->user->uid;
}
} else {
$config['where']['salesperson_id'] = $request->user->uid;
}
}
break;
case 'print':
case 'approval':