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

Modül

Nesting modülü (nesting)

Sac yerleşim işlerini hazırlayan, yerleşimi harici araçtan alan, maliyetlendiren ve artanları artığa dönüştüren nesting modülü sayfası.

src/cluster_erp/modules/nesting/ içindeki nesting modülü parçaların metal levhalardan nasıl kesileceğini planlar. Bir yerleşim işi levhayı ve parçaları tanımlar; iş harici bir yerleşim aracına dışa aktarılır ve aracın yerleşimi geri içe aktarılır, denetlenir ve saklanır. Modül ardından yerleşimi SVG veya DXF olarak çizer, malzemeyi maliyetlendirir, inventory modülü üzerinden levha stokunu ayırır ve tüketir, yeniden kullanılabilir artıkları kaydeder ve kullanım KPI'larını raporlar. Yerleşimin kendisi modül içinde hesaplanmaz; bkz. yerleşim motoru.

Bir bakışta

Öğe Değer Kaynak
Paket src/cluster_erp/modules/nesting/ klasör
Modül sınıfı Module src/cluster_erp/modules/nesting/module.py:15
name / version nesting / 0.1.0 src/cluster_erp/modules/nesting/module.py:16-22
API öneki /api/v1/nesting (ModuleBase.api_prefix) src/cluster_erp/core/module_base.py:37-38
Alt modüller 6 klasör: nesting_jobs, nesting_parts, nesting_remnants, integration, kpi, engine klasör listesi
Tablolar 3: nesting_nesting_jobs, nesting_nesting_parts, nesting_nesting_remnants src/cluster_erp/modules/nesting/nesting_jobs/models.py:23, src/cluster_erp/modules/nesting/nesting_parts/models.py:14, src/cluster_erp/modules/nesting/nesting_remnants/models.py:15
Metadata'daki varlıklar 3: nesting_job, nesting_part, nesting_remnant src/cluster_erp/modules/nesting/module.py:212-216
Uçlar Pakette 27 uç dekoratörü @router. için grep
Web uygulamasında yeri Kapılı bir paketten gelen nesting_viewer özel bileşeniyle katalog uygulaması nesting src/cluster_erp/modules/app_store/catalog.json (nesting girdisi), gated_apps/nesting/app.js
Masaüstünde yeri Yalnızca genel bileşenler; masaüstü özel görüntüleyici bölümünü atlar src/cluster_erp/modules/nesting/module.py:178-187

Modül ne yapar

  • Levha ölçüsü, kalınlık, malzeme kalitesi, kaplama, kesim payı, parça aralığı, kenar payı, izin verilen döndürmeler, aynalama, en çok levha sayısı ve isteğe bağlı bir levha malzemesi kırılımı ve depoyla bir yerleşim işi kaydeder (src/cluster_erp/modules/nesting/nesting_jobs/models.py:22-291).
  • Yerleştirilecek parçaları elle veya üretim ve satış siparişlerinden çekerek listeler (src/cluster_erp/modules/nesting/nesting_jobs/services.py:676-802).
  • Bir işi harici bir araç için dışa aktarır ve aracın yerleşimlerini, artıklarını ve parça dış hatlarını içe aktarır (src/cluster_erp/modules/nesting/integration/services.py:114-363).
  • Yerleşimi SVG olarak çizer ve DXF olarak yazar (src/cluster_erp/modules/nesting/nesting_jobs/routes.py:307-396).
  • Malzemeyi maliyetlendirir, artıkları alacak olarak düşer ve net maliyeti parçalara dağıtır (src/cluster_erp/modules/nesting/nesting_jobs/services.py:555-675).
  • Bir işi onaylar, ayrılmış malzemeyi tüketir, artıkları oluşturur ve stoka kaydeder (src/cluster_erp/modules/nesting/nesting_jobs/services.py:311-390).
  • Bir dönem için kullanım ve fire KPI'larını raporlar (src/cluster_erp/modules/nesting/kpi/services.py:36-238).

Alt modüller

Alt modül Amaç Ana varlıklar Yönlendirici Kaynak
nesting_jobs İşler, yaşam döngüsü, malzeme, maliyetler, çizimler NestingJob /api/v1/nesting/nesting-jobs src/cluster_erp/modules/nesting/nesting_jobs/routes.py:30
nesting_parts Bir işin parçaları NestingPart /api/v1/nesting/nesting-parts src/cluster_erp/modules/nesting/nesting_parts/routes.py:25
nesting_remnants Yeniden kullanılabilir artanlar NestingRemnant /api/v1/nesting/nesting-remnants src/cluster_erp/modules/nesting/nesting_remnants/routes.py:27
integration Harici bir araçla dışa ve içe aktarım yok nesting_jobs uçları tarafından kullanılır src/cluster_erp/modules/nesting/integration/services.py:109
kpi Kullanım KPI'ları yok /api/v1/nesting/nesting-jobs/kpi src/cluster_erp/modules/nesting/kpi/routes.py:13-16
engine Geometri türleri, dönüşümler, DXF ve SVG çıktısı yok yok src/cluster_erp/modules/nesting/engine/

