🤝

الجيران: المبيعات والموارد والجودة والصيانة والواجهة (Sales, HRM, QMS, CMMS & Frontend)

موديول التصنيع ليس جزيرة منعزلة؛ فهو يستهلك الطلب من المبيعات، ويأخذ معدلات الأجور من الموارد البشرية لتسعير تأكيدات العمالة، ويربط فحوص الجودة وتقارير عدم المطابقة بموديول الجودة القائم بدلاً من بناء جداول جودة داخلية، ويعامل مراكز العمل والقوالب كأصول قابلة للصيانة في موديول الصيانة. أما الواجهة الأمامية فتتبع نمطاً موحَّداً من المسارات الكسولة وحُرّاس الصلاحيات ومكوّنات الجداول والحوارات والطباعة المشتركة، مع شاشة طرفية لمسية لأرضية المصنع.

1. المبيعات: مصدر الطلب لخطة الإنتاج الرئيسية (Sales → MPS Demand)

يقرأ التصنيع الطلبات المؤكَّدة من جدول sales_orders وبنوده sales_order_items لتغذية خطة الإنتاج الرئيسية (MPS) عبر حقل confirmed_orders_qty، ولربط أوامر التشغيل بالطلب عبر جدول الربط Pegging (علاقة كثير-لكثير بين الطلب والإنتاج). جدول sales_orders يملك بالفعل expected_delivery_date وdelivery_status وstatus، وبند الطلب يتتبّع delivered_quantity وinvoiced_quantity.

فجوة لا يوجد في sales_orders أي حقل «وعد التسليم المتاح» (ATP/CTP) ولا حقل رجوعي يحمل التاريخ المُتعهَّد به من التصنيع؛ الوعد بالتسليم القائم يدوي (expected_delivery_date) دون ربط بقدرة الإنتاج (استنتاج). يلزم خطّاف (Action) من التصنيع يكتب التاريخ المُتعهَّد ويُحدِّث delivery_status عند الربط (Pegging).

2. الموارد البشرية: العمالة وتسعير التأكيدات (HRM → Labor Costing)

تأكيدات العمليات (Confirmation) تُسجِّل ساعات/كميات العامل، ويجب تسعيرها من بيانات الموارد البشرية. جدول employees يربط الموظف بالمستخدم عبر user_id (سلسلة employees.user_id → users.id)، ويملك basic_salary فقط. الورديات في shifts (start_time, end_time, working_hours, is_night_shift) والحضور في attendances (worked_hours, overtime_hours).

فجوة جوهرية لا يوجد حقل «أجر بالساعة» (hourly_rate) ولا «أجر بالقطعة» (piece_rate) على مستوى الموظف؛ الأجر بالساعة مُشتَقّ حسابياً داخل PayrollService من basic_salary / salaryDays / hoursPerDay فقط. وبما أن مواصفات التصنيع تتطلب وضعين (labor_calc ∈ {Hourly, PieceRate})، يلزم مصدر معدّل صريح للتأكيدات، إما حقل جديد أو خدمة معدّلات في الموارد البشرية (استنتاج).

3. الجودة: الفحص أثناء التشغيل وعدم المطابقة على الهالك (QMS Replaces Spec-Internal Quality)

تنصّ المواصفة صراحةً (ملف 06 §6.5) على أن «إدارة الجودة» مرحلة لاحقة تتعلّق بتأكيدات الإنتاج (الدرجات/أكواد الأسباب وبوابات الفحص على العمليات) — وموديول الجودة القائم يغطّيها بالفعل، فلا حاجة لبناء جداول جودة داخل التصنيع. الأهم: جداول qms_inspection_plans وqms_inspections تحمل بالفعل عمود production_order_id، أي أنها صُمِّمت أصلاً للربط بأوامر التشغيل.

حاجة المواصفة (Spec need)المتوفّر في الجودة (QMS has)الربط
بوابة فحص على العملية (inspection_required على Routing_Operation)qms_inspection_plans + qms_inspection_criteriatype='in_process' مع production_order_id
تسجيل نتيجة الفحص أثناء التأكيدqms_inspections (quantity_inspected/accepted/rejected, result) + qms_inspection_resultsعمود production_order_id موجود
تقرير عدم مطابقة على الهالك (NCR)qms_non_conformances (ncr_number, type, severity, root_cause)عبر inspection_id ومن ثم production_order_id
إجراء تصحيحي/وقائي على تكرار العيوبqms_capa_actions (capa_number, type, effectiveness_check)عبر non_conformance_id

