cqp 4 weken geleden
bovenliggende
commit
7e323b7346
3 gewijzigde bestanden met toevoegingen van 17 en 3 verwijderingen
  1. 1 1
      app/Model/DataScopeBaseModel.php
  2. 11 0
      app/Service/ItemService.php
  3. 5 2
      app/Service/WorkFlowService.php

+ 1 - 1
app/Model/DataScopeBaseModel.php

@@ -115,7 +115,7 @@ class DataScopeBaseModel extends Model
                         ->whereColumn($relationTable . ".{$relationTableId}", $alias . '.id') // 关联主表的 ID
                         ->where($relationTable . '.data_id', $user['id'])         // 过滤当前操作人
                         ->where($relationTable . '.del_time', 0)                 // 排除已删除的关联记录
-                        ->where($relationTable . '.top_depart_id', 0);
+                        ->where($relationTable . '.top_depart_id', $user['top_depart_id']);
                 });
             }
         }

+ 11 - 0
app/Service/ItemService.php

@@ -224,6 +224,7 @@ class ItemService extends Service
 
             $model = Item::where('id', $data['id'])->first();
             $old_employee_id = $model->charge_id;
+            $crt_id = $model->crt_id;
             $tableName = $model->getTable();
             $model->code = $data['code'] ?? '';
             $model->title = $data['title'] ?? '';
@@ -261,6 +262,15 @@ class ItemService extends Service
                 return [false, $msg];
             }
 
+            //如果编辑人不是创建人触发审核
+            if($user['id'] != $crt_id){
+                list($status, $msg) = (new WorkFlowService())->triggerWorkflow($data['review_id'], $model->id,$tableName,$user);
+                if(! $status) {
+                    DB::rollBack();
+                    return [false, $msg];
+                }
+            }
+
             DB::commit();
         }catch (\Exception $exception){
             DB::rollBack();
@@ -888,6 +898,7 @@ class ItemService extends Service
 
             $model = ItemNode::where('id', $data['id'])->first();
             $old_employee_id = $model->charge_id;
+            $crt_id = $model->crt_id;
             $tableName = $model->getTable();
             $model->title = $data['title'] ?? '';
             $model->mark = $data['mark'] ?? "";

+ 5 - 2
app/Service/WorkFlowService.php

@@ -3,6 +3,7 @@
 namespace App\Service;
 
 use App\Model\Employee;
+use App\Model\SysMenu;
 use App\Model\WorkFlowInstances;
 use App\Model\WorkFlowInstancesNodes;
 use App\Model\WorkFlowTemplates;
@@ -166,10 +167,12 @@ class WorkFlowService extends Service
      * @param string $documentType 业务模型类名
      * @param array $user 当前操作用户信息
      */
-    public function triggerWorkflow($templateCode, $documentId, $documentType, $user)
+    public function triggerWorkflow($templateID, $documentId, $documentType, $user)
     {
+        if($user['select_tree_type'] == SysMenu::tree_type_zero) return [true, ''];
+
         // 1. 获取对应的审批流模板
-        $template = WorkFlowTemplates::where('code', $templateCode)
+        $template = WorkFlowTemplates::where('id', $templateID)
             ->where('top_depart_id', $user['top_depart_id'])
             ->where('del_time', 0)
             ->first();