基于javaweb的SSM餐厅点餐收银管理系统(java+ssm+jsp+bootstrap+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

440023342402

450023342402

460023342402

470023342402

480023342402

500023342402

042024463108

基于javaweb的SSM餐厅点餐收银管理系统(java+ssm+jsp+bootstrap+mysql)

项目介绍

用于餐厅的收银管理系统,包含了四个模块 1.桌位模块 桌位模块主要是用于管理桌位的模块,包括点菜到结账的流程 将桌位人数设置为0可以滞空当前桌位

2.账单模块 账单模块记录了每一天的帐单汇总,同时提供了年月日账单的统计,在日账单内可以查看当日的所有消费详情,还提供了按日期或日期区间搜索账单的功能

3.日常维护模块 提供了桌位菜单用户供应商的配置功能,也就是增删改查

添加菜品时,添加酒水类时,可以选择进货内的酒水,这样的话在结账后若客人点了该酒水,会将销售信息记录在酒水库存内的销售信息里

4.酒水库存模块 查看添加酒水的进销存信息

管理员角色包含以下功能:

登录,查看桌位,开桌,点菜,结账,查看账单,添加菜品,查看菜品,桌位维护,添加桌位,添加账号,查看账号,添加供应商,进货信息管理,添加进货信息等功能。

环境需要

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项目:否; 7.Redis数据库;

技术栈

  1. 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+Bootstrap+jQuery

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中applicationcontext-mybatis.xml配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/login.html 登录 管理员账号/密码:admin/adminadmin

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
    return "/drink/drink";
}

//加载供应下拉列表
@RequestMapping("/loadProviderSelect.do")
@ResponseBody
public Object loadProviderSelect() {
return JSON.toJSONString(providerService.getProvider());
}

//加载进货信息
@RequestMapping("/loadDrinkBill.do")
@ResponseBody
public ModelAndView loadDrinkBill(ModelAndView modelAndView, DrinkBillPager pager) {
int totalCount = providerService.getDrinkBillCount(pager);
if (totalCount != 0) {
pager.setTotalCount(totalCount);
} else {
pager.setTotalCount(1);
}
pager.setPageSize(PagerTools.drinkBillPagerSize);
pager.count();
pager.setList(providerService.getDrinkBill(pager));
modelAndView.addObject("pager", pager);
modelAndView.setViewName("/drink/ajaxJinhuoList");
return modelAndView;
}

//加载进货信息
@RequestMapping("/loadDrinkBillCode.do")
@ResponseBody
public Object loadDrinkBillCode(DrinkBillPager pager) {
int totalCount = providerService.getDrinkBillCount(pager);
if (totalCount != 0) {
pager.setTotalCount(totalCount);
} else {
pager.setTotalCount(1);
}
pager.setPageSize(100);
pager.count();
List<Drinkbill> drinkBills=providerService.getDrinkBill(pager);
return JSON.toJSONString(drinkBills);
}

//del删除进货信息
@RequestMapping("/delDrinkBill.do")
@ResponseBody
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
	}
return JSON.toJSONString(deskDish);
}

//删除菜品
@RequestMapping("/delDish.do")
@ResponseBody
public Object delDish(DeskInfo_detail deskInfo_detail,@RequestParam(required=false)String deskCode){
List<DeskInfo_detail> deskDish=redisUtil.getList(deskCode);
for (int i = 0; i < deskDish.size(); i++) {
if(deskDish.get(i).getDishName().equals(deskInfo_detail.getDishName())){//找到相同的菜品
deskDish.remove(i);//删除该菜品
redisUtil.addList(deskCode, deskDish);//更新缓存
break;
}
}
return JSON.toJSONString(deskDish);
}


@ResponseBody
@RequestMapping("/alldish.do")
public ModelAndView showAlldish(ModelAndView modelAndView,
Pager pager
){
Dishes dishes=Dishes.getDishes();
if("allDish".equals(pager.getOpr())){
pager.setTotalCount(dishes.getAllDishCount());
pager.setPageSize(PagerTools.dishMenuPagerSize);
pager.count();
List<Dish> list=dishes.getAllDish(pager);
pager.setList(list);
}else if("soup".equals(pager.getOpr())){
pager.setTotalCount(dishes.getSoupsCount());
pager.setPageSize(PagerTools.dishMenuPagerSize);
pager.count();
List<Dish> list=dishes.getSoups(pager);
pager.setList(list);
}else if("fry".equals(pager.getOpr())){
pager.setTotalCount(dishes.getFrysCount());
pager.setPageSize(PagerTools.dishMenuPagerSize);
pager.count();
List<Dish> list=dishes.getFrys(pager);
pager.setList(list);
}else if("other".equals(pager.getOpr())){
pager.setTotalCount(dishes.getOthersCount());
pager.setPageSize(PagerTools.dishMenuPagerSize);
pager.count();
List<Dish> list=dishes.getOthers(pager);
pager.setList(list);
}else if("drink".equals(pager.getOpr())){
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
                try {
file.transferTo(new File(path + File.separator +newFileName));
System.out.println("上传成功");
dish.setFileName(newFileName);//将新文件名保存在对象中
addFlag = dishService.addDish(dish);//添加至数据库
System.out.println("菜品" + dish.getDishName() + "添加成功");
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else {
fifleFlag = "图片不能大于500KB";
}
} else {
fifleFlag = "请上传JPG格式图片";
}
}
if (addFlag) {//添加成功时
//刷新缓存
redisUtil.del("allDishes");
return JSON.toJSONString("OK");
} else {
return "{'fifleFlag':'" + fifleFlag + "'}";
}
}

