144 lines
5.3 KiB
PHP
144 lines
5.3 KiB
PHP
<?php
|
|
namespace app\api\controller;
|
|
|
|
use PHPExcel;
|
|
use PHPExcel_Writer_Excel2007;
|
|
use think\Db;
|
|
|
|
header("Access-Control-Allow-Origin:*");
|
|
header("Access-Control-Allow-Methods:GET, POST, OPTIONS, DELETE");
|
|
header("Access-Control-Allow-Headers:DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type, Accept-Language, Origin, Accept-Encoding");
|
|
class Excel extends Common
|
|
{
|
|
public function excelDownload()
|
|
{
|
|
vendor("PHPExcel.PHPExcel.PHPExcel");
|
|
vendor("PHPExcel.PHPExcel.Writer.Excel2007");
|
|
|
|
$objPHPExcel = new PHPExcel();
|
|
$sheet = $objPHPExcel->getActiveSheet();
|
|
|
|
$sheet->setCellValue('A1', '一级')
|
|
->setCellValue('B1', '二级')
|
|
->setCellValue('C1', '三级')
|
|
->setCellValue('D1', '资产编号')
|
|
->setCellValue('E1', '资产名称')
|
|
->setCellValue('F1', '资产价格')
|
|
->setCellValue('G1', '入库时间')
|
|
->setCellValue('H1', '资产总量')
|
|
->setCellValue('I1', '申领余量');
|
|
|
|
$sql = "
|
|
SELECT
|
|
t1.asset_number,
|
|
t1.asset_name,
|
|
t1.asset_price,
|
|
t1.create_time,
|
|
t1.asset_count,
|
|
t1.asset_margin,
|
|
COALESCE(l1.type_name, '无分类') AS level1,
|
|
COALESCE(l2.type_name, '无分类') AS level2,
|
|
COALESCE(l3.type_name, '无分类') AS level3
|
|
FROM
|
|
wdq_asset_info t1
|
|
LEFT JOIN
|
|
wdq_asset_type l3 ON t1.asset_type = l3.type_id
|
|
LEFT JOIN
|
|
wdq_asset_type l2 ON l3.super_type_id = l2.type_id
|
|
LEFT JOIN
|
|
wdq_asset_type l1 ON l2.super_type_id = l1.type_id
|
|
ORDER BY
|
|
level1, level2, level3 ";
|
|
$result = Db::query($sql);
|
|
|
|
$row = 2;
|
|
foreach ($result as $item) {
|
|
$sheet
|
|
->setCellValue("A" . $row, $item['level1'])
|
|
->setCellValue("B" . $row, $item['level2'])
|
|
->setCellValue("C" . $row, $item['level3'])
|
|
->setCellValue("D" . $row, $item['asset_number'])
|
|
->setCellValue("E" . $row, $item['asset_name'])
|
|
->setCellValue("F" . $row, (string)$item['asset_price'])
|
|
->setCellValue("G" . $row, $item['create_time'])
|
|
->setCellValue("H" . $row, (string)$item['asset_count'])
|
|
->setCellValue("I" . $row, (string)$item['asset_margin']);
|
|
$row++;
|
|
}
|
|
|
|
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
|
|
header('Content-Disposition: attachment;filename="资产信息表.xlsx"');
|
|
header('Cache-Control: max-age=0');
|
|
|
|
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
|
|
$objWriter->save('php://output');
|
|
}
|
|
|
|
public function excelProjectDownload()
|
|
{
|
|
vendor("PHPExcel.PHPExcel.PHPExcel");
|
|
vendor("PHPExcel.PHPExcel.Writer.Excel2007");
|
|
|
|
$param = request()->post('data');
|
|
$param = json_decode($param, true);
|
|
|
|
if (empty($param)) {
|
|
die(json_encode(['error' => '无数据接收']));
|
|
}
|
|
|
|
$objPHPExcel = new PHPExcel();
|
|
$sheet = $objPHPExcel->getActiveSheet();
|
|
|
|
$sheet->setCellValue('A1', '项目名称')
|
|
->setCellValue('B1', '问题描述')
|
|
->setCellValue('C1', '问题等级')
|
|
->setCellValue('D1', '创建人')
|
|
->setCellValue('E1', '责任人')
|
|
->setCellValue('F1', '问题状态')
|
|
->setCellValue('G1', '创建时间')
|
|
->setCellValue('H1', '完成时间');
|
|
|
|
$row = 2;
|
|
foreach ($param as $item) {
|
|
$ret = db('project_issue_state')->where('id', $item['issue_state'])->field('desp')->find();
|
|
|
|
switch ($item['issue_level']) {
|
|
case 1:
|
|
$item['issue_level_name'] = "一般问题";
|
|
break;
|
|
case 2:
|
|
$item['issue_level_name'] = "严重问题";
|
|
break;
|
|
case 3:
|
|
$item['issue_level_name'] = "致命问题";
|
|
break;
|
|
default:
|
|
$item['issue_level_name'] = "未知问题";
|
|
break;
|
|
}
|
|
|
|
$sheet->setCellValue("A" . $row, $item['project_name'] ?? '')
|
|
->setCellValue("B" . $row, $item['issue_desp'] ?? '')
|
|
->setCellValue("C" . $row, $item['issue_level_name'] ?? '')
|
|
->setCellValue("D" . $row, $item['issue_creator_name'] ?? '')
|
|
->setCellValue("E" . $row, $item['issue_processor_name'] ?? '')
|
|
->setCellValue("F" . $row, $ret['desp'] ?? '')
|
|
->setCellValue("G" . $row, $item['create_time'] ?? '')
|
|
->setCellValue("H" . $row, $item['real_close_time'] ?? '');
|
|
$row++;
|
|
}
|
|
|
|
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
|
|
header('Content-Disposition: attachment;filename="项目问题单列表.xlsx"');
|
|
header('Cache-Control: max-age=0');
|
|
|
|
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
|
|
$objWriter->save('php://output');
|
|
exit;
|
|
}
|
|
|
|
public function excelImport()
|
|
{
|
|
|
|
}
|
|
} |