基于javaweb+mysql的ssm+maven超市进销存管理系统(java+ssm+jsp+bootstrap+jquery+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SSM+Maven超市进销存管理系统(java+ssm+jsp+bootstrap+jquery+mysql)
ssm超市进销存管理系统
项目介绍
超市进销存管理系统,主要分为管理员与员工两种角色:管理员主要功能模块有: 进货管理:进货信息、退货信息; 商品信息管理:商品信息、商品类别; 库存管理:库存信息、库存预警、临期产品; 销售管理:销售信息、销售统计、顾客退货办理; 客户信息管理:客户信息; 供应商信息管理:供应商信息; 员工信息管理:员工信息;员工主要功能有: 进货管理:进货信息、退货信息; 商品信息管理:商品信息、商品类别; 库存管理:库存信息、库存预警、临期产品; 销售管理:销售信息、顾客退货办理; 客户信息管理:客户信息; 供应商信息管理:供应商信息;
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA。注:该项目暂不支持Eclipse或者MyEclipse; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
6.数据库:MySql 5.7版本;
技术栈
-
后端:Spring SpringMVC MyBatis
-
前端:JSP+bootstrap+jQuery
使用说明
-
使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
-
将项目中db.properties与spring-mybatis.xml配置文件中的数据库配置改为自己的配置
-
使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;
- 运行项目,在浏览器中输入localhost:8080/chaoshi 登录
注意事项
项目路径必须为localhost:8080/chaoshi,前端代码中已写死,否则会报错;
} // 先判断数据库有没有,有就更新,没有就新增 @RequestMapping("/insert") public String insert(Staff staff,HttpServletRequest request,Model model){ if(null==staffServiceImp.getbyid(staff.getStaffid())) { staffServiceImp.insert(staff); }else { staffServiceImp.update(staff); } return "redirect:getall"; } // 删除 @RequestMapping("/delete") public String delete(String staffid) { staffServiceImp.delete(staffid); return "redirect:getall"; } // 查询所有 @RequestMapping("/getall") public String getall_cus(ModelMap model, @RequestParam(defaultValue="1",required=true,value="pn") Integer pn ) { PageHelper.startPage(pn, 4); List<Staff> staffs= staffServiceImp.getall(); PageInfo<Staff> pageInfo=new PageInfo<Staff>(staffs); model.addAttribute("pageInfo", pageInfo); return "getall_staff"; } //根据条件查询 @RequestMapping("getbyparams") public String getbyparams(@RequestParam(value="staffname",required=false)String staffname,@RequestParam(value="staffid",required=false)String staffid, @RequestParam(defaultValue="1",required=true,value="pn") Integer pn,HttpServletRequest request,Model model ) { PageHelper.startPage(pn, 100); List<Staff> staffs= staffServiceImp.getbyparams(staffid, staffname); PageInfo<Staff> pageInfo=new PageInfo<Staff>(staffs); model.addAttribute("pageInfo", pageInfo); return "getstaffbyparams"; } }
复制
/** * @Des 管理员控制层 */ @Controller @RequestMapping("/manager") public class ManagerController { private Logger logger=Logger.getLogger(ManagerController.class); @Autowired ManagerServiceImp managerServiceImp; @Autowired StaffServiceImp staffServiceImp; @Autowired KcxxServiceImp kcxxServiceImp; @RequestMapping("/login") public String login() { logger.debug("LoginController welcome AppInfoSystem develpor=================="); return "manager/managerlogin"; } @RequestMapping(value="/dologin") public String dologin(@RequestParam String managerid,@RequestParam String pwd, HttpSession session,HttpServletRequest request) { Manager manager=managerServiceImp.getbyid(managerid, pwd); if(manager!=null) { session.setAttribute(Constants.Manager_SESSION, manager); return "redirect:/manager/flatform/main"; }else { request.setAttribute("error", "账号密码不匹配"); return "manager/managerlogin"; } } @RequestMapping(value="/flatform/main") public String main(HttpSession session,HttpServletRequest request) { // 验证是否有session信息,防止非法登录,没有就跳转到登录页面 if(session.getAttribute(Constants.Manager_SESSION)==null) { return "redirect:/manager/login"; } List<Kcxx> kcxx=kcxxServiceImp.kcxxWithProdata(); List<Kcxx> kcxx2=kcxxServiceImp.kcxxWithPronum(); if(!kcxx.isEmpty()||!kcxx2.isEmpty()) { request.setAttribute("msg", "存在预警信息请及时处理"); }else { request.setAttribute("msg", ""); }
复制
return "redirect:getall"; } // 查询所有 @RequestMapping("/getall") public String getall_cus(ModelMap model, @RequestParam(defaultValue="1",required=true,value="pn") Integer pn ) { PageHelper.startPage(pn, 4); List<Staff> staffs= staffServiceImp.getall(); PageInfo<Staff> pageInfo=new PageInfo<Staff>(staffs); model.addAttribute("pageInfo", pageInfo); return "manager/getall_staff"; } //根据条件查询 @RequestMapping("getbyparams") public String getbyparams(@RequestParam(value="staffname",required=false)String staffname,@RequestParam(value="staffid",required=false)String staffid, @RequestParam(defaultValue="1",required=true,value="pn") Integer pn,HttpServletRequest request,Model model ) { PageHelper.startPage(pn, 100); List<Staff> staffs= staffServiceImp.getbyparams(staffid, staffname); PageInfo<Staff> pageInfo=new PageInfo<Staff>(staffs); model.addAttribute("pageInfo", pageInfo); return "manager/getstaffbyparams"; } } /**
复制
if(saleServiceImp.update(sale)) { sale=saleServiceImp.getbyid(sale.getSaleid()); model.addAttribute("sale", sale); return "redirect:getall"; } return null; } // 查询所有 @RequestMapping("/getall") public String getall_cus(ModelMap model, @RequestParam(defaultValue="1",required=true,value="pn") Integer pn ) { PageHelper.startPage(pn, 4); List<Sale> sales= saleServiceImp.getall(); PageInfo<Sale> pageInfo=new PageInfo<Sale>(sales); model.addAttribute("pageInfo", pageInfo); return "manager/getall_sale"; } // 查询单个 @RequestMapping("/getbyid") public String getbyid(String saleid,HttpServletRequest request,Model model) { request.setAttribute("sale", saleServiceImp.getbyid(saleid)); model.addAttribute("sale",saleServiceImp.getbyid(saleid)); return "manager/getsale"; } @RequestMapping("getbyparams") public String getbyparams(HttpServletRequest request,Model model,@RequestParam(value="proid",required=false)String proid, @RequestParam(value="cusid",required=false)String cusid,@RequestParam(value="pname",required=false)String pname, @RequestParam(value="cusname",required=false)String cusname,@RequestParam(defaultValue="1",required=true,value="pn") Integer pn ) { PageHelper.startPage(pn, 100); List<Sale> sale= saleServiceImp.getbyparams(proid, cusid, pname, cusname); PageInfo<Sale> pageInfo=new PageInfo<Sale>(sale); model.addAttribute("pageInfo", pageInfo); return "manager/getsalebyparams"; } @RequestMapping(value="echartsData",method=RequestMethod.POST) @ResponseBody public List<Map<String, Object>> initChart(){ return saleServiceImp.pieData(); } // 跳转到增加页面 @RequestMapping("/toechart")
复制
// 验证是否有session信息,防止非法登录,没有就跳转到登录页面 if(session.getAttribute(Constants.Manager_SESSION)==null) { return "redirect:/manager/login"; } List<Kcxx> kcxx=kcxxServiceImp.kcxxWithProdata(); List<Kcxx> kcxx2=kcxxServiceImp.kcxxWithPronum(); if(!kcxx.isEmpty()||!kcxx2.isEmpty()) { request.setAttribute("msg", "存在预警信息请及时处理"); }else { request.setAttribute("msg", ""); } return "manager/main"; } @RequestMapping(value="/logout") public String logout(HttpSession session) { // 退出清除esison session.removeAttribute(Constants.Staff_SESSION); session.invalidate(); return "redirect:/manager/login"; } @RequestMapping("/getbyid") public String grxx(String managerid,HttpServletRequest request,Model model){ request.setAttribute("manager", managerServiceImp.getmanager(managerid)); model.addAttribute("manager",managerServiceImp.getmanager(managerid)); return "manager/grxx"; } @RequestMapping("/update") public String update(Manager manager,HttpServletRequest request,Model model){ if(managerServiceImp.update(manager)) { manager=managerServiceImp.getmanager(manager.getManagerid()); model.addAttribute("manager", manager); return "redirect:/manager/login"; } return null; } // 跳转到修改个人信息页面 @RequestMapping("/toupdate") public String editmanager(Manager manager,HttpServletRequest request,Model model){ model.addAttribute("manager", managerServiceImp.getmanager(manager.getManagerid())); return "manager/editmanager";
复制
List<Sale> sale= saleServiceImp.getbyparams(proid, cusid, pname, cusname); PageInfo<Sale> pageInfo=new PageInfo<Sale>(sale); model.addAttribute("pageInfo", pageInfo); return "manager/getsalebyparams"; } @RequestMapping(value="echartsData",method=RequestMethod.POST) @ResponseBody public List<Map<String, Object>> initChart(){ return saleServiceImp.pieData(); } // 跳转到增加页面 @RequestMapping("/toechart") public String toechart(){ return "manager/echart"; } } /** * @Des 供应商控制器 */ /** * @Des 客户类别控制器 */ @Controller
复制
return "redirect:getall"; } // 跳转到增加页面 @RequestMapping("/toadd") public String toadd (){ return "manager/addckretire"; } @RequestMapping("/insert") // 先判断数据库有没有,有就更新,没有就新增 public String insert (Ckretire ckretire,HttpServletRequest request,Model model){ if(null==ckretireServiceImp.getbyid(ckretire.getInid())) { ckretireServiceImp.insert(ckretire); }else { ckretireServiceImp.update(ckretire); } return "redirect:getall"; } @InitBinder protected void init(HttpServletRequest request, ServletRequestDataBinder binder) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); dateFormat.setLenient(false); binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false)); } // 按条件获取所有进货信息 @RequestMapping("getbyparams") public String getbyparams(HttpServletRequest request,Model model,@RequestParam(value="proid",required=false)String proid, @RequestParam(value="inid",required=false)String inid,@RequestParam(value="pname",required=false)String pname, @RequestParam(value="retdate",required=false)String retdate,@RequestParam(defaultValue="1",required=true,value="pn") Integer pn ) { PageHelper.startPage(pn, 100); List<Ckretire> ckin= ckretireServiceImp.getbyparams(proid, inid, pname, retdate); PageInfo<Ckretire> pageInfo=new PageInfo<Ckretire>(ckin); model.addAttribute("pageInfo", pageInfo); return "manager/getckretirebyparams"; } // 根据id查询单个信息 @RequestMapping("/getckret") @ResponseBody public Ckin ckretire(String inid,HttpServletRequest request,Model model){ Ckin ckretire=new Ckin(); ckretire= ckinServiceImp.getbyid(inid); return ckretire;
复制
* @Des 客户类别控制器 */ @Controller @RequestMapping("/staff/flatform/custom") public class CustomController { @Autowired CustomServiceImp customServiceImp; // 跳转到增加页面 @RequestMapping("/toadd") public String toaddCustom(){ return "addcus"; } // 跳转到修改页面 @RequestMapping("/toupdate") public String editProduct(Custom custom,HttpServletRequest request,Model model){ model.addAttribute("custom", customServiceImp.getByid(custom.getCusid())); return "editcus"; } // 先判断数据库有没有,有就更新,没有就新增 @RequestMapping("/insert") public String insert(Custom custom,HttpServletRequest request,Model model){ if(null==customServiceImp.getByid(custom.getCusid())) { customServiceImp.insert(custom); }else { customServiceImp.update(custom); } return "redirect:getall"; } // 删除 @RequestMapping("/delete") public String delete(String cusid) { customServiceImp.delete(cusid); return "redirect:getall";
复制
// 跳转到增加页面 @RequestMapping("/toadd") public String toaddsupply(){ return "manager/addsup"; } // 跳转到修改页面 @RequestMapping("/toupdate") public String editProduct(Supply supply,HttpServletRequest request,Model model){ model.addAttribute("supply", supplyMapperServiceImp.getbyid(supply.getSupid())); return "manager/editsup"; } // 先判断数据库有没有,有就更新,没有就新增 @RequestMapping("/insert") public String insert(Supply supply,HttpServletRequest request,Model model){ if(null==supplyMapperServiceImp.getbyid(supply.getSupid())) { supplyMapperServiceImp.insert(supply); }else { supplyMapperServiceImp.update(supply); } return "redirect:getall"; } // 删除 @RequestMapping("/delete") public String delete(String supid) { supplyMapperServiceImp.delete(supid); return "redirect:getall"; } // 修改 @RequestMapping("/update") public String update(Supply supply,HttpServletRequest request,Model model){ if(supplyMapperServiceImp.update(supply)) { supply=supplyMapperServiceImp.getbyid(supply.getSupid()); model.addAttribute("supply", supply); return "redirect:getall"; } return null; } // 查询所有 @RequestMapping("/getall") public String getall_cus(ModelMap model, @RequestParam(defaultValue="1",required=true,value="pn") Integer pn ) { PageHelper.startPage(pn, 4); List<Supply> supplys= supplyMapperServiceImp.getall();
复制
/** * @Des */ @Controller @RequestMapping("/staff") public class StaffController { private Logger logger=Logger.getLogger(StaffController.class); @Autowired StaffServiceImp staffServiceImp; @RequestMapping("/login") public String login() { logger.debug("LoginController welcome AppInfoSystem develpor=================="); return "stafflogin"; } @RequestMapping(value="/dologin") public String dologin(@RequestParam String staffid,@RequestParam String pwd, HttpSession session,HttpServletRequest request) { Staff staff=staffServiceImp.getStaff(staffid, pwd); if(staff!=null) { session.setAttribute(Constants.Staff_SESSION, staff); return "redirect:/staff/flatform/main"; }else { request.setAttribute("error", "账号密码不匹配"); return "stafflogin"; } } @RequestMapping(value="/flatform/main") public String main(HttpSession session) { // 验证是否有session信息,防止非法登录,没有就跳转到登录页面 if(session.getAttribute(Constants.Staff_SESSION)==null) { return "redirect:/staff/login"; } return "main"; } @RequestMapping(value="/logout") public String logout(HttpSession session) { // 退出清除esison session.removeAttribute(Constants.Staff_SESSION); return "stafflogin"; } @RequestMapping("/getbyid") public String grxx(String staffid,HttpServletRequest request,Model model){ request.setAttribute("staff", staffServiceImp.getbyid(staffid)); model.addAttribute("staff",staffServiceImp.getbyid(staffid));
复制
public String getbyparams(@RequestParam(value="staffname",required=false)String staffname,@RequestParam(value="staffid",required=false)String staffid, @RequestParam(defaultValue="1",required=true,value="pn") Integer pn,HttpServletRequest request,Model model ) { PageHelper.startPage(pn, 100); List<Staff> staffs= staffServiceImp.getbyparams(staffid, staffname); PageInfo<Staff> pageInfo=new PageInfo<Staff>(staffs); model.addAttribute("pageInfo", pageInfo); return "manager/getstaffbyparams"; } } /** * @Des */ @Controller @RequestMapping("/manager/flatform/kcxx") public class MKcxxController { @Autowired KcxxServiceImp kcxxServiceImp;
复制
/** * @Des */ @Controller @RequestMapping("/staff/flatform/product") public class ProductController { @Autowired ProductServiceImp productServiceImp; // 获取所有商品信息 @RequestMapping("getlist") public String getlist(ModelMap model, @RequestParam(defaultValue="1",required=true,value="pn") Integer pn ) { PageHelper.startPage(pn, 4); List<Product> products= productServiceImp.getlist(); PageInfo<Product> pageInfo=new PageInfo<Product>(products); model.addAttribute("pageInfo", pageInfo); return "getlist"; } // 根据id查询单个商品信息 @RequestMapping("/getpro") public String getpro(String proid,HttpServletRequest request,Model model){ request.setAttribute("product", productServiceImp.selectByPrimaryKey(proid)); model.addAttribute("product",productServiceImp.selectByPrimaryKey(proid)); return "getpro"; } // 根据条件查询 @RequestMapping("/getprobyparams") public String getbyparams(HttpServletRequest request,Model model,@RequestParam(value="proid",required=false)String proid, @RequestParam(value="supname",required=false)String supname,@RequestParam(value="pname",required=false)String pname, @RequestParam(value="protype",required=false)String protype,@RequestParam(defaultValue="1",required=true,value="pn") Integer pn ){ PageHelper.startPage(pn, 100); List<Product> products= productServiceImp.getbyparams(proid, supname, pname, protype); PageInfo<Product> pageInfo=new PageInfo<Product>(products); model.addAttribute("pageInfo", pageInfo); return "getprobyparams"; }
复制
/** * @Des */ @Controller @RequestMapping("/manager/flatform/kcxx") public class MKcxxController { @Autowired KcxxServiceImp kcxxServiceImp; // 跳转到增加页面 @RequestMapping("/toadd") public String toadd(){ return "manager/addkcxx"; } // 跳转到修改页面 @RequestMapping("/toupdate") public String editProduct(Kcxx kcxx,HttpServletRequest request,Model model){ model.addAttribute("kcxx", kcxxServiceImp.getbyid(kcxx.getProid())); return "manager/editkcxx"; } // 先判断数据库有没有,有就更新,没有就新增 @RequestMapping("/insert") public String insert(Kcxx kcxx,HttpServletRequest request,Model model){ if(null==kcxxServiceImp.getbyid(kcxx.getProid())) { kcxxServiceImp.insert(kcxx);
复制
/** * @Des */ @Controller @RequestMapping("/manager/flatform/cusretire") public class MCusRetireController { @Autowired CusRetireServiceImp cusRetireServiceImp; @Autowired SaleServiceImp saleServiceImp; // 获取所有退货信息 @RequestMapping("getall") public String getlist(ModelMap model, @RequestParam(defaultValue="1",required=true,value="pn") Integer pn ) { PageHelper.startPage(pn, 4); List<CusRetire> CusRetire= cusRetireServiceImp.getall(); PageInfo<CusRetire> pageInfo=new PageInfo<CusRetire>(CusRetire);
复制
@Controller @RequestMapping("/staff/flatform/kcxx") public class KcxxController { @Autowired KcxxServiceImp kcxxServiceImp; // 跳转到增加页面 @RequestMapping("/toadd") public String toadd(){ return "addkcxx"; } // 跳转到修改页面 @RequestMapping("/toupdate") public String editProduct(Kcxx kcxx,HttpServletRequest request,Model model){ model.addAttribute("kcxx", kcxxServiceImp.getbyid(kcxx.getProid())); return "editkcxx"; } // 先判断数据库有没有,有就更新,没有就新增 @RequestMapping("/insert") public String insert(Kcxx kcxx,HttpServletRequest request,Model model){ if(null==kcxxServiceImp.getbyid(kcxx.getProid())) { kcxxServiceImp.insert(kcxx); }else { kcxxServiceImp.update(kcxx); } return "redirect:getall"; } // 删除 @RequestMapping("/delete") public String delete(String proid) { kcxxServiceImp.delete(proid); return "redirect:getall"; } // 修改 @RequestMapping("/update") public String update(Kcxx kcxx,HttpServletRequest request,Model model){ if(kcxxServiceImp.update(kcxx)) { kcxx=kcxxServiceImp.getbyid(kcxx.getProid()); model.addAttribute("kcxx", kcxx); return "redirect:getall"; } return null; }
复制
/** * @Des */ @Controller @RequestMapping("/staff/flatform/product") public class ProductController { @Autowired ProductServiceImp productServiceImp; // 获取所有商品信息 @RequestMapping("getlist") public String getlist(ModelMap model, @RequestParam(defaultValue="1",required=true,value="pn") Integer pn ) { PageHelper.startPage(pn, 4); List<Product> products= productServiceImp.getlist(); PageInfo<Product> pageInfo=new PageInfo<Product>(products); model.addAttribute("pageInfo", pageInfo); return "getlist"; } // 根据id查询单个商品信息 @RequestMapping("/getpro") public String getpro(String proid,HttpServletRequest request,Model model){ request.setAttribute("product", productServiceImp.selectByPrimaryKey(proid)); model.addAttribute("product",productServiceImp.selectByPrimaryKey(proid)); return "getpro"; } // 根据条件查询 @RequestMapping("/getprobyparams") public String getbyparams(HttpServletRequest request,Model model,@RequestParam(value="proid",required=false)String proid, @RequestParam(value="supname",required=false)String supname,@RequestParam(value="pname",required=false)String pname, @RequestParam(value="protype",required=false)String protype,@RequestParam(defaultValue="1",required=true,value="pn") Integer pn ){ PageHelper.startPage(pn, 100); List<Product> products= productServiceImp.getbyparams(proid, supname, pname, protype); PageInfo<Product> pageInfo=new PageInfo<Product>(products); model.addAttribute("pageInfo", pageInfo); return "getprobyparams"; } @RequestMapping("editpro") public String editProduct(Product pro,HttpServletRequest request,Model model){ model.addAttribute("product", productServiceImp.selectByPrimaryKey(pro.getProid())); return "editpro";
复制
/** * @Des 顾客退货 */ @Controller @RequestMapping("/manager/flatform/ckretire") public class MCkretireController { @Autowired CkretireServiceImp ckretireServiceImp; @Autowired CkinServiceImp ckinServiceImp; // 获取所有退货信息 @RequestMapping("getall") public String getlist(ModelMap model, @RequestParam(defaultValue="1",required=true,value="pn") Integer pn ) { PageHelper.startPage(pn, 4); List<Ckretire> ckretire= ckretireServiceImp.getall(); PageInfo<Ckretire> pageInfo=new PageInfo<Ckretire>(ckretire);
复制