//ajax验证菜品名是否存在
@ResponseBody
@RequestMapping("/dishNameIsExist.do")
public Object dishNameIsExist(@RequestParam(required = false) String dishName) {
boolean existFlag = false;
if (dishName != "" && dishName != null) {
existFlag = dishService.isExist(dishName);
}
if (existFlag) {
return JSON.toJSONString("0");//存在该菜品
}
return JSON.toJSONString("1");//不存在该菜品
}


//加载菜品列表
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

//更改桌位
@RequestMapping("/changeDesk.do")
@ResponseBody
public Object changeDesk(Desk desk){
boolean flag=deskService.updateDesk(desk);
String str="";
if(flag){
str="true";
}else{
str="false";
}
return JSON.toJSONString(str);
}

//更改菜品
@RequestMapping("/updateDish.do")
@ResponseBody
public Object updateDish(DeskInfo_detail deskInfo_detail,@RequestParam(required=false)String deskCode){
List<DeskInfo_detail> deskDish=redisUtil.getList(deskCode);
for (int i = 0; i < deskDish.size(); i++) {
if(deskDish.get(i).getDishName().equals(deskInfo_detail.getDishName())){//找到相同的菜品
String newContent=deskInfo_detail.getContent();//得到新的备注
int newNum=deskInfo_detail.getDishNum();//得到修改过后的数目
deskDish.get(i).setDishNum(newNum);//修改数目
deskDish.get(i).setCost(newNum*deskDish.get(i).getPrice());//修改小计
deskDish.get(i).setContent(newContent);//修改备注
redisUtil.addList(deskCode, deskDish);//更新缓存
break;
}
}
return JSON.toJSONString(deskDish);
}

//删除菜品
@RequestMapping("/delDish.do")
@ResponseBody
public Object delDish(DeskInfo_detail deskInfo_detail,@RequestParam(required=false)String deskCode){
List<DeskInfo_detail> deskDish=redisUtil.getList(deskCode);
for (int i = 0; i < deskDish.size(); i++) {
if(deskDish.get(i).getDishName().equals(deskInfo_detail.getDishName())){//找到相同的菜品
deskDish.remove(i);//删除该菜品
redisUtil.addList(deskCode, deskDish);//更新缓存
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


@Controller
public class DrinkController {
@Autowired
private ProviderService providerService;

@RequestMapping("/drink.html")
public String drink(HttpSession session) {
if(session.getAttribute("user")==null){//权限控制
return "redirect:login.html";
}
return "/drink/drink";
}

//加载供应下拉列表
@RequestMapping("/loadProviderSelect.do")
@ResponseBody
public Object loadProviderSelect() {
return JSON.toJSONString(providerService.getProvider());
}

//加载进货信息
@RequestMapping("/loadDrinkBill.do")
@ResponseBody
public ModelAndView loadDrinkBill(ModelAndView modelAndView, DrinkBillPager pager) {
int totalCount = providerService.getDrinkBillCount(pager);
if (totalCount != 0) {
pager.setTotalCount(totalCount);
} else {
pager.setTotalCount(1);
}
pager.setPageSize(PagerTools.drinkBillPagerSize);
pager.count();
pager.setList(providerService.getDrinkBill(pager));
modelAndView.addObject("pager", pager);
modelAndView.setViewName("/drink/ajaxJinhuoList");
return modelAndView;
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
        System.out.println("~~~~~~~~~~~~~~开始删除Dish~~~~~~~~~~~~~~~");
boolean delFlag=false;
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~id="+id);
if(id!=null && !"".equals(id)){
System.out.println("~~~~~~~~~~~~~~~进入删除~~~~~~~~~~~~~~~~");
delFlag=dishService.delDishById(id);
}
if(delFlag){//删除成功
System.out.println("~~~~~~~~~~~~~~删除Dish成功~~~~~~~~~~~~~~~");
redisUtil.del("allDishes");//刷新redis
Dishes.getDishes().setAllDish(null);//刷新单例
return JSON.toJSONString(0);//删除成功
}
return JSON.toJSONString(1);//删除失败
}

}
package controller;



@Controller
public class DrinkController {
@Autowired
private ProviderService providerService;

@RequestMapping("/drink.html")
public String drink(HttpSession session) {
if(session.getAttribute("user")==null){//权限控制
return "redirect:login.html";
}
return "/drink/drink";
}

//加载供应下拉列表


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