最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

餐廳收銀系統(tǒng)|基于SSM實現(xiàn)餐廳收銀系統(tǒng)

2023-05-15 09:58 作者:指南針畢業(yè)設(shè)計  | 我要投稿


項目編號:BS--XX-091

一,環(huán)境介紹

語言環(huán)境:Java:? jdk1.8

數(shù)據(jù)庫:Mysql: mysql5.7

應(yīng)用服務(wù)器:Tomcat:? tomcat8.5.31

開發(fā)工具:IDEA或eclipse

開發(fā)技術(shù):spring+spring mvc+mybatis+bootstrap+jquery

二,項目簡介

本項目基于SSM實現(xiàn)用于餐廳的收銀管理系統(tǒng),包含了四個模塊

1.桌位模塊

桌位模塊主要是用于管理桌位的模塊,包括點菜到結(jié)賬的流程

將桌位人數(shù)設(shè)置為0可以滯空當(dāng)前桌位

2.賬單模塊

賬單模塊記錄了每一天的帳單匯總,同時提供了年月日賬單的統(tǒng)計,在日賬單內(nèi)可以查看當(dāng)日的所有消費詳情,還提供了按日期或日期區(qū)間搜索賬單的功能

3.日常維護(hù)模塊

提供了桌位菜單用戶供應(yīng)商的配置功能,也就是增刪改查
? 添加菜品時,添加酒水類時,可以選擇進(jìn)貨內(nèi)的酒水,這樣的話在結(jié)賬后若客人點了該酒水,會將銷售信息記錄在酒水庫存內(nèi)的銷售信息里

4.酒水庫存模塊

查看添加酒水的進(jìn)銷存信息

三,系統(tǒng)展示

下面展示系統(tǒng)的運行模塊:


用戶登陸

編輯


數(shù)據(jù)維護(hù)—菜品維護(hù)

編輯


編輯


桌位維護(hù)

編輯


編輯



賬戶維護(hù)

編輯


編輯

賬戶維護(hù)

編輯


編輯


開桌就餐

編輯


編輯


點菜

編輯

結(jié)賬

編輯


編輯


查看賬單

編輯

查看單桌消費

編輯



四,核心代碼展示

package controller;import com.alibaba.fastjson.JSON;import dao.user.UserMapper;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.servlet.ModelAndView;import pojo.Pager;import pojo.Provider;import pojo.User;import service.user.UserService;import tools.PagerTools;import java.util.HashMap;import java.util.Map;@Controllerpublic class UserController { ? ?@Autowired ? ?private UserService userService; ? ?@ResponseBody ? ?@RequestMapping("/addUser.do") ? ?public Object addUser(User user){ ? ? ? ?return JSON.toJSONString(userService.addUser(user)); ? ?} ? ?@RequestMapping("/showUserList.do") ? ?public ModelAndView showUserList(ModelAndView modelAndView, Pager pager){ ? ? ? ?pager.setPageSize(PagerTools.deskBillPagerSize); ? ? ? ?pager.setTotalCount(userService.getTotalCount(pager)); ? ? ? ?pager.count(); ? ? ? ?pager.setList(userService.showUserList(pager)); ? ? ? ?modelAndView.addObject("pager",pager); ? ? ? ?modelAndView.setViewName("/daily/user/userList"); ? ? ? ?return modelAndView; ? ?} ? ?@RequestMapping("/delUserById.do") ? ?@ResponseBody ? ?public Object delUserById(User user){ ? ? ? ?return JSON.toJSONString(userService.delUserById(user)); ? ?} ? ?@RequestMapping("/updateUser.do") ? ?@ResponseBody ? ?public Object updateUser(User user){ ? ? ? ?return JSON.toJSONString(userService.updateUser(user)); ? ?} ? ?@RequestMapping("/loadUserInfoById.do") ? ?public ModelAndView loadUserInfoById(ModelAndView modelAndView,Pager pager){ ? ? ? ?pager.setPageSize(1); ? ? ? ?pager.setTotalCount(userService.getTotalCount(pager)); ? ? ? ?pager.count(); ? ? ? ?modelAndView.addObject("user",userService.showUserList(pager).get(0)); ? ? ? ?modelAndView.setViewName("/daily/user/updateUser"); ? ? ? ?return modelAndView; ? ?} ? ?@ResponseBody ? ?@RequestMapping("/userIsExist.do") ? ?public Object userIsExist(User user){ ? ? ? ?System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~"); ? ? ? ?System.out.println(user.getIdentity()+user.getUserCode()+user.getPhone()); ? ? ? ?System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~"); ? ? ? ?int phoneFlag=-1; ? ? ? ?int identityFlag=-1; ? ? ? ?int userCodeFlag=-1; ? ? ? ?if(user.getUserCode()!=null && !user.getUserCode().equals("")){ ? ? ? ? ? ?userCodeFlag=userService.userIsExist(user); ? ? ? ?} ? ? ? ?if(user.getIdentity()!=null && !"".equals(user.getIdentity())){ ? ? ? ? ? ?identityFlag=userService.userIsExist(user); ? ? ? ?} ? ? ? ?if(user.getPhone()!=null && !"".equals(user.getPhone())){ ? ? ? ? ? ?phoneFlag=userService.userIsExist(user); ? ? ? ?} ? ? ? ?return "{\"userCodeFlag\":\""+userCodeFlag+"\",\"phoneFlag\":\""+phoneFlag+"\",\"identityFlag\":\""+identityFlag+"\"}"; ? ?} }

