基于Java+SpringBoot+Vue的超市进销存系统的设计与实现

102 篇文章 0 订阅
76 篇文章 1 订阅

在这里插入图片描述

项目运行

环境配置:

Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。

项目技术:

ssm + mybatis + Maven +mysql5.7或8.0等等组成,B/S模式 + Maven管理等等。

环境需要

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 4G内存以上;或者 Mac OS;

5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目

6.数据库:MySql 5.7/8.0等版本均可;
毕设帮助,指导,本源码分享,调试部署(见文末)

系统介绍:

在这里插入图片描述

管理员功能模块

管理员登录进入超市进销存系统可以进行以下详细操作:

  1. 首页
  2. 个人中心
  3. 员工管理
  4. 客户管理
  5. 供应商管理
  6. 承运商管理
  7. 仓库信息管理
  8. 商品类别管理
  9. 商品信息管理
  10. 采购信息管理
  11. 入库信息管理
  12. 出库信息管理
  13. 销售订单管理
  14. 部门管理
  15. 岗位管理

以下为界面图示:
在这里插入图片描述

员工管理

在员工管理页面中,可以进行以下操作:

  • 查看索引、员工账号、员工姓名、性别、员工电话、头像、部门、岗位等内容的详情
  • 修改员工信息
  • 删除员工
    在这里插入图片描述

客户管理

在客户管理页面中,可以进行以下操作:

  • 查看索引、客户编号、客户姓名、客户头像、客户电话、客户地址等内容的详情
  • 修改客户信息
  • 删除客户
    在这里插入图片描述

供应商管理

在供应商管理页面中,可以进行以下操作:

  • 查看索引、供应商编号、供应商名称、供应商电话、供应商地址、负责人等内容的详情
  • 修改供应商信息
  • 删除供应商
    在这里插入图片描述

承运商管理

在承运商管理页面中,可以进行以下操作:

  • 查看索引、承运商编号、承运商名称、承运电话、负责人、承运商地址等内容的详情
  • 修改承运商信息
  • 删除承运商
    在这里插入图片描述

仓库信息管理

在仓库信息管理页面中,可以进行以下操作:

  • 查看索引、仓库号、仓库名称、仓库位置、仓库类型等内容的详情
  • 修改仓库信息
  • 删除仓库
    在这里插入图片描述

商品信息管理

在商品信息管理页面中,可以进行以下操作:

  • 查看索引、商品编号、商品名称、商品类别、商品图片、规格、品牌、价格、数量、产地、仓库号、仓库名称等内容的详情
  • 修改商品信息
  • 删除商品
    在这里插入图片描述

采购信息管理

在采购信息管理页面中,可以进行以下操作:

  • 查看索引、采购编号、供应商名称、商品名称、商品类型、采购数量、登记时间、员工账号、员工姓名、审核回复、审核状态等内容的详情
  • 修改采购信息
  • 删除采购信息
    在这里插入图片描述

销售订单管理

在销售订单管理页面中,可以进行以下操作:

  • 查看索引、订单编号、客户姓名、商品名称、价格、订单数量、订单总价、订单时间、员工账号、员工姓名、审核回复、审核状态等内容的详情
  • 修改销售订单信息
  • 删除销售订单信息
    在这里插入图片描述

部门管理

在部门管理页面中,可以进行以下操作:

  • 查看索引、部门等内容的详情
  • 修改部门信息
  • 删除部门
    在这里插入图片描述

岗位管理

在岗位管理页面中,可以进行以下操作:

  • 查看索引、岗位、岗位人数等内容的修改
  • 删除岗位
    在这里插入图片描述

员工功能模块

员工登录进入超市进销存系统可以进行以下详细操作:

  1. 首页
  2. 个人中心
  3. 仓库信息管理
  4. 商品信息管理
  5. 采购信息管理
  6. 入库信息管理
  7. 出库信息管理
  8. 销售订单管理

以下为界面图示:
在这里插入图片描述

仓库信息管理

在仓库信息管理页面中,可以查看索引、仓库号、仓库名称、仓库位置、仓库类型等内容的详情。
在这里插入图片描述

商品信息管理

在商品信息管理页面中,可以查看索引、商品编号、商品名称、商品类别、商品图片、规格、品牌、价格、数量、产地、仓库号、仓库名称等内容的详情,也可以进行采购、入库或出库等操作。
在这里插入图片描述

采购信息管理

在采购信息管理页面中,可以查看索引、采购编号、供应商名称、商品名称、商品类型、采购数量、登记时间、员工账号、员工姓名、审核回复、审核状态等内容的详情,也可以进行修改或删除等操作。
在这里插入图片描述

入库信息管理

