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.
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 tipleri —
plowing,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 bircropHealthAnomalyReportedbayrağı. - 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 / Kanca | Ne yapar |
|---|---|
syncOrderMaterialsToConsumption | Bir 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. |
updateAssetOperatingHours | Emrin 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. |
flagCropHealthAnomaly | Bir 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 Skoru —
computeHarvestReadinessScore()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/targetSiloCodeveexpectedVolumeTons. - Hasat kapıları —
preHarvestClearanceApproved(bir Mahsul Sağlığı Kontrol Listesi hasat öncesi denetimi geçtiğinde ayarlanır) veharvestLockoutActive(Tarım-Kimyasal Analitiği'nden aktif bir PHI penceresi tarlada hasadı engellerken doğru olur).
Entegrasyon tetikleyicileri
| Aksiyon / Kanca | Ne yapar |
|---|---|
syncScheduleToWIP | Bir 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. |
schedulePreHarvestQualityAudit | Mahsul 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 durumu —
optimal,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 Skoru —
computeMicroclimateHealthScore(), 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 / Kanca | Ne yapar |
|---|---|
triggerAutomatedFieldOrder | Toprak 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. |
createMaintenanceWorkOrder | Bir 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ı birharvestBatchCode(BAT-2026-XXXX) ile birlikte. - Kalite dereceleri —
grade_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ıweighbridgeReadingTonsvepercentLossWaste. - Yayınlama bayrakları —
validated,traceabilityPublished,baselineSynced,storageBatchLoggedbu parti için hangi alt akış senkronizasyonlarının tetiklendiğini izler.
Entegrasyon tetikleyicileri
| Aksiyon / Kanca | Ne yapar |
|---|---|
publishYieldToTraceability | Bir 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. |
syncYieldVarianceToTargetHarvests | Gerç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. |
logInboundStorageBatch | Bir 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 tipleri —
irrigation_water_m3,electricity_kwh,diesel_liters,natural_gas_m3(ResourceType). - Durum —
normal,threshold_exceeded,possible_leak_overuse,uncalibrated(ResourceCounterStatus). - Net kullanım & günlük kota —
computeNetUsage(), 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ındailyLimitAllowance'ının yüzdesi olarak ifade eder. - Sızıntı & dalgalanma bayrakları —
leakFlagged,powerSurgeFlagged, artı birphotoProofUrlvelastCalibrationDate. - 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 / Kanca | Ne yapar |
|---|---|
postResourceToMaterialConsumption | Sayacı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. |
flagEquipmentPipeLeak | IoT İ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. |
recalculateSopCostBasis | Sayacı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 / kanca | Yazar | Hedef ekran / kayıt |
|---|---|---|
Tarla & Sera İş Emirleri · syncOrderMaterialsToConsumption | Hazırlama stoğunu düşer; MaterialConsumptionRecord oluşturur | Tarım Girdisi Hazırlama + Tarım Malzeme Tüketimi |
Sezon & Hasat Planlama · syncScheduleToWIP | GrowingCropWIPRecord oluşturur (durum active_wip) | Büyüyen Mahsul Takibi (WIP) |
Sezon & Hasat Planlama · schedulePreHarvestQualityAudit | pre_harvest_audit kontrol listesi oluşturur | Mahsul Sağlığı Kontrol Listesi |
Sezon & Hasat Planlama · reserveStorageCapacity | Silo reservedTons'unu artırır | Silo & Depolama Yönetimi kayıt defteri |
IoT İklim & Toprak İzleme · triggerAutomatedFieldOrder | fertigation tarla emri oluşturur (durum scheduled) | Tarla & Sera İş Emirleri |
IoT İklim & Toprak İzleme · createMaintenanceWorkOrder | Sensör arızası iş emri sevk eder | maintenanceWorkOrderService (alan-bağımsız) |
Mahsul Verim Panosu · publishYieldToTraceability | LOT-2026-XXXX parti kaydı oluşturur | Çiftlikten Sofraya İzlenebilirlik |
Mahsul Verim Panosu · syncYieldVarianceToTargetHarvests | ML taban çizgisi verimini günceller | Hedef Hasatlar |
Mahsul Verim Panosu · logInboundStorageBatch | INTAKE-<batchCode> silo partisi oluşturur | Silo & Depolama Yönetimi kayıt defteri |
Kaynak Sayaçları · postResourceToMaterialConsumption | MaterialConsumptionRecord oluşturur | Tarım Malzeme Tüketimi |
Kaynak Sayaçları · flagEquipmentPipeLeak | Sızıntı/dalgalanma iş emri sevk eder | maintenanceWorkOrderService (alan-bağımsız) |
Kaynak Sayaçları · recalculateSopCostBasis | SOP maliyet tabanı ortalamasını günceller | Agronomik SOP'lar |
Sıkça Sorulan Sorular
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.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.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ı.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ı.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.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.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.