خواندن ریز خلافی: هر فیلد یک تخلف چه میگوید
هر ردیف ریز خلافی کد و نوع تخلف، زمان، محل، مبلغ، شناسهها و دو نشانهٔ تصویر و قابلیت رسیدگی دارد؛ هر فیلد را باید جدا بخوانید.
هر ردیف ریز خلافی یک تخلف است، و هر تخلف را میشود با چند فیلد خواند: نوع و کد تخلف، تاریخ و ساعت، محل، مبلغ، شناسهها، نوع ابلاغ و دو نشانهٔ بله/خیر دربارهٔ تصویر و قابلیت رسیدگی. اگر این فیلدها را درست بخوانید، از یک جدول بلند به تصویری روشن از رفتار یک خودرو میرسید.
استعلام خلافی خودرو با جزئیات همین ردیفها را میدهد. این مقاله میگوید هر فیلد چه میگوید، چه چیزی را نمیگوید و چه اشتباههایی هنگام خواندن پیش میآید.
یک ردیف، فیلد به فیلد
نوع تخلف و کد آن. هر ردیف یک عنوان متنی دارد و یک کد عددی برای همان نوع. برای گروهبندی از کد استفاده کنید، نه از متن، چون متن ممکن است با املاهای مختلف بیاید. برای نمایش به کاربر از متن استفاده کنید.
تاریخ و ساعت وقوع. یک رشتهی شمسی که تاریخ و ساعت را با هم دارد، مثلاً به شکل «سال/ماه/روز - ساعت:دقیقه». برای هر محاسبهٔ زمانی (نسبتدادن به راننده، مقایسه با بازهٔ اجاره)، آن را به یک زمان واقعی تبدیل کنید و منطقهٔ زمانی را ثابت بگیرید.
محل. یک متن آزاد است. به آن به چشم نشانی دقیق نگاه نکنید؛ ممکن است فقط نام محور یا شهر باشد. نقشهکشی خودکار از آن توصیه نمیشود.
مبلغ. مبلغ قابل پرداخت همان تخلف است. بهصورت رشته برمیگردد؛ پیش از جمع زدن به عدد تبدیلش کنید و واحد را در رابط به صورت صریح بنویسید.
شناسههای هر تخلف. هر تخلف شناسهٔ برگه، شناسهٔ پرداخت و شماره سریال خودش را دارد. برای ارجاع به یک تخلف مشخص در پشتیبانی یا اعتراض، شماره سریال همراه تاریخ، کلیدی است که باید ذخیره شود.
نوع ابلاغ. مشخص میکند تخلف چطور به مالک اعلام شده است (مثلاً تحویل حضوری). این فیلد را معمولاً در رابط نشان نمیدهند ولی در بررسی پرونده میتواند به کار بیاید.
نشانهٔ تصویر. میگوید برای آن تخلف تصویر ثبت شده یا نه. خود تصویر در پاسخ نیست.
نشانهٔ قابلیت رسیدگی. میگوید این تخلف قابل بررسی هست یا نه. معنای حقوقی آن را مرجع تعیین میکند؛ ما فقط نشانه را منتقل میکنیم.
چرا فهرست خالی یک نتیجهی خوب است
اگر خودرو تخلفی ندارد، فهرست خالی برمیگردد و پاسخ موفق است. کدی که warnings[0] را بدون بررسی طول میخواند، همینجا میترکد. رابط شما باید برای حالت خالی یک پیام روشن داشته باشد («تخلف ثبتشدهای نیست») و آن را مثل خطا نشان ندهد.
سه الگوی تحلیلی که از ردیفها درمیآید
۱. توزیع نوع تخلف. با گروهبندی بر اساس کد، میبینید بیشتر تخلفها از چه نوعاند. برای ناوگان، این الگو میتواند به سیاست آموزش یا مسیرها اشاره کند. به نظر من هنوز فقط یک نشانه است؛ برای نتیجهگیری باید با دانش عملیاتی خودتان ترکیب شود.
۲. توزیع زمانی. ساعتهای شلوغ، روزهای هفته، یا شبها. تاریخ و ساعت در همان رشته هست؛ فقط باید پارسش کنید.
۳. نسبتدادن به راننده. اگر برنامهٔ تحویل خودرو دارید، با تطبیق زمان تخلف و بازهٔ استفاده، تخلف را به راننده نسبت میدهید. این مهمترین کاربرد تجاری ریز است، و دقیقاً جایی است که مجموع هیچ کمکی نمیکند.
یک تکه کد نمونه
js const parts = (s) => { const [d, t = '00:00'] = s.split(' - '); const [y, m, day] = d.split('/').map(Number); const [hh, mm] = t.split(':').map(Number); return { y, m, day, hh, mm }; };
این فقط شکستن رشته است. تبدیل شمسی به میلادی را با کتابخانهٔ تاریخ معتبر انجام دهید و خودتان از ابتدا پیادهسازی نکنید.
خطاهای رایج در خواندن ردیفها
- مرتبسازی رشتهای تاریخ. تا وقتی سال یکی است درست کار میکند و با عوضشدن سال میشکند. تبدیل به عدد یا تاریخ واقعی.
- جمع زدن مبلغ رشتهای. در جاوااسکریپت جمع دو رشته، الحاق آنهاست. پیش از جمع، به عدد تبدیل کنید.
- اتکا به محل برای تشخیص شهر. محل متن آزاد است.
- فرض اینکه شناسهها عدد صحیحاند. رشته نگهشان دارید.
- فرض اینکه همهٔ ردیفها قابل رسیدگیاند. نشانه را بخوانید.
آنچه ریز خلافی به شما نمیدهد
عکس تخلف را نمیدهد؛ فقط میگوید ثبت شده یا نه. ثبت اعتراض نمیکند. نام راننده را هم نمیگوید و فقط پلاک و مالک (که ورودی بوده) در کار است؛ یعنی اینکه واقعاً چه کسی رانندگی میکرده را خودتان از سوابق تحویل میفهمید. ریز تخلفات همچنین پرداخت انجام نمیدهد. اگر فقط بدهی کل را میخواهید، استعلام مجموع سادهتر است.
چند نکته برای حجم زیاد
برای ناوگان بزرگ پاسخها میتواند طولانی باشد. روی تعداد ردیفهای نمایشدادهشده سقف بگذارید (مثلاً صفحهبندی سمت رابط)، ولی داده کامل را ذخیره کنید. در پایگاه دادهی خودتان، کلید یکتای هر تخلف را ترکیب شماره سریال و شناسهٔ برگه بگیرید تا استعلامهای تکراری ردیفها را دوبارهکاری نکنند.
یک مثال از ردیفهای فرضی
تصور کنید برای یک خودرو سه تخلف برگشته است. تخلف اول کد A، دوم کد A، سوم کد B؛ دو تای اول با فاصلهٔ یک هفته در یک محل. گروهبندی بر اساس کد میگوید دو بار تخلف از یک نوع داشتهاید و محل مشترک نشان میدهد ممکن است مسیر خاصی در کار باشد. این بهتنهایی نتیجه نیست، ولی سؤال خوبی است که مدیر ناوگان بپرسد.
در ریز خلافی خودرو هر ردیف بههمین شکل مستقل است؛ لازم نیست ردیفها را به هم وابسته فرض کنید. و برای ذخیره، شماره سریال بههمراه شناسهٔ برگه کلید خوبی است.
نمایش به کاربر نهایی
اگر ریز را به کاربر عادی نشان میدهید، این ترتیب را امتحان کنید: مبلغ، نوع تخلف، تاریخ، محل. سپس دو نشانه بهصورت نماد ساده: «تصویر دارد» و «قابل رسیدگی». کد تخلف را فقط در جزئیات باز بگذارید. کاربر عادی به کد نیاز ندارد، ولی کارشناس پشتیبانی دارد.
یک چکلیست پیش از ساخت رابط
پیش از ساخت صفحهٔ ریز تخلفات به این پنج چیز نگاه کنید: فهرست خالی پیام روشن دارد؛ مبلغها پیش از جمع به عدد تبدیل میشوند؛ تاریخها به مقدار واقعی تبدیل و سپس مرتب میشوند؛ شناسهها رشتهاند؛ و دو نشانهٔ تصویر و رسیدگی هر کدام مفهوم جدا دارند و با هم قاطی نمیشوند. اگر این پنج مورد درست باشد، بیشتر خطاهای رایج پیش از رسیدن به کاربر گرفته میشود.
نکتهٔ آخر
ریز خلافی ارزشش را وقتی نشان میدهد که فیلدها را تکتک بشناسید: کد برای گروهبندی، تاریخ-ساعت برای زمان، شماره سریال برای ارجاع، و دو نشانهٔ تصویر و رسیدگی برای تصمیم. فهرست خالی را بپذیرید، اعداد و تاریخها را از رشته تبدیل کنید و به محل به چشم متن آزاد نگاه کنید.
وبسرویس مرتبط با این راهنما
API خلافی خودرو با جزئیات
ریز تخلفات، تاریخ و مبلغ هر جریمه.
راهنماهای مرتبط
پرسش و تجربه کاربران
اگر این راهنما جوابتان را نداد، همینجا بپرسید. پرسشها را تیمملی ایپیآی پاسخ میدهد و هر نظر پیش از انتشار بررسی میشود.
هنوز پرسشی ثبت نشده، اولین نفر باشید.
