4-进销存管理系统的设计与实现-springboot

开发环境: Windows操作系统

开发工具:MyEclipse/Eclipse + JDK+ Tomcat + MySQL 数据库

 

项目简介:

 

系统前段页面采用jsp + JavaScript + css的组合技术开发,其中JavaScript使用了jQuery和bootstrap框架,这两个前段框架让我们能更友好的使用JavaScript。省去了许多步骤,简化了我们的使用。数据库使用的是MySQL数据库,MySQL 是现阶段最流行的关系型数据库之一,因为它的体积小、运行速度快、免费,尤其是开放源码这一特点,一般中小型网站的开发都会选择MySQL作为网站数据库。考虑到系统设计的用户群体以及MySQL数据库的这些优点,于是选择了MySQL数据库作为开发数据库。开发使用的IDE工具是:Spring tool suit,这个IDE工具是Spring官网推荐的开发工具,在使用Spring体系的框架开发应用是,这个IDE工具具有很多优势。Web服务器是使用的Spring boot内置的Tomcat服务器。根据以上选择的框架、工具,选择了JDK1.8作为开发、编译环境。

 

项目截图:

 

1.1 用户登录

(1)    功能描述

登录是对用户使用系统功能进行身份验证的过程,登录也是可以很好的控制用户的权限问题,登录界面要求简明易懂。每一用户都有自己的独有的账号和密码,用户在系统的每一个操作都有日志进行记载,可以有效保证数据可追溯性,做到责任到人,界面如下图。

 

 

图1.1 用户登录

(2)    实现流程

在登陆按钮添加监听事件,在用户输入账号密码点击登录后,终端先判断是否满足JS中的验证方法,此方法是防止当账号密码为空时登录的提示,如果为空跳出一个对话框来提示用户账号和密码需要填。如果不为空,后台会把接受的用户名密码与数据库数据库中用户信息比较核对,如果是一致则顺利登录到用户权限所对应的界面中,否则出现账号密码错误的提示,登录失败。登录流程如图5-12所示。实现代码如下:

if("manager".equals(user)){

       Managers managers = null;

       try {

                     managers = managerService.login(name, password);

       } catch (ServiceException e) {

              e.printStackTrace();

       }

       if(managers!=null){               

              logger.info(name+"登录成功!!!");

              ServletContext app = req.getSession().getServletContext();

              app.setAttribute("user",managers);

              req.getRequestDispatcher("/WEB-INF/jsp/index.jsp").forward(req, resp);

       }else{

              logger.info("登录失败,用户名或者密码错误");

              HttpSession session = req.getSession();

              session.setAttribute("msg","用户名或者密码错误");

              resp.sendRedirect("login.html");

       }

}else if("employee".equals(user)){

       Employee employee = null;

       try {

              employee = managerService.employeelogin(name, password);

       } catch (ServiceException e) {

              e.printStackTrace();

       }

       if(employee!=null){               

              logger.info(name+"登录成功!!!");

              ServletContext app = req.getSession().getServletContext();

              app.setAttribute("user",employee);

              req.getRequestDispatcher("/WEB-INF/jsp/index.jsp").forward(req, resp);

       }else{

              logger.info("登录失败,用户名或者密码错误");

              HttpSession session = req.getSession();

              session.setAttribute("msg","用户名或者密码错误");

              resp.sendRedirect("login.html");

       }

}

1.1 采购管理

(1)    功能描述

采购管理是对需要采购的订单的综合管理,在这个模块里包含采购订单、收货入库、采购退货三个子模块。其中采购订单是员工用来生成采购单的,还有对采购单的一些处理;收货入库是对已经提交的采购单进行入库操作;采购退货是把我们已经提交的采购单进行退货处理的操作。主要界面如下图:

 

 

图1.1 采购管理

(2)    实现流程

点击采购订单按钮会跳转到采购订单首页,在首页可以看到所有已经提交的采购单信息;当我们想添加新的采购订单的时候,首先点击添加商品按钮,会跳转到商品添加页面,我们把商品信息输入进去之后点击提交,后台方法会把商品信息暂时存起来,当我们把所有商品添加完成,我们可以再点击添加订单按钮,此时会把我们添加的所有的商品都提交生成一个采购订单,并且把数据存进对应的数据库表中保存起来。对已经提交的订单当我们点击退货按钮时,后台会接收到要退货的订单ID,并且根据ID到数据库中订单表把数据删除,同时在退货表中把数据插进去。当我们点击入库按钮时,后台会接收到需要入库的订单的ID,并且把订单表中的flag字段的值修改为已入库,同时在库存表中会新加一条数据。主要实现代码如下:

              Long suppliersId = Long.parseLong(request.getParameter("suppliersId"));

              String name = request.getParameter("name");

              Double price = Double.parseDouble(request.getParameter("price"));

              Long count =Long.parseLong(request.getParameter("count"));         

              String unit = request.getParameter("unit");

              String space = request.getParameter("space");

              Long supplierId = Long.parseLong(request.getParameter("supplierId"));

              String approveId = request.getParameter("approveId");

              String batchId = request.getParameter("batchId");          

              purchaseItem = new PurchaseItem();

              purchaseItem.setCount(count);

              purchaseItem.setPrice(price);

              purchaseItem.setName(name);

              purchaseItem.setSupplierId(suppliersId);

              list.add(purchaseItem);

              model.addAttribute("list", list);

              logger.info("成功添加商品");

logger.info("提交采购订单");

              String pay = request.getParameter("pay");

              purchaseOrder = new PurchaseOrder();

              purchaseOrder.setPay(pay);

              purchaseOrder.setInDate(new Date());

              purchaseOrder.setFlag("未入库");

              try {

                     int i = managerService.addPurchaseOrder(purchaseOrder, list);

                     if(i==1){

                            list.removeAll(list);

                            /*orderList.removeAll(orderList);*/

                            orderList = managerService.findPurchaseOrderByPage(0);

                            count = managerService.findPurchaseOrderCount();

                            currentPage = 1L;

                            totalPage = managerService.getTotalPage();

                            model.addAttribute("currentPage", currentPage);

                            model.addAttribute("totalPage", totalPage);

                            model.addAttribute("orderList", orderList);

                            model.addAttribute("count", count);

                            logger.info("提交采购订单成功");

                     }

 

 

 

 

源码及原文地址:http://javadao.xyz/forum.php?mod=viewthread&tid=11

 

猜你喜欢

转载自www.cnblogs.com/javadao/p/11802538.html