APP下载

基于二维码的网上自助提箱功能设计与实现

2017-02-07戴长华

关键词:堆场单据条码

周 岩, 李 娜, 戴长华

(中远海运科技股份有限公司,上海 200135)

0 引 言

集装箱提箱作业是指海运进口货物抵港后或出口货物装箱前,由客户把指定的集装箱提出堆场或码头的过程[1],是海运作业流程中的重要节点,在整个集装箱运输过程中发挥着十分重要的作用。近年来,随着集装箱进口量和出口量的增长,航运企业如何优化提箱流程、提高作业效率、提升信息化水平及降低作业成本,实现为客户提供更好的服务,对企业的发展至关重要。

传统模式下的提箱作业必须依赖正本的集装箱提箱单据来进行提箱[2],该模式运营效率低、成本高和流程复杂。在移动互联网快速发展的背景下,随着智能手机和平板电脑等的日益普及,二维码已经在金融、物流及商务等多个领域得以广泛应用,已深入渗透到人们的日常生活中。为此,设计并实现基于二维码的网上自助提箱功能,优化提箱流程,在方便客户的同时也可促进企业的发展。

1 现状分析

传统的集装箱提箱作业流程是:客户凭借提单向船公司提交提箱申请,航运企业审核放行后,客户领取提箱使用的提箱单据,凭正本的提箱单据到码头或堆场进行提箱作业。码头或堆场的放箱人员核对提箱单据后执行放箱操作,客户提箱出场,作业结束。

而目前各航运企业的办单模式各有不同,主要分为柜面办单和自助办单两种。

1.1 柜面办单

柜面办单模式要求客户到企业的办单柜台提交提箱申请,等待企业审核通过后,再到办单柜台打印正本提箱单据,由操作人员先进行客户固定账户的扣费操作,再打印提箱单据交给客户,客户凭正本提箱单据到码头或堆场进行提箱操作。该模式存在以下缺点:

(1) 客户必须到企业现场才能完成办单操作,若出现数据错误及单据丢失等情况,需多次前往企业现场;

(2) 企业操作人员需及时处理车队的提箱申请及进行提箱单据的打印,还需协调退单、退费及数据错误等其他问题,当货量比较大时,人手就严重不足,给公司的操作人员带来过多的工作压力;

(3) 由于正本的提箱单据采用的是一式六份的标准格式,需使用针式打印机进行套打,但针式打印机存在噪音大、价格高和速度慢等缺点,也需采购大量的提箱单据打印用纸,使企业资源耗费大,导致经营成本高。

1.2 自助办单

自助办单模式即客户通过自助设备办理提箱业务。此种模式对柜面办单的模式进行了优化,在提箱单据的打印与扣费环节,由航运企业操作改为客户自助操作。为每个客户发放自助办单的IC卡,与客户的提箱账户关联,客户凭借IC卡在自助设备上刷卡打印正本提箱单据,打印提箱单据的同时系统会自动完成账户扣费。虽然该模式相较柜台办单模式有了进步,减少了企业操作人员的工作,但仍存在以下缺点:

(1) 客户依然需前往企业办理提箱业务;

(2) 客户在自助刷卡打印提箱单据时,由于操作不当等原因会导致打印提箱单据时卡纸、串行,同时,存在打印机缺纸、硬件故障等问题,需有专人进行服务,会造成人员的浪费;

(3) 采用自助打单的模式后,当发生打单出现问题或某些客户业务量较大时,客户排队等候使现场出现混乱,会破坏企业的办公环境,对公司的形象造成负面影响形象。

2 二维条码技术简介

二维条码是用某种特定的几何图形按一定规律在平面(二维方向上) 分布的黑白相间的图形记录数据符号信息的平面图[3],在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字、数值、照片等信息。

在许多种类的二维条码中,常见的码制有:Data Matrix,Maxi Code,Aztec,QR Code,Vericode,PDF417,Ultracode,Code49,Code 16K等。二维条码按照其实现方式的不同主要分为堆叠式二维条码和矩阵式二维条码两种类型[4],下面分别介绍。

2.1 堆叠式二维条码

堆叠式二维条码简单的说就是将多个一维条码平行的堆叠起来,其设计原理利用了已有的一维条码标准,在水平方向上还是按照原有的一维条码技术来进行设计和编码,在竖直方向上加上新的编码标准,在此基础上再添加校验、纠错和加密等算法。具有代表性的堆叠式二维条码有:Code 16K,Code49,PDF417等。

2.2 矩阵式二维条码

