当前位置:网站首页>SSM+jsp实现仓库管理系统,界面那叫一个优雅
SSM+jsp实现仓库管理系统,界面那叫一个优雅
2022-07-06 21:41:00 【程序员小王java】
程序员小王的博客:程序员小王的博客
欢迎点赞 收藏 留言
如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕
java自学的学习路线:java自学的学习路线
一、前言
今天给大家分享一个合适大学生学习的SSM+jsp实现仓库管理系统!
使用Spring+SpringMVC+Mybatis+maven+tomcat实现仓库管理系统,界面非常的漂亮!
随着计算机的发展,生活中仅仅依靠人工管理商场里面大量的的商品会浪费大部分的人力物力,还会造成较高的人工失误,所以有必要开发一个商场库存管理系统来很大程度上减少失误和不必要的浪费。实现信息数字化管理,提高管理效率,降低经营成本。利用商场库存管理系统可以提高商场的运营,提高总体效率
仓库在现实生活中用途十分广泛,各种商城、超市要利用仓库存放物资,药房、医院等要利用仓库存放药品,企业、工厂等要利用仓库存放原材料、生产成品,因此仓库的管理成了一项十分重要的工作。人工管理仓库既费时又费力,而且容易造成混乱,严重时会影响商城、企业的正常运作,造成恶劣的后果。随着计算机技术的发展,如何快速,高效,便捷的管理仓库受到了高度的关注。本系统模拟仓库管理,系统主要针对于日常库存信息的管理,包括物资管理、仓库管理、入库操作、入库査询统计、出库操作、出库查询统计、库存查询统计等处理情況。用户可以通过相应的模块,对仓库里的物品的基本情况和库存数量进行查询,管理员通过简单的操作即可轻松的管理仓库,查询各项相关信息,并能进行入库和出库操作等。通过仓库管理系统的设计与实现,使我们巩固和加深对数据库基础理论和基本知识的理解,进一步掌握了使用数据库进行软件设计的基本思想和方法,提高了运用数据库理论解决实际问题的能力,锻炼了实际动手能力、创新能力,培养了调查研究、查阅技术文献、资料、手册以及编写文档的能力。
- 使用技术
二、数据库设计
数据库选择的是mysql8
1、数据库关系图
2、库管理管理系统数据库表设计文档
数据库名: wms_db
文档版本: V1.0.0
文档描述: 仓库管理管理系统数据库表设计描述
表名 | 说明 |
---|---|
wms_access_record | 访问记录 |
wms_action | |
wms_customer | 顾客 |
wms_goods | s商品 |
wms_operation_record | 那操作记录 |
wms_record_in | 登录记录 |
wms_record_out | 登出记录 |
wms_record_storage | 存储记录 |
wms_repo_admin | 管理 |
wms_respository | 仓库 |
wms_role_action | |
wms_roles | |
wms_supplier | 供应者 |
wms_user | 用户 |
wms_user_role | 用户角色 |
表名: wms_access_record
说明:
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | RECORD_ID | int | 10 | 0 | N | Y | ||
2 | USER_ID | int | 10 | 0 | N | N | ||
3 | USER_NAME | varchar | 50 | 0 | N | N | ||
4 | ACCESS_TYPE | varchar | 30 | 0 | N | N | ||
5 | ACCESS_TIME | datetime | 19 | 0 | N | N | ||
6 | ACCESS_IP | varchar | 45 | 0 | N | N |
表名: wms_action
说明:
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 | |
---|---|---|---|---|---|---|---|---|---|
1 | ACTION_ID | int | 10 | 0 | N | Y | |||
2 | ACTION_NAME | varchar | 30 | 0 | N | N | |||
3 | ACTION_DESC | varchar | 30 | 0 | Y | N | |||
4 | ACTION_PARAM | varchar | 50 | 0 | N | N |
表名: wms_customer
# 创建客户信息表
create table wms_customer
(
CUSTOMER_ID int not null auto_increment,
CUSTOMER_NAME varchar(30) not null,
CUSTOMER_PERSON varchar(10) not null,
CUSTOMER_TEL varchar(20) not null,
CUSTOMER_EMAIL varchar(20) not null,
CUSTOMER_ADDRESS varchar(30) not null,
primary key(CUSTOMER_ID)
)engine=innodb;
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 | |
---|---|---|---|---|---|---|---|---|---|
1 | CUSTOMER_ID | int | 10 | 0 | N | Y | |||
2 | CUSTOMER_NAME | varchar | 30 | 0 | N | N | |||
3 | CUSTOMER_PERSON | varchar | 10 | 0 | N | N | |||
4 | CUSTOMER_TEL | varchar | 20 | 0 | N | N | |||
5 | CUSTOMER_EMAIL | varchar | 20 | 0 | N | N | |||
6 | CUSTOMER_ADDRESS | varchar | 30 | 0 | N | N |
表名: wms_goods
# 创建客户信息表
create table wms_customer
(
CUSTOMER_ID int not null auto_increment,
CUSTOMER_NAME varchar(30) not null,
CUSTOMER_PERSON varchar(10) not null,
CUSTOMER_TEL varchar(20) not null,
CUSTOMER_EMAIL varchar(20) not null,
CUSTOMER_ADDRESS varchar(30) not null,
primary key(CUSTOMER_ID)
)engine=innodb;
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | GOOD_ID | int | 10 | 0 | N | Y | ||
2 | GOOD_NAME | varchar | 30 | 0 | N | N | ||
3 | GOOD_RYPE | varchar | 20 | 0 | Y | N | ||
4 | GOOD_SIZE | varchar | 20 | 0 | Y | N | ||
5 | GOOD_VALUE | double | 23 | 0 | N | N |
表名: wms_operation_record
说明:
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | RECORD_ID | int | 10 | 0 | N | Y | ||
2 | USER_ID | int | 10 | 0 | N | N | ||
3 | USER_NAME | varchar | 50 | 0 | N | N | ||
4 | OPERATION_NAME | varchar | 30 | 0 | N | N | ||
5 | OPERATION_TIME | datetime | 19 | 0 | N | N | ||
6 | OPERATION_RESULT | varchar | 15 | 0 | N | N |
表名: wms_record_in
# 创建入库记录表
create table wms_record_in
(
RECORD_ID int not null auto_increment,
RECORD_SUPPLIERID int not null,
RECORD_GOODID int not null,
RECORD_NUMBER int not null,
RECORD_TIME datetime not null,
RECORD_PERSON varchar(10) not null,
RECORD_REPOSITORYID int not null,
primary key(RECORD_ID),
foreign key(RECORD_SUPPLIERID) references wms_supplier(SUPPLIER_ID),
foreign key(RECORD_GOODID) references wms_goods(GOOD_ID),
foreign key(RECORD_REPOSITORYID) references wms_respository(REPO_ID)
)engine=innodb;
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 | |
---|---|---|---|---|---|---|---|---|---|
1 | RECORD_ID | int | 10 | 0 | N | Y | |||
2 | RECORD_SUPPLIERID | int | 10 | 0 | N | N | |||
3 | RECORD_GOODID | int | 10 | 0 | N | N | |||
4 | RECORD_NUMBER | int | 10 | 0 | N | N | |||
5 | RECORD_TIME | datetime | 19 | 0 | N | N | |||
6 | RECORD_PERSON | varchar | 10 | 0 | N | N | |||
7 | RECORD_REPOSITORYID | int | 10 | 0 | N | N |
表名: wms_record_out
# 创建出库记录表
create table wms_record_out
(
RECORD_ID int not null auto_increment,
RECORD_CUSTOMERID int not null,
RECORD_GOODID int not null,
RECORD_NUMBER int not null,
RECORD_TIME datetime not null,
RECORD_PERSON varchar(10) not null,
RECORD_REPOSITORYID int not null,
primary key(RECORD_ID),
foreign key(RECORD_CUSTOMERID) references wms_customer(CUSTOMER_ID),
foreign key(RECORD_GOODID) references wms_goods(GOOD_ID),
foreign key(RECORD_REPOSITORYID) references wms_respository(REPO_ID)
)engine=innodb;
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | RECORD_ID | int | 10 | 0 | N | Y | ||
2 | RECORD_CUSTOMERID | int | 10 | 0 | N | N | ||
3 | RECORD_GOODID | int | 10 | 0 | N | N | ||
4 | RECORD_NUMBER | int | 10 | 0 | N | N | ||
5 | RECORD_TIME | datetime | 19 | 0 | N | N | ||
6 | RECORD_PERSON | varchar | 10 | 0 | N | N | ||
7 | RECORD_REPOSITORYID | int | 10 | 0 | N | N |
表名: wms_record_storage
# 创建库存记录表
create table wms_record_storage
(
RECORD_GOODID int not null auto_increment,
RECORD_REPOSITORY int not null,
RECORD_NUMBER int not null,
primary key(RECORD_GOODID, RECORD_REPOSITORY),
foreign key (RECORD_GOODID) references wms_goods(GOOD_ID),
foreign key (RECORD_REPOSITORY) references wms_respository(REPO_ID)
)engine=innodb;
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 | |
---|---|---|---|---|---|---|---|---|---|
1 | RECORD_GOODID | int | 10 | 0 | N | Y | |||
2 | RECORD_REPOSITORY | int | 10 | 0 | N | Y | |||
3 | RECORD_NUMBER | int | 10 | 0 | N | N |
表名: wms_repo_admin
# 创建仓库管理员信息表
create table wms_repo_admin
(
REPO_ADMIN_ID int not null auto_increment,
REPO_ADMIN_NAME varchar(10) not null,
REPO_ADMIN_SEX varchar(10) not null,
REPO_ADMIN_TEL varchar(20) not null,
REPO_ADMIN_ADDRESS varchar(30) not null,
REPO_ADMIN_BIRTH datetime not null,
REPO_ADMIN_REPOID int,
primary key(REPO_ADMIN_ID),
foreign key (REPO_ADMIN_REPOID) references wms_respository(REPO_ID)
)engine=innodb;
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | REPO_ADMIN_ID | int | 10 | 0 | N | Y | ||
2 | REPO_ADMIN_NAME | varchar | 10 | 0 | N | N | ||
3 | REPO_ADMIN_SEX | varchar | 10 | 0 | N | N | ||
4 | REPO_ADMIN_TEL | varchar | 20 | 0 | N | N | ||
5 | REPO_ADMIN_ADDRESS | varchar | 30 | 0 | N | N | ||
6 | REPO_ADMIN_BIRTH | datetime | 19 | 0 | N | N | ||
7 | REPO_ADMIN_REPOID | int | 10 | 0 | Y | N |
表名: wms_respository
# 创建仓库信息表
create table wms_respository
(
REPO_ID int not null auto_increment,
REPO_ADDRESS varchar(30) not null,
REPO_STATUS varchar(20) not null,
REPO_AREA varchar(20) not null,
REPO_DESC varchar(50),
primary key(REPO_ID)
)engine=innodb;
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | REPO_ID | int | 10 | 0 | N | Y | ||
2 | REPO_ADDRESS | varchar | 30 | 0 | N | N | ||
3 | REPO_STATUS | varchar | 20 | 0 | N | N | ||
4 | REPO_AREA | varchar | 20 | 0 | N | N | ||
5 | REPO_DESC | varchar | 50 | 0 | Y | N |
表名: wms_role_action
创建URL权限表
create table wms_action
(
ACTION_ID int not null auto_increment,
ACTION_NAME varchar(30) not null,
ACTION_DESC varchar(30),
ACTION_PARAM varchar(50) not null,
primary key(ACTION_ID)
)engine=innodb;
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 | |
---|---|---|---|---|---|---|---|---|---|
1 | ACTION_ID | int | 10 | 0 | N | Y | |||
2 | ROLE_ID | int | 10 | 0 | N | Y |
表名: wms_roles
# 创建用户角色表
create table wms_roles
(
ROLE_ID int not null auto_increment,
ROLE_NAME varchar(20) not null,
ROLE_DESC varchar(30),
ROLE_URL_PREFIX varchar(20) not null,
primary key(ROLE_ID)
)engine=innodb;
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 | |
---|---|---|---|---|---|---|---|---|---|
1 | ROLE_ID | int | 10 | 0 | N | Y | |||
2 | ROLE_NAME | varchar | 20 | 0 | N | N | |||
3 | ROLE_DESC | varchar | 30 | 0 | Y | N | |||
4 | ROLE_URL_PREFIX | varchar | 20 | 0 | N | N |
表名: wms_supplier
# 创建供应商信息表
create table wms_supplier
(
SUPPLIER_ID int not null auto_increment,
SUPPLIER_NAME varchar(30) not null,
SUPPLIER_PERSON varchar(10) not null,
SUPPLIER_TEL varchar(20) not null,
SUPPLIER_EMAIL varchar(20) not null,
SUPPLIER_ADDRESS varchar(30) not null,
primary key(SUPPLIER_ID)
)engine=innodb;
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 | |
---|---|---|---|---|---|---|---|---|---|
1 | SUPPLIER_ID | int | 10 | 0 | N | Y | |||
2 | SUPPLIER_NAME | varchar | 30 | 0 | N | N | |||
3 | SUPPLIER_PERSON | varchar | 10 | 0 | N | N | |||
4 | SUPPLIER_TEL | varchar | 20 | 0 | N | N | |||
5 | SUPPLIER_EMAIL | varchar | 20 | 0 | N | N | |||
6 | SUPPLIER_ADDRESS | varchar | 30 | 0 | N | N |
表名: wms_user
# 创建系统用户信息表
create table wms_user
(
USER_ID int not null auto_increment,
USER_USERNAME varchar(30) not null,
USER_PASSWORD varchar(40) not null,
USER_FIRST_LOGIN int not null,
primary key (USER_ID)
)engine=innodb;
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 | |
---|---|---|---|---|---|---|---|---|---|
1 | USER_ID | int | 10 | 0 | N | Y | |||
2 | USER_USERNAME | varchar | 30 | 0 | N | N | |||
3 | USER_PASSWORD | varchar | 40 | 0 | N | N | |||
4 | USER_FIRST_LOGIN | int | 10 | 0 | N | N |
表名: wms_user_role
说明:
数据列:
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | ROLE_ID | int | 10 | 0 | N | Y | ||
2 | USER_ID | int | 10 | 0 | N | Y |
三、项目功能演示
使用技术
- Apache POI
- MyBatis
- Spring Framework
- Spring MVC
- Apache Shiro
- Ehcache
- Apache Commons
- Log4j
- Slf4j
- Jackson
- C3P0
- Junit
- MySQL-Connector
- jQuery
- Bootstrap
1、仓库管理功能
- 系统操作权限管理。系统提供基本的登入登出功能,同时系统包含两个角色:系统超级管理员和普通管理员,超级管理员具有最高的操作权限,而普通管理员仅具有最基本的操作权限,而且仅能操作自己被指派的仓库。
请求URL鉴权。对于系统使用者登陆后进行操作发送请求的URL,后台会根据当前用户的角色判断是否拥有请求该URL的权限。
基础数据信息管理。对包括:货物信息、供应商信息、客户信息、仓库信息在内的基础数据信息进行管理,提供的操作有:添加、删除、修改、条件查询、导出为Excel和到从Excel导入。
仓库管理员管理。对仓库管理员信息CRUD操作,或者为指定的仓库管理员指派所管理的仓库。上述中的仓库管理员可以以普通管理员身份登陆到系统。
库存信息管理。对库存信息的CRUD操作,导入导出操作,同时查询的时候可以根据仓库以及商品ID等信息进行多条件查询。
基本仓库事务操作。执行货物的入库与出库操作。
系统登陆日志查询。超级管理员可以查询某一用户在特定时间段内的系统登陆日志。
系统操作日志查询。超级管理员可以查询某一用户在特定时间段内对系统进行操作的操作记录。
密码修改。
2、登录功能实现
数据库的密码使用MD5加密
// 用户密码(wms_user.USER_PASSWORD)加密规则
String tempStr = MD5Util.MD5("123456");// 第一次对密码进行加密
String encryptPassword = MD5Util.MD5(tempStr + "1001");// 第二次对密码进行加密
//存入数据库的加密密码
System.out.println(encryptPassword);
3、仓库管理系统截图
演示视频:
SSM+jsp实现仓库管理系统
项目截图
- 登录页面
- 仓库首页
- 库存查询
- 出入库查询记录
- 出入库管理
- 仓库管理员增删改查
- 供应商管理
- 客户信息管理
- 货物信息管理
- 仓库信息管理
- 修改密码
- 系统日志
四、项目源码下载
项目源码+数据库的下载地址:https://download.csdn.net/download/weixin_44385486/85909953
边栏推荐
- Implementation steps of docker deploying mysql8
- Leetcode: interview question 17.24 Maximum cumulative sum of submatrix (to be studied)
- 学习使用js把两个对象合并成一个对象的方法Object.assign()
- Native MySQL
- 使用 Dumpling 备份 TiDB 集群数据到 GCS
- Do you choose pandas or SQL for the top 1 of data analysis in your mind?
- 杭州电 3711 Binary Number
- Use br to back up tidb cluster to GCS
- How to detect whether the MySQL code runs deadlock +binlog view
- 【系统管理】清理任务栏的已删除程序的图标缓存
猜你喜欢
Web service performance monitoring scheme
Machine learning notes - bird species classification using machine learning
QT opens a file and uses QFileDialog to obtain the file name, content, etc
On file uploading of network security
1.19.11.SQL客户端、启动SQL客户端、执行SQL查询、环境配置文件、重启策略、自定义函数(User-defined Functions)、构造函数参数
【系统管理】清理任务栏的已删除程序的图标缓存
Codeworks 5 questions per day (1700 average) - day 7
AVL树插入操作与验证操作的简单实现
ABAP 動態內錶分組循環
Kotlin Android environment construction
随机推荐
一些常用软件相关
How to manage the expiration of enterprise distribution certificates- How to manage Enterprise Distribution certificate expiration?
手机号国际区号JSON格式另附PHP获取
HW-小记(二)
Analysis on the thinking of college mathematical modeling competition and curriculum education of the 2022a question of the China Youth Cup
Web service performance monitoring scheme
termux设置电脑连接手机。(敲打命令贼快),手机termux端口8022
史上最全MongoDB之初识篇
[leetcode]Spiral Matrix II
Native MySQL
中青杯2022A题高校数学建模竞赛与课程教育思路分析
What is the experience of maintaining Wanxing open source vector database
Imitate Tengu eating the moon with Avatar
golang 压缩和解压zip文件
ABAP Dynamic Inner table Group cycle
你心目中的数据分析 Top 1 选 Pandas 还是选 SQL?
ABAP 動態內錶分組循環
使用 BR 恢复 GCS 上的备份数据
【OA】Excel 文档生成器: Openpyxl 模块
Hangzhou Electric 3711 binary number