基于javaweb的SSM+Maven校内超市超市收银管理系统(java+ssm+maven+bootstrap+mysql+jsp)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

300023372402

310023372402

320023372402

330023372402

350023372402

360023372402

370023372402

基于javaweb的SSM+Maven校内超市超市收银管理系统(java+ssm+maven+bootstrap+mysql+jsp)

项目介绍

本系统分为管理员与普通用户两种角色。采用后端SSM框架,前端BootStrap(前后端不分离)的系统架构模式,实现了基本的超市管理功能; 本系统实现了超市管理的基本功能,包括商品库存模块,商品分类模块,供应商管理模块,销售统计模块以及用户管理模块。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;  5.数据库:MySql 5.7版本; 6.是否Maven项目:是;

技术栈

  • 后端:Spring + SpringMVC + MyBatis - 前端:BootStrap - 插件:PageHelper分页插件 - 环境:Jdk 1.8 + Tomcat 9.0.45 + Maven管理工具 + MySQL v5.7.33

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,访问路径(本地部署):localhost:8080/sms

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
        return "forward:/sale/saleInfo";
}

/**
* 用于显示销售统计页面的信息
*
* @param pn 页码
* @param request 原生API, 用于获取表单输入信息以进行条件查询
* @param model 存储数据域中
* @return sale.jsp
*/
@Deprecated
@RequestMapping("/saleInfo")
public String showSaleInfo(@RequestParam(value = "pn", defaultValue = "1") Integer pn,
HttpServletRequest request,
Model model) {
System.out.println("preGroupId ===> " + request.getParameter("groupIdInForm"));
Integer groupId = null;
String startDate = "";
String endDate = "";

if (request.getParameter("groupIdInForm") != null &&
!request.getParameter("groupIdInForm").equals("0")) {
// 表单输入的商品类别
groupId = Integer.parseInt(request.getParameter("groupIdInForm"));
}
if (request.getParameter("startDate") != null &&
request.getParameter("endDate") != null) {
startDate = request.getParameter("startDate");
endDate = request.getParameter("endDate");
}

// System.out.println("********************************");
// System.out.println("groupId ===> " + groupId);
// System.out.println("startDate ===> " + startDate);
// System.out.println("endDate ===> " + endDate);
// System.out.println("********************************");

PageHelper.startPage(pn, 5);
List<Sale> sales = saleService.getSaleInfoByCondition(groupId, startDate, endDate);
for (Sale sale : sales) {
sale.setProduct(productService.getProductByProductId(sale.getProductId()));
sale.getProduct().setGroup(groupService.getGroupByGroupId(sale.getProduct().getGroupId()));
}

PageInfo<Sale> pageInfo = new PageInfo<>(sales, 5);
model.addAttribute("pageInfo", pageInfo);

// 2021年5月5日01:13:06添加, 为了让条件查询更容容易, 这里由填写商品分类, 修改为选择下拉框
List<Group> allGroups = groupService.getAllGroups();
model.addAttribute("allGroups", allGroups);

return "sale/sale";
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

// ********以下两个Controller是为了防止JSP页面跳转失败而加的, 无逻辑操作

/**
* 跳转到首页
*
* @return main.jsp
*/
@RequestMapping("/home")
public String toHomePage() {
return "other/main";
}

/**
* 跳转到结算业面
*
* @return checkout.jsp
*/
@RequestMapping("/toCheckout")
public String toCheckoutPage() {
return "other/checkout";
}
}
package com.wxl.sms.controller;



