基于B/S的第三方物流管理系统设计与实现

2019-06-30 10:27张敏郭卫江唐奇李明星贺斯慧
企业科技与发展 2019年9期
关键词:第三方物流物流管理

张敏 郭卫江 唐奇 李明星 贺斯慧

【摘 要】目前,第三方物流平臺的建设规划尤其是自动化系统软件较缺乏,无法满足企业在信息化时代的发展要求。文章在分析第三方物流管理系统的各个基础功能模块需求后,提出了一种基于MVC框架的第三方物流管理系统,并介绍了系统的设计原理与实现方法。

【关键词】第三方物流;物流管理;B/S;AJAX

【中图分类号】TP311.52 【文献标识码】A 【文章编号】1674-0688(2019)09-0093-03

0 引言

当前,移动互联网的快速发展和智能手机等移动终端的普及改变了人们传统的购物方式。天猫、京东、苏宁易购等电子商务平台已经成为人们购物的主要渠道,并且伴随着O2O商业模式的不断推广,第三方物流平台也展现出蓬勃发展的态势。但是,由于现阶段第三方物流平台的建设规划尤其是自动化系统软件的缺乏,大部分平台还停留在传统“进销存”管理模式,已经无法满足日益增长的客户定制化需求,导致第三方物流平台面临巨大的挑战。为此,笔者设计并实现了基于B/S的第三方物流管理系统,该系统为第三方物流平台搭建一个畅通渠道,减少物流管理中繁杂的业务流程、提高管理的时效性,依托互联网提供企业自身服务能力与管理效率。

1 系统开发模式与技术

1.1 采用的开发模式及其特点

目前,主流的开发模式有C/S(Client/Server)与B/S(Browser/Server)两种,前者由客户端和服务端组成,后者严格意义上是前者的一个特殊实现,以浏览器代替客户端,从而实现“零客户端”的模式。为了满足不同设备(PC、智能手机、平板电脑)均能访问,系统采用B/S模式。

1.2 MVC框架结构

为了将数据与业务隔离,系统设计时严格参照MVC(Model-View-Controller)框架结构,将系统分为模型、控制、视图3层。其中,由Struts2作为核心控制层,响应用户请求,并且根据用户请求调用响应的模型层,最终将结果反馈给Jsp扮演的视图层进行解析展示。

1.2.1 AJAX

AJAX(Asynchronous JavaScript And XML)是一种异步刷新的轻量级js框架,解决传统Web应用无法局部刷新的缺点,通过浏览器内置对象完成服务器数据的获取和刷新。

1.2.2 数据连接池

随着电商文化的推广,电商平台时常推出诸如“双十一”“六·一八”等大型购物节,此类购物节往往会吸引亿万群众参与,订单数据也会呈现井喷式增长。第三方物流平台订单数据也会随之增加,会出现数据访问高峰,为此需要系统具有较高的并发性。由于传统的数据请求方式需要每次请求都进行身份验证,导致耗费大量的时间成本与空间成本,无法保证系统的并发性。C3P0是一款实现了数据源和JNDI绑定的开源数据连接池,其原理是在数据初始化时,通过解析config.xml文件,获取最大连接对象、空闲检查等参数,然后根据参数创建连接池。当客户端发送数据请求时,系统根据空闲算法在连接池中遍历出空闲的连接对象,并将其反馈给客户端,建立数据连接。当客户端断开数据连接时,系统不是将连接对象销毁,而是将其修改为空闲状态,等待新的请求,进而实现系统的高并发数据访问。

2 系统设计

2.1 功能模块设计

系统功能包含了物流管理的所有流程,从业务属性分为用户管理模块、订单管理模块、仓储模块、运输管理模块、权限管理、数据分析、系统管理等功能。用户管理模块主要是完成用户注册、登录、基本信息维护等功能;订单管理模块主要是包含订单创建、订单状态管理、订单关闭等功能;仓储模块主要包含仓储容量查询、入库、出库、仓储预警等功能;运输管理模块主要包含运输任务分配、车辆调度管理、状态管理等功能;权限管理主要是对系统角色进行分配管理,不同角色拥有不同的职能权限;数据分析则主要是完成数据汇总分析,形成日报表、周报表、月报表等报表,后期还可加入数据挖掘,为决策预警提供数据决策支撑;系统管理则主要是完成系统基础信息维护、功能模块管理等。系统进行功能模块设计如图1所示。

