点击下载源码
基于JAVA的进销存管理系统的设计与实现
摘 要
进入21世纪以来,商业管理中需要处理的数据和信息越来越多。大量的数据和繁杂的数据使得古老的手工处理数据的方式渐渐显得力不从心。甚至有些信息处理的方式在手工处理的模式下是根本无法是实现的,只能利用计算机的高运行频率来进行迭代计算。而且最近国家正在提倡大众创业,中小型企业很多。中小企业在我国经济发展中具有重要地位,目前我国的中小企业数量多,地区分布广泛,行业分布跨度大。随着全球经济一体化的发展和电子商务的兴起,中小企业之间的竞争将越来越激烈。网络及电子商务的迅猛发展突破了时间、空间的局限性,给中小企业带来了更多的发展机会,同时也增大了企业之间的竞争强度。这就要求中小企业必须改变企业的经营管理模式,提高企业的运营效率。随着技术发展,电脑操作及管理日趋简化,电脑知识日趋普及,同时市场经济快速多变,竞争激烈,企业采用电脑管理进货、库存、销售等诸多环节也已成为必然趋势。
关键词:进销存管理系统;B/S结构;mysql数据库;JSP;spring;springMVC;spring boot;JPA
目 录
第一章 绪论 1
1.1 研究背景和意义 1
1.2 研究目标 1
1.3 论文结构 1
1.4 本章小结 2
第二章 相关技术与方法 3
2.1 架构概述 3
2.2 关键技术简介 3
2.3 开发工具 4
2.4 本章小结 5
第三章 系统分析 6
3.1 可行性分析 6
3.2 需求分析 6
3.3 本章小结 15
第四章 系统设计 16
4.1 系统类分析 16
4.2 关键业务设计 21
4.3 数据库设计 23
4.4 本章小结 33
第五章 系统实现 35
5.1 用户登录 35
5.2 采购管理 37
5.3 库存管理 39
5.4 销售管理 42
5.5 备份与恢复 43
5.6 本章小结 46
第六章 系统测试 47
6.1 系统测试综述 47
6.2 测试用例 48
6.3 测试分析 51
6.4 本章小结 52
第七章 总结 53
参考文献 54
致 谢 55
第一章 绪论
1.1 研究背景和意义
目前,许多的中小企业普遍存在一个问题:企业的决策者看到的进销存资料及相关报表都是比较繁杂,让本应该一目了然的结果因信息的分散使得产生的结果无法保持一致和完整,造成企业在进销存管理上问题很多。由此发展而来的进销存管理系统就能够很好的解决上面出现的问题,能够将数据快速转化为有效信息,为企业管理者制定生存发展决策提供了依据。
在现今社会中,各个产品的质量都相差不大,现在顾客对个性化服务的期望值越来越高,在产品质量一样的情况下顾客更看重的是哪家的服务更好。企业的竞争已渐渐从产品的竞争这个战场转变到服务的竞争这个战场,因此企业要发展的话就必须要进一步优化业务流程来提高企业自身的竞争能力。因此,加强进销存管理是企业能适应现阶段发展的必然,通过计算机来快速准确地完成大量本来由人工手工完成的工作,这是真正达到合理和充分利用现有资源,减轻了员工的工作压力,提高了企业的生产效率。
信息已深入到现代社会的各个行业,因此信息的管理需要有一个信息管理系统,进销存管理系统就是这样一个系统。进销存管理系统开发的市场将是非常庞大的。在这飞速发展的信息时代,这类的信息管理系统的开发为中小型企业带来了方便和有效的信息,促进了经济的发展。
1.2 研究目标
实现一个进销存管理系统,实现对企业运作过程中的进货、销售、仓储的电子化操作,可以节省大量人力物力,可以说对企业的运作带来不可限量的好处。实现一个简单实用,操作界面友好的进销存管理系统是首要解决的任务。然后一是要实现对库存数据进行分析,对接下来的进货进行一些指导;二是实现对销售数据的采集分析,对企业决策者对下一个季度或者年份的销售计划提供一个参考的功能。系统肯定要具备对进销存的一些基本的增删改查操作。
1.3 论文结构
第一章绪论:主要叙述了进销存管理系统开发的缘由和意义,也就是开发这个系统的背景。开发这个系统有哪些优点,开发的这个系统具备哪一些功能,或者说能开发出哪些功能,对这些功能进行了一个概述。
第二章相关技术和方法:本章节首先是概述了系统的结构,用那些技术搭建的开发环境;接下来是简单介绍了一下关键功能和是怎么实现这些关键功能;最后是介绍了用到的开发工具。
第三章系统分析:本章节的重点系统分析,主要从可行性分析和需求分析两方面入手。可行性分析从技术可行性、经济可行性、操作可行性三个方面进行综合分析,最终得出系统开发的可行;需求分析从两个方面分析:系统总体需求和用例图分析,从这两个方面确定系统是可行的。
第四章系统设计:本章节主要分为系统类设计、关键业务设计、数据库设计三个模块。系统类设计主要是用类图来呈现系统中类的一些属性和功能;关键业务设计主要是用顺序图来直观的呈现这些功能的处理流程和处理步骤;数据库设计首先是用了ER图来直观的把数据库表的一些属性表示出来,其次对涉及到的每一张表都进行了分析和介绍。
第五章系统实现:本章节主要是对核心功能介绍,首先是功能描述,然后附上实现的界面,接下来详细描述功能的实现过程并且附上实现这些功能的核心代码。
第六章系统测试:本章是说明测试目标和测试计划,对测试目标给出测试用例,并分析测试结果是否达到系统预期,如未达到提出改进的措施。
第七章总结:本章主要是对进销存系统的设计的整个过程做一个总结,说明本论文的结构组成,从绪论开始到总结结束,对每一个大的章节内容进行简单的叙述。并且阐述了自己的收获与不足,给出不足的解决方案。
1.4 本章小结
本章从研究的背景开始,叙述了进销存管理系统开发的整个流程,为什么要开发这个系统,开发这个系统有啥优势。其次就是描述了本系统需要开发出什么的功能,需要具备什么样的功能,能否开发出这些功能。最后对正文的每个章节进行了一个简单的描述。
第二章 相关技术与方法
2.1 架构概述
本系统设计采用的是MAVEN + SPRING BOOT+ JPA 的架构来搭建的项目。Maven是一个不错的项目管理工具,它包含了一个项目对象模型,一组标准集合,一个项目生命周期,一个依赖管理系统,和用来运行定义在生命周期阶段中插件目标的逻辑。由于 Maven 的缺省构建规则具有不错的可重用性,因此用Maven 可以快速的构建项目。Spring Boot是由Pivotal团队提供的全新框架,设计这个框架目的就是用来简化Spring应用的初始搭建以和开发过程。这个框架使用了特定的方式做配置,因此开发人员不需要和传统的Spring应用一样写大量的配置文件。Springboot具有以下优势:创建的Spring应用程序是独立的;本身嵌入了Tomcat,无需部署WAR文件;Maven配置作了简化;自动配置Spring。因此用maven加上spring boot可以让我们快速的搭建起项目来,可以省去很多繁琐的步骤。
JPA全称为Java Persistence API,是通过注解或者XML来描述对象-关系表的映射关系,并且可以将在运行的Entity类对象存储到数据库中去。使用JPA可以打破一般简单持久化框架的局限,在我们开发企业级应用中发挥更大作用,因为JPA支持容器级事务:大数据集、事务、并发等。使用JPA创建实体非常简单,就和我们平常创建一个JAVA类一样,不存在任何的约束和限制,我们只需要在对应的实体上标注javax.persistence.Entity注解即可;开发人员很容易就可以掌握JPA,因为JPA没有特殊的规则和太多的设计模式,框架和接口都很简单。JPA采用的原则是非侵入式原则,因此对其他框架的兼容性很好,易于和其他框架集成。JPA中定义了和Hibernate HQL相似的QL:JPQL,它是EJB QL的一种拓展,操作的对象是实体,而不是关系数据库的一张表。而且能够正常的支持SQL才能够提供的高级查询特性:批量修改和更新、JOIN、GROUPBY、HAVING等,并且支持子查询功能。最重要的是JPA也支持面向对象的高级特性,这样的话开发者在开发企业级应用时能够最大化的使用面向对象的模型来设计,而不用自己来处理这些特性的持久化。
用这三个技术搭建项目框架,可以快速完成,省去许多简单繁杂的步骤,对于我们快速开发是有非常大的优势的。
2.2 关键技术简介
作为一个进销存管理系统,其最根本的功能还是在对采购管理、销售管理和库存管理上面,其他的功能都是在这个的基础上才能够开发出来。基础功能也就是对进货、销售和库存的增删改查。其中对进货订单的添加和销售订单的添加,每个订单都含有一个或者多个商品,因此订单生成时做了跟购物车类似,我们可以把商品一个一个添加到这个购物车上,等我们商品添加完成,此时可以提交订单,这样就产生 了一个进货订单或者销售订单。跟数据库打交道肯定少不了连接数据库的技术,在本系统用到的是JPA,JPA本身有许多默认的增删改查的方法,并且不用写配置文件,而且可以自己个性化定制sql语句,只需要写一个接口继承JPARepository接口,然后在这个接口里写抽象方法,在方法上写注解就可以了,很方便。
首先是数据分析功能,因为我们本身数据库里存有大量的销售数据库,所以我们就不用去收集数据了,直接对数据库里的数据进行分析即可。第一阶段:探索性数据分析,因为数据库里的数据是杂乱无章的,因而看不出规律。因此我们需要通过作图、表格、用各种形式的方程拟合、计算某些特征量等手段来找出某些可能的关联或某些隐含在数据中的规律。第二阶段:选定模型进行分析,接下来我们通过前面的初步操作,在探索性分析的基础上提出一种或几种可能的模型,然后通过进一步分析从里面挑选最符合当前发展的几个模型。第三阶段:推断分析,使用数理统计方法对第二阶段所定的模型做出以下判断:估计的可靠程度,精确程度作出推断。选定最终的模型。
其次是数据备份功能,企业在运转中,系统难免会出现一些突发情况导致数据的丢失、损坏。因此当出现这些情况时,我们就需要把备份的数据恢复到数据库中去。备份数据时会占用较大的IO资源的,因此我们需要选择一个对系统影响尽可能地小的时段来进行数据的备份;对重要的数据,要保证在极端情况下的数据都可以正常恢复。在选择备份方案时要考虑到实施方案的可操作性和经济性,因此选择了逻辑备份,此方法不需要数据库运行在归档模式下,不但备份简单,而且可以不需要依赖外部存储设备。
2.3 开发工具
系统前段页面采用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作为开发、编译环境。
2.4 本章小结
本章主要简单叙述了系统使用了的框架、用了哪些开发工具。重点介绍如何实现系统的核心功能,还有实现这些功能用到了哪些技术,对这些方面进行了阐述。
第三章 系统分析
3.1 可行性分析
3.1.1 技术可行性
基于本项目用到的spring boot、JPA、mysql、jQuery等技术都已经是成熟的开发技术了,完全可以满足本项目的开发需求。项目主要功能所涉及的一些技术都能是能够实现的,因此在技术上是可行的。
3.1.2 经济可行性
企业在运转过程中信息的系统化管理,运用电脑对数据进行自动化的统计,为企业在制定经营决策时提供了大量的、权威的科学数据;强大的进销存数据统计功能,大大简化了员工的日常工作,工作效率提高了很多,大大降低了人工管理过程中数据易错所带来的一系列的不良反应,提高了企业的经济效益。可以节省大量的人力物力,并且现在不会存在之前人工操作产生的人工误差的情。可以说是大大提高了企业的经济效益。因此,本系统在经济上也是可行的。
3.1.3 操作可行性
本项目因为有友好的交互界面,所以每位企业员工都能够轻松学会去操作本系统,因为操作人员只需要把数据输入进去,数据都是自动去计算的,因此可以省去以前需要手动计算的劳动,并且效率高好多。而且以前都是手动计算不仅容易出错,而且还费时费力;现在都是程序自动计算,在减小了出错的概率的同时还节省了人力物力、提高了工作效率。可以说对企业的运转是大大节省了花费,并且提高了生产效率。综合考虑本系统在操作上是可行的。
3.2 需求分析
3.2.1 系统总体需求
系统需要具备以下功能:
⑴一般企业人员的计算机知识掌握的不多,因此要求有良好的人机交互界面,这样对操作这个系统的企业人员比较友好。
⑵对于本系统使用对象的不同,需要给予不同的权限。
⑶支持多条件语句查询,方便进销存数据的查询。
⑷基础信息管理与查询(包括商品信息、客户信息、供应商信息)。
⑸一键点击,能够直接查看仓库所有商品的库存信息。
⑹方便、健全的账单统计功能。
⑺图表分析年销售状况。
⑻商品销售排行统计。
⑼当停电、网络病毒的原因损坏本系统数据时,系统可以还原系统的数据。
⑽各种数据的统计计算自动完成,尽可能的减少人工干预。
⑾系统退出。
表3-1 质量要求
主要质量属性 详细要求
正确性 按照需求正确执行任务,完成各个模块的相应要求。
健壮性 具有较高的容错能力和恢复能力。
性能效率 响应用户的请求的时间越短越好。
易用性 系统开发过程中应该有详细的文档,这样让别人能够更好的使用。
安全性 防止软件受到意外或蓄意的存取、使用、修改、毁坏或泄密导致系统的数据丢失。
可扩展性 能方便的进行二次开发,满足对功能的扩展或提高并能提高相应的安全机制。
兼容性 不易与其他软件起冲突。
3.2.2 用例图分析
图3-1系统管理用例图
系统管理用例有配置系统、管理部门、管理员工、管理权限,这里主要介绍一下管理权限,具体说明见表3-1:
表3-1管理权限
用例编号 UC01
用例名称 管理权限
用例概述 系统管理员通过此用例管理系统中的用户的操作权限
主参与者 管理员
前置条件 管理员身份正确登录
基本事件流 步骤 活动
A1 选择需要的操作,增加、修改、删除用户权限
A2 输入用户权限信息
A3 保存输入的信息
扩展事件流 1a 用户名不存在,返回提示信息
1b 操作权限不存在,返回提示信息
图3-2财务用例图
财务用例有查询应收款项、记录应收应付款项、管理发票,这里主要介绍一下记录应收应付款项,具体说明见表3-2:
采购部分用例有两个角色采购员和采购经理。采购员用例有采购单、管理供应商、管理商品信息;采购经理用例有审批采购单、管理商品分类。具体说明见表3-3至表3-4:
表3-3采购单
用例编号 UC03
用例名称 采购单
用例概述 采购员通过此用例来生成采购单
主参与者 采购员
前置条件 无
基本事件流 步骤 活动
A1 选择需要的操作,增加、修改、删除采购单
A2 输入需要采购的商品信息
A3 保存输入的信息
扩展事件流 1a 输入的商品不存在,返回提示信息
1b 输入商品信息错误,返回提示信息
表3-4审批采购单
用例编号 UC04
用例名称 审批采购单
用例概述 采购经理通过此用例来对采购员生成的采购单审批
主参与者 采购经理
前置条件 采购经理身份正确登录
基本事件流 步骤 活动
A1 选择需要审批采购单
A2 审批采购单
扩展事件流 1a 采购单不存在,返回提示信息
库存部分总共有质检员、库存管理员、仓库经理三个角色,涉及到的用例比较多,这里具体介绍一下出入库单、确认入库单、开出库单、统计库存信息、出调拨单,具体说明见表3-5至表3-9:
3.3 本章小结
本章主要是进行了系统的分析,首先第一节是可行性分析,从技术可行性、经济可行性、操作可行性三个角度对系统分析是否是可行的,最终得出本系统是可行的。第二节是需求分析分析了系统所具备的一些的功能,然后重点介绍了一些特色功能。接着第二节是需求分析,第一小节阐述了系统的总需求,应该具备哪些功能;第二小节通过用例图对需求主要功能进行了具体分析。
第四章 系统设计
4.1 系统类分析
经分析,该系统核心业务类见下图:
图4.1 系统核心类
4.1.1 MANAGER类
MANAGER类用于记录系统的用户信息,并完成登陆和注销的操作。