صرف نظر و مشاهده محتوا

پلتفرم ردیابی GPS ما اکنون در Odoo 19 اجرا می‌شود – توسعه‌ی اختصاصی، با یکپارچه‌سازی جدید

18 سپتامبر 2026 توسط
پلتفرم ردیابی GPS ما اکنون در Odoo 19 اجرا می‌شود – توسعه‌ی اختصاصی، با یکپارچه‌سازی جدید
Alexander Biringer | Biricon IT Services GmbH

سال‌هاست که برای مشتریان خود یک پلتفرم ردیابی GPS اختصاصی راه‌اندازی کرده‌ایم: خودروها و دستگاه‌ها موقعیت خود را به سرور ردیابی ما گزارش می‌دهند، مشتریان ناوگان خود را به‌صورت زنده روی نقشه می‌بینند، دفتر ثبت سفر نگه می‌دارند، ژئوزون تعریف می‌کنند و هنگام هشدارها اطلاع‌رسانی می‌شوند. رابط کاربری آن یک برنامه‌ی PHP تدریجاً رشدیافته با مدیریت کاربر، صورت‌حساب‌دهی و گزارش‌دهی مخصوص خود بود – موازی با هر آنچه در بقیه‌ی شرکت به کار می‌بریم.

این را اکنون تغییر داده‌ایم. ردیابی از همین حالا یک ماژول در Odoo 19 Community ماست و بدین ترتیب بخشی از همان سیستمی است که مشتریان، قراردادها، فاکتورها و پشتیبانی هم در آن اجرا می‌شوند. برای مشتریان ردیابی ما این یعنی: یک ورود، یک رابط کاربری، و فاکتور ردیابی در همان جایی است که همه‌ی فاکتورهای دیگر هستند.

چرا ردیابی را به Odoo آوردیم

دو سیستم جداگانه یعنی داده‌های پایه‌ی دوگانه. هر مشتری یک بار در ردیابی و یک بار در ERP وجود داشت، هر تغییر نشانی باید دو بار انجام می‌شد و اجرای صورت‌حساب ردیابی اسنادی تولید می‌کرد که بعد دستی به حسابداری منتقل می‌شدند.

با انتقال به Odoo اکنون یک اصل ساده برقرار است: داده‌های پایه در Odoo، داده‌های حجیم بیرون از آن. مشتریان، کاربران، ردیاب‌ها، گروه‌ها، ژئوزون‌ها، محصولات و قیمت‌ها در Odoo قرار دارند و در آن‌جا به حسابداری، پورتال و مدیریت دسترسی متصل‌اند. داده‌های موقعیت – جریان واقعی داده‌ی دستگاه‌ها، شبانه‌روز – در یک ذخیره‌ساز موقعیت جداگانه می‌مانند. پایگاه داده‌ی ERP جای درستی برای میلیون‌ها نقطه‌ی GPS نیست، و لازم هم نیست باشد.

سرور ردیابی که دستگاه‌ها را می‌پذیرد، از این تغییر دست‌نخورده است. همین است که اصلاً این بازسازی را واقع‌بینانه کرد: رابط کاربری می‌توانست از نو ساخته شود، بی‌آن‌که به دریافت داده دست بزنیم.

اکنون مشتریان ما در پورتال چه دارند

مشتریان ردیابی در پورتال مشتری Odoo وارد می‌شوند و در آن‌جا بخش ردیابی را می‌یابند. هر که فقط از ردیابی استفاده می‌کند، پس از ورود مستقیماً روی نقشه می‌رسد و محتوای دیگری از پورتال نمی‌بیند.

نقشه‌ی زنده

