Files
oms/back/application/api/controller/Excel.php

144 lines
5.3 KiB
PHP
Raw Normal View History

2026-03-10 18:45:36 +08:00
<?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()
{
}
}