Monitor.php 10.5 KB
<?php


namespace app\api\controller\v7\screen;


use app\admin\model\inspection\Workorder;
use app\common\controller\Api;
use think\Db;

/**
 * 视频监测
 * Class Monitor
 * @package app\api\controller\v7\screen
 */
class Monitor extends Api
{
    public $noNeedLogin = ['*'];
    public $noNeedRight = ['*'];

    public function _initialize()
    {
        parent::_initialize();

    }

    protected $workorderStatusList = [
        '0'=>'待处理',
        '1'=>'待审核',
        '2'=>'已处理',
        '3'=>'审核未通过',
        '4'=>'无法处理'
    ];
    //监控设备
    public function device(){
        $result = [
            'total_num' => '--',
            'online_num' => '--',
            'offline_num' => '--',
            'rate' => '0%',
            'river' => [
                'total_num' => '--',
                'online_num' => '--',
                'offline_num' => '--',
            ],
            'water' => [
                'total_num' => '--',
                'online_num' => '--',
                'offline_num' => '--',
            ],
            'monitor' => [
                'total_num' => '--',
                'online_num' => '--',
                'offline_num' => '--',
            ]
        ];
        $this->success('成功', $result);
    }

    //人员抓拍
    public function personnelCapture(){
        $result = [
            [
                'title' => '取水坝',
                'types' => '可疑人员',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '监控室',
                'types' => '可疑人员',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '放水口',
                'types' => '可疑人员',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '水库边',
                'types' => '可疑人员',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '阀门口',
                'types' => '可疑人员',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '蓄水池',
                'types' => '可疑人员',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '取水坝左侧',
                'types' => '可疑人员',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '监控室右侧',
                'types' => '可疑人员',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '放水口左侧',
                'types' => '可疑人员',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '水库边右侧',
                'types' => '可疑人员',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '阀门口左侧',
                'types' => '可疑人员',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '蓄水池右侧',
                'types' => '可疑人员',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ]
        ];
        $this->success('成功', $result);
    }

    //异物抓拍
    public function foreignObjCapture(){
        $result = [
            [
                'title' => '取水坝',
                'types' => '可疑车辆',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '监控室',
                'types' => '可疑车辆',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '放水口',
                'types' => '可疑车辆',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '水库边',
                'types' => '可疑车辆',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '阀门口',
                'types' => '可疑车辆',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '蓄水池',
                'types' => '可疑车辆',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ]
        ];
        $this->success('成功', $result);
    }

    //实时监控
    public function realTime(){
        $result = [
            [
                'title' => '取水坝',
                'types' => '可疑车辆',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '监控室',
                'types' => '可疑人员',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '放水口',
                'types' => '可疑车辆',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '水库边',
                'types' => '可疑人员',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '阀门口',
                'types' => '可疑车辆',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ],
            [
                'title' => '蓄水池',
                'types' => '可疑人员',
                'times' => date('Y-m-d H:i'),
                'images' => '/uploads/20231224/FoN06J19nMnSf0KXoPQYMLkK8MbH.jpg',
            ]
        ];
        $this->success('成功', $result);
    }

    //报警统计
    public function alarmStatistics(){
        $result = [
            'month' => [
                'x' => ['1月','2月','3月','4月','5月','6月'],

                'river_course' => [random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200)],

                'water' => [random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200)],

                'other' => [random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200)]

            ],
            'quarter' => [
                'x' => ['1季度','2季度','3季度','4季度','5季度','6季度'],

                'river_course' => [random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200)],

                'water' => [random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200)],

                'other' => [random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200)],

            ],
            'year' => [
                'x' => ['2019年','2020年','2021年','2022年','2023年','2024年'],

                'river_course' => [random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200)],

                'water' => [random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200)],

                'other' => [random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200),random_int(0, 200)]

            ],
        ];
        $this->success('成功', $result);
    }

    //告警事件
    public function alarmEvents(){
        $workorderModel = new Workorder();
        //今天
        $datetime = strtotime(date('Y-m-d'));
        //近7天
        $datetime7 = strtotime(date('Y-m-d')) - 86400*6;
        $today = $workorderModel
            ->alias('w')
            ->field('w.id,w.message,s.staff_name,w.start_time,w.status')
            ->join('inspection_staff s', 's.id=w.staff_id', 'LEFT')
            ->where(['start_time' => ['egt', $datetime]])
            ->order(['start_time' => 'desc'])
            ->select();
        foreach ($today as $item){
            $item['start_time_text'] = date('Y-m-d H:i', $item['start_time']);
            $item['status'] = $this->workorderStatusList[$item['status']];
        }
        $seven = $workorderModel
            ->alias('w')
            ->field('w.id,w.message,s.staff_name,w.start_time,w.status')
            ->join('inspection_staff s', 's.id=w.staff_id', 'LEFT')
            ->where(['start_time' => ['egt', $datetime7]])
            ->order(['start_time' => 'desc'])
            ->select();
        foreach ($seven as $value){
            $value['start_time_text'] = date('Y-m-d H:i', $value['start_time']);
            $value['status'] = $this->workorderStatusList[$value['status']];
        }
        $result = [
            'today' => $today,
            'seven' => $seven,
        ];
        $this->success('成功', $result);
    }
}