نقشه همه‌ی خودروهای خودی و به‌اشتراک‌گذاشته‌شده را با وضعیت (در حرکت، ایستاده، آفلاین)، سرعت، جهت حرکت و نشانی تبدیل‌شده نشان می‌دهد. موقعیت‌ها به‌صورت بلادرنگ از طریق یک اتصال WebSocket به سرور ردیابی می‌رسند – یک اتصال برای کل نصب، نه یکی برای هر مرورگر باز – و به‌صورت فیلترشده توزیع می‌شوند: هر مشتری فقط خودروهایی را می‌گیرد که متعلق به او هستند یا برایش به اشتراک گذاشته شده‌اند. خودروها میان دو گزارش به‌جای پریدن، به‌صورت روان حرکت می‌کنند.

به‌عنوان نقشه‌ی پایه، OpenStreetMap، یک نقشه‌ی زمین، Basemap رسمی اتریش به‌همراه تصویر هوایی و یک نقشه‌ی سیاه‌وسفید قابل انتخاب است؛ زمین و ساختمان‌های سه‌بعدی را می‌توان به‌صورت لایه فعال کرد. نمایی که نقشه با آن باز می‌شود – نوع نقشه، محدوده، گروه پیش‌فرض – را Odoo برای هر کاربر به خاطر می‌سپارد.

دفتر ثبت سفر Biricon - GPSSpot
دفتر ثبت سفر Biricon - GPSSpot


دفتر ثبت سفر با سفر شرکتی و خصوصی

سفرها در سرور تشخیص داده می‌شوند، نه در مرورگر: یک سفر حتی وقتی کسی نقشه را باز نکرده باشد هم ثبت می‌شود. آغاز، پایان، نشانی مبدأ و مقصد، کیلومترشمار، مسافت و مدت برای هر سفر ثبت می‌شود.

هر سفر را می‌توان به‌عنوان سفر شرکتی یا سفر خصوصی طبقه‌بندی کرد – برای هر سفر، نه برای هر خودرو، چون یک خودرو صبح به سمت مشتری و عصر به سمت خانه می‌رود و این تفکیک در اتریش از نظر مالیاتی اهمیت دارد. هنگام شروع سفر، پنجره‌ی طبقه‌بندی مستقیماً روی نقشه ظاهر می‌شود؛ هر که بعداً این کار را بکند، سفر را همراه با فیلد یادداشت در دفتر ثبت سفر پیدا می‌کند. اگر خودرو مجهز به آن باشد، رانندگان از طریق تراشه‌های کلید iButton شناسایی می‌شوند.

دو گزارش آماده است، هر دو به‌صورت PDF و Excel:

  • دفتر ثبت سفر تکی – سفرهای یک خودرو در بازه‌ی انتخاب‌شده با مسیر، طبقه‌بندی و یادداشت
  • دفتر ثبت سفر ناوگان – یک ردیف برای هر خودرو با زمان رانندگی، مسافت، تفکیک کیلومتر شرکتی و خصوصی و مصرف برآوردشده، به‌علاوه‌ی جمع‌های گروهی و کل


 

ژئوزون‌ها و هشدارها

ژئوزون‌ها مستقیماً روی نقشه کشیده می‌شوند – به‌صورت دایره، مربع یا چندضلعی آزاد – یا از قالب‌های مشترکی مانند «اتریش» یا «وین» برداشته می‌شوند. برای هر زون و خودرو می‌توان تعیین کرد که هنگام ورود یا خروج هشدار داده شود و به کجا: از طریق پیامک، ایمیل، Webhook یا به‌صورت پیام به مرکز تماس ما.

هشدارها – تغییر زون، سرعت، سوئیچ، افت ولتاژ، اضطراری، حرکت، آفلاین – به‌صورت رکوردهای مستقل در Odoo ثبت می‌شوند، با زمان، موقعیت و وضعیت پردازش.


جست‌وجو: کدام خودرو این‌جا بود؟

یک قبض جریمه می‌رسد، محل اندازه‌گیری روی آن نوشته شده – اما کدام خودرو بود؟ جست‌وجو در مسیر پیموده‌شده دقیقاً همین را پاسخ می‌دهد: یک نقطه روی نقشه یا یک نشانی را برگزینید، شعاع و بازه‌ی زمانی را محدود کنید، و ردیابی نشان می‌دهد کدام خودروها آن‌جا بوده‌اند. ایستگاه‌های اندازه‌گیری سرعت از OpenStreetMap برای این منظور هم‌اکنون به‌صورت یک لایه روی نقشه قرار دارند.