/**
* 销售统计Controller
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

// System.out.println("********************************");
// System.out.println("groupId ===> " + groupId);
// System.out.println("startDate ===> " + startDate);
// System.out.println("endDate ===> " + endDate);
// System.out.println("********************************");

PageHelper.startPage(pn, 5);
List<Sale> sales = saleService.getSaleInfoByCondition(groupId, startDate, endDate);
for (Sale sale : sales) {
sale.setProduct(productService.getProductByProductId(sale.getProductId()));
sale.getProduct().setGroup(groupService.getGroupByGroupId(sale.getProduct().getGroupId()));
}

PageInfo<Sale> pageInfo = new PageInfo<>(sales, 5);
model.addAttribute("pageInfo", pageInfo);

// 2021年5月5日01:13:06添加, 为了让条件查询更容容易, 这里由填写商品分类, 修改为选择下拉框
List<Group> allGroups = groupService.getAllGroups();
model.addAttribute("allGroups", allGroups);

return "sale/sale";
}


/**
* 用于显示销售统计页面的信息
*
* @param pn 页码
* @param request 原生API, 用于获取表单输入信息以进行条件查询
* @param model 存储数据域中
* @param postGroupId 存储上一次表单提交的商品分类值
* @return sale.jsp
*/
@RequestMapping("/saleInfoPro")
public String showSaleInfoPro(@RequestParam(value = "pn", defaultValue = "1") Integer pn,
HttpServletRequest request,
Model model,
@RequestParam(value = "groupId", defaultValue = "0") Integer postGroupId) {
// System.out.println("preGroupId ===> " + request.getParameter("groupIdInForm"));
Integer groupId = null;
String startDate = "";
String endDate = "";

if (postGroupId == 0) {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
        String endDate = "";

if (postGroupId == 0) {
if (request.getParameter("groupIdInForm") != null &&
!request.getParameter("groupIdInForm").equals("0")) {
// 表单输入的商品类别
groupId = Integer.parseInt(request.getParameter("groupIdInForm"));
}
} else {
groupId = postGroupId;
}

if (request.getParameter("startDate") != null &&
request.getParameter("endDate") != null) {
startDate = request.getParameter("startDate");
endDate = request.getParameter("endDate");
}

PageHelper.startPage(pn, 5);
List<Sale> sales = saleService.getSaleInfoByCondition(groupId, startDate, endDate);
for (Sale sale : sales) {
sale.setProduct(productService.getProductByProductId(sale.getProductId()));
sale.getProduct().setGroup(groupService.getGroupByGroupId(sale.getProduct().getGroupId()));
}

PageInfo<Sale> pageInfo = new PageInfo<>(sales, 5);
model.addAttribute("pageInfo", pageInfo);

// 2021年5月5日01:13:06添加, 为了让条件查询更容容易, 这里由填写商品分类, 修改为选择下拉框
List<Group> allGroups = groupService.getAllGroups();
model.addAttribute("allGroups", allGroups);

// 2021年5月10日14:12:48 Pro版, 解决分页BUG
model.addAttribute("groupId", groupId);

return "sale/sale";
}
}
package com.wxl.sms.controller;


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    /**
* 用于显示销售统计页面的信息
*
* @param pn 页码
* @param request 原生API, 用于获取表单输入信息以进行条件查询
* @param model 存储数据域中
* @return sale.jsp
*/
@Deprecated
@RequestMapping("/saleInfo")
public String showSaleInfo(@RequestParam(value = "pn", defaultValue = "1") Integer pn,
HttpServletRequest request,
Model model) {
System.out.println("preGroupId ===> " + request.getParameter("groupIdInForm"));
Integer groupId = null;
String startDate = "";
String endDate = "";

if (request.getParameter("groupIdInForm") != null &&
!request.getParameter("groupIdInForm").equals("0")) {
// 表单输入的商品类别
groupId = Integer.parseInt(request.getParameter("groupIdInForm"));
}
if (request.getParameter("startDate") != null &&
request.getParameter("endDate") != null) {
startDate = request.getParameter("startDate");
endDate = request.getParameter("endDate");
}

// System.out.println("********************************");
// System.out.println("groupId ===> " + groupId);
// System.out.println("startDate ===> " + startDate);
// System.out.println("endDate ===> " + endDate);
// System.out.println("********************************");

PageHelper.startPage(pn, 5);
List<Sale> sales = saleService.getSaleInfoByCondition(groupId, startDate, endDate);
for (Sale sale : sales) {
sale.setProduct(productService.getProductByProductId(sale.getProductId()));
sale.getProduct().setGroup(groupService.getGroupByGroupId(sale.getProduct().getGroupId()));
}

PageInfo<Sale> pageInfo = new PageInfo<>(sales, 5);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/**
* 查询所有供应商信息
*
* @param pn 传入要查询的页码(要查询第几页的数据)
* @param model 为了将数据传入到cookie域中方便取出数据
* @return 返回provider.jsp页面
*/
@RequestMapping("/providerList")
public String getAllProviders(@RequestParam(value = "pn", defaultValue = "1") Integer pn,
Model model) {
PageHelper.startPage(pn, 5);
List<Provider> providers = providerService.getAllProviders();
PageInfo<Provider> pageInfo = new PageInfo<>(providers, 5);
model.addAttribute("pageInfo", pageInfo);

return "provider/provider";
}


/**
* 根据供应商id查询出该供应商所供应的所有商品列表集合
*
* @param pn 展示页码
* @param providerId 供应商id
* @param model 存储转发查询得到的数据
* @return records.jsp记录页面
*/
@RequestMapping("/provideProducts")
public String showProductBySelectedProvider(@RequestParam(value = "pn", defaultValue = "1") Integer pn,
@RequestParam("providerId") Integer providerId,
Model model) {
PageHelper.startPage(pn, 5);
List<Product> records = providerService.getProviderRecordsByProviderId(providerId);
PageInfo<Product> pageInfo = new PageInfo<>(records, 5);
model.addAttribute("pageInfo", pageInfo);

Provider provider = providerService.getProviderByProviderId(providerId);
model.addAttribute("provider", provider);

return "provider/records";
}

/**
* 根据搜索框里输入的供应商联系人电话进行查询后返回
*
* @param pn 页码
* @param request 用于获取表单数据的原始API
* @param model 封装数据
* @return provider.jsp
*/
@RequestMapping("/searchProvider")
public String searchProvider(@RequestParam(value = "pn", defaultValue = "1") Integer pn,
HttpServletRequest request, Model model) {
String phoneNumber = request.getParameter("phoneNumber");


项目链接:
https://javayms.github.io?id=141122532008200qc
https://javayms.pages.dev?id=141122532008200qc