当前位置:网站首页>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
边栏推荐
- 接口数据安全保证的10种方式
- ERROR: Could not build wheels for pycocotools which use PEP 517 and cannot be installed directly
- 再AD 的 界面顶部(菜单栏)创建常用的快捷图标
- Redis configuration and optimization of NoSQL
- Redis source code learning (31), dictionary learning, dict.c (1)
- 见到小叶栀子
- Collection of idea gradle Lombok errors
- Some common software related
- 史上最全学习率调整策略lr_scheduler
- Adaptive non European advertising retrieval system amcad
猜你喜欢
Food Chem|深度学习根据成分声明准确预测食品类别和营养成分
Class常量池与运行时常量池
AVL树插入操作与验证操作的简单实现
Antd comment recursive loop comment
Kotlin Android environment construction
【开发软件】 tilipa开发者软件
Analysis on urban transportation ideas of 2022 Zhongqing cup C
Create commonly used shortcut icons at the top of the ad interface (menu bar)
Docker部署Mysql8的实现步骤
2022年电工杯B 题 5G 网络环境下应急物资配送问题思路分析
随机推荐
[hcie TAC] question 3
OSCP工具之一: dirsearch用法大全
cuda编程
学习使用js把两个对象合并成一个对象的方法Object.assign()
MySQL data loss, analyze binlog log file
杭州电 3711 Binary Number
Implementation of binary search tree
Codeworks 5 questions per day (1700 average) - day 7
如何编写一个程序猿另一个面试官眼前一亮的简历[通俗易懂]
别样肉客联手德克士在全国部分门店推出别样汉堡
The most complete deployment of mongodb in history
Optimization cases of complex factor calculation: deep imbalance, buying and selling pressure index, volatility calculation
Redis source code learning (30), dictionary learning, dict.h
使用 BR 备份 TiDB 集群到 GCS
What is the experience of maintaining Wanxing open source vector database
Leetcode: interview question 17.24 Maximum cumulative sum of submatrix (to be studied)
[dpdk] dpdk sample source code analysis III: dpdk-l3fwd_ 001
【写给初发论文的人】撰写综述性科技论文常见问题
机械臂速成小指南(十):可达工作空间
Imitate Tengu eating the moon with Avatar