1、 毕 业 设 计 毕业设计题 红旺物流管理系统方案设计 毕业设计类型 □ 产品设计 □工艺设计 þ方案设计 姓名 班级 所属系部 物流信息系 专业 物流信息技术 指导教师
2、 职称 完成时间 摘 要 开发物流货物跟踪系统,目的是统一企业的物流信息,方便客户的查询和反馈信息,增强管理的准确度,确保企业工作高质量、高效率及低成本地运行,在保障生产现在或将来能够顺利进行的前提下,有效合理地配备资源,使企业保持最佳的生产状态。 近年来,GPS技术与网络和无线通信术日益成熟,利用GPS对车辆实行实时跟踪监控与调度管理。 GPS与互联网的完美结合,对贵重物品装卸的科学有效
3、追踪,大大提高了物流运输企业的运营信誉和安全管理水平。 关 键 词:物流,GPS,跟踪调查。 目 录 引 言 1 第一章 需求分析 7 1.1 设计需求 7 1.2 系统的可行性研究 8 第2章 系统总体设计 11 2.1 设计思想 11 2.2 业务流程 12 第3章 系统功能模块设计 14 3.1 模块划分 14 3.2 功能实现 15 第四章 系统主要界面和主要功能的实现 18 4.1系统主要界面 18 4.2系统登录界面 20 4.3系统单据录入 23 4.4系统单据查询 25 4.5系统统计报表 28 4.6系统资料维护 3
4、1 总结 35 致谢 37 参考文献 38 引 言 物流业的快速发展,使得货物运输量和物流车辆的数目日益增多。如何有效的保证货物的准确按时、保持、保量的送达?如何对车辆进行有效的调度?如何对车辆进行有效的实时监控?成为物流企业运输管理内容的重中之重。 90年代以来,快递公司由一种新兴产业逐渐走入千家万户,在加快社会发展脚步的同时,为人们的生活提供了很大便利,也为自己创造了极大的利益和社会价值。在日常生活中,我们和快递公司的接触也很多。快递行业信息化的特点有: (1)业务的动态性:每一份运单的状态是实时变化的,从收件开始经历了中转多次、报关、派件、回单、收款等过程。
5、 (2)地域的分布性:地域的分布性包括两个含义:一是用户的分布地域具有不确定性,二是快递企业本身的网络架构,具有分布式的特点。 因此,快递企业是在用分布式的网络架构服务来服务分布式的客户。 (3)数据的动态监控:快递的任何状态点都需要及时地反映到总部,这样,客户才能及时查询快递到了什么地方,总部也可以实时动态地监控视快件状态。 (4)提供多样化的服务:考虑到客户不同的要求,快递需要对客户提供的全方位的服务体系,服务包括电话、传真、E-mail、呼叫中心、短信服务、网上查询等方式。 (5)物流、资金流、控制流和信息流的高度统一 :信息流伴随着整个业务的流转过程,控制流
6、对业务的动态控制。 快递信息处理的主要内容有: (1)订货信息处理。包括三个阶段:计划阶段:选定订货方法;选定订货信息的传递手段;实施阶段:订货处理;核对库存;核对装卸能力;核对配送能力;制作出货单;制作进货单;迟进货物的管理;评价阶段:订货统计分析;退货处理;进货管理。 (2)库存管理中的信息处理。包括三个阶段:计划阶段:决定库存地点的数量;商品库存的合理配置;没定库存预算;拟定标准的库存周转率;实施阶段:回答库存;进出库处理;移送处理;卸现货货架;评价阶段:库存预算与库存实绩的对比;标难库存周转率与实际周转率的对比;分析过剩库存;分析缺货库存;分析商品的恶化和破损;计算保管费;计算
7、保险费。 (3)进货信息处理。包括三个阶段:计划阶段:选定进货方法;选定订货信息传递手段;实施阶段:进货;掌握和督促未进仓库的商品;评价阶段:分析进货统计。 (4)仓库管理中的信息。包括三个阶段:计划阶段:租用储运公司的仓库或使用自有仓库的决定;决定仓库容积和设备的设计;保管形式的设计;仓库设备投资的经济核算;实施阶段;自动仓库的经营;容纳场所的指示;故障对策,完善仓库的安全设备;安置管理;评价阶段:分析仓库设备的调动;空架表;故障分析;计算修理费用,计算保安设施费用。 (5)装卸信息处理。包括三个阶段:计划阶段:装卸方法的设定;装卸机械投资的经济核算;实施阶段;装卸作业指示:商品检查;
8、评价阶段;装卸费用分析;装卸机械调动分析。 (6)包装信息处理。包括三个阶段:计划阶段:决定包装形式;决定运输货物的形态;拟定包装标准,设计自动包装;实施阶段:包装材料的管理;包装工程的管理;空集装箱的管理;评价阶段:包装费用的分析,事故统计。 (7)运输信息处理。包括三个阶段:计划阶段:运输工具的选定;运输路线的选定,运送大宗货物的决定;实施阶段:调配车辆;货物装载指示;货物跟踪管理;评价阶段:运费计算装载效率分析;车辆调动分析;迂回运输分析;事故分析。 (8)配送信息处理。包括三个阶段:计划阶段:配送中心的数量、位置的确定;配送区域的决定;实施阶段:配送指示;与配送的货物抵达点联络;
9、货物跟踪管理;评价阶段:运费计算;装载效率分析;车辆调动分析;退货的运费分析;误差分析。 第2章 需求分析 1.1 设计需求 物流管理的最终目标是降低成本、提高服务水平,这需要物流企业能够及时、准确、全面的掌握运输车辆的信息,对运输车辆实现实时监控调度。现代科技、通讯技术的发展,GPS技术的成熟,为现代物流管理提供了强大而有效的工具。GPS对物流企业优化资源配置、提高市场竞争力,将会起到积极的促进作用。 物流行业的需求是: (1)业务覆盖地域广、车辆众多,信息量大。 (2)区域与线路监控要求突出。 (3)与货运单据配合紧密。 (4)对货物安全保障要求高。 (5
10、对系统响应要求灵活、及时。 (6)需要位置服务信息的用户多。 (7)数据共享程度要求高。 (8)需要完善车辆统一信息管理 1.2 系统的可行性研究 1.2.1数据库设计方法简述 数据库设计是对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。 数据库设计可以分为6个步骤: (1)需求分析阶段 准确了解与分析用户需求(包括数据与处理)它是整个设计过程的基础,是最困难、最耗费时间的一步。 (2)逻辑结构设计阶段 它是整个数据库设计的关键。通过对用户需求进行综合、归纳与抽象,形成一个独立于具
11、体的数据表格。 (3)数据库物理设计阶段 为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。 (5)数据库实施阶段 根据逻辑设计和物理设计的结果。建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 1.2.2操作可行性 作为一个实际存在的业务,系统设计的目的,以及所包括的信息内容功能都能够比较清晰地获得。通过合理的系统分析,能够基本上获得系统的需求,并且按照系统的需求进行之际的系统设计工作。 1.2.3经济可行性分析 本系统的开发需求较低,有较为成熟的软硬件环境作为基础,目标系统开发与操作都不是十分复杂,大大节省了投
12、资成本。开发完成运行后,可以代替人工进行许多繁杂的劳动,大大提高了员工的工作效率,为使用者带来便利,也为系统的进一步推广创造了条件,利用更短的时间,更少的人力物力财力创造更大的利益,而且投入成本较低,所以,从经济角度考虑,该系统开发可行。 1.2.4技术可行性分析 本系统将针对快递公司的业务过程展开设计,开发本系统需要对数据库进行灵活和快捷的操作,因此选择熟悉的SQL语言来支持本系统的开发需求。本系统具有订单接受、处理、派送和货物跟踪查询等几个主要的功能模块 1.2.5社会可行性分析 企业使用现代化的办公平台将打破原先的手工操作,为企业创造更大的经济利益同时,推动社会进步的脚步
13、产生更大的社会利润,企业的每一次发展、进步和革新都推动着社会和人类生活的前行,因此,该系统的开发具有社会可行性。 第2章 系统总体设计 2.1 设计思想 物流运输企业的工作人员在向货主取货时、在物流中心重新集装运输时、在向顾客配送和交货时,通过网络将货物的订单号、发货时间、预计到货时间、运输方式、在途信息、车辆和司机信息、以及到货后各户的验收货物的信息进行汇总并传至服务器中,这样所有被运送的货物的信息都集中在服务器里,方便了物流公司对货物的统一管理和客户了解货物的状况并及时收取货物并反馈验收情况。货物跟踪系统提高了物流企业的服务水平,其具体作用表现在以下四个方面。 第一
14、当顾客需要对货物的状态进行查询时,只要输入货物的发票号码,马上就可以知道有关货物状态的信息。查询作业简便迅速,信息及时准确。 第二,通过货物信息可以确认是否货物将在规定的时间内送到顾客手中,能即时发现没有在规定的时间内把货物交付给顾客的情况,便于马上查明原因并及时改正,从而提高运送货物的准确性和及时性,提高顾客服务水平。 第三,作为获得竞争优势的手段,提高物流运输效率,提供差别化物流服务。 第四,通过货物跟踪系统所得到的有关货物运送状态的信息丰富了供应链的信息分享源,有关货物运送状态信息的分享有利于顾客预告做好接货以及后续工作的准备。 建立货物跟踪系统需要较大的投资,
15、如购买设备、标准化工作、系统运行费用等。因此只有实力的大型物流运输企业才能够应用货物跟踪系统。但是随着信息产品和通讯费用的低价格化以及互联网的普及,许多中小物流运输企业也开始应用货物跟踪系统。在信息技术广泛普及的美国,物流运输企业建立本企业的网页,顾客通过互联网与物流运输企业也开始建立本企业的网页,通过互联网从事物流运输业务。 2.2 业务流程 首先,对于整个快递管理系统,它主要实现的功能是:发货客户与快递公司签订货运合同(货运单),把货物交给快递公司来托运,并按照货运合同的付款方式付款。快递公司根据货物运输线路,为货物配车,找到合适的车辆后,与司机签订运输合同(回执单),并按照运输合同的
16、运费结算方式结算。司机对货物检查无误后,装车,然后发车,发车后,货物的任何损失由司机承担。 司机到达目的地后,需要经过货物验收,验收通过,填写一份司机回执单,快递公司这时同时通知发货客户和收货客户,货物已到达。如果货物没有通过验收,则填写差错记录。如果该货物不需要中转,通知收货客户来提货,客户验收通过后,填写客户回执单,快递公司这时通知发货客户,所发货物已被提走。如果该货物需要中转,则填写一份中转信息单,快递公司这时同时通知发货客户和收货客户,货物已被中转。中转成功后,收货客户来提货,并通知发货客户,货物已被提,然后进行转货结算。 第3章 系统功能模块设计 3.1 模块划
17、分 模块划分时描述一个系统需求的一个过程,需要将需求分析中的感性描述进行抽象,提取出要实现的功能,这是整个系统开发中一个关键过程。分析的根本目的时在开发者和提出需求的人员之间建立一种理解和沟通的机制。因此,物流快递系统的需求分析也是根据开发者和实际用户需求一起来完成的。根据日常快递管理的业务逻辑把系统划分如下: 红旺物流货物管理系统模块划分如图3-1: 红旺物流货物管理系统 中转查询 派送统计 接收统计 中转统计 客户投诉 用户维护 品名维护 备注维护 数据库备份 关于本系 退出系统 权限管理 快件中转 客户投诉 未派送查 发件查询 接收查询 快件
18、接收 快件派送 单据录入 统计报表 单据查询 资料维护 关于 权限 图3-1 红旺物流货物管理系统功能模块图 3.2 功能实现 快递业务的核心是邮件(即运单),所有业务的处理都围绕运单展开。系统的功能是系统能够完成的操作和任务,实现过程的全程控制、全程跟踪、即时核查。在本系统中系统的功能有: (1)以运单为中心的核心业务主线 收件:短信通知业务员收件、运单录入; 中转:中转到件、中转发件、中转报关; 到件:配件清单、配件回单(标志快件周期结束); 监管核查:对每一单实时跟踪,及时发现问题,告警,对运单状态全程监控; 财务处理:发票、核对帐单、
19、应收付、核查、收付款、财务核销等; 问题件处理:对各种问题件进行分类处理。 (2)以客户为中心的客户服务辅线 查询咨询服务:客户可以通过电话、传真、Internet等方式查询运单状态,咨询相关业务; 投诉处理:受理客户对服务的投诉、赔偿要求等; 接受定单:通过电话、传真、Internet等方式接受客户定单委托、预约等;主动通知服务:客户可以定制服务要求,如:货到后通过短信、电话或E-mail通知发货方 。 (3)以决策为目标的领导决策支持系统辅线 领导查询:原则上,普通员工能看到的信息领导都可以看到,领导桌面的信息可定制; 历史数据分析:用多种直观的方式
20、如图、表等反映历史交易情况; 客户情况分析:对客户情况做各种分类统计分析,得出有价值得结论; 财务分析:提供应收、应付、各种财务报表等数据; 业绩考核:根据设定的管理指标,实时反映员工业绩情况; 差错分析:对各种差错做定量、定性分析。 物流企业使用跟踪系统流程如图3-2: 建立新运单 转运 货物送达 运单结算 委托 入库 接受货主委托单 评价 出库 开始 结束 图3-2 企业跟踪系统流程图 货主使用跟踪系统流程如图3-3: 填写货运委托单 运单结算 货物送达 查看货物跟踪记录 等待物流企业接单 评价 开始 结束 图3-3 货
21、主跟踪系统流程图 第 31 页 共 34 页 第四章 系统主要界面和主要功能的实现 4.1系统主要界面 系统主要界面实现代码如下: package pyw; import javax.swing.*; import java.awt.event.*; import java.sql.*; public class mainframe extends JFrame implements ActionListener { JButton jbcjlr=new JButton("单据录入"); JButton jbcjxg=new JButton("单据查询");
22、JButton jbcjsc=new JButton("统计报表"); JButton jbcjcx=new JButton("资料维护"); JButton jbjszf=new JButton("关于"); JButton jbexit=new JButton("维护"); public mainframe(){ super("红旺物流货物管理"); setSize(400,430); setLayout(null); jbcjlr.setBounds(100, 50, 200, 30); jbcjxg.setBounds(100, 100,
23、200, 30); jbcjsc.setBounds(100, 150, 200, 30); jbcjcx.setBounds(100, 200, 200, 30); jbjszf.setBounds(100, 250, 200, 30); jbexit.setBounds(100, 300, 200, 30); add(jbcjlr); add(jbcjxg); add(jbcjsc); add(jbcjcx); add(jbjszf); add(jbexit); jbcjlr.addActionListener(this);
24、 jbcjxg.addActionListener(this); jbcjsc.addActionListener(this); jbcjcx.addActionListener(this); jbjszf.addActionListener(this); jbexit.addActionListener(this); setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("单据录入")){ disp
25、ose(); cjlr cjlr1=new cjlr(); } else if(e.getActionCommand().equals("单据查询")){ dispose(); cjxg cjxg1=new cjxg(); } else if(e.getActionCommand().equals("统计报表")){ dispose(); cjsc cjsc1=new cjsc(); } else if(e.getActionCommand().equals("资料维护")){ dispo
26、se(); cjcx cjcx1=new cjcx(); } else if(e.getActionCommand().equals("退出")){ String sql,sqljszf; ResultSet rs=null; sql="select * from cj"; try{ condb con=new condb(); rs=con.getrs(con.con,sql); while(rs.next()){ sqljszf="update cj set "; con.db
27、mod(con.con,sqljszf); } con.dbclose(con.con,null); }catch(Exception ee){} JOptionPane jop=new JOptionPane(); jop.showConfirmDialog(null, "退出系统!","确定",-1); } else if(e.getActionCommand().equals("退出系统")){ this.dispose(); System.exit(0); } } 系统主要界面如图4-4: 图4-
28、4 系统主要界面 4.2系统登录界面 系统登录实现代码如下: package pyw; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*; public class login extends JFrame implements ActionListener{ private condb conlogin=null; private ResultSet rs=null; private String sql;
29、 private JLabel jlbname=new JLabel("用户名称:"); private JLabel jlbpwd=new JLabel("用户密码:"); private JTextField jtfname=new JTextField("",10); private JPasswordField jtfpwd=new JPasswordField(6); private JButton jbtlogin=new JButton("登录"); private JButton jbtexit=new JButton("
30、取消"); public login() { super("红旺物流货物管理系统"); this.setSize(320,180); this.setLayout(null); this.setBackground(Color.LIGHT_GRAY); this.setLocationRelativeTo(this.getParent()); this.setResizable(false); jlbname.setSize(80,20);
31、jlbpwd.setSize(80,20); jtfname.setSize(120,20); jtfpwd.setSize(120,20); jbtlogin.setSize(80,20); jbtexit.setSize(80,20); jlbname.setLocation(50,30); jlbpwd.setLocation(50,70); jtfname.setLocation(130,30); jtfpwd.setLocation(130,
32、70); jbtlogin.setLocation(70,110); jbtexit.setLocation(180,110); add(jlbname); add(jlbpwd); add(jtfname); add(jtfpwd); add(jbtlogin); add(jbtexit); jbtlogin.addActionListener(this); jbtexit.addActionListener(th
33、is); this.setVisible(true); } public void actionPerformed(ActionEvent e){ if(e.getActionCommand().equals("取消")){ this.dispose(); System.exit(0); } if(e.getActionCommand().equals("登录")){ conlogin=new condb();
34、 //sql="select * from user where 用户名称='"+jtfname.getText()+"' and 用户密码='"+jtfpwd.getText()+"'"; //try{ // rs=conlogin.getrs(conlogin.con,sql); // if(rs.next()){ // dispose(); mainframe mf=new mainframe();
35、 conlogin.dbclose(conlogin.con,rs); } else{ JOptionPane jop=new JOptionPane(); jop.showConfirmDialog(null,"此用户名不存在!","警告",-1); } // }catch(Exception ee){} // }
36、} public static void main(String[] args){ login log=new login(); } } 系统登录界面如图4-5: 图4-5 系统登录界面 4.3系统单据录入 系统单据录入实现代码如下: package pyw; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class cjlr extends JFrame impleme
37、nts ActionListener{ private condb constlr=new condb(); private String sql; JLabel jlbxh=new JLabel("快件派送:"); JLabel jlbxm=new JLabel("快件接送:"); JLabel jlbyw=new JLabel("快件中转:"); JLabel jlbsx=new JLabel("客户投诉:"); JTextField jtfxh=new JTextField(10); JTextField jtfxm=new JTextField(10);
38、 JTextField jtfyw=new JTextField(10); JTextField jtfsx=new JTextField(10); JTextField jtfyy=new JTextField(10); JTextField jtfwl=new JTextField(10); JButton jbtok=new JButton ("确定"); JButton jbtexit=new JButton ("退出"); public cjlr(){ super("单据录入"); setSize(360,200); setLayout(
39、null); jlbxh.setBounds(40, 20, 60, 20); jlbxm.setBounds(210, 20, 60, 20); jlbyw.setBounds(40,50, 60, 20); jlbsx.setBounds(210, 50, 60, 20); jtfxh.setBounds(100, 20, 60, 20); jtfxm.setBounds(270, 20, 60, 20); jtfyw.setBounds(100, 50, 60, 20); jtfsx.setBounds(270, 50, 60, 20);
40、 jbtok.setBounds(100, 120, 60, 20); jbtexit.setBounds(210, 120, 60, 20); add(jlbxh); add(jlbxm); add(jlbyw); add(jlbsx); add(jtfxh); add(jtfxm); add(jtfyw); add(jtfsx); add(jbtok); add(jbtexit); jbtok.addActionListener(this); jbtexit.addActionListener(this);
41、 setVisible(true); } public void actionPerformed(ActionEvent e){ if(e.getActionCommand().equals("确定")){ try{ constlr=new condb(); sql="insert into cj() VALUES('"+jtfxh.getText()+"','" +jtfxm.getText()+"',"+jtfyw.getText()+","+jtfsx.getText()+","+jtfyy.getText()+","+jtfwl.getT
42、ext()+")"; constlr.dbmod(constlr.con, sql); constlr.dbclose(constlr.con,null); }catch (Exception ee){} jtfxh.setText(""); jtfxm.setText(""); jtfyw.setText(""); jtfsx.setText(""); jtfyy.setText(""); jtfwl.setText(""); } else if(e.getActionCommand().equals("退出")){
43、 this.dispose(); new mainframe(); } } } 系统单据录入如图4-6: 图4-6 系统单据录入 4.4系统单据查询 系统单据查询实现代码如下图: package pyw; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.ResultSet; import javax.swing.*; public class cjxg extends JFrame implements ActionL
44、istener{ private condb con=null; private String sql; private ResultSet rs=null; JLabel jlbyw=new JLabel("委派送查:"); JLabel jlbsx=new JLabel("发件查询:"); JLabel jlbyy=new JLabel("接受查询:"); JLabel jlbwl=new JLabel("中转查询:"); JTextField jtfyw=new JTextField(10); JTextField jtfsx=new JTextFie
45、ld(10); JTextField jtfyy=new JTextField(10); JTextField jtfwl=new JTextField(10); JButton jbtok=new JButton ("查询"); JButton jbtexit=new JButton("退出"); public cjxg(){ super("红旺货物管理单据查询"); setSize(360,220); setLayout(null); jlbyw.setBounds(40,80,60,20); jlbsx.setBounds(210,80,
46、60,20); jlbyy.setBounds(40,110,60,20); jlbwl.setBounds(210,110,60,20); jtfyw.setBounds(100,80,60,20); jtfsx.setBounds(270,80,60,20); jtfyy.setBounds(100,110,60,20); jtfwl.setBounds(270,110,60,20); jbtok.setBounds(100,150,60,20); jbtexit.setBounds(250,150,60,20); add(jlbyw)
47、 add(jlbsx); add(jlbyy); add(jlbwl); add(jtfyw); add(jtfsx); add(jtfyy); add(jtfwl); add(jbtok); add(jbtexit); jbtok.addActionListener(this); jbtexit.addActionListener(this); setVisible(true); } public void actionPerformed(ActionEvent e){ if(e.getActionCom
48、mand().equals("查找")){ try{ con=new condb(); sql="update cj set 姓名='"+jtfxm.getText()+"',委派送查="+jtfyw.getText()+",发件查询="+jtfsx.getText()+",接收查询="+jtfyy.getText()+",中转查询="+jtfwl.getText()+" where 编号='"+jtfxh.getText()+"'"; con.dbmod(con.con,sql); con.dbclose(con.con,null);
49、}catch(Exception ee){} jtfxh.setText(""); jtfxm.setText(""); jtfyw.setText(""); jtfsx.setText(""); jtfyy.setText(""); jtfwl.setText(""); } else if(e.getActionCommand().equals("退出")){ this.dispose(); new mainframe(); } else if(e.getActionCommand().equals("查找
50、")){ con=new condb(); try{ rs=con.getrs(con.con,sql); if(rs.next()){ jtfyw.setText(rs.getString("委派送查").toString()); jtfsx.setText(rs.getString("发件查询").toString()); jtfyy.setText(rs.getString("接收查询").toString()); jtfwl.setText(rs.getString("中转查询").toString()






