no message

This commit is contained in:
kuaifan 2022-12-12 09:27:33 +08:00
parent 8b406c594b
commit 3e149ed3c2
2 changed files with 40 additions and 14 deletions

View File

@ -20,6 +20,7 @@ use App\Models\User;
use App\Models\WebSocketDialog; use App\Models\WebSocketDialog;
use App\Module\Base; use App\Module\Base;
use App\Module\BillExport; use App\Module\BillExport;
use App\Module\BillMultipleExport;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Madzipper; use Madzipper;
@ -1067,7 +1068,21 @@ class ProjectController extends AbstractController
} elseif ($task->complete_at) { } elseif ($task->complete_at) {
$statusText = '已完成'; $statusText = '已完成';
} }
$datas[] = [ if (!isset($datas[$task->ownerid])) {
$datas[$task->ownerid] = [
'index' => 1,
'nickname' => Base::filterEmoji(User::userid2nickname($task->ownerid)),
'styles' => ["A1:P1" => ["font" => ["bold" => true]]],
'data' => [],
];
}
$datas[$task->ownerid]['index']++;
if ($statusText === '未完成') {
$datas[$task->ownerid]['styles']["P{$datas[$task->ownerid]['index']}"] = ["font" => ["color" => ["rgb" => "ff0000"]]]; // 未完成
} elseif ($statusText === '已完成' && $task->end_at && Carbon::parse($task->complete_at)->gt($task->end_at)) {
$datas[$task->ownerid]['styles']["P{$datas[$task->ownerid]['index']}"] = ["font" => ["color" => ["rgb" => "436FF6"]]]; // 已完成超期
}
$datas[$task->ownerid]['data'][] = [
$task->id, $task->id,
$task->parent_id ?: '-', $task->parent_id ?: '-',
Base::filterEmoji($task->project?->name) ?: '-', Base::filterEmoji($task->project?->name) ?: '-',
@ -1087,6 +1102,19 @@ class ProjectController extends AbstractController
]; ];
} }
}); });
if (empty($datas)) {
return Base::retError('没有任何数据');
}
//
$sheets = [];
foreach ($userid as $ownerid) {
$data = $datas[$ownerid] ?? [
'nickname' => Base::filterEmoji(User::userid2nickname($ownerid)),
'styles' => ["A1:P1" => ["font" => ["bold" => true]]],
'data' => [],
];
$sheets[] = BillExport::create()->setTitle($data['nickname'] ?: $ownerid)->setHeadings($headings)->setData($data['data'])->setStyles($data['styles']);
}
// //
$fileName = User::userid2nickname($userid[0]) ?: $userid[0]; $fileName = User::userid2nickname($userid[0]) ?: $userid[0];
if (count($userid) > 1) { if (count($userid) > 1) {
@ -1094,7 +1122,8 @@ class ProjectController extends AbstractController
} }
$fileName .= '任务统计_' . Base::time() . '.xls'; $fileName .= '任务统计_' . Base::time() . '.xls';
$filePath = "temp/task/export/" . date("Ym", Base::time()); $filePath = "temp/task/export/" . date("Ym", Base::time());
$res = BillExport::create()->setHeadings($headings)->setData($datas)->store($filePath . "/" . $fileName); $export = new BillMultipleExport($sheets);
$res = $export->store($filePath . "/" . $fileName);
if ($res != 1) { if ($res != 1) {
return Base::retError('导出失败,' . $fileName . ''); return Base::retError('导出失败,' . $fileName . '');
} }

View File

