Xu·LinPeng hace 22 horas
padre
commit
824aebb048
Se han modificado 1 ficheros con 157 adiciones y 138 borrados
  1. 157 138
      Modules/Camera/Http/Controllers/Api/CameraApiController.php

+ 157 - 138
Modules/Camera/Http/Controllers/Api/CameraApiController.php

@@ -4339,30 +4339,14 @@ class CameraApiController extends BaseController
                 ->join('uf_xx_area as t2','t1.area_id','=','t2.id')
                 ->where('t2.is_delete',0)
                 ->where('t2.delete_type',0)
-                ->where('t2.id', $area_id);
+                ->where('t2.id', $area_id)
+                ->select([
+                    't.*'
+                ]);
         }
 
         $risk_list = $risk_list->orderBy('risk_level')->get();
-        $str2="春检:";
-        // 存放春检数据
-        $temp_list=[];
-        // 存放其他数据
-        $temp_list2=[];
-        foreach ($risk_list as $key=>$value){
-            if (strstr($value->risk_name, $str2)){
-                $temp_list[] = $value;
-            }else{
-                $temp_list2[] = $value;
-            }
-        }
-        unset($risk_list);
-        $risk_list = [];
-        foreach ($temp_list2 as $key=>$value){
-            $risk_list[] = $value;
-        }
-        foreach ($temp_list as $key=>$value){
-            $risk_list[] = $value;
-        }
+
 
         // 洗煤厂数据
         $coal_washery_list = DB::connection('mysql_fwe10')->table('uf_xx_coal_washery as t')->where('t.is_delete',0);
@@ -4390,12 +4374,8 @@ class CameraApiController extends BaseController
             "gao"       => 0,
             "zhong"     => 0,
             "di"        => 0,
-            "ziying"    => 0,
-            "waiwei"    => 0,
             "risk_info" => "",
-            "ziying_list"   => [],
-            "waiwei_list"   => [],
-            "table_list"    => [],
+            "risk_list"   => [],
         ];
 
         // 以下两行统计高风险中的不同风险类型各有几项(中风险同理)
@@ -4403,11 +4383,18 @@ class CameraApiController extends BaseController
         $risk_gao_con = [];
         $coal_washery_risk_list = [];
 
+        // 统计委外单位的数量
+        $outsourcedUnit_total = [];
+
         // 组织字典
         foreach ($risk_list as $key=>$value) {
             // 获取洗煤厂ID
             $coal_washery_id = $value->coal_washery_id;
 
+            if (!in_array($value->wwdw,$outsourcedUnit_total)){
+                $outsourcedUnit_total[] = $value->wwdw;
+            }
+
             // 风险数量统计
             $risk_level = $value->risk_level;  // 风险类型
             // 当 $risk_type_dict[$value->risk_type] 存在时取对应的值,不存在时取值 未知风险
@@ -4432,167 +4419,198 @@ class CameraApiController extends BaseController
             }
 
             // 洗煤厂类型统计(委外、自营)
-            $coal_washery_type = $coal_washery_dict[$coal_washery_id]->obj_type ?? "<请检查洗煤厂是否已被删除!>";
-            if($coal_washery_type == 0) {
-                $res['ziying']++;
-            } else if ($coal_washery_type == 1) {
-                $res['waiwei']++;
-            }
+//            $coal_washery_type = $coal_washery_dict[$coal_washery_id]->obj_type ?? "<请检查洗煤厂是否已被删除!>";
+//            if($coal_washery_type == 0) {
+//                $res['ziying']++;
+//            } else if ($coal_washery_type == 1) {
+//                $res['waiwei']++;
+//            }
             // 煤矿风险列表
             $coal_washery_risk_list[$coal_washery_id][] = $value;
         }
 
         $res['num'] = count($risk_list);
 
