Browse Source

信息管理模式切换报告

master
wanghongjun 4 weeks ago
parent
commit
0ab3ae63de
  1. 118
      app/Exports/ModeSwitchingReportExport.php
  2. 17
      app/Http/Controllers/Admin/NoticeController.php
  3. 3
      database/seeders/AdminMenuSeeder.php
  4. 10
      resources/lang/en/exports.php
  5. 3
      resources/lang/en/menu.php
  6. 10
      resources/lang/zh-CN/exports.php
  7. 3
      resources/lang/zh-CN/menu.php
  8. 16
      resources/lang/zh-TW/exports.php
  9. 3
      resources/lang/zh-TW/menu.php
  10. 1
      routes/admin/api.php

118
app/Exports/ModeSwitchingReportExport.php

@ -0,0 +1,118 @@
<?php
namespace App\Exports;
use App\Models\AdminFloor;
use App\Models\AdminNotice;
use App\Models\ParkingCamera;
use App\Models\ParkingLicensePlate;
use App\Models\ParkingPattern;
use App\Models\ParkingPatternSpace;
use App\Models\ParkingSpace;
use App\Models\ParkingSpaceCamera;
use App\Models\ParkingSpaceType;
use Maatwebsite\Excel\Concerns\FromArray;
use Maatwebsite\Excel\Concerns\WithHeadings;
class ModeSwitchingReportExport implements FromArray, WithHeadings
{
protected string $noticeId;
protected array $msgTypeArr;
public function __construct($notice_id, $msg_type_arr)
{
$this->noticeId = $notice_id;
$this->msgTypeArr = $msg_type_arr;
}
public function array(): array
{
$notice = AdminNotice::query()->find($this->noticeId);
if (!$notice) {
return [];
}
$msg_type = $this->msgTypeArr[$notice['msg_type']] ?? '';
$pattern_id = $notice['pattern_id'];
$last_update_time = get_datetime(
'datetime',
strtotime($notice['updated_at'])
);
$pattern_name = ParkingPattern::getName($pattern_id);
$data = [];
$list = ParkingPatternSpace::query()->where(
'pattern_id',
$pattern_id
)->select()->get()->toArray();
$index = 1;
foreach ($list as $item) {
$space_id = $item['space_id'];
$space = ParkingSpace::query()->find($space_id);
$spaceCamera = ParkingSpaceCamera::query()->where('space_id', $space_id)->first();
$space_number = '';
$camera_ip = '';
$device_id = '';
$floor = '';
$license_plate = '';
$space_type = '';
if ($space) {
$space_number = $space['number'];
if ($space['floor_id']) {
$floor = AdminFloor::getName($space['floor_id']);
}
if ($space['license_plate_id']) {
$license_plate = ParkingLicensePlate::getNumber(
$space['license_plate_id']
);
}
if ($space['space_type_id']) {
$license_plate = ParkingSpaceType::getName(
$space['space_type_id']
);
}
}
if ($spaceCamera) {
$camera_id = $spaceCamera['camera_id'];
$ParkingCamera = ParkingCamera::query()->find($camera_id);
if ($ParkingCamera) {
$camera_ip = $ParkingCamera['camera_ip'];
$device_id = $ParkingCamera['number'];
}
}
$data[] = [
$index,
$pattern_name,
$msg_type,
$camera_ip,
$device_id,
$floor,
$last_update_time,
$space_number,
$license_plate,
$space_type
];
$index += 1;
}
return $data;
}
/**
* @return array
*/
public function headings(): array
{
return [
__('exports.global.index'),
__('exports.notice.current_mode'),
__('exports.notice.msg_type'),
__('exports.notice.camera_ip'),
__('exports.notice.device_id'),
__('exports.notice.floor'),
__('exports.notice.last_update_time'),
__('exports.notice.space_number'),
__('exports.notice.license_plate'),
__('exports.notice.space_type')
];
}
}

17
app/Http/Controllers/Admin/NoticeController.php