مدیریت توسط خود مشتری

آنچه پیش‌تر باید به ما واگذار می‌شد، اکنون مشتریان در پورتال خودشان انجام می‌دهند:

  • فعال‌سازی ردیاب – IMEI را از برچسب دستگاه وارد کنید، گروه را انتخاب یا از نو ایجاد کنید، تمام
  • ردیاب‌ها و گروه‌ها – عنوان‌ها، نمادها، تخصیص گروه، سوخت‌گیری‌ها با مقدار و قیمت، گزارش‌ها به تفکیک خودرو
  • مجوزها – اشتراک‌گذاری خودروها با کاربران یا شرکت‌های دیگر، با حق خواندن یا نوشتن و امکان پنهان‌کردن فیلدهای مشخصی مانند نشانی یا کیلومترشمار
  • ژئوزون‌ها – کشیدن، ویرایش، تعیین هشداردهی
  • iButtonها – تخصیص تراشه‌های کلید به نام رانندگان

چه چیزی در داخل برای ما تغییر کرد

در بک‌اند Odoo بخش ردیابی وجود دارد با نقشه‌ی زنده، مدیریت ردیاب، هشدارها، سفرها، داده‌های پایه (گروه‌ها، ژئوزون‌ها، انواع دستگاه، سازندگان) و محاسبه‌ی صورت‌حساب.

مدیریت ردیاب. هر دستگاه دارای IMEI، شماره‌ی سیم‌کارت، نوع دستگاه، ورودی‌ها و خروجی‌ها (سوئیچ، قفل موتور، بخاری پارک و موارد دیگر)، کالیبراسیون، اصلاح کیلومترشمار، آستانه‌ی آفلاین و پارامترهای دفتر ثبت سفر است. تاریخچه‌ی Chatter در Odoo هر تغییر را ثبت می‌کند.

پیامک به دستگاه‌ها. ردیاب‌ها با پیامک پیکربندی می‌شوند. ارسال اکنون از درون Odoo انجام می‌شود، بدون شکاف ثبت می‌شود و در برابر اشتباه کاربر ایمن شده است: یک سقف برای هر عملیات ارسال مانع از آن می‌شود که یک کلیک صدها پیام پولی ایجاد کند و شماره‌های ناقص اصلاً ارسال نمی‌شوند.

مرکز تماس. گزارش‌های سرقت و تصادف به‌صورت پرونده با داده‌های خودرو، اطلاعات تماس مالک و یک روند هدایت‌شده ظاهر می‌شوند: به مالک دسترسی پیدا شد؟ هشدار کاذب؟ اقدامات بیشتر؟ هر مرحله ثبت می‌شود و مسئولان مربوط با Push اطلاع‌رسانی می‌شوند.

محاسبه‌ی صورت‌حساب. اجرای صورت‌حساب همه‌ی ردیاب‌هایی را که موعد صورت‌حساب بعدی‌شان رسیده در نظر می‌گیرد و از آن‌ها در Odoo پیش‌نویس فاکتور می‌سازد – با قیمت مشتری نهایی یا شریک. تأیید عمداً در اختیار حسابداری می‌ماند: اجرا چیزی ثبت نمی‌کند، فقط آماده می‌کند. بازه‌ی صورت‌حساب، محصول و موعد بعدی به ردیاب وابسته‌اند؛ پس از اجرا، ردیف‌های فاکتور مستقیماً روی دستگاه دیده می‌شوند.

معماری پشت آن

دستگاه‌های GPS
    │
    ▼
سرور ردیابی  ──►  ذخیره‌ساز موقعیت          Odoo 19 Community
(بدون تغییر)        امروز:  پایگاه داده‌ی          ├─ داده‌های پایه (ردیاب، مشتری، ژئوزون)
                             موجود           ├─ پورتال مشتری  /my/ortung
                     بعداً: PostGIS             ├─ بک‌اند  ردیابی / …
                                  ▲              ├─ محاسبه‌ی صورت‌حساب (پیش‌نویس فاکتور)
                                  └── فقط خواندنی ─┘

