添加设备预警数统计

dev
vine_liutk 2022-11-09 16:16:54 +08:00
parent 7a574df4fc
commit b7ab24d0dc
4 changed files with 25 additions and 0 deletions

View File

@ -7,6 +7,7 @@ use App\Http\Resources\DeviceWarningResource;
use App\Models\DeviceWarning; use App\Models\DeviceWarning;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Peidikeji\Setting\Models\Setting; use Peidikeji\Setting\Models\Setting;
use Illuminate\Support\Facades\DB;
class DeviceWarningController extends Controller class DeviceWarningController extends Controller
{ {
@ -66,4 +67,19 @@ class DeviceWarningController extends Controller
return $this->json(DeviceWarningResource::collection($list)); return $this->json(DeviceWarningResource::collection($list));
} }
/**
* 获取预警数量
*/
public function warningLogNum(Request $request){
$list = DeviceWarning::filter($request->input())
->select(DB::raw('lv, count(1) as num'))
->groupBy('lv')
->get()
->pluck('num', 'lv')->toArray();
for($i = 1; $i <= 4; $i++) {
$data[$i] = $list[$i] ?? 0;
}
return $this->json($data);
}
} }

View File

@ -11,6 +11,10 @@ class DeviceWarningFilter extends ModelFilter
return $this->where('base_id', $base); return $this->where('base_id', $base);
} }
public function device($device){
return $this->where('device_id', $device);
}
public function status($status) public function status($status)
{ {
return $this->where('status', $status); return $this->where('status', $status);

View File

@ -14,4 +14,8 @@ class DeviceWarning extends Model
'device_id', 'base_id', 'lv', 'content', 'status', 'remarks', 'device_id', 'base_id', 'lv', 'content', 'status', 'remarks',
'linkos_device_id', 'linkos_reported_at', 'linkos_device_id', 'linkos_reported_at',
]; ];
public function base(){
return $this->belongsTo(AgriculturalBase::class, 'base_id');
}
} }

View File

@ -52,6 +52,7 @@ Route::group(['middleware' => 'auth:sanctum'], function () {
Route::get('device-warning-rules', [DeviceWarningController::class, 'rules']); //预警规则 Route::get('device-warning-rules', [DeviceWarningController::class, 'rules']); //预警规则
Route::put('device-warning-rules', [DeviceWarningController::class, 'updateRule']); //预警规则 Route::put('device-warning-rules', [DeviceWarningController::class, 'updateRule']); //预警规则
Route::get('device-warning-logs', [DeviceWarningController::class, 'warningLog']); Route::get('device-warning-logs', [DeviceWarningController::class, 'warningLog']);
Route::get('device-warning-nums', [DeviceWarningController::class, 'warningLogNum']);
//友情链接 //友情链接
Route::apiResource('friend-links', FriendLinkController::class)->only(['index'])->names('friend_links'); Route::apiResource('friend-links', FriendLinkController::class)->only(['index'])->names('friend_links');