From a0a71161d35633d05282a7d6e187a43194510496 Mon Sep 17 00:00:00 2001 From: "WIN-C27C5MSVTPO\\16961" <1696136552@qq.com> Date: Mon, 8 Dec 2025 13:19:16 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E5=A4=87=E8=B4=A7=E5=8D=95=E4=B8=8E?= =?UTF-8?q?=E5=AE=A1=E6=89=B9=E6=95=B0=E6=8D=AE=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/service/ApprovalRecordsService.php | 6 +++++- app/crm/service/StockOrdersService.php | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/common/service/ApprovalRecordsService.php b/app/common/service/ApprovalRecordsService.php index 61c026e..2de3f44 100644 --- a/app/common/service/ApprovalRecordsService.php +++ b/app/common/service/ApprovalRecordsService.php @@ -56,7 +56,11 @@ class ApprovalRecordsService case 'todo': if ($p['scene'] === 'todo') { - if (!in_array(1, $request->user->role_ids)) { +// if (!in_array(1, $request->user->role_ids)) { +// $config['where']['approver_id'] = $request->user->uid; +// } + $roles_id = array_intersect([1,5,6], $request->user->role_ids); + if(count($roles_id) === 0){ $config['where']['approver_id'] = $request->user->uid; } $config['where']['status'] = 'pending'; diff --git a/app/crm/service/StockOrdersService.php b/app/crm/service/StockOrdersService.php index 492ffd3..d9408d7 100644 --- a/app/crm/service/StockOrdersService.php +++ b/app/crm/service/StockOrdersService.php @@ -2,6 +2,7 @@ namespace app\crm\service; +use app\common\model\User; use support\Request; use support\exception\BusinessException; @@ -34,7 +35,10 @@ class StockOrdersService extends \app\common\service\StockOrdersService $config['order']['id'] = 'desc'; - $config['where']['salesperson_id'] = $request->user->uid; + $roles_id = array_intersect([1,5,6], $request->user->role_ids); + if(count($roles_id) === 0){ + $config['where']['salesperson_id'] = $request->user->uid; + } break; case 'print': case 'approval': From 59994d1f5a3936538757d30c258646b205a5eaa0 Mon Sep 17 00:00:00 2001 From: "WIN-C27C5MSVTPO\\16961" <1696136552@qq.com> Date: Mon, 8 Dec 2025 13:22:37 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E5=A4=87=E8=B4=A7=E5=8D=95=E4=B8=8E?= =?UTF-8?q?=E5=AE=A1=E6=89=B9=E6=95=B0=E6=8D=AE=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/service/ApprovalRecordsService.php | 2 +- app/crm/service/StockOrdersService.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/common/service/ApprovalRecordsService.php b/app/common/service/ApprovalRecordsService.php index 2de3f44..9853b9d 100644 --- a/app/common/service/ApprovalRecordsService.php +++ b/app/common/service/ApprovalRecordsService.php @@ -60,7 +60,7 @@ class ApprovalRecordsService // $config['where']['approver_id'] = $request->user->uid; // } $roles_id = array_intersect([1,5,6], $request->user->role_ids); - if(count($roles_id) === 0){ + if(count($roles_id) == 0){ $config['where']['approver_id'] = $request->user->uid; } $config['where']['status'] = 'pending'; diff --git a/app/crm/service/StockOrdersService.php b/app/crm/service/StockOrdersService.php index d9408d7..cfd964a 100644 --- a/app/crm/service/StockOrdersService.php +++ b/app/crm/service/StockOrdersService.php @@ -36,7 +36,7 @@ class StockOrdersService extends \app\common\service\StockOrdersService $config['order']['id'] = 'desc'; $roles_id = array_intersect([1,5,6], $request->user->role_ids); - if(count($roles_id) === 0){ + if(count($roles_id) == 0){ $config['where']['salesperson_id'] = $request->user->uid; } break; From 32aa7170a53d84777c60198fd2a2ad1a69fe10d1 Mon Sep 17 00:00:00 2001 From: "WIN-C27C5MSVTPO\\16961" <1696136552@qq.com> Date: Mon, 8 Dec 2025 13:24:37 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E5=A4=87=E8=B4=A7=E5=8D=95=E4=B8=8E?= =?UTF-8?q?=E5=AE=A1=E6=89=B9=E6=95=B0=E6=8D=AE=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/service/ApprovalRecordsService.php | 10 +++++----- app/crm/service/StockOrdersService.php | 9 +++++---- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/app/common/service/ApprovalRecordsService.php b/app/common/service/ApprovalRecordsService.php index 9853b9d..4d837af 100644 --- a/app/common/service/ApprovalRecordsService.php +++ b/app/common/service/ApprovalRecordsService.php @@ -56,13 +56,13 @@ class ApprovalRecordsService case 'todo': if ($p['scene'] === 'todo') { -// if (!in_array(1, $request->user->role_ids)) { -// $config['where']['approver_id'] = $request->user->uid; -// } - $roles_id = array_intersect([1,5,6], $request->user->role_ids); - if(count($roles_id) == 0){ + if (!in_array(1, $request->user->role_ids)) { $config['where']['approver_id'] = $request->user->uid; } +// $roles_id = array_intersect([1,5,6], $request->user->role_ids); +// if(count($roles_id) == 0){ +// $config['where']['approver_id'] = $request->user->uid; +// } $config['where']['status'] = 'pending'; $config['where']['instance.status'] = 'processing'; } diff --git a/app/crm/service/StockOrdersService.php b/app/crm/service/StockOrdersService.php index cfd964a..1999cd7 100644 --- a/app/crm/service/StockOrdersService.php +++ b/app/crm/service/StockOrdersService.php @@ -35,10 +35,11 @@ class StockOrdersService extends \app\common\service\StockOrdersService $config['order']['id'] = 'desc'; - $roles_id = array_intersect([1,5,6], $request->user->role_ids); - if(count($roles_id) == 0){ - $config['where']['salesperson_id'] = $request->user->uid; - } +// $roles_id = array_intersect([1,5,6], $request->user->role_ids); +// if(count($roles_id) == 0){ +// $config['where']['salesperson_id'] = $request->user->uid; +// } + $config['where']['salesperson_id'] = $request->user->uid; break; case 'print': case 'approval': From 4bcc6c53f7cfd10d4ce4fc57b8714fbcca721b4b Mon Sep 17 00:00:00 2001 From: "WIN-C27C5MSVTPO\\16961" <1696136552@qq.com> Date: Mon, 8 Dec 2025 13:42:20 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E5=A4=87=E8=B4=A7=E5=8D=95=E4=B8=8E?= =?UTF-8?q?=E5=AE=A1=E6=89=B9=E6=95=B0=E6=8D=AE=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/service/ApprovalRecordsService.php | 10 +++++----- app/crm/service/StockOrdersService.php | 9 ++++----- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/app/common/service/ApprovalRecordsService.php b/app/common/service/ApprovalRecordsService.php index 4d837af..9853b9d 100644 --- a/app/common/service/ApprovalRecordsService.php +++ b/app/common/service/ApprovalRecordsService.php @@ -56,13 +56,13 @@ class ApprovalRecordsService case 'todo': if ($p['scene'] === 'todo') { - if (!in_array(1, $request->user->role_ids)) { - $config['where']['approver_id'] = $request->user->uid; - } -// $roles_id = array_intersect([1,5,6], $request->user->role_ids); -// if(count($roles_id) == 0){ +// if (!in_array(1, $request->user->role_ids)) { // $config['where']['approver_id'] = $request->user->uid; // } + $roles_id = array_intersect([1,5,6], $request->user->role_ids); + if(count($roles_id) == 0){ + $config['where']['approver_id'] = $request->user->uid; + } $config['where']['status'] = 'pending'; $config['where']['instance.status'] = 'processing'; } diff --git a/app/crm/service/StockOrdersService.php b/app/crm/service/StockOrdersService.php index 1999cd7..cfd964a 100644 --- a/app/crm/service/StockOrdersService.php +++ b/app/crm/service/StockOrdersService.php @@ -35,11 +35,10 @@ class StockOrdersService extends \app\common\service\StockOrdersService $config['order']['id'] = 'desc'; -// $roles_id = array_intersect([1,5,6], $request->user->role_ids); -// if(count($roles_id) == 0){ -// $config['where']['salesperson_id'] = $request->user->uid; -// } - $config['where']['salesperson_id'] = $request->user->uid; + $roles_id = array_intersect([1,5,6], $request->user->role_ids); + if(count($roles_id) == 0){ + $config['where']['salesperson_id'] = $request->user->uid; + } break; case 'print': case 'approval': From a33b109ddb3454dec4ec8b6cd2cb7674140a368d Mon Sep 17 00:00:00 2001 From: "WIN-C27C5MSVTPO\\16961" <1696136552@qq.com> Date: Mon, 8 Dec 2025 15:01:02 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E5=86=85=E5=8B=A4=E5=A4=87=E8=B4=A7?= =?UTF-8?q?=E5=8D=95=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/service/ApprovalRecordsService.php | 23 +++++++++++++++- app/crm/service/StockOrdersService.php | 26 ++++++++++++++++--- 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/app/common/service/ApprovalRecordsService.php b/app/common/service/ApprovalRecordsService.php index 9853b9d..46ceb16 100644 --- a/app/common/service/ApprovalRecordsService.php +++ b/app/common/service/ApprovalRecordsService.php @@ -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; @@ -61,7 +63,26 @@ class ApprovalRecordsService // } $roles_id = array_intersect([1,5,6], $request->user->role_ids); if(count($roles_id) == 0){ - $config['where']['approver_id'] = $request->user->uid; + 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('user_id',$request->user->uid) + ->pluck('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']['approver_id'] = $request->user->uid; + } } $config['where']['status'] = 'pending'; $config['where']['instance.status'] = 'processing'; diff --git a/app/crm/service/StockOrdersService.php b/app/crm/service/StockOrdersService.php index cfd964a..449c182 100644 --- a/app/crm/service/StockOrdersService.php +++ b/app/crm/service/StockOrdersService.php @@ -3,6 +3,7 @@ namespace app\crm\service; use app\common\model\User; +use app\common\model\UserGroupMembers; use support\Request; use support\exception\BusinessException; @@ -35,9 +36,28 @@ class StockOrdersService extends \app\common\service\StockOrdersService $config['order']['id'] = 'desc'; - $roles_id = array_intersect([1,5,6], $request->user->role_ids); - if(count($roles_id) == 0){ - $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('user_id',$request->user->uid) + ->pluck('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': From 8c3fbd4d9a2e34685ff4304b3b3e624037b60937 Mon Sep 17 00:00:00 2001 From: "WIN-C27C5MSVTPO\\16961" <1696136552@qq.com> Date: Tue, 9 Dec 2025 10:48:59 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E5=86=85=E5=8B=A4=E5=A4=87=E8=B4=A7?= =?UTF-8?q?=E5=8D=95=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/service/ApprovalRecordsService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/common/service/ApprovalRecordsService.php b/app/common/service/ApprovalRecordsService.php index 46ceb16..9cf87b6 100644 --- a/app/common/service/ApprovalRecordsService.php +++ b/app/common/service/ApprovalRecordsService.php @@ -89,7 +89,7 @@ class ApprovalRecordsService } if ($p['scene'] === 'history') { - if (!in_array(1, $request->user->role_ids)) { + if (!in_array(1, $request->user->role_ids) && !in_array(5, $request->user->role_ids)) { $config['where']['approver_id'] = $request->user->uid; } $config['where']['status'] = ['!=', 'pending']; From 7258d9890e44112a6b5c9bf1564bac394db35656 Mon Sep 17 00:00:00 2001 From: "WIN-C27C5MSVTPO\\16961" <1696136552@qq.com> Date: Tue, 9 Dec 2025 10:54:58 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E5=86=85=E5=8B=A4=E5=A4=87=E8=B4=A7?= =?UTF-8?q?=E5=8D=95=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/service/ApprovalRecordsService.php | 4 ++-- app/crm/service/StockOrdersService.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/common/service/ApprovalRecordsService.php b/app/common/service/ApprovalRecordsService.php index 9cf87b6..c5ea74a 100644 --- a/app/common/service/ApprovalRecordsService.php +++ b/app/common/service/ApprovalRecordsService.php @@ -72,8 +72,8 @@ class ApprovalRecordsService ->where('is_leader',1) ->first(); if($userGroupMember){ - $report = UserGroupMembers::where('user_id',$request->user->uid) - ->pluck('id') + $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]; diff --git a/app/crm/service/StockOrdersService.php b/app/crm/service/StockOrdersService.php index 449c182..b2b2654 100644 --- a/app/crm/service/StockOrdersService.php +++ b/app/crm/service/StockOrdersService.php @@ -47,8 +47,8 @@ class StockOrdersService extends \app\common\service\StockOrdersService ->where('is_leader',1) ->first(); if($userGroupMember){ - $report = UserGroupMembers::where('user_id',$request->user->uid) - ->pluck('id') + $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]; From 0ace4a7b0ba9f33ee2cfe95753c1b5fdb0a4ed84 Mon Sep 17 00:00:00 2001 From: "WIN-C27C5MSVTPO\\16961" <1696136552@qq.com> Date: Tue, 9 Dec 2025 11:08:51 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E5=86=85=E5=8B=A4=E5=A4=87=E8=B4=A7?= =?UTF-8?q?=E5=8D=95=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/service/ApprovalRecordsService.php | 29 +++++++++++++++++-- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/app/common/service/ApprovalRecordsService.php b/app/common/service/ApprovalRecordsService.php index c5ea74a..386480d 100644 --- a/app/common/service/ApprovalRecordsService.php +++ b/app/common/service/ApprovalRecordsService.php @@ -61,7 +61,7 @@ class ApprovalRecordsService // if (!in_array(1, $request->user->role_ids)) { // $config['where']['approver_id'] = $request->user->uid; // } - $roles_id = array_intersect([1,5,6], $request->user->role_ids); + $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(); @@ -89,8 +89,31 @@ class ApprovalRecordsService } if ($p['scene'] === 'history') { - if (!in_array(1, $request->user->role_ids) && !in_array(5, $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']['salesperson_id'] = ['in',$report]; + }else{ //内勤没有负责的组时 + $config['where']['salesperson_id'] = $request->user->uid; + } + } else { + $config['where']['approver_id'] = $request->user->uid; + } } $config['where']['status'] = ['!=', 'pending']; } From b391608d87bf0a6f88b6da34d3c42934eb3a52e5 Mon Sep 17 00:00:00 2001 From: "WIN-C27C5MSVTPO\\16961" <1696136552@qq.com> Date: Tue, 9 Dec 2025 11:12:36 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E5=86=85=E5=8B=A4=E5=A4=87=E8=B4=A7?= =?UTF-8?q?=E5=8D=95=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/service/ApprovalRecordsService.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/common/service/ApprovalRecordsService.php b/app/common/service/ApprovalRecordsService.php index 386480d..f0e33b1 100644 --- a/app/common/service/ApprovalRecordsService.php +++ b/app/common/service/ApprovalRecordsService.php @@ -76,9 +76,9 @@ class ApprovalRecordsService ->pluck('user_id') ->toArray(); $report = array_merge($report, [$request->user->uid]); - $config['where']['salesperson_id'] = ['in',$report]; + $config['where']['approver_id'] = ['in',$report]; }else{ //内勤没有负责的组时 - $config['where']['salesperson_id'] = $request->user->uid; + $config['where']['approver_id'] = $request->user->uid; } } else { $config['where']['approver_id'] = $request->user->uid; @@ -107,9 +107,9 @@ class ApprovalRecordsService ->pluck('user_id') ->toArray(); $report = array_merge($report, [$request->user->uid]); - $config['where']['salesperson_id'] = ['in',$report]; + $config['where']['approver_id'] = ['in',$report]; }else{ //内勤没有负责的组时 - $config['where']['salesperson_id'] = $request->user->uid; + $config['where']['approver_id'] = $request->user->uid; } } else { $config['where']['approver_id'] = $request->user->uid;