idea+springboot+jpa+maven+jquery+mysql进销存管理系统源码

idea+springboot+jpa+maven+jquery+mysql进销存管理系统

  • 一、系统介绍
    • 1.环境配置
  • 二、系统展示
    • 1. 管理员登录
    • 2.首页
    • 3.采购订单
    • 4.收货入库
    • 5. 采购退货
    • 6. 商品入库
    • 7. 商品出库
    • 8. 库存查询
    • 9.商品移库
    • 10.库存盘点
    • 11.销售订单
    • 12.发货出库
    • 13.销售退货
    • 14.商品查询
    • 15. 供应商查询
    • 16.客户查询
    • 17.销售查询
    • 18.销售统计
    • 19.商品资料
    • 20.供应商资料
    • 21.客户资料
    • 22.用户管理
  • 三、部分代码
    • CustomerRepository.java
    • SaleController.java
    • Customer.java
  • 四、其他
    • 获取源码


一、系统介绍

本系统实现了进销存管理系统,管理端实现了管理员登录、首页、采购订单、收货入库、采购退货、商品入库、商品出库、库存查询、商品移库、库存盘点、销售订单、发货出库、销售退货、商品查询、供应商查询、客户查询、销售查询、销售统计、商品资料、供应商资料、客户资料、用户管理

1.环境配置

JDK版本:1.8
Mysql:5.7

二、系统展示

1. 管理员登录

在这里插入图片描述

登录用户名密码:admin 123456

2.首页

在这里插入图片描述

3.采购订单

在这里插入图片描述

4.收货入库

在这里插入图片描述

5. 采购退货

在这里插入图片描述

6. 商品入库

在这里插入图片描述

7. 商品出库

在这里插入图片描述

8. 库存查询

在这里插入图片描述

9.商品移库

在这里插入图片描述

10.库存盘点

在这里插入图片描述

11.销售订单

在这里插入图片描述

12.发货出库

在这里插入图片描述

13.销售退货

在这里插入图片描述

14.商品查询

在这里插入图片描述

15. 供应商查询

在这里插入图片描述

16.客户查询

在这里插入图片描述

17.销售查询

在这里插入图片描述

18.销售统计

在这里插入图片描述

19.商品资料

在这里插入图片描述

20.供应商资料

在这里插入图片描述

21.客户资料

在这里插入图片描述

22.用户管理

在这里插入图片描述

三、部分代码

CustomerRepository.java

package com.xu.dao;import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;import com.xu.bean.Customer;public interface CustomerRepository extends JpaRepository<Customer,Long>{@Query("from Customer where customer_name = ?1")public Customer findCustomerByName(String name);}

SaleController.java

