作者:ゞ瀟灑亾眚ゞ
1、项目概要
物流系统分成前台和后台,而后台又分成三个部分,分别是司机端、管理端和后台管理。前台主要是给客户进行查看公司的资料,让客户更加放心的选择公司,有注册和登录,进行下订单,查看物流信息;后台中的司机端则是运送货物的,分别有上下班签到、订单管理、个人中心、资金记录、和资讯推荐。上下班签到即时考勤员工的上下班情况,也可以让员工查看自己的出勤情况,登记车辆的信息;订单管理则是订单进行接货、上传实地货物、收取款项、开始运输、完成订单,如果订单出现问题,也可以几时解决;个人中心是查看自己的资料,修改登录密码和支付密码,还可以查看车辆的信息。管理端则有上下班签到、订单管理、录入新客户、订单管理、数据统计、人员管理、个人中心、资金记录、资讯推荐。山下班签到、个人中心和资讯推荐和司机端一样;而订单管理则是可以录入新的订单,审核订单、解决订单的问题;录入新客户就是帮客户进行注册;数据统计则是统计在一定的时间之内查看订单的情况,可以导出Excel文档;人员管理是负责管理车队、车辆、司机的信息,可以对司机进行调队,新增车队,新增修改车辆信息。后台管理分成上下班签到、数据统计、审批提现、权限管理、个人中心、资讯管理,山下班签到和数据管理还有个人中心都和前面的一样,而审批提现则是审批员工要提现的金额还有就是审核需要请假的员工;权限管理就是管理全部的员工,查看和新增修改员工的信息,分配权限是为某一个角色进行权限的分配,没有权限的角色是不能操作任何信息的。资讯管理就是及时推荐一些实时的物流最新的信息给员工进行查看,关注公司的动态。
2、数据库设计
2.1 数据表
b_approvalrecord(审批记录表) b_attendance(考勤表) b_bankcardinformation(银行卡信息表) b_car(车辆表)
b_custom(客户表) b_fundrecord(资金申请表) b_information(资讯内容表) b_logisticstracking(物流信息表)
b_motorcade(车队表) b_mrchandise(物品表) b_orderform(订单表) b_orderformdetail(订单明细表)
b_orderproblem(订单问题表) b_power(权限表) b_procuratory(委任表) b_receivables(收款表)
b_teammembers(车队成员表) b_user(用户表) b_usertypedetail(用户类型明细表) s_billingmethod(计费方式表)
s_cartype(车辆类型表) s_city(城市表) s_companybranch(公司表) s_district(城区表)
s_institutionalorganization(组织表) s_module(模块表) s_moduledetail(模块明细表) s_mrchandisetype(物品类型表)
s_operate(操作表) s_payment(付款方式表) s_province(省份表) s_status(状态表)
s_transportmode(运输类型表) s_usertype(用户类型表)
2.2 业务表及其字段
b_orderform(订单表)
数据名称 数据类型 中文
OrderFormID Int 订单ID
CustomID Int 客户ID
TransportModeID int 运输方式ID
PaymentID Int 付款方式ID
OrderNumber Varchar 订单号
SendName Varchar 发货人或公司名称
SendAdress Varchar 发货人或公司的地址
SendPhoneNumber Varchar 发货人或公司的电话号码
TakeName Varchar 收货人或公司名称
TakeAdress Varchar 收货人或公司的地址
TakePhoneNumber Varchar 收货人或公司的电话号码
UploadTime Datetime 上传时间
IsIndeedUpload Bit 是否实地上传
IsAuditing Bit 审核否
AuditTime Datetime 审核时间
TransportCost Float 运输费用
BargainMoney Float 定金
DeliveryTime Datetime 发货时间
ReceiptTime Datetime 收货时间
Remark Varchar 备注
StatusID Int 状态ID
SingleTime Datetime 接单时间
StartTime Datetime 开工时间
FinishTime Datetime 完成时间
IsFinish Bit 完成否
IsProblem Bit 是否有问题
b_orderformdetail(订单明细表)
数据名称 数据类型 中文
OrderFormDetailID Int 订单明细ID
BillingMethodID Int 计费方式ID
MrchandiseID Int 物品ID
OrderFormID Int 订单ID
Weight Float 重量
Volume Float 体积
Quantity Int 数量
b_custom(客户表)
数据名称 数据类型 中文
CustomID Int 客户ID
CustomName Varchar 客户名称
CustomPassword Varchar 客户密码
CustomPhoneNumber varchar 客户电话号码
CustomIDNumber Varchar 客户身份证号码
CustomIDPhoto Varchar 客户身份证照片
3、设计与实现
3.1物流系统前台:
3.1.1前台主界面
客户可以进行查看公司的资料等信息,也可以拨打电话进行验证,也可以选择QQ进行交谈,如果客户觉得满意的,可以进行注册登录,下达订单,登录之后还有查看客户自己的订单的物流情况。
3.1.2客户注册
输入一些客户的信息,上传客户的身份证照片点击注册即可。
3.1.3登录
输入注册上手机号码和设置的登录密码,如果密码忘记了,可以选择使用手机接收验证码来登录。
3.1.4下订单
客户了解之后可以选择在线填写订单,提交之后,客服人员会安排司机去进行接货。
3.1.5物流信息查询
3.2物流后台:
后台分成了三个部分,第一个是司机的,第二个是客服的,第三个是高级员工的分别对应了司机端,管理端和后台管理。
司机端
3.2.1登录:
输入手机号码、密码和验证码进行登录,可以选择记住密码。
如果忘记了密码,可以选择使用手机接收验证码来登录。
如果在这个浏览器之前就有第二个司机或者是客服人员登录过,可以选择清理痕迹,这样就可以进行登录了。
3.2.2首页
分成了三个不同的首页,司机端的首页和客服端的首页不同,也和后台管理端的首页不同。
司机登录成功的主界面,如果司机有订单已经开始运输了,则会有提示是否继续导航,而如果司机被委任了某条订单,主界面则会出现
司机可以选择是否接受此订单,也可以定位导航,查看订单的发货地点和收货地点。
申请请假的理由和天数,等待批准,当顶头的滚动条出现批准请假的时候,就可以去点击下班。
点击上下班签到进行签到,如果是司机,则会出现要上传车辆的一些信息,也可以查看你出勤的日期,如果有什么特殊的事情需要请假的话,可以点击请假按钮进行请假,填写请假的原因,请假的天数,然后进行申请。当你的请假被批准的时候,顶头会出现提示,即可点击上下班签到,进行下班。
3.2.4订单管理
可以查询当前司机的所有订单,也可以进行接收货物,收取货物之后就开始上传货物的真实信息,上传完成之后,就可以进行收取费用,等客户交完款,等待客服端进行审核,审核通过之后,就可以进行运输了。
点击一条订单信息,下面的地图会自动定位到这条订单的起始位置和收货位置
然后点击开始接货,当然,前提是司机得把这条订单接受,不然会有提示,之后就会在地图上进行导航。
等司机已经到达的发货的位置,装完货物,在实地上传货物的信息。
司机去到发货位置装好完货物之后,就可以进行上传货物。点击收钱,收取成功之后,点击开会运送,这条订单才正式开始运输。
如果在运输的途中出现的了什么问题,可以点击问题订单,填写出现的问题,待客服人员处理。
最后的就是订单完成,如果没有到达收货的位置,是不可以进行完成订单的。
3.2.5个人中心
个人中心是每个登录人员的具体信息,如果是司机端,会出现车辆信息。
如果绑定过多的银行卡,也可以进行解绑。
点击提现,弹出这个选择框,选择下一步进行选择绑定银行卡,如果有银行卡的话,可以进行提现,不过一次提现得上一次审核通过之后,才再次申请。
输入银行卡号码和银行预留的手机号码,点击获取短信验证码,输入验证码,完成绑定。成功之后,就可以进行提取现金了。
修改个人资料,不过只能修改手机号码和住址,其他的信息,不可以轻易的修改。
账号安全是修改登录密码的,如果密码忘记了,可以选择进行手机接收验证码,进行修改。
这个支付密码也是一样,如果需要修改密码,输入原密码,或者直接用手机验证。
车辆信息就是查看车辆的一些具体信息,可以查看司机的驾驶证,车辆的行驶证车牌号,还有车辆的载重等等。
这个是即时在个人中心进行提现具体信息。
可以让司机和客服人员更加深入的了解公司的一些信息,提高员工的归属感。
这个是项目没有要求做的,是我自己有空的时候研究研究。可以进行即时聊天,也可以传输文件等等。
管理端
管理端也就是前面所说的客服端,登录也是按照前面那个一样,主要是管理订单一些问题,统计订单,导出订单。
3.2.9首页
主页显示各个司机的车辆位置,以及对车辆的定位上传的时间,可以点击某个司机,进行查看其位置。
3.2.10签到
这个跟前一个没有什么差别,就是不用上传车辆的信息。
这个是就是客户来到我们公司,进行注册,填写一些客户的信息。
3.2.12订单管理
这个订单管理与司机端那个就不一样了,可以录入新的订单,委任司机,审核订单,还有就是出现问题的订单,可以进行解决。可以通过司机的名称、身份证号码、发货地址、收货地址、上传时间进行查询。当你点击某一条订单时候,可以自动定位出起始位置和收货的位置。
这个是就是统计订单的数据的,可以按照时候查询,不过最多只能查询间隔为一年的数据,也可以用多种方式展示出来,也可以导出数据到Excel表格中,还可以进行打印。
3.2.14人员管理、
首先是对车队进行管理,费配车队,增加车队,为新的司机配置车辆,以及调队等等。
第三则是对车辆的管理,新增车辆,修改车辆的信息。
最后的那几个和司机端的一样,没有什么变化,这个就是管理端。
后台管理
后台管理就是管理客服人员和司机,审批需要提取的现金。
3.2.15登录
跟之前的没有什么变化
3.2.16首页
可以查看客服员工领或者是司机申请提现,也可以进行审核提现,而且也可以进行审核员工的请假等等,进行批准。按照一定的日期进行查看刷选数据,查看数据,如果有新的数据需要进行审批的话,顶头会出现滚动条,提示操作员进行审批。
3.2.17签到
跟管理端的一样。
3.2.18数据统计
跟管理端的一样。
3.2.19权限管理
权限管理就是管理哪个角色权限,关闭了,那个角色就不能进行操作,员工管理则是管理员工的一些基本信息。
3.2.20个人中心
跟管理端的一样。
3.2.21资讯推荐
对司机端和管理端的进行推送一些信息,让员工更加的了解公司。可以进行新增、修改和删除
信息,只能启用一条,不能同时起用多条。
一.高级语法优秀技术点:
(一)优秀技术点1:手机接收验证码
点击发送验证码,在2分钟之内输入验证码的内容,然后进行验证。
前端的代码:
首先是生成验证码,然后通过一定的途径发送到手机里,把验证码放在session里面保存着,等待用户输入验证码,再验证。
(二)优秀技术点2 :百度地图定位
在网络良好的状态下,是可以精确定位出所在的位置:
想要使用百度地图,就得先去百度注册一个账号,然后就会有百度APIKey,再在网上查找有关于百度地图的操作。
JavaScript:
(三)优秀技术点3:百度地图导航
引入一系列的JavaScript之后使用百度地图:
JavaScript:
(四)技术优秀点4:支付宝支付金额
使用支付宝接口,链接测试支付接口,
选择付款的方式
来到支付宝支付界面
后台支付宝代码:
输入支付宝的APPID,私钥和公钥
(五)技术优秀点5:导出Excel文档
把数据导出到Excel中
后台代码:
4.总结:
每一次做项目都是一次新的测试,实验是检查真理的唯一标准,这是不变的真理,也可以检测出每个人的实力,让我们知道自己的弱处是什么,该怎么改进,完善。不断的追求新的目标才是我们追求。做项目总得把项目的流程搞清楚才可以把需要的操作做来,分析数据库,在脑中有构思,为什么要这样操作,这样的操作原理是为什么了,一步一步的进行分析,不能操之过急,心急吃不了热豆腐,静下心来,慢慢体会项目的需求书,需要完成什么样的功能,又改怎么实现,而不是急忙的就做一个数据库,那样的会很被动,做着做着项目就会发现数据库的一些字段需要更改,那样又会出现一改都得改,很心烦。Java一开始是挺陌生的,不熟练,什么都要照着老师的来敲。不过并不是照着老师的来敲就一定可以的。就像在一个Jsp的界面中绑定下拉框,一开始我只想到了在后台转成了json数据传输来,就可以使用一些封装好的JS函数,可是传输到了前台,按照老师的教的java后台传过来的数据,还得手动在转一次json数据,发现很是麻烦,需要太多的步骤,之后就去看了几遍老师讲课的视频,发现老师那种绑定下拉框的很简单,照着老师的写了上去,运行,我的界面出现错误,没有出现预想的结果。反复对比的代码,发现没有什么错误,就是不行,后来我把老师在jsp界面的那边的写法改了,运行,界面不报错了,下拉框也绑上去了。这次的教训是我印象深刻,别人写的代码,在别人的电脑里可以,但不一定都合适,得靠自己努力,不是什么都是按照老师那样的来写。思考过,这才是正确的做法。总结这次所做的物流系统,可以说是一种挑战,不能应为一时的困难就放弃,得迎接苦难,当它来临时,也就是你技术升华时,有时候做一些小小的功能时需要一周的的时间,所以很多人都会选择不去做,应为在做了一两天之后,你会发觉这个功能太难了,尝试这么多方法都不行,就会有放弃的做这个功能的想法,的确谁都会有这个想法,但是不能马上就放弃,先放在一边,等做完其他功能在回来做这个功能。人的潜力都是逼出来,不能让自己放松,应为一放松就会让自己选择的避让这些困难的,这是人的本性,所以说得逼自己,不能对自己太放松。一个功能的实现是不断的进行修改,不断的测试,而不是一次性的,在这些不断的测试中和修改中,你会发现一些比较困难的功能也就那样,没有什么。做人想活的精彩,想要做人上人,这就得付出,没有付出就没有收获,一分耕耘,一份收获。物流就是帮忙运输一些比较大型的物品,就像运输几顿大米、钢铁、家具等等。下单、委任、接单、接货、收钱、送货、完成都是围着这几个步骤走的。做什么项目都是要先弄懂项目的具体需要什么,谋定而后动,古人所说并无道理。