package controller;import com.alibaba.fastjson.JSON;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.servlet.ModelAndView;import pojo.*;import service.drink.ProviderService;import tools.BillCodeUtil;import tools.PagerTools;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import javax.sound.midi.Soundbank;import java.util.List;@Controllerpublic class DrinkController { ? ?@Autowired ? ?private ProviderService providerService; ? ?@RequestMapping("/drink.html") ? ?public String drink(HttpSession session) { ? ? ? ?if(session.getAttribute("user")==null){//權(quán)限控制 ? ? ? ? ? ?return "redirect:login.html"; ? ? ? ?} ? ? ? ?return "/drink/drink"; ? ?} ? ?; ? ?//加載供應(yīng)下拉列表 ? ?@RequestMapping("/loadProviderSelect.do") ? ?@ResponseBody ? ?public Object loadProviderSelect() { ? ? ? ?return JSON.toJSONString(providerService.getProvider()); ? ?} ? ?; ? ?//加載進(jìn)貨信息 ? ?@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; ? ?} ? ?//加載進(jìn)貨信息 ? ?@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刪除進(jìn)貨信息 ? ?@RequestMapping("/delDrinkBill.do") ? ?@ResponseBody ? ?public Object delDrinkBill(@RequestParam(required = false) String id) { ? ? ? ?providerService.delDrinkSellBill(id); ? ? ? ?return JSON.toJSONString(providerService.delDrinkBill(id)); ? ?} ? ?//del刪除銷售信息 ? ?@RequestMapping("/delDrinkSellBill.do") ? ?@ResponseBody ? ?public Object delDrinkSellBill(@RequestParam(required = false) String id) { ? ? ? ?return JSON.toJSONString(providerService.delDrinkSellBill(id)); ? ?} ? ?//更新進(jìn)貨信息 ? ?@RequestMapping("/updateDrinkBill.do") ? ?@ResponseBody ? ?public Object delDrinkBill(Drinkbill drinkbill) { ? ? ? ?drinkbill.setIsPay(2); ? ? ? ?return JSON.toJSONString(providerService.updateDrinkBill(drinkbill)); ? ?} ? ?; ? ?//添加進(jìn)貨信息 ? ?@RequestMapping("/addDrinkBill.do") ? ?@ResponseBody ? ?public Object addDrinkBill(Drinkbill drinkbill, DrinkSellBill drinkSellBill) { ? ? ? ?String drinkBillCode = BillCodeUtil.getBillCode(); ? ? ? ?drinkbill.setDrinbillCode(drinkBillCode); ? ? ? ?int addDrinkBillFlag = providerService.addDrinkBill(drinkbill); ? ? ? ?drinkSellBill.setDrinkbillId(drinkbill.getId()); ? ? ? ?drinkSellBill.setDrinkBillCode(drinkBillCode); ? ? ? ?int addDrinkSellBillFlag = providerService.addDrinkSellBill(drinkSellBill); ? ? ? ?return "{\"addDrinkBillFlag\":\"" + addDrinkBillFlag + "\",\"addDrinkSellBillFlag\":\"" + addDrinkSellBillFlag + "\"}"; ? ?} ? ?//加載銷售信息 ? ?@RequestMapping("/loadDrinkSellBill.do") ? ?@ResponseBody ? ?public ModelAndView loadDrinkSellBill(ModelAndView modelAndView, DrinkBillPager pager) { ? ? ? ?int totalCount = providerService.getDrinkSellBillCount(pager); ? ? ? ?if (totalCount != 0) { ? ? ? ? ? ?pager.setTotalCount(totalCount); ? ? ? ?} else { ? ? ? ? ? ?pager.setTotalCount(1); ? ? ? ?} ? ? ? ?pager.setPageSize(PagerTools.drinkBillPagerSize); ? ? ? ?pager.count(); ? ? ? ?pager.setList(providerService.getDrinkSellBill(pager)); ? ? ? ?modelAndView.addObject("pager", pager); ? ? ? ?modelAndView.setViewName("/drink/sellList"); ? ? ? ?return modelAndView; ? ?} ? ?//加載銷售信息 ? ?@RequestMapping("/loadSuplusDrinkBill.do") ? ?@ResponseBody ? ?public ModelAndView loadSuplusDrinkBill(ModelAndView modelAndView, DrinkBillPager pager) { ? ? ? ?int totalCount = providerService.getDrinkSellBillCount(pager); ? ? ? ?if (totalCount != 0) { ? ? ? ? ? ?pager.setTotalCount(totalCount); ? ? ? ?} else { ? ? ? ? ? ?pager.setTotalCount(1); ? ? ? ?} ? ? ? ?pager.setPageSize(PagerTools.drinkBillPagerSize); ? ? ? ?pager.count(); ? ? ? ?pager.setList(providerService.getSuplusDrinkBill(pager)); ? ? ? ?modelAndView.addObject("pager", pager); ? ? ? ?modelAndView.setViewName("/drink/suplusDrinkBillList"); ? ? ? ?return modelAndView; ? ?} ? ?//添加供應(yīng)商 ? ?@RequestMapping("/addProvider.do") ? ?@ResponseBody ? ?public Object addProvider(Provider provider){ ? ? ? ?return JSON.toJSONString(providerService.addProvider(provider)); ? ?} ? ?//驗證供應(yīng)商是否存在 ? ?@RequestMapping("/isProExist.do") ? ?@ResponseBody ? ?public Object isProExist(@RequestParam(required = false) String proName){ ? ? ? ?return JSON.toJSONString(providerService.isProExist(proName)); ? ?} ? ?//加載供應(yīng)商列表 ? ?@RequestMapping("/showProviderList.do") ? ?public ModelAndView showProviderList(ModelAndView modelAndView,Pager pager){ ? ? ? ?pager.setTotalCount(providerService.getTotalCount(pager)); ? ? ? ?pager.setPageSize(3); ? ? ? ?pager.count(); ? ? ? ?if("".equals(pager.getOpr()) || pager.getOpr()==null){ ? ? ? ? ? ?modelAndView.addObject("provider",providerService.getProviderList(pager).get(0)); ? ? ? ? ? ?modelAndView.setViewName("daily/provider/updateProvider"); ? ? ? ?}else{ ? ? ? ? ? ?pager.setList(providerService.getProviderList(pager)); ? ? ? ? ? ?modelAndView.setViewName("daily/provider/providerList"); ? ? ? ? ? ?modelAndView.addObject("pager",pager); ? ? ? ?} ? ? ? ?return modelAndView; ? ?} ? ?//刪除供應(yīng)商 ? ?@RequestMapping("/delProviderById.do") ? ?@ResponseBody ? ?public Object delProviderById(Pager pager){ ? ? ? ?return JSON.toJSONString(providerService.delProviderById(pager)); ? ?} ? ?//更改供應(yīng)商 ? ?@RequestMapping("/updateProvider.do") ? ?@ResponseBody ? ?public Object updateProvider(Provider provider){ ? ? ? ?return JSON.toJSONString(providerService.updateProvider(provider)); ? ?} }

package controller;import com.alibaba.fastjson.JSON;import org.apache.commons.io.FilenameUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.servlet.ModelAndView;import pojo.Dish;import pojo.Pager;import pojo.dish.Dishes;import service.dish.DishService;import tools.BillCodeUtil;import tools.PagerTools;import tools.RedisUtil;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.List;@Controllerpublic class DishController { ? ?@Autowired ? ?private DishService dishService; ? ?@Resource(name = "redisUtil") ? ?private RedisUtil redisUtil; ? ?@ResponseBody ? ?@RequestMapping(value = "/addDish.do", produces = "application/json;charset=utf-8") ? ?public Object addDish(Dish dish, @RequestParam(required = false) MultipartFile file, ? ? ? ? ? ? ? ? ? ? ? ? ?HttpServletRequest request) { ? ? ? ?boolean addFlag = false;//添加標(biāo)記 ? ? ? ?String fifleFlag = null;//文件上傳狀態(tài)標(biāo)記 ? ? ? ?System.out.println("addDish~~~~~~~~~~~~~~~~~~~~~~~"); ? ? ? ?System.out.println("~~~~~~~~~~~~~~~~~~~dishName:" + dish.getDishName()); ? ? ? ?if (!file.isEmpty()) { ? ? ? ? ? ?String path = request.getSession().getServletContext().getRealPath("assets" + File.separator + "img");//獲取/statics/upload的地址 ? ? ? ? ? ?System.out.println("存儲地址:" + path); ? ? ? ? ? ?String oldFileName = file.getOriginalFilename();//獲取原文件名 ? ? ? ? ? ?System.out.println("原文件名:" + oldFileName); ? ? ? ? ? ?String newFileName = BillCodeUtil.getBillCode() + "_"+oldFileName;//新文件名 ? ? ? ? ? ?String prefix = FilenameUtils.getExtension(oldFileName);//獲取文件后綴,對后綴進(jìn)行判斷,過濾不符合條件的文件 ? ? ? ? ? ?System.out.println("~~~文件類型:" + prefix + "~~~"); ? ? ? ? ? ?System.out.println("~~~文件大?。?#34; + file.getSize() + "~~~"); ? ? ? ? ? ? ? if (file.getSize() < PagerTools.maxFileSize) { ? ? ? ? ? ? ? ? ? ?System.out.println("~~~~~~~~~文件大小驗證通過~~~~~~~~~~~"); ? ? ? ? ? ? ? ? ? ?try { ? ? ? ? ? ? ? ? ? ? ? ?file.transferTo(new File(path + File.separator +newFileName)); ? ? ? ? ? ? ? ? ? ? ? ?System.out.println("上傳成功"); ? ? ? ? ? ? ? ? ? ? ? ?dish.setFileName(newFileName);//將新文件名保存在對象中 ? ? ? ? ? ? ? ? ? ? ? ?addFlag = dishService.addDish(dish);//添加至數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ?System.out.println("菜品" + dish.getDishName() + "添加成功"); ? ? ? ? ? ? ? ? ? ?} catch (IllegalStateException e) { ? ? ? ? ? ? ? ? ? ? ? ?e.printStackTrace(); ? ? ? ? ? ? ? ? ? ?} catch (IOException e) { ? ? ? ? ? ? ? ? ? ? ? ?e.printStackTrace(); ? ? ? ? ? ? ? ? ? ?} ? ? ? ? ? ? ? ?} else { ? ? ? ? ? ? ? ? ? ?fifleFlag = "圖片不能大于500KB"; ? ? ? ? ? ? ? ?} ? ? ? ?} ? ? ? ?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");//不存在該菜品 ? ?} ? ?//加載菜品列表 ? ?@ResponseBody ? ?@RequestMapping("/dishList.do") ? ?public ModelAndView dishList(Pager pager, ModelAndView modelAndView, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @RequestParam(required = false) String dishName) { ? ? ? ?if (dishName == null || "".equals(dishName)) {//如果沒有輸入查詢名字則當(dāng)作opr=allDish ? ? ? ? ? ?pager.setOpr("allDish"); ? ? ? ?} ? ? ? ?modelAndView.setViewName("/daily/dish/dishList"); ? ? ? ?Dishes dishes = Dishes.getDishes(); ? ? ? ?pager.setPageSize(PagerTools.delDishListPagerSize); ? ? ? ?if (dishes.getAllDishCount() == 0) { ? ? ? ? ? ?if(redisUtil.getList("allDishes")==null){ ? ? ? ? ? ? ? ?redisUtil.addList("allDishes",dishService.getDish()); ? ? ? ? ? ?} ? ? ? ? ? ?dishes.setAllDish(redisUtil.getList("allDishes")); ? ? ? ?} ? ? ? ?pager.setTotalCount(dishes.getAllDishCount()); ? ? ? ?if ("serchDish".equals(pager.getOpr())) {//優(yōu)先查詢 ? ? ? ? ? ?pager.setPageSize(dishes.getAllDishCount());//搜索時把所有菜品全部查出 ? ? ? ? ? ?System.out.println("~~~~~~~~~~~~~~~~~~~~~~" + dishName); ? ? ? ?} ? ? ? ?pager.count(); ? ? ? ?List<Dish> list = dishes.getAllDish(pager); ? ? ? ?if ("serchDish".equals(pager.getOpr())) {//優(yōu)先查詢 ? ? ? ? ? ?List<Dish> serchList = new ArrayList<Dish>(); ? ? ? ? ? ?if (dishName != null && !"".equals(dishName)) { ? ? ? ? ? ? ? ?System.out.println("~~~~~~~~查找相同菜品的數(shù)據(jù)~~~~~~~~~~"); ? ? ? ? ? ? ? ?for (Dish dish : list) { ? ? ? ? ? ? ? ? ? ?if(dish.getDishName().contains(dishName)){ ? ? ? ? ? ? ? ? ? ? ? ?System.out.println("~~~~~~~~~~~找到與"+dishName+"相似的菜品~~~~~~~~~~~"); ? ? ? ? ? ? ? ? ? ? ? ?serchList.add(dish); ? ? ? ? ? ? ? ? ? ?} ? ? ? ? ? ? ? ?} ? ? ? ? ? ? ? ?pager.setList(serchList); ? ? ? ? ? ?} ? ? ? ?} else { ? ? ? ? ? ?pager.setList(list); ? ? ? ?} ? ? ? ?modelAndView.addObject("pager", pager); ? ? ? ?return modelAndView; ? ?} ? ?//ajax刪除菜品 ? ?@ResponseBody ? ?@RequestMapping("/delDishFromMenu.do") ? ?public Object delDish(@RequestParam(required = false)String id){ ? ? ? ?System.out.println("~~~~~~~~~~~~~~開始刪除Dish~~~~~~~~~~~~~~~"); ? ? ? ?boolean delFlag=false; ? ? ? ?System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~id="+id); ? ? ? ?if(id!=null && !"".equals(id)){ ? ? ? ? ? ?System.out.println("~~~~~~~~~~~~~~~進(jìn)入刪除~~~~~~~~~~~~~~~~"); ? ? ? ? ? ?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);//刪除失敗 ? ?} }



五,項目總結(jié)

? ?項目功能完整,運行無誤,適合做畢業(yè)設(shè)計使用?



餐廳收銀系統(tǒng)|基于SSM實現(xiàn)餐廳收銀系統(tǒng)的評論 (共 條)

分享到微博請遵守國家法律
南安市| 南木林县| 贵定县| 宁化县| 宁晋县| 镇平县| 绥芬河市| 泗阳县| 唐河县| 新宁县| 莎车县| 宁远县| 自治县| 苏尼特右旗| 广安市| 西华县| 勐海县| 通化县| 临澧县| 永丰县| 泽州县| 台湾省| 章丘市| 灯塔市| 古丈县| 连云港市| 图木舒克市| 忻州市| 曲周县| 海原县| 含山县| 弥勒县| 诏安县| 饶河县| 河源市| 丹江口市| 镇江市| 本溪| 临潭县| 达州市| 大宁县|