cqp 3 veckor sedan
förälder
incheckning
7fa7c1e43c
1 ändrade filer med 24 tillägg och 28 borttagningar
  1. 24 28
      app/Service/ItemService.php

+ 24 - 28
app/Service/ItemService.php

@@ -246,17 +246,11 @@ class ItemService extends Service
             $tableName = $model->getTable();
 
             if(isset($data['draft'])){
-                // 创建草稿
-                $this->createDraft($data, $user, $tableName);
                 // 更新项目状态
                 $model->approval_state = Item::TYPE_MINUS_ONE;
                 $model->save();
-                //触发审批
-                list($status, $msg) = (new WorkFlowService())->triggerWorkflow($data['review_id'], $model->id,$tableName,$user);
-                if(! $status) {
-                    DB::rollBack();
-                    return [false, $msg];
-                }
+                //触发审批流
+                $this->createWorkFlow($data, $user, $tableName, $model->toArray());
 
                 DB::commit();
                 return [true, '更新记录成功,记录草稿,进入审批流程'];
@@ -426,6 +420,7 @@ class ItemService extends Service
 
     public function createDraft($data, $user, $type, $opt_type = 1) {
         if(isset($data['draft'])) unset($data['draft']);
+
         Draft::insert([
             'document_type' => $type,
             'document_id' => $data['id'],
@@ -436,8 +431,6 @@ class ItemService extends Service
             'opt_type' => $opt_type,
             'crt_time' => time()
         ]);
-
-        return true;
     }
 
     private function saveDetail($id, $time, $data){
@@ -1042,17 +1035,11 @@ class ItemService extends Service
             $tableName = $model->getTable();
 
             if(isset($data['draft'])){
-                // 创建草稿
-                $this->createDraft($data, $user, $tableName);
-                // 更新项目状态
+                // 更新项目节点状态
                 $model->approval_state = ItemNode::TYPE_MINUS_ONE;
                 $model->save();
-                //触发审批
-                list($status, $msg) = (new WorkFlowService())->triggerWorkflow($data['review_id'], $model->id, $tableName,$user);
-                if(! $status) {
-                    DB::rollBack();
-                    return [false, $msg];
-                }
+                //触发审批流
+                $this->createWorkFlow($data, $user, $tableName, $model->toArray());
 
                 DB::commit();
                 return [true, '更新记录成功,记录草稿,进入审批流程'];
@@ -1652,17 +1639,11 @@ class ItemService extends Service
             $tableName = $model->getTable();
 
             if(isset($data['draft'])){
-                // 创建草稿
-                $this->createDraft($data, $user, $tableName);
-                // 更新项目状态
+                // 更新项目节点状态
                 $model->approval_state = ItemNodeMission::TYPE_MINUS_ONE;
                 $model->save();
-                //触发审批
-                list($status, $msg) = (new WorkFlowService())->triggerWorkflow($data['review_id'], $model->id, $tableName,$user);
-                if(! $status) {
-                    DB::rollBack();
-                    return [false, $msg];
-                }
+                //触发审批流
+                $this->createWorkFlow($data, $user, $tableName, $model->toArray());
 
                 DB::commit();
                 return [true, '更新记录成功,记录草稿,进入审批流程'];
@@ -2391,4 +2372,19 @@ class ItemService extends Service
             ->pluck('b.title','a.id')
             ->toArray();
     }
+
+    /**
+     * 触发生成审批流
+     * @param $data 草稿数据
+     * @param $user 提交人
+     * @param $tableName 操作表
+     * @param $oldData 原数据
+     */
+    public function createWorkFlow($data, $user, $tableName, $oldData){
+        // 创建草稿
+        $this->createDraft($data, $user, $tableName);
+        //触发审批
+        list($status, $msg) = (new WorkFlowService())->triggerWorkflow($oldData['review_id'],$oldData['id'],$tableName,$user);
+        if(! $status) throw new \Exception($msg);
+    }
 }