Ayrıntılar işler, parçalar ve artıklar, entegrasyon ve KPI ve yerleşim motoru sayfalarındadır.

Veri modeli

Varlık Tablo Anahtar alanlar Notlar Kaynak
NestingJob nesting_nesting_jobs code, name, status, levha ve süreç alanları, sheet_material_id üçlüsü, warehouse_id, result_source, external_software, layout_placements, remnants, kullanım ve alan alanları, maliyet alanları yerleşim ve artıklar JSON src/cluster_erp/modules/nesting/nesting_jobs/models.py:22-291
NestingPart nesting_nesting_parts nesting_job_id, part_id, qty_requested, qty_placed, part_length_mm, part_width_mm, geometry_polygon, yerleşim alanları, source_order_id, allocated_material_cost iş ve parça başına bir canlı satır src/cluster_erp/modules/nesting/nesting_parts/models.py:13-131
NestingRemnant nesting_nesting_remnants code, nesting_job_id, sheet_index, x, y, width, height, area_mm2, material_grade, thickness_mm, status, warehouse_id durum available olarak başlar src/cluster_erp/modules/nesting/nesting_remnants/models.py:14-98

Ekranlar ve metadata

get_metadata üç bölümlü bir Yerleşim & Optimizasyon (İngilizce Nesting & Optimization) kenar çubuğu grubu bildirir: yerleşim görüntüleyicisi (nesting_viewer özel bileşeni), Yerleşim İşleri ve Artıklar (src/cluster_erp/modules/nesting/module.py:162-217). Görüntüleyici KPI'ları, iş listesini, bir özeti, SVG çizimi ve indirmeleri gösterir; bileşeni olmayan bir istemci bölümü atlar (src/cluster_erp/modules/nesting/module.py:178-187).

Durumlar ve aksiyonlar

İş durumları queued, running, completed ve failed olur (src/cluster_erp/modules/nesting/nesting_jobs/schemas.py:10). Bir iş queued olarak başlar ve bir sonuç içe aktarıldığında completed olur (src/cluster_erp/modules/nesting/nesting_jobs/models.py:31-36, src/cluster_erp/modules/nesting/integration/services.py:322). "running" ve "failed" için yapılan grep bu commit'te bu durumlardan birini ayarlayan bir kod bulmaz. Artık durumları arasında available, reserved, consumed ve scrapped vardır (src/cluster_erp/modules/nesting/nesting_remnants/services.py:83, src/cluster_erp/modules/nesting/nesting_remnants/services.py:188-194, src/cluster_erp/modules/nesting/nesting_remnants/services.py:256-262).

Aksiyon Etiket Koşul Uç İzin Kaynak
approve Onayla status değeri completed POST /nesting-jobs/{id}/approve nesting_job.approve src/cluster_erp/modules/nesting/nesting_jobs/metadata.py:79-86, src/cluster_erp/modules/nesting/nesting_jobs/routes.py:213-224
pull_parts Siparişlerden Parça Çek status değeri queued veya failed POST /nesting-jobs/{id}/pull-parts nesting_job.update src/cluster_erp/modules/nesting/nesting_jobs/metadata.py:87-94, src/cluster_erp/modules/nesting/nesting_jobs/routes.py:284-293
calculate_costs Maliyetleri Hesapla status değeri completed POST /nesting-jobs/{id}/calculate-costs nesting_job.update src/cluster_erp/modules/nesting/nesting_jobs/metadata.py:95-105, src/cluster_erp/modules/nesting/nesting_jobs/routes.py:227-236
reserve_material Malzeme Rezerve Et status değeri queued veya failed POST /nesting-jobs/{id}/reserve-material nesting_job.update src/cluster_erp/modules/nesting/nesting_jobs/metadata.py:106-116, src/cluster_erp/modules/nesting/nesting_jobs/routes.py:239-248
scrap (artık) Hurda Et status değeri available veya reserved POST /nesting-remnants/{id}/scrap nesting_remnant.update src/cluster_erp/modules/nesting/nesting_remnants/metadata.py:41-54, src/cluster_erp/modules/nesting/nesting_remnants/routes.py:113-123

