231 lines
13 KiB
Markdown
231 lines
13 KiB
Markdown
|
|
# Üretim (`App.Production`)
|
|||
|
|
|
|||
|
|
> Menünün altındaki her dal bu dosyada bir bölümdür (`module-doc:section`); dosya ve bölümler ilk deploy'da otomatik açılır. `module-doc:todo` işaretli alt bölümleri modülü üreten kişi ya da AI doldurur (`lowcode.instructions.md` §0.13); MCP ile üretimde talep bu bölümler doldurulmadan Testing'e alınamaz. "Ek — Ekran envanteri" bölümü wizard dosyalarından üretilir, elle düzenlenmez.
|
|||
|
|
|
|||
|
|
<!-- module-doc:section App.Production.Definitions -->
|
|||
|
|
## Tanımlamalar (`App.Production.Definitions`)
|
|||
|
|
|
|||
|
|
### 1. Amaç ve kapsam
|
|||
|
|
|
|||
|
|
Üretimin ana verisi: iş merkezleri (verimlilik, OEE, kurulum/temizlik süresi, saatlik maliyetler, ürün kapasitesi), iş merkezi etiketleri ve operasyonlar (iş merkezi, varsayılan süre, varyant kapsamı, talimatlar). Reçeteler (`App.Inventory.Bom`) bu tanımları kullanır. Kullanıcılar: üretim planlama ve maliyet ekipleri. Üretim emri ve iş emri bu dalın kapsamı dışındadır.
|
|||
|
|
|
|||
|
|
### 2. Analiz ve kararlar
|
|||
|
|
|
|||
|
|
- Ekranlar ilk olarak `Envanter › Tanımlamalar` altında üretildi (talep "Inventory -> Tanımlamalar"; analiz `App.Inventory.md` §2). Talep "Production menüsü" ile ayrı modüle taşındı.
|
|||
|
|
- Taşıma tam modül taşımasıdır: ekran kodu `App.Inventory.*` → `App.Production.*`, tablo öneki `Inv_T_` → `Prd_T_`, izin grubu `App.Production`, modül `Production`; menü `Üretim › Tanımlamalar` (Envanter'in hemen sağı, kök sıra 7).
|
|||
|
|
- Haftalık çalışma saati ayardan (`%WeeklyWorkingTimeLimit%`) okunur, yoksa 40.
|
|||
|
|
- Operasyonun "Varyantlara Uygula" seçenekleri Envanter'in nitelik değerlerinden (`Inv_T_AttributeValue`) gelir; modüller arası bağ yalnızca lookup'tır.
|
|||
|
|
|
|||
|
|
### 3. Menü ve ekranlar
|
|||
|
|
|
|||
|
|
`Üretim (App.Production) › Tanımlamalar (App.Production.Definitions)` altında sırasıyla: İş Merkezi Etiketleri, İş Merkezleri, Operasyonlar.
|
|||
|
|
|
|||
|
|
Sekmeler (menüsüz alt formlar):
|
|||
|
|
- İş Merkezleri › Genel Bilgi (aynı satır), Ürün Kapasitesi
|
|||
|
|
- Operasyonlar › Açıklamalar
|
|||
|
|
|
|||
|
|
### 4. Veri modeli
|
|||
|
|
|
|||
|
|
Tüm tablolar kiracı + tam audit + soft delete, anahtar `Id uniqueidentifier`.
|
|||
|
|
|
|||
|
|
| Tablo | İçerik |
|
|||
|
|
| --- | --- |
|
|||
|
|
| `Prd_T_WorkCenterTag` | Etiket adı, renk |
|
|||
|
|
| `Prd_T_WorkCenter` | Ad, kod, etiketler (`|` Id), alternatif iş merkezleri (`|` Id), haftalık saat, verimlilik, OEE, kurulum/temizlik, saatlik maliyetler |
|
|||
|
|
| `Prd_T_WorkCenterCapacity` | İş merkezi × ürün (`Inv_T_Product`) kapasitesi |
|
|||
|
|
| `Prd_T_Operation` / `Prd_T_OperationInstruction` | Operasyon (iş merkezi, varsayılan süre, varyantlara uygula, maliyet/süre yöntemi) ve talimatları |
|
|||
|
|
|
|||
|
|
### 5. İş kuralları ve hesaplar
|
|||
|
|
|
|||
|
|
- **Çoklu değer alanları** (Etiketler, Alternatif İş Merkezleri, Varyantlara Uygula; `dxTagBox`) `|` ile ayrılmış metin kolonunda saklanır.
|
|||
|
|
- **Operasyon maliyeti** reçetede hesaplanır: süre ÷ 60 × iş merkezi saatlik maliyeti (`App.Inventory.BomOverview`).
|
|||
|
|
- Reçete operasyonunda operasyon seçilince iş merkezi ve varsayılan süre operasyondan dolar (`App.Inventory.BomOperation`).
|
|||
|
|
|
|||
|
|
### 6. Yetki ve görünürlük
|
|||
|
|
|
|||
|
|
İzin grubu `App.Production`, modül `Production`. Ekranların okuma yetkisi `App.Production.Definitions` altında; alt formların yetkisi bağlı oldukları listenin altındadır (Genel Bilgi ve Ürün Kapasitesi → `App.Production.WorkCenter`, Açıklamalar → `App.Production.Operation`). Her listede `.Create/.Update/.Delete/.Export/.Import/.Note`. Yetkiler hiçbir role otomatik verilmez; taşıma sonrası eski `App.Inventory.*` yetkileri silindiği için rollere yeniden verilmelidir. Tüm ekranlar kiracı filtrelidir.
|
|||
|
|
|
|||
|
|
### 7. Entegrasyonlar
|
|||
|
|
|
|||
|
|
Dış entegrasyon yok. Envanter modülü iki yönde bağlıdır: Ürün Kapasitesi ürünü, Operasyon nitelik değerlerini Envanter'den okur; Reçete Operasyonları, Reçete Bileşenleri ve Reçeteye Genel Bakış iş merkezi ve operasyonları bu modülden okur.
|
|||
|
|
|
|||
|
|
### 8. Akış örneği
|
|||
|
|
|
|||
|
|
1. İş Merkezi Etiketleri'nde "Apre" etiketini aç.
|
|||
|
|
2. İş Merkezleri'nde "ram makinası"nı etiketle, Genel Bilgi sekmesinde saatlik maliyetini gir.
|
|||
|
|
3. Operasyonlar'da "Apre"yi ram makinası, 60 dk olarak tanımla; Açıklamalar sekmesine iş talimatını ekle.
|
|||
|
|
4. Envanter › Reçeteler › Operasyonlar sekmesinde "Apre"yi seç; iş merkezi ve süre dolar, Genel Bakış maliyeti hesaplar.
|
|||
|
|
|
|||
|
|
### 9. Sık sorulanlar
|
|||
|
|
|
|||
|
|
- **Menüde ekranlar görünmüyor?** Yetkiler `App.Production.*` adıyla yeniden açıldı; rol ekranından verilmelidir.
|
|||
|
|
- **Eski iş merkezi kayıtları nerede?** Veritabanı yeniden kurulmadıysa satırlar eski `Inv_T_*` tablolarında kalır; yeni tablolar `Prd_T_*`'dır.
|
|||
|
|
|
|||
|
|
### 10. Dosyalar ve geri alma
|
|||
|
|
|
|||
|
|
- **Tablolar:** `sql/object/Prd_T_*.sql` + `postgres/object/Prd_T_*.sql` (5 tablo).
|
|||
|
|
- **Wizard'lar:** WorkCenterTag, WorkCenter, WorkCenterGeneral, WorkCenterCapacity, Operation, OperationInstruction (`.json`).
|
|||
|
|
- **Demo veri aynaları:** `data/App.Production.{WorkCenterTag,WorkCenter}.json`.
|
|||
|
|
- **Geri alma:** Wizard Manager'da ana ekranlar (WorkCenter, Operation) önce, alt formları sonra silinir; Envanter'in reçete ekranları bu tablolara lookup ile bağlıdır. Tablolar ancak açık onayla `dropTables` ile düşürülür.
|
|||
|
|
|
|||
|
|
<!-- module-doc:auto:begin -->
|
|||
|
|
## Ek — Ekran envanteri (otomatik)
|
|||
|
|
|
|||
|
|
> Wizard dosyalarından üretilir; deploy, silme, tasarımcı kaydı ve import'ta yenilenir. Elle düzenleme bir sonraki yenilemede kaybolur.
|
|||
|
|
|
|||
|
|
### Tanımlamalar (`App.Production.Definitions`)
|
|||
|
|
|
|||
|
|
#### İş Merkezi Etiketleri — `App.Production.WorkCenterTag`
|
|||
|
|
|
|||
|
|
| Özellik | Değer |
|
|||
|
|
| --- | --- |
|
|||
|
|
| Wizard | `wizard/WorkCenterTag.json` |
|
|||
|
|
| Yol | Liste (Wizard) |
|
|||
|
|
| Menü | `App.Production.Definitions` › `App.Production.WorkCenterTag` (sıra 1) |
|
|||
|
|
| Yetki | `App.Production.WorkCenterTag` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` |
|
|||
|
|
| Açıklama | İş Merkezi Etiketleri — iş merkezlerini sınıflandırmak için kullanılan etiketler (boyahane, apre, montaj…). |
|
|||
|
|
| Geliştirme talebi | Inventory -> Tanımlamalar |
|
|||
|
|
| Kaynak | `Prd_T_WorkCenterTag` · filtre `"IsDeleted" = 'false'` |
|
|||
|
|
| Görünümler | Grid, Card, Pivot, Chart (açılış grid) |
|
|||
|
|
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
|
|||
|
|
| Kapsam | Kiracı |
|
|||
|
|
| Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` |
|
|||
|
|
| Veri aynası | `data/App.Production.WorkCenterTag.json` |
|
|||
|
|
|
|||
|
|
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
|
|||
|
|
| --- | --- | --- | --- | --- | --- |
|
|||
|
|
| `Name` | Ad | dxTextBox | ✓ | ✓ | |
|
|||
|
|
| `Color` | Renk | dxColorBox | | ✓ | |
|
|||
|
|
| `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | |
|
|||
|
|
|
|||
|
|
#### İş Merkezleri — `App.Production.WorkCenter`
|
|||
|
|
|
|||
|
|
| Özellik | Değer |
|
|||
|
|
| --- | --- |
|
|||
|
|
| Wizard | `wizard/WorkCenter.json` |
|
|||
|
|
| Yol | Liste (Wizard) |
|
|||
|
|
| Menü | `App.Production.Definitions` › `App.Production.WorkCenter` (sıra 2) |
|
|||
|
|
| Yetki | `App.Production.WorkCenter` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` |
|
|||
|
|
| Açıklama | İş Merkezleri — operasyonların yapıldığı makine ya da istasyonlar (ör. ram makinası). |
|
|||
|
|
| Geliştirme talebi | Inventory -> Tanımlamalar |
|
|||
|
|
| Kaynak | `Prd_T_WorkCenter` · filtre `"IsDeleted" = 'false'` |
|
|||
|
|
| Görünümler | Grid, Card, Pivot, Chart (açılış grid) |
|
|||
|
|
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
|
|||
|
|
| Kapsam | Kiracı |
|
|||
|
|
| Alt formlar | `App.Production.WorkCenterGeneral` (Id → Id), `App.Production.WorkCenterCapacity` (Id → WorkCenterId) |
|
|||
|
|
| Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` |
|
|||
|
|
| Form varsayılanları | IsActive=true |
|
|||
|
|
| Veri aynası | `data/App.Production.WorkCenter.json` |
|
|||
|
|
|
|||
|
|
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
|
|||
|
|
| --- | --- | --- | --- | --- | --- |
|
|||
|
|
| `Name` | İş Merkezi Adı | dxTextBox | ✓ | ✓ | |
|
|||
|
|
| `Code` | Kod | dxTextBox | | ✓ | |
|
|||
|
|
| `Tags` | Etiketler | dxTagBox | | ✓ | sorgu: Prd_T_WorkCenterTag |
|
|||
|
|
| `WeeklyWorkingHours` | Çalışma Saatleri (Haftalık) | dxNumberBox | ✓ | ✓ | |
|
|||
|
|
| `AlternativeWorkCenterIds` | Alternatif İş Merkezleri | dxTagBox | | ✓ | sorgu: Prd_T_WorkCenter |
|
|||
|
|
| `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | |
|
|||
|
|
|
|||
|
|
#### Operasyonlar — `App.Production.Operation`
|
|||
|
|
|
|||
|
|
| Özellik | Değer |
|
|||
|
|
| --- | --- |
|
|||
|
|
| Wizard | `wizard/Operation.json` |
|
|||
|
|
| Yol | Liste (Wizard) |
|
|||
|
|
| Menü | `App.Production.Definitions` › `App.Production.Operation` (sıra 3) |
|
|||
|
|
| Yetki | `App.Production.Operation` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` |
|
|||
|
|
| Açıklama | Operasyonlar — bir iş merkezinde yapılan üretim adımları (ör. ram makinasında Apre). |
|
|||
|
|
| Geliştirme talebi | Inventory -> Tanımlamalar |
|
|||
|
|
| Kaynak | `Prd_T_Operation` · filtre `"IsDeleted" = 'false'` |
|
|||
|
|
| Görünümler | Grid, Card, Pivot, Chart (açılış grid) |
|
|||
|
|
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
|
|||
|
|
| Kapsam | Kiracı |
|
|||
|
|
| Alt formlar | `App.Production.OperationInstruction` (Id → OperationId) |
|
|||
|
|
| Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` |
|
|||
|
|
| Form varsayılanları | IsActive=true |
|
|||
|
|
|
|||
|
|
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
|
|||
|
|
| --- | --- | --- | --- | --- | --- |
|
|||
|
|
| `Name` | Operasyon Adı | dxTextBox | ✓ | ✓ | |
|
|||
|
|
| `WorkCenterId` | İş Merkezi | dxSelectBox | ✓ | ✓ | sorgu: Prd_T_WorkCenter |
|
|||
|
|
| `DefaultDurationMin` | Varsayılan Süre (dk) | dxNumberBox | ✓ | ✓ | |
|
|||
|
|
| `ApplyOnVariants` | Varyantlara Uygula | dxTagBox | | ✓ | sorgu: Inv_T_AttributeValue |
|
|||
|
|
| `CostBasis` | Maliyete Dayalı | dxRadioGroup | ✓ | ✓ | liste: Actual, Theoretical |
|
|||
|
|
| `DurationMode` | Süre Hesaplama | dxRadioGroup | ✓ | ✓ | liste: Fixed, Computed |
|
|||
|
|
| `IsActive` | Aktif | dxCheckBox | ✓ | ✓ | |
|
|||
|
|
|
|||
|
|
#### Genel Bilgi — `App.Production.WorkCenterGeneral`
|
|||
|
|
|
|||
|
|
| Özellik | Değer |
|
|||
|
|
| --- | --- |
|
|||
|
|
| Wizard | `wizard/WorkCenterGeneral.json` |
|
|||
|
|
| Yol | Liste (Wizard) |
|
|||
|
|
| Menü | Menüsüz (alt form) |
|
|||
|
|
| Yetki | `App.Production.WorkCenterGeneral` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` |
|
|||
|
|
| Açıklama | İş Merkezi Genel Bilgi — iş merkezinin üretim ve maliyetlendirme bilgileri. |
|
|||
|
|
| Geliştirme talebi | Inventory -> Tanımlamalar |
|
|||
|
|
| Kaynak | `Prd_T_WorkCenter` · filtre `"IsDeleted" = 'false'` |
|
|||
|
|
| Görünümler | Grid, Card, Pivot, Chart (açılış grid) |
|
|||
|
|
| Düzenleme | ekle ✗ · düzenle ✓ · sil ✗ · popup |
|
|||
|
|
| Kapsam | Kiracı |
|
|||
|
|
|
|||
|
|
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
|
|||
|
|
| --- | --- | --- | --- | --- | --- |
|
|||
|
|
| `TimeEfficiency` | Zaman Verimliliği (%) | dxNumberBox | ✓ | ✓ | |
|
|||
|
|
| `OeeTarget` | OEE Hedefi (%) | dxNumberBox | ✓ | ✓ | |
|
|||
|
|
| `SetupTimeMin` | Kurulum Zamanı (dk) | dxNumberBox | | ✓ | |
|
|||
|
|
| `CleanupTimeMin` | Temizlik Zamanı (dk) | dxNumberBox | | ✓ | |
|
|||
|
|
| `CostPerHour` | Saat Başına Maliyet (İş Merkezi) | dxNumberBox | | ✓ | |
|
|||
|
|
| `EmployeeCostPerHour` | Saat Başına Maliyet (Çalışan) | dxNumberBox | | ✓ | |
|
|||
|
|
| `Description` | Açıklama | dxTextArea | | ✓ | |
|
|||
|
|
|
|||
|
|
#### Ürün Kapasitesi — `App.Production.WorkCenterCapacity`
|
|||
|
|
|
|||
|
|
| Özellik | Değer |
|
|||
|
|
| --- | --- |
|
|||
|
|
| Wizard | `wizard/WorkCenterCapacity.json` |
|
|||
|
|
| Yol | Liste (Wizard) |
|
|||
|
|
| Menü | Menüsüz (alt form) |
|
|||
|
|
| Yetki | `App.Production.WorkCenterCapacity` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` |
|
|||
|
|
| Açıklama | İş Merkezi Ürün Kapasitesi — iş merkezinin bir çevrimde bir üründen kaç birim işleyebildiği. |
|
|||
|
|
| Geliştirme talebi | Inventory -> Tanımlamalar |
|
|||
|
|
| Kaynak | `Prd_T_WorkCenterCapacity` · filtre `"IsDeleted" = 'false'` |
|
|||
|
|
| Görünümler | Grid, Card, Pivot, Chart (açılış grid) |
|
|||
|
|
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
|
|||
|
|
| Kapsam | Kiracı |
|
|||
|
|
|
|||
|
|
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
|
|||
|
|
| --- | --- | --- | --- | --- | --- |
|
|||
|
|
| `WorkCenterId` | İş Merkezi | dxSelectBox | | | sorgu: Prd_T_WorkCenter |
|
|||
|
|
| `ProductId` | Ürün | dxSelectBox | ✓ | ✓ | sorgu: Inv_T_Product |
|
|||
|
|
| `Capacity` | Kapasite | dxNumberBox | ✓ | ✓ | |
|
|||
|
|
| `UomId` | Birim | dxSelectBox | | ✓ | sorgu: Adm_T_Uom |
|
|||
|
|
| `SetupTimeMin` | Kurulum Zamanı (dk) | dxNumberBox | | ✓ | |
|
|||
|
|
| `CleanupTimeMin` | Temizlik Zamanı (dk) | dxNumberBox | | ✓ | |
|
|||
|
|
|
|||
|
|
#### Açıklamalar — `App.Production.OperationInstruction`
|
|||
|
|
|
|||
|
|
| Özellik | Değer |
|
|||
|
|
| --- | --- |
|
|||
|
|
| Wizard | `wizard/OperationInstruction.json` |
|
|||
|
|
| Yol | Liste (Wizard) |
|
|||
|
|
| Menü | Menüsüz (alt form) |
|
|||
|
|
| Yetki | `App.Production.OperationInstruction` + `.Create`, `.Update`, `.Delete`, `.Export`, `.Import`, `.Note` |
|
|||
|
|
| Açıklama | Operasyon Açıklamaları — bir operasyonda operatöre gösterilen iş talimatları. |
|
|||
|
|
| Geliştirme talebi | Inventory -> Tanımlamalar |
|
|||
|
|
| Kaynak | `Prd_T_OperationInstruction` · filtre `"IsDeleted" = 'false'` |
|
|||
|
|
| Görünümler | Grid, Card, Pivot, Chart (açılış grid) |
|
|||
|
|
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
|
|||
|
|
| Kapsam | Kiracı |
|
|||
|
|
|
|||
|
|
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
|
|||
|
|
| --- | --- | --- | --- | --- | --- |
|
|||
|
|
| `OperationId` | Operasyon | dxSelectBox | | | sorgu: Prd_T_Operation |
|
|||
|
|
| `Title` | Başlık | dxTextBox | ✓ | ✓ | |
|
|||
|
|
| `InstructionType` | Tip | dxSelectBox | ✓ | ✓ | liste: Text, Pdf, Image, Link |
|
|||
|
|
| `Reference` | Referans | dxTextBox | | ✓ | |
|
|||
|
|
| `Note` | Not | dxTextArea | | ✓ | |
|
|||
|
|
| `SortOrder` | Sıra | dxNumberBox | | ✓ | |
|
|||
|
|
|
|||
|
|
<!-- module-doc:auto:end -->
|