فجوة لا يوجد عمود مفتاح أجنبي رسمي على qms_inspections.production_order_id (مجرّد unsignedBigInteger دون constrained) لأن جداول التصنيع لم تُنشأ بعد؛ كما تنقص رابطة operation_no لتثبيت الفحص على عملية بعينها (استنتاج).

4. الصيانة: مراكز العمل والقوالب كأصول (CMMS → Work Centers & Molds)

تنصّ المواصفة (§6.5) على أن الصيانة (PM) «تُقلِّل قدرة مركز العمل أثناء نوافذ التوقّف». موديول الصيانة يوفّر cmms_assets (مع specifications JSON وparent_asset_id) ليمثّل الآلة/القالب كأصل، وcmms_pm_schedules للصيانة الدورية، وcmms_work_orders لأوامر الصيانة بحقل downtime_hours وfailure_code ونوع WorkOrderType ∈ {Preventive, Corrective}.

فجوة لا يوجد جدول قراءات عدّاد (مثل cmms_asset_meters) يجمع عدد ضربات القالب التراكمي (cycles_used في المواصفة) ليُطلِق صيانة العتبة؛ الحقل meter_field نصّي فقط دون مصدر بيانات تراكمي. كما أن cmms_work_order_labor يربط بـuser_id لا بـemployee_id (استنتاج).

5. الواجهة الأمامية: تنظيم الموديول والحُرّاس والشاشة الطرفية (Frontend Conventions)

الواجهة Angular مستقلّة المكوّنات (Standalone) بمسارات كسولة. كل موديول مجموعة مسارات تحت حارس الموديول moduleGuard (يمنع تجاوز تعطيل الموديول)، وكل مسار فرعي تحت permissionGuard مع data.permissions ببادئة الموديول (مثل ['manufacturing.']). المكوّنات تُحمَّل عبر loadComponent الكسول.

العنصر (FE element)الملف/النمطالاستخدام للتصنيع
مجموعة مسارات الموديولapp.routes.ts (canActivate: [moduleGuard])مسار manufacturing بأطفال لكل شاشة
حارس الصلاحياتcore/guards/auth.guard.ts (permissionGuard)data: { permissions: ['manufacturing.bom'] }
جدول البيانات المشتركshared/components/data-table/data-table.component.tsقوائم أوامر التشغيل/BOM/التأكيدات
حوار النموذج المشتركshared/components/form-dialog/form-dialog.component.tsإنشاء/تعديل BOM، إصدار أمر تشغيل
تنقّل الموديولshared/components/module-nav/module-nav.component.tsشريط جانبي لورشة التصنيع
الطباعةshared/print/print.service.ts + print-templates.tsأمر تشغيل، إذن صرف مواد، استلام تام
تخطيط طرفية لمسيةfeatures/pos/pos-layout/ (مرجع نمط)شاشة أرضية المصنع لمسية لكل مركز عمل
  1. ورشة التصنيع: تخطيط (manufacturing-layout) + لوحة + بيانات أساسية (BOM/Routing/Work Center/Tool).
  2. شاشات التخطيط (MPS/MRP/CRP) والتنفيذ (أمر تشغيل، صرف مواد، تأكيد، استلام).
  3. شاشة طرفية لمسية لأرضية المصنع: أهداف لمس كبيرة، أزرار [Start]/[Done]، طابور الأوامر الجاهزة، إدخال كمية/درجة/هالك — على نمط pos-layout.
  4. لوحة إشراف حيّة (Real-time Dashboard) تعرض موضع كل أمر وكشف الاختناقات.
4جيران تكامل (Sales/HRM/QMS/CMMS)
2جداول جودة جاهزة بـ production_order_id
3فجوات جوهرية (ATP، معدّل أجر، عدّاد قالب)
0جداول جودة داخلية مطلوبة (تُستبدَل بـQMS)