2.2 核心流程设计

在整个物流管理系统中,整个系统从用户提交订单到用户接受到货物关闭订单为一个流程。当用户通过客户端提出需求,填写相应信息创建订单,确定信息无误后提交订单,系统对订单进行审核,审核通过后,将订单信息传递给仓储管理,为订单分配临时存储计划,同时通知运输管理模块开始工作,其从订单管理模块中导入订单数据,并且根据出发地与目的地为关键字,进行路线规划,规划好路线后将路线计划上报,管理员进行审核,审核通过后,根据目的地、物品大小、物品类型、物品重量安排运输车辆,生成车辆装载信息,完成装车后,调用车辆GPS管理模块监控追踪车辆状况,到达目的后,生成取货报表,通知用户取件,用户完成取件后,将结果反馈回订单管理模块,结束订单。

2.3 数据库设计

经过对第三方物流管理系统数据流分析之后,按照三范式规范设计了系统中的数据表,包括存储用户个人信息的user表(主要包括用户ID、用户名、地址、联系电话等),存储订单实体的order表(订单编号、创建时间、订单内容、状态等),存储记录仓储入库、出库、库存等信息的depository表(编号、库存量、库容量、仓储状态等),存储车辆信息与车辆行程的car表(编号、车辆ID、司机ID、行程ID、状态等),三级权限管理authority表(编号、权限级别、启用状态、可执行操作列表等),部门管理department表(编号、名称、领导ID等),系统管理功能定制function_role表(编号、功能名称、功能权限级别、功能模块ID等)。由于每张数据表都有一个entity与之对应,所以表中的字段类型、取值范围、外键等都由实体对象具体的属性和关系确定。

3 系统主要模块实现

3.1 用户管理

用户管理主要是完成用户的注册、登录及基础信息维护。用户在注册页面进行注册,注册一共分为3个步骤填写基本信息、账号激活、完成注册。第一步,完成用户的基本信息的填写与校验,生成未激活账号并根据注册邮箱发送激活验证码。第二步,根据邮箱收到的邮箱验证码进行用户激活验证。如果前两步都成功则注册成功。已注册用户可以在登录界面进行登录验证,成功登录系统可以进行物流配送活动,以及对个人信息进行维护等操作。以用户登录为例说明实现过程。

用户注册分为三步:第一步填写基本信息,在填写信息的时候,每填一项都利用AJAX进行数据验证。第二步主要是用户根据短信验证码进行账号激活。第三步用户注册成功,提供返回系统主页、物流配送与个人信息维护等快捷入口。用户注册主要依靠AJAX、JS与Struts实现,在用户填写基本信息时通过AJAX与JS实现基本信息的验证,为了防止机器人的恶意攻击,系统提供动态验证码。验证码的实现主要是regist_form.jsp通过AJAX向服务器端发送请求。服务器端首先调用ValidateCode类生成验证码图片并将图片转换为IO流存放在session对象中,然后是ValidateCodeAction类将验证码以Json的方式返回给AJAX,然后JSP解析Json数据,完成验证码显示,验证码的验证则是验证码显示的逆过程。

3.2 订单管理

订单管理分为订单创建、订单查询、订单维护3个部分;以订单创建为例,用户通过填写物流订单相关信息并提交,首先通过JavaScript对用户填写的基础信息进行校验,校验成功后将数据通过AJAX异步提交给服务器,服务器会对订单进行基础审核(诸如目的地是否可达、是否存在违禁物品),然后将审核结果以json的形式反馈给浏览器解析给用户,用户在核定基本信息后确认订单,完成订单创建。

3.3 运输管理

