8.进销存系统(基于springboot的进销存系统)

news2024/11/19 13:44:39

目录

1.系统的受众说明

2.开发技术与环境配置

2.1  SpringBoot框架

 2.2  Java语言简介

2.3  MySQL环境配置

2.4  idea介绍

2.5  mysql数据库介绍

2.6  B/S架构

3.系统分析与设计

3.1 可行性分析

3.1.1 技术可行性

3.1.2 操作可行性

3.1.3经济可行性

3.4.1  数据库概念结构设计

3.4.2主要业务数据库具体设计

4.系统功能的具体实现

4.1 登录和菜单管理

4.2 管理员业务功能模块

4.3员工功能模块


 

1.系统的受众说明

     1 在校学习的学生,可用于日常学习使用或是毕业设计使用

     2 毕业一到两年的开发人员,用于锻炼自己的独立功能模块设计能力,增强代码编写能力。

     3 亦可以部署为商化项目使用。

     4 需要完整资料及源码,请在文末获取联系方式领取。

2.开发技术与环境配置

以Java语言为开发工具,利用了当前先进的springboot框架,以idea10为系统开发工具,MySQL为后台数据库,开发的一个超市进销存系统。

2.1  SpringBoot框架

SpringBoot是一个全新开源的轻量级框架。基于Spring4.0设计,其不仅继承了Spring框架原来有的优秀特性,而且还通过简化配置文件来进一步简化了Spring应用的整个搭建以及开发过程。另外在原本的Spring中由于随着项目的扩大导入的jar包数量越来越大,随之出现了jar包版本之间的兼容性问题,而此时SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性问题得到了很好的解决。

SpringBoot可以看做是Spring的加强版本,但实质上都是Spring的相关技术,有了这些优秀的开源框架,程序员在开发过程中将事半功倍。

 2.2  Java语言简介

Java是由SUN公司推出,该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称,也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景,它是面向对象的,分布式的,动态的,具有平台无关性、安全性、健壮性。Java语言的基本语句语法和C++一样,但是它面向对象的技术更加彻底,因为Java要求将所有的内容都必须封装成类,把类作为程序的基本单位。由于不允许类外有变量、方法。 Java语言的分布式体现在数据分布和操作分布,它是面向网络的语言,可以处理TCP/IP协议,它也支持客户机/服务器的计算模式。Java语言的动态性是指类在运行时是动态安装的,使得Java可以动态的维护程序。Java不支持指针,对内存访问的所有操作都是通过对象实例化实现的,这样就避免了指针操作中易产生的错误,同时也预防了病毒对系统的破坏和威胁。

Java语言的编程风格与C语言非常接近,它继承了C++面向对象技术的核心,它面世之后发展迅速,非常流行,对高级C语言形成了很大的冲击。业内人士称之为“一次编译、到处执行”。当然java也有缺点,在每次执行编译后,字节码都需要消耗一定的时间,在某些程度上降低了性能。但是这并不影响java成为此次设计语言的选择。Java语言简单易学,使用它的编程时间短,功能性强,开发者学习起来更简便、更快。Java的主要特性有以下几个:

1.面向对象

面向对象有四个特点:封装、继承、多态、抽象。抽象是指忽略一个问题中的次要部分,关注主要部分。多态是指对同一种消息做出的不同反应。继承是指在原有的父类方法基础上增加自己独有的方法,而不改变原来父类。

2.平台无关性、

Java编译出来的是字节码,直接由虚拟机执行。在任何平台上,只要有Java虚拟机,Java代码都能运行。

3.可靠性和安全性

Java对内存的访问都必须通过对象的实例变量来实现,避免了指针中出现的错误。

4. 多线程

Java提供了多线程功能,利用编程实现同一时间同时工作的功能。

2.3  MySQL环境配置