@ -3,6 +3,7 @@
namespace App\Http\Controllers\Admin;
use App\Exports\AdminNoticeExport;
use App\Exports\ModeSwitchingReportExport;
use App\Models\AdminConfigs;
use App\Models\AdminNotice;
use App\Services\AdminNoticeService;
@ -231,6 +232,22 @@ class NoticeController extends BaseController
);
}
/**
* 模式切换报告
* @return BinaryFileResponse
*/
public function modeSwitchingReport(Request $request): BinaryFileResponse
{
$id = $request->get('id', '');
return Excel::download(
new ModeSwitchingReportExport($id, AdminNoticeService::getMsgType()),
set_space_underline(__('exports.notice.mode_switching_report'))
. get_datetime('date_')
. '.xlsx'
);
}
public function message(): JsonResponse
{
try {

3
database/seeders/AdminMenuSeeder.php

@ -253,7 +253,8 @@ class AdminMenuSeeder extends Seeder
'read_only' => 'notice.index',
'view_details' => 'notice.show',
'export' => 'notice.export',
'alarm_settings' => 'notice.setting'
'alarm_settings' => 'notice.setting',
'mode_export' => 'notice.modeSwitchingReport'
]
],
'alarm_information' => [

10
resources/lang/en/exports.php

@ -71,8 +71,14 @@ return [
'msg_type' => 'Information Content',
'space_number' => 'Parking Number',
'license_plate' => 'License Plate Number',
'camera_ip' => 'IP',
'msg_content' => 'Information Content Details'
'camera_ip' => 'Camera IP',
'msg_content' => 'Information Details',
'current_mode' => 'Current Mode',
'device_id' => 'Device Number',
'floor' => 'Floor',
'last_update_time' => 'Last Update Time',
'space_type' => 'Parking Space Type',
'mode_switching_report' => 'Mode Switching Report'
],
'parking_behavior' => [
'list' => 'Parking Behavior',

3
resources/lang/en/menu.php

@ -104,5 +104,6 @@ return [
'save' => 'save',
'update_attr' => 'Modify parking space type',
'update_type' => 'Modify parking space type',
'download_history' => 'Download History'
'download_history' => 'Download History',
'mode_export' => 'Mode Switching Report'
];

10
resources/lang/zh-CN/exports.php

@ -71,8 +71,14 @@ return [
'msg_type' => '信息内容',
'space_number' => '车位号码',
'license_plate' => '车牌号码',
'camera_ip' => 'IP',
'msg_content' => '信息内容详情'
'camera_ip' => '相机IP',
'msg_content' => '信息内容详情',
'current_mode' => '当前模式',
'device_id' => '设备编号',
'floor' => '楼层',
'last_update_time' => '最后更新时间',
'space_type' => '车位类型',
'mode_switching_report' => '模式切换报告'
],
'parking_behavior' => [
'list' => '停车行为',

3
resources/lang/zh-CN/menu.php

@ -104,5 +104,6 @@ return [
'save' => '保存',
'update_attr' => '修改车位属性',
'update_type' => '修改车位类型',
'download_history' => '下载记录'
'download_history' => '下载记录',
'mode_export' => '模式切换报告'
];

16
resources/lang/zh-TW/exports.php

@ -66,13 +66,19 @@ return [
],
'notice' => [
'list' => '警報通知',
'alarm_time' => '資訊時間',
'alarm_type' => '資訊類型',
'msg_type' => '資訊內容',
'alarm_time' => '信息時間',
'alarm_type' => '信息類型',
'msg_type' => '信息內容',
'space_number' => '車位號碼',
'license_plate' => '車牌號碼',
'camera_ip' => 'IP',
'msg_content' => '資訊內容詳情'
'camera_ip' => '相機IP',
'msg_content' => '信息內容詳情',
'current_mode' => '當前模式',
'device_id' => '設備編號',
'floor' => '樓層',
'last_update_time' => '最後更新時間',
'space_type' => '車位類型',
'mode_switching_report' => '模式切換報告'
],
'parking_behavior' => [
'list' => '停車行為',

3
resources/lang/zh-TW/menu.php

@ -104,5 +104,6 @@ return [
'save' => '保存',
'update_attr' => '修改車位屬性',
'update_type' => '修改車位類型',
'download_history' => '下載記錄'
'download_history' => '下載記錄',
'mode_export' => '模式切換報告'
];

1
routes/admin/api.php

@ -226,6 +226,7 @@ Route::group(['prefix' => 'admin'], function () {
Route::get('/notice/show/{id}', [NoticeController::class, 'show']);
Route::get('/notice/export', [NoticeController::class, 'export']);
Route::get('/notice/rule', [NoticeController::class, 'rule']);
Route::get('/notice/modeSwitchingReport', [NoticeController::class, 'modeSwitchingReport']);
// 告警信息管理
Route::get('/alarmInformation', [ParkingAlarmInformationController::class, 'index']);
Route::get('/alarmInformation/search', [ParkingAlarmInformationController::class, 'search']);

Loading…
Cancel
Save