소스 검색

fix:export62 TO export6

Xu·LinPeng 5 일 전
부모
커밋
2e6ee627b4
2개의 변경된 파일164개의 추가작업 그리고 61개의 파일을 삭제
  1. 162 59
      Modules/Camera/Http/Controllers/Api/CameraApiController.php
  2. 2 2
      Modules/Camera/Routes/api.php

+ 162 - 59
Modules/Camera/Http/Controllers/Api/CameraApiController.php

@@ -4282,7 +4282,6 @@ class CameraApiController extends BaseController
 
     // 导出委外作业
     public function export6(Request $request){
-
         $date = $request->query('date', date('Y-m-d'));
         $coal_washery_id = $request->query('coal_washery_id');
         $area_id = $request->query('area_id');
@@ -4315,6 +4314,20 @@ class CameraApiController extends BaseController
             ->where('t.current_step','结束节点')
             ->whereNotNull('t.flow_id');
 
+
+        $previousDayTimestamp = strtotime($date . ' -1 day');
+        $previousDay = date('Y-m-d', $previousDayTimestamp);
+
+        $risk_list_previousDay = DB::connection('mysql_fwe10')
+            ->table('uf_xx_risk_assignment as t')
+            ->whereDate('t.create_time', $previousDay)
+            ->where('t.is_delete',0)
+            ->where('t.delete_type',0)
+            ->whereNotNull('t.wwdw')
+            ->whereNotNull('t.sgdd')
+            ->where('t.current_step','结束节点')
+            ->whereNotNull('t.flow_id');
+
         if (!empty($coal_washery_id)) $risk_list->where('t.coal_washery_id', $coal_washery_id); // 筛选洗煤厂
         if (!empty($area_id)) {
             $risk_list->join('uf_xx_coal_washery as t1','t.coal_washery_id','=','t1.id')
@@ -4327,30 +4340,33 @@ class CameraApiController extends BaseController
                 ->select([
                     't.*'
                 ]);
+            $risk_list_previousDay->join('uf_xx_coal_washery as t1','t.coal_washery_id','=','t1.id')
+                ->where('t1.is_delete',0)
+                ->where('t1.delete_type',0)
+                ->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)
+                ->select([
+                    't.*'
+                ]);
         }
 
         $risk_list = $risk_list->orderBy('risk_level')->get();
 
+        $risk_list_previousDay = $risk_list_previousDay->orderBy('risk_level')->get();
+
 
         // 洗煤厂数据
         $coal_washery_list = DB::connection('mysql_fwe10')->table('uf_xx_coal_washery as t')->where('t.is_delete',0);
-        if (!empty($coal_washery_id)) $coal_washery_list->where('t.id', $coal_washery_id); // 筛选洗煤厂
-        // 不要按片区筛选洗煤厂,因为有可能宁东片区的洗煤厂的施工地点在太西洗煤厂,反之亦然
-//        if (!empty($area_id)) {
-//            $coal_washery_list->leftJoin('uf_xx_area as t1','t1.id','=','t.area_id')
-//                ->where('t1.id', $area_id);
-//        }
 
         $coal_washery_list = $coal_washery_list->select('t.*')->orderBy('t.sort')->get();
 
 
         // 存放每个洗煤厂的信息
         $coal_washery_dict = [];
-        // 存放每个洗煤厂是自营还是外委的信息,0 自营,1 外委
-//        $coal_washery_type_dict = [];
         foreach ($coal_washery_list as $key=>$value) {
             $coal_washery_dict[$value->ID] = $value;
-//            $coal_washery_type_dict[$value->ID] = $value->obj_type;
         }
 
         $res = [
@@ -4410,6 +4426,7 @@ class CameraApiController extends BaseController
             $coal_washery_risk_list[$coal_washery_id][] = $value;
         }
 
+        $wwdwNum = count($outsourcedUnit_total);
         $res['num'] = count($risk_list);
 
 
@@ -4435,7 +4452,60 @@ class CameraApiController extends BaseController
             $risk_zhong_info = ";";
         }
 