矩阵式二维条码是根据黑、白像素在一个矩形图像中的分布进行编码,将这个矩形图像在横纵方向上划分成很多个小点组成的点阵,在相应的点上如果是黑色的则代表二进制中的“1”,白色的代表二进制中的“0”,然后根据不同的编码方法翻译成实际的信息。矩阵式二维条码是建立在计算机图像处理技术和组合编码原理等基础上的一种新型图形符号自动识读处理码制。具有代表性的矩阵式二维条码有QR Code,Maxi Code,Data Matrix等。

在以上各种二维条码的码制中,使用目前最流行的QR CODE码制进行二维码提箱功能开发,其主要有以下特点:

(1)数据容量大。QR码可容纳多达1 850个大写字母或2 710个数字或1 108个字节或500多个汉字,比普通条码信息容量约高几十倍。

(2)可编码数据范围广。不仅可把数字、英文字母和汉字编码等信息写入QR码中,还可把图片、指纹和声音等信息写入QR码。

(3)纠错能力强。QR码具有纠错能力,不会因为局部损坏时导致不能识读。据测试,损毁面积达50%时,QR码仍然可以解读信息。

(4)译码可靠性高。相比普通条码而言,QR码的错误率约为百万分之二,误码率不超过千万分之一。

(5)独有的加密措施。QR码引入了加密算法,保证信息的安全且具备一定的防伪性。

(6)QR码制作成本低。制作流程简单且使用寿命长。

3 总体架构设计

基于二维码的网上自助提箱功能是企业集装箱管理系统的重要组成部分,包括用户端和企业端。用户端提供在线服务支持客户进行二维码提箱,企业端负责接收客户的提箱申请,并支持企业操作人员进行提箱管理操作。二维码提箱功能与航运企业海运进出口数据及码头、堆场数据是相互关联。因此,一方面需与航运企业的业务操作系统进行数据交互;另一方面需要与外部的码头、堆场实现数据交互,系统总体架构图见图1。

4 核心模块设计

基于二维码的网上自助提箱功能,是通过互联网将客户向企业提箱申请的过程由线下转移到线上,并取消传统的纸质单据,通过二维码技术将提箱所需关键信息形成二维码,客户使用二维码进行提箱作业的系统流程图见图2。

4.1 网上提箱

网上提箱模块支持客户通过线上提交提箱申请,提箱申请信息包括:提单号、船名、航次、联系人、联系电话和提箱说明等。当提交进口提箱申请时,还需录入具体的箱号、箱型和铅封号信息,当提交出口提箱申请时,由于没有确定的集装箱信息,只需录入箱型和箱量即可。

当提箱申请提交后,通过提箱申请查询功能,客户可对提箱申请进行跟踪,根据企业反馈的审核状态执行不同的操作,当审核不通过时,需核对拒绝理由,编辑提箱申请并重新提交审核。

4.2 航运企业审批

航运企业审批模块支持操作人员进行线下审核工作,审核工作主要包括提箱计划安排、提箱申请审核及提箱单据制作等3个步骤。

(1)提箱计划安排。综合考虑码头、堆场的区域空间、设施设备能力、周转速度及货物流向等多种因素,航运企业必须在装卸船前就安排好提箱计划,分配好每条船对应的提箱地点、还箱地点、优先级、箱型种类及数量。

(2)提箱申请审核。当接受到客户提交的提箱申请后,系统将根据预先定义的规则对提箱申请进行检查,将海运进出口单证数据与提箱申请数据进行比对,生成核对报告做为审核依据,操作人员将根据核对报告进行客户提箱申请的审核。

(3)提箱单据制作。提箱单据是客户到码头、堆场提箱的有效凭证,由航运企业发放,只有当提箱申请审核通过后,才能进行提箱单据的制作,系统调用提箱计划,与提箱申请匹配后,生成提箱单据并上传到网上平台。

4.3 生成二维码

生成二维码模块抽取提箱单据中的关键信息来生成二维码,主要包括确定明文信息及对明文信息进行二维码编码等2个步骤。

(1)确定明文信息。根据码头、堆场的放箱要求,对提箱单据进行分析,确定二维码中应该包含的明文内容,为方便码头、堆场解析,该明文采用json格式表示,二维码明文的主要内容见表1。

表1 二维码明文信息

(2)二维码编码。确定生成二维码的明文信息后,根据QR Code码制,使用GOOGLE提供的一个开源JAVA类库Zxing来生成二维码,Zxing类库提供不同的对象来封装二维码信息[5],其构成关系见图3。

