cqp vor 11 Monaten
Ursprung
Commit
0ba20e8660
1 geänderte Dateien mit 45 neuen und 31 gelöschten Zeilen
  1. 45 31
      app/Service/ProjectService.php

+ 45 - 31
app/Service/ProjectService.php

@@ -130,28 +130,23 @@ class ProjectService extends Service
         $project['after_sale_director_title'] = $emp_map[$project['after_sale_director']] ?? "";
         $project['crt_name'] = $emp_map[$project['crt_id']] ?? "";
 
-        $project_stage = ProjectStage::where('del_time',0)
+        //任务报告
+        $project_stage_node_mission_detail = ProjectStageNodeMissionDetail::where('del_time',0)
             ->where('project_id',$data['id'])
             ->get()->toArray();
-        foreach ($project_stage 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']) : '';
-            $project_stage[$key]['plan_time'] = $start_time . '——' . $end_time;
-            $project_stage[$key]['start_time'] = $value['start_time'] ? date("Y-m-d",$value['start_time']): '';
-            $project_stage[$key]['parent_id'] = $value['project_id'];
-        }
+        $employee_id = array_unique(array_column($project_stage_node_mission_detail,'crt_id'));
+        $emp_map = Employee::whereIn('id',$employee_id)->pluck('emp_name','id')->toArray();
+        $project_stage_node_mission_detail_map = [];
+        foreach ($project_stage_node_mission_detail as $key => $value){
+            $start_time = $value['start_time'] ? date("Y-m-d H:i",$value['start_time']) : '';
+            $end_time = $value['end_time'] ? date("Y-m-d H:i",$value['end_time']) : '';
+            $project_stage_node_mission_detail[$key]['time'] = $start_time . '——' . $end_time;
+            $project_stage_node_mission_detail[$key]['crt_name'] = $emp_map[$value['crt_id']] ?? "";
 
-        $project_stage_node = ProjectStageNode::where('del_time',0)
-            ->where('project_id',$data['id'])
-            ->get()->toArray();
-        foreach ($project_stage_node 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']) : '';
-            $project_stage_node[$key]['plan_time'] = $start_time . '——' . $end_time;
-            $project_stage_node[$key]['start_time'] = $value['start_time'] ? date("Y-m-d",$value['start_time']): '';
-            $project_stage_node[$key]['parent_id'] = $value['project_stage_id'];
+            $project_stage_node_mission_detail_map[$value['project_stage_node_mission_id']][] = $project_stage_node_mission_detail[$key];
         }
 
+        //任务
         $project_stage_node_mission = ProjectStageNodeMission::where('del_time',0)
             ->where('project_id',$data['id'])
             ->get()->toArray();
@@ -164,6 +159,7 @@ class ProjectService extends Service
             }
         }
         $emp_map = Employee::whereIn('id',$employee_array)->pluck('emp_name','id')->toArray();
+        $project_stage_node_mission_map = [];
         foreach ($project_stage_node_mission as $key => $value){
             $title = "";
             $tmp = explode(',', $value['employee_id']);
@@ -172,27 +168,45 @@ class ProjectService extends Service
                 if($title_tmp) $title .= $title_tmp . ",";
             }
             $project_stage_node_mission[$key]['employee_title'] = rtrim($title,',');
-            $project_stage_node_mission[$key]['parent_id'] = $value['project_stage_node_id'];
+
+            $son = $project_stage_node_mission_detail_map[$value['id']] ?? [];
+            $project_stage_node_mission[$key]['children'] = $son;
+            $project_stage_node_mission_map[$value['project_stage_node_id']][] = $project_stage_node_mission[$key];
         }
 
-        $project_stage_node_mission_detail = ProjectStageNodeMissionDetail::where('del_time',0)
+        //节点
+        $project_stage_node = ProjectStageNode::where('del_time',0)
             ->where('project_id',$data['id'])
             ->get()->toArray();
-        $employee_id = array_unique(array_column($project_stage_node_mission_detail,'crt_id'));
-        $emp_map = Employee::whereIn('id',$employee_id)->pluck('emp_name','id')->toArray();
-        foreach ($project_stage_node_mission_detail as $key => $value){
-            $start_time = $value['start_time'] ? date("Y-m-d H:i",$value['start_time']) : '';
-            $end_time = $value['end_time'] ? date("Y-m-d H:i",$value['end_time']) : '';
-            $project_stage_node_mission_detail[$key]['time'] = $start_time . '——' . $end_time;
-            $project_stage_node_mission_detail[$key]['crt_name'] = $emp_map[$value['crt_id']] ?? "";
-            $project_stage_node_mission_detail[$key]['parent_id'] = $value['project_stage_node_mission_id'];
+        $project_stage_node_map = [];
+        foreach ($project_stage_node 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']) : '';
+            $project_stage_node[$key]['plan_time'] = $start_time . '——' . $end_time;
+            $project_stage_node[$key]['start_time'] = $value['start_time'] ? date("Y-m-d",$value['start_time']): '';
+
+            $son = $project_stage_node_mission_map[$value['id']] ?? [];
+            $project_stage_node[$key]['children'] = $son;
+            $project_stage_node_map[$value['project_stage_id']][] = $project_stage_node[$key];
+        }
 
+        //阶段
+        $project_stage = ProjectStage::where('del_time',0)
+            ->where('project_id',$data['id'])
+            ->get()->toArray();
+        foreach ($project_stage 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']) : '';
+            $project_stage[$key]['plan_time'] = $start_time . '——' . $end_time;
+            $project_stage[$key]['start_time'] = $value['start_time'] ? date("Y-m-d",$value['start_time']): '';
+            $project_stage[$key]['children'] = $project_stage_node_map[$value['id']] ?? [];
         }
 
-        $project['project_stage'] = $project_stage;
-        $project['project_stage_node'] = $project_stage_node;
-        $project['project_stage_node_mission'] = $project_stage_node_mission;
-        $project['project_stage_node_mission_detail'] = $project_stage_node_mission_detail;
+//        $project['project_stage'] = $project_stage;
+//        $project['project_stage_node'] = $project_stage_node;
+//        $project['project_stage_node_mission'] = $project_stage_node_mission;
+//        $project['project_stage_node_mission_detail'] = $project_stage_node_mission_detail;
+        $project['children'] = $project_stage;
 
         return [true, $project];
     }