-        $res['risk_info'] = "1.委外施工单位共".count($outsourcedUnit_total)."个,总作业项:".$res['num']."项;高风险:".$res['gao']."项".$risk_gao_info."中风险:".$res['zhong']."项".$risk_zhong_info."低风险:".$res['di']."项;总作业人数:".$people_total."人。";
+
+
+        // 统计前一天的相关数据
+        $preHigh = 0;
+        $preMid = 0;
+        $preLow = 0;
+        $prePeople = 0;
+        $preRiskNum = count($risk_list_previousDay);
+        $preWwdw = [];
+        foreach ($risk_list_previousDay as $key=>$value) {
+            // 获取洗煤厂ID
+            $coal_washery_id = $value->coal_washery_id;
+
+            if (!in_array($value->wwdw,$preWwdw)){
+                $preWwdw[] = $value->wwdw;
+            }
+
+            $prePeople += $value->work_num;
+
+            // 风险数量统计
+            $risk_level = $value->risk_level;  // 风险类型
+            // 当 $risk_type_dict[$value->risk_type] 存在时取对应的值,不存在时取值 未知风险
+            $risk_type = $risk_type_dict[$value->risk_type] ?? "未知风险";
+
+            if($risk_level == 0) {
+                $preHigh++;
+            } else if($risk_level == 1) {
+                $preMid++;
+            } else {
+                $preLow++;
+            }
+
+            // 煤矿风险列表
+            $pre_day_coal_washery_risk_list[$coal_washery_id][] = $value;
+        }
+
+        $preWwdwNum = count($preWwdw);
+
+        // 委外单位相差
+        $preVar1 = sprintf("%+d", $wwdwNum - $preWwdwNum);
+        // 总作业想相差
+        $preVar2 = sprintf("%+d", $res['num'] - $preRiskNum);
+        // 高
+        $preVar3 = sprintf("%+d",$res['gao'] - $preHigh);
+        // 中
+        $preVar4 = sprintf("%+d",$res['zhong'] - $preMid);
+        // 低
+        $preVar5 = sprintf("%+d",$res['di'] - $preLow);
+        // 总人数相差
+        $preVar6 = sprintf("%+d",$people_total - $prePeople);
+
+
+
+        $res['risk_info'] = "1.委外施工单位共".$wwdwNum."个(".$preVar1."),总作业项:".$res['num']."项(".$preVar2.");高风险:".$res['gao']."项(".$preVar3.")".$risk_gao_info."中风险:".$res['zhong']."项(".$preVar4.")".$risk_zhong_info."低风险:".$res['di']."项(".$preVar5.");总作业人数:".$people_total."人(".$preVar6.")。";
 
 
 
@@ -4461,9 +4531,8 @@ class CameraApiController extends BaseController
                     if(!in_array($v->wwdw,$wwdw)){
                         $wwdw[] = $v->wwdw;
                     }
-                    $temp = $coal_washery_dict[$v->sgdd]->title;
-                    if (!in_array($temp,$sgdd)){
-                        $sgdd[] = $temp;
+                    if (!in_array($v->sgdd,$sgdd)){
+                        $sgdd[] = $v->sgdd;
                     }
                     $zyrs += $v->work_num;
                     if ($v->risk_level == 0){
@@ -4483,11 +4552,44 @@ class CameraApiController extends BaseController
 
                 $wwdw_num = count($wwdw);
                 $sgdd_num = count($sgdd);
-                $var1 = implode('、',$wwdw);
-                $var2 = implode('、',$sgdd);
 
-//                $total2 .= ++$index_1.'.'.$value->title.'引进委外单位'.$wwdw_num.'个('.$var1.'),'.'作业单位'.$sgdd_num.'个('.$var2."),作业人数:".$zyrs."人。\n";
-                  $total2 .= ++$index_1.'.'.$value->title.'引进委外单位'.$wwdw_num.'个,作业单位'.$sgdd_num.'个,作业人数:'.$zyrs."人。\n";
+                /**
+                 * 以下代码是对前一天的对应洗煤厂的统计
+                 *
+                 */
+                // 如果当前洗煤厂前一天有数据则拿出来统计没有相关的数据为零
+                $pre_wwdw = [];
+                $pre_sgdd = [];
+                $pre_zyrs =  0;
+
+                if (isset($pre_day_coal_washery_risk_list[$id])) {
+
+                    // 拿出当前id煤矿的所有风险
+                    $pre_coal_washery_risk_info_arr = $pre_day_coal_washery_risk_list[$id];
+
+
+                    foreach ($pre_coal_washery_risk_info_arr as $k => $v) {
+                        if(!in_array($v->wwdw,$pre_wwdw)){
+                            $pre_wwdw[] = $v->wwdw;
+                        }
+                        if (!in_array($v->sgdd,$pre_sgdd)){
+                            $pre_sgdd[] = $v->sgdd;
+                        }
+                        $pre_zyrs += $v->work_num;
+                    }
+
+                }
+                $pre_wwdw_num = count($pre_wwdw);
+                $pre_sgdd_num = count($pre_sgdd);
+
+                // 委外单位差值
+                $preVar7 = sprintf("%+d",$wwdw_num - $pre_wwdw_num);
+                // 作业单位差值
+                $preVar8 = sprintf("%+d",$sgdd_num - $pre_sgdd_num);
+                // 作业人数差值
+                $preVar9 = sprintf("%+d",$zyrs - $pre_zyrs);
+
+                $total2 .= ++$index_1.'.'.$value->title.'引进委外单位'.$wwdw_num.'个('.$preVar7.'),单位'.$sgdd_num.'个('.$preVar8.'),人数:'.$zyrs."人(".$preVar9.")。\n";
 
 
                 $line = [
@@ -4535,33 +4637,6 @@ class CameraApiController extends BaseController
                         $line['fxlx'] = '未知';
                     }
 
-//                    $risk_info = '';
-//                    if ($v->risk_level == 0) {
-//                        $line['gao'] = 1;
-//                        $line['zhong'] = '';
-//                        $line['di'] = '';
-//                        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) {
-//                        $line['gao'] = '';
-//                        $line['zhong'] = 1;
-//                        $line['di'] = '';
-//                        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 {
-//                        $line['gao'] = '';
-//                        $line['zhong'] = '';
-//                        $line['di'] = 1;
-//                    }
-
-//                    $line['content'] = $v->risk_name.$risk_info."盯控人:".$v->work_people;
-
                     $res['risk_list'][] = $line;
 
 
@@ -4570,6 +4645,7 @@ class CameraApiController extends BaseController
 
             }
         }
