当前位置:网站首页>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
边栏推荐
- Simple implementation of AVL tree insertion and verification operations
- Use dumping to back up tidb cluster data to GCS
- Native MySQL
- UltraEdit-32 温馨提示:右协会,取消 bak文件[通俗易懂]
- ABAP 动态内表分组循环
- [record of question brushing] 2 Add two numbers
- [MySQL] row sorting in MySQL
- Kotlin Android 环境搭建
- 力扣------路径总和 III
- Redis configuration and optimization of NoSQL
猜你喜欢
随机推荐
使用 BR 备份 TiDB 集群到 GCS
使用 TiDB Lightning 恢复 GCS 上的备份数据
ERROR: Could not build wheels for pycocotools which use PEP 517 and cannot be installed directly
超越Postman,新一代国产调试工具Apifox,用起来够优雅
The most complete learning rate adjustment strategy in history LR_ scheduler
Implementation of binary search tree
List interview common questions
学习使用js把两个对象合并成一个对象的方法Object.assign()
Quick completion guide of manipulator (10): accessible workspace
CUDA Programming
ABAP Dynamic Inner table Group cycle
Restore backup data on GCS with tidb lightning
golang 压缩和解压zip文件
Gpt-3 is a peer review online when it has been submitted for its own research
Force buckle ----- path sum III
tflite模型转换和量化
Storage of data
Do you choose pandas or SQL for the top 1 of data analysis in your mind?
【系统管理】清理任务栏的已删除程序的图标缓存
AVL树插入操作与验证操作的简单实现