# داشبورد شاخص‌های نگهداری و تعمیرات (MTBF Dashboard)

## 📋 معرفی

این داشبورد پیشرفته برای نمایش شاخص‌های کلیدی نگهداری و تعمیرات طراحی شده است و شامل موارد زیر می‌باشد:

- **MTBF** (Mean Time Between Failures) - میانگین زمان بین خرابی‌ها
- **MTTR** (Mean Time To Repair) - میانگین زمان تعمیر
- **درصد دسترس‌پذیری تجهیزات**
- **آمار خرابی‌ها و دسته‌بندی آن‌ها**
- **برنامه نگهداری و کارایی**

## 🚀 نحوه استفاده

### 1. دکمه شاخص‌های تعمیر نگهداری

در داشبورد اصلی ماشین‌آلات معدنی، دکمه جدیدی با عنوان **"شاخص‌های تعمیر نگهداری"** اضافه شده است:

- مکان: کنار دکمه‌های "تاریخچه و نمودارها" و "خروجی اکسل"
- رنگ: قرمز (با آیکون ابزار 🔧)
- عملکرد: باز کردن modal داشبورد شاخص‌ها

### 2. داشبورد شاخص‌ها

با کلیک روی دکمه، یک پنجره مودال باز می‌شود که شامل:

#### 📊 کارت‌های شاخص‌ها:

1. **MTBF (میانگین زمان بین خرابی‌ها)**
   - مقدار فعلی، هدف تعیین شده
   - نمودار روند 5 روز اخیر
   - وضعیت عملکرد (عالی/خوب/متوسط)

2. **MTTR (میانگین زمان تعمیر)**
   - مقدار فعلی، هدف تعیین شده
   - نمودار روند (روند نزولی مطلوب است)
   - مقایسه با استاندارد

3. **دسترس‌پذیری تجهیزات**
   - درصد کلی دسترس‌پذیری
   - نوار پیشرفت رنگی
   - مقایسه با هدف تعیین شده

4. **آمار خرابی‌ها**
   - تعداد کل، ماهانه، روزانه
   - نمودار دایره‌ای دسته‌بندی خرابی‌ها
   - تحلیل روند

5. **برنامه نگهداری**
   - آمار برنامه‌ریزی شده، انجام شده، آینده، عقب‌افتاده
   - متر کارایی تیم نگهداری
   - درصد تکمیل برنامه

6. **جدول جزئیات عملکرد**
   - نمایش کامل تمام شاخص‌ها
   - مقایسه با اهداف
   - ارزیابی عملکرد

## 🛠️ نصب و راه‌اندازی

### فایل‌های مورد نیاز:

1. `mining_dashboard_enhanced.php` - داشبورد اصلی (به‌روزرسانی شده)
2. `get_maintenance_data.php` - API دریافت داده‌های شاخص‌ها
3. `maintenance_dashboard.css` - استایل‌های داشبورد شاخص‌ها
4. `maintenance_tables.sql` - ساختار پایگاه داده

### مراحل نصب:

#### 1. به‌روزرسانی فایل اصلی:
فایل `mining_dashboard_enhanced.php` شما به‌صورت خودکار شامل:
- دکمه جدید شاخص‌های تعمیر نگهداری
- کد جاوااسکریپت مدیریت modal
- لینک فایل CSS

#### 2. ایجاد فایل API:
فایل `get_maintenance_data.php` را در همان پوشه قرار دهید.

#### 3. اضافه کردن استایل‌ها:
فایل `maintenance_dashboard.css` را در همان پوشه قرار دهید.

#### 4. ایجاد جدول‌های پایگاه داده:
```bash
mysql -u your_username -p your_database_name < maintenance_tables.sql
```

### ساختار پایگاه داده:

جدول‌های ایجاد شده:

- `maintenance_failures` - ثبت خرابی‌ها
- `maintenance_repairs` - ثبت تعمیرات
- `equipment_status_history` - تاریخچه وضعیت تجهیزات
- `maintenance_schedule` - برنامه نگهداری
- `maintenance_kpi` - شاخص‌های عملکرد
- `equipment_settings` - تنظیمات تجهیزات

### ویژگی‌های API:

- **دریافت خودکار از پایگاه داده**: اگر جدول‌ها موجود باشند
- **داده‌های نمونه**: در صورت عدم دسترسی به پایگاه داده
- **محاسبه خودکار شاخص‌ها**: MTBF، MTTR، دسترس‌پذیری
- **پشتیبانی کامل از UTF-8**: برای متون فارسی

