校园快递派件标准管理系统分析报告.doc
1.可行性分析1.1快递背景“快、准”是快递公司最大特色,更是快递公司赖以生存保障。以计算机及网络为核心管理技术为快递公司提供了较好管理平台,同步,RFID技术快捷、高效及资源共享等特性,为公司管理带来了以便,快递管理系统应运而生。信息化推动和电子商务迅速崛起,快递在国内物流行业和社会经济发展中地位越来越重要。快递公司服务以快捷、及时为重要特性,配送科学性与合理性是其生存和发展核心,也是其应对竞争、开拓市场基本途径。国内快递行业起步晚,存在诸多局限性,如:公司规模小,自动化限度低,解决速度慢,快件自动分拣技术落后;专业物流人才局限性,对配送过程效率和质量缺少有效控制;配送模式单一,配送时间和配送量没有科学根据,物流成本不断增长,服务质量提高缓慢。当前,学者对快递配送定量研究严重滞后于快递发展速度,可以真正协助快递公司提供科学决策根据办法比较少。因而,建立一种适合于普通快递公司配送过程结合RFID技术派件管理系统,进行快件收、货位分派、快件领取、快件查询等意义重大。 1.2校园快递调查1.2.1校园快递存在问题(1)校园快递派件速度缓慢,派件时间较长(2)校园快递派件管理比较混乱,单据记录不明晰(3)校园快递设备如PDA等不能实时更新快递信息(4)校园快递时间安排不能按照学生作息时间安排1.2.2快递使用数据:(1)使用快递频率:每月使用2次达64.5%;(2)常使用哪些快递公司:申通83.3%、圆通46.6%、韵达46.6%(3)海大快递量前三名:申通(200300)、圆通(200300)、韵达(100300)(4)包裹总量每天大概:1000个,平均每天领快递人数:800个1.2.3快递设备数据:校园派件员普通和其她大公司合伙,作为她们一种区域代理,系统一定要使用上级公司,设备也要按照她们规定配备,使用专用快递信封(和包装袋)、多层带背胶票据、手持终端等、扫描仪、相机(解决问题件需拍照做证据)。运送工具准备微型车、货车等,仓库需监控设备,保障货品出进被影像记录。1.3 RFID在快递派件应用对物流业而言,全面使用RFID意指在所有物流商品上贴上RFID标签,多数业者也都但愿可以这样做,然而,由于RFID标签价格依然偏高、读取率无法达到100%等因素,涉及联邦快递、UPS等,至今依然无法全面在物流商品上使用RFID;多数都还停留在评估与测试阶段。但是,尽管有多重障碍, RFID技术终有一天会在物流业普及应用。虽然当前还不具备高度功能完备性,但通过咱们课程设计,结合了VISUAL BASIC和SQL软件,系统全面考虑了校园快递派件作业流程,进行了严格定义和逻辑程序编写,与实际业务紧密结合,使RFID技术与实际快递派件业务接轨。1.4快递派件管理系统目的:普通说来,本组校园快递派件管理系统功能涉及两方面:一方面是快递管理信息系统中心,另一方面也是快递公司对外查询解决系统。客户通过程序能与快递派件管理系统进行信息共享,提供动态信息交互和信息服务,并在此基本上实现对订单下达、实时查询等业务支持。因而,系统应把开放性、协调性、有效性作为系统开发总体目的。快递信息平台必要适应快递设施地区变化。时间上可扩充性是指当顾客需求、技术进步、公司组织构造随着时间变化而变化时,系统可以对既有某些功能模块进行改造或增长某些功能模块,以适应新变化。对内部人员,系统应当提供整体快递所需要业务信息以及快递查询支持界面和管理界面,对外,快递对客户重要提供快递查询信息以及作业进度信息反馈信息。2.系统分析某些2.1业务流程图:图1.收件流程图2.派件流程2.2功能分析图图3.功能分析图2.3数据流程图图4.数据流程图(顶层)图5.快件收取(第二层)图6.货位分派(第二层)图7.快件领取(第二层)图8.快件查询(第二层)2.4数据字典2.4.1外部实体表1.外部实体表名称:收件人编号:C02阐明:快递接受者输入数据流:输出数据流:个数:n名称:收、派件员编号:C01阐明:快递集中、派发者输入数据流:输出数据流:个数:10名称:货架编号:C04阐明:放快递货架输入数据流:输出数据流:个数:X名称:快递公司编号:C03阐明:多家快递公司输入数据流:输出数据流:个数:X2.4.2数据元素表2.数据元素表编号数据元素名类别/长度E01收件人姓名Char10E02收件人地址Char10E03收件人电话Int4E04收件(派)员姓名Char10E05收件(派)员电话Int4E06快递公司Char10E07快递公司送件员姓名Char10E08送件员电话Int4E09运单IDInt4E10运单货品名称Char10E11货品重量Int4E12货品类别Char10E13货架区Char10E14货架(编号)Int4E15货格编号Int4E16扫描地点Char10E17扫描时间Datetime82.4.3数据流表3.数据流表编号名称数据流水源数据流去向包括内容B01收件信息D1D3E01-E10B02派件信息D8D10E04、E05、E09-E17B03扫描信息D1D7E09-E172.4.5数据储存表4.数据储存表编号名称构造有关数据流D1送件清单E01、E02、E03、E06D1-1.1,D1-2.1,D2数量质量记录E10、E11、E12D2-1.2,D2-2.2D3收货记录E01、E03、E04、E05、E06、E07、E08、E091.3-D3D4回执单E01、E09、E16、E17D4-1.3D5分类记录E09、E12D5-2.2D6货品状态E09、E13、E14、E15、E16、E17D6-2.3D7货位分派记录E09、E10、E11、E12、E13、E142.3-D7D8派件分析表E01、E02、E03、E04、E05、E092.3-D8,D8-3.1D9客户记录E01、E02、E03、E09D9-3.2D10签收记录E01、E09D10-3.3D11公司数据库E01E17D11-4.1,D11-4.22.4.6过程 表5.系统过程表名称:收件准备编号:P1-1输入数据流:C03、D1输出数据流:P1-2解决:整顿等待派件快递名称:包裹检查编号:P1-2输入数据流:P1-1、D2输出数据流:C3、P1-3解决:检查快递状态并记录解决名称:填写收货清单编号:P1-3输入数据流:D4、P1-2输出数据流:D3、C03解决:记录收件数量、类型等名称:订单核对编号:P2-1输入数据流:C01、D1输出数据流:P2-2解决:确认收货人名称:快递分类编号:P2-2输入数据流:D2、P2-1输出数据流:D5解决:将快递分类以以便货位分派名称:扫描信息编号:P2-3输入数据流:P2-3、D6输出数据流:D7、D8、C04解决:将快件信息扫描进数据库名称:派件编号:P3-1输入数据流:C01、D08输出数据流:P3-2解决:将快递交给收件人名称:身份核对编号:P3-2输入数据流:P3-1、D9输出数据流:P3-3解决:检查派件与否对的名称:交付快件编号:P3-3输入数据流:P3-2、D10输出数据流:C02解决:客户签字确认名称:网络查询编号:P4-1输入数据流:C01、D11输出数据流:C01解决:反馈查询信息名称:人工服务编号:P4-4输入数据流:C01、D11输出数据流:C01解决:反馈查询信息2.5数据加工解决描述2.5.1快件交接:(1)各大快递公司将快件交给业务员(点数交接),数量的确多,可以当业务员面,逐个包裹进行扫描(2)收件员清点快件数量并核对与否有外包装破损,分错件、地址错误、超范畴、件数明显有误、到付价格明显有问题等异常快件(3)校园派件员确认客户寄递快件与否在我司可提供服务范畴内(4)收件地址超过我司服务区域,但收件地址附近有我司服务网点,应询问客户与否乐意改为自取件,并向客户详细简介自取件操作流程。(5)数量等信息确认无误后交接,双方在派件表上签名确认图10.快件接受决策树2.5.2货位分派及操作2.5.2.1货位分派:(1)货区别为A、B、C3个货区(2)A区有1-4号货架,B区有5-8号货架,C区有9-12号货架(3)分派如下表图11.快递公司货架分派表图12.货品类别分派表(4)货位编码举例阐明:图13.货品编码举例2.5.2.2货位分派操作:(1)将随货运单贴放在快件指定位置(2)依照快件类型将各种贴纸按规定贴在快件指定位置(3)将运单完整单号写在运单下方外包装处(4)对于大件包裹,按照体积大小存储于货架指定区域(5)对于正常大小包裹,按照姓名排序,分放于货架A-Z货品格中图14.货位分派决策树2.5.3快件派送与收件:2.5.3.1收件工作(1)确认托寄物品与否在我司规定范畴内业务员须向客户阐明需进行托寄物品检查(2)并在获得客户批准后,按规定对托寄物品进行全面检查(3)如包装未达到原则,须规定客户改进包装 (4)指引客户填写相应运单内容(5)检查客户填写运单内容与否完整,若填写不完整须指引客户补充有关内容(6)使用弹簧秤、卷尺测量快件实际重量和轻抛重量,拟定对的计费重量(7)如果大件,在客户处没有称重工具,如客户批准将快件拉回公司称重,必要在第一时间将重量、运费告知客户,如客户不批准将快件拉回公司称重,则只能将件退还给客户(8)将需要业务员填写运单内容填写完整:始发地、目地、件数、重量、运费、工号、收件日期、时间、付款方式、托寄物详细资料(9)运费结算2.5.3.2派件工作(10)客户确认运单信息,确认无误后须规定客户在 “收件件人订立或盖章”栏内签字确认,不得代替或伪造客户签字(11)须将运单“寄件公司存根”联交寄件客户留底,业务员留取“结账联”,其她几联运单随货图15.快件领取决策树2.5.4快件查询:(1)公司员工输入运单号,或者输入员工号进行查询(2)客户依照快递单据运单号码,在客户查询界面上输入运单号进行查询(3)若输入不对的,系统提示可重新输入再次进行查询(4)查询信息以表格形式显示在顾客查询界面上 图16.快件查询决策树3.系统设计某些3.1功能模块构造图设计图17.模块构造图3.2模块构造图3.2.1收件模块无效返件出库账有效返件无效收件收件清单有效收件有效返件账有效收件台账有效收件A收件管理F验证返件有效性E验证收件有效性C返件录入B收件数据录入D收件台账登记G验证收件台账有效性库存台账图18.输入模块构造图模块名称:收件管理模块标记:A解决逻辑:对每一种快递收取进行登记账解决调用B模块,获得有效收件账调用C模块,获得有效返件账调用D模块,获得有效收件清单台账模块名称:收件数据录入模块标记:B解决逻辑:显示快递取件账屏幕输入日期,运单号,快递公司名称,取货人姓名,收件单编号若 有效在屏幕相应位置显示该快递收件成功,并登记收件台帐。否则显示无效收件模块名称:返件数据录入模块标记:C解决逻辑:显示返件账屏幕输入日期,运单号,快递公司名称,取货人姓名,返件单编号若 有效在屏幕相应位置显示该快递返件成功,并登记返件台帐。否则显示无效返件3.2.2货位模块查询祈求运单号运单号货架号货位分派H货位管理J货位核查I获取货位祈求K货位核查L返件台账核查M读取货位祈求N读取剩余货位数据O读取货位收件数据P读取返件数据图19.货位模块构造图模块名称:货位管理模块标记:H解决逻辑:对每次货位祈求,选取快递公司名称,查询该快递公司相应货架空位量模块名称:货位核查模块标记:I解决逻辑:显示查询祈求屏幕调用M模块,读取数据查询模块名称:货位管理模块标记:J解决逻辑:输入货位号调用N模块,读取剩余空货位数据模块名称:验证货位有效性模块标记:K解决逻辑:接受快递收件台账查领取中心仓库若 有效收件 发送有效收件清单台账给模块D否则发送“无效收件台账”3.2.3取件模块无效取件货位状态表有效取件无效收件收件清单有效收件有效取件账有效取件台账有效收件A取件管理F验证取件件有效性E验证取件有效性C货位状态变化录入B取件数据录入D派件完毕状况登记G验证取件台账有效性库存台账图20.取件模块构造图(详细阐明略,可以参照数据流程图)3.2.4查询模块查询祈求运单号运单号快递公司名称查询祈求H查询管理J货位核查I获取查询祈求K收件台账核查L返件台账核查M读取查询祈求N读取剩余货位数据O读取收件数据P读取返件数据图21.查询模块构造图(详细阐明略,可以参照数据流程图)3.3输入设计3.3.1输入界面设计图22.收件人录入界面图23.收派件员信息录入界面图24.派件完毕状况录入界面图25.收件清单录入界面图26.RFID信息录入界面3.3.2输入设备选取(1)终端输入:采用RFID终端设备扫描包裹信息(2)光电阅读器:采用光笔读入光学标记条形码或用扫描仪录入纸上文字3.3.3输入数据对的性校验。(1)对照校验:采用人工核对包裹运单信息,核对信息对的性(2)重复校对:由两名以上快递员通过RFID终端读取信息后由程序核对3.3.4输入设计评价(1)输入界面明晰、美观、大方(2)便于填写,符合工作习惯(3)便于操作(4)有保证输入数据对的性校验办法3.4输出设计3.4.1输出设计内容(1)包裹信息状态状况 (2)包裹接受者(3)包裹信息目地 (4)包裹派送员信息状况(5)输出信息时间地点 (6)包裹派送运营时间长度3.4.2输出信息内容(1)输出项目信息形式:文字、数字(2)输出格式:表格、报告等3.4.3输出设备和介质:设备如打印机、显示屏等;介质如:磁盘、U盘、纸张(普通、专用)等3.4.4输出设计办法(1)系统输出阐明:表格信息。表格信息是系统对快递公司员工以及顾客查询包裹信息时输出,以表格形式提供应信息使用者,用来表达详细信息,能较为直观表达包裹快递信息表6.输出信息运单ID运单号快递公司ID收件人ID物品类别收件员ID收件时间111普通小10102222普通中轻10103323普通小20102图27.输出信息3.5 ER图及数据表3.5.1ER图 图28.ER图3.5.2数据表图.快递公司表3.6存储文献格式设计表7.存储文献格式表文献格式收件人姓名Char10收件人地址Char10收件人电话Float8收件人IDInt4收件(派)员姓名Char10收件(派)员电话Float8收件时间Char10完毕时间Char10快递公司Char10快递公司送件员姓名Char10送件员电话Float8运单IDInt4运单号Float8运单货品名称Char10货品重量Int4物品类别Char10货架区Char10货架(编号)Int4货格编号Int4扫描地点Char10地址Char103.7数据库设计图29.数据库关系图此系统数据库设计十分详细,界面上每一种模块中每一项功能基本都相应了一种基本表,没有数据冗余现象,实现了表信息查询。例如:派件信息资源管理菜单下,咱们可以查看一位员工员工号等信息;在货位状态表中,可以查询货品存储位置、存储状态等。4系统实行某些4.1程序框图图30.程序框图4.2代码设计4.2.1登陆界面 图31.登陆界面Private Sub cmdCancel_Click() LoginSucceeded = False Me.HideEnd SubPrivate Sub cmdOK_Click() If txtPassword = "1" And txtUserName = "SA" Then LibInfoSerSys.Show LoginSucceeded = True Me.Hide Else MsgBox "无效密码,请重试!","登录" txtPassword.SetFocus SendKeys "Home+End" End IfEnd Sub4.2.2管理系统界面图32.管理系统界面4.2.3收派件员信息界面图33.收派件员信息界面Private Sub Command2_Click()Form2.HideEnd SubPrivate Sub DataCombo1_Click(Area As Integer)Dim strquery As StringAdodc2.CommandType = adCmdTextstrquery = "select * from 收派件员信息 where 收派件员信息.工号=" & DataCombo1.BoundTextAdodc2.RecordSource = strqueryAdodc2.RefreshSet DataGrid1.DataSource = Adodc2End Sub4.2.4收件人信息界面图34. 收件人信息界面Private Sub Command2_Click()Form3.HideEnd SubPrivate Sub DataCombo1_Click(Area As Integer)Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 收件人信息 where 收件人信息.电话号码=" & DataCombo1.BoundTextAdodc1.RecordSource = strqueryAdodc1.RefreshSet DataGrid1.DataSource = Adodc1End Sub4.2.5收件清单录入图35. 收件清单录入Private Sub Adodc1_WillMove(ByVal adReason As ADODB.EventReasonEnum,adStatus As ADODB.EventStatusEnum,ByVal pRecordset As ADODB.Recordset) Adodc1.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & _ Adodc1.Recordset.RecordCountEnd SubPrivate Sub Command1_Click() Adodc1.Recordset.AddNew Text1.SetFocusEnd SubPrivate Sub Command2_Click()Dim msg As Stringmsg = MsgBox("拟定要删除该项记录吗?",vbQuestion + vbYesNo,"提示")If msg = vbYes Then With Adodc1.Recordset .Delete .MoveNext If .BOF = True Then .MoveLast End If End WithEnd IfEnd SubPrivate Sub Command3_Click() Adodc1.Recordset.UpdateEnd SubPrivate Sub Command4_Click()EndEnd SubPrivate Sub Command5_Click() Adodc1.Recordset.MoveFirstEnd SubPrivate Sub Command6_Click() Adodc1.Recordset.MoveLastEnd SubPrivate Sub Command7_Click() With Adodc1.Recordset .MovePrevious If .BOF = True Then .MoveFirst End If End WithEnd SubPrivate Sub Command8_Click() With Adodc1.Recordset .MoveNext If .BOF = True Then .MoveLast End If End WithEnd Sub4.2.6货位状态信息图36.货位状态信息Private Sub Command1_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 货位状态信息表 where 货架号 like 'A%'"Adodc1.RecordSource = strqueryAdodc1.RefreshEnd SubPrivate Sub Command2_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 货位状态信息表 where 货架号 like 'B%'"Adodc1.RecordSource = strqueryAdodc1.RefreshEnd SubPrivate Sub Command3_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 货位状态信息表 where 货架号 like 'C%'"Adodc1.RecordSource = strqueryAdodc1.RefreshEnd SubPrivate Sub Command4_Click()Form6.Hide图37.货位状态信息Private Sub Command1_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 货位分派表 where 货位号 like 'A01%'"Adodc1.RecordSource = strqueryAdodc1.RefreshEnd SubPrivate Sub Command10_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 货位分派表 where 货位号 like 'B06%'"Adodc1.RecordSource = strqueryAdodc1.RefreshEnd SubPrivate Sub Command11_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 货位分派表 where 货位号 like 'B07%'"Adodc1.RecordSource = strqueryAdodc1.RefreshEnd SubPrivate Sub Command12_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 货位分派表 where 货位号 like 'B08%'"Adodc1.RecordSource = strqueryAdodc1.RefreshEnd SubPrivate Sub Command13_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 货位分派表 where 货位号 like 'C09%'"Adodc1.RecordSource = strqueryAdodc1.RefreshEnd SubPrivate Sub Command14_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 货位分派表 where 货位号 like 'C10%'"Adodc1.RecordSource = strqueryAdodc1.RefreshEnd SubPrivate Sub Command15_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 货位分派表 where 货位号 like 'C11%'"Adodc1.RecordSource = strqueryAdodc1.RefreshEnd SubPrivate Sub Command16_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 货位分派表 where 货位号 like 'C12%'"Adodc1.RecordSource = strqueryAdodc1.RefreshEnd SubPrivate Sub Command2_Click()Form11.HideEnd SubPrivate Sub Command3_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 货位分派表 where 货位号 like 'A02%'"Adodc1.RecordSource = strqueryAdodc1.RefreshEnd SubPrivate Sub Command4_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 货位分派表 where 货位号 like 'A%'"Adodc1.RecordSource = strqueryAdodc1.RefreshEnd SubPrivate Sub Command5_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 货位分派表 where 货位号 like 'B%'"Adodc1.RecordSource = strqueryAdodc1.RefreshEnd SubPrivate Sub Command6_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 货位分派表 where 货位号 like 'C%'"Adodc1.RecordSource = strqueryAdodc1.RefreshEnd SubPrivate Sub Command7_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 货位分派表 where 货位号 like 'A03%'"Adodc1.RecordSource = strqueryAdodc1.RefreshEnd SubPrivate Sub Command8_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 货位分派表 where 货位号 like 'A04%'"Adodc1.RecordSource = strqueryAdodc1.RefreshEnd SubPrivate Sub Command9_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 货位分派表 where 货位号 like 'B05%'"Adodc1.RecordSource = strqueryAdodc1.RefreshEnd Sub4.2.7派件状况图38.派件状况Private Sub Command2_Click()Form8.HideEnd SubPrivate Sub DataCombo1_Click(Area As Integer)Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 派件完毕状况表 where 派件完毕状况表.运单=" & DataCombo1.BoundTextAdodc1.RecordSource = strqueryAdodc1.RefreshSet DataGrid1.DataSource = Adodc1End Sub4.2.8查询记录图39. 查询记录Private Sub Adodc1_WillMove(ByVal adReason As ADODB.EventReasonEnum,adStatus As ADODB.EventStatusEnum,ByVal pRecordset As ADODB.Recordset) Adodc1.Caption = "记录:" & Adodc1.Recordset.AbsolutePosition & "/" & _ Adodc1.Recordset.RecordCountEnd SubPrivate Sub Adodc2_WillMove(ByVal adReason As ADODB.EventReasonEnum,adStatus As ADODB.EventStatusEnum,ByVal pRecordset As ADODB.Recordset) Adodc2.Caption = "记录:" & Adodc2.Recordset.AbsolutePosition & "/" & _ Adodc2.Recordset.RecordCountEnd Sub4.2.9收件清单图40. 收件清单Private Sub Command1_Click()Dim strquery As StringAdodc1.CommandType = adCmdTextstrquery = "select * from 收件清单 where 收件清单.运单号=" & DataCombo1.Boun