(1)本系统的数据使用的是MySQL,所以要将MySQL安装到指定目录,如果下载的是非安装的MySQL压缩包,直接解压到指定目录就可以了。然后点击C:\Program Files\MySQL\bin\winMySQLadmin.exe这个文件其中C:\Program Files\MySQL是MySQL安装目录。输入winMySQLadmin的初始用户、密码(注:这不是MySQL里的用户、密码)随便填不必在意,确定之后右下角任务的启动栏会出现一个红绿灯的图标,红灯亮代表服务停止,绿灯亮代表服务正常,左击这个图标->winnt->install the service 安装此服务,再左击这个图标->winnt->start the service 启动MySQL服务。

(2)修改MySQL数据库的root密码。用cmd进入命令行模式输入如下命令:

cd C:\Program Files\MySQL\bin

MySQLadmin -u root -p password 123

回车出现Enter password: ,这是要输入原密码. 刚安装时密码为空,所以直接回车,此时MySQL 中账号 root 的密码被改为 123 安装完毕。

2.4  idea介绍

IntelliJ IDEA(简称IDEA)是一种集成开发环境(IDE),专门用于Java语言开发,但也支持其他多种语言和技术。IDEA以其智能代码助手、代码自动提示、重构工具、对多种版本控制工具(如GitSVN)的集成、JUnit支持、代码分析和创新的GUI设计而著称。12

IDEA由捷克共和国首都布拉格的JetBrains公司开发,这家公司以开发高质量的IDE和其他编程工具而闻名。JetBrains的产品线还包括其他IDE和编辑器,如WebStormPyCharmPhpStorm等,用于支持多种编程语言和开发技术。

IDEA的特色功能包括智能选取、丰富的导航模式、历史记录功能、对JUnit的完美支持以及对重构的优越支持。它还提供了丰富的工具,帮助开发者编写高质量的代码,包括自动完成功能、集成的调试器、可视化的用户界面设计器等。IDEA有两个版本:旗舰版和社区版。旗舰版支持更多语言和高级功能,而社区版则主要支持Java和Kotlin等语言。

2.5  mysql数据库介绍

利用MYSQL的数据独立性、安全性等特点,在软件项目中对数据进行操作,可以保证数据准确无误,并降低了程序员的应用开发时间。

MYSQL的特点是支持多线程,能方便的对系统资源充分利用,有效提高速度,还提供多种方式途径来对数据库进行连接;MYSQL的功能相对弱小、规模也小,但本系统要求不高,MYSQL完全可以满足本网站使用。

利用MYSQL建立系统数据库,不仅有利于数据处理业务的早期整合,还能利于发展后两种数据扩展的操作。

2.6  B/S架构

B/S结构是目前使用最多的结构模式,它可以使得系统的开发更加的简单,好操作,而且还可以对其进行维护。使用该结构时只需要在计算机中安装数据库,和一些很常用的浏览器就可以了。浏览器就会与数据库进行信息的连接,可以实现很多的功能,B/S结构是可以直接进行使用的,而且B/S结构在使用中极大的减少了工作的维护。基于B/S的软件,所有的数据库之间都是相互独立的,因此是非常安全的。因为基于B/S结构可以清楚的看到系统正在处理的业务,并且能够及时的让管理人员做出决策,这样就可以避免企业的损失。B/S结构的基本特点是集中式的管理模式,用户使用系统生成数据后,这些数据就可以存储到系统的数据库中,方便日后能够用到,这样就可以满足人们的所有的需求。

图2-1  B/S模式三层结构图

 

 

3.系统分析与设计

3.1 可行性分析

一个完整的系统,可行性分析是必须要有的,因为他关系到系统生存问题,对开发的意义进行分析,能否通过本网站来补充线下超市进销存管理模式中的缺限,去解决其中的不足等,通过对本网站,不仅能使工作量不断地减少,还能使工作和管理的效率更加高。所以开发该网站能实现更大的意义和价值,网站完成后,能否达到预期效果就要通过可行性分析,分析之后,决定此系统是否开发。该超市进销存系统的开发设计中,对技术、经济、操作方面进行了可行性分析;

