Ver código fonte

E10数据连接

任敬轩 8 meses atrás
pai
commit
d63f3721d2

+ 714 - 0
Modules/Camera/Http/Controllers/Api/CameraApiController.php

@@ -2137,6 +2137,720 @@ class CameraApiController extends BaseController
         return self::successResponse($result);
     }
 
+    //主屏幕
+    public function mainHomeV2(Request $request){
+        $gao = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', today())->where('risk_level',0)->count();
+        $zhong = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', today())->where('risk_level',1)->count();
+        $di = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', today())->where('risk_level',2)->count();
+
+        $result = [
+            [
+                'number' => $gao,
+                'unit'   => '项',
+                'title'  => '高风险作业',
+                'color'  => '#DA0000'
+            ],
+            [
+                'number' => $zhong,
+                'unit'   => '项',
+                'title'  => '中风险作业',
+                'color'  => '#FFBA00'
+            ],
+            [
+                'number' => $di,
+                'unit'   => '项',
+                'title'  => '低风险作业',
+                'color'  => '#2BB200'
+            ]
+        ];
+
+        return self::successResponse($result);
+    }
+
+    //风险作业占比
+    public function riskWorkPercentV2(Request $request){
+        $gao = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', today())->where('risk_level',0)->count();
+        $zhong = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', today())->where('risk_level',1)->count();
+        $di = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', today())->where('risk_level',2)->count();
+
+        $result = [
+            [
+                'value' => $gao,
+                'name'  => '高风险',
+            ],
+            [
+                'value' => $zhong,
+                'name'  => '中风险',
+            ],
+            [
+                'value' => $di,
+                'name'  => '低风险',
+            ]
+        ];
+
+        return self::successResponse($result);
+    }
+
+    //片区占比
+    public function areaPercentV2(Request $request){
+        $area = DB::connection('task_xixuan')->table('xx_area')->get();
+
+        if(count($area) > 0){
+            for($i=0;$i<count($area);$i++){
+                $coal_washery_id_list = DB::connection('task_xixuan')->table('xx_coal_washery')->where('area_id',$area[$i]->id)->pluck('id');
+                $result[$i]['value'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', today())->count();
+                $result[$i]['name'] = $area[$i]->name;
+            }
+        }
+
+        return self::successResponse($result);
+    }
+
+    //地图数据
+    public function mapDataV2(Request $request){
+        $coal_washery = DB::connection('task_xixuan')->table('xx_coal_washery')->get();
+        $coal_list = [
+            '灵新洗煤厂'=>'linxing',
+            '红柳洗煤厂'=>'hongliu',
+            '枣泉洗煤厂'=>'zaoquan',
+            '大武口洗煤厂'=>'dawukou',
+            '金凤洗煤厂'=>'jinfeng',
+            '检修车间'=>'jianxiuchejian',
+            '太西洗煤厂'=>'taixi',
+            '清水营洗煤厂'=>'qingshuiying',
+            '梅花井洗煤厂'=>'meihuajing',
+            '石槽村洗煤厂'=>'shicaocun',
+            '双马洗煤厂'=>'shuangma',
+            '羊场湾洗煤厂'=>'yangchangwan',
+            '羊场湾二分区洗煤厂'=>'yangchangwanerfenqu'
+        ];
+
+        if(count($coal_washery) > 0){
+            for($i=0;$i<count($coal_washery);$i++){
+                if(array_key_exists($coal_washery[$i]->name, $coal_list)) {
+                    $slog = $coal_list[$coal_washery[$i]->name];
+                    $result[$slog]['title'] = $coal_washery[$i]->name;
+                    $result[$slog]['id'] = $coal_washery[$i]->id;
+                    $result[$slog]['data'] = [
+                        [
+                            'name' => '高风险作业',
+                            'value'=> DB::connection('task_xixuan')->table('xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->id)->where('risk_level',0)->whereDate('optdt', today())->count()
+                        ],
+                        [
+                            'name' => '中风险作业',
+                            'value'=> DB::connection('task_xixuan')->table('xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->id)->where('risk_level',1)->whereDate('optdt', today())->count()
+                        ],
+                        [
+                            'name' => '低风险作业',
+                            'value'=> DB::connection('task_xixuan')->table('xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->id)->where('risk_level',2)->whereDate('optdt', today())->count()
+                        ]
+                    ];
+                }
+            }
+        }
+
+        return self::successResponse($result);
+    }
+
+    //时间段作业数
+    public function timeWorkCountV2(Request $request){
+        $params = $request->all();
+
+        if(isset($params['start_date']) && isset($params['end_date'])){
+            $start_date = $params['start_date'];
+            $end_date = $params['end_date'];
+        }else{
+            $start_date = date('Y-m-d', strtotime(date('Y-m-d') . ' -6 day'));
+            $end_date = date('Y-m-d');
+        }
+
+        $current_date = $start_date;
+        $i = 0;
+        $result = [];
+        $result['xAxis']['type'] = 'category';
+        $result['xAxis']['data'] = [];
+        $result['series'] = [
+            [
+                'name' => '高风险作业',
+                'type' => 'bar',
+                'stack'=> 'bar_1',
+                'data' => [],
+                'itemStyle' => [
+                    'color' => '#DA0000',
+                    'borderRadius' => [10,10,10,10]
+                ]
+            ],
+            [
+                'name' => '中风险作业',
+                'type' => 'bar',
+                'stack'=> 'bar_2',
+                'data' => [],
+                'itemStyle' => [
+                    'color' => '#FFBA00',
+                    'borderRadius' => [10,10,10,10]
+                ]
+            ],
+            [
+                'name' => '低风险作业',
+                'type' => 'bar',
+                'stack'=> 'bar_3',
+                'data' => [],
+                'itemStyle' => [
+                    'color' => '#2BB200',
+                    'borderRadius' => [10,10,10,10]
+                ]
+            ]
+        ];
+
+        while ($current_date <= $end_date) {
+            array_push($result['xAxis']['data'],$current_date);
+            array_push($result['series'][0]['data'],DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', $current_date)->where('risk_level',0)->count());
+            array_push($result['series'][1]['data'],DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', $current_date)->where('risk_level',1)->count());
+            array_push($result['series'][2]['data'],DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', $current_date)->where('risk_level',2)->count());
+            $current_date = date('Y-m-d', strtotime($current_date . ' +1 day'));
+            $i++;
+        }
+
+        return self::successResponse($result);
+    }
+
+    //时间段片区统计
+    public function timeAreaTotalV2(Request $request){
+        $params = $request->all();
+
+        if (isset($params['area_id'])) {
+            $area_id = $params['area_id'];
+        }else{
+            $area_id = 1;
+        }
+
+        if(isset($params['start_date']) && isset($params['end_date'])){
+            $start_date = $params['start_date'];
+            $end_date = $params['end_date'];
+        }else{
+            $start_date = date('Y-m-d', strtotime(date('Y-m-d') . ' -6 day'));
+            $end_date = date('Y-m-d');
+        }
+
+        $coal_washery_id_list = DB::connection('task_xixuan')->table('xx_coal_washery')->where('area_id',$area_id)->pluck('id');
+
+        $result = [];
+        $current_date = $start_date;
+        $i = 0;
+
+        //当日片区数
+        $result['data'] = [
+            [
+                'number' => DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', date('Y-m-d'))->where('risk_level',0)->count(),
+                'unit'   => '项',
+                'title'  => '高风险作业',
+                'color'  => '#DA0000'
+            ],
+            [
+                'number' => DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', date('Y-m-d'))->where('risk_level',1)->count(),
+                'unit'   => '项',
+                'title'  => '中风险作业',
+                'color'  => '#FFBA00'
+            ],
+            [
+                'number' => DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', date('Y-m-d'))->where('risk_level',2)->count(),
+                'unit'   => '项',
+                'title'  => '低风险作业',
+                'color'  => '#2BB200'
+            ]
+        ];
+
+        $result['xAxis']['type'] = 'category';
+        $result['xAxis']['data'] = [];
+        $result['series'] = [
+            [
+                'name' => '高风险作业',
+                'type' => 'line',
+                'data' => [],
+                'itemStyle' => [
+                    'color' => '#DA0000',
+                    'borderRadius' => [10,10,10,10]
+                ]
+            ],
+            [
+                'name' => '中风险作业',
+                'type' => 'line',
+                'data' => [],
+                'itemStyle' => [
+                    'color' => '#FFBA00',
+                    'borderRadius' => [10,10,10,10]
+                ]
+            ],
+            [
+                'name' => '低风险作业',
+                'type' => 'line',
+                'data' => [],
+                'itemStyle' => [
+                    'color' => '#2BB200',
+                    'borderRadius' => [10,10,10,10]
+                ]
+            ]
+        ];
+
+        while ($current_date <= $end_date) {
+            array_push($result['xAxis']['data'],$current_date);
+            array_push($result['series'][0]['data'],DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', $current_date)->where('risk_level',0)->count());
+            array_push($result['series'][1]['data'],DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', $current_date)->where('risk_level',1)->count());
+            array_push($result['series'][2]['data'],DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', $current_date)->where('risk_level',2)->count());
+            $current_date = date('Y-m-d', strtotime($current_date . ' +1 day'));
+            $i++;
+        }
+
+        return self::successResponse($result);
+    }
+
+    //洗煤厂统计
+    public function coalWasheryTotalV2(Request $request){
+        $params = $request->all();
+
+        if(isset($params['area_id'])){
+            $area = [$params['area_id']];
+        }else{
+            $area = [1,2];
+        }
+
+        $coal_washery = DB::connection('task_xixuan')->table('xx_coal_washery')->whereIn('area_id',$area)->get();
+        if(count($coal_washery) > 0){
+            for($i=0;$i<count($coal_washery);$i++){
+                $result[$i]['unit_name'] = $coal_washery[$i]->name;
+                $result[$i]['coal_washery_id'] = $coal_washery[$i]->id;
+                $result[$i]['data'] = [
+                    [
+                        'label' => '高',
+                        'value' => DB::connection('task_xixuan')->table('xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->id)->where('risk_level',0)->whereDate('optdt', today())->count(),
+                        'color' => '#DA0000'
+                    ],
+                    [
+                        'label' => '中',
+                        'value' => DB::connection('task_xixuan')->table('xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->id)->where('risk_level',1)->whereDate('optdt', today())->count(),
+                        'color' => '#FFBA00'
+                    ],
+                    [
+                        'label' => '低',
+                        'value' => DB::connection('task_xixuan')->table('xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->id)->where('risk_level',2)->whereDate('optdt', today())->count(),
+                        'color' => '#2BB200'
+                    ],
+                ];
+            }
+        }
+
+        return self::successResponse($result);
+    }
+
+    //风险作业列表
+    public function riskWorkListV2(Request $request){
+        $params = $request->all();
+
+        if(isset($params['type'])){
+            $type = [$params['type']];
+        }else{
+            $type = [0,1,2];
+        }
+
+        $list = [];
+        if(isset($params['area_id'])){
+            $list = DB::connection('task_xixuan')->table('xx_coal_washery')->where('area_id',$params['area_id'])->pluck('id');
+        }
+        if(isset($params['coal_washery_id'])){
+            $list = [$params['coal_washery_id']];
+        }
+
+        $coal_washery_list = DB::connection('task_xixuan')->table('xx_coal_washery')->get();
+        if(count($coal_washery_list) > 0){
+            for($i=0;$i<count($coal_washery_list);$i++){
+                $result['unit_list'][$i]['text'] = $coal_washery_list[$i]->name;
+                $result['unit_list'][$i]['value'] = $coal_washery_list[$i]->name;
+            }
+        }
+
+        $risk = DB::connection('task_xixuan')->table('xx_risk_assignment');
+        $risk = $risk->select('xx_risk_assignment.*','xx_coal_washery.name as coal_washery');
+        $risk = $risk->leftJoin('xx_coal_washery','xx_coal_washery.id','=','xx_risk_assignment.coal_washery_id');
+        if(count($list) > 0){
+            $risk = $risk->whereIn('coal_washery_id',$list);
+        }
+        $risk = $risk->whereDate('xx_risk_assignment.optdt', today());
+        if(isset($params['id'])){
+            $risk = $risk->where('xx_coal_washery.id',$params['id']);
+        }
+        $risk = $risk->whereIn('risk_level',$type)->get();
+
+        $risk_level = ['高风险','中风险','低风险'];
+        $risk_type = ['高空坠落','起重伤害','触电','火灾','机械伤害','中毒和窒息'];
+
+        $result['data'] = [];
+        if(count($risk) > 0){
+            for($i=0;$i<count($risk);$i++){
+                $result['data'][$i]['id'] = $risk[$i]->id;
+                $result['data'][$i]['unit_name'] = $risk[$i]->coal_washery;
+                $result['data'][$i]['place'] = $risk[$i]->work_location;
+                $result['data'][$i]['content'] = $risk[$i]->risk_name;
+
+                $result['data'][$i]['work_people'] = $risk[$i]->work_people;
+                $result['data'][$i]['work_num'] = $risk[$i]->work_num;
+                $result['data'][$i]['risk_level'] = $risk_level[$risk[$i]->risk_level];
+                if($risk[$i]->risk_type != null){
+                    $result['data'][$i]['risk_type'] = $risk_type[$risk[$i]->risk_type];
+                }else{
+                    $result['data'][$i]['risk_type'] = '无';
+                }
+                $result['data'][$i]['coal_washery'] = $risk[$i]->coal_washery;
+            }
+        }
+
+        return self::successResponse($result);
+    }
+
+    //风险作业详情
+    public function riskWorkDetailV2(Request $request){
+        $params = $request->all();
+
+        if (!isset($params['id'])) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+
+        $risk_type = ['高空坠落','起重伤害','触电','火灾','机械伤害','中毒和窒息'];
+        $risk_level = ['高风险','中风险','低风险'];
+
+        $type = '';
+        $camera_name = '无';
+        $result['camera']['camera_id'] = '';
+        $result['camera']['parent_id'] = '';
+
+        $move_type = '';
+        $move_camera_name = '无';
+        $result['move_camera']['camera_id'] = '';
+        $result['move_camera']['parent_id'] = '';
+
+        $zhifa_type = '';
+        $zhifa_camera_name = '无';
+        $result['zhifa_camera']['camera_id'] = '';
+        $result['zhifa_camera']['parent_id'] = '';
+
+        $risk = DB::connection('task_xixuan')->table('xx_risk_assignment')
+            ->select('xx_risk_assignment.*','xx_coal_washery.name as coal_washery')
+            ->leftJoin('xx_coal_washery','xx_coal_washery.id','=','xx_risk_assignment.coal_washery_id')
+            ->where('xx_risk_assignment.id',$params['id'])->get();
+
+        if(count($risk) > 0){
+            $camera_info = explode('|',$risk[0]->camera_id);
+
+            if(count($camera_info) > 1){
+                $camera_name = $camera_info[2];
+                $is_hak = MineListExt::where('mine_id', $camera_info[1])->value('is_hak');
+                if($is_hak == 2){
+                    $type = 'rtsp';
+                }else{
+                    $type = 'm3u8';
+                }
+            }
+
+            $move_camera_info = explode('|',$risk[0]->move_camera_id);
+
+            if(count($move_camera_info) > 1){
+                $move_camera_name = $move_camera_info[2];
+                $is_hak = MineListExt::where('mine_id', $move_camera_info[1])->value('is_hak');
+                if($is_hak == 2){
+                    $move_type = 'rtsp';
+                }else{
+                    $move_type = 'm3u8';
+                }
+            }
+
+            $zhifa_camera_info = explode('|',$risk[0]->zhifa_camera_id);
+
+            if(count($zhifa_camera_info) > 1){
+                $zhifa_camera_name = $zhifa_camera_info[2];
+                $is_hak = MineListExt::where('mine_id', $zhifa_camera_info[1])->value('is_hak');
+                if($is_hak == 2){
+                    $zhifa_type = 'rtsp';
+                }else{
+                    $zhifa_type = 'm3u8';
+                }
+            }
+
+            if($risk[0]->risk_type != '' && $risk[0]->risk_type !=null){
+                $risk_type_value = $risk_type[$risk[0]->risk_type];
+            }else{
+                $risk_type_value = '无';
+            }
+
+            $result['detail'] = [
+                [
+                    'label' => '所属单位:',
+                    'value' => $risk[0]->unit
+                ],
+                [
+                    'label' => '区队名称:',
+                    'value' => $risk[0]->coal_washery
+                ],
+                [
+                    'label' => '班次:',
+                    'value' => $risk[0]->classes
+                ],
+                [
+                    'label' => '作业人数:',
+                    'value' => $risk[0]->work_num
+                ],
+                [
+                    'label' => '风险等级:',
+                    'value' => $risk_level[$risk[0]->risk_level]
+                ],
+                [
+                    'label' => '风险类型:',
+                    'value' => $risk_type_value
+                ],
+                [
+                    'label' => '作业内容:',
+                    'value' => $risk[0]->risk_name
+                ],
+                [
+                    'label' => '作业地点:',
+                    'value' => $risk[0]->work_location
+                ],
+                [
+                    'label' => '现场负责人:',
+                    'value' => $risk[0]->work_people
+                ],
+                [
+                    'label' => '进展情况:',
+                    'value' => $risk[0]->describe
+                ],
+                [
+                    'label' => '固定摄像头:',
+                    'value' => $camera_name
+                ],
+                [
+                    'label' => '移动摄像头:',
+                    'value' => $move_camera_name
+                ],
+                [
+                    'label' => '执法记录仪:',
+                    'value' => $zhifa_camera_name
+                ],
+            ];
+
+            $camera_id = explode('|',$risk[0]->camera_id);
+
+            if(count($camera_id) > 1){
+                $result['camera']['camera_id'] = $camera_id[0];
+                $result['camera']['parent_id'] = $camera_id[1];
+            }
+
+            $result['camera']['camera_type'] = $type;
+
+            $move_camera_id = explode('|',$risk[0]->move_camera_id);
+
+            if(count($move_camera_id) > 1){
+                $result['move_camera']['camera_id'] = $move_camera_id[0];
+                $result['move_camera']['parent_id'] = $move_camera_id[1];
+            }
+
+            $result['move_camera']['camera_type'] = $move_type;
+
+            $zhifa_camera_id = explode('|',$risk[0]->zhifa_camera_id);
+
+            if(count($zhifa_camera_id) > 1){
+                $result['zhifa_camera']['camera_id'] = $zhifa_camera_id[0];
+                $result['zhifa_camera']['parent_id'] = $zhifa_camera_id[1];
+            }
+
+            $result['zhifa_camera']['camera_type'] = $zhifa_type;
+        }
+
+        return self::successResponse($result);
+    }
+
+    //首頁信息
+    public function taskHomeV2(Request $request){
+        $risk_type = ['高空坠落','起重伤害','触电','火灾','机械伤害','中毒和窒息'];
+        $risk_level = ['高风险','中风险','低风险'];
+
+        //高风险作业
+        $gaofengxian = DB::connection('task_xixuan')->table('xx_risk_assignment')
+            ->select('xx_risk_assignment.*','xx_coal_washery.name as coal_washery')
+            ->leftJoin('xx_coal_washery','xx_coal_washery.id','=','xx_risk_assignment.coal_washery_id')
+            ->whereDate('xx_risk_assignment.optdt', today())
+            ->where('risk_level',0)->get();
+        if(count($gaofengxian) > 0){
+            for($i=0;$i<count($gaofengxian);$i++){
+                if($gaofengxian[$i]->risk_type == ''){
+                    $gaofengxian[$i]->risk_type_name = '无';
+                }else{
+                    $gaofengxian[$i]->risk_type_name = $risk_type[$gaofengxian[$i]->risk_type];
+                }
+                $camera_info = explode('|',$gaofengxian[$i]->camera_id);
+                $gaofengxian[$i]->camera_type = CameraEnum::CAMERA_TYPE_EXCHANGE[$camera_info[3]];
+                $gaofengxian[$i]->risk_level_name = $risk_level[$gaofengxian[$i]->risk_level];
+            }
+        }
+        $result['gao_count'] = count($gaofengxian);
+        $result['gao'] = $gaofengxian;
+
+        //中风险作业
+        $zhongfengxian = DB::connection('task_xixuan')->table('xx_risk_assignment')
+            ->select('xx_risk_assignment.*','xx_coal_washery.name as coal_washery')
+            ->leftJoin('xx_coal_washery','xx_coal_washery.id','=','xx_risk_assignment.coal_washery_id')
+            ->whereDate('xx_risk_assignment.optdt', today())
+            ->where('risk_level',1)->get();
+        if(count($zhongfengxian) > 0){
+            for($i=0;$i<count($zhongfengxian);$i++){
+                if($zhongfengxian[$i]->risk_type == ''){
+                    $zhongfengxian[$i]->risk_type_name = '无';
+                }else{
+                    $zhongfengxian[$i]->risk_type_name = $risk_type[$zhongfengxian[$i]->risk_type];
+                }
+                $camera_info = explode('|',$zhongfengxian[$i]->camera_id);
+                $zhongfengxian[$i]->camera_type = CameraEnum::CAMERA_TYPE_EXCHANGE[$camera_info[3]];
+                $zhongfengxian[$i]->risk_level_name = $risk_level[$zhongfengxian[$i]->risk_level];
+            }
+        }
+        $result['zhong_count'] = count($zhongfengxian);
+        $result['zhong'] = $zhongfengxian;
+
+        //低风险作业
+        $difengxian = DB::connection('task_xixuan')->table('xx_risk_assignment')
+            ->select('xx_risk_assignment.*','xx_coal_washery.name as coal_washery')
+            ->leftJoin('xx_coal_washery','xx_coal_washery.id','=','xx_risk_assignment.coal_washery_id')
+            ->whereDate('xx_risk_assignment.optdt', today())
+            ->where('risk_level',2)->get();
+        if(count($difengxian) > 0){
+            for($i=0;$i<count($difengxian);$i++){
+                if($difengxian[$i]->risk_type == ''){
+                    $difengxian[$i]->risk_type_name = '无';
+                }else{
+                    $difengxian[$i]->risk_type_name = $risk_type[$difengxian[$i]->risk_type];
+                }
+                $camera_info = explode('|',$difengxian[$i]->camera_id);
+                $difengxian[$i]->camera_type = CameraEnum::CAMERA_TYPE_EXCHANGE[$camera_info[3]];
+                $difengxian[$i]->risk_level_name = $risk_level[$difengxian[$i]->risk_level];
+            }
+        }
+        $result['di_count'] = count($difengxian);
+        $result['di'] = $difengxian;
+
+        //片区作业数
+        $area = DB::connection('task_xixuan')->table('xx_area')->get();
+        $result['area_count'] = [];
+        if(count($area) > 0){
+            for($i=0;$i<count($area);$i++){
+                $result['area_count'][$i]['name'] = $area[$i]->name;
+                $coal_washery_id_list = DB::connection('task_xixuan')->table('xx_coal_washery')->where('area_id',$area[$i]->id)->pluck('id');
+                $result['area_count'][$i]['count'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', today())->count();
+            }
+        }
+
+        //洗煤厂作业
+        $coal_washery = DB::connection('task_xixuan')->table('xx_coal_washery')->get();
+        $result['coal_washery_work_count'] = [];
+        if(count($coal_washery) > 0){
+            for($i=0;$i<count($coal_washery);$i++){
+                $result['coal_washery_work_count'][$i]['name'] = $coal_washery[$i]->name;
+                $result['coal_washery_work_count'][$i]['gao'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->id)->where('risk_level',0)->whereDate('optdt', today())->count();
+                $result['coal_washery_work_count'][$i]['zhong'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->id)->where('risk_level',1)->whereDate('optdt', today())->count();
+                $result['coal_washery_work_count'][$i]['di'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->id)->where('risk_level',2)->whereDate('optdt', today())->count();
+            }
+        }
+
+        //7天作业数
+        $result['seven_work_count'] = [];
+        for($i=0;$i<7;$i++){
+            $day = date('Y-m-d', strtotime('-'.$i.' day'));
+            $result['seven_work_count'][$i]['date'] = $day;
+            $result['seven_work_count'][$i]['gao'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', $day)->where('risk_level',0)->count();
+            $result['seven_work_count'][$i]['zhong'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', $day)->where('risk_level',1)->count();
+            $result['seven_work_count'][$i]['di'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', $day)->where('risk_level',2)->count();
+        }
+
+        //7天片区作业数
+        $result['seven_area_work_count'] = [];
+        if(count($area) > 0){
+            for($i=0;$i<count($area);$i++){
+                $result['seven_area_work_count'][$i]['name'] = $area[$i]->name;
+                $result['seven_area_work_count'][$i]['area_id'] = $area[$i]->id;
+                for($j=0;$j<7;$j++){
+                    $day = date('Y-m-d', strtotime('-'.$j.' day'));
+                    $result['seven_area_work_count'][$i]['work'][$j]['date'] = $day;
+                    $coal_washery_id_list = DB::connection('task_xixuan')->table('xx_coal_washery')->where('area_id',$area[$i]->id)->pluck('id');
+                    $result['seven_area_work_count'][$i]['work'][$j]['gao'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', $day)->where('risk_level',0)->count();
+                    $result['seven_area_work_count'][$i]['work'][$j]['zhong'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', $day)->where('risk_level',1)->count();
+                    $result['seven_area_work_count'][$i]['work'][$j]['di'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', $day)->where('risk_level',2)->count();
+                }
+            }
+        }
+
+        return self::successResponse($result);
+    }
+
+    //首页作业查询
+    public function workSearchV2(Request $request){
+        $params = $request->all();
+
+        if (!isset($params['start_date'])) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+
+        if (!isset($params['end_date'])) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+
+        $result = [];
+        $start_date = $params['start_date'];
+        $end_date = $params['end_date'];
+        $current_date = $start_date;
+        $i = 0;
+        while ($current_date <= $end_date) {
+            $result[$i]['date'] = $current_date;
+            $result[$i]['gao'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', $current_date)->where('risk_level',0)->count();
+            $result[$i]['zhong'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', $current_date)->where('risk_level',1)->count();
+            $result[$i]['di'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', $current_date)->where('risk_level',2)->count();
+            $current_date = date('Y-m-d', strtotime($current_date . ' +1 day'));
+            $i++;
+        }
+
+        return self::successResponse($result);
+    }
+
+    //首页片区作业查询
+    public function areaWorkSearchV2(Request $request){
+        $params = $request->all();
+
+        if (!isset($params['start_date'])) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+
+        if (!isset($params['end_date'])) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+
+        if (!isset($params['area_id'])) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+
+        $coal_washery_id_list = DB::connection('task_xixuan')->table('xx_coal_washery')->where('area_id',$params['area_id'])->pluck('id');
+        $result = [];
+        $start_date = $params['start_date'];
+        $end_date = $params['end_date'];
+        $current_date = $start_date;
+        $i = 0;
+
+        while ($current_date <= $end_date) {
+            $result[$i]['date'] = $current_date;
+            $result[$i]['gao'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', $current_date)->where('risk_level',0)->count();
+            $result[$i]['zhong'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', $current_date)->where('risk_level',1)->count();
+            $result[$i]['di'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', $current_date)->where('risk_level',2)->count();
+            $current_date = date('Y-m-d', strtotime($current_date . ' +1 day'));
+            $i++;
+        }
+
+        return self::successResponse($result);
+    }
+
     //图片上传
     public function uploadImg(Request $request){
         $file = $request->file('file');

+ 12 - 0
Modules/Camera/Routes/api.php

@@ -78,6 +78,18 @@ Route::namespace('Api')->group(function () {
     Route::post('task_xixuan/work_search', 'CameraApiController@workSearch');//首頁作业查询
     Route::post('task_xixuan/area_work_search', 'CameraApiController@areaWorkSearch');//首頁片区作业查询
 
+    Route::post('task_xixuan/main_home_v2', 'CameraApiController@mainHomeV2');//主屏幕
+    Route::post('task_xixuan/risk_work_percent_v2', 'CameraApiController@riskWorkPercentV2');//风险作业占比
+    Route::post('task_xixuan/area_percent_v2', 'CameraApiController@areaPercentV2');//片区占比
+    Route::post('task_xixuan/map_data_v2', 'CameraApiController@mapDataV2');//地图数据
+    Route::post('task_xixuan/time_work_count_v2', 'CameraApiController@timeWorkCountV2');//时间段作业数
+    Route::post('task_xixuan/time_area_total_v2', 'CameraApiController@timeAreaTotalV2');//时间段片区统计
+    Route::post('task_xixuan/coal_washery_total_v2', 'CameraApiController@coalWasheryTotalV2');//洗煤厂统计
+    Route::post('task_xixuan/risk_work_list_v2', 'CameraApiController@riskWorkListV2');//风险作业列表
+    Route::post('task_xixuan/risk_work_detail_v2', 'CameraApiController@riskWorkDetailV2');//风险作业详情
+    Route::post('task_xixuan/home_v2', 'CameraApiController@taskHomeV2');//首頁接口
+    Route::post('task_xixuan/work_search_v2', 'CameraApiController@workSearchV2');//首頁作业查询
+    Route::post('task_xixuan/area_work_search_v2', 'CameraApiController@areaWorkSearchV2');//首頁片区作业查询
 
     //大华视频接口
     Route::post('task_xixuan/dahua_camera','TdwyController@dahuaCamera');//大华手动同步