Bu sayfa fleet modülünün defterleri boyunca okuyan dört bölümünü açıklar. src/cluster_erp/modules/fleet/tco/ toplam sahip olma maliyetini (TCO) hesaplar, araçları yenileme için sıralar ve lastikleri, kampanyaları ve emisyon katsayılarını tutar. src/cluster_erp/modules/fleet/telematics.py sayaç toplu girdilerini alır, src/cluster_erp/modules/fleet/analytics_facts.py filo olgularını analytics modülüne yayımlar ve src/cluster_erp/modules/fleet/validation.py ortak girdi denetimlerini tutar.
Kısaca¶
- TCO, defterlerin bir ay penceresinde kaydettiklerini toplar ve kilometre sayacının ilerlediği kilometreye böler (
src/cluster_erp/modules/fleet/tco/services.py:1-8). - Yenileme sıralaması aktif ve bakımdaki araçları kilometre başına maliyete göre, en yüksekten başlayarak listeler (
src/cluster_erp/modules/fleet/tco/services.py:63-91). - Telematik beslemesi cihaz sayaçlarını, kaynağı
telematicsolan sıradan okuma belgelerine çevirir (src/cluster_erp/modules/fleet/telematics.py:1-16). - Dört olgu kümesi
DescribeAnalyticsFactssözleşmesiyle analitiğe gider (src/cluster_erp/modules/fleet/analytics_facts.py:300-310,src/cluster_erp/modules/fleet/module.py:338-346).
Nasıl çalışır¶
Toplam sahip olma maliyeti¶
GET /tco/assets/{asset_id} ve GET /tco/renewal, 1 ile 120 arasında, varsayılanı 12 olan months alır ve fleet_asset.read ister (src/cluster_erp/modules/fleet/tco/routes.py:48-66). Servis her araç için şunları toplar:
| Maliyet bölümü | Sayılan satırlar | Kaynak |
|---|---|---|
| Bakım | Pencere içinde tamamlanmış iş emirlerinin total_cost değeri |
src/cluster_erp/modules/fleet/tco/services.py:113-124 |
| Yakıt | Pencere içinde doldurulmuş doğrulanmış yakıt girişlerinin total_cost değeri |
src/cluster_erp/modules/fleet/tco/services.py:125-136 |
| Cezalar | Pencere içinde gerçekleşmiş, objected olmayan cezaların amount değeri |
src/cluster_erp/modules/fleet/tco/services.py:152-164 |
| Uyum | Pencere içinde tamamlanmış uyum kalemlerinin amount değeri |
src/cluster_erp/modules/fleet/tco/services.py:165-177 |
Kullanılan kilometre, pencere içinde kilometre sayacının ilk ve son ömür boyu değeri arasındaki farktır. Kilometre başına maliyet toplamın bu farka bölümüdür ve iki ondalığa yuvarlanır; kilometre yoksa boştur. CO2, yakıt türü başına yakıt miktarı çarpı o türün emisyon katsayısıdır (src/cluster_erp/modules/fleet/tco/services.py:179-226, src/cluster_erp/modules/fleet/tco/services.py:293-325, src/cluster_erp/modules/fleet/tco/services.py:327-360). Yenileme panosu tüm toplamları araç başına bir sorgu kümesiyle değil, sabit sayıda gruplu sorguyla hesaplar (src/cluster_erp/modules/fleet/tco/services.py:94-98).
Lastikler, kampanyalar ve emisyon katsayıları¶
- Lastik (
FleetTire) seri numarasıyla tanımlanır vein_storage,in_useveyascrappeddurumundadır (src/cluster_erp/modules/fleet/models.py:125,src/cluster_erp/modules/fleet/models.py:705-737). Tak depodaki bir lastik, bir araç ve boş bir pozisyon ister. Sök takıldığından bu yana kilometre farkınıaccumulated_kmalanına ekler. Hurdaya Ayır depodaki bir lastik ister (src/cluster_erp/modules/fleet/tco/services.py:439-521,src/cluster_erp/modules/fleet/tco/metadata.py:77-113). - Kampanya (
FleetCampaign), örneğin bir geri çağırma gibi aynı işe ihtiyaç duyan araçları listeler. Kampanya kalemi bir iş emri açabilir veya tamamlandı olarak işaretlenebilir; kapalı kampanya yeni araç almaz (src/cluster_erp/modules/fleet/tco/services.py:617-760,src/cluster_erp/modules/fleet/tco/metadata.py:287-427). - Emisyon katsayısı (
FleetEmissionFactor) bir yakıt türünün birimi başına kilogram CO2 verir ve canlı satırlar arasında benzersizdir. Tablo boş başlar ve kuruluş doldurur; kod yorumu modülün bir rapor hesapladığını, hiçbir zaman sertifika vermediğini belirtir (src/cluster_erp/modules/fleet/models.py:773-789).
Telematik beslemesi¶
flowchart LR
A["POST /telematics/feed satırları"] --> B{"reading_at fark taşıyor mu"}
B -->|hayır| R1["rejected"]
B -->|evet| C["telematics_device_id ile araç"]
C -->|yok| U["unmatched"]
C -->|bulundu| D["odometer_km ve engine_hours hedefleri"]
D -->|yok| R2["rejected"]
D --> E["FleetReadingService.create kaynak telematics"]
E -->|hepsi düştü| OK["accepted"]
E -->|bir kısmı düştü| P["partial"]
E -->|hiçbiri düşmedi| R3["rejected"]Düz anlatımla: POST /telematics/feed, her biri bir cihaz kimliği, bir zaman ve isteğe bağlı kilometre ile motor saati değerleri taşıyan 1 ile 1000 arası satır alır (src/cluster_erp/modules/fleet/telematics.py:40-57). UTC farkı olmayan satır reddedilir. Cihaz kimliği telematics_device_id üzerinden canlı bir araca çözülür; eşleşmeyen satır unmatched olarak bildirilir. Her sayaç değeri aynı türdeki sayaçta bir okumaya dönüşür, böylece olağan defter kuralları uygulanır. Satır nedenleriyle birlikte tam olarak bir kovaya düşer: accepted, partial, unmatched veya rejected (src/cluster_erp/modules/fleet/telematics.py:58-148).
Analitik olgu kümeleri¶
| Olgu kümesi | Kaynak tablo | Boyutlar | Ölçüler | Kaynak |
|---|---|---|---|---|
fleet_fuel |
fleet_fuel_entries |
araç, yakıt türü, kayıt kaynağı, eşleşme durumu, tüketim uyarısı, non-UTTS riski, dolum tarihi | dolum adedi, toplam litre, toplam yakıt tutarı, ortalama tüketim (toplanamaz) | src/cluster_erp/modules/fleet/analytics_facts.py:35-118 |
fleet_work_order |
fleet_work_orders |
araç, durum, öncelik, dış servis bayrağı, tamamlanma tarihi | emir adedi, toplam, işçilik, parça ve dış servis maliyeti | src/cluster_erp/modules/fleet/analytics_facts.py:120-195 |
fleet_penalty |
fleet_penalties |
araç, tür, durum, sürücü, gerçekleşme tarihi | ceza adedi, toplam tutar | src/cluster_erp/modules/fleet/analytics_facts.py:197-249 |
fleet_compliance |
fleet_compliance_items |
araç, tür, durum, vade tarihi | kalem adedi, toplam tutar | src/cluster_erp/modules/fleet/analytics_facts.py:251-299 |
Her olgu kümesi fleet_asset.read ile okunur ve deleted_at dolu satırları dışarıda bırakır (src/cluster_erp/modules/fleet/analytics_facts.py:116-117). Tarih boyutları gün, hafta, ay, çeyrek ve yıl taneciklerini sunar (src/cluster_erp/modules/fleet/analytics_facts.py:24).
Ortak doğrulayıcılar¶
require_tz UTC farkı olmayan tarih-saati reddeder; scrub_blank_strings boş dizeleri doğrulamadan önce değersiz yapar (src/cluster_erp/modules/fleet/validation.py:15-37).
Neden böyle kurulmuş¶
analytics_facts.pybelge dizesi, iki toplamın oranı toplanabilir bir ölçü olmadığı için kilometre başına maliyeti ve CO2'yi analitiğin dışında tutar (src/cluster_erp/modules/fleet/analytics_facts.py:1-11).- Telematik belge dizesi, bu verinin saklama sorusu ürün sahibinin açık bir kararı olduğu için ham GPS izlerinin ve konumların saklanmadığını belirtir (
src/cluster_erp/modules/fleet/telematics.py:11-15). validation.py, saf bir tarih-saatin farkındalıklı değerlerle karşılaştırmayı çökerteceğini ve çağıran için saat dilimi tahmin etmenin yasak olduğunu belirtir (src/cluster_erp/modules/fleet/validation.py:1-8).
Kurallar ve sınırlar¶
- Yenileme sıralaması kilometre başına maliyeti olmayan araçları sona koyar (
src/cluster_erp/modules/fleet/tco/services.py:85-90). - Telematik beslemesi
fleet_asset.updateister (src/cluster_erp/modules/fleet/telematics.py:55). - Lastik, aynı araçta takılı bir lastiğin bulunduğu pozisyona takılamaz (
src/cluster_erp/modules/fleet/tco/services.py:439-487).
Diğer parçalarla etkileşim¶
| Sözleşme | Yön | Amaç | Kaynak |
|---|---|---|---|
DescribeAnalyticsFacts |
fleet yanıtlar | dört olgu kümesini döndürür | src/cluster_erp/modules/fleet/module.py:338-346 |
AnalyticsFactSet, AnalyticsDimension, AnalyticsMeasure |
fleet oluşturur | olgu kümesi tanımları | src/cluster_erp/modules/fleet/analytics_facts.py:18-22 |
Analitiğin bu yanıtları nasıl topladığı analitik olgular sayfasındadır. Sözleşme listesi sözleşmeler başvurusunda yer alır.
Sınırlar ve açık noktalar¶
- TCO,
total_cost,amountve yakıt tutarı sütunlarınıcurrencysütunlarını okumadan toplar (src/cluster_erp/modules/fleet/tco/services.py:113-177,src/cluster_erp/modules/fleet/models.py:409). Filo olgu kümelerinde para birimi boyutu yoktur (src/cluster_erp/modules/fleet/analytics_facts.py:35-299). - Edinim bedeli TCO'ya dahil değildir; toplanan bölümler bakım, yakıt, cezalar ve uyumdur (
src/cluster_erp/modules/fleet/tco/services.py:293). - Denetimlerden ve rezervasyonlardan oluşan okumalar
FLEET_READING_SOURCESiçindeki değerlerden biri olanformkaynağını taşır (src/cluster_erp/modules/fleet/operations/services.py:494,src/cluster_erp/modules/fleet/models.py:61-62).
Tanıtılan terimler¶
| Terim | Kod tanımlayıcısı | Tanım | Türkçe terim | Kaynak |
|---|---|---|---|---|
| total cost of ownership | FleetTcoService |
Bir aracın bir penceredeki kayıtlı maliyetleri; kilometre başına ve CO2 olarak da. | Toplam sahip olma maliyeti | src/cluster_erp/modules/fleet/tco/services.py:55 |
| renewal ranking | FleetTcoService.renewal |
Kilometre başına maliyete göre en yüksekten sıralanmış aktif araçlar. | Yenileme sıralaması | src/cluster_erp/modules/fleet/tco/services.py:63 |
| emission factor | FleetEmissionFactor |
Kuruluşun girdiği, bir yakıt türünün birimi başına kilogram CO2. | Emisyon katsayısı | src/cluster_erp/modules/fleet/models.py:773 |
| telematics feed | ingest_feed |
Cihaz sayaçlarını okumalara çeviren toplu uç. | Telematik beslemesi | src/cluster_erp/modules/fleet/telematics.py:52-53 |
İlgili sayfalar¶
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.