其中,Multi Format Writer类是二维码生成的核心类,在其他类的辅助下,完成编码并形成二维码图片,表2列出了各类的详细说明。

4.4 二维码扫描

二维码扫描模块通过使用高速扫描设备对客户的二维码进行扫描解码,二维码扫描解码的过程主要由图像采集、图像处理和图像译码等3个步骤组成。

(1)图像采集。图像采集的过程由扫描设备实现,将扫描设备对准二维码,根据QR码的定位图像对二维码进行定位,在找到二维码的具体位置后扫描设备会聚焦到二维码图像并且将图像保存下来。

(2)图像处理。获得二维码图像后,将彩色图像进行灰度化,根据图像的灰度值将图像二值化,转成与之对应的布尔型二维数组,黑色的部分为1,白色为0。

(3)图像译码。将得到的二进制信息根据二维码版本译码,再根据纠错码进行纠错,得到二维码的实际内容。

以上二维码扫描解码的步骤通过使用GOOGLE提供的Zxing类库来实现,其主要类的构成关系见图4。

类说明QRDataSource类获取和封装二维码明文信息,该类成员变量主要是表1中列出的提箱单据信息。类方法getJsonStr()是根据该类实例化的对象获得json格式的明字符串QRCode类定义二维码属性,主要属性包括二维码的宽度、高度、纠错模式、字符集、版本号MultiFormatWriter类是生成二维码的核心类,用来对明文信息编码并生成二维码矩阵,其中Matrix-ToIamgeWrite类用来将二维码矩阵生成到图片中BufferedImage类在内存的缓冲区生成一个图片,利用这个缓冲区可方便地对图片进行修改操作Graphics2D类通过对几何形状、坐标转换、颜色管理和文本布局的控制,呈现二维码矩阵图像

其中,Capture Activity类是二维码扫描的核心类,Multi Format Reader类是二维码解码的核心类,在其他类的辅助下,完成二维码图片的扫描及解码,返回提箱单据信息,表3列出了各类的详细说明。

4.5 数据同步

数据同步模块通过消息机制实现航运企业与码头、堆场的数据交互,消息中间件采用的是Apache提供的开源软件ActiveMQ。通过ActiveMQ可在不同的平台之间实现同步或异步通信,同时ActiveMQ提供封装的数据接口进行消息的收发,保证了数据交互与业务处理之间的相互独立,降低了系统之间的耦合度,数据同步流程见图5。

表3 二维码扫描解码相关类说明

ActiveMQ消息中间件采用XML格式在航运企业与码头、堆场之间进行双向的消息传递,消息传递的过程包括消息发送、消息服务器和消息接收等3个步骤。

(1)消息发送。航运企业通过自动程序定时轮询数据库,将二维码包含的提箱单据内容组织成XML格式的消息,连接到消息服务器后创建会话,将消息发送到消息服务器,由码头、堆场接收消息并解析。

(2)消息服务器。由ActiveMQ中间件集成,主要任务是消息路由完成航运企业与码头、堆场双方消息的收取与发放。

(3)消息接收。当客户在码头、堆场提箱完成后,码头、堆场将客户的用箱情况组织成XML格式的消息发送至消息服务器,由航运企业接收消息并解析。

5 结 语

基于二维码的网上自助提箱功能借助企业现有的网上平台,将技术与业务进行有效的结合,颠覆了传统的提箱作业模式,既节约了客户及企业的时间与成本,同时也提升了提箱作业中各环节的操作效率,对于提高企业的信息化水平及提升企业的核心竞争力,具有重大的现实意义。

[1] 郭敏,陈俊杰.集装箱运输管理[M].成都:西南交通大学出版社,2016.

[2] 李向文,林国顺.集装箱堆场物流系统模拟[M].大连:大连海事大学出版社,2014.

[3] 叶靖.物流条码技术应用[M].北京:清华大学出版社,2011.

[4] 卢欣欣,殷秀叶.二维码在物流领域应用研究[J].软件导刊,2014,13(12):17-18.

[5] 孙卫琴. Java面向对象编程(第2版)[M].北京:电子工业出版社,2016.

猜你喜欢

堆场单据条码
中国条码技术与应用协会
条码微站
轧花厂棉花堆场防雷接地系统设计
第三方单据辨析
汇票在信用证项下单据融资中的作用
考虑码头内外堆场竞争的集装箱堆存定价模型
重视单据的寄送
唛头导致单据“不清洁”?
集装箱码头堆场布置形式比较
集装箱码头堆场作业系数优化策略