Sistema de caixa registradora de restaurante | Sistema de caixa registradora de restaurante baseado em SSM

Página inicial do autor: Bússola de Programação

Sobre o autor: Criador de alta qualidade no campo Java, especialista em blogs CSDN, autor convidado de Nuggets, muitos anos de experiência em design de arquitetos, palestrante residente na Tencent Classroom

Conteúdo principal: Projeto Java, design de graduação, modelo de currículo, materiais didáticos, banco de perguntas para entrevistas, assistência técnica mútua

Favoritos, curtidas, não se perca, é bom seguir o autor

Obtenha o código-fonte no final do artigo 

Número do item: BS--XX-091

1. Introdução ambiental

Localidade: Java: jdk1.8

Banco de dados: Mysql: mysql5.7

Servidor de aplicativos: Tomcat: tomcat8.5.31

Ferramentas de desenvolvimento: IDEA ou eclipse

Tecnologia de desenvolvimento: spring+spring mvc+mybatis+bootstrap+jquery

2. Introdução do projeto

Este projeto implementa o sistema de gestão de caixa para restaurantes baseado em SSM, incluindo quatro módulos

1. Módulo de mesa

O módulo de mesa é usado principalmente para gerenciar a mesa, incluindo o processo desde o pedido até o checkout.

Definir o número de pessoas na mesa para 0 pode deixar a mesa atual vazia

2. Módulo de faturamento

O módulo de fatura registra o resumo da fatura de cada dia, e fornece as estatísticas das faturas do ano, mês e dia. data ou intervalo de datas

3. Módulo de manutenção diária

Disponibiliza a função de configuração do fornecedor do menu de mesa do usuário, ou seja,
  ao adicionar, excluir, modificar, conferir e adicionar pratos, ao adicionar bebidas, você pode escolher as bebidas na compra, de modo que, se o cliente pedir a bebida após o checkout, as informações de vendas serão registradas nas informações de vendas no inventário de vinhos

4. Módulo de inventário de vinhos

Veja as informações de compra, venda e estoque de vinho adicionado

Três, exibição do sistema

A seguir são apresentados os módulos operacionais do sistema:

login de usuário

Manutenção de dados—manutenção do prato

Manutenção de Tabelas

Manutenção de conta

Manutenção de conta

mesa aberta

à la carte

A conta, por favor

ver fatura

Ver Consumo de Mesa Única

Em quarto lugar, a exibição do código principal

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;

@Controller
public 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;

@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<Drinkbill> 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));
    }
}
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;

@Controller
public 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;//添加标记
        String fifleFlag = null;//文件上传状态标记
        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);//获取文件后缀,对后缀进行判断,过滤不符合条件的文件
            System.out.println("~~~文件类型:" + prefix + "~~~");
            System.out.println("~~~文件大小:" + 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);//添加至数据库
                        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)) {//如果没有输入查询名字则当作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())) {//优先查询
            pager.setPageSize(dishes.getAllDishCount());//搜索时把所有菜品全部查出
            System.out.println("~~~~~~~~~~~~~~~~~~~~~~" + dishName);
        }
        pager.count();
        List<Dish> list = dishes.getAllDish(pager);
        if ("serchDish".equals(pager.getOpr())) {//优先查询
            List<Dish> serchList = new ArrayList<Dish>();
            if (dishName != null && !"".equals(dishName)) {
                System.out.println("~~~~~~~~查找相同菜品的数据~~~~~~~~~~");
                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("~~~~~~~~~~~~~~~进入删除~~~~~~~~~~~~~~~~");
            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);//删除失败
    }

}

V. Resumo do Projeto

   A função do projeto está completa, a operação está correta e é adequada para design de graduação 

Acho que você gosta

Origin blog.csdn.net/whirlwind526/article/details/130217407
Recomendado
Clasificación