3.1.1 技术可行性

本系统开发选择java语言,它被研究的目的就是在于能够为网页创建等可以看到的信息。随着移动互联网技术的不断发展和创新,java俨然已成为下一代互联网的Web标准。所以后台设计选择使用mysql数据库主要用来的建立和维护信息。对于前台开发要求应具备功能完善、易于操作等优点,后台数据库的要求则是能够建立和维护数据信息的统一性和完整性。

3.1.2 操作可行性

现在随着科技的飞速发展,计算机早已经进入了人们的日常生活中,人们的工作环境也不像以前有那么多的要求,需要员工一定要到公司办公,有的工作在家也可以完成。这使得人们的工作效益有了很大的提高。操作的多样性也变高了。因此,管理的计算机化,智能化是社会发展而带来的必然趋势,各种智能的软件层出不穷,不同的软件能完成用户不同的需求,这不仅提高了工作效率还能完成一些客户特定的一些需求。本系统不仅界面简洁明了还采用可视化界面,用户只要用鼠标和键盘就可以完成对相关信息的修改,删除,添加等操作。因为这个系统的操作十分简单,方便上手,对于第一次使用系统的人,只需要很少的时间就可以上手操作。由此可见,本系统在操作上是可行的。

3.1.3经济可行性

基于springboot的超市进销存系统,该网站软件开发仅需要一台普通的计算机便可完成实现开发,其成本很低。另外,作为毕业设计作品来讲,开发成本基本上可以忽略不计,且该系统软件的投入使用,可以实现更加快速高效的超市进销存管理,同时还能实现对人力资源和管理资源的有效节约,该超市进销存系统在经济上完全可行。

3.2  需求分析

利用springboot、Java、idea和mysql数据库等知识点,结合相关设计模式、以及软件工程的相关知识,设计一个超市进销存系统,来进行记录员工的信息,以及系统信息的增删改查的功能,根据实现需求,系统需完成这些基本功能:

(1)系统显示,管理员界面和员工界面等界面。

(2)管理员和员工所有的信息都保存与数据库中。

(3)对超市进销存信息能够进行查询、修改、删除、添加等操作。

3.3  总体设计

根据超市进销存系统的功能需求,进行系统设计。

由管理员和员工,主要功能包括首页、个人中心、员工管理、客户管理、供应商管理、承运商管理、仓库信息管理、商品类别管理、 商品信息管理、采购信息管理、入库信息管理、出库信息管理、销售订单管理、部门管理、岗位管理等功能;

系统对这些功能进行整合,产生的功能结构图如下:

图3-1 系统总体结构图

3.4  数据库设计与实现

在每一个系统中数据库有着非常重要的作用,数据库的设计得好将会增加系统的效率以及系统各逻辑功能的实现。所以数据库的设计我们要从系统的实际需要出发,才能使其更为完美的符合系统功能的实现。

3.4.1  数据库概念结构设计

数据库的E-R图反映了实体、实体的属性和实体之间的联系。下面是各个实体以及实体的属性。

员工注册实体属性图如下所示:

图3-2员工注册实体属性图

供应商管理实体属性图如下所示:

图3-3供应商管理实体属性图

3.4.2主要业务数据库具体设计

根据E-R图,设计每张表的变量名,变量的类型及主键等如下。

表3-1:客户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

address

timestamp

地址

CURRENT_TIMESTAMP

contact

varchar

200

联系人

name

longtext

4294967295

 姓名

number

varchar

联系电话

remarks

varchar

备注

is_del

bigint

是否删除

表3-2商品信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

code

timestamp

创建时间

CURRENT_TIMESTAMP

inventory_quantity

varchar

200

库存数量

min_num

varchar

200

库存下限

model

varchar

200

商品型号

name

varchar

200

商品名称

producer

varchar

200

生产产商

purchasing_price

varchar

