基于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);