getUserRole($token); if($role_id == 2) // 超级管理员账号 { $sql = "select id,name,register_address as address,if(status=1,'在线','离线') as status,f_did,svg_type from device where status = 1 order by CONVERT(name USING gbk)"; } elseif($role_id == 1) // 项目账号 { $sql = prepare("select id,name,register_address as address,if(status=1,'在线','离线') as status,f_did,svg_type from device where status = 1 and project_id = (select project_id from user where token = ?s limit 1) order by CONVERT(name USING gbk)",array($token)); } $svg_type = get_var("select svg_type from device where id=".v('id')." limit 1"); $result = get_data($sql); $data['device_list']=$result; $data['svg_type']=$svg_type==null?1:$svg_type; render($data, 'web', 'big_screen_device'); } } public function big_screen_device2() { $token = $_SESSION['token']; if(v('id')==null){ $sql = prepare("select project_id from user where token = ?s limit 1",array($token)); $project_id = get_var($sql); if($project_id == 1){ header("Location:?c=big_screen&a=big_screen_device2&id=1&did=1037"); }elseif($project_id == 3){ header("Location:?c=big_screen&a=big_screen_device2&id=69&did=1043"); }elseif($project_id == 2){ header("Location:?c=big_screen&a=big_screen_device2&id=7&did=7"); } }else{ $role_id = $this->getUserRole($token); if($role_id == 2) // 超级管理员账号 { $sql = "select id,name,register_address as address,if(status=1,'在线','离线') as status,f_did,svg_type from device where status = 1 order by CONVERT(name USING gbk)"; } elseif($role_id == 1) // 项目账号 { $sql = prepare("select id,name,register_address as address,if(status=1,'在线','离线') as status,f_did,svg_type from device where status = 1 and project_id = (select project_id from user where token = ?s limit 1) order by CONVERT(name USING gbk)",array($token)); } $svg_type = get_var("select svg_type from device where id=".v('id')." limit 1"); $result = get_data($sql); $data['device_list']=$result; $data['svg_type']=$svg_type==null?1:$svg_type; render($data, 'web', 'big_screen_device2'); } } /* * * 获取登录用户的权限 */ public function getUserRole($token) { $sql = prepare("select role_id from user where token = ?s limit 0,1",array($token)); $role_id = get_var($sql); return $role_id; } // 获取设备列表 public function getBigScreenDeviceList() { $token = $_SESSION['token']; $role_id = $this->getUserRole($token); if($role_id == 2) // 超级管理员账号 { $sql = "select id,name,register_address as address,if(status=1,'在线','离线') as status from device where status = 1"; } elseif($role_id == 1) // 项目账号 { $sql = prepare("select id,name,register_address as address,if(status=1,'在线','离线') as status from device where status = 1 and project_id = (select project_id from user where token = ?s limit 1)",array($token)); } $result = get_data($sql); return self::send_result($result); } // 设备运行详情 public function getBigScreenDeviceRunInfo() { $device_id = $_GET['id']; // 累计调控次数 $sql = prepare("select action_all_count from data where device_id = ?i order by id desc limit 1",array($device_id)); $result['action_all_count'] = get_var($sql) == null ? 0 : get_var($sql); $sql_1 = prepare("select count(*) from warn where device_id = ?i",array($device_id)); $result['warn_count'] = get_var($sql_1) == null ? 0 : get_var($sql_1); return self::send_result($result); } // 设备当前情况 public function getBigScreenDeviceRunCurrentInfo() { $device_id = $_GET['id']; $sql = prepare("select main_sewage_pump,standby_sewage_pump,main_rain_pump,gate_up,gate_down,automatic_status from data where device_id = ?i order by id desc limit 1",array($device_id)); $data= get_line($sql); if($data['main_sewage_pump']==1) { $data['main_sewage_pump']='开启'; } elseif($data['main_sewage_pump']==2) { $data['main_sewage_pump']='关闭'; } else { $data['main_sewage_pump']='报警'; } if($data['standby_sewage_pump']==1) { $data['standby_sewage_pump']='开启'; } elseif($data['standby_sewage_pump']==2) { $data['standby_sewage_pump']='关闭'; } else { $data['standby_sewage_pump']='报警'; } if($data['main_rain_pump']==1) { $data['main_rain_pump']='开启'; } elseif($data['main_rain_pump']==2) { $data['main_rain_pump']='关闭'; } else { $data['main_rain_pump']='报警'; } if($data['gate_up'] == 1) { $data['gate_status'] = '上升'; } else { if($data['gate_down'] == 1) { $data['gate_status'] = '下降'; } else { $data['gate_status'] = '停止'; } } if($data['gate_up']==1){$data['gate_up']='闸门上升';}else{$data['gate_up']='闸门停止上升';} if($data['gate_down']==1){$data['gate_down']='闸门下降';}else{$data['gate_down']='闸门停止下降';} if($data['automatic_status']==1){$data['automatic_status']='自动模式';}else{$data['automatic_status']='手动模式';} $sql_1 = prepare("select name from strategy where id = (select strategy_id from device where id = ?i limit 1)",array($device_id)); $data['strategy'] = get_var($sql_1); return self::send_result($data); } // 事件列表 public function getBigScreenDeviceEventList() { $device_id = $_GET['id']; $sql = prepare("select device_id,event,event_time from event where device_id = ?i order by id desc limit 10",array($device_id)); $data = get_data($sql); if(!empty($data)) { for ($i=0; $i < count($data); $i++) { $sql_1 = prepare("select terminal.name from device left join terminal on terminal.id = device.terminal_id where device.id = ?i limit 1",array($data[$i]['device_id'])); $terminal_name = get_var($sql_1); $result[$i]['terminal_name'] = $terminal_name; $result[$i]['event'] = $data[$i]['event']; $result[$i]['event_time'] = $data[$i]['event_time']; } }else { $result = false; } return self::send_result($result); } // 历史数据 public function getBigScreenHospitalDataList() { $device_id = $_GET['id']; $sql = prepare("select voltage_a_data,voltage_b_data,voltage_c_data,current_total_useful_power_data,elec_conductivity_tds_data,rainfall_data,rainsnow,level_data,ph_data,ammonia_data,created_at from data where device_id = ?i order by created_at desc limit 10",array($device_id)); $data= get_data($sql); if(!empty($data)) { $result = $data; }else { $result = false; } return self::send_result($result); } // 设备实时数据 public function getBigScreenDeviceRealData() { $device_id = $_GET['id']; $sql = prepare("select level_data,ph_data,rainfall_data,rainsnow,ammonia_data,elec_conductivity_tds_data from data where device_id = ?i order by id desc limit 1",array($device_id)); $data= get_line($sql); if(!empty($data)) { $result = $data; }else { $result['level_data'] = 0; $result['ph_data'] = 0; $result['rainfall_data'] = 0; $result['rainsnow'] = 0; $result['ammonia_data'] = 0; } return self::send_result($result); } // 设备实时图名称 public function getBigScreenDeviceName() { $device_id = $_GET['id']; $sql = prepare("select name from device where id = ?i limit 1",array($device_id)); $data= get_var($sql); return self::send_result($data); } // 默认设备编码 public function getBigScreenDeviceId() { $token = $_SESSION['token']; $role_id = $this->getUserRole($token); if($role_id == 2) // 超级管理员账号 { $sql = "select id from device where status = 1 limit 1"; } elseif($role_id == 1) // 项目账号 { $sql = prepare("select id from device where status = 1 and project_id = (select project_id from user where token = ?s limit 1) limit 1",array($token)); } $result = get_var($sql); return self::send_result($result); } // 大屏 雨污分流智能管理平台 // 项目总览 public function getBigScreenDashboardProjectOverview() { $token = $_SESSION['token']; $role_id = $this->getUserRole($token); if($role_id == 2) // 超级管理员账号 { // 项目总数 $sql = "select count(*) from project"; // 控制柜总数 $sql_1 = "select count(*) from device where type = 1"; // 曝气机总数 $sql_2 = "select count(*) from device where type = 2"; // 管网总数 $sql_3 = "select count(*) from device where type = 3"; // 在线设备总数 $sql_4 = "select count(*) from device where status = 1"; } elseif($role_id == 1) // 项目账号 { // 项目总数 $sql = prepare("select count(*) from project where id = (select project_id from user where token = ?s limit 1)",array($token)); // 控制柜总数 $sql_1 = prepare("select count(*) from device where type = 1 and project_id = (select project_id from user where token = ?s limit 1)",array($token)); // 曝气机总数 $sql_2 = prepare("select count(*) from device where type = 2 and project_id = (select project_id from user where token = ?s limit 1)",array($token)); // 管网总数 $sql_3 = prepare("select count(*) from device where type = 3 and project_id = (select project_id from user where token = ?s limit 1)",array($token)); // 在线设备总数 $sql_4 = prepare("select count(*) from device where status = 1 and project_id = (select project_id from user where token = ?s limit 1)",array($token)); } $project_count = get_var($sql) == null ? 0 : intval(get_var($sql)); $device_1_count = get_var($sql_1) == null ? 0 : intval(get_var($sql_1)); $device_2_count = get_var($sql_2) == null ? 0 : intval(get_var($sql_2)); $device_3_count = get_var($sql_3) == null ? 0 : intval(get_var($sql_3)); $device_4_count = get_var($sql_4) == null ? 0 : intval(get_var($sql_4)); $result = [ 'project_count'=>$project_count, 'device_1_count'=>$device_1_count, 'device_2_count'=>$device_2_count, 'device_3_count'=>$device_3_count, 'device_4_count'=>$device_4_count ]; return self::send_result($result); } // 数据统计 - 设备情况统计 public function getBigScreenDashboardProjectDataDeviceRunInfo() { $token = $_SESSION['token']; $role_id = $this->getUserRole($token); if($role_id == 2) // 超级管理员账号 { // 在线设备 $sql_1 = "select count(*) from device where status = 1"; // 安装中设备 $sql_2 = "select count(*) from device where status = 2"; // 预警设备 $sql_3 = "select count(*) from warn group by device_id"; } elseif($role_id == 1) // 项目账号 { // 在线设备 $sql_1 = prepare("select count(*) from device where status = 1 and project_id = (select project_id from user where token = ?s limit 1)",array($token)); // 安装中设备 $sql_2 = prepare("select count(*) from device where status = 2 and project_id = (select project_id from user where token = ?s limit 1)",array($token)); // 预警设备 $sql_3 = "select count(*) from warn group by device_id"; } $device_1_count = get_var($sql_1) == null ? 0 : get_var($sql_1); $device_2_count = get_var($sql_2) == null ? 0 : get_var($sql_2); $device_3_count = get_var($sql_3) == null ? 0 : get_var($sql_3); $result = [ 'device_online_count'=>$device_1_count, 'device_offline_count'=>$device_2_count, 'device_warn_count'=>$device_3_count ]; return self::send_result($result); } // 数据统计 - 城市设备分布系统现状 public function getBigScreenDashboardDataCity() { $city_array = ['榆林市','延安市','铜川市','渭南市','咸阳市','西安市','宝鸡市','商洛市','安康市','汉中市']; for ($i=0; $i < count($city_array); $i++) { $city = $city_array[$i]; $sql = prepare("select count(*) from device where area_id = (select id from area where note = ?s limit 1)",array($city)); $device_all_count = get_var($sql) == null ? 0 : get_var($sql); $sql_1 = prepare("select count(*) from device where status = 1 and area_id = (select id from area where note = ?s limit 1)",array($city)); $device_online_count = get_var($sql_1) == null ? 0 : get_var($sql_1); $sql_2 = prepare("select count(*) from device where status = 2 and area_id = (select id from area where note = ?s limit 1)",array($city)); $device_offline_count = get_var($sql_2) == null ? 0 : get_var($sql_2); $result['all'][$i] = intval($device_all_count); $result['online'][$i] = intval($device_online_count); $result['offline'][$i] = intval($device_offline_count); } return self::send_result($result); } // 数据统计 - 调控频率排行榜 public function getBigScreenDashboardDataControlRank() { $token = $_SESSION['token']; $role_id = $this->getUserRole($token); if($role_id == 2) // 超级管理员账号 { $sql = "select device.name,count(event.id) as totalCount from event left join device on event.device_id = device.id group by event.device_id order by totalCount desc limit 10"; } elseif($role_id == 1) // 项目账号 { $sql = prepare("select device.name,count(event.id) as totalCount from event left join device on event.device_id = device.id where device.project_id = (select project_id from user where token = ?s limit 1) group by event.device_id order by totalCount desc limit 10",array($token)); } $data = get_data($sql); if(!empty($data)) { for ($i=0; $i < count($data); $i++) { $result['name'][$i] = $data[$i]['name']; $result['totalCount'][$i] = intval($data[$i]['totalCount']); } } else { $result = false; } return self::send_result($result); } // 地图监控点 - 事件类型分类 public function getBigScreenDashboardMapEventType() { $event_array = ['主污泵','备污泵','雨水泵','闸门上升','闸门下降']; for ($i=0; $i < count($event_array); $i++) { $event = $event_array[$i]; $sql = "select count(*) from event where event like '%".$event."%'"; $event_count = get_var($sql) == null ? 0 : get_var($sql); $result['event'][$i] = intval($event_count); } return self::send_result($result); } // 设备实时数据 public function getBigScreenDashboardDeviceRealData() { $token = $_SESSION['token']; $role_id = $this->getUserRole($token); if($role_id == 2) // 超级管理员账号 { $sql = "select id,name from device where status = 1"; } elseif($role_id == 1) // 项目账号 { $sql = prepare("select id,name from device where status = 1 and project_id = (select project_id from user where token = ?s limit 1)",array($token)); } $data = get_data($sql); if(!empty($data)) { for ($i=0; $i < count($data); $i++) { $sql_1 = prepare("select level_data,ph_data,rainfall_data,ammonia_data,rainsnow from data where device_id = ?i order by id desc limit 1",array($data[$i]['id'])); $data_1= get_line($sql_1); $result[$i]['name'] = $data[$i]['name']; $result[$i]['level_data'] = $data_1['level_data']==null?0:round($data_1['level_data'],2); $result[$i]['ph_data'] = $data_1['ph_data']==null?0:round($data_1['ph_data'],2); $result[$i]['rainfall_data'] = $data_1['rainfall_data']==null?0:round($data_1['rainfall_data'],2); $result[$i]['ammonia_data'] = $data_1['ammonia_data']==null?0:round($data_1['ammonia_data'],2); $result[$i]['rainsnow'] = $data_1['rainsnow']==null?0:round($data_1['rainsnow'],2); } } else { $result = false; } return self::send_result($result); } // 设备实时数据 public function getCommand() { $command = $_GET['command']; $token = $_SESSION['token']; $name = $_GET['name']; $ws_client_id_sql = prepare("select id from user where token = ?s limit 1",array($token)); $ws_client_id = get_var($ws_client_id_sql); $f_did_sql = prepare("select f_did from device where name = ?s limit 1",array($name)); $f_did = get_var($f_did_sql); if($command=="主污泵启动") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"主污泵启动","content":"000100000006FF05001EFF00"}'; } if($command=="主污泵停止") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"主污泵停止","content":"000100000006FF05001E0000"}'; } if($command=="备污泵启动") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"备污泵启动","content":"000100000006FF050020FF00"}'; } if($command=="备污泵停止") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"备污泵停止","content":"000100000006FF0500200000"}'; } if($command=="雨水泵启动") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"雨水泵启动","content":"000100000006FF050022FF00"}'; } if($command=="雨水泵停止") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"雨水泵停止","content":"000100000006FF0500220000"}'; } if($command=="闸门上升") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"闸门停止下降","content":"000100000006FF0500250000"}'; $result[1] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"闸门上升","content":"000100000006FF050024FF00"}'; } if($command=="闸门下降") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"闸门停止上升","content":"000100000006FF0500240000"}'; $result[1] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"闸门下降","content":"000100000006FF050025FF00"}'; } if($command=="闸门停止") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"闸门停止上升","content":"000100000006FF0500240000"}'; $result[1] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"闸门停止下降","content":"000100000006FF0500250000"}'; } if($command=="工控机报警复位") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"工控机报警复位","content":"000100000006FF0500270000"}'; // 这个指令和真实的指令不一致 } /* 想改又不想改 */ if($command=="设置远程模式") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"设置远程模式","content":"000100000006FF050082FF00"}'; } if($command=="设置本地模式") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"设置本地模式","content":"000100000006FF0500820000"}'; } if($command=="M500主污泵液位生效") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"M500主污泵液位生效","content":"000100000006FF0501F4FF00"}'; } if($command=="M500主污泵液位失效") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"M500主污泵液位失效","content":"000100000006FF0501F40000"}'; } if($command=="M502备污泵液位生效") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"M502备污泵液位生效","content":"000100000006FF0501F6FF00"}'; } if($command=="M502备污泵液位失效") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"M502备污泵液位失效","content":"000100000006FF0501F60000"}'; } if($command=="M501闸门雨量控制生效") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"M501闸门雨量控制生效","content":"000100000006FF0501F5FF00"}'; } if($command=="M501闸门雨量控制失效") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"M501闸门雨量控制失效","content":"000100000006FF0501F50000"}'; } if($command=="M503雨量定时清零生效") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"M503雨量定时清零生效","content":"000100000006FF0501F7FF00"}'; } if($command=="M503雨量定时清零失效") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"M503雨量定时清零失效","content":"000100000006FF0501F70000"}'; } if($command=="M504雨雪定时清零雨量生效") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"M504雨雪定时清零雨量生效","content":"000100000006FF0501F8FF00"}'; } if($command=="M504雨雪定时清零雨量失效") { $result[0] = '{"cmd":"control","ws_client_id":"'.$ws_client_id.'","device_id":"'.$f_did.'","name":"M504雨雪定时清零雨量失效","content":"000100000006FF0501F80000"}'; } return self::send_result($result); } public function getBigScreenCurrentTime() { $id = $_GET['id']; // 查询出设备的最后上来的数据,没有数据为当前时间 $sql = prepare("select created_at from data where device_id = ?i order by created_at desc limit 1",array($id)); $data= get_var($sql); if($data) { $bigScreenCurrentTime = substr($data,-8); }else { $bigScreenCurrentTime = date("H:i:s",time()); } return self::send_result($bigScreenCurrentTime); } public function convertId() { $device_name = $_GET['device_name']; $sql = prepare("select id from device where name = ?s limit 1",array($device_name)); $device_id = get_var($sql); return self::send_result($device_id); } public function judgeDevice() { $did = $_GET['did']; $name = $_GET['name']; $sql = prepare("select name from device where f_did = ?s limit 1",array($did)); $device_name = get_var($sql); if($name == $device_name) { $result = 'success'; }else { $result = 'false'; } return self::send_result($result); } } ?>