getDeviceCode($company_code); } else { $company_code1 = M()->query("select owner_code from sp_owner_phone WHERE phone='" . $phone . "' GROUP BY owner_code limit 1"); $company_code = $company_code1[0]['owner_code']; $device_list = $this->getDeviceCode($company_code); } $where = ''; if (!empty($transfer_type)) { $where .= " and b.transfer_type='" . $transfer_type . "' "; } if (!empty($dwtype)) { $where .= " and b.dwtype='" . $dwtype . "' "; } switch ($status_type) { case '1': $data1 = M()->query("select b.* from sp_v_device_status as a join sp_owner as b on a.device_id=b.owner_code where a.device_status='离线' and a.device_id in(" . $device_list . ")" . $where); $data2 = M()->query("SELECT b.* FROM sp_devices_status AS a JOIN sp_owner AS b ON a.deviceid=b.owner_code WHERE b.dwtype=1 AND a.true_status in(75,300) AND b.company='" . $company_code . "' " . $where); break; case '2': $data1 = M()->query("select b.* from sp_v_device_status as a join sp_owner as b on a.device_id=b.owner_code where a.device_status='在线' and a.device_id in(" . $device_list . ")" . $where); $data2 = M()->query("SELECT b.* FROM sp_devices_status AS a JOIN sp_owner AS b ON a.deviceid=b.owner_code WHERE b.dwtype=1 AND a.true_status='0' AND b.company='" . $company_code . "' " . $where); break; default: $res['msg'] = '操作失败,系统中尚未定义该类型'; $res['flag'] = false; echo json_encode($res); exit(); break; } $data = array_merge($data1, $data2); vendor('PHPExcel.PHPExcel'); // vendor('PHPExcel.PHPExcel.Style'); $objPHPExcel = new \PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '设备编号') ->setCellValue('B1', '设备名称') ->setCellValue('C1', '单元地址') ->setCellValue('D1', '类型编号') ->setCellValue('E1', '传输方式') ->setCellValue('F1', '添加时间'); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(30); $objPHPExcel->getActiveSheet()->getStyle('A')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('B')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('C')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('D')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('E')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('F')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); if (!empty($data)) { foreach ($data as $key => $value) { // $objPHPExcel->getActiveSheet()->getStyle('A'. ($key + 2))->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->setCellValue('A' . ($key + 2), ' ' . $data[$key]['owner_code']); $objPHPExcel->getActiveSheet()->setCellValue('B' . ($key + 2), $data[$key]['owner_name']); $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), $data[$key]['unitinfo']); $objPHPExcel->getActiveSheet()->setCellValue('D' . ($key + 2), $data[$key]['dwtype']); $objPHPExcel->getActiveSheet()->setCellValue('E' . ($key + 2), $data[$key]['transfer_type']); $objPHPExcel->getActiveSheet()->setCellValue('F' . ($key + 2), $data[$key]['install_time']); } } $filename = '设备运行状态列表' . date('ymd', time()) . '.xls'; $objPHPExcel->getActiveSheet()->setTitle('设备运行状态列表'); ob_end_clean(); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="' . $filename . '"'); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); exit; } public function getManualInspectorListExpor() { $Data = I(''); $clzt = $Data['clzt']; $start_time = $Data['start_time']; $end_time = $Data['end_time']; $company_code = $Data['company_code']; if (empty($company_code)) { $res['msg'] = '操作失败,缺少参数'; $res['flag'] = false; echo json_encode($res); } $where = ''; if (isset($clzt)) { $where .= " and clzt=" . $clzt . " "; } if (!empty($start_time)) { $where .= " and timestamp>='" . $start_time . "' "; } if (!empty($end_time)) { $where .= " and timestamp<'" . $end_time . "' "; } $ResData = query_187_ytapi("select id,content,timestamp,artificial_code,clzt from person_data where company_code='" . $company_code . "' " . $where . " order by timestamp desc LIMIT 1000"); foreach ($ResData as $key => $value) { $str = str_replace('"]', '', $ResData[$key]['content']); $ResData[$key]['content'] = str_replace('["', '', $str); } vendor('PHPExcel.PHPExcel'); $objPHPExcel = new \PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '督察单编号') ->setCellValue('B1', '督察内容') ->setCellValue('C1', '处理状态') ->setCellValue('D1', '上报时间'); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(30); $objPHPExcel->getActiveSheet()->getStyle('A')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('B')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('C')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('D')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); if (!empty($ResData)) { foreach ($ResData as $key => $value) { $objPHPExcel->getActiveSheet()->setCellValue('A' . ($key + 2), ' ' . $ResData[$key]['artificial_code']); $objPHPExcel->getActiveSheet()->setCellValue('B' . ($key + 2), $ResData[$key]['content']); if ($ResData[$key]['clzt'] == 0) { $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), "未处理"); } else { $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), "已处理"); } $objPHPExcel->getActiveSheet()->setCellValue('D' . ($key + 2), $ResData[$key]['timestamp']); } } $filename = '人员督察单' . date('ymd', time()) . '.xls'; $objPHPExcel->getActiveSheet()->setTitle('人员督察单'); ob_end_clean(); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="' . $filename . '"'); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); exit; } public function getElectronicInspectorListExpor() { $Data = I(''); $clzt = $Data['clzt']; $start_time = $Data['start_time']; $end_time = $Data['end_time']; $company_code = $Data['company_code']; if (empty($company_code)) { $res['msg'] = '操作失败,缺少参数'; $res['flag'] = false; echo json_encode($res); } $where = ''; if (isset($clzt)) { $where .= " and clzt=" . $clzt . " "; } if (!empty($start_time)) { $where .= " and timestamp>='" . $start_time . "' "; } if (!empty($end_time)) { $where .= " and timestamp<'" . $end_time . "' "; } $ResData = query_187_ytapi("select id,content,timestamp,supervise_code,clzt from jingan_analysis_data where status=0 and content !='设备离线' and company_code='" . $company_code . "' " . $where . " order by timestamp desc"); foreach ($ResData as $key => $value) { $str = str_replace('"]', '', $ResData[$key]['content']); $ResData[$key]['content'] = str_replace('["', '', $str); } vendor('PHPExcel.PHPExcel'); $objPHPExcel = new \PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '督察单编号') ->setCellValue('B1', '督察内容') ->setCellValue('C1', '处理状态') ->setCellValue('D1', '上报时间'); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(30); $objPHPExcel->getActiveSheet()->getStyle('A')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('B')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('C')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('D')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); if (!empty($ResData)) { foreach ($ResData as $key => $value) { $objPHPExcel->getActiveSheet()->setCellValue('A' . ($key + 2), ' ' . $ResData[$key]['supervise_code']); $objPHPExcel->getActiveSheet()->setCellValue('B' . ($key + 2), $ResData[$key]['content']); if ($ResData[$key]['clzt'] == 0) { $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), "未处理"); } else { $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), "已处理"); } $objPHPExcel->getActiveSheet()->setCellValue('D' . ($key + 2), $ResData[$key]['timestamp']); } } $filename = '电子督察单' . date('ymd', time()) . '.xls'; $objPHPExcel->getActiveSheet()->setTitle('电子督察单'); ob_end_clean(); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="' . $filename . '"'); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); exit; } public function getDeviceListExpor() { $Data = I(''); $company_code = $Data['company_code']; $dwtype = $Data['dwtype']; $start_time = $Data['start_time']; $end_time = $Data['end_time']; $where = ''; if (!empty($start_time)) { $where .= " and a.install_time>='" . $start_time . "' "; } if (!empty($end_time)) { $where .= " and a.install_time<'" . $end_time . "' "; } if ($dwtype == 1) { $device_list = M()->query("SELECT a.id,a.owner_code,a.owner_name,a.dwtype,b.true_status,IF(b.true_status=0,'在线','离线') as device_state,a.install_time,a.unitinfo FROM sp_owner AS a JOIN sp_devices_status AS b ON a.owner_code=b.deviceid WHERE a.company='" . $company_code . "' AND a.dwtype=1 " . $where . " order by a.id DESC"); } else { $device_list = M()->query("SELECT a.id,a.owner_code,a.owner_name,a.dwtype,IF(timestampdiff(HOUR,max(`b`.`data_time`),now())<12,'在线','离线') AS device_state,a.install_time,a.unitinfo FROM sp_owner AS a left JOIN sp_owner_status AS b ON a.owner_code=b.device_id WHERE a.company='" . $company_code . "' AND a.dwtype=" . $dwtype . " " . $where . " GROUP BY a.owner_code ORDER BY a.id DESC"); } vendor('PHPExcel.PHPExcel'); $objPHPExcel = new \PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '设备编号') ->setCellValue('B1', '设备名称') ->setCellValue('C1', '单元地址') ->setCellValue('D1', '设备状态') ->setCellValue('E1', '添加时间'); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(30); $objPHPExcel->getActiveSheet()->getStyle('A')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('B')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('C')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('D')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('E')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); if (!empty($device_list)) { foreach ($device_list as $key => $value) { $objPHPExcel->getActiveSheet()->setCellValue('A' . ($key + 2), ' ' . $device_list[$key]['owner_code']); $objPHPExcel->getActiveSheet()->setCellValue('B' . ($key + 2), $device_list[$key]['owner_name']); $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), $device_list[$key]['unitinfo']); $objPHPExcel->getActiveSheet()->setCellValue('D' . ($key + 2), $device_list[$key]['device_state']); $objPHPExcel->getActiveSheet()->setCellValue('E' . ($key + 2), $device_list[$key]['install_time']); } } $filename = '设备管理列表' . date('ymd', time()) . '.xls'; $objPHPExcel->getActiveSheet()->setTitle('设备管理列表'); ob_end_clean(); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="' . $filename . '"'); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); exit; } public function getIntegratedAlarmListExpor() { $Date = I(); $company_code = $Date['company_code']; $type = $Date['type']; $processing_status = $Date['processing_status']; $start_time = $Date['start_time']; $end_time = $Date['end_time']; if (empty($company_code) && empty($type)) { $res['msg'] = '操作失败,缺少关键参数'; $res['flag'] = false; echo json_encode($res); exit(); } $where = ''; if (!empty($start_time)) { $where .= " and a.time>='" . $start_time . "' "; } if (isset($processing_status)) { $where .= " and a.clzt='" . $processing_status . "' "; } if (!empty($start_time)) { $where .= " and a.time<'" . $end_time . "' "; } switch ($type) { case '1'://报警主机 $table = 'sp_hj2017'; $types = '1'; break; case '2'://水表和液位 $table = 'sp_sj2017'; $types = '2,5'; break; case '3'://烟感 $table = 'sp_hj2017'; $types = '3'; break; case '4'://消防栓 $table = 'sp_sj2017'; $types = $type; break; case '5'://液位 $table = 'sp_sj2017'; $types = '5'; break; case '6'://RTU $table = 'sp_rtu2017'; $types = $type; break; case '7'://电气火灾 $table = 'sp_ef2017'; $types = $type; break; case '16'://视频监测 $table = 'sp_video2017'; $types = $type; break; case '17'://电梯监测 $table = 'sp_lifter2017'; $types = $type; break; case '128'://井盖 $table = 'sp_iw2017'; $types = $type; break; case '129'://地磁 $table = 'sp_dc2020'; $types = $type; break; case '130'://门禁 $table = 'sp_door2020'; $types = $type; break; case '131'://可燃气体 $table = 'sp_gas2020'; $types = $type; break; default: $res['msg'] = '操作失败,设备类型尚未定义,请联系管理员'; $res['flag'] = 3002; echo json_encode($res); exit(); break; } $alarm_list = M()->query("SELECT a.id,a.device_code,a.time,a.data1,a.data4,a.data2,a.clzt,b.company AS company_code,b.owner_name,b.unitinfo,b.dwtype as type FROM " . $table . " AS a JOIN sp_owner AS b ON a.device_code=b.owner_code WHERE b.dwtype in(" . $types . ") AND b.company='" . $company_code . "' " . $where . " ORDER BY a.id DESC"); if ($type == 2 || $type == 4) { foreach ($alarm_list as $key => $value) { switch ($alarm_list[$key]['data1']) { case 'WP1': $alarm_list[$key]['data4'] = '低压'; break; case 'WP2': $alarm_list[$key]['data4'] = '高压'; break; case 'WP3': $alarm_list[$key]['data4'] = '故障'; break; case 'WP4': $alarm_list[$key]['data4'] = '离线'; break; case 'LL1': $alarm_list[$key]['data4'] = '低水位'; break; case 'LL2': $alarm_list[$key]['data4'] = '高水位'; break; default: $alarm_list[$key]['data4'] = '其他' . $alarm_list[$key]['data1']; break; } } } else if ($type == 7) { foreach ($alarm_list as $key => $value) { if ($alarm_list[$key]['data1'] == 'EF1') { $alarm_list[$key]['data4'] = '欠压报警'; } elseif ($alarm_list[$key]['data1'] == 'EF2') { $alarm_list[$key]['data4'] = '过压报警'; } elseif ($alarm_list[$key]['data1'] == 'EF3') { $alarm_list[$key]['data4'] = '过流报警'; } elseif ($alarm_list[$key]['data1'] == 'EF4') { $alarm_list[$key]['data4'] = '漏电报警'; } elseif ($alarm_list[$key]['data1'] == 'EF5') { $alarm_list[$key]['data4'] = '回路1温度超限报警'; } elseif ($alarm_list[$key]['data1'] == 'EF6') { $alarm_list[$key]['data4'] = '回路2温度超限报警'; } elseif ($alarm_list[$key]['data1'] == 'EF7') { $alarm_list[$key]['data4'] = '回路3温度超限报警'; } elseif ($alarm_list[$key]['data1'] == 'EF8') { $alarm_list[$key]['data4'] = '回路4温度超限报警'; } elseif ($alarm_list[$key]['data1'] == 'EF9') { $alarm_list[$key]['data4'] = '离线'; } else { $alarm_list[$key]['data4'] = '其他' . $alarm_list[$key]['data1']; } } } vendor('PHPExcel.PHPExcel'); $objPHPExcel = new \PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '设备编号') ->setCellValue('B1', '设备名称') ->setCellValue('C1', '单元地址') ->setCellValue('D1', '告警状态') ->setCellValue('E1', '告警时间'); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(30); $objPHPExcel->getActiveSheet()->getStyle('A')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('B')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('C')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('D')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('E')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); if (!empty($alarm_list)) { foreach ($alarm_list as $key => $value) { $objPHPExcel->getActiveSheet()->setCellValue('A' . ($key + 2), ' ' . $alarm_list[$key]['device_code']); $objPHPExcel->getActiveSheet()->setCellValue('B' . ($key + 2), $alarm_list[$key]['owner_name']); $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), $alarm_list[$key]['unitinfo']); if ($alarm_list[$key]['clzt'] == 0) { $objPHPExcel->getActiveSheet()->setCellValue('D' . ($key + 2), "未处理"); } else if ($alarm_list[$key]['clzt'] == 1) { $objPHPExcel->getActiveSheet()->setCellValue('D' . ($key + 2), "已处理"); } $objPHPExcel->getActiveSheet()->setCellValue('E' . ($key + 2), $alarm_list[$key]['time']); } } $filename = '综合告警列表' . date('ymd', time()) . '.xls'; $objPHPExcel->getActiveSheet()->setTitle('综合告警列表'); ob_end_clean(); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="' . $filename . '"'); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); exit; } public function getDeviceConfigListExpor() { $Data = I(); $company_code = $Data['company_code']; $dwtype = $Data['dwtype']; $transmission_mode = $Data['transmission_mode']; $status = $Data['status']; $device_code_list = $Data['device_code_list']; $where = ""; if (!empty($dwtype)) { $where .= " and a.dwtype = '" . $dwtype . "' "; } if (!empty($transmission_mode)) { $where .= " and a.transfer_type = '" . $transmission_mode . "' "; } $device_list = ''; if ($status == 1) { } else { if (!empty($device_code_list)){ $device_list1 = explode(",", $device_code_list); // print_r($device_list1); // exit(); for ($i=0;$iquery("SELECT a.id,a.owner_code,a.louyu,a.company,a.owner_name,a.dwtype,IF(timestampdiff(HOUR,max(`b`.`data_time`),now())<12,'在线','离线') AS device_state,a.install_time,a.unitinfo FROM sp_owner AS a left JOIN sp_owner_status AS b ON a.owner_code=b.device_id WHERE a.dwtype!=1 and a.company='" . $company_code . "' " . $where . " GROUP BY a.owner_code ORDER BY a.install_time DESC"); $device_data2 = M()->query("SELECT a.id,a.owner_code,a.louyu,a.company,a.owner_name,a.dwtype,IF(true_status=0,'在线','离线') AS device_state,a.install_time,a.unitinfo FROM sp_owner AS a JOIN sp_devices_status AS b ON a.owner_code=b.deviceid WHERE a.dwtype=1 and a.company='" . $company_code . "' " . $where . " GROUP BY a.owner_code ORDER BY a.install_time DESC"); $device_data = array_merge($device_data1, $device_data2); array_multisort(array_column($device_data, 'install_time'), SORT_DESC, $device_data); } else { if ($dwtype == 1) { $device_data = M()->query("SELECT a.id,a.owner_code,a.louyu,a.company,a.owner_name,a.dwtype,IF(true_status=0,'在线','离线') AS device_state,a.install_time,a.unitinfo FROM sp_owner AS a JOIN sp_devices_status AS b ON a.owner_code=b.deviceid WHERE a.dwtype=1 and a.company='" . $company_code . "' " . $where . " GROUP BY a.owner_code ORDER BY a.install_time DESC"); } else { $device_data = M()->query("SELECT a.id,a.owner_code,a.louyu,a.company,a.owner_name,a.dwtype,IF(timestampdiff(HOUR,max(`b`.`data_time`),now())<12,'在线','离线') AS device_state,a.install_time,a.unitinfo FROM sp_owner AS a left JOIN sp_owner_status AS b ON a.owner_code=b.device_id WHERE a.dwtype!=1 and a.company='" . $company_code . "' " . $where . " GROUP BY a.owner_code ORDER BY a.install_time DESC"); } } vendor('PHPExcel.PHPExcel'); $objPHPExcel = new \PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '设备编号') ->setCellValue('B1', '设备名称') ->setCellValue('C1', '设备类型') ->setCellValue('D1', '单元地址') ->setCellValue('E1', '设备状态') ->setCellValue('F1', '告警时间'); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(30); $objPHPExcel->getActiveSheet()->getStyle('A')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('B')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('C')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('D')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('E')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); $objPHPExcel->getActiveSheet()->getStyle('F')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); if (!empty($device_data)) { foreach ($device_data as $key => $value) { $objPHPExcel->getActiveSheet()->setCellValue('A' . ($key + 2), ' ' . $device_data[$key]['owner_code']); $objPHPExcel->getActiveSheet()->setCellValue('B' . ($key + 2), $device_data[$key]['owner_name']); switch ($device_data[$key]['dwtype']) { case '1': $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), "用传"); break; case '2': $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), "水表"); break; case '3': $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), "烟感"); break; case '5': $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), "液位"); break; case '6': $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), "RTU"); break; case '7': $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), "电气火灾"); break; case '16': $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), "视频监测"); break; case '17': $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), "电梯监测"); break; case '128'://井盖 $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), "井盖监测"); break; case '129'://地磁 $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), "地磁监测"); break; case '130'://门禁 $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), "门禁监测"); break; case '131'://可燃气体 $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), "可燃气体"); break; default: $objPHPExcel->getActiveSheet()->setCellValue('C' . ($key + 2), "未定义"); break; } $objPHPExcel->getActiveSheet()->setCellValue('D' . ($key + 2), $device_data[$key]['unitinfo']); $objPHPExcel->getActiveSheet()->setCellValue('E' . ($key + 2), $device_data[$key]['device_state']); $objPHPExcel->getActiveSheet()->setCellValue('F' . ($key + 2), $device_data[$key]['install_time']); } } $filename = '设备列表' . date('ymd', time()) . '.xls'; $objPHPExcel->getActiveSheet()->setTitle('设备列表'); ob_end_clean(); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="' . $filename . '"'); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); exit; } public function getceshi() { $arr = ["devcie" => ['aaa', 'bbb']]; echo json_encode($arr); } }