200

购买价格

remarks

varchar

200

评论

selling_price

int

售卖价格

unit

varchar

200

商品单位

type_id

varchar

200

 类别

state

varchar

200

商品状态

last_purchasing_price

varchar

4294967295

上次采购价格

is_del

int

是否删除

表3-3商品类别

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

name

varchar

类别名称

CURRENT_TIMESTAMP

p_id

varchar

200

父级类别

state

varchar

节点状态

icon

节点图标

表3-4员工

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

bz

timestamp

备注

CURRENT_TIMESTAMP

password

varchar

200

 密码

true_name

varchar

200

真实姓名

user_name

varchar

200

 用户名

remarks

varchar

200

备注

Is_del

varchar

200

是否删除

表3-5进货单表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

amount_paid

timestamp

实付

CURRENT_TIMESTAMP

amount_payable

varchar

200

应付

purchase_date

datetime

200

进货日期

remarks

varchar

200

备注

state

datetime

 交易状态

purchase_number

int

进货单号

supplier_id

longtext

4294967295

供应商

user_id

varchar

200

操作用户

表3-6销售单表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

amount_paid

timestamp

实付

CURRENT_TIMESTAMP

amount_payable

varchar

200

应付

sale_date

datetime

200

销售日期

remarks

varchar

200

备注

state

datetime

 交易状态

Sale_number

int

销售单号

supplier_id

longtext

4294967295

供应商

user_id

varchar

200

操作用户

表3-7供应商表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

address

timestamp

地址

CURRENT_TIMESTAMP

contact

varchar

200

联系人

name

longtext

4294967295

 供应商姓名

number

varchar

联系电话

remarks

varchar

备注

is_del

bigint

是否删除

4.系统功能的具体实现

4.1 登录和菜单管理

登录,管理员和员工通过填写用户名、密码等信息,选择角色进行登录等操作,如图4-1所示。

图4-1登录界面图

菜单管理;在员工注册页面中输入员工账号、密码、确认密码、员工姓名、员工电话等内容进行员工注册操作;如图4-2所示。

图4-2员工注册界面图

4.2 管理员业务功能模块

管理员登录进入超市进销存系统可以查看首页、个人中心、员工管理、客户管理、供应商管理、仓库信息管理、商品类别管理、 商品信息管理、采购信息管理、入库信息管理、出库信息管理、销售订单管理、部门管理、岗位管理等功能进行详细操作;如图4-3所示。

图4-3管理员功能界面图

员工管理;在员工管理页面中可以查看索引、员工账号、员工姓名、角色进行详情、修改或删除等操作;如图4-4所示。

图4-4员工管理界面图

客户管理,在客户管理页面中可以查看索引、客户编号、客户姓名、客户头像、客户电话、客户地址等内容进行详情、修改或删除等操作,如图4-5所示。

图4-5客户管理界面图

供应商管理,在供应商管理页面可以查看索引、供应商编号、供应商名称、供应商电话、供应商地址、负责人等内容进行详情、修改或删除等操作,如图4-6所示。

商品采购统计管理,在统计页面可以看到采购商品供应商,类型属性等内容查询概览操作,如图4-7所示。

图4-7商品采购统计管理图

当前库存信息管理;在仓库信息管理页面中可以查看索引、仓库号、仓库名称、仓库位置、仓库类型等内容进行详情、修改或删除等操作;如图4-8所示。

图4-8库存信息管理界面图

商品信息管理;在商品信息管理页面中可以查看索引、商品编号、商品名称、商品类别、商品图片、规格、品牌、价格、数量、产地、仓库号、仓库名称等内容进行详情、修改或删除等操作;如图4-9所示。

图4-9商品信息管理界面图

进货信息管理;在采购信息管理页面中可以查看索引、采购编号、供应商名称、商品名称、 商品类型、采购数量、登记时间、员工账号、员工姓名、审核回复、审核状态、审核等内容进行详情、修改或删除等操作;如图4-10所示。

