Ana içeriğe geç

Alan Kuralları

Bu kurallar, gelecekteki iş uygulaması için kabul edilmiş ürün kararlarıdır. Mevcut iskelette uygulanmamıştır — aşağıdaki tüm davranışlar Planlanan / Planned iş kurallarıdır.

Koleksiyonlar

Koleksiyon Amaç
projects Proje/iş emri toplu belgeleri
products Payload'lardan keşfedilen ürün ana verisi
machines Çözümleme için kullanılan mevcut makine kataloğu
users Çözümleme için kullanılan çalışan/kullanıcı kataloğu
erp_inbound_messages Ham gelen istek arşivi

Planlanan gelen uç nokta

text POST /api/v1/inbound/work-orders

Bu uç nokta Planlanan / Planned olup iskelette uygulanmış sayılmamalıdır.

Payload sarmalayıcısı

ERP her zaman bir sarmalayıcı payload gönderir:

json { "projects": [ {} ] }

  • Tek bir proje bile dizi kullanır.
  • Bir istek bir veya daha fazla proje içerebilir.
  • Her proje bağımsız işlenir.
  • Bir projenin başarısız olması diğer projelerin işlenmesini durdurmaz.

Planlanan proje sonuç durumları

  • completed
  • completed_with_warnings
  • failed

Benzersizlik kuralları

Proje

text company_id + organization_id + project_code

Üretim

production_code, aynı proje içinde benzersizdir.

Üretim aşaması

production_stage_code, aynı üretim içinde benzersizdir.

stage_number değişebilir; aynı aşama production_stage_code ile güncellenir.

Yeni aşama varsayılanları

json { "stage_sequential": false, "allow_parallel_machines": true, "employees": [], "machines": [], "file_urls": [], "status": 0 }

Mevcut bir aşama güncellendiğinde mevcut status değeri korunur.

Aşama türü

stage_type yalnızca şunları kabul eder:

  • yeni
  • revize

Değerler küçük harfe normalize edilir.

Birleştirme davranışı

  • Gönderilmeyen proje alt kayıtları silinmez.
  • Gönderilmeyen üretimler silinmez.
  • Gönderilmeyen üretim aşamaları silinmez.
  • Gönderilmeyen alanlar korunur.
  • Gönderilen alanlar güncellenir.
  • Entegrasyon mesajları POST upsert/merge mesajları olarak ele alınır.
  • API oluşturma, güncelleme ve birleştirmeyi dahili olarak belirler.
  • Idempotency-Key zorunludur.
  • Silme, normal entegrasyon istemcilerine sunulmaz.
  • Silme daha sonra ayrı bir uç nokta, ayrı kapsam ve ek güvenlik gerektirecektir.

Ürünler

Benzersizlik kapsamı:

text company_id + organization_id + product_code

product_name benzersiz değildir.

Zorunlu alanlar:

  • product_name
  • product_code
  • ideal_cycle_time
  • unit
  • company_id
  • organization_id

ideal_cycle_time kuralları:

  • Birim saniyedir.
  • Tam sayı olmalıdır.
  • Sıfır olabilir.
  • Negatif olamaz.

ERP entegrasyonu ürün status alanını kalıcı hale getirmez.

Ayrı bir ürün oluşturma uç noktası yoktur. Ürünler şuralardan keşfedilir:

  • productions.input_products
  • productions.final_products
  • production_stages.input_products
  • production_stages.output_products
  • production_stages.machines.output_products

Tek bir proje payload'ı içinde tüm farklı ürünler benzersiz şekilde işlenir.

Aynı product_code şu alanlardan herhangi birinde çakışan değerlerle görünürse:

  • product_name
  • ideal_cycle_time
  • unit

proje şu kodla başarısız olur:

text PRODUCT_DATA_CONFLICT

Aynı ürün kodu için çakışan ideal_cycle_time değerleri asla kabul edilmez.

Makineler

machine_code, machines koleksiyonu genelinde benzersiz kabul edilir.

ERP machine_code gönderir. API şunları çözecektir:

  • _id
  • machine_name
  • machine_code

Makine belgesindeki geçici üretim alanları eşleştirme sırasında yok sayılır:

  • products
  • input_products
  • project_code
  • project_id
  • project_name
  • production_code
  • production_name
  • production_stage_code
  • production_stage_name
  • has_active_production

Makine bulunamazsa:

  • Oluşturulmaz.
  • Aşama makineler listesine eklenmez.
  • Proje işleme devam eder.
  • MACHINE_NOT_FOUND uyarısı döner.
  • Proje durumu completed_with_warnings olabilir.

Çalışanlar

Çalışanlar users koleksiyonundan çözümlenir.

username, koleksiyon genelinde benzersiz kabul edilir.

ERP username gönderir. API şunları çözecektir:

  • _id
  • username
  • full_name

Bu alanlar proje belgesine asla kopyalanmaz:

  • password
  • email
  • phone
  • role

Kullanıcı bulunamazsa:

  • Kullanıcı oluşturulmaz.
  • Kullanıcı aşama çalışanlarına eklenmez.
  • Proje işleme devam eder.
  • EMPLOYEE_NOT_FOUND uyarısı üretilir.

Ham arşiv

Her gelen istek daha sonra erp_inbound_messages içinde şu gibi alanlarla arşivlenecektir:

  • request_id
  • idempotency_key
  • client_id
  • raw_payload
  • payload_hash
  • processing_status
  • validation_status
  • zaman damgaları
  • oluşturulan/güncellenen/değişmeyen ID'ler
  • uyarılar ve hatalar
  • proje sonuç ID'leri
  • expires_at

Saklama süresi:

Sınıf Saklama
Başarılı arşiv 180 gün
Başarısız / kısmi başarısız arşiv 365 gün
Denetim ve kimlik doğrulama güvenlik günlükleri 2 yıl

Bir ürün oluşturulduktan sonra sonraki bir proje yazımı başarısız olursa ürün geri alınmaz/silinmez. Arşiv durumu partially_failed olabilir.

Kiracı kapsamı

Planlanan kimlik doğrulama, company_id ve organization_id değerlerini kimliği doğrulanmış istemci tanımından türetecektir. Payload bu alanları içeriyorsa, kimliği doğrulanmış istemci kapsamıyla eşleşmelidir.