基于java的进销存货管理系统.docx
- 文档编号:29594891
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:49
- 大小:2.41MB
基于java的进销存货管理系统.docx
《基于java的进销存货管理系统.docx》由会员分享,可在线阅读,更多相关《基于java的进销存货管理系统.docx(49页珍藏版)》请在冰豆网上搜索。
基于java的进销存货管理系统
一、设计目的
当今国内外多数企业的竞争特点是,产品的种类、规格特别多,市场需求变化很快,与分销商,零售商的关系日益密切等。
而随着业务量的扩大,传统的管理方法已经无法处理日益膨胀的大量的业务数据。
实现企业信息化管理是现代社会中小企业稳步发展的必要条件,它可以提高企业的管理水平和工作效率,最大限度地减少手工操作带来的失误。
进销存管理系统正是一个信息化管理软件,可以实现企业的进货、销售、库存管理等各项业务的信息化管理。
出于以上原因,本课程设计将基于sqlserver2000数据库并以JAVA为开发环境设计实现一个企业进销存管理系统。
二、系统的功能分析
通过调查和与企业相关专业人员的沟通,要求系统具有以下功能:
1.系统操作简单、便捷,界面简洁、友好。
2.具有规范、完善的基础信息设置和管理。
3.支持多人操作,要求有用户和权限分配功能。
4.支持多条件的快捷查询功能。
5.对销售信息提供销售排行功能。
6.支持销售退货和入库退货功能。
7.支持批量填写进货单及销售单。
8.支持库存价格调整功能。
通过对进销存管理系统的功能需求分析,可以将本系统划分为基础信息管理、进货管理、销售管理、库存管理、查询统计、系统管理等6大部分。
系统结构如图下图所示。
进销存管理系统的系统流程图如下所示。
三、系统的数据库设计
1.数据库字典
(1).数据项条目
数据项编号:
1
数据项名称:
商品编号
符号名:
ID
数据类型:
varchar
长度:
5
数据项编号:
2
数据项名称:
系统用户编号
符号名:
username
数据类型:
varchar
长度:
8
数据项编号:
3
数据项名称:
供应商编号
符号名:
id
数据类型:
varchar
长度:
8
(2).数据结构条目
数据结构编号:
1
数据结构名称:
商品入库
简述:
商品入库的记录点
组成:
商品编号+入库日期+商品价格+供应商+数量
数据结构编号:
2
数据结构名称:
用户登记
简述:
管理员合法凭证
组成:
用户编号+用户权限
数据结构编号:
3
数据结构名称:
供应商录入
简述:
记录贸易往来
组成:
供应商编号+供应商名+供应商联系方式
(3).数据存储条目
数据存储编号:
001
数据存储名称:
商品输出
来源:
销售部产生
组成:
商品编号+销售日期+数量+金额+日期
数据存储编号:
002
数据存储名称:
商品输入
来源:
进货部门
组成:
商品编号+供应商编号+数量+金额+日期
数据存储编号:
003
数据存储名称:
商品退换
来源:
售后部门
组成:
商品编号+数量+金额+退货商+日期
数据存储编号:
004
数据存储名称:
供应商录入
来源:
商品交易产生
组成:
供应商编号+联系方式+名称
数据存储编号:
005
数据存储名称:
系统用户增添
来源:
系统管理产生
组成:
用户名+用户密码+权限
(4).数据处理条目
加工编号
001
加工名称
商品入库
流入数据流:
商品名称
流出数据流:
供应商品
处理周期:
有加入就登记
处理逻辑:
如果不存在商品名称则
登记当前商品
登记方法:
自动递增商品编号,将商品编号,商品名称,供应商名称,商品数量,价格等记录到商品列表中
否则
不记录
加工编号
002
加工名称
供应商登记
流入数据:
供应商名称
流出数据:
供应商信息
处理周期:
随时记录
处理逻辑:
如果不存在供应商则
登记供应商
登记方法:
产生既定方式编号,并将,供应商名,地址,联系方式,登记入库。
否则
不登记
加工编号
001
加工名称
系统用户增添
流入数据流:
用户名
流出数据流:
用户信息
处理周期:
随机
处理逻辑:
如果用户名不存在则
输入用户信息
登记方法:
将用户名,用户密码,用户权限添加到用户列表
否则
拒绝增加
2.数据库E-R图
企业进销存管理系统主要实现从进货、库存到销售的一体化信息管理,涉及商品信息、商品的供应商、购买商品的客户等多个实体。
下面简单介绍几个关键的实体E-R图。
客户实体E-R图
企业进销存管理系统将记录所有的客户信息,在销售、退货等操作时,将直接引用该客户的实体属性。
客户实体包括客户编号、客户名称、简称、地址、电话、邮政编码、联系人、联系人电话、传真、开户行和账号等属性,客户实体E-R图如下图所示。
客户实体E-R图
供应商实体E-R图
不同的供应商可以为企业提供不同的商品,在商品信息中将引用商品供应商的实体属性。
供应商实体包括编号、名称、简称、地址、电话、邮政编码、传真、联系人、联系电话、开户行和E-mail属性,供应商实体E-R图如下图所示。
供应商实体E-R图
商品实体E-R图
商品信息是进销存管理系统中的基本信息,系统将维护商品的进货、退货、销售、入库等操作。
商品实体包括编号、商品名称、商品简称、产地、单位、规格、包装、批号、批准文号、商品简介和供应商属性,商品实体E-R图如下图所示。
商品实体E-R图
总体E-R图:
3.数据库表的定义:
(1)商品信息表(tb_spinfo):
字段名
类型
大小
是否主键
可否为空
备注
id
varchar
50
yes
no
编号
spname
varchar
50
no
no
商品名称
jc
varchar
50
no
yes
简称
cd
varchar
50
no
yes
产地
dw
varchar
50
no
no
单位
gg
varchar
50
no
no
规格
bz
varchar
50
no
yes
包装
ph
varchar
50
no
yes
批号
pzwh
varchar
50
no
no
批准文号
memo
varchar
90
no
yes
备注
gysname
varchar
100
no
no
供应商名称
(2)客户信息表(tb_khinfo):
字段名
字段类型
大小
是否主键
可否为空
备注
id
varchar
50
yes
no
编号
khname
varchar
50
no
no
客户名称
jian
varchar
50
no
yes
简称
address
varchar
100
no
no
地址
bianma
varchar
50
no
yes
邮政编码
tel
varchar
50
no
no
电话
fax
varchar
50
no
yes
传真
lian
varchar
50
no
yes
联系人
itel
varchar
50
no
yes
手机
varchar
60
no
yes
E_mail
Xinhanghao
varchar
60
no
Yes
银行账号
(3)库存表(tb_kucun):
字段名
类型
大小
是否主键
可否为空
备注
id
varchar
30
yes
no
编号
spname
varchar
50
yes
no
商品名称
jc
varchar
25
no
yes
简称
cd
varchar
50
no
no
产地
gg
varchar
50
no
no
规格
bz
varchar
50
no
yes
包装
dw
varchar
10
no
no
单位
dj
money
no
no
单价
kcsl
int
no
no
库存数量
(4)供应商表(tb_gysinfo):
字段名
字段类型
大小
是否主键
可否为空
备注
id
varchar
50
yes
no
编号
name
varchar
50
no
no
名称
jc
varchar
50
no
no
简称
address
varchar
50
no
no
地址
bianma
varchar
50
no
yes
邮政编码
tel
varchar
50
no
yes
电话
fax
varchar
50
no
yes
传真
lian
varchar
50
no
no
联系人
ltel
varchar
50
no
yes
手机
yh
varchar
50
no
yes
银行账户
varchar
50
no
yes
E_mail
(5)入库详细表(tb_rkth_detail):
字段名
类型
大小
是否主键
可否为空
备注
id
int
yes
no
编号
rkthID
varchar
30
no
no
入库ID
spid
varchar
50
no
no
商品号
dj
money
no
no
单价
sl
int
no
no
数量
(6)用户表(tb_userlist):
字段名
类型
大小
是否主键
可否为空
备注
name
varchar
50
yes
no
用户姓名
username
varchar
50
no
no
登录名
pass
varchar
50
no
no
密码
quan
varchar
2
no
no
权限
(7)入库退货详细表(tb_xsth_detail):
字段名
类型
大小
是否主键
可否为空
备注
id
int
yes
no
编号
rkthID
varchar
30
no
no
退货编号
spid
varchar
50
no
no
商品编号
dj
money
no
no
定价
sl
int
no
no
数量
(8)销售详细表(tb_sell_detail):
字段名
类型
大小
是否主键
可否为空
备注
id
int
yes
no
编号
sellID
varchar
30
no
no
退货编号
spid
varchar
50
no
no
商品编号
dj
money
no
no
定价
sl
int
no
no
数量
(9)销售退货详细表(tb_xsth_detail):
字段名
类型
大小
是否主键
可否为空
备注
id
int
yes
no
编号
xsthID
varchar
30
no
no
退货编号
spid
varchar
50
no
no
商品编号
dj
money
no
no
定价
sl
int
no
no
数量
(10)销售退货主表(tb_xsth_main):
字段名
类型
大小
是否主键
可否为空
备注
xsthID
varchar
30
yes
no
退货编号
pzs
int
no
no
品种数
je
money
no
no
金额
ysjl
varchar
50
no
yes
原始记录
khname
varchar
100
no
no
客户商名
thdate
datetime
no
no
退货时间
czy
varchar
30
no
no
操作员
jsr
varchar
30
no
no
经手人
jsfs
varchar
10
no
no
经手方式
(11)入库退货主表(tb_rkth_main):
字段名
类型
大小
是否主键
可否为空
备注
rkthID
varchar
30
yes
no
退货编号
pzs
int
no
no
品种数
je
money
no
no
金额
ysjl
varchar
50
no
yes
原始记录
gysname
varchar
100
no
no
客户商名
thdate
datetime
no
no
退货时间
czy
varchar
30
no
no
操作员
jsr
varchar
30
no
no
经手人
jsfs
varchar
10
no
no
经手方式
(12)销售主表(tb_sell_main):
字段号
类型
大小
是否主键
可否为空
备注
sellID
varchar
30
yes
no
编号
pzs
int
no
no
总数
je
money
no
no
金额
ysjl
varchar
50
no
yes
原始记录
khname
varchar
100
no
no
商品名
xsdate
datetime
no
no
日期记录
czy
varchar
30
no
no
操作员
jsr
varchar
30
no
no
经手人
jsfs
varchar
10
no
no
经手方式
(13)入库主表(tb_ruku_main):
字段号
类型
大小
是否主键
可否为空
备注
rkID
varchar
30
yes
no
编号
pzs
int
no
no
总数
je
money
no
no
金额
ysjl
varchar
50
no
yes
原始记录
gysname
varchar
100
no
no
商品名
rkdate
datetime
no
no
日期记录
czy
varchar
30
no
no
操作员
jsr
varchar
30
no
no
经手人
jsfs
varchar
10
no
no
经手方式
四、系统的程序设计与实现
1.系统的运行环境
本系统的运行环境为JDK6.0。
2.程序开发环境
操作系统为WindowsXP或Windows2003均可,使用集成开发工具Eclipse,数据库采用SQLServer2000。
3.程序的详细设计
通过前面的功能逻辑分析,已经将进销存管理系统划分为6大功能模块,分别为基础信息管理模块、进货管理模块、销售管理模块、查询统计模块、库存管理模块、系统管理模块。
同时考虑到系统的安全性,防止非法用户访问系统以及满足不同人员对系统操作的权限控制,再添加一个登陆模块。
再者,为了将各功能模块集成起来,还需要设计一个系统主界面,将各个功能模块整合到主界面中。
3.1各模块的功能及其关系
在登录界面,输入用户名和密码之后,经身份认证通过进入系统主界面,对于系统管理员身份的用户,其系统管理模块具有操作员管理、修改密码以及权限管理功能。
而具有操作员身份的用户在管理模块只有修改密码功能。
其他的功能模块对两种不同身份的用户都是一样的。
基础信息管理模块用于管理客户、商品和供应商信息,其功能模块主要是对这些基础信息进行添加、修改和删除。
添加操作将相关信息录入到相应的数据表中,修改和删除操作则更新相应的数据表。
进货管理模块负责商品的进货以及退货管理。
通过填写进货单,将商品的进货信息录入到数据库中的入库主表、入库详细表和库存表中。
退货功能负责将已入库的有质量问题的商品退还给供应商,其操作会将退货信息录入到数据库中相应商品的入库退货主表和入库退货详细表中同时还会更新相应商品的库存信息。
销售管理模块负责商品的销售和退货管理。
通过填写销售单,将库存商品销售出去,因此待销售的商品必须是入库了的商品,且数量大于0。
相应的该销售记录会录入到销售主表、销售详细表中,对应的库存数量减少了销售出去的数量。
退货功能负责记录客户要求退货的商品。
其操作会将退货信息录入到数据库中相应商品的销售退货主表和销售退货详细表中同时还会更新相应商品的库存信息。
查询统计模块负责根据用户的查询条件,快速地查询相应的信息。
这些查询结果都是相应的数据库表和视图中满足查询条件的数据。
这些查询操作都不会修改数据库中的数据。
库存管理负责库存商品的盘点和库存商品的价格调整。
盘点管理用于统计所有库存商品的数量。
价格调整可以修改商品的单价,其操作会修改库存表中对应商品的价格。
系统管理负责登录用户的管理。
系统管理员身份的用户具有增加、修改和删除操作员的功能,修改密码的功能,还具有修改用户的权限的功能。
而操作员身份的用户仅具有修改自身密码的功能。
3.2各功能模块的设计和实现
3.2.1登录界面
登录界面用户验证登录用户的身份信息,只有合法的用户才能进入系统,从而保证系统的安全性。
登录界面的运行结果如下图所示:
登录界面的创建:
创建Login类,它继承自JFrame。
用户名和密码通过JtextField接收,单击“登录”按钮触发监听器验证登录用户是否正确,该过程通过连接数据库,判断用户是否存在数据表Userlist表中来实现。
关键代码如下:
login.addActionListener(newActionListener(){
publicvoidactionPerformed(finalActionEvente){
user=Dao.getUser(userName.getText(),userPassword.getText());
if(user.getUsername()==null||user.getName()==null){
userName.setText(null);
userPassword.setText(null);
return;
}
setVisible(false);
newJXCFrame();
}
});
连接数据库的方法:
由于系统对数据库的存取比较频繁,因此可以定义一个公共类DAO类来负责有关数据库的操作。
关键代码如下:
publicclassDao{
protectedstaticStringdbClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver";
protectedstaticStringdbUrl="jdbc:
microsoft:
sqlserver:
//localhost:
1433;"
+"DatabaseName=db_JXC;SelectMethod=Cursor";
protectedstaticStringdbUser="sa";
protectedstaticStringdbPwd="sa";
protectedstaticStringsecond=null;
publicstaticConnectionconn=null;
static{
try{
if(conn==null){
Class.forName(dbClassName).newInstance();//加载数据库驱动类
conn=DriverManager.getConnection(dbUrl,dbUser,dbPwd);
}//获取数据库连接
}catch(Exceptionee){
ee.printStackTrace();
}
}
3.2.2系统主窗体
应用程序的主窗体必须设计层次清晰的系统菜单和工具栏,本系统主窗体采用导航面板综合了系统菜单和工具栏的优点。
主窗体的界面如下图所示:
下面是创建导航面板的实现方法:
在该方法中创建JtabbedPane选项卡面板对象。
为突出选项卡的立体效果,设置该选项卡使用BevelBorder边框效果,然后依次创建基础信息管理、库存管理、销售管理、查询统计、进货管理和系统管理的选项卡。
关键代码及注释如下:
privateJTabbedPanecreateNavigationPanel(){//创建导航标签面板的方法
TbUserlistuser=Login.getUser();
JTabbedPanetabbedPane=newJTabbedPane();
tabbedPane.setFocusable(false);
tabbedPane.setBackground(newColor(211,230,192));
tabbedPane.setBorder(newBevelBorder(BevelBorder.RAISED));
JPanelbaseManagePanel=newJPanel();//基础信息管理面板
baseManagePanel.setBackground(newColor(215,223,194));
baseManagePanel.setLayout(newBoxLayout(baseManagePanel,BoxLayout.X_AXIS));
baseManagePanel.add(createFrameButton("客户信息管理","basemanage.KeHuGuanLi"));
baseManagePanel.add(createFrameButton("商品信息管理","basemanage.ShangPinGuanLi"));
baseManagePanel.add(createFrameButton("供应商信息管理","basemanage.GysGuanLi"));
JPaneldepotManagePanel=newJPanel();//库存管理面板
depotManagePanel.setBackground(newColor(215,223,194));
depotManagePanel.setLayout(newBoxLayout(depotManagePanel,BoxLayout.X_AXIS));
depotManagePanel.add(createFrameButton("库存盘点","depotManage.KuCunPanDian"));
depotManagePanel.add(createFrameBu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 java 存货 管理 系统