Yerleşim hattı

Şema bir işin oluşturulmasından onaylanmasına kadar olan yolunu gösterir.

flowchart TD
 A["iş oluşturma (queued)"] --> B["parça ekleme veya siparişlerden parça çekme"]
 B --> C["malzeme ayırma (isteğe bağlı, ReserveStock)"]
 C --> D["işi dışa aktarma"]
 D --> E["harici yerleşim aracı"]
 E --> F["import-result: yerleşimi denetleme ve saklama (completed)"]
 F --> G["svg ve dxf çizimleri"]
 F --> H["maliyet hesaplama (NestingCostCalculated)"]
 H --> I["onay (NestingApproved)"]
 I --> J["malzeme tüketimi (ConsumeReservation, PostGoodsIssue)"]
 I --> K["artık oluşturma ve stoka kaydetme (PostGoodsReceipt)"]
 I --> L["NestingScrapRecorded"]

Düz anlatımla: bir iş queued olarak oluşturulur ve parçalarla doldurulur (src/cluster_erp/modules/nesting/nesting_jobs/services.py:111-160). İş kuyruktayken levha stoku ayrılabilir (src/cluster_erp/modules/nesting/nesting_jobs/services.py:394-468). İş dışa aktarılır, harici bir araçla yerleştirilir ve sonuç içe aktarılır; içe aktarım yerleşimleri denetler ve işi completed olarak işaretler (src/cluster_erp/modules/nesting/integration/services.py:114-363). Tamamlanmış bir iş çizilebilir ve maliyetlendirilebilir (src/cluster_erp/modules/nesting/nesting_jobs/services.py:555-675). Onay kullanımı denetler, sonra ayrılmış malzemeyi tüketir, içe aktarılan artanlardan artıklar oluşturur, bunları stoka kaydeder ve fireyi kaydeder (src/cluster_erp/modules/nesting/nesting_jobs/services.py:311-390).

İş kuralları

  • Bir işin levha malzemesi isteğe bağlıdır; verildiğinde modeli ve versiyonu doğrulanır (src/cluster_erp/modules/nesting/nesting_jobs/services.py:116-122).
  • Bir iş yalnızca queued veya failed durumundayken düzenlenebilir ve silinebilir; tamamlanmış bir iş yalnızca low_utilization_acknowledged ve notes alanlarını kabul eder (src/cluster_erp/modules/nesting/nesting_jobs/services.py:187-199, src/cluster_erp/modules/nesting/nesting_jobs/services.py:228-232).
  • Kullanımı eşiğin altında olan bir işin onayı low_utilization_acknowledged ister; eşik varsayılanı 60 olan nesting_low_utilization_threshold ayarıdır (src/cluster_erp/modules/nesting/nesting_jobs/services.py:332-342, src/cluster_erp/modules/nesting/nesting_jobs/routes.py:221-222, src/cluster_erp/config/settings.py:418).
  • Malzeme ayırmak bir levha malzemesi kırılımı ve bir depo ister (src/cluster_erp/modules/nesting/nesting_jobs/services.py:394-426).
  • Para sonuçları ROUND_HALF_EVEN ile dört basamağa yuvarlanır (src/cluster_erp/modules/nesting/nesting_jobs/services.py:594-628).
  • code değeri nesting_job ve nesting_remnant yıllık dizilerinden gelir (src/cluster_erp/modules/nesting/nesting_jobs/services.py:123, src/cluster_erp/modules/nesting/nesting_remnants/services.py:135).

Olaylar ve sorgular

Modül 2 sözleşme tüketir ve 16 sözleşme üretir; sayım parties modülü sayfasındaki gibi yapıldı.

