中小型物流企业管理信息系统开发实例.docx
《中小型物流企业管理信息系统开发实例.docx》由会员分享,可在线阅读,更多相关《中小型物流企业管理信息系统开发实例.docx(84页珍藏版)》请在冰豆网上搜索。
中小型物流企业管理信息系统开发实例
某中小型物流企业管理信息系统开发实例
沿海省份某中小型物流企业,拥有五个大小不同的仓库,并组建有自己的运输车队,拥有各种运输车辆共19台,企业员工人数达90多人,主要从事为周边多家生产型企业提供原材料、产成品的仓储管理以及运输服务,同时也承接一些零散客户的货物保存与运输业务。
由于业务发展的需要,客户对所提供的服务的要求不断提高,企业急需一套较完善的MIS系统,用以支持日常各种管理业务的快速处理,支持客户对其货物的快速查询、各种费用的快速查询、缴纳及客户意见反馈等工作。
一、组织机构及功能分析
(一)组织机构图
该物流企业组织机构较简单,总经理下设公司办,公司办作为常设管理结构,组织、协调、管理仓储、运输、财务、客户等下级部门。
如下图:
(二)功能目标
MIS系统应包含绝大部分日常管理功能,主要有以下几方面:
1、MIS系统及各部门业务初始化设置;
2、完善的货物入库、库存、出库管理功能;
3、完善的车辆管理、驾驶员管理、运输业务处理功能;
4、快捷、准确的各种费用统计计算功能;
5、全面的客户资料管理、分类、查询功能,并提供客户自主上网查询功能;
6、分级别、有条件的各种统计信息查询功能;
二、各部门主要业务及数据流程分析
(一)仓库管理
包含三个方面的主要业务,分述如下:
1、入库
送货人员将货物及“送货单”送达仓库站台,仓库入库组收货员按“送货单”验收货物并组织卸货,为每件货物填写唯一的“码单”。
保管员将货主送达的“货物明细单”与“送货单”、“码单”相核对,如不符,返货主“货物异常报告”,如相符,分配库位,录入成“入库单”。
仓库主管审核后,记“库存账”,生成“入库收费单”,数据不再允许改动。
相应DFD:
2、出库
货主在出库时提供“提货样单”,提货人持“提货单”至出库组,要求提货。
发货员核实“提货单”,填写“出库单”,然后向提货人出具“出库收费单”,同时生成“派车单”,并派保管员准备发货。
保管员持“派车单”组织货物装运,记录实出货物信息,填写“码单出库信息表”。
仓库主管审核记账后,生成“库存收费单”。
并且冲抵库存帐、在“码单”表中记录出库信息,存档。
用户缴费后,保管员开具出门证给用户。
相应DFD:
3、库存
盘点流程:
仓库主管根据需要盘点的货物生成“盘点帐存表”,表中有生成盘点表的商品编码、商品名称、所属部门、库位、经营方式、库存数量及盘点日期等相关信息;
打印“盘点单”,包括的项目有:
商品库位、所属部门、类别、商品编码、商品名称、经营方式、实盘数量及盘点日期,这里不输出商品的帐存数量;
保管员手持“盘点单”,进行实地盘点,将数量填入“盘点单”中实盘数量处;
保管员在微机中调出对应的“盘点帐存表”,将实盘的数量录入进去,经主管检查录入数据的准确性后,审核生效;
生成盘点盈亏表。
针对商品有盘盈和盘亏的商品进行记账。
凡是有盈亏的商品列出商品编码、名称、实盘数量、帐存数量、成本单价、盈亏金额
相应DFD:
(二)运输管理
运输管理部门下设车队办公室、运输调度室、维修班共三个机构,主要承担企业日常的车辆配置、维护、驾驶员招聘、货物运输调度等管理业务。
1、车队办与维修班:
按企业要求制定“车辆购置计划”、并招标采购;
把采购回的车辆信息录入“车辆档案”并分配到具体车队;(车牌号、车类、车型、购置金额、购置日期、里程数、限运重量、限运体积、行驶证号、年审日期、所属车队、报勤)
按企业要求制定“驾驶员招聘计划”、并实施招聘;
把招聘的驾驶员信息录入“驾驶员档案”并分配到具体车队;(员工号、姓名、驾驶证、驾驶类型、所属车队、报勤)
审核各车队送来的车辆及驾驶人员的考勤信息,并录入至“考勤表”;
审核各车队送来的车辆报修单并录入至“车辆报修表”;
2、运输调度
审核各客户交来的运输用车要求(派车单),不能承担的退回;
查询运输资源中空闲车辆及驾驶员信息,并制定相应派车任务单(派车单号、派车时间、车牌号、任务1、提货单号1、装货地(仓库)1、卸货地1、收货人签字1;任务2、提货单2.。
。
。
。
);
打印派车任务单,分别给客户、车队及驾驶员;
相应DFD:
(三)费用计算
企业的财务管理部门与仓储、运输等业务部门在经济上,有紧密的联系。
主要承担仓储、运输等部门的日常业务过程中所发生的往来费用的计算、审核、执行等工作。
简单描述如下:
基础数据管理:
负责费用核算过程中所需基础数据的录入、修改、删除等管理工作。
具体有:
1、费用项目设置:
按企业要求制定各部门的所有收费项目,如仓储费、运输费、装卸费、处理费、加班费、报关费等;
2、费用类型设置:
按实际具体情况,确定各部门的各种收费类型,如:
按重量收费、按体积收费、按时间收费、按距离收费、按重量时间收费、按重量距离收费等;
3、计费单位设置:
确定各种收费类型的计费单位,如:
吨、公斤、立方、升、公里、月、日(天)等;
仓储部门费用管理:
根据仓储管理信息系统中已有的货物入库单和出库单,选择收费的各项方法、计算出应该收取的各项仓储管理费用,并经审核后,打印出一式几份的费用清单,分别交仓库、货主和提货人,催交费用。
交费完成后,打印出收款收据,并保存在信息系统中。
运输部门费用管理:
根据运输管理信息系统中已有的派车(任务)单,选择收费的各种方法、计算出各客户应支付的运输费用(总费用分摊),经审核后,打印出一式几份,分别交车队、客户,催交费用。
交费完成后,打印出收款收据,并保存在信息系统中。
应收、应付账单管理:
各客户的应收、应付账单,由客户已有的收费单及收款收据汇集而成。
具体操作如下:
输入欲查询的客户名称和时间段(默认为本月),系统从数据库中找出相应的收费单、收款收款记录,列表显示。
相应DFD:
(四)客户管理
1、从前面仓储系统或运输系统中的客户基本信息表中,找到相应客户,对其已有的仓储管理费用(入库收费单、库存收费单、出库收费单)和运输管理费用(运输收费单)进行汇总统计,得到的总费用,录入到客户信誉档案;然后将该客户已有的收款收据(仓储收款收据、运输收款收据)汇总统计后,录入到客户信誉档案(客户号、客户名称、客户类别、初次交易时间、交易总金额、收款金额、欠款金额、信誉等级、折扣率);最后按一定的方法(自拟),给客户评定类别(大客户、普通客户、散客户)、信誉等级、折扣率。
2、根据客户信誉档案,统计出排名前十、或前二十位客户,分析其所在行业、所在地域、企业规模。
3、客户利用本系统或互联网,输入自己的姓名、口令登录到客户关系信息系统,输入查询条件,分别从不同的数据表中,查询出自己的货物信息、应交费用信息、已交费用信息及信誉等级和折扣率。
4、客户登录后,可将自己的意见、留言录入到客户留言表中,系统根据不同的留言发送到不同的部门,各部门将处理后的结果录入到相应客户留言栏中。
相应的DFD:
(五)统计查询
1、仓储库存查询:
进入本模块后,选择相应的仓库,选择相应时间,系统找到该仓库的库存台帐(货物存储档案),调出各货位当时的货物信息(码单),形成当时库存列表,显示出来,并提供打印输出功能;在显示库存列表中,应能进一步查询货物码单的详细情况。
2、入库出库查询:
进入本模块后,选择相应的仓库,选择相应时间段,系统找到该仓库该时间段的入(出)库单表,形成入(出)库单列表,显示出来,并提供打印输出功能;在显示入(出)库单列表中,应能进一步查询该单的详细情况。
3、运输派车查询:
进入本模块后,选择相应查询要求(如:
车牌号、驾驶员、时间、提货单号、派车单号、客户号等),系统找到运输信息系统中的派车(任务)单表,调出满足条件的派车单,形成派车单列表,显示出来,并提供打印输出功能;在显示派车单列表中,应能进一步查询派车单的详细情况。
4、运输统计查询:
进入本模块后,选择相应车队、相应时间段,系统找到运输信息系统中的派车(任务)单表,调出满足条件的派车单,按车牌号或驾驶员进行分类汇总统计,形成每车或每人的运输工作量汇总列表,显示出来,并提供打印输出功能;在显示工作量汇总列表中,应能进一步查询每车或每人的派车单的详细情况。
5、仓储收入查询:
进入本模块后,选择相应的仓库,选择相应时间段,系统找到仓储管理系统中的仓储费用清单表(应收)和仓储收款收据表(实收),调出该仓库该时间段的数据信息,形成仓库收入列表,显示出来,并提供打印输出功能;在显示仓库收入列表中,应能进一步查询每笔应收、实收的详细情况。
6、运输收入查询:
进入本模块后,选择相应的车队,选择相应时间段,系统找到运输管理系统中的运输费用清单表(应收)和运输收款收据表(实收),调出该车队该时间段的数据信息,形成车队收入列表,显示出来,并提供打印输出功能;在显示车队收入列表中,应能进一步查询每笔应收、实收的详细情况。
相应DFD:
略
三、MIS系统设计
(一)总体结构设计
其中:
仓库资料管理:
可分为仓库信息、库区信息、库位信息、货物信息、客户信息等管理模块;
入库管理:
可分为码单管理、异常报告管理、入库单管理、记库存帐等模块;
出库管理:
可分为出库单管理、码单出库管理、出库收费管理、记库存帐等模块;
库存管理:
可分为生成盘点帐存表、打印盘点表、盘点数据录入、盘点盈亏管理等模块。
车队资料管理:
车队信息、车类信息、车型信息;
车辆管理:
购车计划、车辆档案、车辆考勤、车辆报修;
驾驶员管理:
招聘计划、驾驶员档案、驾驶员考勤;
运输管理:
派车单管理
其余略
(二)运行环境设计
本系统在企业内部网络上开发运行,采用C/S开发应用模式。
在企业公司办有一台高性能的网络服务器,安装有网络操作系统WINDOWS2000SERVER,网络数据库管理系统MSSQLSERVER2000,用于集中存放企业管理数据,为其他计算机提供数据存取服务。
网络中各部门计算机,安装有WINDOWS2000PRO以上版本的操作系统,都可作为客户机,连接到服务器上,实现数据资源共享。
开发的MIS软件也安装在客户机上。
在教学、实验过程中,有网络条件的实验室,可参考以上配置,再加装开发工具:
DELPHI7以上版本,也可以在单机上用前后台的方式模拟C/S结构,前台用DELPHI作开发,后台用MSSQL2000个人版,进行实验。
(三)代码设计
本系统常用的代码有:
1、送货单号:
10位以内字符,由送货方开出,数据宽度一般不统一;
2、码单号:
3、入库单号、入库收费单号:
同上;
4、出库单号、出库收费单号、库存收费单号:
同上;
5、客户号:
5位字符,其中2位代表客户类别,后3位为序列号;
6、库区位置编号:
8位字符,2位代表仓库,3位代表库区,3位代表库位;
7、货物编号:
10位字符,3位代表大类,3位代表小类,4位序列号;
8、职工编号:
5位字符,2位代表部门,3位序列号;
9、异常报告编号:
8位字符,6位年月日+2位序列号;
(四)数据库及表设计(仓储管理部分):
该物流企业所有部门共用一个数据库,名为WLMIS,其中仓储管理部分的主要数据表如下:
1、码单:
每包装货物一份码单,该表保存所有码单信息;
2、异常报告:
该表保存所有入库异常信息;
3、入库单:
客户每送一批货物入库,开具一份入库单,该表保存所有入库信息;
4、入库收费单:
每份入库单对应一张入库收费单,主要由货物入库装卸费、检验费组成;
5、库存帐:
按库存位置记载的当前库存货物摆放情况;
6、出库单:
每批货物出库开具一张出库单,该表保存所有出库信息;
7、码单出库表:
对应一张出库单,挑选多张码单货物出库,该表保存所有码单出库信息;
8、库存收费单:
货物出库时填写,计算保存时间、费率、金额;
9、出库收费单:
主要是出库装卸费;
10、派车单:
(同后续运输管理部分):
对运输部门下达的派车调令,每张单可对应多个出库单;
11、盘点帐存单(盘点单同):
由库存账按盘点要求生成,一般是月底分仓库打印;
12、盘点盈亏表:
由实际盘点数(填好的盘点单)与盘点账存单核对而成;
13、客户:
该表保存所有客户信息;
14、货物:
该表保存所有货物信息;
15、仓库:
该表保存所有仓库信息;
16、库区:
该表保存所有库区信息;
17、库位:
该表保存所有库位信息;
18、部门:
该表保存所有部门信息;
19、职工:
该表保存所有职工信息及在本系统的操作权限、进入口令;
数据表的具体结构,请参看系统实施部分实验一
四、MIS系统实施
实验一、MSSQLSERVER2000数据库、表及ODBC设置
一、实验目的:
通过实验,熟悉网络数据库MSSQLSERVER的基本操作,尤其是运用“企业管理器”建数据库、表的基本技能;熟悉WINDOWS下,ODBC数据库连接的设置过程。
二、实验内容:
1、在SQLSERVER中,新建数据库用户,并授予管理员DBA权限;
2、建物流企业数据库,如:
WLMIS;
3、在数据库中创建仓储管理部分所有数据表,如:
客户、码单等;
4、在WINDOWS的控制面板中,新建数据库接口----ODBC连接;
三、实验主要步骤:
1、在windows中,运行“企业管理器”,如图:
2、在“数据库”中,新建名为WLMIS的数据库,在“安全性-登录”目录下,新建名为“ADMIN”的登录,设置密码为“ADMIN”,默认登录数据库为WLMIS,默认语言为简体中文,并设置数据库访问权限,如图;
3、进入WLMIS数据库,点击“表”,再点开右键快捷菜单,依次新建数据表:
4、新建WINDOWS下的ODBC连接;“控制面板”-“管理工具”-“”如下图:
添加名为HNXT的SQLSERVER系统DSN,数据源及服务器的名字均为HNXT,
上面页面尤为重要,不要选错,密码为前设置的“ADMIN”,默认数据库为WLMIS,设置完成后,经测试连接成功即可。
四、实验结果:
略
实验二、创建项目、创建“登录”、“系统设置”管理界面
一、实验目的:
通过实验,掌握DELPHI开发MIS项目的基本方法,熟悉DELPHI7的C/S模式下,数据库开发工具的使用,熟悉DELPHI编程语言的基本规则。
二、实验内容:
1、DELPHI桌面介绍;
2、简单“登录”界面的创建;
3、数据源组件DBE、DATAACCESS、DATACONTROLS简介;
4、“部门管理”、“职工管理”窗体的创建;
三、实验主要步骤:
1、DELPHI桌面:
共有:
主功能菜单、工具按钮、控件集合、对象列表窗、对象属性编辑窗、可视化编辑窗体、相对应的PAS源程序语句编辑区。
2、创建新开发项目—,保存在自己的文件夹中。
如:
D:
\WLMIS。
新项目仅有一个单元UNIT1,由一个窗体FORM1和它的源程序文件组成。
下面开始设计第一个界面,简单的“登录”窗体界面。
⑴、界面示意图:
⑵、窗体所含各组件及主要属性表:
组件类型
组件名
属性名
属性值
窗体(TFORM)
DL
CAPTION
登录
标签(TLABEL)
LABEL1
CAPTION
用户名
FONT-SIZE
10
LABEL2
CAPTION
口令
FONT-SIZE
10
文本框(TEDIT)
EDIT1
CAPTION
EDIT2
PASSWORDCHAR
*
按钮(TBUTTON)
BUTTON1
CAPTION
进入
BUTTON2
CAPTION
退出
⑶、相应程序:
unitUnit1;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,Grids,DBGrids,DB,DBTables,ExtCtrls,DBCtrls,StdCtrls;
type
TForm1=class(TForm)
Label1:
TLabel;
Label2:
TLabel;
Edit1:
TEdit;
Edit2:
TEdit;
Label3:
TLabel;
Button1:
TButton;
Button2:
TButton;
procedureButton1Click(Sender:
TObject);
procedureButton2Click(Sender:
TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Form1:
TForm1;
implementation
usesUnit2;
{$R*.dfm}
const
iusename='ADMIN';
ipassword='123456';
procedure(Sender:
TObject);3、数据源组件DBE、DATAACCESS、DATACONTROLS简介;
⑴、DBE数据源(数据引擎)组件:
常用的有database:
DataBase组件一般用于程序与数据库的永久连接、数据库服务器需要用户登录、指定别名等一些情况下,一般情况下可不必用此组件。
由于我们在本程序中需要打开网络数据库,所以在程序启动后就把数据库打开时需要的用户名和密码都设定好,这样在别的窗口中就无须再考虑这个问题了。
⑵、DATAACCESS数据访问组件:
常用的有TABLE:
Table组件是最常用的组件,绝大部分数据库程序都要用到它,一般在设计阶段放进窗体,但此组件在运行时是不可见的。
用于从数据源DATABASE中取数据,组成数据表,供前台数据控制组件使用。
⑶、DATACONTROLS数据控制组件:
常用的有DBGRID、DBNAVIGATOR等:
主要是以各种形式向前台用户提供数据界面支持,是软件的重要组成部分。
三种部件之间的内部关系
4、“系统设置”管理界面的实施:
⑴、“部门设置”:
窗体所含各主要组件及属性表:
组件类型
组件名
属性名
属性值
窗体(TFORM)
BMGL
CAPTION
部门管理
TDATABASE
DATABASE1
DATABASENAME
HNXT
ALIASNAME
HNXT
CONNECTED
TRUE
KEEPCONNECTED
TRUE
TTABLE
TABLE1
DATABASENAME
HNXT
TABLENAME
DBO.部门
ACTIVE
TRUE
TDATASOUCE
DATASOUCE1
DATASET
TABLE1
TDBGRID
DBGRID1
DATASOUCE
DATASOUCE1
TDBEDIT
TDBEDIT1
DATASOUCE
DATESOUCE1
DATAFIELD
部门编号
TDBEDIT
TDBEDIT2
DATASOUCE
DATESOUCE1
DATAFIELD
部门名称
TNAVIGATOR
NAVIGATOR1
DATASOUCE
DATESOUCE1
其中:
双击“DATEBASE1”控件,出现下图:
设置好NAME,ALIASMAME为前面ODBC的名称HNXT,设置USERNAME=ADMIN;PASSWORD=ADMIN;去掉LOGINPROMPT前面的选项,使程序连接后台数据库时自动登录,不需要输入用户名和口令;
程序代码:
unitUnit3;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,StdCtrls,Mask,DBCtrls,Grids,DBGrids,DB,DBTables,ExtCtrls;
type
TBMGL=class(TForm)
Table1:
TTable;
Database1:
TDatabase;
DataSource1:
TDataSource;
DBGrid1:
TDBGrid;
DBEdit1:
TDBEdit;
DBEdit2:
TDBEdit;
DBNavigator1:
TDBNavigator;
Label1:
TLabel;
Label2:
TLabel;
Label3:
TLabel;
Label4:
TLabel;
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
BMGL:
TBMGL;
implementation
{$R*.dfm}
end.
⑵、“职工管理”:
依照“部门管理”窗体建立,去掉DATABASE1组件,将TABLE1的TABLENAME设置为DBO.职工,并按ZG中各字段建立相应DBEDIT控件;
程序代码:
unitUnit4;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,ExtCtrls,DBCtrls,StdCtrls,Mask,Grids,DBGrids,DB,DBTables;
type
TZGGL=class(TForm)
Table2:
TTable;
DataSource2:
TDataSource;
DBGrid1:
TDBGrid;
Label1:
TLabel;
Label2:
TLabel;
DBEdit1:
TDBEdit;
DBEdit2:
TDBEdit;
DBEdit3:
TDBEdit;
DBEdit4:
TDBEdit;
DBEdit5:
TDBEdit;
DBEdit6:
TDBEdit;
DBEdit7:
TDBEdit;
DBEdit8:
TDBEdit;
DBEdit9:
TDBEdit;
DBEdit10:
TDBEdit;
DBEdit11:
TDBEdit;
DBEdit12:
TDBEdit;
Label3:
TLabel;
Label4:
TLabel;
Label5:
TLabel;
Label6:
TLabel;
Label7:
TLabel;
Label8:
TLabel;
Label9:
TLabel;
Label10:
TLabel;
Label11:
TLabel;
Label12:
TLabel;
Label13:
TLabel;
Label14:
TLabel;
DBNavigator1:
TDBNavigator;
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
ZGGL:
TZGGL;
implementation
{$R*.d