diff --git a/app/Admin/Controllers/AtomizingLogController.php b/app/Admin/Controllers/AtomizingLogController.php new file mode 100644 index 0000000..8d1d92a --- /dev/null +++ b/app/Admin/Controllers/AtomizingLogController.php @@ -0,0 +1,12 @@ +input('region_id', 0); $config = null; $statusStr = '未知'; + $device = null; if($regionId){ $region = Region::find($regionId); if($region){ @@ -429,21 +430,19 @@ class DeviceController extends AdminController amisMake()->Wrapper()->sm(6)->body([ amisMake()->Panel()->title('开关记录') ->body([ - \amisMake()->Table()->title('') - ->data([ - 'items' => [ - [ - 'name'=> '定时喷灌', - 'name1'=> '关闭', - 'time1'=> '2023-03-21 10:00:00', - ] - ] - ]) - ->columns([ - amisMake()->TableColumn()->name('name')->label('触发条件'), - amisMake()->TableColumn()->name('name1')->label('状态'), - amisMake()->TableColumn()->name('time1')->label('执行时间'), - ]) + \amisMake()->CRUDTable() + ->api(admin_url('atomizing-logs').'?_action=getData&device_id='.($device?->id ?? 0)) + ->title('') + ->columns([ + amisMake()->TableColumn()->name('type')->type('mapping')->map([ + "0"=>"未知", + "1"=>"开启", + "2"=>"关闭", + "*"=> '其他:${type}' + ])->label('动作'), + amisMake()->TableColumn()->name('content')->label('描述内容'), + amisMake()->TableColumn()->name('created_at')->type('datetime')->label('操作时间'), + ]) ]) ]), ]); diff --git a/app/Admin/routes.php b/app/Admin/routes.php index d320bf8..a148d18 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -100,4 +100,7 @@ Route::group([ $router->post('crop-plant-detail', '\App\Admin\Controllers\CropPlantController@plantDetail'); $router->resource('system/settings', \App\Admin\Controllers\SettingController::class); + + //喷雾自动开启/关闭日志 + $router->resource('atomizing-logs', \App\Admin\Controllers\AtomizingLogController::class)->only(['index']); }); diff --git a/app/Console/Commands/MqttPenwuPlan.php b/app/Console/Commands/MqttPenwuPlan.php index 028b3bd..14e1c3a 100644 --- a/app/Console/Commands/MqttPenwuPlan.php +++ b/app/Console/Commands/MqttPenwuPlan.php @@ -3,8 +3,7 @@ namespace App\Console\Commands; use App\Models\Device; -use App\Models\MonitorMode; -use App\Models\RegionMonitor; +use App\Models\AtomizingLog; use App\Services\MqttService; use Illuminate\Console\Command; @@ -39,7 +38,7 @@ class MqttPenwuPlan extends Command //获取所有喷雾监控点,对应的自动喷雾配置 $deviceList = Device::where('type', Device::TYPE_ATOMIZING)->get(); $time = now()->format('H:i');//获取当前时间(时,分) - // $time = '01:00'; + $time = '01:00'; foreach($deviceList as $device){ $_config = $device->extends ?? []; if($_config && $_config['is_enable']){//判断该配置是否开启 @@ -53,6 +52,12 @@ class MqttPenwuPlan extends Command ||($item['value'] == 'b' && $status['yv2'] == 0) ){ $service->open($item['value'], $item['input']); + //记录触发日志 + AtomizingLog::create([ + 'device_id' => $device->id, + 'type' => 1, + 'content' => '自动开启【区域'.strtoupper($item['value']).'】,喷雾量'.$item['input'].'%', + ]); } }elseif($time == $end){ if($status['is_running']){ @@ -61,6 +66,12 @@ class MqttPenwuPlan extends Command ||($item['value'] == 'b' && $status['yv2'] == 1) ){ $service->close(); + //记录触发日志 + AtomizingLog::create([ + 'device_id' => $device->id, + 'type' => 2, + 'content' => '自动关闭【区域'.strtoupper($item['value']).'】', + ]); } } } diff --git a/app/Filters/Admin/AtomizingLogFilter.php b/app/Filters/Admin/AtomizingLogFilter.php new file mode 100644 index 0000000..bb11c87 --- /dev/null +++ b/app/Filters/Admin/AtomizingLogFilter.php @@ -0,0 +1,16 @@ +where('device_id', $deviceId); + } +} diff --git a/app/Models/AtomizingLog.php b/app/Models/AtomizingLog.php new file mode 100644 index 0000000..b2ac5cf --- /dev/null +++ b/app/Models/AtomizingLog.php @@ -0,0 +1,14 @@ +id(); + $table->unsignedBigInteger('device_id'); + $table->unsignedTinyInteger('type')->default(0)->comment('0未知;1开启,2关闭'); + $table->string('content'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('atomizing_logs'); + } +};