资源描述
库存分销管理系统的设计与实现
——基础数据管理、UI界面的开发与实以及统计报表管 理和用户登录的测试
摘要:根据网上食品管理模式的实际情况,针对库存管理业务缺乏有效的监管、报表统计工作量大等问题,研究设计了库存分销管理系统。基于Web的工作方式、采用JSP和SSH设计模式对系统结构进行架构,以J2EE为开发平台,以MySQL为后台数据库,通过分销商库存管理模块、基础数据管理模块、统计报表管理模块及系统管理等功能模块的设计,实现对各级分销商的库存管理等功能,提高了企业管理的工作效率。
关键词:库存管理;报表;数据库;测试
Abstract:According to the actual situation of food management mode online, in view of the inventory management is lack of effective supervision, business statistics report problems such as big workload, the inventory distribution management system is designed. Works based on the Web, using JSP and SSH architecture design pattern on the system structure, based on J2EE development platform, to MySQL backend database, through distributors inventory management module, basic data management module, statistics management module and system management function module design, implementation to distributors at all levels of inventory management, and other functions, improve the efficiency of the enterprise management.
Key words:Inventory management; report form; Database; test
1 数据库设计
1.1 编写目的
本文档为系统的开发和设计人员编写,根据需求分析文档的要求,着手开始设计如何实现这些功能,建立一个符合用户要求的软件系统。将系统划分成基本的功能模块,并决定每模块或类的功能和类之间的调用关系以及每个模块的外部特征,即每个模块的功能和界面(输入和输出),使设计人员了解数据之间的结构,以便详细设计人员参考和进行详细设计。
1.2 背景
库存分销管理系统,该软件管理能通使企业具有对订单和供货具有快速反应和持续补充库存的能力。通过互联网将供应商与经销商有机地联系在一起,为企业的业务经营以及和贸易伙伴的合作提供了一种全新的模式。该系统需要数据库提供存储数据支持。
说明:
a.项目名称:库存分销管理系统
b.本项目由郑俊宝提出,由郑俊宝、邓永蓝、贺芬、梁利丽共同开发。
1.3 定义
数据库开发软件:Navicat for Mysql
数据库管理系统:Mysql
运行环境:Windows XP/ Win 7
开发语言:Java
1.4 参考资料
a. 王勇:java视频
b. 《需求分析说明书》
c. 《概要设计》
d. 《详细设计》
e. 重庆师范大学教务系统
1.5 外部设计
1.5.1 标识符和状态
联系用途,详细说明用于唯一地标识该数据库的代码、名称或标识符,附加的描述性信息亦要给出。如果该数据库属于尚在实验中、尚大测试中或是暂时使用的,则要说明这一特点及其有效时间范围。
表 1.1 标示符和状态表
表名
名称或标识符
描述信息
状态(试验中/测试中暂时使用)
t_user
用户信息表
使用
t_client
分销商信息表
使用
t_temi_client
终端信息表
未使用
t_items
物料信息表
使用
t_fiscal_year_period
会计核算期表
使用
t_flow_card_master
流向单信息
使用
t_flow_card_detail
流向单详细信息
使用
t_data_dict
数据字典
使用
1.5.2 使用它的程序
项目drp_12_3,Navicat for MySQL
1.5.3 约定
表 1.2 约定
前缀
说明
user
用户
client
分销商
temi_client
终端信息
record
录入
spot
抽查
adjust
调整
flow_card
流向单
1.5.4 专门指导
数据库的生成需要在设计完成后用数据库管理系统的数据库定义语言、数据库操纵语言的标准SQL语句进行数据库对象(表、索引)的建立及数据的插入。要有专门的建表语句及数据插入语句,目前只设计针对Mysql的。
1.5.5 支持软件
MySql Server 5.0:插入数据软件。
Navicat for MySQL:第三方软件,更简单直观管理数据。
1.6 结构设计
1.6.1 概念结构设计
图1-1 概念结构设计
1.6.2 逻辑结构设计
/*==============================================================*/
/* Database name: drp */
/* DBMS name: MySQL */
/* Created on: 2015-01-22 */
/*==============================================================*/
/*==============================================================*/
/* Table: t_user */
/*==============================================================*/
create table if not exists t_user
(
user_id varchar(10) primary key not null,
user_name varchar(20) not null,
password varchar(20),
contact_tel varchar(30),
email varchar(30),
create_date datetime
);
/*==============================================================*/
/* Table: t_client */
/*==============================================================*/
create table if not exists t_client
(
id int primary key auto_increment not null,
pid int not null,
name varchar(40) not null,
client_id varchar(10),
client_level char(3),
bank_acct_no varchar(30),
contact_tel varchar(20),
address varchar(50),
zip_code varchar(20),
is_leaf char(1) default 'N',
is_client char(1) default 'N'
);
/*==============================================================*/
/* Table: t_temi_client */
/*==============================================================*/
create table if not exists t_temi_client
(
id int primary key auto_increment not null,
pid int not null,
name varchar(40) not null,
temi_id varchar(20),
temi_lelve char(3),
contact_tel varchar(18),
contactor varchar(30),
address varchar(50),
zip_code varchar(20),
is_leaf char(1) default 'N',
is_temi_client char(1) default 'N'
);
/*==============================================================*/
/* Table: t_items */
/*==============================================================*/
create table if not exists t_items
(
item_no varchar(10) primary key not null,
item_name varchar(30) not null,
spec varchar(30),
pattern varchar(30),
category char(3) not null,
unit char(3) not null
);
/*==============================================================*/
/* Table: t_fiscal_year_period */
/*==============================================================*/
create table if not exists t_fiscal_year_period
(
id int primary key auto_increment not null,
fiscal_year int not null,
fiscal_period tinyint not null,
begin_date datetime not null,
end_date datetime not null,
period_sts char(1) default 'N'
);
/*==============================================================*/
/* Table: t_flow_card_master */
/*==============================================================*/
create table if not exists t_flow_card
(
vou_no varchar(16) primary key not null,
fiscal_year int not null,
fiscal_period tinyint not null,
client_id varchar(10) not null,
opr_type char(1) not null,
record_date datetime not null,
recorder_id varchar(10) not null,
vou_sts char(1) default 'N',
confirmer_id varchar(10),
conf_date datetime,
spotter_id varchar(10),
spot_date datetime,
spot_remark varchar(60),
spot_flag char(1) default 'N',
adjust_time datetime,
adjuster_id varchar(10)
);
/*==============================================================*/
/* Table: t_flow_card_detail */
/*==============================================================*/
create table if not exists t_flow_card_detail
(
id int primary key auto_increment not null,
vou_no varchar(16) not null,
aim_id varchar(10) not null,
item_no varchar(10) not null,
qty decimal(10,2) default 0,
amt decimal(10,2) default 0,
adjust_qty decimal(10,2) default 0,
adjust_reason varchar(50),
adjust_flag char(1) default 'N'
);
/*==============================================================*/
/* Table: t_data_dict */
/*==============================================================*/
create table if not exists t_data_dict
(
id char(3) primary key not null,
name varchar(20) not null,
category varchar(30) not null
);
/*==============================================================*/
/* View: v_aim_client */
/*==============================================================*/
create view v_aim_client(id, name, level_id, level_name) as
select a.client_id as id, a.name, a.client_level as type_id, b.name as type_name from t_client a, t_data_dict b where a.client_level=b.id
union
select a.temi_id as id, a.name, a.temi_lelve as type_id, b.name as type_name from t_temi_client a, t_data_dict b where a.temi_lelve=b.id
;
1.6.3 物理结构设计
物理数据模型设计要确定数据库的物理结构,包括数据库在物理设备上的存储结构和存取方法,数据表示和数据存储分配等,并得到一个具体的可接受的物理结构。
图1-2 物理数据模型
1.7 运用设计
1.7.1 数据字典设计
表 1.3 数据字典1
t_user
列名
中文名称
数据类型
长度
是否能为空
备注
user_id
用户ID
Varchar
10
not null
primary key
user_name
用户名
varchar
20
not null
password
密码
varchar
20
contact_tel
联系电话
varchar
30
email
邮箱
varchar
30
create_date
创建日期
datetime
表 1.4 数据字典2
t_client
列名
中文名称
数据类型
长度
是否能为空
备注
id
序列ID
int
not null
primary key
pid
上级分销商ID
int
not null
name
名称
varchar
40
not null
client_id
分销商代码
varchar
10
client_level
分销商等级
char
3
bank_acct_no
银行账号
varchar
30
contact_tel
联系电话
varchar
20
address
地址
varchar
50
zip_code
邮编
varchar
20
is_leaf
是否为叶子节点
char
default 'N'
is_client
是否为分销商
char
default 'N'
表 1.5 数据字典3
t_temi_client
列名
中文名称
数据类型
长度
是否能为空
备注
id
序列ID
int
not null
primary key
pid
上级分销商ID
int
not null
name
名称
varchar
40
not null
temi_id
分销商ID
varchar
20
temi_level
分销商级别
char
3
contact_tel
联系电话
varchar
18
contactor
联系人
varchar
30
address
地址
varchar
50
zip_code
邮编
varchar
20
is_leaf
是否为叶子节点
char
1
default 'N'
is_temi_client
是否为分销商
char
1
default 'N'
表 1.6 数据字典3
t_items
列名
中文名称
数据类型
长度
是否能为空
备注
item_no
编号
varchar
10
not null
primary key
item_name
名称
varchar
30
not null
spec
物料规格
varchar
30
pattern
型号
varchar
30
category
种类
char
3
not null
unit
单位
char
3
not null
表 1.7 数据字典4
t_fiscal_year_period
列名
中文名称
数据类型
长度
是否能为空
备注
id
主键
int
not null
primary key
fiscal_year
核算年
int
not null
fiscal_period
核算月
tinyint
not null
begin_date
起始时间
datetime
not null
end_date
截止时间
datetime
not null
period_sts
是否可用标识
char
1
default 'N'
表 1.8 数据字典5
t_flow_card
列名
中文名称
数据类型
长度
是否能为空
备注
vou_no
流向单标识主键
varchar
16
not null
primary key
fiscal_year
核算年
int
not null
fiscal_period
核算月
tinyint
not null
client_id
客户ID
varchar
10
not null
opr_type
操作类型
char
1
not null
record_date
录入日期当前日期
datetime
not null
recorder_id
录入人ID
varchar
10
not null
vou_sts
流向单状态 录入N 送审S
char
1
default 'N'
confirmer_id
复审人ID
varchar
10
conf_date
复审日期
datetime
spotter_id
抽查人ID
varchar
10
spot_date
抽查日期
datetime
spot_remark
抽查结果描述
varchar
60
spot_flag
抽查标记Y/N
char
1
default 'N'
adjust_time
调整时间
datetime
adjuster_id
调整人ID
varchar
10
表 1.9 数据字典6
t_flow_card_detail
列名
中文名称
数据类型
长度
是否能为空
备注
id
主键
int
not null
primary key
vou_no
流向单标识
varchar
16
not null
aim_id
客户ID
varchar
10
not null
item_no
物料标识
varchar
10
not null
qty
数量
decimal
(10,2)
default 0
amt
金额
decimal
(10,2)
default 0
adjust_qty
调整数量
decimal
(10,2)
default 0
adjust_reason
调整原因
varchar
50
adjust_flag
调整标识
char
1
default 'N'
表 1.10 数据字典7
t_data_dict
列名
中文名称
数据类型
长度
是否能为空
备注
id
主键
char
3
not null
primary key
name
名称
varchar
20
not null
category
种类
varchar
30
not null
1.7.2 安全保密设计
在我们的系统中,因为是面向公司的后台系统,所以只有管理员的权限,用户名和密码不对普通用户开放。用户名和密码保存在数据库中,每次登录需匹配数据库中保存的管理员的用户名和密码,还是随机验证码,只要用户名或密码不正确,都不能登录该系统。安全度极高。
2 基础数据管理模块的概要设计
2.1 引言
随着计算机信息技术的发展,计算机在各行各业的应用越来越广泛,计算机带来的便利不言而喻。在商品销售的过程中采用计算机处理技术可以更好的为客户服务,更高更快的服务品质将给企业带来更多的机遇。库存分析管理系统就是为管理食品分销过程提供更好服务的技术,而其中的基础数据管理模块用于系统、规范管理各分销商和物料;对其进行增删改查操作。
2.1.1 编写目的
本文档为系统的开发和设计人员编写,根据需求分析文档的要求,着手开始设计如何实现基础数据管理模块功能,建立一个符合用户要求的软件模块。决定本模块的功能和类之间的调用关系,以便详细设计人员参考和进行详细设计。
2.1.2 范围
模块名称:基础数据管理模块
模块提出和开发单位:
重庆师范大学、数学学院、2011级信息与计算科学(软件服务外包)
邓永蓝
2.1.3 定义
数据库开发软件:Navicat for Mysql
数据库管理系统:Mysql
运行环境:Windows XP/ Win 7
开发语言:Java
2.1.4 参考资料
胡林玲. 软件工程与UML. 北京: 电子工业出版社
刘造新. Visual Basic .net程序设计教程与实训. 北京: 北京大学出版社
徐人凤. SQL Server 2000. 北京:高等教育出版社
计算机软件工程规范国家标准汇编. 北京:中国标准出版社
2.2 总体设计
2.2.1 需求规定
2.2.1.1 主要功能划分
图2-1 功能表
2.2.1.2 功能描述
A. 对核算期间表进行维护,主要是对其进行添加和修改
B. 对已有物料根据代码或名称进行模糊查询、修改信息
C. 可以添加和删除物料表中的物料
D. 有层次结构的显示各级各地区的分销商
E. 对分销商可以增加、修改和显示详细信息
F. 对终端各户可以增加、修改和显示详细信息
2.2.2 运行环境
硬件环境:笔记本电脑;
运行时内存要求:32M;
安装所需硬盘:5M;
软件环境:windows7 IE/火狐
2.2.3 基本设计概念和处理流程
2.2.3.1 基本设计概念
图2-2 基本设计图
2.2.3.2 处理流程
图2-2 处理流程图
2.2.4 结构
图2-3 基础数据管理结构
2.2.5 功能需求与程序的关系
本条用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系:
表 2.1 功能需求与程序的关系
查询
添加
删除
修改
会计核算期间表
√
√
√
物料品种
√
√
√
√
分销商信息
√
√
√
√
终端客户区域
√
√
终端客户信息
√
√
√
√
2.2.6 人工处理过程
系统的开启维护更新需要专门的管理员进行操作。
2.2.7 尚未解决的问题
本模块尚未解决的问题有很多,诸如各界面的链接、互通等。这些问题都需要在系统完成时都解决。
2.3 接口设计
2.3.1 用户接口
用户不需要进行注册、登录等,直接点击即可。
2.3.2 外部接口
软件接口:运行于Windows2000/XP/2003/vista/2008且具有IE等浏览器的电脑上
硬件接口:支持一般笔记本电脑。
2.3.3 内部接口
直接调用数据库数据。
2.4 运行设计
2.4.1 运行模块组合
查询:可调用数据库中的数据。
插入:可将页面上插入的数据插入到数据库。
修改:在页面上修改的数据会在数据库中对应的修改
删除:在页面上删除的数据也会在数据库中相应的删除
2.4.2 运行控制
在IE浏览器登录成功后,点击左边的菜单栏,选择相应的操作即可。
2.4.3 运行时间
视访问服务器速度而定,一般在1~3秒左右
2.5 系统数据结构设计
参考《库存分销管理系统数据库设计文档》。
2.6 系统出错处理设计
2.6.1 出错信息
A、本模块应充分考虑各种系统错误,避免造成数据库系统不一致或损坏;
B、本模块提供关键操作提示,避免用户因误操作对数据库系统造成破坏;
C、采用对话框形式为用户提供警告信息;
D、一些关键性操作(如删除或修改记录),都应提供确认机制。
E、模块多采用事务提交方式进行数据库操作,以保证数据库中数据的同步。
2.6.2 补救措施
本模块利用数据库系统的数据备份功能,对数据库进行实时备份或人
展开阅读全文