博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了1600+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
更多项目地址 介绍 翰文编程CSDN博客翰文编程-CSDN博客
文末下方有源码获取地址
ssm+vue787基于BS的超市商品管理系统的设计与实现(包含源码+文档)轻松搞定毕设作业-java项目-java基础-java开发-web-前端
3.1系统功能结构设计
系统的功能结构是采用树形图来绘制功能设计。根据分析所得,本系统的功能设计为管理员和销售员工、采购员工三部分。管理员为高级角色,可以管理系统里的所有信息,包括员工信息。本基于B/S的超市商品管理系统的功能结构设计图如下图3-1所示:
图3-1基于B/S的超市商品管理系统功能结构图
3.2数据库设计
数据库为数据的仓库,决定了数据的保存和修改、删除、调用等。数据库的稳定决定了系统里数据的安全。本系统采用Mysql数据库,在建立数据库时采用Root用户名。数据库的建立过程为先进行数据的ER图设计然后进行数据库表的实现。
3.2.1数据ER图设计
数据ER图中记录了关系、实体、属性。实体与实体的关系决定了数据在调用时的正确与否,实体的属性决定了该实体的内容。数据ER图的设计同样重要,也是数据库建立的基础。
通过系统中的功能数据分析,本系统的实体主要有员工、管理员、商品信息、销售信息、采购信息等。
- 管理员的ER图中的属性有账号、密码、权限。管理员ER图如下图3-2所示:
图3-2管理员ER图
- 员工的ER图里的属性有账号、姓名、编号等,员工的ER图如下图3-3所示:
- 商品信息的ER图里的属性有名称、类别、图片、价格、数量等,商品的ER图如下图3-4所示:
图3-4商品信息ER图
(4)采购的ER图里的属性有名称、编号、供应商、负责人等,采购ER图如下图3-5所示:
图3-5采购ER图
(5)销售信息ER图里的属性有编号、名称、价格、操作员、库存、数量等,销售信息ER图如下图3-6所示:
图3-6销售信息ER图
3.2.2数据库表设计
数据库表是把ER图进行详细化、实体化。不同的表名下保存着相对应的表信息数据。在数据库表里记录着数据的主键、外键、数据类型、长度等。本基于B/S的超市商品管理系统所创建的数据库表有管理员信息表、员工信息表、商品信息表、库存信息表、进货入库信息表等。本基于B/S的超市商品管理系统的数据库表如下表3-1—3-11所示:
表3-1 caigoujinhuo
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | int | 11 | 是 | 是 | 否 | auto_increment | |||
2 | shangpin_id | int | 11 | 是 | ||||||
3 | gongyingshang_id | int | 11 | 是 | ||||||
4 | caigouyuangong_id | int | 11 | 是 | ||||||
5 | caigoujinhuo_uuid_number | varchar | 200 | 是 | ||||||
6 | caigoujinhuo_number | int | 11 | 是 | ||||||
7 | caigoujinhuo_content | text | 是 | |||||||
8 | insert_time | timestamp | 是 | |||||||
9 | create_time | timestamp | 是 |
表3-2 caigoutuihuo
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | int | 11 | 是 | 是 | 否 | auto_increment | |||
2 | shangpin_id | int | 11 | 是 | ||||||
3 | caigouyuangong_id | int | 11 | 是 | ||||||
4 | caigoutuihuo_uuid_number | varchar | 200 | 是 | ||||||
5 | caigoutuihuo_number | int | 11 | 是 | ||||||
6 | caigoutuihuo_content | text | 是 | |||||||
7 | insert_time | timestamp | 是 | |||||||
8 | create_time | timestamp | 是 |
表3-3 caigouyuangong
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | int | 11 | 是 | 是 | 否 | auto_increment | |||
2 | username | varchar | 200 | 是 | ||||||
3 | password | varchar | 200 | 是 | ||||||
4 | caigouyuangong_uuid_number | varchar | 200 | 是 | ||||||
5 | caigouyuangong_name | varchar | 200 | 是 | ||||||
6 | caigouyuangong_phone | varchar | 200 | 是 | ||||||
7 | caigouyuangong_id_number | varchar | 200 | 是 | ||||||
8 | caigouyuangong_photo | varchar | 200 | 是 | ||||||
9 | sex_types | int | 11 | 是 | ||||||
10 | caigouyuangong_email | varchar | 200 | 是 | ||||||
11 | create_time | timestamp | 是 |
表3-4 config
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | bigint | 20 | 是 | 是 | 否 | auto_increment | |||
2 | name | varchar | 100 | 否 | ||||||
3 | value | varchar | 100 | 是 |
表3-5 dictionary
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | bigint | 20 | 是 | 是 | 否 | auto_increment | |||
2 | dic_code | varchar | 200 | 是 | ||||||
3 | dic_name | varchar | 200 | 是 | ||||||
4 | code_index | int | 11 | 是 | ||||||
5 | index_name | varchar | 200 | 是 | ||||||
6 | super_id | int | 11 | 是 | ||||||
7 | beizhu | varchar | 200 | 是 | ||||||
8 | create_time | timestamp | 是 |
表3-6 gongyingshang
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | int | 11 | 是 | 是 | 否 | auto_increment | |||
2 | gongyingshang_name | varchar | 200 | 是 | ||||||
3 | gongyingshang_types | int | 11 | 是 | ||||||
4 | gongyingshang_xinyongdengji_types | int | 11 | 是 | ||||||
5 | gongyingshang_content | text | 是 | |||||||
6 | create_time | timestamp | 是 |
表3-7 shangpin
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | int | 11 | 是 | 是 | 否 | auto_increment | |||
2 | shangpin_uuid_number | varchar | 200 | 是 | ||||||
3 | shangpin_name | varchar | 200 | 是 | ||||||
4 | shangpin_photo | varchar | 200 | 是 | ||||||
5 | shangpin_types | int | 11 | 是 | ||||||
6 | shangpin_kucun_number | int | 11 | 是 | ||||||
7 | shangpin_danwei | varchar | 200 | 是 | ||||||
8 | shangpin_jinjia_money | decimal | 10 | 2 | 是 | |||||
9 | shangpin_shoujia_money | decimal | 10 | 2 | 是 | |||||
10 | shangpin_content | text | 是 | |||||||
11 | insert_time | timestamp | 是 | |||||||
12 | create_time | timestamp | 是 |
表3-8 token
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | bigint | 20 | 是 | 是 | 否 | auto_increment | |||
2 | userid | bigint | 20 | 否 | ||||||
3 | username | varchar | 100 | 否 | ||||||
4 | tablename | varchar | 100 | 是 | ||||||
5 | role | varchar | 100 | 是 | ||||||
6 | token | varchar | 200 | 否 | ||||||
7 | addtime | timestamp | 否 | CURRENT_TIMESTAMP | ||||||
8 | expiratedtime | timestamp | 否 | CURRENT_TIMESTAMP |
表3-9 users
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | bigint | 20 | 是 | 是 | 否 | auto_increment | |||
2 | username | varchar | 100 | 否 | ||||||
3 | password | varchar | 100 | 否 | ||||||
4 | role | varchar | 100 | 是 | 管理员 | |||||
5 | addtime | timestamp | 否 | CURRENT_TIMESTAMP |
表3-10 xiaoshou
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | int | 11 | 是 | 是 | 否 | auto_increment | |||
2 | shangpin_id | int | 11 | 是 | ||||||
3 | xiaoshouyuangong_id | int | 11 | 是 | ||||||
4 | xiaoshou_uuid_number | varchar | 200 | 是 | ||||||
5 | xiaoshou_kucun_number | int | 11 | 是 | ||||||
6 | xiaoshou_zongchengben_money | decimal | 10 | 2 | 是 | |||||
7 | xiaoshou_zongshoujia_money | decimal | 10 | 2 | 是 | |||||
8 | xiaoshou_zonglirun_money | decimal | 10 | 2 | 是 | |||||
9 | xiaoshou_content | text | 是 | |||||||
10 | insert_time | timestamp | 是 | |||||||
11 | create_time | timestamp | 是 |
表3-11 xiaoshouyuangong
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 外键 | 允许空 | 默认值 | 说明 |
1 | id | int | 11 | 是 | 是 | 否 | auto_increment | |||
2 | username | varchar | 200 | 是 | ||||||
3 | password | varchar | 200 | 是 | ||||||
4 | xiaoshouyuangong_uuid_number | varchar | 200 | 是 | ||||||
5 | xiaoshouyuangong_name | varchar | 200 | 是 | ||||||
6 | xiaoshouyuangong_phone | varchar | 200 | 是 | ||||||
7 | xiaoshouyuangong_id_number | varchar | 200 | 是 | ||||||
8 | xiaoshouyuangong_photo | varchar | 200 | 是 | ||||||
9 | sex_types | int | 11 | 是 | ||||||
10 | xiaoshouyuangong_email | varchar | 200 | 是 | ||||||
11 | create_time | timestamp | 是 |
4.1用户登录功能的详细实现
用户登录界面起到验证身份的作用,本界面采用图片背景进行设计。在用户登录界面里设置了程序的名称和用户、密码、权限的文本框。在文本框下是登录按钮。用户在信息输入完成后可以使用这个按钮进行相对应的操作。用户登录功能的实现界面如下图4-1所示:
图4-1用户登录实现界面
4.2管理员权限的功能实现
4.2.1个人中心管理功能的详细实现
个人中心管理功能的作用为修改密码和添加、删除管理员用户。本功能可以实现新增管理员和减少管理员。个人中心管理功能的实现界面如下图4-2所示:
图4-2个人中心管理功能的界面实现
4.2.2员工信息管理功能的详细实现
管理员负责员工信息的录入和管理。员工信息包括销售员工和采购员工,员工的账号和密码则是由本功能进行添加。管理员查询员工信息的功能实现如下图4-3所示:
图4-3管理员查询员工信息的实现界面
4.2.3商品信息管理功能的详细实现
管理员可以对商品的信息进行管理、审核。管理员查询商品信息的实现界面如下图4-4所示:
图4-4管理员查询商品信息的实现界面
4.2.4供应商管理功能的详细界面实现
管理员可以对供应商信息进行管理和添加。管理员查询供应商信息的实现界面如下图4-5所示:
图4-5管理员查询供应商功能的运行界面
4.2.5商品销售管理功能的详细实现
管理员可以添加和管理商品的销售信息,查询商品销售功能的界面实现如下图4-6所示:
图4-6管理员查询商品销售功能的运行界面
4.2.6商品销售统计功能的详细实现
管理员可以对销售数据进行统计,功能的实现界面如下图4-7所示:
图4-7管理员商品销售统计功能的运行界面
主要代码:
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
String role = String.valueOf(request.getSession().getAttribute("role"));
if(false)
return R.error(511,"永不会进入");
else if("采购员工".equals(role))
params.put("caigouyuangongId",request.getSession().getAttribute("userId"));
else if("销售员工".equals(role))
params.put("xiaoshouyuangongId",request.getSession().getAttribute("userId"));
if(params.get("orderBy")==null || params.get("orderBy")==""){
params.put("orderBy","id");
}
PageUtils page = xiaoshouService.queryPage(params);
//字典表数据转换
List<XiaoshouView> list =(List<XiaoshouView>)page.getList();
for(XiaoshouView c:list){
//修改对应字典表字段
dictionaryService.dictionaryConvert(c, request);
}
return R.ok().put("data", page);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id, HttpServletRequest request){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
XiaoshouEntity xiaoshou = xiaoshouService.selectById(id);
if(xiaoshou !=null){
//entity转view
XiaoshouView view = new XiaoshouView();
BeanUtils.copyProperties( xiaoshou , view );//把实体数据重构到view中
//级联表
ShangpinEntity shangpin = shangpinService.selectById(xiaoshou.getShangpinId());
if(shangpin != null){
BeanUtils.copyProperties( shangpin , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setShangpinId(shangpin.getId());
}
//级联表
XiaoshouyuangongEntity xiaoshouyuangong = xiaoshouyuangongService.selectById(xiaoshou.getXiaoshouyuangongId());
if(xiaoshouyuangong != null){
BeanUtils.copyProperties( xiaoshouyuangong , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setXiaoshouyuangongId(xiaoshouyuangong.getId());
}
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
4.2.7采购进退货管理功能的实现界面
管理员可以查看和管理采购的进货信息、退货信息,实现界面如下图4-8所示:
图4-8管理员查询采购进退货功能的实现界面
4.2.8基础数据管理功能的实现界面
基础数据包括商品类型和供应商类型,管理员可以设置不同的类型。实现界面如下图4-9所示:
图4-9基础数据管理功能的实现界面
4.3采购员工权限的功能详细实现
4.3.1采购进货管理功能的详细实现
采购员工功能里可以添加采购进货信息。采购员工添加采购进货功能的实现界面如下图4-10所示:
图4-10采购员工添加采购进货功能的运行界面
大家点赞、收藏、关注、评论啦 其他的定制服务 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者