福佳生活超市进销存管理系统
摘 要
随着超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长。超市时时刻刻都需要对商品各种进销存信息进行统计分析。超市进销存管理系统开发的主要目是使超市的进销存管理方便、简介,提高超市进销存管理的工作效率,在某种意义上讲,给中小型超市提供了新的有利条件,增强了超市的核心竞争力,成为超市管理的必备工具。
该系统以Java编程语言、Mysql和springboot等为开发技术,实现了添加、修改、查看、删除系统数据。本系统采取组件化的方式对系统进行拆分,并对数据库中各个表的增删查改、表与表之间的约束关系进行分析与设计,最终实现符合用户需求功能的商业级应用。
系统界面简洁大方,布局合理,易操作易上手。对应用户的每一步操作,系统都能高响应地做出反馈。系统具体包含对用户的管理、商品类型、商品管理、供应商、入库、销售、退货等功能,为小型生活超市提供一个管理平台,实现对数据的高效、安全地管理。
关键词:超市,进销存,Java编程语言
Purchase, sales and inventory management system of Fujia life supermarket
Abstract
With the continuous expansion of the scale of supermarkets, the number of commodities has increased sharply, and the amount of information about commodities has doubled. Supermarkets need to make statistical analysis of various purchase, sales and inventory information of commodities all the time. The main purpose of the development of supermarket inventory management system is to make the supermarket inventory management convenient and simple, and improve the work efficiency of supermarket inventory management., In a sense, it provides new favorable conditions for small and medium-sized supermarkets, enhances the core competitiveness of supermarkets, and becomes a necessary tool for supermarket management.
With the continuous expansion of the scale of supermarkets, the number of commodities has increased sharply, and the amount of information about commodities has doubled. Supermarkets need to make statistical analysis of various purchase, sales and inventory information of commodities all the time. The main purpose of the development of supermarket inventory management system is to make the supermarket inventory management convenient and simple, and improve the work efficiency of supermarket inventory management., In a sense, it provides new favorable conditions for small and medium-sized supermarkets, enhances the core competitiveness of supermarkets, and becomes a necessary tool for supermarket management. The system takes Java programming language, MySQL and springboot as development technologies to add, modify, view and delete system data. The system adopts a component-based way to split the system, and analyzes and designs the addition, deletion, query and modification of each table in the database, and the constraint relationship between tables, so as to finally realize the commercial application that meets the user's needs.
The system interface is simple and generous, the layout is reasonable, easy to operate and start. The system can respond to each step of the user's operation with high response. The system specifically includes the functions of user management, commodity type, commodity management, supplier, warehousing, sales, return and so on. It provides a management platform for small life supermarkets to realize the efficient and safe management of data.
Key words:Supermarket, invoicing, Java programming language
目 录
致谢 29
随着市场经济的建立,市场竞争日趋激烈,经济环境及用户需求的不确定性大大增加,供应链管理系统能够随着发展和变化不断修正和强化计划的内容,超市能够评估供应链中的各个环节、事件和客户需求变化对超市的影响,从而在市场竞争中掌握先机。人类今天已经进入后工业时代。商品的库存不断产生,新的商品种类不断涌现。人们面临着对商品的管理的繁琐和不方便的问题,如何解决这一问题成为广大超市的首选问题。要参与市场的竞争,需要增强现代科技的意识,积极主动采用先进的组织方式和管理技术。任何商业行为都离不开对成本有关的过程的分析,否则就无法对利润进行管理。商品的进销存管理是商业活动一个重要组成部分,它会影响超市内部的很多方面。所以商品的进销存管理是超市的一大重点问题。
我国的计算机科技赈灾快速的发展。各个超市也应用了适合自己的不同管理系统,如何让商品的进销存管理更加的方便、快捷、准确成为首要问题,只有管理的好,才能和其他超市竞争,才能更好的为客户服务。超市进销存系统恰恰为各大超市提供了商品进销存管理的良好平台。
近年来,各大都市的商圈零售规模呈逐年上升趋势,随着超市规模的发展不断扩大,具有经营品种丰富、更新速度快、交易高峰时间顾客交易频繁、速度快准确性要求高的特点。每日甚至每时将这些频繁交易的真实情况实时地采集、汇总、分类、处理,生成各种账目、报表,并将进、销、存、结及资金分布等情况迅速反映出来,其往来业务非常繁杂。超市在时时刻刻需要对商品各种信息进行统计分析。随之而来的也产生了超市管理系统。
六个章节共同组成了本文研究及设计内容,包括:
第一章:绪论。本文章的开头部分,对本题目的研究背景和研究意义等一些做文字性的描述。
第二章:研究了生活超市进销存管理系统所采用的开发技术和开发工具
第三章:系统分析。包括系统总体需求描述、功能性角度分析系统需求、非功能性等各个方面分析系统是否可以实现。
第四章:系统设计。本文章的重要部分,提供了系统架构的详细设计和一些主要功能模块的设计说明。
第五章:系统实现。将本系统分为前提的开发工具介绍和后期的功能代码实现。
第六章:系统测试。系统完成后,根据各个模块的测试用例才对各个模块进行功能测试。
第七章:结论。对系统进行了认真的总结,以此对未来有一个新的展望。
本系统前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型。后端部分:采用springboot作为开发框架,同时集成MyBatis、Redis等相关技术。
-
- MVVM模式
MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。
-
- MySQL数据库
科技的进步,给日常带来许多便利:教室的投影器用到了虚拟成像技术,数码相机用到了光电检测技术,比如超市货物进出库的记录需要一个信息仓库。这个信息仓库就是数据库,而这次的生活超市进销存管理系统也需要这项技术的支持。
用MySQL这个软件,是因为它能接受多个使用者访问,而且里面存在Archive等。它会先把数据进行分类,然后分别保存在表里,这样的特别操作就会提高数据管理系统自身的速度,让数据库能被灵活运用。MySQL的代码是公开的,而且允许别人二次编译升级。这个特点能够降低使用者的成本,再搭配合适的软件后形成一个良好的网站系统。虽然它有缺点,但是综合各方面来说,它是使用者的主流运用的对象。
B/S(Browser/Server)比前身架构更为省事的架构。它借助Web server完成数据的传递交流。只需要下载浏览器作为客户端,那么工作就达到“瘦身”效果, 不需要考虑不停装软件的问题。
Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。
-
- Vue.js 主要功能
Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。
Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能驱动复杂的单页应用。
- 系统分析
开发软件有没有触犯法律,这涉及到软件或者系统能不能发布的问题。如果触犯了法律,就必将会受到法律的制裁。常见法律问题就是软件抄袭问题,若是抄袭别人软件,将会受到严厉惩罚。
软件产业经过多年的发展,现在已经达到了很大的规模,从事软件开发的专业人员不计其数,软件产业的重要性已经上升到了影响和推动国民经济发展的核心地位。本系统基于的架构,目前技术已经非常的成熟,是不存在技术上面难以实现的麻烦。
开发软件所需的时间、人力和物力成本,开发完成后的收益如何,从投资回报的角度软件所需功能在现有经济条件能不能实现等进行深入的考虑,都符合实际的要求。所以洗衣店管理系统具有经济可行性和实用性,可以节约管理成本
在生活超市中,由于商品种类、数量繁多,超市的各级管理人员需要及时了解商品的进销存信息,这些原有系统无法满足,因而开发新系统势在必行,这一点从超市的管理者到工作人员的认识是一致的。进销存是作为一种能力在超市内部进行定位的。信息化对进销存管理的发展发挥了重要作用,但它不能给进销存系统带来创新价值,唯有知识管理才具有创新功能,使进销存系统发生质的变化。进销存信息化注重信息技术的利用和信息收集、处理、传递,管理对象主要是业务信息,即显性知识。但信息管理只能“使信息成为行动的基础的方式”,不能使信息通过个人或组织的自身知识的作用而成为更有效的行为。任何员工接收信息后,必须结合自身经验、教训,经过思考方能做出行为决策。对于同种信息,不同人做出的决定不同,产生效益的程度也不同。可见对企业决策起实质影响的是人的经验、教训以及思维方式等看不见、摸不着的隐性知识,这是进销存信息化利用信息技术无法收集的。同时,员工也难以利用进销存信息系统借鉴、倾听员工获得的教训,参考最好的实践经验和进销存方面的知识进行知识复用和知识创新。本系统的开发为供应商、工程提供客户所需信息,为超市的各级管理人员提供超市信息及商品信息,并实现一系列功能。
通过市场调查,要求本系统具有以下功能:
1.统一友好的操作界面,能保证系统的易用性。
2.规范、完善的基础信息设置。
3.灵活的报表设计及打印功能。
4.实现供应商信息查询、库存显示、进货记录、销售记录、退货记录的全过程
5.全方位的信息查询功能。
6.系统日志详细记录各种操作,提供追查的有力依据。
7.完善的权限管理,增强系统的安全性。
8.强大的数据备份,保证系统数据的安全性。
系统需求整理如下:
1.信息的可得性
超市进销存系统所存储的信息,必须具有容易而且持之以恒的可得性,例如查询和录入的信息。这包括两个层面的含义,一是信息系统应能够向信息需求者提供简易、快捷的获取信息方式,而不受时空的限制。二是信息的存入,超市进销存系统必须能够快速而准确地将以书面为基础的信息转化为电子信息,保证第一时间提供最新的信息。信息的可得性能够减少超市作业上和制订计划上的不确定性,减少损失和浪费。
2.信息的精确性
超市进销存必须精确地反映超市当前的商品状况和库存状况。信息精确性的含义既包含了信息本身由书面信息转化为电子信息时的准确性,同时又包含了信息系统上所显示的存量信息与实际存货的一致性。
3.信息的及时性
超市进销存信息必须及时地提供快速的管理反馈,及时性要求一种活动发生时与该活动在信息系统内可见时的时间耽搁应尽可能的小。信息系统必须及时地更新系统内的信息,信息更新的时间间隔越长,信息系统所报告的信息与实际情形的偏差就越大,对进销存过程和其它活动过程的危害也就越大。
4.信息系统的灵活性
超市进销存系统业项具有高度的灵活性,以满足客户和员工的需求。因为客户的广泛性和需求的多样性,他们对信息的需求也是不尽相同,超市进销存系统必须有能力提供能迎合特定顾客需要的数据。
5.系统界面的易操作性
超市进销存管理系统必须是友善和易于操作的,这一方面是为了使管理者便于使用操作,同时也可提升工作效率。适当的系统界面要求提供的进销存信息要有正确的结构和顺序,能有效地向决策者提供所有相关的信息,避免管理者通过复杂的操作才能达到相应的要求。
系统非功能需求有非常多,比如性能需求、可承载最大用户数、稳定性、易用性需求等。本系统分析时考虑到易用性需求,因为系统是给人使用的,所以必须充分从用户的角度出发,考虑用户体验,使系统易理解易上手易操作。
1.职员主要使用系统的商品类型、商品管理、供应商、入库、销售、退货业务,下图所示为会员的用例图。
图3-1 职员员用例图
2.管理员主要负责用户管理(添加职员、删除职员、查询职员、重置信息)供应商管理(添加供应商、删除供应商)、商品管理(商品类型、入库、出库、销售、退货)、下图所示描述管理员的用例图。
图3-2 管理员用例图
登录模块主要满足管理员以及用户的权限登录用户登录流程图如下所示。
图3-3 登录流程图
用户可进入注册界面进行注册操作,用户注册流程图如图3-4所示
图3-4 注册流程图
-
- 数据流程分析
如下为系统的顶层数据流图,外部实体有用户和管理员,分别对系统输入数据,从而得到要输出的数据。
图3-4系统顶层数据流图
生活超市进销存系统选择B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式。适合在互联网上进行操作,只要用户能连网,任何时间、任何地点都可以进行系统的操作使用。系统工作原理图如图4-1所示:
图4-1系统工作原理图
-
- 系统功能结构
为了将系统从“做什么”落实到“怎么做”,基于系统设计原则,对系统功能进行更适合编码实现的功能划分。根据上图的系统架构设计,整理出规范的系统功能结构图,为系统的实现编码做好准备。
如下图所示为系统功能结构图。
图4-2系统功能结构图
用户可进行登录使用更多功能,首先进入用户登录界面,输入用户账号和密码,后台对账号和密码信息进行核对验证,验证成功则页面直接显示登录用户昵称代表登录成功,否则返回用户登录界面。用户登录活动图如下图。
图4-3用户登录活动图
一个好的数据库可以关系到程序开发的优劣,数据库设计离不开表结构的设计,还有表与表之间的联系,以及系统开发需要设计的数据表内容等信息。在进行数据库设计期间,要结合实际情况来对数据库进行针对性的开发设计。
4.4.1 E-R图,更加直观的告诉开发人员系统的各个数据的属性,各个数据之间的联系,各个数据的类型。能通过该模型更直观地了解数据库的设计,并根据对其逐渐改善。
本系统图设计,如下图所示。
图4-4系统E-R图
4.4.2逻辑设计
将实体属性模型转换为关系数据库应该遵循以下几个原则:
1.一个实体转换后要对应一个关系。
2.所有的主键必须要定义为非空(not null)。
3.针对二元联系也应该按照一对多、弱对实、一对一和多对多等联系来定义外键。
得到数据库的关系后,设计如下表结构。
表结构如下所示。
access_token表: | ||||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 | 类型 |
token_id | int | 11 | 是 | 主键 | 临时访问牌ID | |
token | varchar | 64 | 否 | 临时访问牌 | ||
info | text | 0 | 否 | |||
maxage | int | 2 | 是 | 最大寿命 | ||
create_time | timestamp | 0 | 是 | 创建时间 | CURRENT_TIMESTAMP | |
update_time | timestamp | 0 | 是 | 更新时间 | CURRENT_TIMESTAMP | |
user_id | int | 11 | 是 | 用户编号 | ||
auth表: | ||||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 | 类型 |
auth_id | int | 11 | 是 | 主键 | 授权ID | |
user_group | varchar | 64 | 否 | 用户组 | ||
mod_name | varchar | 64 | 否 | 模块名 | ||
table_name | varchar | 64 | 否 | 表名 | ||
page_title | varchar | 255 | 否 | 页面标题 | ||
path | varchar | 255 | 否 | 路由路径 | ||
position | varchar | 32 | 否 | 位置 | ||
mode | varchar | 32 | 是 | 跳转方式 | ||
add | tinyint | 1 | 是 | 是否可增加 | ||
del | tinyint | 1 | 是 | 是否可删除 | ||
set | tinyint | 1 | 是 | 是否可修改 | ||
get | tinyint | 1 | 是 | 是否可查看 | ||
field_add | varchar | 255 | 否 | 添加字段 | ||
field_set | varchar | 255 | 否 | 修改字段 | ||
field_get | varchar | 255 | 否 | 查询字段 | ||
table_nav_name | varchar | 255 | 否 | 跨表导航名称 | ||
table_nav | varchar | 255 | 否 | 跨表导航 | ||
option | text | 0 | 否 | 配置 | ||
create_time | timestamp | 0 | 是 | 创建时间 | CURRENT_TIMESTAMP | |
update_time | timestamp | 0 | 是 | 更新时间 | CURRENT_TIMESTAMP | |
commodity_management表: | ||||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 | 类型 |
commodity_management_id | int | 11 | 是 | 主键 | 商品管理ID | |
commodity_number | varchar | 64 | 否 | 商品编号 | ||
trade_name | varchar | 64 | 否 | 商品名称 | ||
commodity_category | varchar | 64 | 否 | 商品类别 | ||
remarks | varchar | 64 | 否 | 备注 | ||
stock | int | 11 | 否 | 库存 | ||
supplier_name | varchar | 64 | 否 | 供应商名称 | ||
examine_state | varchar | 16 | 是 | 审核状态 | ||
recommend | int | 11 | 是 | 智能推荐 | ||
create_time | datetime | 0 | 是 | 创建时间 | CURRENT_TIMESTAMP | |
update_time | timestamp | 0 | 是 | 更新时间 | CURRENT_TIMESTAMP | |
commodity_type表: | ||||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 | 类型 |
commodity_type_id | int | 11 | 是 | 主键 | 商品类型ID | |
commodity_category | varchar | 64 | 否 | 商品类别 | ||
examine_state | varchar | 16 | 是 | 审核状态 | ||
recommend | int | 11 | 是 | 智能推荐 | ||
create_time | datetime | 0 | 是 | 创建时间 | CURRENT_TIMESTAMP | |
update_time | timestamp | 0 | 是 | 更新时间 | CURRENT_TIMESTAMP | |
return_goods表: | ||||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 | 类型 |
return_goods_id | int | 11 | 是 | 主键 | 退货ID | |
return_order_no | varchar | 64 | 否 | 退货单号 | ||
trade_name | varchar | 64 | 否 | 商品名称 | ||
commodity_number | varchar | 64 | 否 | 商品编号 | ||
commodity_category | varchar | 64 | 否 | 商品类别 | ||
return_quantity | int | 11 | 否 | 退货数量 | ||
return_unit_price | int | 11 | 否 | 退货单价 | ||
supplier_name | varchar | 64 | 否 | 供应商名称 | ||
customer_name | varchar | 64 | 否 | 客户名称 | ||
contact_number | varchar | 64 | 否 | 联系电话 | ||
return_time | date | 0 | 否 | 退货时间 | ||
operating_staff | int | 11 | 否 | 操作员工 | ||
total_cost | varchar | 64 | 否 | 总费用 | ||
examine_state | varchar | 16 | 是 | 审核状态 | ||
recommend | int | 11 | 是 | 智能推荐 | ||
create_time | datetime | 0 | 是 | 创建时间 | CURRENT_TIMESTAMP | |
update_time | timestamp | 0 | 是 | 更新时间 | CURRENT_TIMESTAMP | |
sale表: | ||||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 | 类型 |
sale_id | int | 11 | 是 | 主键 | 销售ID | |
delivery_order_no | varchar | 64 | 是 | 出库单号 | ||
commodity_number | varchar | 64 | 否 | 商品编号 | ||
trade_name | varchar | 64 | 否 | 商品名称 | ||
commodity_category | varchar | 64 | 否 | 商品类别 | ||
supplier_name | varchar | 64 | 否 | 供应商名称 | ||
selling_unit_price | varchar | 64 | 否 | 出售单价 | ||
sales_volumes | varchar | 64 | 否 | 销售数量 | ||
total | varchar | 64 | 否 | 总计 | ||
customer_name | varchar | 64 | 否 | 客户名称 | ||
contact_number | varchar | 64 | 否 | 联系电话 | ||
sales_time | date | 0 | 否 | 销售时间 | ||
operator | int | 11 | 否 | 操作人 | ||
examine_state | varchar | 16 | 是 | 审核状态 | ||
recommend | int | 11 | 是 | 智能推荐 | ||
create_time | datetime | 0 | 是 | 创建时间 | CURRENT_TIMESTAMP | |
update_time | timestamp | 0 | 是 | 更新时间 | CURRENT_TIMESTAMP | |
staff_member表: | ||||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 | 类型 |
staff_member_id | int | 11 | 是 | 主键 | 职员ID | |
work_permit_no | varchar | 64 | 否 | 工作证号 | ||
gender | varchar | 64 | 否 | 性别 | ||
examine_state | varchar | 16 | 是 | 审核状态 | ||
recommend | int | 11 | 是 | 智能推荐 | ||
user_id | int | 11 | 是 | 用户ID | ||
create_time | datetime | 0 | 是 | 创建时间 | CURRENT_TIMESTAMP | |
update_time | timestamp | 0 | 是 | 更新时间 | CURRENT_TIMESTAMP | |
supplier表: | ||||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 | 类型 |
supplier_id | int | 11 | 是 | 主键 | 供应商ID | |
supplier_name | varchar | 64 | 否 | 供应商名称 | ||
mailbox | varchar | 64 | 否 | 邮箱 | ||
store_address | varchar | 64 | 否 | 店铺地址 | ||
person_in_charge | varchar | 64 | 否 | 负责人 | ||
contact_number | varchar | 64 | 否 | 联系电话 | ||
examine_state | varchar | 16 | 是 | 审核状态 | ||
recommend | int | 11 | 是 | 智能推荐 | ||
create_time | datetime | 0 | 是 | 创建时间 | CURRENT_TIMESTAMP | |
update_time | timestamp | 0 | 是 | 更新时间 | CURRENT_TIMESTAMP | |
upload表: | ||||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 | 类型 |
upload_id | int | 11 | 是 | 主键 | 上传ID | |
name | varchar | 64 | 否 | 文件名 | ||
path | varchar | 255 | 否 | 访问路径 | ||
file | varchar | 255 | 否 | 文件路径 | ||
display | varchar | 255 | 否 | 显示顺序 | ||
father_id | int | 11 | 否 | 父级ID | ||
dir | varchar | 255 | 否 | 文件夹 | ||
type | varchar | 32 | 否 | 文件类型 | ||
user_group表: | ||||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 | 类型 |
group_id | mediumint | 8 | 是 | 主键 | 用户组ID | |
display | smallint | 4 | 是 | 显示顺序 | ||
name | varchar | 16 | 是 | 名称 | ||
description | varchar | 255 | 否 | 描述 | ||
source_table | varchar | 255 | 否 | 来源表 | ||
source_field | varchar | 255 | 否 | 来源字段 | ||
source_id | int | 10 | 是 | 来源ID | ||
register | smallint | 1 | 否 | 注册位置 | ||
create_time | timestamp | 0 | 是 | 创建时间 | CURRENT_TIMESTAMP | |
update_time | timestamp | 0 | 是 | 更新时间 | CURRENT_TIMESTAMP | |
warehousing表: | ||||||
字段名称 | 类型 | 长度 | 不是null | 主键 | 字段说明 | 类型 |
warehousing_id | int | 11 | 是 | 主键 | 入库ID | |
commodity_number | varchar | 64 | 否 | 商品编号 | ||
trade_name | varchar | 64 | 否 | 商品名称 | ||
commodity_category | varchar | 64 | 否 | 商品类别 | ||
supplier_name | varchar | 64 | 否 | 供应商名称 | ||
receipt_quantity | int | 11 | 否 | 入库数量 | ||
total | varchar | 64 | 否 | 总计 | ||
receipt_unit_price | int | 11 | 否 | 入库单价 | ||
receipt_doc_no | varchar | 64 | 是 | 入库单号 | ||
warehousing_date | date | 0 | 否 | 入库日期 | ||
examine_state | varchar | 16 | 是 | 审核状态 | ||
recommend | int | 11 | 是 | 智能推荐 | ||
create_time | datetime | 0 | 是 | 创建时间 | CURRENT_TIMESTAMP | |
update_time | timestamp | 0 | 是 | 更新时间 | CURRENT_TIMESTAMP |
生活超市进销存管理系统,管理员在系统首页输入账号、密码登录系统。
图5-1登录界面
添加职员,在管理员页面通过账号、密码登陆后,可添加、删除、查询、重置职员信息,添加职员页面通过填写账号、密码、昵称、邮箱、手机号、状态、工作证号、等信息提交如图5-2所示。
图5-2添加职员界面图
供应商页面,输入供应商名称、邮箱、店铺地址、负责人、联系电话、等信息提交如图5-3所示。
图5-3添加供应商界面图
商品管理页面,商品分类,添加商品,填写商品编号、商品名称、商品类别、备注、库存、供应商名称等信息提交如图5-4所示。
图5-4添加商品界面图
进货页面,填写商品编号、商品名称、商品类别、供应商名称、入库数量、入库单价、入库单号等信息提交如图5-5所示。
图5-5商品进货界面图
商品出库页面,填写出库单号、商品编号、商品名称、商品类别、供应商名称、出库数量、出库单价、销售数量、客户名称、联系电话等信息提交如图5-6所示。
图5-6商品出库界面图
商品退货页面,填写送货单号、商品编号、商品名称、商品类别、送货数量、送货单价、供应商名称、客户名称、联系电话、操作员工。总费用等信息提交如图5-7所示
图5-7商品退货界面图
软件测试是软件开发完成后必须经过的一道程序,它在软件开发过程中地位十分重要,需要由专业的测试工程师来对软件进行各方面的测试,大到功能模块测试,小到代码的单元测试,这对测试工程师来说需要有足够的耐心和专业的测试方案,软件测试归根结底就是对软件的结构和功能的综合测评,需要做到结构稳定和功能正确,二者兼顾。软件测试也叫寻找系统bug的过程,世界上没有完美无缺、不存在bug的软件,只能将软件的bug降到最低最小,来追求极致。
登录测试是系统最开始就要进行,测试用户能否登录,才能完成后续的功能操作。
登录测试用例表如下所示。
表6-1登录测试
用例编号 | YL001 | 程序版本 | 1.00 |
功能名称 | 使用者登录测试 | 编制人 | 李铁蛋 |
功能描述 | 根据用户的登录情况测试 | ||
用例目的 | 测试用户登录情况是否正确 | ||
测试项 | 测试数据 | 测试结果 | 预期结果 |
用户名 | 为空 | 请输入用户名 | 请输入用户名 |
密码 | 为空 | 请输入密码 | 请输入密码 |
用户密码组合 | 用户名:klouse 密码 klouses | 用户与密码不匹配 | 用户与密码不匹配 |
用户密码组合 | 用户名 : klouse 密码 klouse | 进入系统 | 正确的用户名和密码 登录系统 |
管理员在发布信息页面,通过按照预先格式发布信息,如果因为输入时候缺少相关内容,就不能发布成功,且有相应错误提示
信息录入发布测试用例表如下所示。
表6-1信息录入发布测试
用例编号 | YL002 | 程序版本 | 1.00 |
功能名称 | 信息发布测试 | 编制人 | 李铁蛋 |
功能描述 | 对使用者发布或者录入信息进行测试,判断其功能是否达到预期的要求 | ||
用例目的 | 对系统使用者录入发布信息进行原型测试。 | ||
测试项 | 测试数据 | 测试结果 | 预期结果 |
属性1 | 为空 | 请输入属性1对应的数据 | 请输入属性1对应的数据 |
属性2 | 为空 | 请输入属性2对应的数据 | 请输入属性2对应的数据 |
属性3 | 为空 | 请输入属性3对应的数据 | 请输入属性3对应的数据 |
全部输入 | 数据均填入 | 录入发布成功 | 录入发布成功 |
管理员在更新信息页面,通过按照预先格式更新信息,如果因为输入时候缺少相关内容或者更新的数据不符合当前规范的话,就不能更新成功,且有相应错误提示
信息更新测试用例表如下所示。
表6-1信息更新测试
用例编号 | YL003 | 程序版本 | 1.00 |
功能名称 | 信息更新测试 | 编制人 | 李铁蛋 |
功能描述 | 对使用者更新信息进行测试,判断其功能是否达到预期的要求 | ||
用例目的 | 对系统使用者更新信息进行原型测试。 | ||
测试项 | 测试数据 | 测试结果 | 预期结果 |
属性1 | 编号:321 | 编号更新成功 | 编号更新成功 |
属性2 | 名称:名称1 | 名称更新成功 | 名称更新成功 |
属性3 | 内容:内容1234内容 | 内容更新成功 | 内容更新成功 |
全部输入 | 数据均未更改 | 更新成功 | 更新成功 |
管理员在信息页面,通过点击数据删除按钮来删除该条数据,如果该数据和其他数据有关联,则提示是否确定删除。
信息删除测试用例表如下所示。
表6-1信息删除测试
用例编号 | YL004 | 程序版本 | 1.00 |
功能名称 | 信息删除测试 | 编制人 | 李铁蛋 |
功能描述 | 对使用者删除信息进行测试,判断其功能是否达到预期的要求 | ||
用例目的 | 对系统使用者删除信息进行原型测试。 | ||
测试项 | 测试数据 | 测试结果 | 预期结果 |
数据1 | 无任何关联的数据1 | 数据删除成功 | 数据删除成功 |
数据2 | 和其他数据有关联的数据2 | 请确认是否删除 | 请确认是否删除 |
在经过之前的所有的工作之后,通过对软件的测试方法、测试原则还有典型的测试用例进行全面的、深入的介绍。经过对系统的全面测试,系统目前所具有的所有功能均成功的实现并且通过了测试,整个系统实现了基于 Java 开发的期望。
本文研究了福佳生活超市进销存管理系统的设计与实现,在文章开端首先对个研究背景、研究现状和研究内容作了简单的介绍,然后通过系统分析,引申出本系统研究的主要内容。
通过对springboot技术和MYSQL数据库的简介,从硬件和软件两反面说明了福佳生活超市进销存管理系统的设计与实现的可行性,本文结论及研究成果如下:实现了springboot与MYSQL相结合构建的福佳生活超市进销存管理系统,通过本次福佳生活超市进销存管理系统的设计与实现的研究与实现,我感触到学习一门新技术,最重要的是实践,只有多动手才能尽快掌握它,一个系统的开发,经验是最重要的,经验不足,就难免会有许多考虑不周之处。要想吸引更多的用户,系统的界面必须要美观、有特色、友好,功能要健全。
由于在此之前对于springboot知识并不了解,所以从一开始就碰到许多困难,例如一开始的页面显示不规范、数据库连接有问题已经无法实现参数的传递等等,不过通过我不断的查阅相关的资料,以及向老师同学请教,最后出现的所有的问题都得到了解决,通过这次的系统开发,我学到了很多的知识,也明白了自己在哪些方面有不足的地方,尤其是学会如何从大量的信息中筛选出所需有用的信息,同时我更加深刻的体会到了,虽然书本上的大部分知识都是有价值,正确的,但实际上每个人编程的思路和对数据处理的方法、思想都是不同的,这就要求我们一定要通过实践才能找到解决问题的方案。在此次毕业设计活动中,我不断的提高了自己,也得到了宝贵的经验,我相信这些对我以后的发展都会有很大帮助。
通过这次的福佳生活超市进销存管理系统开发,让我学到了更多的知识,同时通过这次系统的设计也让我明白了自己在哪方面有不足,以后加以学习争取可以开发住更多有用的适用的系统软件,本次系统的设计提高了我的编程水平,为了我今后系统的开发打下了结实的基础。
参考文献
- [1]齐善鲁,马徳俊,梁雪.基于SpringBoot的开放式软件开发案例教学平台设计.电脑知识与技术,2021
- [2]喻佳,吴丹新.基于SpringBoot的Web快速开发框架[J].电脑编程技巧与维护,2021
- [3]梅瑞泽,王静.超市信息管理系统的设计与实现.电子测试,2021
- [4]李贺,吴琪.C超市库存管理优化研究.中小企业管理与科技(中旬刊),2021
- [5]Tian Xin,Wang Haoqing,E Erjiang. Forecasting intermittent demand for inventory management by retailers: A new approach[J]. Journal of Retailing and Consumer Services,2021
- [6]Nasiri G. Reza,Deymeh Hadi,Karimi Behrooz,Miandoabchi Elnaz. Incorporating sales and marketing considerations into a competitive multi-echelon distribution network design problem with pricing strategy in a stochastic environment. Journal of Retailing and Consumer Services,2021
- [7]温馨. AJ自营超市库存管理优化研究.桂林电子科技大学,2021.
- [8]岳纹.企业小型超市管理系统的研究与开发.电脑编程技巧与维护,2021
- [9]孙浩,秦江涛.基于AHP改进的非连锁超市库存管理优化.物流科技,2020
- [10]李楚贞,曾琳,余育文.华润万家超市进销存管理系统的设计与实现.计算机产品与流通,2020
- [11]王建波. 北京永辉超市生鲜商品进销存管理研究.北京化工大学,2020
- [12]裴志松,梁滨.欧亚超市进销存管理系统.电脑知识与技术,2019
- [13]周琛,何莎,苏海林.全渠道零售库存整合优化比较研究.合作经济与科技,2018[14]欧阳慧. 大型零售连锁超市配送中心库存与配送协同优化研究.北京交通大学,2018
- [15]寿建烽. 大型连锁A超市日配品库存控制策略优化研究.安徽工业大学,2018
- [16]郭娇玲. 小型超市及零售行业信息管理系统的设计与实现.电子科技大学,2018
- [17]赵霁雯. 中小型超市库存管理系统设计及实现.大连理工大学,2018
- [18]张秀萍,易金聪.基于三层架构的超市进销存管理系统的设计与实现.福建电脑,2018
- [19]吴琼. 天扬超市进销存管理系统的设计与实现.西安电子科技大学,2016
- [20]张楠.超市进销存管理系统的设计与实现.技术与市场,2018
致谢
在老师的教导和帮助下,本人完成了本篇论文,老师对论文的内容、格式都有非常严格的要求,在我写毕业论文的过程中,他多次给出了建议,并定期检查,对我们严格要求,帮助我们在文档的编写上写到极致和正确,他这种教学和工作态度,让我对他产生无限的敬佩感和尊敬感。写毕业论文的同时,作为应届生,我也忙着找工作中,遇到了很多选择,感到困惑迷茫的时候,老师给了我很多意见,感谢老师的耐心开导,跟她的聊天我明白了许多。
我还要感谢我的父母,一直以来都非常支持和相信我,在精神和经济上给了我很多力量,如今我将毕业走上工作之路,终于能报答父母的养育教导之恩。还有我大学期间所有老师和全体同学,遇到问题时,这些老师同学总是无私地帮助我,真的非常感谢,我也会加油努力成长为一个有用的人。
点赞+收藏+关注 → 私信领取本源代码、数据库