Factorizer/Cluster ERP WikiCluster ERP English
Ana sayfa / İş modülleri

Referans

Rotalar ve operasyon tipleri

Production içindeki rotalar, operasyon tipleri, rota şablonları, kesim kuralları ve bileşen atamaları için başvuru; eBOM iskeletiyle.

Bu sayfa src/cluster_erp/modules/production/ içinde bir ürünün nasıl yapıldığını tanımlayan alt modülleri anlatır: routings/ (routings/scaffold.py içindeki iskeletle), operation_types/, routing_templates/ (kesim teknolojisi kurallarıyla) ve component_allocations/. Bir rota (Routing), bir ürün kırılımının operasyon dizisidir. Bileşen atamaları ürün ağacı kalemlerini ve diğer girdileri operasyonlara bağlar; birlikte operasyon ürün ağacını (eBOM) oluştururlar. Ürün ağacı tarafı BOM modülü sayfasındadır.

Kapsam ve kaynak

  • Tanımlandığı yer: dört alt modülün models.py, schemas.py, services.py ve routes.py dosyaları, routings/scaffold.py (RoutingScaffolder) ve routing_templates/metadata.py.
  • Sayım: 9 tablo; 28 rota ucu, 8 operasyon tipi ucu, 16 rota şablonu ve kural ucu ve 6 atama ucu (@router. ve @rules_router. dekoratörleri).

Rota alanları

Varlık Tablo Anahtar alanlar Kaynak
Routing production_routings product_id, product_model_id, product_version_id, code, name, status (varsayılan draft), valid_from, scaffold_bom_version_id, is_stale src/cluster_erp/modules/production/routings/models.py:15-68
RoutingOperation production_routing_operations operation_no, work_center_id, operation_type_code, description, setup_time_min, run_time_per_unit_min, scrap_pct, output_description, model ve versiyonuyla output_product_id, source, source_fields src/cluster_erp/modules/production/routings/models.py:71-140
PrepOperation production_prep_operations routing_id, bom_item_id, seq, operation_type_code, work_center_id, setup_time_min, run_time_per_unit_min, note, source src/cluster_erp/modules/production/routings/models.py:143-202
ComponentAllocation production_component_allocations routing_operation_id, input_kind (bom_item, operation_output veya product), bom_item_id, bom_version_id, source_operation_id, ürün kırılımı, qty src/cluster_erp/modules/production/component_allocations/models.py:14-117
OperationType production_operation_types code, name, numeric_code, op_group, has_material_io, default_setup_min, translations, is_active src/cluster_erp/modules/production/operation_types/models.py:13-57
RoutingTemplate, RoutingTemplateOp production_routing_templates, production_routing_template_ops code, name, product_category_id, material_type; seq, operation_type_code ve varsayılan sürelerle operasyonlar src/cluster_erp/modules/production/routing_templates/models.py:20-104
CutTechnologyRule production_cut_technology_rules material_type, stock_form (length veya sheet), operation_type_code src/cluster_erp/modules/production/routing_templates/models.py:107-146, src/cluster_erp/modules/production/routing_templates/schemas.py:104

Rota durumları

Bir rota draft durumundan active durumuna, oradan obsolete durumuna geçer (src/cluster_erp/modules/production/routings/services.py:44-48). Engeller kaldıkça etkinleştirme reddedilir: iş merkezi olmayan, operasyon tipi olmayan veya birim başına çalışma süresi sıfır olan bir operasyon ya da operasyon tipi olmayan bir hazırlık operasyonu (src/cluster_erp/modules/production/routings/services.py:541-599, src/cluster_erp/modules/production/routings/services.py:610-649). GET /routings/{routing_id}/readiness bu engelleri döndürür (src/cluster_erp/modules/production/routings/routes.py:319). Yeni bir ürün ağacı versiyonu etkin olduğunda aynı kırılımın canlı rotaları bayat olarak işaretlenir (src/cluster_erp/modules/production/module.py:195-224).