package com.xu.web;import java.util.ArrayList;
import java.util.Date;
import java.util.List;import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.SessionAttributes;
import com.xu.bean.SaleItem;
import com.xu.bean.SaleOrder;
import com.xu.exception.ServiceException;
import com.xu.service.SaleService;
import com.xu.service.StockService;@Controller
@RequestMapping("/sale")
@SessionAttributes(value={"cunt","crrentPage","ttalPage","saleorderList","itemList"})
public class SaleController {private Logger logger = LoggerFactory.getLogger(this.getClass());private List<SaleItem> itemList = new ArrayList<SaleItem>();private List<SaleOrder> saleorderList = new ArrayList<SaleOrder>();private Long cunt;private Long crrentPage;private Long ttalPage;@Resourceprivate SaleService saleService;@Resourceprivate StockService stockService;/*** 此方法用于跳转到销售订单页面* @return*/@RequestMapping(value="/gotosale")public String turn(Model model){try {saleorderList = saleService.findSaleOrderByPage(0);cunt = saleService.findSaleOrderCount();crrentPage = 1L;ttalPage = saleService.getTotalPage();model.addAttribute("crrentPage", crrentPage);model.addAttribute("ttalPage", ttalPage);model.addAttribute("saleorderList", saleorderList);model.addAttribute("cunt", cunt);} catch (ServiceException e) {// TODO Auto-generated catch blocke.printStackTrace();}return "sale";}/*** 此方法用于跳转到发货页面* @return*/@RequestMapping(value="/gotooutsale")public String turns(Model model){try {saleorderList = saleService.findSaleOrderByPage(0);cunt = saleService.findSaleOrderCount();crrentPage = 1L;ttalPage = saleService.getTotalPage();model.addAttribute("crrentPage", crrentPage);model.addAttribute("ttalPage", ttalPage);model.addAttribute("saleorderList", saleorderList);model.addAttribute("cunt", cunt);} catch (ServiceException e) {// TODO Auto-generated catch blocke.printStackTrace();}return "out-salestock";}/*** 此方法用于发货功能* @param request* @param model* @return*/@RequestMapping("/outstock")public String outStock(HttpServletRequest request,Model model){logger.info("销售订单发货");Long orderId = Long.parseLong(request.getParameter("orderId"));try {String flag = saleService.findFlagByOrderId(orderId);if("未发货".equals(flag)){List<SaleItem> saleItemList = saleService.findSaleOrderByOrderId(orderId);for(SaleItem item:saleItemList){stockService.updateStockCount(item.getName(),item.getCount());}saleService.updateFlagByOrderId("已发货",orderId);saleorderList = saleService.findSaleOrderByPage(0);model.addAttribute("saleorderList", saleorderList);logger.info("销售订单发货成功");}} catch (ServiceException e) {}return "out-salestock";}/*** 此方法用于添加销售商品* @param request* @param model* @return*/@RequestMapping("/add")public String addSaleItem(HttpServletRequest request,Model model){Long customerId = Long.parseLong(request.getParameter("customerId"));String name = request.getParameter("name");Double price = Double.parseDouble(request.getParameter("price"));Long count =Long.parseLong(request.getParameter("count"));		SaleItem saleItem = new SaleItem();saleItem.setCount(count);saleItem.setName(name);saleItem.setPrice(price);saleItem.setCustomerId(customerId);itemList.add(saleItem);model.addAttribute("itemList",itemList);return "sale";}/*** 此方法用于跳转到添加销售订单页面* @return*/@RequestMapping("/forwordOrder")public String forwords(){		return "saleOrder";}/*** 添加销售订单* @param request* @param model* @return*/@RequestMapping("/addSaleOrder")public String saveSaleOrder(HttpServletRequest request,Model model){String pay = request.getParameter("pay");SaleOrder saleOrder = new SaleOrder();saleOrder.setFlag("未发货");saleOrder.setPay(pay);saleOrder.setSaleDate(new Date());try {int i = saleService.addSaleOrder(saleOrder,itemList);if(i==1){itemList.clear();saleorderList = saleService.findSaleOrderByPage(0);cunt = saleService.findSaleOrderCount();crrentPage = 1L;ttalPage = saleService.getTotalPage();model.addAttribute("crrentPage", crrentPage);model.addAttribute("ttalPage", ttalPage);model.addAttribute("saleorderList", saleorderList);model.addAttribute("cunt", cunt);}} catch (ServiceException e) {e.printStackTrace();}return "sale";}/*** 分页功能中 首页 尾页* @param request* @param model* @return*/@RequestMapping("/multipage")public String getPurchase(HttpServletRequest request,Model model){		Long pageNum =Long.parseLong(request.getParameter("curPage"));try {saleorderList = saleService.findSaleOrderByPage((int)(pageNum-1));} catch (ServiceException e) {// TODO Auto-generated catch blocke.printStackTrace();}crrentPage = pageNum;model.addAttribute("currentPage", crrentPage);model.addAttribute("saleorderList", saleorderList);return "sale";}/*** 分页功能中上一页* @param request* @param model* @return*/@RequestMapping("/multipageDown")public String getPurchaseDown(HttpServletRequest request,Model model){Long pageNum =Long.parseLong(request.getParameter("curPage"));try {if(pageNum>1){saleorderList = saleService.findSaleOrderByPage((int)(pageNum-2));crrentPage = pageNum-1;}else if(pageNum == 1){saleorderList = saleService.findSaleOrderByPage((int)(pageNum-1));crrentPage = pageNum;}} catch (ServiceException e) {// TODO Auto-generated catch blocke.printStackTrace();}		model.addAttribute("currentPage", crrentPage);model.addAttribute("saleorderList", saleorderList);return "sale";}/*** 分页功能中下一页* @param request* @param model* @return*/@RequestMapping("/multipageUp")public String getPurchaseUp(HttpServletRequest request,Model model){Long pageNum =Long.parseLong(request.getParameter("curPage"));try {if(pageNum<=(ttalPage-1)){saleorderList = saleService.findSaleOrderByPage((int)(pageNum-0));crrentPage = pageNum+1;}else if(pageNum == ttalPage){saleorderList = saleService.findSaleOrderByPage((int)(pageNum-1));crrentPage = pageNum;}} catch (ServiceException e) {// TODO Auto-generated catch blocke.printStackTrace();}model.addAttribute("currentPage", crrentPage);model.addAttribute("saleorderList", saleorderList);return "sale";}/*** 分页功能中 首页 尾页* @param request* @param model* @return*/@RequestMapping("/multipage1")public String getPurchase1(HttpServletRequest request,Model model){		Long pageNum =Long.parseLong(request.getParameter("curPage"));try {saleorderList = saleService.findSaleOrderByPage((int)(pageNum-1));} catch (ServiceException e) {// TODO Auto-generated catch blocke.printStackTrace();}crrentPage = pageNum;model.addAttribute("currentPage", crrentPage);model.addAttribute("saleorderList", saleorderList);return "out-salestock";}/*** 分页功能中上一页* @param request* @param model* @return*/@RequestMapping("/multipageDown1")public String getPurchaseDown1(HttpServletRequest request,Model model){Long pageNum =Long.parseLong(request.getParameter("curPage"));try {if(pageNum>1){saleorderList = saleService.findSaleOrderByPage((int)(pageNum-2));crrentPage = pageNum-1;}else if(pageNum == 1){saleorderList = saleService.findSaleOrderByPage((int)(pageNum-1));crrentPage = pageNum;}} catch (ServiceException e) {// TODO Auto-generated catch blocke.printStackTrace();}		model.addAttribute("currentPage", crrentPage);model.addAttribute("saleorderList", saleorderList);return "out-salestock";}/*** 分页功能中下一页* @param request* @param model* @return*/@RequestMapping("/multipageUp1")public String getPurchaseUp1(HttpServletRequest request,Model model){Long pageNum =Long.parseLong(request.getParameter("curPage"));try {if(pageNum<=(ttalPage-1)){saleorderList = saleService.findSaleOrderByPage((int)(pageNum-0));crrentPage = pageNum+1;}else if(pageNum == ttalPage){saleorderList = saleService.findSaleOrderByPage((int)(pageNum-1));crrentPage = pageNum;}} catch (ServiceException e) {// TODO Auto-generated catch blocke.printStackTrace();}model.addAttribute("currentPage", crrentPage);model.addAttribute("saleorderList", saleorderList);return "out-salestock";}
}

Customer.java

package com.xu.bean;import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;/*** *   顾客*id:*name:顾客名字*address:地址*zip:邮编*telPhone:电话*linkMan:联系人*linkTel:联系人电话*bank:开户银行*bankAccount:银行账号*email:邮箱*/
@Entity
@Table(name="customer")
public class Customer {@Id@GeneratedValue(strategy=GenerationType.AUTO)@Column(name="customer_id")private Long id;@Column(name="customer_name")private String name;private String address;private String zip;private String telPhone;private String linkMan;private String linkTel;private String bank;private Long  bankAccount;private String email;
/*	@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,targetEntity=SaleOrder.class)private Set<SaleOrder> set;@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,targetEntity=SaleReturnOrder.class)private Set<SaleReturnOrder> returnOrder;
*/	public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getZip() {return zip;}public void setZip(String zip) {this.zip = zip;}public String getTelPhone() {return telPhone;}public void setTelPhone(String telPhone) {this.telPhone = telPhone;}public String getLinkMan() {return linkMan;}public void setLinkMan(String linkMan) {this.linkMan = linkMan;}public String getLinkTel() {return linkTel;}public void setLinkTel(String linkTel) {this.linkTel = linkTel;}public String getBank() {return bank;}public void setBank(String bank) {this.bank = bank;}public Long getBankAccount() {return bankAccount;}public void setBankAccount(Long bankAccount) {this.bankAccount = bankAccount;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}/*public Set<SaleOrder> getSet() {return set;}public void setSet(Set<SaleOrder> set) {this.set = set;}*/}

四、其他

获取源码

点击以下链接获取源码。
idea+springboot+jpa+maven+jquery+mysql进销存管理系统源码
IDEA+java+spring+hibernate+jquery+mysql后台管理系统
IDEA + Spring Boot + Security + MyBatis Plus+Mysql低代码快速开发平台
IDEA+spring boot+activiti+shiro++layui+Mysql权限管理系统源码
IDEA+SpringBoot + Mybatis + Shiro+Bootstrap+Mysql智慧仓库WMS源码
IDEA+springboot+ssm+layui+mysql高校宿舍管理系统源码
IDEA+springboot + ssm +shiro+ easyui +mysql实现的进销存系统
IDEA+springboot+mybatis+shiro+bootstrap+Mysql网上书店管理系统
IDEA+springboot+mybatis+shiro+bootstrap+Mysql WMS仓库管理系统
IDEA+spring+spring mvc+mybatis+bootstrap+jquery+Mysql运动会管理系统源码
IDEA+SpringBoot+mybatis+bootstrap+jquery+Mysql车险理赔管理系统源码
IDEA+Spring Boot + MyBatis + Layui+Mysql垃圾回收管理系统源码
IDEA+SpringBoot+mybatis+SSM+layui+Mysql学生就业信息管理系统源码
IDEA+springboot+jpa+Layui+Mysql销售考评系统源码
IDEA+Spring + Spring MVC + MyBatis+Bootstrap+Mysql酒店管理系统源码
IDEA+spring boot+mybatis+spring mvc+bootstrap+Mysql停车位管理系统源码

Java+Swing+Mysql实现学生宿舍管理系统

Java+Swing+Txt实现自助款机系统

Java+Swing+Mysql自助存取款机系统

Java+Swing+mysql5实现学生成绩管理系统(带分页)

Java+Swing+Mysql实现超市商品管理系统源码

Java+Swing+Mysql实现通讯录管理系统源码

Java+Swing+Mysql实现图书管理系统源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/6850.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序将接口返回的文件流预览导出Excel文件并转发

把接口url替换就可以用了 exportExcel () {wx.request({url: importMyApply, //这个地方是你获取二进制流的接口地址method: POST,responseType: "arraybuffer", //特别注意的是此处是请求文件流必须加上的属性&#xff0c;不然你导出到手机上的时候打不开&#xff…

Jetson Orin Nano 平台适配IMX585 camera驱动调试记录

1. 前言 Jetson Orin Nano Devkit适配imx585 camera 使用argus_camera捕获流,图片是黑色的 用示波器来测量mipi信号,信号正常 Jetpack版本: sensor参数: dts配置: mode0 { /* */ mclk_khz = “24000”; num_lanes = “4”; tegra_sinterface = “serial_c”; ph…

“VCMessage”任务意外失败

从网上查到很多都是说设置这个位置&#xff0c;但是我的已经是对的&#xff0c;还是出现 “VCMessage”任务意外失败这个错误。 又查到一个人说解决方法是更正OutputPath或从父级继承&#xff1a;右键单击项目,然后转到"属性">"链接器">"常规&q…

mac brew安装 node 踩坑日记- n切换node不生效

最近用了一个旧电脑开发&#xff0c;发现里面node管理混乱&#xff0c;有nvm、n和homebrew&#xff0c;导致切换node 切换不了&#xff0c;开发也有莫名其妙的错误。所以我打算重新装一下node&#xff0c;使用n做为管理工具。 1. 删除nvm cd ~ rm -rf .nvm2. 删除n sudo rm -…

GAMS---典型优化模型和算法介绍、GAMS安装和介绍、GAMS程序编写、GAMS程序调试、实际应用算例演示与经验分享

优化分析是很多领域中都要面临的一个重要问题&#xff0c;求解优化问题的一般做法是&#xff1a;建立模型、编写算法、求解计算。常见的问题类型有线性规划、非线性规划、混合整数规划、混合整数非线性规划、二次规划等&#xff0c;优化算法包括人工智能算法和内点法等数学类优…

Vue移动端项目--瑞幸咖啡重构优化

来了客官&#xff0c;好久不见&#xff01; 从年初开始&#xff0c;就有个想法&#xff0c;想着把之前做过的项目重新整理一下。毕竟今时不同往日&#xff0c;从现在的角度去看曾经做过的项目&#xff0c;倒是觉得有很多稚嫩的地方。毕竟无论做什么都是熟能生巧&#xff0c;由浅…

字符串 (2)--- 前缀函数与 KMP 算法

/* https://www.luogu.com.cn/problem/UVA455 最小周期&#xff1a; n - pi[n -1] */ #include <iostream> #include <string> #include <vector> using namespace std; vector<int> prefix_fun(string s) { int len s.length(); /…

深度学习——批标准化Batch Normalization

什么是批标准化&#xff1f; 批标准化&#xff08;Batch Normalization&#xff09;是深度学习中常用的一种技术&#xff0c;旨在加速神经网络的训练过程并提高模型的收敛速度。 批标准化通过在神经网络的每一层中对输入数据进行标准化来实现。具体而言&#xff0c;对于每个输…

Linux基本指令操作

登陆指令&#xff08;云服务器版&#xff09; 当我们获取公网IP地址后&#xff0c;我们就可以打开xshell。 此时会有这样的界面&#xff0c;我们若是想的登陆&#xff0c;则需要输入以下的指令 ssh 用户名公网IP地址 然后会跳出以下的窗口 接着输入密码——密码便是先前定好…

微服务安全简介

​由于其可扩展性、灵活性和敏捷性&#xff0c;微服务架构已经变得越来越受欢迎。然而&#xff0c;随着这种架构的分布和复杂性增加&#xff0c;确保强大的安全措施变得至关重要。微服务的安全性超越了传统的方法&#xff0c;需要采用全面的策略来保护免受不断演变的威胁和漏洞…

Promise 讲解,js知识,es6

文章目录 一、Promise的三种状态1. 初始态pending2. 成功态fulfilled&#xff0c;调用resolve方法3. 失败态rejected&#xff0c;调用reject方法 二、Promise的方法then方法catch方法 三、async和awaitasync 函数await 表达式 四、代码举例帮助理解1、Promise的值通过then方法获…

在vsCode 中执行Electron 项目时,出现中文乱码问题

问题&#xff1a;vscode 中执行Electron 项目时&#xff0c;控制台出现乱码 解决方法&#xff1a; 在 terminal 修改编码格式&#xff1a;65001代表UTF-8&#xff0c;936代表GBK

IC设计从业者必备的宝藏网站!

对于IC设计从业者而言&#xff0c;获取准确的学习资源&#xff0c;行业资讯直观重要&#xff0c;今日我们推荐ic行业专业的宝藏网站&#xff0c;希望对从业者有所帮助。 01-找开源项目的网站 GitHub除了Git代码仓库托管及基本的 Web管理界面以外&#xff0c;还提供了订阅、讨论…

用 Generative AI 构建企业专属的用户助手机器人

原文来源&#xff1a; https://tidb.net/blog/a9cdb8ec 关于作者&#xff1a;李粒&#xff0c;PingCAP PM TL;DR 本文介绍了如何用 Generative AI 构建一个使用企业专属知识库的用户助手机器人。除了使用业界常用的基于知识库的回答方法外&#xff0c;还尝试使用模型在 fe…

JAVA面试总结-Redis篇章(三)——缓存雪崩

JAVA面试总结-Redis篇章&#xff08;三&#xff09;——缓存雪崩

go性能分析工具之trace

参考文章&#xff1a; https://eddycjy.gitbook.io/golang/di-9-ke-gong-ju/go-tool-trace https://mp.weixin.qq.com/s__bizMzUxMDQxMDMyNg&mid2247484297&idx1&sn7a01fa4f454189fc3ccdb32a6e0d6897&scene21#wechat_redirect 你有没有考虑过&#xff0c;你的g…

0基础学习VR全景平台篇 第70篇:VR直播-如何设置付费观看、试看

对于拥有优质内容的VR直播&#xff0c;可以通过付费观看的方式进行内容变现&#xff0c;是当下非常流行的商业模式。 付费价格&#xff1e;0时便会自动弹出“试看时间”的设置项。试看时间&#xff1d;0秒时&#xff0c;用户进入直播间需要先付费才可观看&#xff1b;试看时间&…

Python中字符串拼接有哪些方法

目录 什么是字符串拼接 为什么要进行字符串拼接 Python中字符串拼接有哪些方法&#xff1f; 什么是字符串拼接 字符串拼接是将多个字符串连接在一起形成一个新的字符串的操作。在编程中&#xff0c;字符串拼接经常用于将不同的字符串组合在一起&#xff0c;以创建更长或更有…

勘探开发人工智能技术:地震层位解释

1 地震层位解释 层位解释是地震构造解释的重要内容&#xff0c;是根据目标层位的地震反射特征如振幅、相位、形态、连续性、特征组合等信息在地震数据体上进行追踪解释获得地震层位数据的方法。 1.1 地震信号、层位与断层 图1.1 所示为地震信号采集的过程&#xff0c;地面炮…

图像处理之canny边缘检测(非极大值抑制和高低阈值)

Canny 边缘检测方法 Canny算子是John F.Canny 大佬在1986年在其发表的论文 《Canny J. A computational approach to edge detection [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1986 (6): 679-698.》提出来的。 检测目标&#xff1a; 低错误率…