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.老板对员工工作的管控 ...
随机推荐
- Linux下正确修改Docker镜像和容器的默认存储位置,亲测有效
我们通过 yum 的方式安装完Docker环境后,它默认的存储位置是 /var/lib/docker,默认的 pid 存放位置是 /var/run/docker.pid. 如果仅仅是做测试,我们可能没 ...
- VS2017 打开WebService 提示已经在解决方案中打开了具有该名称的项目
.net开发.用VS2017工具,打开VS2010创建的WebSevice工程时,提示工程不可用. 重新加载后提示:已经在解决方案中打开了具有该名称的项目. 该问题原因是因为启用了源代码管理工具的问题 ...
- [b0038] python 归纳 (二三)_多进程数据共享和同步_队列Queue
1 队列读写 # -*- coding: utf-8 -*- """ 多进程 共享 队列 multiprocessing.Process 逻辑: 一个进程往队列写数据, ...
- pycharm 字符编码错误处理
如果在MySQL创建表空间时指定了他的字符集为utf8 但是插入数据后 在pycharm查看却出现字符乱码 怎么解决呢 ? 首先进入cmd 页面 输入 chcp 65001 (意思是指定cmd所有字 ...
- Linux中的文件和目录结构详解
对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面 ...
- [Linux] 解决nginx: [emerg] directive "rewrite" is not terminated by ";"
解决nginx: [emerg] directive "rewrite" is not terminated by ";"nginx的rewite规则有时候没注 ...
- Day_03
1.指针基本操作 package main import "fmt" func main() { var a int //每个变量有2层含义:变量的内存,变量的地址 fmt.Pri ...
- python踩坑系列之导入包时下划红线及报错“No module named”问题
python踩坑系列之导入包时下划红线及报错“No module named”问题 使用pycharm编写Python时,自己写了一个包(commontool),在同级另一个路径下(fileshand ...
- 树型DP(2)
声明 https://blog.csdn.net/no1_terminator/article/details/77824790 参考课件和讲授来自Accelerator 找树的直径 树的直径定义为一 ...
- luoguP1447 [NOI2010]能量采集
https://www.luogu.org/record/22874213 题目大意:给定n和m,求Σ(1<=i<=n)Σ(1<=j<=m)GCD(i,j)* 2-1 i和j的 ...