chemex/app/Services/CheckService.php
2022-06-24 13:47:11 +08:00

79 lines
2.9 KiB
PHP
Executable File

<?php
namespace App\Services;
use App\Models\CheckRecord;
use App\Models\CheckTrack;
use App\Support\Data;
use Dcat\Admin\Admin;
use TCPDF;
class CheckService
{
/**
* 报告报告.
* @param $check_id
* @return string
*/
public static function report($check_id): string
{
$check_record = CheckRecord::where('id', $check_id)->first();
if (empty($check_record)) {
return '未找到此盘点任务!';
}
$user = Admin::user();
$pdf = new TCPDF();
$pdf->SetCreator($user->name);
$pdf->SetAuthor($user->name);
$pdf->SetTitle('咖啡壶 Chemex');
$pdf->SetSubject('盘点报告');
// 设置页眉和页脚信息
// $pdf->SetHeaderData(null, 30, 'LanRenKaiFA.com', $user->name, [0, 64, 255], [0, 64, 128]);
// $pdf->setFooterData([0, 64, 0], [0, 64, 128]);
// 设置页眉和页脚字体
$pdf->setHeaderFont(['stsongstdlight', '', '10']);
$pdf->setFooterFont(['helvetica', '', '8']);
// 设置默认等宽字体
$pdf->SetDefaultMonospacedFont('courier');
// 设置间距
$pdf->SetMargins(15, 15, 15); //页面间隔
$pdf->SetHeaderMargin(5); //页眉top间隔
$pdf->SetFooterMargin(10); //页脚bottom间隔
// 设置分页
$pdf->SetAutoPageBreak(true, 25);
// set default font subsetting mode
$pdf->setFontSubsetting(true);
//设置字体 stsongstdlight支持中文
$pdf->SetFont('stsongstdlight', '', 14);
//第一页
$pdf->AddPage();
$pdf->writeHTML('<div style="text-align: center"><h1>' . Data::items()[$check_record->check_item] . '盘点报告</h1></div>');
$pdf->writeHTML('<p style="text-align: center">盘点任务创建时间:' . $check_record->created_at . '</p>');
$pdf->writeHTML('<p style="text-align: center">盘点报告生成时间:' . date('yy-m-d H:m:i') . '</p>');
$pdf->Ln(5); //换行符
$pdf->writeHTML('<div style="text-align: center">盘点状态:' . Data::checkRecordStatus()[$check_record->status] . '</div>');
$pdf->Ln(5); //换行符
$all_counts = CheckTrack::where('check_id', $check_id)->count();
$yes_counts = CheckTrack::where('check_id', $check_id)->where('status', 1)->count();
$no_counts = CheckTrack::where('check_id', $check_id)->where('status', 2)->count();
$left_counts = $all_counts - $yes_counts - $no_counts;
$pdf->writeHTML('<div style="text-align: center">条目总数:' . $all_counts . '</div>');
$pdf->writeHTML('<div style="text-align: center">盘盈总数:' . $yes_counts . '</div>');
$pdf->writeHTML('<div style="text-align: center">盘亏总数:' . $no_counts . '</div>');
$pdf->writeHTML('<div style="text-align: center">未盘总数:' . $left_counts . '</div>');
//输出PDF
return $pdf->Output('t.pdf', 'D'); //I输出、D下载
}
}