在入库信息管理页面中,可以查看索引、入库编号、商品名称、商品类别、入库时间、数量、员工账号、员工姓名、审核回复、审核状态等内容的详情,也可以进行修改或删除等操作。
在这里插入图片描述

出库信息管理

在出库信息管理页面中,可以查看索引、入库编号、商品名称、商品类别、出库时间、数量、员工账号、员工姓名、审核回复、审核状态等内容的详情,也可以进行修改或删除等操作。
在这里插入图片描述

代码实现:


@Controller
@RequestMapping(value = {"/user"})
public class UserLoginController {

    /**
     * 最开始希望用Map的形式接参数,后来不用了,将请求对应的接受方式记录一下
     *
     * @RequestBody Map<String,Object> map      post请求
     * @RequestParam Map<String,Object> map     get请求
     */

    /**
     * 注入service
     */
    @Autowired
    private UserLoginService userLoginService;

    @Autowired
    private JdbcTemplate jdbcTemplate;


    /**
     * 同时这个时候可以自己了解一下@Controller与@RestController的区别,以及@ResponseBody的用法。
     */

    /**
     * 跳转到用户登录页面
     * @return 登录页面
     */
    @RequestMapping(value = {"/loginHtml"})
    public String loginHtml(){
        return "userLogin";
    }

    /**
     * 跳转到用户注册页面
     * @return 注册页面
     */
    @RequestMapping(value = {"/registerpage"})
    public String registerpage(){
        return "register";
    }

    /**
     * 获取用户名与密码,用户登录
     * @return 登录成功页面
     */

    @RequestMapping(value = {"/userLogin"})
    public String userLogin(@RequestParam("username") String username,
                            @RequestParam("password") String password,
                            Model model, HttpServletRequest request){

        if(StringUtils.isEmpty(username)){
            return "用户名不能为空";
        }

        if(StringUtils.isEmpty(password)){
            return "密码不能为空";
        }

        User user = userLoginService.userLogin(username,password);

        if(user != null){                                                  //登录成功
            request.getSession().setAttribute("session_user",user.getUsername());     //将用户信息放入session  用于后续的拦截器
            //获取当前登录用户
            Map<String, Object> map = new HashMap<>();
            map.put("sessionId", request.getSession().getId());  // 取值
            map.put("message", request.getSession().getAttribute("session_user"));
            model.addAttribute("user",map.get("message"));



            String sql2 = "select * from userinfo where iusername=?";
            RowMapper<userinfo> rowMapper2=new BeanPropertyRowMapper<userinfo>(userinfo.class);
            List<userinfo> userinfo= jdbcTemplate.query(sql2, rowMapper2,map.get("message"));
            //userinfo thisinfo= jdbcTemplate.queryForObject(sql2, rowMapper2,map.get("message"));


            if(userinfo.size()==0){
                String sql="insert into userinfo(iusername,iage,iphone) values (?,?,?)";
                jdbcTemplate.update(sql,map.get("message"),0,0);

                List<userinfo> userinfo2= jdbcTemplate.query(sql2, rowMapper2,map.get("message"));
                model.addAttribute("info",userinfo2.get(0));//添加一个值为"hello thymeleaf"的hello变量到视图
                model.addAttribute("name",map.get("message"));
                return "myhome";
            }
            model.addAttribute("info",userinfo.get(0));//添加一个值为"hello thymeleaf"的hello变量到视图
            model.addAttribute("name",map.get("message"));
            return "myhome";
        }
        return "userLogin";
    }

    /**
     * 注册新用户
     * @return 注册结果
     */
    @ResponseBody
    @RequestMapping(value = {"/uregister"})
    public String addUser(@RequestParam("username") String username,
                          @RequestParam("password") String password,
                          @RequestParam("password2") String password2,
                          @RequestParam("age") int age){

        if(StringUtils.isEmpty(username)){
            return "用户名不能为空";
        }

        if(StringUtils.isEmpty(password)){
            return "密码不能为空";
        }

        if(StringUtils.isEmpty(password2)){
            return "确认密码不能为空";
        }

        if(!password.equals(password2)){
            return "两次密码不相同,注册失败!!";
        }else {
            int res = userLoginService.adduser(username,password,age);
            if(res == 0){
                return "注册失败!";
            }else {
                return "注册成功!";
            }
        }

    }

    /**
     * 用于测试拦截器(用户是否登录,查看session)
     * 查询用户列表  http://localhost:8080/user/queryAllUser
     * @return 用户列表(json串)
     */
    @ResponseBody
    @RequestMapping(value = {"/queryAllUser"})
    public List<Map<String,Object>> queryAllUser(){

        return userLoginService.queryAllUser();
    }

}

源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

paterWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值