运输管理是根据订单管理中的订单进行物流配送管理的一个模块,是整个系统中核心的管理模块。主要由最新订单、通知公告、车辆监控、司机管理、订单实时追踪等模块组成。以订单实时追踪为例,当用户通过浏览器向服务器发送Http请求后,系统调用filter对请求进行分析转发给对应的Action类,在Action类中再调用相应的Service方法,Service方法调用实现了数据库操作的DAO方法完成数据操作,并将结果封装到json中返回给浏览器解析展示。关键代码如图2所示。

3.4 路线规划与审核

路线规划与审核是运输模块中的核心功能,运输工作人员首先点击路线管理中的路线规划按钮,通过百度地图JavaScript API中的new BMap.Map("allmap")方法获得百度地图实例,接着调用map.centerAndZoom(new BMap.Point(当前经度,当前纬度),缩放比例)方法初始化地图,并根据当前经纬度为中心,展示地图,操作员然后通过鼠标选择目的地时调用setCurrentCity()方法完成目的地的选定,然后通过map.addControl(new BMap.MapTypeControl())方法编辑沿线停靠点,完成编辑后,点击上传按钮,将数据上传至服务器,系统首先调用NewRoadBaseAction中的saveRoads方法,完成数据写入数据库,接着调用sendCheck方法,将路线送审到科室主任等待审核。科室主任登录后点击待审调用loadOneCheckDataList方法查看所有待审的路线列表,点击查看调用loadNewsCheckData方法加载待审路线内容,然后根据情况调用sendBack、executeOneCheck、SendToSecendCheck 3个方法分别完成退回、通过、报审3个操作。

3.5 数据分析

数据分析主要是通过对系统中数据进行分类统计,然后根据用户选择需求将数据通过图表的方式展现出来,有助于企业管理者对企业进行管理,为决策提供数据支撑。系统的数据分析主要包含月视图、周视图、日视图等。用戶单击月视图时,通过ajax向服务器发送getMonthData请求,服务器接收到请求后调用getMonthDataAction方法,从数据库中拉取数据,然后将数据封装到json中,并反馈给浏览器,浏览器接收到数据后,调用Init()方法创建Echarts图表格式化插件实例echart,接着调用echart.init(document.getElementById('showMonthData'))方法初始化图表,最后调用parseData()方法将json中的数据逐一加载到echart中,完成图表的显示。

3.6 权限管理

权限管理是物流管理系统中不同角色分级制度的底层保障机制,在User表中新建prosstion字段用于标定用户角色,prosstion作为User实体的关键信息持久化保存在Session中,在对业务操作时先要判断prosstion的值,只有满足条件时才能够执行。

4 结语

本文提出了一种基于B/S结构的第三方物流管理系统。系统将传统的物流管理流程自动化,主要由用户管理、订单管理、运输管理、仓储管理、数据分析等模块组成。对于运输管理中的路径规划加入多级审核机制,从程序流程上规范路线、规划审核机制,增加路径规划的科学性,规避因路线规划不合理造成的成本浪费。目前,数据分析功能仅仅体现在数据统计展示阶段,未来随着数据当量的提升,可在数据分析中构建数据挖掘功能,为企业发展决策提供有力的科学支撑。该系统的上线为第三方物流公司现代化管理提供了一个广阔的平台,对第三方物流公司信息化改革有一定的促进作用。

参 考 文 献

[1]郑定杰.基于电子商务的第三方物流配送管理系统设计实现[J].商场现代化,2015(24):75-77.

[2]张利强.基于B/S的高校二手图书交易平台设计与实现[J].内江师范学院学报,2017,32(10):55-59.

[3]邓健.基于B/S模式的物流管理系统设计与实现[J].物流技术,2013,32(9):423-425.

[4]尹新富,武凤翔,李晋,等.B/S模式下物流仓储管理系统设计与实现[J].物流技术,2014(17):451-452.

猜你喜欢
第三方物流物流管理
浅析电子商务企业物流模式
第三方物流企业绩效评价研究综述
农村电子商务下电商企业物流运作模式思考
国外第三方物流行业现状分析
基于电子商务理念下的物流管理优化新策略
对于药品冷链物流管理的研究
基于学生就业导向的中职物流管理教学研究
GIS云服务在现代物流管理中的应用研究
电子商务环境下的物流管理创新研究
供应链系统下的企业物流管理研究