图4-10采购信息管理界面图

销售订单管理;在销售订单管理页面中可以查看索引、订单编号、客户姓名、商品名称、 价格、订单数量、订单总价、订单时间、员工账号、员工姓名、审核回复、审核状态、审核等内容进行详情、修改或删除等操作;如图4-11所示。

图4-11销售订单管理界面图

角色管理;在角色管理页面中可以查看索引、角色名称等内容进行详情、授权,修改或删除等操作;如图4-12所示。

图4-12角色管理界面图

4.3员工功能模块

员工登录进入超市进销存系统可以查看首页、个人中心、仓库信息管理、 商品信息管理、采购信息管理、入库信息管理、出库信息管理、销售订单管理等功能进行详细操作;如图4-14所示。

图4-14员工功能界面图

员工和管理员的区别在于没有系统管理其他功能相同

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

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

相关文章

Java—反射机制详解

介绍反射 反射的基本概念 反射(Reflection)是Java语言中的一种机制,它允许程序在运行时检查和操作类、接口、字段和方法等类的内部结构。通过反射,你可以在运行时获取类的信息,包括类的构造器、字段、方法等&#xf…

k8s StorageClass 存储类

文章目录 一、概述1、StorageClass 对象定义2、StorageClass YAML 示例 二、StorageClass 字段1、provisioner(存储制备器)1.1、内置制备器1.2、第三方制备器 2、reclaimPolicy(回收策略)3、allowVolumeExpansion(允许…

从碎片到整合:EasyCVR平台如何重塑城市感知系统的视频数据生态

随着城市化进程的加速,城市感知系统作为智慧城市的重要组成部分,正逐步成为提升城市管理效率、保障公共安全、优化资源配置的关键手段。EasyCVR视频汇聚融合平台,凭借其强大的数据整合、智能分析与远程监控能力,在城市感知系统中扮…

Sam Altman的博客:The Intelligence Age

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

thinkphp 做分布式服务+读写分离+分库分表+负载均衡(分区)(后续接着写)

thinkphp 做分布式服务读写分离分库分表负载均衡(分区) 引言 thinkphp* 大道至简负载均衡分布式服务一、读写分离1、读写分离的实现方式2、主从同步的三种模式2-1、异步模式(mysql async-mode)2-2、半同步模式(mysql s…

红帽rhce含金量?考到能拿多少钱工资?

随着目前国内的it职业飞速发展,rhce已经成为it职业的首选认证、高薪亮点。主要是linux人才出现大比例短缺的状况,很多企业对linux人才的需求也继续升温。 这个时候大家如果抓住了机会,那么实力就能得到质的提升,那么小编针对红帽…

OpenAI GPT-3 API: What is the difference between davinci and text-davinci-003?

题意:OpenAI GPT-3 API:davinci 和 text-davinci-003 有什么区别 问题背景: Im testing the different models for OpenAI, and I noticed that not all of them are developed or trained enough to give a reliable response. 我正在测试…

论文阅读【时间序列】ModerTCN (ICLR2024)

【时间序列】ModerTCN (ICLR2024) 原文链接:ModernTCN: A Modern Pure Convolution Structure for General Time Series Analysis 代码仓库:ModerTCN 简易版本实现代码可以参考:(2024 ICLR)ModernTCN:A Mod…

谁是AI界的老司机?谁最“纯洁”?谁能通过暧昧小短文的终极考验?

AI的能力已经让人们惊叹不已,不管是帮你写文章、答疑解惑,还是生成艺术作品,几乎无所不能。但如果让AI来解读一篇暗藏玄机、暧昧十足的小短文,结果会怎样?今天,我们就把几款顶流AI大模型拉出来,…

Cobalt Strike的下载与基本用法

CobaltStrike4.8 链接:百度网盘 请输入提取码 提取码:tgf3 what Cobalt Strike是一款渗透测试神器,常被业界人称为CS神器。Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端是一个&…

C++的扩充和封装

作业: 手动封装一个顺序表(SeqList),分文件编译实现 有私有成员:顺序表数组的起始地址 ptr、 顺序表的总长度:size、顺序表的实际长度:len 成员函数:初始化 init(int n) 判空:em…

Vue:默认插槽

目录 一.性质 1.内容分发 2.无名称标识 3.作用域 4.使用方式 二.使用 1.父组件 2.子组件 三.代码 1.父组件代码 2.子组件代码 四.效果 一.性质 1.内容分发 默认插槽允许组件的使用者定义一些内容,这些内容会被插入到组件模板中的特定位置。这有助于实…

C++:类中的特殊关键字,运算重载符

1.My_string类中重载以下的运算符&#xff1a; 、[] 、>、<、、>、<、&#xff01;、、输入输出(>>、<<) 主函数&#xff1a; #include <iostream> #include "my_string.h"using namespace std;int main() {My_string s1("cat…

QT客户端发送HTTP请求此时服务器到底收到了哪些数据?

一个Http请求包括 请求行 请求头 空行 请求体 下面是示例&#xff1a; 1,2,3,4分别代表上面的四个部分&#xff0c;我只是做了一些解析&#xff0c;具体可以结合代码 1. post / HTTP/1.1 2.GET请求头包括Host(主机名),user-agent&#xff08;客户端标识符&#xff09;&am…

AI Agent智能应用从0到1定制开发Langchain+LLM全流程解决方案与落地实战

大模型微调实战&#xff1a;精通、指令微调、开源大模型微调、对齐与垂直领域应用29套AI全栈大模型项目实战&#xff0c;人工智能视频课程-多模态大模型&#xff0c;微调技术训练营&#xff0c;大模型多场景实战&#xff0c;AI图像处理&#xff0c;AI量化投资&#xff0c;OPenC…

fiddler抓包11_列表显示服务器IP (配置文件)

请求列表默认不显示服务器IP字段&#xff0c;也无法从定制列窗口添加&#xff0c;可以修改CustomRules.js实现。 ① 菜单栏“Rules”&#xff08;规则&#xff09; - “Customize Rules...”&#xff08;自定义规则&#xff09;&#xff0c;打开CustomRules.js文件。 &#xf…

HarmonyOS NEXT:解密从概念到实践的技术创新与应用前景

HarmonyOS是目前华为手机所搭载的鸿蒙系统&#xff0c;它在Open Harmony的基础上兼容了安卓的AOSP&#xff0c;所以可以使用安卓APK应用&#xff0c;HarmonyOS属于华为在当前阶段过渡使用的系统&#xff0c;原生鸿蒙的应用生态尚未发展起来&#xff0c;兼容安卓应用可以让用户有…

【AI大模型】通义大模型API接口实现

目录 一、基础环境安装 &#xff08;一&#xff09;OpenAI Python SDK安装 &#xff08;二&#xff09;DashScope SDK安装 二、OPENAI接口实现 &#xff08;一&#xff09;文本输入 &#xff08;二&#xff09;流式输出 &#xff08;三&#xff09;图像输入 &#xff0…

Python 字符串的常见方法

Python 字符串的常见方法 字符串是 Python 中非常重要的数据类型之一。在日常编程中&#xff0c;我们经常需要对字符串进行各种操作&#xff0c;比如分割、连接、替换等。Python 提供了丰富的字符串方法&#xff0c;使得这些操作变得简单而高效。本文将详细介绍一些常见的字符…

【Docker】Docker快速入门

Docker学习笔记 一、Docker概述 为什么会出现Docker? 安卓开发流程&#xff1a;apk(java开发的)发布到应用商店&#xff0c;用户安装apk即可使用。 后端开发流程&#xff1a; jar(java开发的)带上环境发布到Docker仓库&#xff0c;用户从Docker仓库拉取镜像并部署。 总结…