ما هي طريقة وخطوات تجهيز استيراد معلومات الحضور والانصراف من ماكينة البصمه في حالة ان العميل عندو 6 ماكينات بصمه في فروع مختلفه
ما هي طريقة وخطوات تجهيز استيراد معلومات الحضور والانصراف من ماكينة البصمه في حالة ان العميل عندو 6 ماكينات بصمه في فروع مختلفه
الوضع الطبيعي مع ستة فروع هو: سجل "إعدادات ماكينة الحضور" واحد لكل فرع، ونسخة من تطبيق attcron داخل كل فرع. كل نسخة من التطبيق مرتبطة بكود إعدادات واحد فقط، فلا تستطيع نسخة واحدة أن تخدم فرعين.
الاستثناء الوحيد: إذا كانت الماكينات الست تُغذّي برنامجاً أو قاعدة بيانات مركزية واحدة (مثل خادم ZkBioTime واحد لكل الشركة)، فيكفي حينها سجل إعدادات واحد ونسخة واحدة من التطبيق.
تأكد من الترخيص. التكامل الآلي مقيّد بإضافة منفصلة (humanresource-attendance-import-cron) غير ترخيص الرواتب الأساسي. إن لم تظهر شاشة "إعدادات ماكينة الحضور" فراجع مدير حسابك.
جهّز أكواد الموظفين. املأ حقل كود آلة الحضور والإنصراف (attendanceMachineCode) على كل موظف — راجع النقطة الأولى في قسم "أمور تخص حالة الفروع المتعددة" أدناه قبل توزيع الأكواد.
أنشئ ملف API Credentials في النظام واحتفظ بـ Client ID و Client Secret. يمكن استخدام نفس الملف لكل الفروع، أو ملف لكل فرع إن أردت تتبّعاً أدق.
أنشئ سجل إعدادات لكل فرع من: الرواتب ← حضور / إنصراف ← إعدادات ماكينة الحضور. أعطِ كل سجل كوداً يدل على فرعه (مثلاً ATT-JED, ATT-RUH)، وحدد:
0 5 * * * * تعني "كل ساعة عند الدقيقة الخامسة". أمثلة crontab.guru ذات الخمسة حقول لن تعمل.جهّز المهمة المجدولة التي تحوّل البصمات الخام إلى مستند الحضور والانصراف. زر Create Task Schedule ينشئها معبّأة مسبقاً، لكن عدّل استعلام المستند فيها: هو يثبّت دفتر TAB وكود شركة 1.
ثبّت attcron داخل كل فرع على جهاز يرى الماكينة (JDK 21 + Apache Tomcat 10 بوضع Automatic)، وأدخل عند أول تشغيل عنوان الخادم و Client ID/Secret وكود سجل الإعدادات الخاص بذلك الفرع. لا يحتاج الفرع إلى IP ثابت — يكفي أن يصل إلى خادم النظام.
تحقق من التشغيل من تبويبة الإحصائيات في سجل الإعدادات: اخر وقت اتصال يخبرك إن كان التطبيق حياً، وصندوق الوارد يخبرك إن كانت هناك قراءات متعثرة.
تعارض أكواد الموظفين بين الماكينات هو أكثر خطأ يقع. الماكينات غالباً تبدأ الترقيم من 1 في كل فرع، والمهمة المجدولة الافتراضية تطابق البصمة بالموظف عبر كود الماكينة دون أن تنظر من أي فرع جاءت. النتيجة أن بصمة الموظف رقم 7 في جدة قد تُسجَّل للموظف رقم 7 في الرياض. الحل: اجعل الأكواد فريدة على مستوى الشركة كلها (بادئة للفرع مثلاً)، أو أضف في استعلام المهمة المجدولة فلترة على سجل الإعدادات الذي جاءت منه القراءة.
إن كانت الفروع شركات قانونية مختلفة، فستحتاج مهمة مجدولة منفصلة لكل شركة، لأن استعلام تهيئة المستند يحدد الدفتر والشركة بقيم ثابتة. أما إن كانت كلها شركة واحدة فيمكن لكل السجلات الستة أن تشير إلى نفس المهمة.
بعثر مواعيد الـ cron قليلاً بين الفروع (الدقيقة 5، 10، 15…) بدلاً من أن تصل الدفعات الست في نفس اللحظة.
يمكنك معرفة مصدر كل بصمة: يُخزَّن مع كل قراءة الجهاز الطرفي (terminalSN) والمنطقة (areaAlias) إن كانا ضمن جدول المطابقة.
إعادة الجمع آمنة. القراءة المكررة (نفس الإعداد ونفس الموظف ونفس وقت البصمة) تُتجاوَز، فزر Read For Period في التطبيق لا ينتج تكراراً — استخدمه لتعويض فترة توقفت فيها ماكينة أحد الفروع.