基于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 "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";
}
/**
* @Des
*/
@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";
}
// 先判断数据库有没有,有就更新,没有就新增
}
/**
* @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);
model.addAttribute("pageInfo", pageInfo);
return "manager/getall_ckretire";
}
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";
}
// 跳转到增加页面
@RequestMapping("/toadd")
public String toadd(){
return "manager/addstaff";
public String getbyid(String proid,HttpServletRequest request,Model model) {
request.setAttribute("kcxx", kcxxServiceImp.getbyid(proid));
model.addAttribute("kcxx",kcxxServiceImp.getbyid(proid));
return "getall";
}
@RequestMapping("/kcxxWithPro")
public String kcxxWithPro(String proid,HttpServletRequest request,Model model) {
Kcxx kcxx=kcxxServiceImp.kcxxWithPro(proid);
request.setAttribute("kcxx", kcxx);
model.addAttribute("kcxx",kcxx);
return "getkcxx";
}
// 库存预警
@RequestMapping("/kcxxWithPronum")
public String kcxxWithPronum(ModelMap model,
@RequestParam(defaultValue="1",required=true,value="pn") Integer pn
) {
PageHelper.startPage(pn, 4);
List<Kcxx> kcxxs= kcxxServiceImp.kcxxWithPronum();
PageInfo<Kcxx> pageInfo=new PageInfo<Kcxx>(kcxxs);
model.addAttribute("pageInfo", pageInfo);
return "getkcxx_num";
}
// 临期产品
@RequestMapping("/kcxxWithProdata")
public String kcxxWithProdata(ModelMap model,
@RequestParam(defaultValue="1",required=true,value="pn") Integer pn
) {
PageHelper.startPage(pn, 4);
List<Kcxx> kcxxs= kcxxServiceImp.kcxxWithProdata();
PageInfo<Kcxx> pageInfo=new PageInfo<Kcxx>(kcxxs);
model.addAttribute("pageInfo", pageInfo);
return "getkcxx_data";
}
@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="pname",required=false)String pname,@RequestParam(defaultValue="1",required=true,value="pn") Integer pn
) {
PageHelper.startPage(pn, 100);
List<Kcxx> ckin= kcxxServiceImp.getbyparams(proid,pname);
PageInfo<Kcxx> pageInfo=new PageInfo<Kcxx>(ckin);
model.addAttribute("pageInfo", pageInfo);
@RequestMapping("/deletepro")
public String deletetepro(String proid,HttpServletRequest request,Model model){
productServiceImp.deleteByPrimaryKey(proid);
return "redirect:getlist";
}
// 跳转到增加页面
@RequestMapping("/toaddpro")
public String toaddpro(){
return "addpro";
}
@RequestMapping("/insertpro")
// 先判断数据库有没有,有就更新,没有就新增
public String insertpro(Product product,HttpServletRequest request,Model model){
if(null==productServiceImp.selectByPrimaryKey(product.getProid())) {
productServiceImp.insert(product);
return "redirect:getlist";
}else {
request.setAttribute("msg", "新增失败,系统中存在该id的商品,请重新输入!");
return "addpro";
}
}
@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("/getproduct")
@ResponseBody
public Product getproduct(String proid,HttpServletRequest request,Model model){
Product product= new Product();
product=productServiceImp.selectByPrimaryKey(proid);
return product;
}
}
// 跳转到增加页面
@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("/update")
public String update(Custom custom,HttpServletRequest request,Model model){
if(customServiceImp.update(custom)) {
custom=customServiceImp.getByid(custom.getCusid());
model.addAttribute("custom", custom);
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);
public String kcxxWithPronum(ModelMap model,
@RequestParam(defaultValue="1",required=true,value="pn") Integer pn
) {
PageHelper.startPage(pn, 4);
List<Kcxx> kcxxs= kcxxServiceImp.kcxxWithPronum();
PageInfo<Kcxx> pageInfo=new PageInfo<Kcxx>(kcxxs);
model.addAttribute("pageInfo", pageInfo);
return "getkcxx_num";
}
// 临期产品
@RequestMapping("/kcxxWithProdata")
public String kcxxWithProdata(ModelMap model,
@RequestParam(defaultValue="1",required=true,value="pn") Integer pn
) {
PageHelper.startPage(pn, 4);
List<Kcxx> kcxxs= kcxxServiceImp.kcxxWithProdata();
PageInfo<Kcxx> pageInfo=new PageInfo<Kcxx>(kcxxs);
model.addAttribute("pageInfo", pageInfo);
return "getkcxx_data";
}
@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="pname",required=false)String pname,@RequestParam(defaultValue="1",required=true,value="pn") Integer pn
) {
PageHelper.startPage(pn, 100);
List<Kcxx> ckin= kcxxServiceImp.getbyparams(proid,pname);
PageInfo<Kcxx> pageInfo=new PageInfo<Kcxx>(ckin);
model.addAttribute("pageInfo", pageInfo);
return "getkcxxbyparams";
}
}
@RequestMapping("updatepro")
public String updatepro(Product product,HttpServletRequest request,Model model){
if(productServiceImp.updateByPrimaryKey(product)) {
product=productServiceImp.selectByPrimaryKey(product.getProid());
model.addAttribute("product", product);
return "redirect:getlist";
}
return null;
}
@RequestMapping("/deletepro")
public String deletetepro(String proid,HttpServletRequest request,Model model){
productServiceImp.deleteByPrimaryKey(proid);
return "redirect:getlist";
}
// 跳转到增加页面
@RequestMapping("/toaddpro")
public String toaddpro(){
return "manager/addpro";
}
@RequestMapping("/insertpro")
// 先判断数据库有没有,有就更新,没有就新增
public String insertpro(Product product,HttpServletRequest request,Model model){
if(null==productServiceImp.selectByPrimaryKey(product.getProid())) {
productServiceImp.insert(product);
return "redirect:getlist";
}else {
request.setAttribute("msg", "新增失败,系统中存在该id的商品,请重新输入!");
return "addpro";
}
}
@InitBinder
protected void init(HttpServletRequest request, ServletRequestDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
}
}
@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("/getproduct")
@ResponseBody
public Product getproduct(String proid,HttpServletRequest request,Model model){
Product product= new Product();
product=productServiceImp.selectByPrimaryKey(proid);
return product;
}
}
/**
* @Des
*/
@Controller
@RequestMapping("/manager/flatform/sale")
public class MSaleController {
@Autowired
SaleServiceImp saleServiceImp;
// 跳转到增加页面
@RequestMapping("/toadd")
public String toadd(){
return "manager/addsale";
}
// 跳转到修改页面
@RequestMapping("/toupdate")
public String editSale(Sale sale,HttpServletRequest request,Model model){
model.addAttribute("sale", saleServiceImp.getbyid(sale.getSaleid()));
return "manager/editSale";
}
// 先判断数据库有没有,有就更新,没有就新增
@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 "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/product")
public class ProductController {
@Autowired
// 根据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 "manager/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 "manager/getprobyparams";
}
@RequestMapping("editpro")
public String editProduct(Product pro,HttpServletRequest request,Model model){
model.addAttribute("product", productServiceImp.selectByPrimaryKey(pro.getProid()));
return "manager/editpro";
}
@RequestMapping("updatepro")
public String updatepro(Product product,HttpServletRequest request,Model model){
if(productServiceImp.updateByPrimaryKey(product)) {
product=productServiceImp.selectByPrimaryKey(product.getProid());
model.addAttribute("product", product);
return "redirect:getlist";
}
return null;
}
@RequestMapping("/deletepro")
public String deletetepro(String proid,HttpServletRequest request,Model model){
productServiceImp.deleteByPrimaryKey(proid);
return "redirect:getlist";
}
// 跳转到增加页面
@RequestMapping("/toaddpro")
public String toaddpro(){
return "manager/addpro";
}
@RequestMapping("/insertpro")
// 先判断数据库有没有,有就更新,没有就新增
public String insertpro(Product product,HttpServletRequest request,Model model){
if(null==productServiceImp.selectByPrimaryKey(product.getProid())) {
productServiceImp.insert(product);
@RequestParam(value="pname",required=false)String pname,@RequestParam(defaultValue="1",required=true,value="pn") Integer pn
) {
PageHelper.startPage(pn, 100);
List<Kcxx> ckin= kcxxServiceImp.getbyparams(proid,pname);
PageInfo<Kcxx> pageInfo=new PageInfo<Kcxx>(ckin);
model.addAttribute("pageInfo", pageInfo);
return "getkcxxbyparams";
}
@RequestMapping("getkcxx")
@ResponseBody
public Kcxx getkcxx(String proid,HttpServletRequest request,Model model) {
Kcxx kcxx=new Kcxx();
kcxx=kcxxServiceImp.getbyid(proid);
return kcxx;
}
}
/**
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";
}
// 跳转到增加页面
@RequestMapping("/toadd")
public String toadd(){
return "manager/addstaff";
}
//跳转到修改员工信息页面
@RequestMapping("/toupdatestaff")
public String editstaff(Staff staff,HttpServletRequest request,Model model){
model.addAttribute("staff", staffServiceImp.getbyid(staff.getStaffid()));
return "manager/editstaff";
}
//修改员工信息
@RequestMapping("/updatestaff")
public String updatestaff(Staff staff,HttpServletRequest request,Model model){
if(staffServiceImp.update(staff)) {
staff=staffServiceImp.getbyid(staff.getStaffid());
model.addAttribute("staff", staff);
return "redirect:getall";
}
return null;
}
// 先判断数据库有没有,有就更新,没有就新增
@RequestMapping("/insert")
public String insert(Staff staff,HttpServletRequest request,Model model){
/**
* @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) {






213

被折叠的 条评论
为什么被折叠?