## 📱 ویژگی‌های طراحی

### طراحی مدرن:
- رنگ‌بندی حرفه‌ای مناسب برای شاخص‌های نگهداری
- انیمیشن‌های نرم و جذاب
- طراحی کاملاً Responsive (موبایل و تبلت)

### رنگ‌بندی:
- **قرمز** (#dc2626) - خرابی‌ها و موارد فوری
- **سبز** (#10b981) - عملکرد عالی و MTBF
- **نارنجی** (#f59e0b) - هشدار و MTTR
- **آبی** (#3b82f6) - اطلاعات و دسترس‌پذیری

### انیمیشن‌ها:
- ورود نرم کارت‌ها
- انیمیشن hover
- نمودارهای متحرک
- انیمیشن pulse برای موارد فوری

## 🔧 سفارشی‌سازی

### تغییر اهداف شاخص‌ها:

در فایل `get_maintenance_data.php`، مقادیر هدف را تغییر دهید:

```php
'mtbf' => [
    'current' => 156.8,
    'target' => 120,  // ← تغییر این مقدار
    'trend' => [...],
    ...
],
```

### اضافه کردن شاخص جدید:

1. در تابع `getSampleMaintenanceData()` شاخص جدید را اضافه کنید
2. در تابع `generateMaintenanceDashboard()` کارت جدید را تعریف کنید
3. استایل‌های مربوطه را در CSS اضافه کنید

### تغییر رنگ‌بندی:

در فایل `maintenance_dashboard.css` متغیرهای CSS را تغییر دهید:

```css
:root {
    --maintenance-primary: #dc2626;  /* رنگ اصلی */
    --maintenance-success: #10b981;  /* رنگ موفقیت */
    --maintenance-warning: #f59e0b;  /* رنگ هشدار */
    ...
}
```

## 📊 گزارش‌گیری

### ویوهای آماده:

- `v_mtbf_calculation` - محاسبه MTBF
- `v_mttr_calculation` - محاسبه MTTR  
- `v_availability_calculation` - محاسبه دسترس‌پذیری

### رویه‌های ذخیره شده:

- `CalculateDailyKPIs()` - محاسبه روزانه شاخص‌ها
- Event scheduler برای اجرای خودکار

### نمونه کوئری‌ها:

```sql
-- MTBF برای تجهیز خاص
SELECT * FROM v_mtbf_calculation WHERE equipment_id = 'HD325-001';

-- دسترس‌پذیری ماهانه
SELECT equipment_id, AVG(availability_percentage) as monthly_availability
FROM maintenance_kpi 
WHERE kpi_date >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)
GROUP BY equipment_id;

-- خرابی‌های رایج
SELECT failure_type, COUNT(*) as frequency
FROM maintenance_failures 
WHERE failure_time >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)
GROUP BY failure_type
ORDER BY frequency DESC;
```

## 🚨 نکات مهم

### امنیت:
- اطلاعات پایگاه داده را در فایل‌های جداگانه ذخیره کنید
- از prepared statements استفاده شده است
- ورودی‌ها validation می‌شوند

### عملکرد:
- ایندکس‌های مناسب روی جدول‌ها تعریف شده‌اند
- کش کردن نتایج محاسبات در جدول `maintenance_kpi`
- pagination برای داده‌های زیاد

### نگهداری:
- پاک‌سازی دوره‌ای داده‌های قدیمی
- بهینه‌سازی جدول‌ها
- پشتیبان‌گیری منظم

## 📞 پشتیبانی

در صورت بروز مشکل:

1. **بررسی اتصال پایگاه داده**: اطمینان از صحت اطلاعات اتصال
2. **بررسی فایل‌های CSS/JS**: مطمئن شوید فایل‌ها لود می‌شوند
3. **بررسی کنسول مرورگر**: خطاهای جاوااسکریپت را بررسی کنید
4. **بررسی لاگ‌های سرور**: خطاهای PHP و MySQL

## 🔄 به‌روزرسانی‌های آینده

- اضافه کردن نمودارهای تعاملی بیشتر
- قابلیت صادرات گزارش‌ها
- سیستم اعلان هشدار
- dashboard موبایل اختصاصی
- API برای سایر سیستم‌ها

---

**طراحی شده توسط**: MiniMax Agent  
**تاریخ**: 2025-11-30  
**نسخه**: 1.0  
**مجوز**: استفاده آزاد
