LibraryModel = new Library(); } /** 风险等级 */ private function getLevel($id){ $arr = ['','重大风险','较大风险','一般风险','较小风险']; return $arr[$id]; } /** 首页/列表 */ public function index(Request $request){ if ($request->isAjax()) { $param = $request->all(); $limit = $param['limit']; $pidm = isset($param['pidm'])?$param['pidm']:[]; $where = []; if(isset($param['projectname']) && !empty($param['projectname'])){ if(count($pidm)>=3) { $name = (new IdentificationController())->getOnename($param['projectname']); $where[] = ['activity','=',$name]; }else{ $where['name'] = $param['projectname']; } } if(isset($param['level']) && !empty($param['level'])){ $where['level'] = $param['level']; } if(isset($param['project_id']) && !empty($param['project_id'])){ $where['project_id'] = $param['project_id']; } $list = $this->LibraryModel->getPaginateList($where, ['*'], ['id' => 'asc'], [], $limit); $data['belist'] = (new IdentificationController())->getListout(); $data['orlist'] = $this->getListorg(); foreach ($list['data'] as $key => $item) { $list['data'][$key]['levelname'] = $this->getLevel($item['level']); $list['data'][$key]['projectname'] = (new IdentificationController())->getOnename($item['name']); // $list['data'][$key]['projectname'] = "无"; } $data['list'] = $list; return sparKSuccess(dataReturn(0, 'success', $data)); } return view('risk/library/index'); } /** 添加 */ public function store(Request $request){ if ($request->isAjaxPost()) { $param = $request->post(); $param['create_time'] = now(); unset($param['pname']); $res = $this->LibraryModel->insertOne($param); return sparkSuccess(dataReturn(0, '添加成功')); } return sparkSuccess(dataReturn(0, 'error')); } /** 编辑 */ public function update(Request $request){ if ($request->isAjaxPost()) { $param = $request->post(); $param['update_time'] = now(); unset($param['create_time']); $res = $this->LibraryModel->updateById($param,$param['id']); return sparkSuccess(dataReturn(0, '编辑成功')); } return sparkSuccess(dataReturn(0, 'error')); } /** 查询 */ public function show(Request $request){ $id = $request->get('id'); $row = $this->LibraryModel->getInfoById($id); return sparKSuccess(dataReturn(0, 'success', $row)); } /** 删除 */ public function destroy(Request $request){ $id = $request->get('id'); $row = $this->LibraryModel->delById($id); return sparKSuccess(dataReturn(0, '删除成功')); } /** 导出 */ public function exportFile(Request $request) { $ids = $request->get('ids'); try{ $tableName = $this->LibraryModel->getTable();//获取表名 $prefix = getenv('DB_PREFIX');//获取表前缀 $tables = Db::select("SHOW FULL COLUMNS FROM `{$prefix}{$tableName}`");//查询表结构 $exportField = []; /*foreach ($tables as $key=>$value){ $exportField[] = $value->Comment?:$value->Field;//处理表结构 }*/ $exportName = "风险标准库".time(); $exportField = ['辨识范围(工程名称)','作业单元(工序)','潜在危险因素','可能导致的结果','L','C','D','风险等级','防控措施','单位']; $field = ['name','activity','factor','resultant','lib_l','lib_c','lib_d','level','method','unit']; if(isset($ids)){ $data = $this->LibraryModel->whereIn('id', $ids)->get($field)->toArray(); }else{ $data = $this->LibraryModel->get($field)->toArray(); } if(count($data)>0){ foreach ($data as $k=>$v){ $data[$k]['level'] = $this->getLevel($v['level']); $data[$k]['name'] = "无";//(new BasicdataEngineeringController())->getOnename($v['name']); //$res = (new AdminOrg())->findOne([['id','=',$v['unit']]],'name'); $data[$k]['unit'] = "无";//$res['data']['name']; } } $path = $this->excelExport($exportName,$exportField,$data); return sparKSuccess(dataReturn(0, 'success', $path)); }catch (\Exception $e){ return sparKSuccess(dataReturn(0, 'error', $e->getMessage())); } } private function excelExport($title="",$headArr = [], $data = [],$fileName = '') { $fileName .= "_" . date("Y-m-d", time()); $spreadsheet = new Spreadsheet(); $objPHPExcel = $spreadsheet->getActiveSheet(); $objPHPExcel->setTitle($title); $objPHPExcel->setCellValueByColumnAndRow(1, 1, $title); // 设置表头 $key = ord("A"); $objPHPExcel->mergeCells('A1:J1'); $objPHPExcel->setCellValue('A1', '风险辨识与评估'); $styleArray = [ 'alignment' => [ 'horizontal' => Alignment::HORIZONTAL_CENTER, //水平居中 'vertical' => Alignment::VERTICAL_CENTER, //垂直居中 ], ]; $objPHPExcel->getStyle('A1')->applyFromArray($styleArray); $objPHPExcel->getDefaultColumnDimension()->setWidth(16); //$objPHPExcel->getDefaultColumnDimension()->setAutoSize(true); $objPHPExcel->getRowDimension('1')->setRowHeight(30); $objPHPExcel->getColumnDimension('A')->setWidth(21); $objPHPExcel->getColumnDimension('B')->setWidth(21); $objPHPExcel->getColumnDimension('C')->setWidth(21); $objPHPExcel->getColumnDimension('D')->setWidth(21); $objPHPExcel->getStyle('A1')->getFont()->setBold(true)->setName('黑体')->setSize(16); foreach ($headArr as $v) { $colum = chr($key); $objPHPExcel->setCellValue($colum . '2', $v); $objPHPExcel->getStyle($colum . '2')->applyFromArray($styleArray)->getFill() ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID) ->getStartColor() ->setARGB('aaaaaa'); $key += 1; } $column = 3; foreach ($data as $key => $rows) { // 行写入 $span = ord("A"); foreach ($rows as $keyName => $value) { // 列写入 $objPHPExcel->setCellValue(chr($span) . $column, $value); $objPHPExcel->getStyle(chr($span) . $column)->applyFromArray($styleArray); $span++; } $column++; } $writer = new Xlsx($spreadsheet); $path = public_path().'/excel/'.$title.'.xlsx'; $path2 = '/excel/'.$title.'.xlsx'; $writer->save($path); $url = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http"; $url .= "://" . request()->host(); $res['url'] = $url.$path2; $res['name'] = $title; //删除临时的sheet $spreadsheet->disconnectWorksheets(); unset($spreadsheet); return $res; } /** 单位无分页列表 */ public function getListorg(){ $where = [['status','=',1]]; $res = (new AdminOrg())->getAllList($where); $list = []; foreach ($res as $k=>$v){ $list[$k]['value'] = $v['id']; $list[$k]['label'] = $v['name']; // $list[$k]['label'] = (new EngineeringController())->getOnename($v['name']); $list[$k]['pid'] = $v['pid']; $list[$k]['id'] = $v['id']; } return $this->getPidList($list); } private function getPidList($list){ $packData = []; $tree = []; foreach ($list as $data) { $packData[$data['id']] = $data; } foreach ($packData as $key => $val) { if ($val['pid'] == 0) { $tree[] = &$packData[$key]; } else { $packData[$val['pid']]['children'][] = &$packData[$key]; } } return $tree; } /** 通用列表 */ public function getlist(Request $request){ $param = $request->all(); $name = $param['name']; $nameAry = isset($param['nameAry'])?$param['nameAry']:[]; $activity = $param['activity']; $factor = $param['factor']; $level = $param['level']; $limit = $param['limit']; $where = []; if($name) { if(count($nameAry) >= 3) { $name = (new IdentificationController())->getOnename($name); $where[] = ['activity','=',$name]; }else{ $where[] = ['name','=',$name]; } } if($activity) { $where[] = ['activity','like','%'.$activity.'%']; } if($factor) { $where[] = ['factor','like','%'.$factor.'%']; } if($level) { $where[] = ['level','=',$level]; } $list = $this->LibraryModel->getPaginateList($where, ['*'], ['id' => 'asc'], [], $limit); foreach ($list['data'] as $key => $item) { $list['data'][$key]['leader'] = ''; $list['data'][$key]['levelname'] = $this->getLevel($item['level']); $list['data'][$key]['projectname'] = (new IdentificationController())->getOnename($item['name']); } $list['belist'] = (new IdentificationController())->getListout(); return sparKSuccess(dataReturn(0, 'success', $list)); } }