From de943fda5a70efb50ee8f4c59d5e2cb063821abc Mon Sep 17 00:00:00 2001
From: vine_liutk <961510893@qq.com>
Date: Tue, 18 Jul 2023 18:22:35 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=96=B7=E9=9B=BE=E8=AE=BE?=
=?UTF-8?q?=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/AtomizingLogController.php | 12 +++++++
app/Admin/Controllers/DeviceController.php | 29 ++++++++--------
app/Admin/routes.php | 3 ++
app/Console/Commands/MqttPenwuPlan.php | 17 ++++++++--
app/Filters/Admin/AtomizingLogFilter.php | 16 +++++++++
app/Models/AtomizingLog.php | 14 ++++++++
app/Services/Admin/AtomizingLogService.php | 19 +++++++++++
..._17_121026_create_atomizing_logs_table.php | 34 +++++++++++++++++++
8 files changed, 126 insertions(+), 18 deletions(-)
create mode 100644 app/Admin/Controllers/AtomizingLogController.php
create mode 100644 app/Filters/Admin/AtomizingLogFilter.php
create mode 100644 app/Models/AtomizingLog.php
create mode 100644 app/Services/Admin/AtomizingLogService.php
create mode 100644 database/migrations/2023_07_17_121026_create_atomizing_logs_table.php
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');
+ }
+};