@ -849,9 +849,7 @@ class SystemController extends AbstractController
$secondEnd = strtotime("2000-01-01 {$time[1]}") - strtotime("2000-01-01 00:00:00"); $secondEnd = strtotime("2000-01-01 {$time[1]}") - strtotime("2000-01-01 00:00:00");
// //
$headings = []; $headings = [];
$headings[] = '成员ID'; $headings[] = '签到人';
$headings[] = '成员名称';
$headings[] = '成员邮箱';
$headings[] = '签到日期'; $headings[] = '签到日期';
$headings[] = '班次时间'; $headings[] = '班次时间';
$headings[] = '首次签到时间'; $headings[] = '首次签到时间';
@ -867,7 +865,8 @@ class SystemController extends AbstractController
foreach ($users as $user) { foreach ($users as $user) {
$records = UserCheckinRecord::whereUserid($user->userid)->whereBetween("created_at", [$startD, $endD])->orderBy('id')->get(); $records = UserCheckinRecord::whereUserid($user->userid)->whereBetween("created_at", [$startD, $endD])->orderBy('id')->get();
// //
$styles = ["A1:I1" => ["font" => ["bold" => true]]]; $nickname = Base::filterEmoji($user->nickname);
$styles = ["A1:G1" => ["font" => ["bold" => true]]];
$datas = []; $datas = [];
$startT = $startD->timestamp; $startT = $startD->timestamp;
$endT = $endD->timestamp; $endT = $endD->timestamp;
@ -888,25 +887,23 @@ class SystemController extends AbstractController
$lastResult = "正常"; $lastResult = "正常";
if (empty($firstTimestamp)) { if (empty($firstTimestamp)) {
$firstResult = "缺卡"; $firstResult = "缺卡";
$styles["G{$index}"] = ["font" => ["color" => ["rgb" => "ff0000"]]]; $styles["E{$index}"] = ["font" => ["color" => ["rgb" => "ff0000"]]];
} elseif ($firstTimestamp > $startT + $secondStart) { } elseif ($firstTimestamp > $startT + $secondStart) {
$firstResult = "迟到"; $firstResult = "迟到";
$styles["G{$index}"] = ["font" => ["color" => ["rgb" => "436FF6"]]]; $styles["E{$index}"] = ["font" => ["color" => ["rgb" => "436FF6"]]];
} }
if (empty($lastTimestamp)) { if (empty($lastTimestamp)) {
$lastResult = "缺卡"; $lastResult = "缺卡";
$styles["I{$index}"] = ["font" => ["color" => ["rgb" => "ff0000"]]]; $styles["G{$index}"] = ["font" => ["color" => ["rgb" => "ff0000"]]];
} elseif ($lastTimestamp < $startT + $secondEnd) { } elseif ($lastTimestamp < $startT + $secondEnd) {
$lastResult = "早退"; $lastResult = "早退";
$styles["I{$index}"] = ["font" => ["color" => ["rgb" => "436FF6"]]]; $styles["G{$index}"] = ["font" => ["color" => ["rgb" => "436FF6"]]];
} }
} }
$firstTimestamp = $firstTimestamp ? date("H:i", $firstTimestamp) : "-"; $firstTimestamp = $firstTimestamp ? date("H:i", $firstTimestamp) : "-";
$lastTimestamp = $lastTimestamp ? date("H:i", $lastTimestamp) : "-"; $lastTimestamp = $lastTimestamp ? date("H:i", $lastTimestamp) : "-";
$datas[] = [ $datas[] = [
$user->userid, "{$nickname} (ID: {$user->userid})",
$user->nickname,
$user->email,
date("Y-m-d", $startT), date("Y-m-d", $startT),
implode("-", $time), implode("-", $time),
$firstTimestamp, $firstTimestamp,
@ -916,7 +913,7 @@ class SystemController extends AbstractController
]; ];
$startT += 86400; $startT += 86400;
} }
$sheets[] = BillExport::create()->setTitle($user->nickname)->setHeadings($headings)->setData($datas)->setStyles($styles); $sheets[] = BillExport::create()->setTitle($nickname ?: $user->userid)->setHeadings($headings)->setData($datas)->setStyles($styles);
} }
if (empty($sheets)) { if (empty($sheets)) {
return Base::retError('没有任何数据'); return Base::retError('没有任何数据');