eBOM iskeleti

İskelet bir rotayı bir ürün kırılımının ürün ağacından türetir. Diyagram plan ve uygulama yolunu gösterir.

flowchart TD
 P["ürün, model, versiyon ile POST /routings/scaffold-plan"] --> T["load_tree: GetBomScaffoldTree"]
 T --> F["flatten_inputs: hayalet çocukları yukarı alınır, miktar çarpılır"]
 F --> J["malzeme girdili son birleştirme operasyonu"]
 F --> C["make_from_stock kalemleri için kesim hazırlığı"]
 J --> TP["resolve_template: kategori ve malzeme tipine göre RoutingTemplate"]
 C --> CR["cut_rules: malzeme ve stok biçimine göre CutTechnologyRule"]
 TP --> WC["iş merkezi yetkinliklerinden wc_candidates"]
 CR --> WC
 WC --> Q["sorular ve plan_hash ile plan"]
 Q --> A["yanıtlarla POST /routings/scaffold-apply"]
 A --> H["güncel ürün ağacından yeniden hesaplanan plan_hash"]
 H --> M["Routing, RoutingOperation, PrepOperation, ComponentAllocation satırları"]
 M --> I["operasyon çıktıları için CreateScaffoldIntermediate"]

Düz anlatımla: scaffold-plan tam ürün kırılımı isteyen bir deneme çalıştırmasıdır (src/cluster_erp/modules/production/routings/routes.py:155-206). İskeletçi ürün ağacını GetBomScaffoldTree ile okur (src/cluster_erp/modules/production/routings/scaffold.py:177-217). Hayalet olmayan kalemler tek bir son birleştirme operasyonunun malzeme girdileri olur; hayalet kalemler asla girdi olmaz, çocukları hayaletin miktarıyla çarpılarak yukarı alınır (src/cluster_erp/modules/production/routings/scaffold.py:8-12, src/cluster_erp/modules/production/routings/scaffold.py:247-335). Boy stoklu ve kesim boylu stoktan işlenen bir kalem zorunlu bir kesim hazırlık adımı alır; levha stoğu 2B kesim adayı alır (src/cluster_erp/modules/production/routings/scaffold.py:13-15, src/cluster_erp/modules/production/routings/scaffold.py:336-348). Ürünün kategori ve malzeme tipine uyan bir rota şablonu operasyon dizisini sağlar; eşit özgüllükte iki şablon reddedilir (src/cluster_erp/modules/production/routings/scaffold.py:22-28, src/cluster_erp/modules/production/routings/scaffold.py:470-540). Bir kesim teknolojisi kuralı kesim sorusunu yanıtlar (src/cluster_erp/modules/production/routings/scaffold.py:29-31, src/cluster_erp/modules/production/routings/scaffold.py:589-622). İş merkezleri yalnızca bildirilmiş yetkinliklerden gelir (src/cluster_erp/modules/production/routings/scaffold.py:16-21, src/cluster_erp/modules/production/routings/scaffold.py:388-469). Süreç operasyonları bir şablon bildirmedikçe asla otomatik oluşturulmaz (src/cluster_erp/modules/production/routings/scaffold.py:22-24). Plan, kırılım, ürün ağacı versiyonu ve kalem miktarları üzerinden bir plan_hash taşır (src/cluster_erp/modules/production/routings/scaffold.py:41-43, src/cluster_erp/modules/production/routings/scaffold.py:218-246).

