作者主页:夜未央5788
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
用于餐厅的收银管理系统,包含了四个模块
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

- @Controller
- public class DeskController {
- @Autowired
- private DeskService deskService;
- @Resource(name="redisUtil")
- private RedisUtil redisUtil;
- @Autowired
- private DishMapper dishMapper;
-
- //显示桌位列表页面
- @RequestMapping(value="/desklist.html")
- public String showDeskList(Model model, HttpSession session, @RequestParam(required=false)String show){
- if(session.getAttribute("user")==null){//权限控制
- return "redirect:login.html";
- }
- List
desks=deskService.getDesks(); - model.addAttribute("desks", desks);
- if(!"desk".equals(show)){
- return "redirect:desklist.html?show=desk";
- }else{
- return "/desk/desklist";
- }
- }
-
- //桌位详情页面
- @RequestMapping(value="/deskinfo.html")
- public String showDeskInfo(@RequestParam(required=false)String id,Model model,HttpSession session){
- if(session.getAttribute("user")==null){//权限控制
- return "redirect:login.html";
- }
- Desk desk=null;
- int status=0;
- String deskCode=null;
- if(id!=null && id!=""){
- desk=deskService.getDeskById(id);
- }
- if(desk!=null){
- status=desk.getStatus();
- deskCode=desk.getDeskCode();
- }
- if(status==1){//如果桌位状态为空
- if(deskCode!=null && deskCode!=""){//传过来的桌位编号不为空时
- redisUtil.del(deskCode);//删除缓存内的桌位菜单信息
- }
- }else if(status==2){//如果桌位状态为未买单
- if(deskCode!=null && deskCode!=""){//传过来的桌位编号不为空时
- List
deskDish=redisUtil.getList(deskCode);//从缓存取出当前桌位的点菜信息 - Double totalMoney=0.0;//总计
- if (deskDish==null || deskDish.size()==0) {
- deskDish=new ArrayList
(); - redisUtil.addList(deskCode, deskDish);
- }
- for (int i = 0; i < deskDish.size(); i++) {
- if(deskDish.get(i).getCost()!=null){
- totalMoney+=deskDish.get(i).getCost();
- }
- }
- model.addAttribute("totalMoney", totalMoney);
- model.addAttribute("deskDish", deskDish);
- }
- }
- List dishes=redisUtil.getList("allDishes");//先从缓存中查询
- if(dishes == null || dishes.size()==0){//如果缓存中没有则从数据库查
- dishes=dishMapper.getDish();
- redisUtil.addList("allDishes",dishes);
- }
- Dishes dishesUtil=Dishes.getDishes();//菜单工具类
- dishesUtil.setAllDish(dishes);//将查询出来的菜品放在工具类中
- dishesUtil.count();//格式化菜品(分类)
- //session.setAttribute("dishUtil",dishesUtil);
- model.addAttribute("desk", desk);
- return "/desk/deskinfo";
- }
-
- //ajax点菜
- @RequestMapping("/selectDish.do")
- @ResponseBody
- public Object selectDish(DeskInfo_detail deskInfo_detail,@RequestParam(required=false)String deskCode){
- List
deskDish=redisUtil.getList(deskCode); - if(deskDish==null){
- deskDish=new ArrayList
(); - System.out.println("------------------------------新建桌位号"+deskCode+"菜单列表------------------------------");
- }
- boolean addFlag=true;//标记是否有相同的菜品,默认为true表名不存在相同菜名
- for (int i = 0; i < deskDish.size(); i++) {
- if(deskDish.get(i).getDishName().equals(deskInfo_detail.getDishName())){//如果存在相同的菜品
- int oldNum=deskDish.get(i).getDishNum();//得到原来的数目
- String newContent=deskInfo_detail.getContent();
- int newNum=oldNum+deskInfo_detail.getDishNum();//将新添加的数目和原来的数目相加得到新数目
- deskDish.get(i).setDishNum(newNum);//修改数目
- deskDish.get(i).setCost(newNum*deskDish.get(i).getPrice());//修改小计
- deskDish.get(i).setContent(newContent);
- addFlag=false;//存在相同的,将标记设置为false
- break;
- }
- }
- if(addFlag){//如果不存在相同的菜品,addFlag的值为true
- deskDish.add(deskInfo_detail);
- }
- redisUtil.addList(deskCode, deskDish);//更新缓存
- return JSON.toJSONString(deskDish);
- }
-
- //更改桌位状态
- @RequestMapping("/changeStatus.do")
- @ResponseBody
- public Object changeDeskStatus(Desk desk){
- boolean flag=false;
- if(desk!=null){
- if(desk.getStatus()!=null && desk.getStatus()!=2 ){
- desk.setStatus(2);
- flag=deskService.updateDeskStatus(desk);
- }else{
- return JSON.toJSONString("OK");
- }
- }
- if(flag){
- return JSON.toJSONString("OK");
- }else{
- return JSON.toJSONString("NO");
- }
- }
-
- //更改桌位
- @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
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
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
list=dishes.getAllDish(pager); - pager.setList(list);
- }else if("soup".equals(pager.getOpr())){
- pager.setTotalCount(dishes.getSoupsCount());
- pager.setPageSize(PagerTools.dishMenuPagerSize);
- pager.count();
- List
list=dishes.getSoups(pager); - pager.setList(list);
- }else if("fry".equals(pager.getOpr())){
- pager.setTotalCount(dishes.getFrysCount());
- pager.setPageSize(PagerTools.dishMenuPagerSize);
- pager.count();
- List
list=dishes.getFrys(pager); - pager.setList(list);
- }else if("other".equals(pager.getOpr())){
- pager.setTotalCount(dishes.getOthersCount());
- pager.setPageSize(PagerTools.dishMenuPagerSize);
- pager.count();
- List
list=dishes.getOthers(pager); - pager.setList(list);
- }else if("drink".equals(pager.getOpr())){
- pager.setTotalCount(dishes.getDrinksCount());
- pager.setPageSize(PagerTools.dishMenuPagerSize);
- pager.count();
- List
list=dishes.getDrinks(pager); - pager.setList(list);
- }
- modelAndView.setViewName("/desk/dishMenu/allDish");
- modelAndView.addObject("pager",pager);
- return modelAndView;
- }
-
-
- //桌位维护
- //添加桌位 ajax验证
- @ResponseBody
- @RequestMapping("/deskCodeIsExist.do")
- public Object deskCodeIsExist(@RequestParam(required =false) String deskCode){
- boolean flag=deskService.isExist(deskCode);
- return flag?JSON.toJSONString("1"):JSON.toJSONString("0");
- }
-
- //添加桌位
- @ResponseBody
- @RequestMapping("/addDesk.do")
- public Object addDesk(Desk desk){
- System.out.println("~~~~~~~~~~~~~~~~~~~~~添加桌位:"+desk.getDeskCode()+"~~~~~~~~~~~~~~~~~~~~~");
- boolean flag=deskService.addDesk(desk);
- if(flag){
- System.out.println("~~~~~~~~~~~~~~~~~~~~~添加桌位:"+desk.getDeskCode()+"成功~~~~~~~~~~~~~~~~~~~~~");
- }else{
- System.out.println("~~~~~~~~~~~~~~~~~~~~~添加桌位:"+desk.getDeskCode()+"失败~~~~~~~~~~~~~~~~~~~~~");
- }
- return flag?JSON.toJSONString("1"):JSON.toJSONString("0");
- }
-
- //ajax分页加载桌位
- @ResponseBody
- @RequestMapping("/ajaxShowDesk.do")
- public ModelAndView ajaxShowDesk(DeskPager pager, ModelAndView modelAndView){
- modelAndView.setViewName("/daily/desk/deskList");
- pager.setPageSize(PagerTools.delDishListPagerSize);
- pager.setTotalCount(deskService.getTotalCount(pager));
- pager.count();
- pager.setList(deskService.getDesksByPager(pager));
- modelAndView.addObject("pager",pager);
- return modelAndView;
- }
-
- //删除桌位
- @ResponseBody
- @RequestMapping("/delDesk.do")
- public Object delDesk(@RequestParam(required=false) String id){
- int data=deskService.delDesk(id);
- return JSON.toJSONString(data);
- }
-
- //更改桌位
- @ResponseBody
- @RequestMapping("/alertDesk.do")
- public Object delDesk(Desk desk){
- boolean data=deskService.updateDesk(desk);
- return JSON.toJSONString(data?"1":"0");
- }
-
-
- }
- @Controller
- public class LoginController {
- @Autowired
- private UserService userService;
-
- //登录页面入口
- @RequestMapping(value="login.html",method=RequestMethod.GET)
- public String showLogin(){
- return "login";
- }
-
- //处理登录
- @RequestMapping(value="login.html",method=RequestMethod.POST)
- public String doLogin(User user,HttpSession session,Model model){
- User logUser=userService.login(user);
- if(logUser!=null){
- session.setAttribute("user", logUser);
- return "redirect:desklist.html?show=desk";
- }else{
- model.addAttribute("error", "账号和密码不匹配");
- return "login";
- }
- }
-
- //处理注销
- @RequestMapping(value="/logout.html")
- public String logout(HttpSession session){
- session.invalidate();
- return "redirect:login.html";
- }
- }
- @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;
- }
-
- //加载进货信息
- @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
drinkBills=providerService.getDrinkBill(pager); - return JSON.toJSONString(drinkBills);
- }
-
- //del删除进货信息
- @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));
- }
-
- //更新进货信息
- @RequestMapping("/updateDrinkBill.do")
- @ResponseBody
- public Object delDrinkBill(Drinkbill drinkbill) {
- drinkbill.setIsPay(2);
- return JSON.toJSONString(providerService.updateDrinkBill(drinkbill));
- }
-
- //添加进货信息
- @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;
- }
-
- //添加供应商
- @RequestMapping("/addProvider.do")
- @ResponseBody
- public Object addProvider(Provider provider){
- return JSON.toJSONString(providerService.addProvider(provider));
- }
- //验证供应商是否存在
- @RequestMapping("/isProExist.do")
- @ResponseBody
- public Object isProExist(@RequestParam(required = false) String proName){
- return JSON.toJSONString(providerService.isProExist(proName));
- }
- //加载供应商列表
- @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;
- }
- //删除供应商
- @RequestMapping("/delProviderById.do")
- @ResponseBody
- public Object delProviderById(Pager pager){
- return JSON.toJSONString(providerService.delProviderById(pager));
- }
- //更改供应商
- @RequestMapping("/updateProvider.do")
- @ResponseBody
- public Object updateProvider(Provider provider){
- return JSON.toJSONString(providerService.updateProvider(provider));
- }
- }
如果也想学习本系统,下面领取。关注并回复:134ssm