cqp 23 часов назад
Родитель
Сommit
bcf733d9e3
1 измененных файлов с 23 добавлено и 3 удалено
  1. 23 3
      app/Service/ItemService.php

+ 23 - 3
app/Service/ItemService.php

@@ -2598,12 +2598,32 @@ class ItemService extends Service
             ->where('id',$data['id'])
             ->where('id',$data['id'])
             ->first();
             ->first();
         if(empty($model)) return [false,'项目节点任务不存在或已被删除'];
         if(empty($model)) return [false,'项目节点任务不存在或已被删除'];
+        $tableName = $model->getTable();
+        $oldData = $model->toArray();
         if($model->approval_state == ItemNodeMission::TYPE_MINUS_ONE) return [false, '任务审核中'];
         if($model->approval_state == ItemNodeMission::TYPE_MINUS_ONE) return [false, '任务审核中'];
         if($model->state == ItemNodeMission::TYPE_THREE) return [false, '任务已完结'];
         if($model->state == ItemNodeMission::TYPE_THREE) return [false, '任务已完结'];
 
 
+        //完结校验交付物
+        if($data['state'] == ItemNodeMission::TYPE_THREE){
+            list($bool, $msg) = $this->checkIsDelivery($oldData, $tableName);
+            if(! $bool) return [false , $msg];
+        }
+
         try {
         try {
             DB::beginTransaction();
             DB::beginTransaction();
 
 
+            $bool = $this->changedCommon($user, $oldData);
+            if($bool) {
+                // 更新项目状态
+                $model->approval_state = ItemNodeMission::TYPE_MINUS_ONE;
+                $model->save();
+                //触发审批流
+                $this->createWorkFlow(['id' => $data['id'], 'state' => ItemNodeMission::TYPE_THREE], $user, $tableName, $oldData, 2);
+
+                DB::commit();
+                return [true, '更新记录成功,记录草稿,进入审批流程'];
+            }
+
             $model->state = $data['state'];
             $model->state = $data['state'];
             $model->save();
             $model->save();
 
 
@@ -3126,7 +3146,7 @@ class ItemService extends Service
 
 
     public function checkIsDelivery($data, $tableName){
     public function checkIsDelivery($data, $tableName){
         //是否需要交付物完结
         //是否需要交付物完结
-        if($data['is_review_required']){
+        if($data['is_delivery_required']){
             $column = $tableName . '_id';
             $column = $tableName . '_id';
             $type_map = [
             $type_map = [
                 "item" => 1,
                 "item" => 1,
@@ -3149,7 +3169,7 @@ class ItemService extends Service
                 ->where('field_type', CustomFieldValue::type_two)
                 ->where('field_type', CustomFieldValue::type_two)
                 ->where('is_delivery', CustomFieldValue::delivery_one)
                 ->where('is_delivery', CustomFieldValue::delivery_one)
                 ->exists();
                 ->exists();
-            if(! $bool) return [true, ''];
+            if($bool) return [true, ''];
 
 
             return [false, '请先上传交付物后再提交完结'];
             return [false, '请先上传交付物后再提交完结'];
         }
         }
@@ -3399,12 +3419,12 @@ class ItemService extends Service
         if(empty($customer)) return [false,'分享链接不存在或已被删除'];
         if(empty($customer)) return [false,'分享链接不存在或已被删除'];
         $customer = $customer->toArray();
         $customer = $customer->toArray();
 
 
+        $final_status = $this->fillFinalStatus($customer, time());
         $customer['expire_time']  = ! empty($customer['expire_time']) ? date("Y-m-d", $customer['expire_time']) : "";
         $customer['expire_time']  = ! empty($customer['expire_time']) ? date("Y-m-d", $customer['expire_time']) : "";
         $customer['crt_name'] = Employee::where('id',$customer['crt_id'])->value('title');
         $customer['crt_name'] = Employee::where('id',$customer['crt_id'])->value('title');
         $customer['crt_time'] = $customer['crt_time'] ? date("Y-m-d H:i:s",$customer['crt_time']): '';
         $customer['crt_time'] = $customer['crt_time'] ? date("Y-m-d H:i:s",$customer['crt_time']): '';
         $customer['status_title'] = ItemNodeMissionShare::State_Type[$customer['status']] ?? '';
         $customer['status_title'] = ItemNodeMissionShare::State_Type[$customer['status']] ?? '';
         $customer['type_title'] = ItemNodeMissionShare::QX_Type[$customer['type']] ?? '';
         $customer['type_title'] = ItemNodeMissionShare::QX_Type[$customer['type']] ?? '';
-        $final_status = $this->fillFinalStatus($customer, time());
         $customer['final_status'] = $final_status;
         $customer['final_status'] = $final_status;
         $customer['final_status_title'] = ItemNodeMissionShare::State_Type[$final_status] ?? '';
         $customer['final_status_title'] = ItemNodeMissionShare::State_Type[$final_status] ?? '';