دسترسی به موقعیت‌ها فقط از طریق یک رابط قابل‌جایگزینی انجام می‌شود. امروز Odoo از پایگاه داده‌ی ردیابی موجود می‌خواند که سرور ردیابی همچنان بدون تغییر آن را پر می‌کند. بنابراین گذار به یک سرور PostGIS اختصاصی یک تغییر پیکربندی است، نه بازسازی – محاسبات مکانی مانند بررسی ژئوزون‌ها را آن‌گاه خود PostGIS انجام می‌دهد. برای توسعه و آموزش افزون بر این یک ذخیره‌ساز نمایشی با داده‌های مصنوعی وجود دارد که ماژول را حتی بدون سرور ردیابی اجرا می‌کند.

نشانی‌ها از طریق یک Geocoder اختصاصی تبدیل و در Odoo حافظه‌ی نهان می‌شوند، با گردکردن تا حدود یازده متر: یک خودروی ایستاده با هر نوسان GPS دوباره تبدیل نمی‌شود و نقشه به زمان پاسخ یک سرویس خارجی وابسته نیست.

روند مهاجرت چگونه گذشت

ما یک‌باره منتقل نشدیم، بلکه تکه‌تکه و بر اساس الگوی Strangler: سیستم قدیمی اجراپذیر ماند، یک Reverse Proxy برای هر مسیر تصمیم می‌گرفت چه کسی پاسخ دهد و نقشه‌ی جدید ابتدا برای یک گروه آزمایشی به‌صورت موازی در کنار نقشه‌ی قدیمی اجرا می‌شد.

انتقال داده‌های پایه حساس‌ترین بخش بود. یک اسکریپت مهاجرت مشتریان، کاربران، ردیاب‌ها، گروه‌ها و ژئوزون‌ها را از برنامه‌ی قدیمی می‌خواند و در Odoo ایجاد می‌کند – قابل تکرار به‌صورت اجرای Delta، با شناسه‌ی قدیمی به‌عنوان کلید. از آن‌جا که بسیاری از مشتریان ردیابی مدت‌هاست در Odoo به‌عنوان شریک تجاری وجود داشتند، یک دستیار تطبیق‌هایی پیشنهاد می‌کند که باید تک‌تک تأیید شوند: شرکتی که اشتباه پیوند خورده باشد، خودروهای دیگران را می‌بیند و این گران‌تر از یک رکورد تکراری است.

آنچه عمداً منتقل نشد: پایگاه کد دوگانه برای دسکتاپ و موبایل (فرانت‌اند Odoo واکنش‌گرا است)، جدول ترجمه‌ی اختصاصی، مدیریت مجوز و نشست اختصاصی و یک دوجین گزارش که در عمل دیگر کسی باز نمی‌کرد.

این برای شما به‌عنوان مشتری چه معنایی دارد

اگر مشتری ردیابی ما هستید، دسترسی پورتال خود را یا پیش‌تر دریافت کرده‌اید یا در هفته‌های آینده دریافت می‌کنید. خودروها، گروه‌ها، ژئوزون‌ها و مجوزهای شما منتقل شده‌اند؛ دفتر ثبت سفر بدون وقفه ادامه می‌یابد.

در یک پورتال، ردیابی، فاکتورها و درخواست‌های پشتیبانی خود را می‌یابید. و اگر بیش از ردیابی می‌خواهید – Helpdesk، قراردادهای نگهداری، صورت‌حساب پروژه – همان سیستم است.

با کمال میل به پرسش‌های مربوط به مهاجرت پاسخ می‌دهیم. و هر که برای شرکت خود ردیابی خودرویی می‌خواهد که به ERP متصل باشد، نه این‌که کنار آن بایستد: با ما تماس بگیرید.