TotalApp Dokümantasyon

Tarım Teknolojisi Operasyonları

Tarla/sera iş emri sevkiyatından sezon & hasat planlamaya, IoT iklim izlemeye, verim toplamaya ve kaynak sayaç ölçümüne kadar — tam tarla-hasat yürütme hattı.

Bu grup ne yapar

Tarım Teknolojisi Operasyonları, Tarım add-on'ının operasyonel çekirdeğidir: bir tarla görevinin sevkinden hasada, verim toplamaya ve utility maliyet ölçümüne kadar bir mahsul döngüsünü taşıyan beş ekran. Her ekran, diğer ekranların okuduğu gerçek veriyi yazar — bir mürettebatın gerçekleştirdiği tarla emri, bir IoT sensör uyarısından otomatik türetilebilir; hasat planı gerçek silo kapasitesi ayırır ve teraziden çıkan verim kaydı doğrudan Çiftlikten Sofraya İzlenebilirlik'e yayınlanır.

Tarla & Sera İş Emirleri
Sezon & Hasat Planlama
IoT İklim & Toprak İzleme
Mahsul Verim Panosu
Kaynak Sayaçları

Beş ekranın tümü src/services/agroTechExecutionService.ts tarafından desteklenir; her ekran kendi /api/data/* destekli kayıt setini yönetir ve gerçek çapraz-ekran entegrasyon kancaları içerir — simüle edilmiş devirler değil. Bazı kancalar döngüsel modül bağımlılığını önlemek için dinamik import() ile harvestSupplyInventoryService.ts ve qualityCropHealthService.ts'ye ulaşır.

1. Tarla & Sera İş Emirleri

Amaç: Mürettebat ve ekipmanların bir parsele veya sera bölgesine karşı gerçekleştirdiği fiziksel tarla/sera görevlerini — sürme, damla sulama gübreleme, pestisit püskürtme, budama — sevk edip izlemek.

Temel özellikler

  • Görev tipleriplowing, fertigation, pesticide_spraying, pruning (FieldOrderTaskType).
  • Emir yaşam döngüsüdraft → scheduled → in_progress → completed → qa_on_hold (FieldOrderStatus).
  • Yürütme kaydı — gerçek başlangıç/bitiş zamanı, tüketilen yakıt/enerji, operatör gözlemleri, fotoğraf URL'leri, planlanan-vs-gerçek oranlı bir materialsUsed[] listesi, çalışılan saat ve mürettebatın sahadan bildirebileceği bir cropHealthAnomalyReported bayrağı.
  • Bağlı referanslar — hedef lokasyon (Tarla/Sera), hedef Mahsul Reçetesi, Agronomik SOP, atanan iş gücü (Çalışan) ve atanan ekipman (Varlık).

Entegrasyon tetikleyicileri

Aksiyon / KancaNe yapar
syncOrderMaterialsToConsumptionBir emir completed durumuna geçtiğinde çağrılır. Kullanılan her malzemeyi Tarım Girdisi Hazırlama stoğundan düşer (deductStagingStock) ve kullanılan her malzeme için Tarım Malzeme Tüketimine bir MaterialConsumptionRecord yazar — harvestSupplyInventoryService.ts'ye karşı gerçek bir oku-değiştir-yaz.
updateAssetOperatingHoursEmrin kaydedilen saatlerini atanan Varlığın kümülatif çalışma saati sayacına yansıtmayı ve Önleyici Bakım planlamasını tetiklemeyi amaçlar. Henüz bağlanmadı — bu kancanın hedefleyeceği Bakım ekranları bu add-on'da henüz yok (aşağıdaki Tarım Ekipman Bakımı'na bakın), bu yüzden kanca şu an her zaman false döndüren no-op bir stub'dır.
flagCropHealthAnomalyBir mürettebat yürütme sırasında bir cropHealthAnomalyReported bayrağı bildirdiğinde Zararlı & Hastalık Uyarıları'nda doğrudan bir uyarı açmayı amaçlar. Henüz bağlanmadı — Zararlı & Hastalık Uyarıları şimdi Kalite & Bitki Sağlığı Operasyonları'nda mevcut olsa da (bu kanca onu çağırmak için henüz yükseltilmedi), şu an false döndüren no-op bir stub'dır.

2. Sezon & Hasat Planlama

Amaç: Ekimden hasada bir mahsul döngüsünü planlamak — kilometre taşları, hedef ton, ekipman filosu ataması ve depolama rezervasyonu — ve hasat yetkilendirmesini kalite onayı ve kimyasal güvenlik pencereleri arkasında kilitli tutmak.

Temel özellikler

  • Plan kodlarıHSC-2026-XXXX (generateHarvestScheduleCode).
  • Durum yaşam döngüsüplanned → maturing → ready_for_harvest → active_harvesting → completed (HarvestScheduleStatus).
  • Kilometre taşları — etiketli hedef tarihler ve tamamlanma bayrağı içeren bir liste (HarvestMilestone[]).
  • Hasat Hazırlık SkorucomputeHarvestReadinessScore() bir olgunluk hedefine karşı biriken Büyüme Derece Günlerini (%70 ağırlık) toprak nem sağlığıyla (%30 ağırlık) harmanlar.
  • Silo rezervasyonu — gerçek kapasiteyi rezerve eden bir targetSiloId/targetSiloCode ve expectedVolumeTons.
  • Hasat kapılarıpreHarvestClearanceApproved (bir Mahsul Sağlığı Kontrol Listesi hasat öncesi denetimi geçtiğinde ayarlanır) ve harvestLockoutActive (Tarım-Kimyasal Analitiği'nden aktif bir PHI penceresi tarlada hasadı engellerken doğru olur).

Entegrasyon tetikleyicileri

Aksiyon / KancaNe yapar
syncScheduleToWIPBir plan kesinleştiğinde, Büyüyen Mahsul Takibi (WIP)'de yeni bir biyolojik varlık partisi başlatır (GrowingCropWIPRecord, durum active_wip, büyüme aşaması germination) — harvestSupplyInventoryService.ts'ye karşı gerçek bir yazma.
schedulePreHarvestQualityAuditMahsul Sağlığı Kontrol Listesi'nde zorunlu bir pre_harvest_audit denetim talebi sevk eder (durum requires_attention), bu plana geri bağlı — qualityCropHealthService.ts'ye karşı gerçek bir yazma.
reserveStorageCapacity (yeniden dışa aktarılan)Planın beklenen hasat hacmini seçilen bir silonun reservedTons'una rezerve eder. harvestSupplyInventoryService.ts'den yeniden dışa aktarılmıştır — bkz. Hasat & Tedarik Envanteri'ndeki "perde arkası" notu.

3. IoT İklim & Toprak İzleme

Amaç: Tarla/sera düğümlerinden sensör telemetrisini — ortam sıcaklığı, nem, toprak nemi/EC/pH, VPD — almak ve eşik dışı okumalar üzerine otomatik olarak hareket etmek.

Temel özellikler

  • Düğüm kodlarıIOT-2026-XXXX (generateIoTNodeCode).
  • Sensör durumuoptimal, warning_dry_soil, critical_high_temp, sensor_offline (IoTSensorStatus).
  • Telemetri alanları — ortam sıcaklığı (°C), bağıl nem (%), toprak nemi (%), toprak EC, toprak pH, VPD (kPa), pil %, sinyal gücü %, son ping zaman damgası, düğüm başına yapılandırılabilir bir IoTThresholdConfig.
  • Mikroiklim Sağlık SkorucomputeMicroclimateHealthScore(), ortam sıcaklığı, nem ve pH'ın bağlı Mahsul Reçetesi'nin hedef büyüme-aşaması parametrelerini ne kadar yakından izlediğinin ortalamasını alır.

Entegrasyon tetikleyicileri

Aksiyon / KancaNe yapar
triggerAutomatedFieldOrderToprak nemi düğümün eşiğinin altına düştüğünde, doğrudan Tarla & Sera İş Emirlerinin kendi kayıt defterine yeni bir fertigation tipi tarla emri oluşturur (durum scheduled). Gerçek yazma — her iki ekran da bu aynı servis dosyasını paylaşır.
createMaintenanceWorkOrderBir düğüm çevrimdışı ping attığında veya bozuk değerler bildirdiğinde, createMaintenanceWorkOrderFromSensorFault() (maintenanceWorkOrderService, add-on'lar arasında paylaşılan alan-bağımsız bir servis) aracılığıyla bir donanım bakım iş emri sevk eder — Tarım Ekipman Bakımı kendi ekranlarını sunsa da sunmasa da bağımsız çalışan gerçek bir entegrasyon.

4. Mahsul Verim Panosu

Amaç: Parti başına gerçek hasat sonucunu — hektar başına verim, kalite derecesi, tartı köprüsü okuması, kusurlar — kaydetmek ve bu veriyi izlenebilirliğe, ML verim taban çizgilerine ve depolama girişine yaymak.

Temel özellikler

  • Verim kayıt kodlarıYLD-2026-XXXX (generateYieldRecordCode), ayrı bir harvestBatchCode (BAT-2026-XXXX) ile birlikte.
  • Kalite derecelerigrade_a_premium, grade_b_industrial, grade_c_waste (YieldQualityGrade).
  • Verim farkıcomputeYieldVariancePercent(), gerçek verim/ha'yı hedef taban çizgisi/ha ile karşılaştırır, işaretli bir yüzde olarak ifade eder.
  • Kusur takibi — bir YieldDefectEntry[] listesi (sebep + kayıp yüzdesi), artı weighbridgeReadingTons ve percentLossWaste.
  • Yayınlama bayraklarıvalidated, traceabilityPublished, baselineSynced, storageBatchLogged bu parti için hangi alt akış senkronizasyonlarının tetiklendiğini izler.

Entegrasyon tetikleyicileri

Aksiyon / KancaNe yapar
publishYieldToTraceabilityBir verim kaydı doğrulandığında, Çiftlikten Sofraya İzlenebilirlik'te doğrudan serileştirilmiş bir parti (LOT-2026-XXXX) oluşturur (durum not_certified / missing_lab_clearance), verim kaydına geri bağlı. Döngüsel bağımlılığı önlemek için (bu dosya zaten agroTechExecutionService.ts'den içe aktarır) qualityCropHealthService.ts'yi içe aktarmak yerine doğrudan REST uç noktasına karşı yazar.
syncYieldVarianceToTargetHarvestsGerçek verimi, targetHarvestService.ts'deki updateMlBaselineYield() aracılığıyla Hedef Hasatlar'ın bu mahsul ürünü için çalışan ML taban çizgisi ortalamasına katar.
logInboundStorageBatchBir hasat partisi mutabık kılındığında, doğrudan silo kayıt defterinde onaylanmamış bir alım partisi (INTAKE-<batchCode>) oluşturur — harvestSupplyInventoryService.ts'nin silo mağazasına karşı gerçek bir yazma (burada yeniden dışa aktarılmıştır, bkz. Hasat & Tedarik Envanteri'ndeki mimari not).

5. Kaynak Sayaçları

Amaç: Tarla/sera bölgesi başına utility tüketimini — sulama suyu, elektrik, dizel, doğal gaz — günlük bir kotaya karşı ölçmek, sızıntıları/dalgalanmaları işaretlemek ve gözlemlenen maliyeti alt akışa yayınlamak.

Temel özellikler

  • Sayaç kodlarıCTR-2026-XXXX (generateCounterCode).
  • Kaynak tipleriirrigation_water_m3, electricity_kwh, diesel_liters, natural_gas_m3 (ResourceType).
  • Durumnormal, threshold_exceeded, possible_leak_overuse, uncalibrated (ResourceCounterStatus).
  • Net kullanım & günlük kotacomputeNetUsage(), sayaç sıfırlama/dönüşünün asla negatif tüketim bildirmemesi için (gerçek − önceki okuma)'yı sıfırda kelepçeler; computeDailyQuotaPercent() bu kullanımı sayacın dailyLimitAllowance'ının yüzdesi olarak ifade eder.
  • Sızıntı & dalgalanma bayraklarıleakFlagged, powerSurgeFlagged, artı bir photoProofUrl ve lastCalibrationDate.
  • SOP maliyet atfı — her sayaç bir Agronomik SOP'a bağlanabilir (sopId/sopCode) böylece gözlemlenen maliyeti o SOP'un çalışan maliyet tabanını besler.

Entegrasyon tetikleyicileri

Aksiyon / KancaNe yapar
postResourceToMaterialConsumptionSayacın net kullanımını ve maliyetini yeni bir MaterialConsumptionRecord olarak (kaynak koleksiyonundan eşlenen kaynak kategorisi — su/elektrik/gaz → water_utilities/power_electricity; dizel → fuel) Tarım Malzeme Tüketimi kayıt defterine yayınlar — harvestSupplyInventoryService.ts'ye karşı gerçek bir yazma.
flagEquipmentPipeLeakIoT İklim & Toprak İzleme'nin kullandığı aynı genel createMaintenanceWorkOrder() yardımcısı aracılığıyla acil bir bakım iş emri ("Anormal Utility Dalgalanması / Sızıntı") sevk eder.
recalculateSopCostBasisSayacın gözlemlenen utility maliyetini, agronomicSopService.ts'deki updateUtilityCostBasis() aracılığıyla atfedilen Agronomik SOP'un çalışan maliyet tabanı ortalamasına katar.

Perde arkası — her kanca henüz bağlanmadı

Tarla & Sera İş Emirleri'ndeki iki kanca (updateAssetOperatingHours, flagCropHealthAnomaly), servis dosyasının kendi kod yorumlarında kasıtlı no-op stub'lar olarak belgelenmiştir. Çağıranların zaten kullandığı tam çağrı imzasıyla mevcuttur, böylece bunları daha sonra gerçek entegrasyonlara yükseltmek, çağrı noktasında herhangi bir değişiklik gerektirmez — yalnızca fonksiyon gövdesinde. Bu, yazma anında hedef bir ekran henüz mevcut olmadığında kod tabanında kullanılan kasıtlı bir kalıptır (var olmayan bir modül yoluna dinamik bir import(), yalnızca çalışma zamanında değil, Vite'ın statik içe aktarma analizini derleme zamanında da başarısız kılar).

Uçtan uca veri akışı

Kaynak ekran / kancaYazarHedef ekran / kayıt
Tarla & Sera İş Emirleri · syncOrderMaterialsToConsumptionHazırlama stoğunu düşer; MaterialConsumptionRecord oluştururTarım Girdisi Hazırlama + Tarım Malzeme Tüketimi
Sezon & Hasat Planlama · syncScheduleToWIPGrowingCropWIPRecord oluşturur (durum active_wip)Büyüyen Mahsul Takibi (WIP)
Sezon & Hasat Planlama · schedulePreHarvestQualityAuditpre_harvest_audit kontrol listesi oluştururMahsul Sağlığı Kontrol Listesi
Sezon & Hasat Planlama · reserveStorageCapacitySilo reservedTons'unu artırırSilo & Depolama Yönetimi kayıt defteri
IoT İklim & Toprak İzleme · triggerAutomatedFieldOrderfertigation tarla emri oluşturur (durum scheduled)Tarla & Sera İş Emirleri
IoT İklim & Toprak İzleme · createMaintenanceWorkOrderSensör arızası iş emri sevk edermaintenanceWorkOrderService (alan-bağımsız)
Mahsul Verim Panosu · publishYieldToTraceabilityLOT-2026-XXXX parti kaydı oluştururÇiftlikten Sofraya İzlenebilirlik
Mahsul Verim Panosu · syncYieldVarianceToTargetHarvestsML taban çizgisi verimini güncellerHedef Hasatlar
Mahsul Verim Panosu · logInboundStorageBatchINTAKE-<batchCode> silo partisi oluştururSilo & Depolama Yönetimi kayıt defteri
Kaynak Sayaçları · postResourceToMaterialConsumptionMaterialConsumptionRecord oluştururTarım Malzeme Tüketimi
Kaynak Sayaçları · flagEquipmentPipeLeakSızıntı/dalgalanma iş emri sevk edermaintenanceWorkOrderService (alan-bağımsız)
Kaynak Sayaçları · recalculateSopCostBasisSOP maliyet tabanı ortalamasını güncellerAgronomik SOP'lar

Sıkça Sorulan Sorular

Neden bazen kimse manuel oluşturmadan bir tarla emri görünür?
IoT İklim & Toprak İzleme'nin triggerAutomatedFieldOrder kancası, bir düğüm toprak nemini yapılandırılmış eşiğinin altında bildirdiğinde otomatik olarak bir fertigation emri (durum scheduled) üretir. Emrin SOP/lokasyon bağlantısını tetikleyen sensöre geri kontrol edin.
Bir tarla emrini tamamlamak otomatik olarak envanteri düşürür mü?
Evet — bir emrin durumu completed'a geçtiğinde, syncOrderMaterialsToConsumption yürütme kaydının materialsUsed[]'undaki her malzemeyi Tarım Girdisi Hazırlama stoğundan düşer ve bir tüketim kaydı loglar. Bir malzeme adı herhangi bir hazırlama SKU'suyla eşleşmezse, o öğe için düşürme atlanır ama tüketim kaydı yine de yazılır.
Ekipman çalışma saatleri tarla emri yürütmesinden izleniyor mu?
Henüz değil. updateAssetOperatingHours doğru imzayla bir stub olarak mevcuttur, ancak Tarım Ekipman Bakımı yazacağı gerçek Varlık/Bakım ekranlarını sunana kadar bir no-op'tur. Bu grubun yol haritası durumu için bkz. Tarım Ekipman Bakımı.
Bir hasat planının aktif hasada geçmesini ne engeller?
HarvestScheduleRecord üzerinde iki kapı: preHarvestClearanceApproved doğru olmalı (Mahsul Sağlığı Kontrol Listesi'nin approvePreHarvestChecklist'i tarafından ayarlanır) ve harvestLockoutActive yanlış olmalı (bir Tarım-Kimyasal Analitiği PHI penceresi sona erdiğinde temizlenir). Tam zincir için bkz. Kalite & Bitki Sağlığı Operasyonları.
Hasat Hazırlık Skoru nasıl hesaplanır?
computeHarvestReadinessScore(), mahsulün olgunluk hedefine doğru Büyüme Derece Günü ilerlemesini %70 ağırlıkta, toprak nem sağlığını (mevcut nemin ideal %50'ye ne kadar yakın olduğu) %30 ağırlıkta ölçer. Her iki girdi de atlanabilir, bu durumda skor null döner.
Mahsul verim tartı köprüsü okuması nereye gider?
CropYieldRecord'un kendisinde saklanır (weighbridgeReadingTons) ve daha sonra Çiftlikten Sofraya İzlenebilirlik'in compileBatchPassport fonksiyonu tarafından bir partinin Dijital Ürün Pasaportuna çekilir; bu fonksiyon linkedYieldRecordId ile eşleşen verim kayıtlarını okur.
Bir kaynak sayacının sızıntı bayrağı otomatik olarak bir bakım biletine yönlendirilebilir mi?
Evet — flagEquipmentPipeLeak, IoT İklim & Toprak İzleme'nin çevrimdışı/arızalı sensörler için kullandığı aynı paylaşılan createMaintenanceWorkOrder yardımcısı aracılığıyla acil bir iş emri sevk eder. İkisi de maintenanceWorkOrderService.ts üzerinden yönlendirilir; bu alan-bağımsızdır ve diğer add-on'lar arasında paylaşılır.