1、库存分销管理系统的设计与实现 基础数据管理、UI界面的开发与实以及统计报表管 理和用户登录的测试 摘要:根据网上食品管理模式的实际情况,针对库存管理业务缺乏有效的监管、报表统计工作量大等问题,研究设计了库存分销管理系统。基于Web的工作方式、采用JSP和SSH设计模式对系统结构进行架构,以J2EE为开发平台,以MySQL为后台数据库,通过分销商库存管理模块、基础数据管理模块、统计报表管理模块及系统管理等功能模块的设计,实现对各级分销商的库存管理等功能,提高了企业管理的工作效率。 关键词:库存管理;报表;数据库;测试 Abstract:According to the actual situat
2、ion 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 s
3、ystem 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 managem
4、ent, and other functions, improve the efficiency of the enterprise management. Key words:Inventory management; report form; Database; test 1 数据库设计1.1 编写目的本文档为系统的开发和设计人员编写,根据需求分析文档的要求,着手开始设计如何实现这些功能,建立一个符合用户要求的软件系统。将系统划分成基本的功能模块,并决定每模块或类的功能和类之间的调用关系以及每个模块的外部特征,即每个模块的功能和界面(输入和输出),使设计人员了解数据之间的结构,以便详细设计
5、人员参考和进行详细设计。1.2 背景库存分销管理系统,该软件管理能通使企业具有对订单和供货具有快速反应和持续补充库存的能力。通过互联网将供应商与经销商有机地联系在一起,为企业的业务经营以及和贸易伙伴的合作提供了一种全新的模式。该系统需要数据库提供存储数据支持。说明:a.项目名称:库存分销管理系统b.本项目由郑俊宝提出,由郑俊宝、邓永蓝、贺芬、梁利丽共同开发。1.3 定义数据库开发软件:Navicat for Mysql数据库管理系统:Mysql运行环境:Windows XP/ Win 7开发语言:Java1.4 参考资料a. 王勇:java视频b. 需求分析说明书c. 概要设计d. 详细设计e
6、. 重庆师范大学教务系统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流向单详细
7、信息使用t_data_dict数据字典使用1.5.2 使用它的程序项目drp_12_3,Navicat for MySQL1.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
8、 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(2
9、0), 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), cont
10、act_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
11、(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 varch
12、ar(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, b
13、egin_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
14、_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 varcha
15、r(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
16、(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
17、, name, level_id, level_name) asselect 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.idunionselect 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_
18、lelve=b.id;1.6.3 物理结构设计物理数据模型设计要确定数据库的物理结构,包括数据库在物理设备上的存储结构和存取方法,数据表示和数据存储分配等,并得到一个具体的可接受的物理结构。图1-2 物理数据模型 1.7 运用设计1.7.1 数据字典设计表 1.3 数据字典1 t_user列名中文名称数据类型长度是否能为空备注user_id用户IDVarchar 10not nullprimary keyuser_name用户名varchar20not nullpassword密码varchar20contact_tel联系电话varchar30email邮箱varchar30create_d
19、ate创建日期datetime表 1.4 数据字典2 t_client 列名中文名称数据类型长度是否能为空备注id序列IDintnot nullprimary keypid上级分销商IDintnot nullname名称varchar40not nullclient_id分销商代码varchar10client_level分销商等级char3bank_acct_no银行账号varchar30contact_tel联系电话varchar20address地址varchar50zip_code邮编varchar20is_leaf是否为叶子节点chardefault Nis_client是否为分销商
20、chardefault N 表 1.5 数据字典3t_temi_client列名中文名称数据类型长度是否能为空备注id序列IDintnot nullprimary keypid上级分销商IDintnot nullname名称varchar40not nulltemi_id分销商IDvarchar20temi_level分销商级别char3contact_tel联系电话varchar18contactor联系人varchar30address地址varchar50zip_code邮编varchar20is_leaf是否为叶子节点char1default Nis_temi_client是否为分销商
21、char1default N表 1.6 数据字典3t_items列名中文名称数据类型长度是否能为空备注item_no编号varchar10not nullprimary keyitem_name名称varchar30not nullspec物料规格varchar30pattern型号varchar30category种类char3not nullunit 单位char3not null表 1.7 数据字典4t_fiscal_year_period列名中文名称数据类型长度是否能为空备注id主键intnot nullprimary keyfiscal_year核算年intnot nullfisca
22、l_period核算月tinyintnot nullbegin_date起始时间datetimenot nullend_date截止时间datetimenot nullperiod_sts是否可用标识char1default N表 1.8 数据字典5t_flow_card列名中文名称数据类型长度是否能为空备注vou_no流向单标识主键varchar16not nullprimary keyfiscal_year核算年intnot nullfiscal_period核算月tinyintnot nullclient_id客户IDvarchar10not nullopr_type操作类型char1n
23、ot nullrecord_date录入日期当前日期datetimenot nullrecorder_id录入人IDvarchar10not nullvou_sts流向单状态 录入N 送审Schar1default Nconfirmer_id复审人IDvarchar10conf_date复审日期datetimespotter_id抽查人IDvarchar10spot_date抽查日期datetimespot_remark抽查结果描述varchar60spot_flag抽查标记Y/Nchar1default Nadjust_time调整时间datetimeadjuster_id调整人IDvarc
24、har10表 1.9 数据字典6t_flow_card_detail列名中文名称数据类型长度是否能为空备注id主键intnot nullprimary keyvou_no流向单标识varchar16not nullaim_id客户IDvarchar10not nullitem_no物料标识varchar10not nullqty数量decimal(10,2)default 0amt金额decimal(10,2)default 0adjust_qty调整数量decimal(10,2)default 0adjust_reason调整原因varchar50adjust_flag调整标识char1de
25、fault N表 1.10 数据字典7t_data_dict列名中文名称数据类型长度是否能为空备注id主键char3not nullprimary keyname名称varchar20not nullcategory种类varchar30not null1.7.2 安全保密设计在我们的系统中,因为是面向公司的后台系统,所以只有管理员的权限,用户名和密码不对普通用户开放。用户名和密码保存在数据库中,每次登录需匹配数据库中保存的管理员的用户名和密码,还是随机验证码,只要用户名或密码不正确,都不能登录该系统。安全度极高。2 基础数据管理模块的概要设计2.1 引言随着计算机信息技术的发展,计算机在各行
26、各业的应用越来越广泛,计算机带来的便利不言而喻。在商品销售的过程中采用计算机处理技术可以更好的为客户服务,更高更快的服务品质将给企业带来更多的机遇。库存分析管理系统就是为管理食品分销过程提供更好服务的技术,而其中的基础数据管理模块用于系统、规范管理各分销商和物料;对其进行增删改查操作。2.1.1 编写目的本文档为系统的开发和设计人员编写,根据需求分析文档的要求,着手开始设计如何实现基础数据管理模块功能,建立一个符合用户要求的软件模块。决定本模块的功能和类之间的调用关系,以便详细设计人员参考和进行详细设计。2.1.2 范围模块名称:基础数据管理模块模块提出和开发单位:重庆师范大学、数学学院、20
27、11级信息与计算科学(软件服务外包)邓永蓝2.1.3 定义数据库开发软件:Navicat for Mysql数据库管理系统:Mysql运行环境:Windows XP/ Win 7开发语言:Java2.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. 对核算期间表进行
28、维护,主要是对其进行添加和修改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 功能需求与程序的关系本条用一张如下的矩阵图说明各项功能
29、需求的实现同各块程序的分配关系:表 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 运行
30、设计2.4.1 运行模块组合查询:可调用数据库中的数据。插入:可将页面上插入的数据插入到数据库。修改:在页面上修改的数据会在数据库中对应的修改删除:在页面上删除的数据也会在数据库中相应的删除2.4.2 运行控制在IE浏览器登录成功后,点击左边的菜单栏,选择相应的操作即可。2.4.3 运行时间视访问服务器速度而定,一般在13秒左右2.5 系统数据结构设计参考库存分销管理系统数据库设计文档。2.6 系统出错处理设计2.6.1 出错信息A、本模块应充分考虑各种系统错误,避免造成数据库系统不一致或损坏;B、本模块提供关键操作提示,避免用户因误操作对数据库系统造成破坏;C、采用对话框形式为用户提供警告信息;D、一些关键性操作(如删除或修改记录),都应提供确认机制。E、模块多采用事务提交方式进行数据库操作,以保证数据库中数据的同步。2.6.2 补救措施本模块利用数据库系统的数据备份功能,对数据库进行实时备份或人