scaffold-apply planı tek bir işlemde yazar. Değişmiş bir ürün ağacı 409, eksik bir zorunlu yanıt 422, kırılımda mevcut canlı bir rota 409 verir (src/cluster_erp/modules/production/routings/routes.py:207-262, src/cluster_erp/modules/production/routings/scaffold.py:1038-1354). Bir operasyonun çıktısı varsa iskeletçi products_and_services modülünden CreateScaffoldIntermediate ile bir ara ürün oluşturmasını veya yeniden kullanmasını ister (src/cluster_erp/modules/production/routings/scaffold.py:2234). Ağaç kipi alt montajları hep ya da hiç ilkesiyle planlar ve uygular (src/cluster_erp/modules/production/routings/scaffold.py:962-1037, src/cluster_erp/modules/production/routings/scaffold.py:1355-1425). copy-to bir rotayı başka bir kırılıma derin kopyalar ve atamaları hedefin etkin ürün ağacına yeniden bağlar; eşleşmeyen satırlar raporlanır (src/cluster_erp/modules/production/routings/scaffold.py:35-39, src/cluster_erp/modules/production/routings/scaffold.py:2077-2460).

Uçlar

Yöntem ve yol İzin Kaynak
GET, POST /routings/; GET, PUT, DELETE /routings/{routing_id}; POST /routings/bulk-delete; POST /routings/{routing_id}/status routing.read, .create, .update, .delete, .bulk_delete src/cluster_erp/modules/production/routings/routes.py:46-398
POST /routings/scaffold-from-bom, /scaffold-tree-from-bom, /scaffold-plan, /scaffold-apply, /{routing_id}/copy-to routing.create src/cluster_erp/modules/production/routings/routes.py:86-263
GET /routings/for-product/{product_id}, /{routing_id}/readiness, /{routing_id}/full routing.read src/cluster_erp/modules/production/routings/routes.py:298-333
/routings altındaki operasyonlar, operasyon girdileri ve hazırlık operasyonları routing.read, routing.update src/cluster_erp/modules/production/routings/routes.py:415-672
POST /operation-types/seed-defaults dahil /operation-types uçları routing.* src/cluster_erp/modules/production/operation_types/routes.py:26-121
/routing-templates, şablon operasyonları ve kesim teknolojisi kuralları routing_template.*, routing_template_op.*, cut_technology_rule.* src/cluster_erp/modules/production/routing_templates/routes.py:42-261
Bileşen atamaları routing.read, routing.update, routing.bulk_delete src/cluster_erp/modules/production/component_allocations/routes.py:29-114

Kısıtlar ve doğrulama

  • Bir bileşen ataması canlı satırlar arasında ürün ağacı kalemi ve operasyon başına, operasyon ve kaynak operasyon başına ve operasyon ve ürün başına benzersizdir (src/cluster_erp/modules/production/component_allocations/models.py:27-56).
  • bom modülü patlatmasında operasyon tipini ve iş merkezini doldurmak için atamaları GetComponentAllocations ile okur (src/cluster_erp/modules/production/module.py:145-147).

Tutarsızlıklar

Tanıtılan terimler

Terim Kod tanımlayıcısı Tanım Türkçe terim Kaynak
routing Routing Bir ürün kırılımını yapan operasyon dizisi. Rota src/cluster_erp/modules/production/routings/models.py:15
prep operation PrepOperation Bir ürün ağacı kalemi için kesim gibi bir hazırlık adımı. Hazırlık operasyonu src/cluster_erp/modules/production/routings/models.py:143
component allocation ComponentAllocation Hangi operasyonun hangi kalemi, çıktıyı veya ürünü tükettiğini söyleyen girdi bağı. Bileşen ataması src/cluster_erp/modules/production/component_allocations/models.py:14
routing scaffold RoutingScaffolder Bir rotayı ürün ağacından türeten ve eksik bilgileri soran sihirbaz. Rota iskeleti src/cluster_erp/modules/production/routings/scaffold.py:167
cut technology rule CutTechnologyRule Malzeme tipini ve stok biçimini bir kesim operasyon tipine eşleyen kural. Kesim teknolojisi kuralı src/cluster_erp/modules/production/routing_templates/models.py:107

İlgili sayfalar


92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.

Doğrulanan commit 92f8051 · 2026-11-13