Üretim Performansı API¶
Uç nokta¶
text
GET /api/v1/production-performance
Çözümlenmiş kiracı içinde bir proje ve isteğe bağlı üretim/aşama kapsamı için üretim performans metriklerini hesaplayan salt okunur uç nokta.
Hesaplama ayrıntıları: Üretim Performansı Hesaplamaları
Sözleşme referansı: api/openapi.yaml
Kimlik doğrulama¶
AUTH_ENABLED=true iken istekler JWT Bearer erişim token'ı içermelidir:
http
Authorization: Bearer <access_token>
AUTH_ENABLED=false iken uç nokta yerel geliştirme için açıktır.
Accept müzakere¶
| Değer | Açıklama |
|---|---|
application/json |
JSON yanıt (Accept gönderilmezse varsayılan) |
application/xml |
XML yanıt |
text/xml |
XML yanıt |
*/* |
JSON yanıt |
Desteklenmeyen Accept değerleri 406 Not Acceptable (NOT_ACCEPTABLE) döner.
Kiracı bağlamı¶
Makine Olayları ile aynı çift ve geri dönüş kuralları:
| Durum | Sonuç |
|---|---|
| Her iki sorgu değeri mevcut | İstek çifti kullanılır |
| Hiç sorgu değeri yok | Her iki DEFAULT_* yapılandırılmışsa kullanılır |
| Tam olarak bir sorgu değeri | 400 TENANT_CONTEXT_INCOMPLETE |
| Ne sorgu ne yapılandırılmış varsayılan | 400 TENANT_CONTEXT_REQUIRED |
| Geçersiz ObjectID | 400 INVALID_TENANT_CONTEXT |
Sorgu parametreleri¶
| Parametre | Zorunlu | Açıklama |
|---|---|---|
project_code |
Evet | Çözümlenmiş kiracı içinde proje kodu |
company_id |
Hayır | Kiracı şirket ObjectID (çift kuralı geçerli) |
organization_id |
Hayır | Kiracı organizasyon ObjectID (çift kuralı geçerli) |
production_code |
Hayır | Metrikleri tek üretime daraltır |
production_stage_code |
Hayır | Metrikleri tek aşamaya daraltır; production_code gerektirir |
start_time |
Hayır* | Pencere başlangıcı (RFC 3339; ofset kabul edilir, UTC'ye normalize) |
end_time |
Hayır* | Pencere sonu (RFC 3339; ofset kabul edilir, UTC'ye normalize) |
* start_time ve end_time birlikte veya birlikte atlanmalıdır. İkisi de verildiğinde start_time, end_time'dan kesinlikle önce olmalıdır.
Zaman penceresi atlandığında servis şunları türetir:
effective_end_time— istek işleme anındaki güncel UTC zamaneffective_start_time— proje meta verisi, gömülü operasyon olayları veya aktif kapsam için alarm geçmişinden en erken ilgili zaman damgası
Metrik kapsamları¶
Metrikler her döndürülen seviyede bağımsız hesaplanır:
| Yanıt bloğu | Ne zaman | Kapsam |
|---|---|---|
project |
Her zaman | Tüm proje |
production |
production_code verildiğinde |
Yalnızca o üretim |
production_stage |
production_stage_code verildiğinde |
Yalnızca o aşama |
Aşama filtresi verilse bile proje ve üretim toplamları kendi bloklarında tam döner.
Yanıt alanları¶
Üst düzey zaman damgaları:
| Alan | Açıklama |
|---|---|
generated_at |
Hesaplama zaman damgası (UTC) |
effective_start_time |
Uygulanan pencere başlangıcı (UTC) |
effective_end_time |
Uygulanan pencere sonu (UTC) |
Her metrics nesnesi şunları içerir:
| Alan | Açıklama |
|---|---|
total_operation_time_seconds |
Operasyon Start/Break/End aralık toplamı |
net_operation_time_seconds |
Alarm türetilmiş net operasyon süresi |
stop_time_seconds |
Toplam duruş süresi |
planned_stop_time_seconds |
Planlı duruş alt kümesi |
unplanned_stop_time_seconds |
Plansız duruş alt kümesi |
failure_stop_time_seconds |
Arıza duruş alt kümesi |
product_metrics |
Toplanmış ürün sayaçları |
Süre değerleri int64 saniyedir. Kesirli alt saniye artıkları int64(duration / time.Second) ile sıfıra doğru kesilir.
Eşleşen veri yoksa uç nokta HTTP 200, sıfır metrik değerleri ve "product_metrics": [] döner.
Örnek istek¶
http
GET /api/v1/production-performance?project_code=PROJE-001&production_code=URETIM-001&start_time=2026-08-01T00:00:00Z&end_time=2026-08-06T23:59:59Z HTTP/1.1
Host: localhost:8080
Authorization: Bearer <access_token>
Accept: application/json
Örnek yanıt¶
json
{
"success": true,
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"data": {
"generated_at": "2026-08-06T15:00:00Z",
"effective_start_time": "2026-08-01T00:00:00Z",
"effective_end_time": "2026-08-06T23:59:59Z",
"project": {
"project_name": "Proje Adı",
"project_code": "PROJE-001",
"metrics": {
"total_operation_time_seconds": 3600,
"net_operation_time_seconds": 3200,
"stop_time_seconds": 400,
"planned_stop_time_seconds": 200,
"unplanned_stop_time_seconds": 150,
"failure_stop_time_seconds": 50,
"product_metrics": [
{
"product_id": "6a2bc9fbeb8679852cddac2a",
"product_code": "URUN-001",
"product_name": "Ürün Adı",
"successful_count": 100,
"revised_count": 5,
"scrap_count": 2,
"total_count": 107
}
]
}
},
"production": {
"production_name": "Üretim Emri Adı",
"production_code": "URETIM-001",
"metrics": {
"total_operation_time_seconds": 1800,
"net_operation_time_seconds": 1600,
"stop_time_seconds": 200,
"planned_stop_time_seconds": 100,
"unplanned_stop_time_seconds": 75,
"failure_stop_time_seconds": 25,
"product_metrics": []
}
}
},
"error": null
}
Hata yanıtları¶
| HTTP | Kod | Ne zaman |
|---|---|---|
| 400 | PROJECT_CODE_REQUIRED |
project_code eksik |
| 400 | PRODUCTION_CODE_REQUIRED / INVALID_FILTER_DEPENDENCY |
production_code olmadan production_stage_code |
| 400 | TENANT_CONTEXT_* / INVALID_TENANT_CONTEXT |
Kiracı çözümleme hatası |
| 400 | INVALID_START_TIME / INVALID_END_TIME |
Hatalı biçimlendirilmiş zaman parametresi |
| 400 | INVALID_TIME_RANGE |
Tek taraflı zamanlar veya geçersiz aralık |
| 401 | AUTHENTICATION_REQUIRED / INVALID_TOKEN |
Kimlik doğrulama hatası |
| 404 | PROJECT_NOT_FOUND |
Kiracı için bilinmeyen proje |
| 404 | PRODUCTION_NOT_FOUND |
Projede bilinmeyen üretim |
| 404 | PRODUCTION_STAGE_NOT_FOUND |
Üretimde bilinmeyen aşama |
| 406 | NOT_ACCEPTABLE |
Desteklenmeyen Accept |
| 503 | DATABASE_UNAVAILABLE |
MongoDB kullanılamıyor |
Bkz. Hata Kodları.
Veritabanı indeksleri¶
Benzersiz olmayan alarm indeksleri migration CLI ile oluşturulur:
ix_alarms_machine_timestamp_id_descix_alarms_project_production_stage_machine_timestamp_id
İndeks amaç notları için bkz. Makine Olayları.