src/cluster_erp/modules/design_engineering/ içindeki design_engineering modülü tasarımları ve mühendislik değişiklik notlarını (ECN) tutar. Bir tasarım bir projeye aittir, tanımladığı parçayı belirtebilir, çizim, 3B model ve DXF belgelerini bağlar ve inceleme ile onaydan geçer. Onaylanmış bir tasarım kilitlidir; bir değişiklik bir ECN ile yapılır, bu da sonraki tasarım versiyonunu oluşturur ve eskisinin yerine geçirir. Parçası olan bir tasarımı onaylamak bom modülünün bir ürün ağacı kartı oluşturmasını sağlar.
Bir bakışta¶
| Öğe | Değer | Kaynak |
|---|---|---|
| Paket | src/cluster_erp/modules/design_engineering/ |
klasör |
| Modül sınıfı | Module |
src/cluster_erp/modules/design_engineering/module.py:15 |
name / version |
design_engineering / 0.1.0 |
src/cluster_erp/modules/design_engineering/module.py:16-22 |
| API öneki | /api/v1/design_engineering (ModuleBase.api_prefix) |
src/cluster_erp/core/module_base.py:37-38 |
| Alt modüller | 2: designs, ecns |
klasör listesi |
| Tablolar | 2: design_engineering_designs, design_engineering_ecns |
src/cluster_erp/modules/design_engineering/designs/models.py:18, src/cluster_erp/modules/design_engineering/ecns/models.py:18 |
| Metadata'daki varlıklar | 2: design, ecn |
src/cluster_erp/modules/design_engineering/module.py:146-149 |
| Uçlar | Pakette 20 uç dekoratörü | @router. için grep |
| Web uygulamasında yeri | Katalog uygulaması design-engineering |
src/cluster_erp/modules/app_store/catalog.json (design-engineering girdisi) |
| Masaüstünde yeri | Yalnızca genel bileşenler; src/cluster_erp/desktop/modules/ içinde klasör yok |
klasör |
Modül ne yapar¶
concept,detailveyamanufacturingtüründe tasarımları kaydeder; her birinin numarası, projesi, isteğe bağlı parçası, versiyon numarası, CAD dosya girdileri, belge bağlantıları, şartnameleri ve açıklaması vardır (src/cluster_erp/modules/design_engineering/designs/models.py:17-78,src/cluster_erp/modules/design_engineering/designs/schemas.py:9).- Bir tasarımı inceleme ve onaydan geçirir (
src/cluster_erp/modules/design_engineering/designs/services.py:37-41). - Onaylanmış tasarımlara karşı değişiklik notları kaydeder ve bunları yeni tasarım versiyonları olarak uygular (
src/cluster_erp/modules/design_engineering/ecns/services.py:94-111,src/cluster_erp/modules/design_engineering/ecns/services.py:252-314). - Diğer modüllerin bir tasarım hakkındaki sorularını yanıtlar (
src/cluster_erp/modules/design_engineering/module.py:49-92).
Alt modüller¶
| Alt modül | Amaç | Ana varlıklar | Yönlendirici | Kaynak |
|---|---|---|---|---|
designs |
Tasarımlar ve yaşam döngüleri | Design |
/api/v1/design_engineering/designs |
src/cluster_erp/modules/design_engineering/designs/routes.py:31 |
ecns |
Mühendislik değişiklik notları | Ecn |
/api/v1/design_engineering/ecns |
src/cluster_erp/modules/design_engineering/ecns/routes.py:30 |
Veri modeli¶
| Varlık | Tablo | Anahtar alanlar | Notlar | Kaynak |
|---|---|---|---|---|
Design |
design_engineering_designs |
design_no, project_id, part_id, type, status, parent_design_id, version_no, created_by_user_id, reviewed_by, approved_by, approved_at, cad_files, drawing_pdf_doc_id, model_3d_doc_id, dxf_doc_id, specs, description, extra |
design_no benzersiz; parent_design_id önceki versiyonu gösterir |
src/cluster_erp/modules/design_engineering/designs/models.py:17-78 |
Ecn |
design_engineering_ecns |
ecn_no, design_id, reason, impact, status, proposed_by, approved_by, approved_at, rejected_by, rejected_at, implemented_by, implemented_at, new_design_id, extra |
ecn_no benzersiz |
src/cluster_erp/modules/design_engineering/ecns/models.py:17-57 |
project_id ve part_id düz UUID sütunlarıdır. Modül bunlar hakkında başka hiçbir modüle sormaz; pakette oluşturulan sorgu sözleşmeleri için yapılan grep hiçbir şey bulmaz.
Ekranlar ve metadata¶
get_metadata, iki listeli bir Tasarım & Mühendislik (İngilizce Design & Engineering) kenar çubuğu grubu bildirir: Tasarımlar ve Değişiklik Notları (src/cluster_erp/modules/design_engineering/module.py:109-150). İki varlık da extra içinde kiracı tanımlı alanları kabul eder (src/cluster_erp/modules/design_engineering/designs/models.py:19-22, src/cluster_erp/modules/design_engineering/ecns/models.py:19-22).
Durumlar ve aksiyonlar¶
Tasarım durumları draft, in_review, approved ve superseded olur (src/cluster_erp/modules/design_engineering/designs/schemas.py:10). ECN durumları proposed, approved, rejected ve implemented olur (src/cluster_erp/modules/design_engineering/ecns/schemas.py:9).
| Aksiyon | Etiket | Koşul | Uç | İzin | Kaynak |
|---|---|---|---|---|---|
tasarım submit_review |
İncelemeye Gönder | status değeri draft |
POST /designs/{id}/submit-review |
design.create |
src/cluster_erp/modules/design_engineering/designs/metadata.py:52-62, src/cluster_erp/modules/design_engineering/designs/routes.py:144-153 |
tasarım approve |
Onayla | status değeri in_review |
POST /designs/{id}/approve |
design.approve |
src/cluster_erp/modules/design_engineering/designs/metadata.py:63-73, src/cluster_erp/modules/design_engineering/designs/routes.py:156-165 |
tasarım reject |
Reddet | status değeri in_review |
POST /designs/{id}/reject |
design.approve |
src/cluster_erp/modules/design_engineering/designs/metadata.py:74-84, src/cluster_erp/modules/design_engineering/designs/routes.py:168-177 |
ECN approve |
Onayla | status değeri proposed |
POST /ecns/{id}/approve |
ecn.approve |
src/cluster_erp/modules/design_engineering/ecns/metadata.py:52-62, src/cluster_erp/modules/design_engineering/ecns/routes.py:141-150 |
ECN reject |
Reddet | status değeri proposed |
POST /ecns/{id}/reject |
ecn.approve |
src/cluster_erp/modules/design_engineering/ecns/metadata.py:63-73, src/cluster_erp/modules/design_engineering/ecns/routes.py:153-162 |
ECN implement |
Uygula | status değeri approved |
POST /ecns/{id}/implement |
ecn.approve |
src/cluster_erp/modules/design_engineering/ecns/metadata.py:74-84, src/cluster_erp/modules/design_engineering/ecns/routes.py:165-174 |
Şema iki yaşam döngüsünü de gösterir.
stateDiagram-v2
state Design {
[*] --> draft
draft --> in_review: submit_review
in_review --> approved: approve
in_review --> draft: reject
approved --> superseded: ECN implement
}
state ECN {
[*] --> proposed
proposed --> approved_ecn: approve
proposed --> rejected: reject
approved_ecn --> implemented: implement
}Düz anlatımla: bir tasarım draft olarak başlar, in_review durumuna gönderilir ve sonra onaylanır veya draft durumuna geri gönderilir (src/cluster_erp/modules/design_engineering/designs/services.py:37-41). Onaylanmış bir tasarım yalnızca ona karşı bir ECN uygulandığında superseded olur. Bir ECN proposed olarak başlar ve onaylanır veya reddedilir; onaylanmış bir ECN uygulanabilir (src/cluster_erp/modules/design_engineering/ecns/services.py:29-32). Şemada approved_ecn, ECN'nin approved durumunu temsil eder.
İş kuralları¶
concepttüründeki bir tasarım onaylanamaz; yanıtDESIGN_CONCEPT_NO_APPROVALolur (src/cluster_erp/modules/design_engineering/designs/services.py:282-287).- Onay,
DesignApprovedyayılmadan önce işlemi kaydeder; böylece abonenin oluşturduğu ürün ağacı saklanmış bir onaya dayanır; kod yorumu bu nedeni belirtir (src/cluster_erp/modules/design_engineering/designs/services.py:298-315). - Onaylanmış veya yerini almış bir tasarım düzenlenemez (
src/cluster_erp/modules/design_engineering/designs/services.py:189-199); yalnızca taslak bir tasarım silinebilir (src/cluster_erp/modules/design_engineering/designs/services.py:229-233). - Bir ECN yalnızca onaylanmış bir tasarım için oluşturulabilir (
src/cluster_erp/modules/design_engineering/ecns/services.py:94-111); yalnızca önerilmiş bir ECN düzenlenebilir veya silinebilir (src/cluster_erp/modules/design_engineering/ecns/services.py:150-153,src/cluster_erp/modules/design_engineering/ecns/services.py:184-187). - Bir ECN'yi uygulamak; sonraki versiyon numarasıyla, aynı proje, parça, tür, dosyalar ve şartnamelerle ve eski tasarımı üst olarak alan yeni bir taslak tasarım oluşturur; eski tasarım
supersededolur; ECN yeni tasarımın kimliğini saklar (src/cluster_erp/modules/design_engineering/ecns/services.py:252-314). design_noveecn_nodeğerleridesignveecnyıllık dizilerinden gelir (src/cluster_erp/modules/design_engineering/designs/services.py:144,src/cluster_erp/modules/design_engineering/ecns/services.py:112).GET /designs/{id}/filesCAD dosya listesini ve üç belge kimliğini döndürür (src/cluster_erp/modules/design_engineering/designs/services.py:108-117).
Olaylar ve sorgular¶
Modül 2 sözleşme tüketir ve 6 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 | DesignCreated |
DesignService.create |
src/cluster_erp/modules/design_engineering/designs/services.py:167-175 |
| yayar | DesignApproved |
DesignService.approve |
src/cluster_erp/modules/design_engineering/designs/services.py:307-315 |
| yayar | DesignSuperseded |
DesignService.supersede |
src/cluster_erp/modules/design_engineering/designs/services.py:348-355 |
| yayar | EcnProposed, EcnApproved, EcnImplemented |
EcnService.create, .approve, .implement |
src/cluster_erp/modules/design_engineering/ecns/services.py:128, src/cluster_erp/modules/design_engineering/ecns/services.py:227-236, src/cluster_erp/modules/design_engineering/ecns/services.py:304-312 |
| sorguyu yanıtlar | GetDesignById |
_handle_get_design |
src/cluster_erp/modules/design_engineering/module.py:53, src/cluster_erp/modules/design_engineering/module.py:56-77 |
| sorguyu yanıtlar | IsDesignApproved |
_handle_is_design_approved |
src/cluster_erp/modules/design_engineering/module.py:54, src/cluster_erp/modules/design_engineering/module.py:79-92 |
DesignApproved olayını, tasarımın parçası için bir ürün ağacı kartı oluşturan bom modülü tüketir; bkz. BOM modülü. Sözleşmeler başvurusu bu commit'te diğer beş olay için bir tüketici bulmaz.
Yetkiler¶
| İzin anahtarı | Kullanan | Kaynak |
|---|---|---|
design.read |
tasarım okumaları, dosya listesi, tasarım başına ECN listesi, ECN okumaları | src/cluster_erp/modules/design_engineering/designs/routes.py:52-196, src/cluster_erp/modules/design_engineering/ecns/routes.py:50-79 |
design.create |
tasarım oluşturma, güncelleme, silme, toplu silme, incelemeye gönderme | src/cluster_erp/modules/design_engineering/designs/routes.py:96-147 |
design.approve |
tasarım onaylama ve reddetme | src/cluster_erp/modules/design_engineering/designs/routes.py:159-171 |
ecn.propose |
ECN oluşturma, güncelleme, silme, toplu silme | src/cluster_erp/modules/design_engineering/ecns/routes.py:93-132 |
ecn.approve |
ECN onaylama, reddetme, uygulama | src/cluster_erp/modules/design_engineering/ecns/routes.py:144-168 |
Gizlilik, saklama ve geçmiş¶
Modül yazarların ve onaylayanların kullanıcı kimliklerini saklar, ama kendine ait kişisel alanı yoktur ve privacy_handlers.py dosyası yoktur. Değişiklikler değişiklik geçmişi tarafından kaydedilir.
Analitik olguları¶
Bu modülün analytics_facts.py dosyası yoktur.
Ayarlar ve başvuru verileri¶
Modülün ayarlar bölümü yoktur ve hiçbir şey tohumlamaz (src/cluster_erp/modules/design_engineering/module.py:28-30). Tasarım türleri ve durumları şemalarda sabit literal değerlerdir (src/cluster_erp/modules/design_engineering/designs/schemas.py:9-10).
Testler¶
tests/ ve web-client/ içinde design_engineering için grep ile bulundu.
| Tür | Dosya | Kapsam |
|---|---|---|
| e2e | web-client/_e2e_deseng_currencies.mjs |
web uygulamasında tasarım mühendisliği uygulaması ve aksiyonları |
| e2e | web-client/_e2e_tenant_fields_phase4b.mjs, web-client/_e2e_tenant_fields_phase4c.mjs |
tasarım kayıtlarında kiracı tanımlı alanlar |
Hiçbir pytest dosyası modülü içe aktarmaz.
Tutarsızlıklar¶
Tanıtılan terimler¶
| Terim | Kod tanımlayıcısı | Tanım | Türkçe terim | Kaynak |
|---|---|---|---|---|
| design | Design |
Bir proje içinde bir parçanın sürümlü mühendislik tasarımı. | Tasarım | src/cluster_erp/modules/design_engineering/designs/models.py:17 |
| engineering change note | Ecn |
Onaylanmış bir tasarıma kaydedilen, uygulandığında sonraki versiyonunu oluşturan değişiklik. | Değişiklik notu | src/cluster_erp/modules/design_engineering/ecns/models.py:17 |
| design type | type |
concept, detail veya manufacturing; kavram tasarımları onaylanamaz. |
Tasarım türü | src/cluster_erp/modules/design_engineering/designs/schemas.py:9 |
İlgili sayfalar¶
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.