范建鵬,姚珂,譚浩,董利娜
(陜西重型汽車有限公司,陜西 西安 710200)
車輛識別號碼(Vehicle Identification Number),簡稱VIN碼,是由一組十七位字母或數(shù)字組成,在世界范圍內(nèi)用以識別汽車的獨一無二的號碼,可以識別汽車的生產(chǎn)商、引擎、底盤序號及其他性能等資料[1]。
系統(tǒng)采用BS 架構(gòu),后端使用基于php 的thinkphp MVC框架,前端使用easyui 框架。基于用戶、菜單、操作的權(quán)限管理方式,保證了VIN 碼在編制、使用、高新過程中的安全性。
如圖1 所示,系統(tǒng)主要分為三個模塊,功能如下:

圖1 系統(tǒng)模塊規(guī)劃
(1)系統(tǒng)權(quán)限管理:不同用戶權(quán)限管理,保證數(shù)據(jù)安全;
(2)VIN 碼編制模塊:系統(tǒng)主模塊,實現(xiàn)VIN 碼批量計算、與車輛數(shù)據(jù)交互進(jìn)行校驗、后期數(shù)據(jù)更新等;
(3)VIN 碼使用模塊:包含查詢列表頁面和條碼打印頁面。
主計算界面由三部分構(gòu)成:
(1)用戶權(quán)限管理:使用權(quán)限管理,編制、校對、使用者權(quán)限分開,防止VIN 碼修改過程中產(chǎn)生錯誤;
(2)VIN 碼計算器:導(dǎo)入車型、VIN 碼前8 位、流水號區(qū)間和車輛附屬信息,點擊“計算”按鈕計算,點擊不同的“導(dǎo)出”按鈕導(dǎo)出不同樣式的VIN 碼excel 文件計算結(jié)果;
(3)多種樣式計算結(jié)果預(yù)覽:根據(jù)不同使用者的需求,點擊選項卡,可實現(xiàn)不同樣式的計算結(jié)果預(yù)覽。

圖2 主界面設(shè)計
(注:程序設(shè)計只包含主要功能的部分源碼。本系統(tǒng)源碼已經(jīng)在gitee 開源,地址:https://gitee.com/fjp203/VINERS )
(1)VIN 碼計算原理:VIN 碼由17 位構(gòu)成,前8 位可以在工信部汽車公告系統(tǒng)中按車型配置進(jìn)行查詢,后8 位為該車生產(chǎn)的順序號,即流水號。中間位也叫檢驗位。VIN 碼的計算,其實就是計算檢驗位,檢驗位的計算原理為:前8位與后8 位每一位的加權(quán)系數(shù)與每一位數(shù)字或字母字母對應(yīng)的值相乘,所得的16 個乘積相加,和再對11 取余數(shù),此余數(shù)就是檢驗位的值。如果余數(shù)是10,則用X 代替。如下表所示:

表1 數(shù)字的對應(yīng)值

表2 字母的對應(yīng)值

表3 加權(quán)系數(shù)
(2)VIN 碼計算代碼:為減輕服務(wù)器壓力,減少前后端交互,計算功能用JavaScript 在前端實現(xiàn)。具體代碼如下:

根據(jù)VIN 碼各位的編碼規(guī)則,編制了以下幾條校驗規(guī)則:
(1)前三位校驗:同一車企生產(chǎn)的車輛VIN 碼前3 位是固定不變的,校驗是否相等,不相等,提示錯誤;
(2)位數(shù)校驗:前8 位長度是否為8,如果不為8,提示錯誤;
(3)驅(qū)動位校驗:VIN 碼第8 位表示驅(qū)動,可根據(jù)車輛信息,校驗此為是否正確,不正確,提示錯誤;

表4 車輛的驅(qū)動型式代碼
(4)附件信息校驗:利用車輛附件信息,查詢車輛其他信息進(jìn)行校驗。例如查詢車輛流水號區(qū)間是否正確。
校驗程序代碼如下:


導(dǎo)出功能使用phpexcel 分樣式進(jìn)行導(dǎo)出,更新功能借助權(quán)限管理,只有編制者才能更新。并且一旦更新,需發(fā)送郵件給各流程使用者進(jìn)行提醒。
3.4.1 查詢
將計算好的VIN 碼及車型信息以easyui datagird 表格插件進(jìn)行前端列表顯示,設(shè)計按多種規(guī)則進(jìn)行查詢。

圖3 VIN 碼查詢
3.4.2 VIN 碼條碼顯示及打印
VIN 碼在使用過程中,由于難以記憶,通常使用條碼打印,掃描錄入的方式,以避免人工識別產(chǎn)生錯誤。利用jquery-barcode.js 插件,將18 位VIN 碼轉(zhuǎn)換為條碼進(jìn)行打印。如圖4(涉密要求,圖片已經(jīng)模糊處理)。

圖4 VIN 碼條碼打印
代碼如下:


通過簡潔高效的api 接口,系統(tǒng)對整車生命周期中獲得授權(quán)的其他系統(tǒng)開放api,其他系統(tǒng)使用api 可以實現(xiàn)VIN 碼的快速查詢調(diào)用。實現(xiàn)方法如下:使用restful 風(fēng)格的api 接口,通過auth2 權(quán)限認(rèn)證,調(diào)用參數(shù),實現(xiàn)VIN 碼的查詢。
(1)接口說明:
接口地址:http://系統(tǒng)網(wǎng)站地址/api
返回格式:json
請求方式:http get/post
請求示例:http://系統(tǒng)網(wǎng)站地址/api/?Serialnumber=? Seria-lnumberlist=?Cartype=
(2)請求參數(shù)說明,見表5。

表5 請求參數(shù)說明
(3)返回參數(shù)說明,見表6。

表6 返回參數(shù)說明
(4)JSON 返回示例:

VIN 碼管理系統(tǒng)可以在車企廣泛使用,借助系統(tǒng),可以準(zhǔn)確、高效、便捷地解決VIN 碼在車輛生產(chǎn)、檢驗、銷售、使用過程中的查詢和應(yīng)用,為車企、國家車輛監(jiān)管部門和車輛使用者提供信息化支持。