Yön Sözleşme sınıfı İşleyici veya yayan Kaynak
yayar NestingCompleted içe aktarım src/cluster_erp/modules/nesting/integration/services.py:350-361
yayar NestingApproved, NestingScrapRecorded onay src/cluster_erp/modules/nesting/nesting_jobs/services.py:351-359, src/cluster_erp/modules/nesting/nesting_jobs/services.py:377-388
yayar NestingMaterialReserved, NestingMaterialConsumed ayırma, tüketim src/cluster_erp/modules/nesting/nesting_jobs/services.py:458-466, src/cluster_erp/modules/nesting/nesting_jobs/services.py:544-552
yayar NestingCostCalculated maliyet hesaplama src/cluster_erp/modules/nesting/nesting_jobs/services.py:661-669
yayar NestingRemnantCreated, NestingRemnantConsumed, NestingRemnantScrapped artık servisi src/cluster_erp/modules/nesting/nesting_remnants/services.py:166-174, src/cluster_erp/modules/nesting/nesting_remnants/services.py:236-242, src/cluster_erp/modules/nesting/nesting_remnants/services.py:273
sorgular ReserveStock, ConsumeReservation, PostGoodsIssue, PostGoodsReceipt malzeme ve artık akışları src/cluster_erp/modules/nesting/nesting_jobs/services.py:432-443, src/cluster_erp/modules/nesting/nesting_jobs/services.py:496-528, src/cluster_erp/modules/nesting/nesting_remnants/services.py:324-341
sorgular GetProductById, GetProductionOrderById, GetSalesOrderById parça çekme, maliyetler src/cluster_erp/modules/nesting/nesting_jobs/services.py:572-576, src/cluster_erp/modules/nesting/nesting_jobs/services.py:709-714
sorguyu yanıtlar GetNestingJobById _handle_get_nesting_job src/cluster_erp/modules/nesting/module.py:61-64, src/cluster_erp/modules/nesting/module.py:70-109
sorguyu yanıtlar GetAvailableRemnants _handle_get_available_remnants src/cluster_erp/modules/nesting/module.py:65-68, src/cluster_erp/modules/nesting/module.py:111-140

GetNestingJobById, costing modülünün okuduğu net_material_cost dahil olmak üzere para ve alan değerlerini dizge olarak döndürür (src/cluster_erp/modules/nesting/module.py:82-108). Tam liste sözleşmeler başvurusu sayfasındadır.

Yetkiler

İzin anahtarı Kullanan Kaynak
nesting_job.read, .create, .update, .delete, .bulk_delete iş uçları, çizimler, dışa aktarım, özet, KPI src/cluster_erp/modules/nesting/nesting_jobs/routes.py:128-367, src/cluster_erp/modules/nesting/kpi/routes.py:22
nesting_job.approve onay src/cluster_erp/modules/nesting/nesting_jobs/routes.py:216
nesting_job.run sonuç içe aktarma src/cluster_erp/modules/nesting/nesting_jobs/routes.py:271
nesting_part.read, .create, .update, .delete, .bulk_delete parça uçları src/cluster_erp/modules/nesting/nesting_parts/routes.py:33-107
nesting_remnant.read, .update artık uçları ve hurdaya ayırma src/cluster_erp/modules/nesting/nesting_remnants/routes.py:37-117

Gizlilik, saklama ve geçmiş

Modül kişisel veri saklamaz ve privacy_handlers.py dosyası yoktur. İşler geçici olarak silinir; bir işi silmek parçalarını ve artıklarını da geçici olarak siler (src/cluster_erp/modules/nesting/nesting_jobs/services.py:219-249, src/cluster_erp/modules/nesting/nesting_jobs/services.py:289-309). Değişiklikler değişiklik geçmişi tarafından kaydedilir.

Analitik olguları

Bu modülün analytics_facts.py dosyası yoktur. Kendi KPI servisi entegrasyon ve KPI sayfasında anlatılır.

Ayarlar ve başvuru verileri

Modül tek bir ayar okur: nesting_low_utilization_threshold (src/cluster_erp/config/settings.py:420). Ayarlar bölümü yoktur ve hiçbir şey tohumlamaz (src/cluster_erp/modules/nesting/module.py:28-30). Bkz. ayarlar başvurusu.

Testler

tests/ içinde modules.nesting için grep ile ve web-client/ içinde dosya adıyla bulundu.

Tür Dosya Kapsam
pytest tests/test_nesting_units.py geometri, ölçüm, DXF ve SVG çıktısı, KPI ve maliyet yardımcıları (12 test)
e2e web-client/_e2e_nesting_app.mjs yerleşim uygulaması: KPI, iş listesi, özet, çizim, indirmeler, işler ve artıklar

Tutarsızlıklar

Tanıtılan terimler

Terim Kod tanımlayıcısı Tanım Türkçe terim Kaynak
nesting job NestingJob Bir parça kümesini tek bir malzeme ve kalınlıktaki levhalardan kesme planı. Yerleşim işi src/cluster_erp/modules/nesting/nesting_jobs/models.py:22
remnant NestingRemnant Yerleştirilmiş bir levhanın yeniden kullanılabilir artan dikdörtgeni. Artık src/cluster_erp/modules/nesting/nesting_remnants/models.py:14
utilisation utilization_pct Yerleştirilen parçaların kapladığı levha alanının yüzdesi. Kullanım oranı src/cluster_erp/modules/nesting/nesting_jobs/models.py:99

İlgili sayfalar


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

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