-        $index_ziying = 0;
-        $index_waiwei = 0;
+
+        if ($res['gao'] > 0) {
+            $risk_gao_info = '(其中:';
+            foreach ($risk_gao_con as $key => $value) {
+                $risk_gao_info .= $key.$value.'项,';
+            }
+            $risk_gao_info = substr($risk_gao_info, 0, -3);
+            $risk_gao_info .= ');';
+        } else {
+            $risk_gao_info = ";";
+        }
+
+        if ($res['zhong'] > 0) {
+            $risk_zhong_info = '(其中:';
+            foreach ($risk_zhong_con as $key => $value) {
+                $risk_zhong_info .= $key.$value.'项,';
+            }
+            $risk_zhong_info = substr($risk_zhong_info, 0, -3);
+            $risk_zhong_info .= ');';
+        } else {
+            $risk_zhong_info = ";";
+        }
+
+        $res['risk_info'] = "1.委外施工单位共".count($outsourcedUnit_total)."个,总作业项:".$res['num']."项;高风险:".$res['gao']."项".$risk_gao_info."中风险:".$res['zhong']."项".$risk_zhong_info."低风险:".$res['di']."项。\n";
+
+
+
+
+
+        $total2 = '';
+        $index_1 = 0;
         foreach ($coal_washery_dict as $key => $value) {
             $id = $value->ID;
             if (isset($coal_washery_risk_list[$id])) {
-                $people = 0;//计划人数
-                $gao = 0;
-                $zhong = 0;
-                $di = 0;
-                $content = '';//工作内容
-                $place = '';//作业地点
-                $leader = '';//负责人
-                $reviewer = [];//审核人
+
                 // 拿出当前id煤矿的所有风险
                 $coal_washery_risk_info_arr = $coal_washery_risk_list[$id];
+                $wwdw = [];
+                $sgdd = [];
+
+                foreach ($coal_washery_risk_info_arr as $k => $v){
+                    if(!in_array($v->wwdw,$wwdw)){
+                        $wwdw[] = $v->wwdw;
+                    }
+                    $temp = $coal_washery_dict[$v->sgdd]->title;
+                    if (!in_array($temp,$sgdd)){
+                        $sgdd[] = $temp;
+                    }
+                }
+
+                $wwdw_num = count($wwdw);
+                $sgdd_num = count($sgdd);
+                $var1 = implode('、',$wwdw);
+                $var2 = implode('、',$sgdd);
+
+                if (++$index_1==1){
+                    $total2 .= '2.'.$index_1.'.'.$value->title.'引进委外单位'.$wwdw_num.'个('.$var1.'),'.',作业厂点'.$sgdd_num.'个('.$var2.');\n';
+                } else{
+                    $total2 .= '  '.$index_1.'.'.$value->title.'引进委外单位'.$wwdw_num.'个('.$var1.'),'.',作业厂点'.$sgdd_num.'个('.$var2.');\n';
+                }
+
+
+
+
+
+
+
+
+
+                $line = [
+                    'index' => '',
+                    'gao' => '',
+                    'zhong' => '',
+                    'di' => '',
+                    'coal_washery' => '',
+                    'wwdw'=>'',
+                    'wwdw_num'=>'',
+                    'work_place_num' => '',
+                    'level' => "",
+                    'content' => '',
+                    'place' => '',
+                ];
 
 
-                $risk_index = 0;
                 if (isset($coal_washery_type_dict[$id])) {
-                    $coal_washery_type = $coal_washery_type_dict[$id];
+
                     foreach ($coal_washery_risk_info_arr as $k => $v) {
-                        $people += $v->work_num;
+                        $risk_index = 0;
+                        $line['index'] = $index_1;
+                        $line['coal_washery'] = $v->title;
+                        $line['work_place_num'] = $v->sgdsl;
+                        $line['wwdw'] = $v->wwdw;
+                        $line['wwdw_num'] = $wwdw_num;
+                        $line['place'] = $coal_washery_dict[$v->sgdd]->title;
+
+
+
                         $risk_info = '';
                         if ($v->risk_level == 0) {
-                            $gao++;
+                            $line['gao'] = 1;
                             if($v->risk_type != null) {
                                 $risk_info = '(' . $risk_desc[$v->risk_level] . ',' . $risk_type_dict[$v->risk_type] . ')';
                             }else{
                                 $risk_info = '('.$risk_desc[$v->risk_level].')';
                             }
                         } else if ($v->risk_level == 1) {
-                            $zhong++;
+                            $line['zhong'] = 1;
                             if($v->risk_type != null){
                                 $risk_info = '('.$risk_desc[$v->risk_level].','.$risk_type_dict[$v->risk_type].')';
                             }else{
                                 $risk_info = '('.$risk_desc[$v->risk_level].')';
                             }
                         } else {
-                            $di++;
+                            $line['di'] = 1;
                         }
 
-                        $content .= ++$risk_index.".".$v->risk_name.$risk_info.";\n";
+                        $line['content'] .= ++$risk_index.".".$v->risk_name.$risk_info."盯控人:".$v->work_people;
 
+                        $level_total = '';
+                        if ($line['gao']   > 0) $level_total .= '高风险'.$line['gao']."项\n";
+                        if ($line['zhong'] > 0) $level_total .= '中风险'.$line['zhong']."项\n";
+                        if ($line['di']    > 0) $level_total .= '低风险'.$line['di'].'项';
+                        $line['level'] = $level_total;
 
-                        $place .= $risk_index.".".$v->risk_location.";\n";
-                        $leader .= $risk_index.".".$v->work_people.";\n";
+                        $res['risk_list'][] = $line;
 
-                        if (isset($v->shr) && !empty($v->shr)) {
-                            $reviewer[] = $v->shr;
-                        }
-                        $reviewer = array_unique($reviewer);
                     }
 
-                    $level_total = '';
-                    if ($gao   > 0) $level_total .= '高风险'.$gao."项\n";
-                    if ($zhong > 0) $level_total .= '中风险'.$zhong."项\n";
-                    if ($di    > 0) $level_total .= '低风险'.$di.'项';
-                    /**
-                     * 在下文中的¥line中,'unit' 、'classes' 和 'risk_dexcribe' 中的 $v 可能未定义
-                     * (如果能取到值应该是上文定义的 $v 中的遍历的最后一个的对应值)
-                     * 这两个的值是不合理的,但是目前系统中 unit 的值总是 洗选中心,
-                     * classes 和 risk_dexcribe 的值的准确性也没有要求
-                     */
-                    $line = [
-//                        'index' => $index,
-                        'unit' => $v->unit,
-                        'coal_washery' => $value->title,
-                        'classes' => $classes[$v->classes],
-                        'work_num' => $people,
-                        'level' => $level_total,
-                        'content' => $content,
-                        'place' => $place,
-                        'leader' => $leader,
-                        'risk_dexcribe' => $risk_describe_dict[$v->risk_describe],
-                        'reviewer' => implode(',', $reviewer),
-                        'id' => $value->ID,
-                    ];
-
-                    if ($coal_washery_type == 0) {
-                        $line['index'] = ++ $index_ziying;
-                        $res["ziying_list"][] = $line;
-                    } else {
-                        $line['index'] = ++ $index_waiwei;
-                        $res["waiwei_list"][] = $line;
-                    }
 
                 }
             }
         }
