java进销存管理系统的设计与实现-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
java进销存管理系统的设计与实现-springboot源码的更多相关文章
- Net通用进销存管理系统 + 开发文档+ 使用说明
通用进销存管理系统 + 开发文档+ 使用说明Net源码下载 包括下面的模块基础资料模块采购管理模块库存管理模块商务管理模块营业管理模块维修管理模块会员管理模块财务管理模块 Net通用进销存管理系统 + ...
- 文献综述十五:基于b/s中小型超市进销存管理系统的研究与设计
一.基本信息 标题:基于b/s中小型超市进销存管理系统的研究与设计 时间:2015 出版源:湘西财经大学 文件分类:对超市管理系统的研究 二.研究背景 在竞争日益激烈的行业中,尽可能降低运营成本,逐步 ...
- Java实例学习——企业进销存管理系统(4)
Java实例学习——企业进销存管理系统(4) (本实例为书上实例,我所记录的是我的学习过程) 开始时间:2月12日 完成时间:暂未完成 2月18日——系统主窗体设计 只看了学习视频 2月19日—— 回 ...
- Java实例学习——企业进销存管理系统(1)
Java实例学习——企业进销存管理系统(1) (本实例为书上实例,我所记录的是我的学习过程) 开始时间:2月12日 完成时间:暂未完成 2月12日—选择企业进销存管理系统 选择企业进销存管理系统这一实 ...
- Java实例学习——企业进销存管理系统(3)
Java实例学习--企业进销存管理系统(3) (本实例为书上实例,我所记录的是我的学习过程) 开始时间:2月12日 完成时间:暂未完成 2月16日-公共类(Item公共类,数据模型公共类,Dao公共类 ...
- Java实例学习——企业进销存管理系统(2)
Java实例学习--企业进销存管理系统(2) (本实例为书上实例,我所记录的是我的学习过程) 开始时间:2月12日 完成时间:暂未完成 2月15日-系统登录 对于昨天新建的12个Java包不能完全显示 ...
- Access-简易进销存管理系统
p{ font-size: 15px; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid #aaa; width: 99%; ...
- 进销存管理系统, 刚学C++
各位大神们.有什么补充的能够评论一下吗? #include<iostream> #include<string> using namespace std; int G=0;// ...
- PDA手持机 移动开单进销存系统 现场出打印凭据和扫码 新的亮点
传统车销模式弊端:1.手写开单,效率低,动作慢2.现场手写开单明细不能打印,产品明细不规范3.电脑办公人员及车销人员对车上的库存情况掌握不清楚,销售人员对每种产品销售价格不清楚4.老板对员工工作的管控 ...
随机推荐
- SQL学习_SELECT
查询列: SQL:SELECT name FROM heros 多列查询: SQL:SELECT name, hp_max, mp_max, attack_max, defense_max FROM ...
- zsh: command not found: 解决方法
问题原有:mac中安装了my zsh [https://www.cnblogs.com/dadonggg/p/11027454.html] ,但是造成了在使用vscode的时候,提示”zsh: com ...
- [Linux] centos6.5升级安装的supervisor
因为我要用它来管理多个PHP进程去执行任务,在默认版本下的配置多个子进程不起作用 默认版本的supervisor版本比较低2.1.9,对于运行多个子进程貌似有问题,最新版的supervisor4.1的 ...
- GPU驱动安装&cuda
版权声明:本文为博主原创文章,支持原创,转载请附上原文出处链接和本声明. 本文链接地址:https://www.cnblogs.com/wannengachao/p/11947668.html 驱动 ...
- Ambari 大数据集群管理
最近做了一个大数据项目,研究了下集群的搭建,现在将集群搭建整理的资料与大家分享一下!如有疑问可在评论区回复. 1前置配置 Centos7系统,每台系统都有java运行环境 全程使用root用户,避免安 ...
- .gitignore 文件没起作用
场景 修改了.gitignore文件, 但是查看状态还是没有忽略 解决 *. 清除git缓存, 注意最后有一个点 git rm -r --cache . 再之后就可以正常使用了, 基本恢复正常, 被忽 ...
- Jmeter Question 之 ‘批量执行SQL语句’
第一步: MySql数据库:jdbc:mysql://ip:3306/数据库名?useUnicode=true&characterEncoding=utf8&allowMultiQue ...
- alias别名
alias一般用法 1.默认rm是"rm -i"的别名,ll就是"ls -l"的别名.可以自定义别名来代替某些命令配合某些选项,也可以定义别名组合多个命令.例如 ...
- [C1W2] Neural Networks and Deep Learning - Basics of Neural Network programming
第二周:神经网络的编程基础(Basics of Neural Network programming) 二分类(Binary Classification) 这周我们将学习神经网络的基础知识,其中需要 ...
- mask-rcnn环境配置windows
安装pycocotools 这个方法非常简便 但是需要先安装git,并且同时配置一下C++的工具 https://blog.csdn.net/qq_41271957/article/details/8 ...