+        $total2 = mb_substr($total2, 0, mb_strlen($total2) - 1);
 
         $res['risk_info2'] = $total2;
 
@@ -4586,37 +4662,62 @@ class CameraApiController extends BaseController
 
         }
 
-        $uniqueKeys = array_keys($work_place_list);
-        $count1 = count($uniqueKeys);
-        $var3 = (int) ($count1 / 2);
+        $pre_work_place_list=[];
+        foreach ($risk_list_previousDay as $key1=>$v1) {
+            // 获取施工地点id
+            $pre_work_place = $v1->sgdd;
+            // 施工地点列表
+            $pre_work_place_list[$pre_work_place][] = $v1;
+
+        }
+
+//        $uniqueKeys = array_keys($work_place_list);
+//        $count1 = count($uniqueKeys);
+//        $var3 = (int) ($count1 / 2);
 
 
         $total3 = '';
         $total4 = '';
         $index_2 = 0;
         foreach ($coal_washery_dict as $key=>$value) {
-            $dd_wwdw = [];
-            $dd_sgdsl = 0;
-            $workNumber = 0;
+
             $id = $value->ID;
+            $area_id_tmp = $value->area_id;
 
             if (isset($work_place_list[$id])) {
 
+                $workNumber = 0;
+                $riskWorkNum = 0;
+
                 // 拿出当前施工地点的所有风险
                 $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;
                     $workNumber += $v->work_num;
                 }
+                $riskWorkNum = count($work_place_list_arr);
 
-//                $total3 .= ++$index_2.'.'.$value->title.'委外作业'.count($work_place_list_arr).'项,委外施工单位'.count($dd_wwdw).'个,施工点'.$dd_sgdsl."个;\n";
-                if (++$index_2<=$var3){
-                    $total3 .= $index_2.'.'.$value->title.'委外作业'.count($work_place_list_arr).'项,作业人数:'.$workNumber."人;\n";
+
+                $preWorkNumber = 0;
+                $preRiskWorkNum = 0;
+                if (isset($pre_work_place_list[$id])) {
+
+                    // 拿出当前施工地点的所有风险
+                    $pre_work_place_list_arr = $pre_work_place_list[$id];
+                    foreach ($pre_work_place_list_arr as $k => $v) {
+                        $preWorkNumber += $v->work_num;
+                    }
+                    $preRiskWorkNum = count($pre_work_place_list_arr);
+                }
+
+                // 委外作业项差值
+                $preVar10 = sprintf("%+d",$riskWorkNum - $preRiskWorkNum);
+                // 作业人数差值
+                $preVar11 = sprintf("%+d",$workNumber - $preWorkNumber);
+
+                if ($area_id_tmp == 1055262869143609349){
+                    $total3 .= ++$index_2.'.'.$value->title.'作业'.$riskWorkNum.'项('.$preVar10.'),人数:'.$workNumber."人(".$preVar11.");\n";
                 } else{
-                    $total4 .= $index_2.'.'.$value->title.'委外作业'.count($work_place_list_arr).'项,作业人数:'.$workNumber."人;\n";
+                    $total4 .= ++$index_2.'.'.$value->title.'作业'.$riskWorkNum.'项('.$preVar10.'),人数:'.$workNumber."人(".$preVar11.");\n";
                 }
 
 
@@ -4625,6 +4726,8 @@ class CameraApiController extends BaseController
         }
 
 
+        $total3 = mb_substr($total3, 0, mb_strlen($total3) - 1);
+        $total4 = mb_substr($total4, 0, mb_strlen($total4) - 1);
 
         $res['risk_info3'] = $total3;
         $res['risk_info4'] = $total4;

+ 2 - 2
Modules/Camera/Routes/api.php

@@ -100,8 +100,8 @@ Route::namespace('Api')->group(function () {
     Route::post('task_xixuan/export3_list_weiwai', 'CameraApiController@export3ListWeiwai');//导出完成情况表委外列表
     Route::post('task_xixuan/export4', 'CameraApiController@export4');//导出盯控次数统计
     Route::post('task_xixuan/export5', 'CameraApiController@export5');//导出人均盯控次数统计
-    Route::post('task_xixuan/export6', 'CameraApiController@export62');//导出委外作业清单
-//    Route::post('task_xixuan/export62', 'CameraApiController@export62');//导出委外作业清单
+    Route::post('task_xixuan/export6', 'CameraApiController@export6');//导出委外作业清单
+    Route::post('task_xixuan/export62', 'CameraApiController@export62');//导出委外作业清单
 
 
     //大华视频接口