-        $ziying_people = 0;
-        $waiwei_people = 0;
-        for ($i = 0; $i < count($res["ziying_list"]); $i++) {
-            $content = $res["ziying_list"][$i]['content'];
-//            $content = substr($content, 0, -1);
-            $content = "\n".$content;
-            $res["ziying_list"][$i]['content'] = $content;
-            $place = $res["ziying_list"][$i]['place'];
-            $place = substr($place, 0, -1);
-            $res["ziying_list"][$i]['place'] = $place;
-            $leader = $res["ziying_list"][$i]['leader'];
-            $leader = substr($leader, 0, -1);
-            $res["ziying_list"][$i]['leader'] = $leader;
-            $ziying_people = $ziying_people + $res["ziying_list"][$i]['work_num'];
 
-        }
-        for ($i = 0; $i < count($res["waiwei_list"]); $i++) {
-            $content = $res["waiwei_list"][$i]['content'];
-//            $content = substr($content, 0, -1);
-            $content = "\n".$content;
-            $res["waiwei_list"][$i]['content'] = $content;
-            $place = $res["waiwei_list"][$i]['place'];
-            $place = substr($place, 0, -1);
-            $res["waiwei_list"][$i]['place'] = $place;
-            $leader = $res["waiwei_list"][$i]['leader'];
-            $leader = substr($leader, 0, -1);
-            $res["waiwei_list"][$i]['leader'] = $leader;
-            $waiwei_people = $waiwei_people + $res["waiwei_list"][$i]['work_num'];
+        $res['risk_info'] .= $total2;
+
+        /**
+         *
+         * 以下代码以施工地点为中新统计相关数据
+         */
+        $work_place_list=[];
+        foreach ($risk_list as $key1=>$v1) {
+            // 获取施工地点id
+            $work_place = $v1->sgdd;
+            // 施工地点列表
+            $work_place_list[$work_place][] = $v1;
 
-        }
-        if ($area_id == 1055262899082551297){
-            $res['people_info'] = "太西片区作业人数:" . ($ziying_people + $waiwei_people) ."人;其中:内部:".$ziying_people."人,外委施工:".$waiwei_people."人";
-        } else{
-            $res['people_info'] = "作业人数:" . ($ziying_people + $waiwei_people) ."人;其中:内部:".$ziying_people."人,外委施工:".$waiwei_people."人";
         }
 
 
-        if ($res['gao'] > 0) {
-            $risk_gao_info = '(其中:';
-            foreach ($risk_gao_con as $key => $value) {
-                $risk_gao_info .= $key.$value.'项,';
-            }
-            $risk_gao_info = substr($risk_gao_info, 0, -3);
-            $risk_gao_info .= ');';
-        } else {
-            $risk_gao_info = ";";
-        }
+        $total3 = '';
+        foreach ($coal_washery_dict as $key=>$value) {
+            $dd_wwdw = [];
+            $dd_sgdsl = 0;
+            $id = $value->ID;
+            $index_2 = 0;
+            if (isset($work_place_list[$id])) {
+
+                // 拿出当前施工地点的所有风险
+                $work_place_list_arr = $work_place_list[$id];
+                foreach ($work_place_list_arr as $k => $v) {
+                    if (!in_array($v->wwdw,$dd_wwdw)) {
+                        $dd_wwdw[] = $v->wwdw;
+                    }
+                    $dd_sgdsl += $v->sgdsl;
+                }
+
+                if (++$index_2 == 1) {
+                    $total3 .= $index_2.'.'.$value->title.'委外作业'.count($work_place_list_arr).'项,委外施工单位'.count($dd_wwdw).'个,施工点'.$dd_sgdsl.'个;\n';
+                }else{
+                    $total3 .= '    '.$index_2.'.'.$value->title.'委外作业'.count($work_place_list_arr).'项,委外施工单位'.count($dd_wwdw).'个,施工点'.$dd_sgdsl.'个;\n';
+                }
+
 
-        if ($res['zhong'] > 0) {
-            $risk_zhong_info = '(其中:';
-            foreach ($risk_zhong_con as $key => $value) {
-                $risk_zhong_info .= $key.$value.'项,';
             }
-            $risk_zhong_info = substr($risk_zhong_info, 0, -3);
-            $risk_zhong_info .= ');';
-        } else {
-            $risk_zhong_info = ";";
         }
 
-        $res['risk_info'] = "总作业项:".$res['num']."项;高风险:".$res['gao']."项".$risk_gao_info."中风险:".$res['zhong']."项".$risk_zhong_info."低风险:".$res['di']."项。";
+        $res['risk_info'] .= $total3;
+
+
+
 
         return $res;
     }
@@ -4647,6 +4665,7 @@ class CameraApiController extends BaseController
         }
 
         $risk_list = $risk_list->orderBy('risk_level')->get();
+        // 下文代码将春检的作业放在其他作业的后边
         $str2="春检:";
         // 存放春检数据
         $temp_list=[];