cqp 11 kuukautta sitten
vanhempi
sitoutus
4dbf5a04f1
1 muutettua tiedostoa jossa 53 lisäystä ja 1 poistoa
  1. 53 1
      app/Service/ProjectService.php

+ 53 - 1
app/Service/ProjectService.php

@@ -360,9 +360,12 @@ class ProjectService extends Service
     public function organizationData($data) {
         if (empty($data['data'])) return $data;
 
-        $map = $this->getProjectEmployee(['id' => array_column($data['data'], 'id')], ProjectEmployee::type_one);
+        $project = array_column($data['data'], 'id');
+        $map = $this->getProjectEmployee(['id' => $project], ProjectEmployee::type_one);
         $emp_id = array_unique(array_merge_recursive(array_column($data['data'], 'business_director'), array_column($data['data'], 'technical_director'),array_column($data['data'], 'online_director'),array_column($data['data'], 'after_sale_director'),array_column($data['data'],'crt_id')));
         $emp_map = Employee::whereIn('id',$emp_id)->pluck('emp_name','id')->toArray();
+        //获取当前阶段 当前阶段节点 已收金额
+        $other_map = $this->getProjectOtherMessage($project);
         foreach ($data['data'] as $key => $value){
             $start_time = $value['plan_start_time'] ? date("Y-m-d H:i",$value['plan_start_time']) : '';
             $end_time = $value['plan_end_time'] ? date("Y-m-d H:i",$value['plan_end_time']) : '';
@@ -377,6 +380,12 @@ class ProjectService extends Service
             $tmp = $map[$value['id']] ?? [];
             $data['data'][$key]['employee_title'] = $tmp['name'] ?? "";
             $data['data'][$key]['employee_id'] = $tmp['name_id'] ?? "";
+
+            //获取当前阶段 当前阶段节点 已收金额
+            $tmp = $other_map[$value['id']] ?? [];
+            $data['data'][$key]['current_stage'] = $tmp['stage'] ?? [];
+            $data['data'][$key]['current_stage_node'] = $tmp['node'] ?? [];
+            $data['data'][$key]['receipt_amount'] = $tmp['receipt'] ?? 0;
         }
 
         return $data;
@@ -1311,4 +1320,47 @@ class ProjectService extends Service
 
         return $map;
     }
+
+    public function getProjectOtherMessage($project_id = []){
+        if(empty($project_id)) return [];
+
+        $project = [];
+        $stage = ProjectStage::whereIn('project_id', $project_id)
+            ->where('del_time',0)
+            ->select('id','title','receipt_amount','project_id')
+            ->orderBy('id','desc')
+            ->get()->toArray();
+
+        foreach ($stage as $value){
+            if(! isset($project[$value['project_id']]['stage'])){
+                $project[$value['project_id']]['stage'] = [
+                    'id' => $value['id'],
+                    'title' => $value['title'],
+                ];
+            }
+
+            if(! isset($project[$value['project_id']]['receipt'])){
+                $receipt = bcadd($value['receipt_amount'], $project[$value['project_id']]['receipt'],2);
+                $project[$value['project_id']]['receipt'] = $receipt;
+            }else{
+                $project[$value['project_id']]['receipt'] = $value['receipt_amount'];
+            }
+        }
+
+        $node = ProjectStageNode::whereIn('project_id', $project_id)
+            ->where('del_time',0)
+            ->select('id','title','project_id')
+            ->get()->toArray();
+
+        foreach ($node as $value){
+            if(! isset($project[$value['project_id']]['node'])){
+                $project[$value['project_id']]['node'] = [
+                    'id' => $value['id'],
+                    'title' => $value['title'],
+                ];
+            }
+        }
+
+        return $project;
+    }
 }