摘  要

在现代企业管理中,药品进销存管理系统的有效性直接影响到企业的运营效率和市场竞争力。随着医药行业的快速发展,药品流通环节的复杂性愈发凸显,如何实现对药品采购、销售和库存的精确管理,成为了药品公司亟待解决的关键问题。传统的人工管理方式不仅效率低下,还容易导致数据错误、库存不准确等问题,这对药品企业的合规性和客户服务质量提出了严峻挑战。

为应对这些挑战,基于Spring Boot框架的药品公司进销存管理系统应运而生。Spring Boot作为一款简化开发的开源框架,为企业级应用提供了高效稳定的后端支持,使得系统开发与维护变得更加便捷。通过构建一个集成化的管理平台,该系统可以实现药品信息管理、 药品库存管理、 库存调拨与转移管理、 釆购信息管理、 销售信息管理、 财务信息管理 、弾窗提醒管理、操作日志管理等功能,从而提升企业的运营效率和市场反应能力。

本系统不仅关注药品的流通管理,还考虑到数据的安全性和系统的可扩展性。通过灵活的模块化设计,系统可以根据企业的需求进行定制和扩展,以适应未来的发展变化。同时,用户友好的界面和便捷的操作流程,确保员工可以快速上手,降低培训成本。综上所述,基于Spring Boot的药品公司进销存管理系统将为药品企业提供一个高效、可靠的解决方案,助力其在激烈的市场竞争中保持领先地位。

关键词:进销存管理;Spring Boot框架;药品库存;MySQL

Abstract

In modern enterprise management, the effectiveness of the drug inventory management system directly affects the operational efficiency and market competitiveness of the enterprise. With the rapid development of the pharmaceutical industry, the complexity of drug distribution has become increasingly prominent. How to achieve precise management of drug procurement, sales, and inventory has become a key issue that pharmaceutical companies urgently need to solve. The traditional manual management method is not only inefficient, but also prone to problems such as data errors and inaccurate inventory, which poses a serious challenge to the compliance and customer service quality of pharmaceutical companies.

To address these challenges, a pharmaceutical company inventory management system based on the Spring Boot framework has emerged. Spring Boot, as an open-source framework that simplifies development, provides efficient and stable backend support for enterprise level applications, making system development and maintenance more convenient. By building an integrated management platform, the system can achieve functions such as drug information management, drug inventory management, inventory allocation and transfer management, procurement information management, sales information management, financial information management, window reminder management, and operation log management, thereby improving the operational efficiency and market responsiveness of the enterprise.

This system not only focuses on the circulation management of drugs, but also considers the security of data and the scalability of the system. Through flexible modular design, the system can be customized and expanded according to the needs of the enterprise to adapt to future development changes. Meanwhile, the user-friendly interface and convenient operation process ensure that employees can quickly get started and reduce training costs. In summary, the Spring Boot based inventory management system for pharmaceutical companies will provide an efficient and reliable solution, helping them maintain a leading position in the fierce market competition.

Keywords: Inventory management; Spring Boot framework; Drug inventory; MySQL

目  录

1 前  言

1.1 研究背景

1.2 研究意义

1.3 国内外研究现状

1.3.1 国内研究现状

1.3.2 国外研究现状

1.4 系统的特点

1.5 论文结构与章节安排

2 关键技术

2.1 Java

2.2 MySQL

2.3 Spring Boot框架

2.4 B/S模式

3 系统分析

3.1 可行性分析

3.1.1 技术可行性

3.1.2 经济可行性

3.1.3 操作可行性

3.1.4 社会可行性

3.2 功能需求分析

3.3 系统性能分析

3.4 系统流程分析

3.4.1 程序操作流程

3.4.2 登录流程

3.4.3 注册流程

4 系统设计

4.1 总体设计

4.1.1 框架设计

4.1.2 功能模块设计

4.2 数据库设计

4.2.1 E-R图

4.2.2 数据库表结构设计

5 系统实现

5.1 系统环境分析

5.2 销售员模块

5.2.1 用户登录界面

5.2.2 用户注册界面

5.2.3 采购信息管理界面

5.2.4 销售信息管理界面

5.3 库管员模块

5.3.1 药品库存管理界面

5.3.2 库存调拨与转移管理界面

5.4 财务员模块

5.4.1 财务信息管理界面

5.5 管理员模块

5.5.1 员工管理界面

5.5.2 药品信息管理界面

5.5.3 药品库存管理界面

5.5.4 弾窗提醒管理界面

6 系统测试

6.1 测试目的与意义

6.2 测试用例

6.3 测试分析

7 结束语

参考文献

致  谢

1   

1.1研究背景

在当今医药行业快速发展的背景下,药品公司面临着复杂的市场环境和严格的监管要求。随着公众对药品安全和质量的关注不断增强,药品企业必须提升自身的管理水平,以确保合规经营和客户满意度。然而,传统的进销存管理方式往往依赖人工操作,不仅效率低下,还容易引发数据错误和库存不准确等问题,这在一定程度上影响了企业的运营效率和市场竞争力。

此外,药品行业的特殊性也要求企业在管理过程中具备更高的灵活性和反应速度。随着市场需求的变化和药品种类的增多,企业需要一个能够实时监控库存状态、自动化处理采购和销售流程的高效系统,以适应快速变化的市场环境。这样不仅能够提高资金周转率,也能够更好地满足客户对药品及时供应的需求,从而提升客户的信任度和忠诚度。

基于此,开发一个集成化的药品进销存管理系统显得尤为重要。该系统应具备自动化、实时性和智能化的特点,实现对药品全生命周期的有效管理,帮助企业优化资源配置,降低运营成本。同时,通过数据分析和报表功能,管理层还能够更清晰地了解市场动态和自身经营状况,为战略决策提供依据。综上所述,建立一个高效的药品进销存管理系统是提升药品公司竞争力和可持续发展的关键所在。

1.2研究意义

药品公司进销存管理系统的研究意义在于提升企业在现代商业环境中的运营效率和竞争力。随着医药行业的快速发展,市场对药品管理的要求日益严格,企业需要建立高效的管理体系来应对复杂的市场变化和监管要求。通过开发进销存管理系统,药品公司能够实现对药品采购、销售和库存的实时监控,确保数据的准确性和时效性,从而降低因信息滞后或错误导致的经营风险。

此外,该系统的实施有助于提高企业资源的利用效率。通过自动化处理采购和销售流程,企业不仅能够减少人工操作的错误,还能够提高工作效率,使员工将更多精力投入到客户服务和市场拓展等核心业务中。同时,系统提供的统计分析功能能够帮助管理层及时掌握销售趋势和库存动态,为制定更加科学的经营策略提供有力支持,实现精准决策。

更广泛地说,药品进销存管理系统的研究还具有推动行业信息化建设的重要意义。在数字化转型的大背景下,该系统的成功实施将为其他药品企业提供可借鉴的经验,促进整个行业的智能化发展。同时,通过提升药品管理的透明度和合规性,系统将有助于增强公众对药品安全的信任,推动整个医药行业的健康可持续发展。因此,研究和开发一个高效的药品公司进销存管理系统,不仅对企业自身的发展至关重要,也对整个行业的进步和社会的福祉起到了积极的推动作用。

1.3国内外研究现状

1.3.1国内研究现状

在国内,药品进销存管理系统的研究和应用同样日益活跃。随着国家对药品监管的不断加强,尤其是近年来实施的《药品管理法》及相关政策,许多中小型药品企业逐渐认识到信息化管理的重要性。例如,国药集团和华润医药等大型药企,通过实施基于ERP(企业资源计划)的进销存管理系统,成功实现了药品流通的高效管理。这些系统不仅支持药品的实时库存查询,还能通过分析销售数据和市场趋势,优化采购策略,从而降低库存成本。相关研究表明,国药集团在引入信息化系统后,库存周转率提高了20%以上,显著提升了资金使用效率。

此外,国内高校和研究机构也在积极开展药品进销存管理系统的相关研究。例如,南京医科大学的研究团队通过结合大数据分析与机器学习技术,开发了一种智能库存预测模型,能够根据历史销售数据和市场动态预测未来的药品需求,有效防止了库存积压和缺货现象。这类研究不仅为企业提供了理论支持,也为实际应用提供了技术基础,推动了药品行业的现代化进程。

1.3.2国外研究现状

在国外,许多知名药品公司已经成功实施了先进的进销存管理系统。例如,瑞士的诺华制药和美国的辉瑞制药等企业,利用高度集成的信息系统实现了对药品供应链的全面管理。这些系统不仅能够实时追踪药品的库存状态,还通过大数据分析和人工智能技术优化了采购和销售流程。诺华制药的系统通过自动化库存监控,及时预测并补充缺货药品,提高了客户满意度和市场响应速度。辉瑞则通过其全球供应链管理系统,确保了药品在各个环节的可追溯性和合规性,有效降低了药品流通中的风险。

1.4系统的特点

(1)药品公司进销存管理系统中的web后台管理中的后端不再使用古老的jsp+javabean+servlet技术,而是使用当前主流的Spring Boot框架,它减少Java配置代码,简化编程代码,目前Spring Boot框架也是很多企业选择的框架之一。

(2)药品公司进销存管理系统中的前端使用的是uni-app框架,它是使用Vue.js 开发所有前端应用的框架,可应用多平台,性能优秀,周边生态丰富且开发学习成本低。

(3)药品公司进销存管理系统中数据库用的MySQL,它执行效率高,运行速度快,安全性能也很高,同时无平台限制。

1.5论文结构与章节安排

本文共分为七章,章节内容安排如下:

第一章:引言,主要介绍药品公司进销存管理系统领域研究的背景和意义,概述研究的现状和系统特点。

第二章:关键技术,主要探讨和说明实现药品公司进销存管理系统的关键技术。

第三章:系统分析,主要从药品公司进销存管理系统的可行性、功能、性能等方面进行分析,为后续系统设计提供理论支持。

第四章:系统设计,主要对药品公司进销存管理系统功能模块、数据库进行功能设计。

第五章:系统实现,主要介绍了药品公司进销存管理系统各个顾客用户的功能、系统界面的实现。

第六章:系统测试,主要对药品公司进销存管理系统进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。

第七章:结束语。总结全文研究内容,提出对药品公司进销存管理系统领域未来发展的展望和建议,指出研究的不足和可优化之处,为相关领域的进一步探索提供参考。

2  关键技术

2.1Java

Java是一种跨平台的编程语言,广泛用于开发各种类型的应用程序,包括Web应用、移动应用和大型软件系统。在药品公司进销存管理系统中,Java通常用于后端开发,提供强大的处理能力和稳定性。同时Java是一种面向对象的编程语言,支持封装、继承和多态等特性,使代码更易于维护和重用。还拥有丰富的标准库和第三方框架,如Spring、Hibernate等,可以大大提高开发效率。

2.2MySQL

MySQL是一种流行的开源关系型数据库管理系统,用于存储和管理数据。在药品公司进销存管理系统中,MySQL可以用于数据存储、数据查询和数据管理等方面,用户可以免费使用和修改源代码,为平台提供可靠和高性能的数据库支持。MySQL支持多种存储引擎,如InnoDB和MyISAM,可以根据不同的应用场景选择合适的存储引擎,以提高性能;提供了多种数据安全机制,如用户权限管理、数据加密和备份恢复等,确保数据的安全性。

2.3Spring Boot框架

Spring Boot是一个用于构建微服务的Java框架,简化了Spring应用程序的开发和部署过程。Spring Boot通过自动配置和约定优于配置的理念,简化了Spring应用程序的开发过程,使开发者可以更快地构建和部署应用程序;拥有丰富的生态系统,如Spring Cloud、Spring Security等,可以满足各种企业级应用的需求。在药品公司进销存管理系统中,Spring Boot可以帮助开发团队快速搭建后端服务,并实现各种功能模块的集成和管理。

2.4B/S模式

B/S模式(Browser/Server模式)是一种网络应用架构,其中浏览器(Browser)作为客户端与服务器(Server)进行通信。这种模式使用户可以通过普通的Web浏览器访问应用程序,而无需安装额外的客户端软件。用户通过浏览器发送请求,服务器接收并处理这些请求,然后将结果返回给浏览器显示给用户。在药品公司进销存管理系统中,uni-app结合B/S模式B/S模式的优势包括跨平台的兼容性,用户可以在不同操作系统和设备上访问应用程序。此外,维护和部署也更为简便,并且能够实现较高的安全性,因为服务器端控制了应用程序和数据的访问权限。

3  系统分析

3.1可行性分析

3.1.1技术可行性

从技术角度来看,Spring Boot作为一种轻量级、快速构建的Java框架,能够提高开发效率,降低系统的复杂程度,易于维护和升级。同时,MySQL作为关系型数据库,能够支持平台数据的存储与管理,保障系统的稳定性和高效性。因此,本系统具有技术可行性。

3.1.2经济可行性

考虑到Springboot、Vue、MyBatis Plus及MySQL等均为开源技术,无需支付高昂的许可费用,大大降低了系统的开发成本。同时,这些技术拥有广泛的用户群体和成熟的社区支持,便于获取技术支持和资源共享。此外,系统的实施将显著提升度假管理的效率和用户体验,从而带来潜在的经济效益。因此,从经济角度来看,该系统的开发同样具备可行性。

3.1.3操作可行性

系统设计应遵循用户友好原则,确保用户能够轻松上手并高效使用。通过合理的界面布局、直观的操作流程以及详尽的帮助文档,可以大大降低用户的学习成本,提高系统的操作可行性。此外,系统还应具备完善的权限管理和数据安全机制,确保操作的安全性和合规性。

3.1.4社会可行性

药品公司进销存管理系统在社会层面具有较高的可行性。通过高效的库存管理、采购与销售流程的数字化及财务数据的精准记录,该系统提升了药品流通的透明度和可追溯性,有助于药品公司有效降低库存成本、优化资源配置,保障药品供应链的顺畅。同时,该系统能加强药品质量监控,减少因管理不当导致的药品浪费或缺失,对社会的药品供应安全和公众健康具有积极作用。因此,从社会效益和运营效率的角度来看,该系统的实施具有良好的可行性。

从技术、经济、操作和社会四个维度来看,药品公司进销存管理系统的开发均具备高度的可行性。

3.2功能需求分析

本系统可以分为:销售员、库管员、财务员和管理员四大角色。

销售员:主要包括首页、采购信息管理(采购订单、供应商信息、采购合同)、销售信息管理(销售订单、客户信息、销售合同)等功能。

库管员:主要包括、首页、药品信息管理、药品库存管理(库存盘点、药品库存、药品入库、药品出库)、库存调拨与转移管理(库存调拨、库存转移)等功能。

财务员:主要包括首页、财务信息管理(款项支付、款项收取、财务报表)等功能。

后台管理端:管理员可登录系统后台进行管理,拥有首页、员工管理 、管理员管理 、药品信息管理、 药品库存管理、 库存调拨与转移管理、 釆购信息管理、 销售信息管理、 财务信息管理 、弾窗提醒管理、操作日志管理等功能。

(一)销售员角色用例如下图所示。

图3.1销售员用例图

销售员具体功能说明如下所示。

  1. 注册登录:可以通过注册成为系统用户,使用账号密码可登录系统前台,使用系统功能。
  2. 首页:登录后,首页会展示销售员的工作概览,首页通常具备便捷的导航,支持销售员直接进入所需的模块。
  3. 采购信息管理;(采购订单:销售员可以查看或管理已提交的采购订单,了解采购物品的状态,便于跟踪订单的进度和协调采购需求。供应商信息:系统提供供应商的基本信息(如公司名称、联系方式等),销售员可以随时查看供应商的最新数据,有助于更快速地选择合适的供应商,提升沟通效率。采购合同:销售员可以查看现有采购合同的详细信息,包括合同条款、到期时间等,确保合同的执行和采购计划的同步)。
  4. 销售信息管理:(销售订单:销售员可以创建和管理销售订单,跟进订单状态,并通过系统实时监控每个订单的执行情况,以便及时处理客户需求。客户信息:系统提供客户的基本信息(如公司名称、联系方式、历史订单记录等),销售员可以快速查询客户资料,方便维护客户关系并提供个性化的服务。销售合同:销售员可以查看、更新销售合同的内容,包括合同条款、有效期、客户签字等,确保销售合同的合法合规,并便于在销售过程中及时查询合同信息)。

(二)库管员角色用例如下图所示。

图3.2库管员用例图

库管员具体功能说明如下所示。

  1. 注册登录:可以通过注册成为系统用户,使用账号密码可登录系统前台,使用系统功能。
  2. 首页:登录后,首页会展示库管员的工作概览,包括库存状态、药品即将过期提醒、低库存预警等关键信息,帮助库管员快速掌握当前库存情况,合理安排工作。
  3. 药品信息管理:库管员可以查看所有药品的基本信息,包括药品名称、批号、规格、生产日期、有效期等。药品信息的全面管理有助于确保库管员对药品属性的了解,方便日常管理与查询。
  4. 药品库存管理:(库存盘点:库管员定期进行库存盘点,核对实际库存数量与系统记录,确保库存数据准确。系统支持实时记录盘点结果,快速识别库存差异。药品库存:系统提供当前药品库存的详细数据,包括数量、批次、存放位置等,库管员可以实时查询库存情况,以便随时了解药品的储存状态。药品入库:库管员记录新药品的入库信息,包括药品批次、数量、入库时间等,系统会自动更新库存数量,确保入库数据的实时同步。药品出库:根据销售或生产需求,库管员可以操作药品出库,记录出库数量和去向,系统实时减少库存数量,确保出库信息的准确性)。
  5. 库存调拨与转移管理;(库存调拨:当不同仓库之间需要调拨药品时,库管员可以创建调拨单,记录调拨的药品名称、数量、目的仓库等,系统自动更新各仓库的库存情况。库存转移:当药品需要从一个存储区域转移到另一个区域时,库管员可以记录转移过程,更新存储位置,确保药品位置清晰明确,方便后续查找)。

(三)财务员角色用例如下图所示。

图3.3财务员用例图

财务员具体功能说明如下所示。

  1. 注册登录:可以通过注册成为系统用户,使用账号密码可登录系统前台,使用系统功能。
  2. 首页:财务员登录后,首页会展示财务相关的概览信息,帮助财务员快速了解财务状况,合理安排工作。
  3. 财务信息管理:(款项支付:财务员可以管理和记录公司各项付款信息,如采购付款、费用报销等。系统支持多种付款方式(如银行转账、现金支付),并可设置付款提醒,确保支付的及时性和准确性。款项收取:财务员记录客户或合作伙伴的款项收取情况,包括销售款项的到账时间、收款方式等,系统自动更新账户余额,便于财务员实时跟踪收款进度。财务报表:系统提供多种财务报表的生成功能,包括收入报表、支出报表、利润报表等。财务员可以根据不同时间段或业务模块生成报表,便于分析公司的财务表现并支持财务决策)。

(四)管理员角色用例如下图所示。

图3.4管理员用例图

系统后台管理端管理员具体功能说明如下所示。

  1. 登录:管理员账号密码由系统生成,可使用账号密码可进行登录系统后台,使用系统功能进行管理,并可对自己的个人信息和密码进行管控。
  2. 首页:管理员登录后,首页显示系统的概览信息,帮助管理员掌握整体运营状况,及时跟踪重要事项。
  3. 员工管理:管理员可以添加、编辑和删除员工账号,并设置各员工的权限,确保每位员工只能访问与其职责相关的模块,保障系统的安全性与数据隐私。
  4. 管理员管理:系统支持多个管理员账号,管理员可以设置不同权限等级的子管理员,协同管理不同模块的权限分配,确保系统的管理职责清晰明确。
  5. 药品信息管理:管理员负责药品的基础信息维护,包括药品名称、批次、生产日期、有效期等。确保药品信息的完整和准确,为后续的库存管理和销售提供数据支持。
  6. 药品库存管理:管理员可以查看和管理所有药品的库存情况,包括库存数量、批次、存放位置等信息,支持出入库操作,确保库存的实时性和准确性。
  7. 库存调拨与转移管理:管理员可以进行库存的调拨与转移操作,处理不同仓库或存放区域间的药品流转,确保库存数据的同步更新,优化存储管理。
  8. 采购信息管理:管理员可以管理采购订单、供应商信息、采购合同等,支持采购过程的全程监控和数据管理,确保采购信息的透明化和系统化。
  9. 销售信息管理:管理员负责管理销售订单、客户信息、销售合同等,确保销售信息的准确记录和及时更新,为销售人员提供支持,保障客户订单的顺利执行。
  10. 财务信息管理:管理员可以查看款项支付、款项收取、财务报表等,掌握公司资金流动情况,确保财务信息的透明性,为公司财务决策提供支持。
  11. 弹窗提醒管理:管理员可以设置弹窗提醒规则,例如库存不足、合同到期等,确保系统在重要事项发生时能够自动提醒相关人员,避免遗漏关键任务。
  12. 操作日志管理:系统会记录所有操作日志,管理员可以查看并导出操作记录,便于追溯与审计,保障系统操作的规范性。

3.3系统性能分析

对于药品公司进销存管理系统的设计与实现,下面是系统性能分析表:

表3.1性能需求表

项目

内容

响应时间

系统对用户请求的响应时间需在500ms以内

并发用户数

系统需要支持1000个并发用户同时访问

吞吐量

系统每秒需要处理1000个请求

可用性

系统需要保证每月99.9%的可用性

数据安全

用户敏感数据需要加密存储,并支持数据库备份和恢复

数据一致性

系统中的数据操作需保证ACID特性,确保数据一致性

扩展性

系统需要支持水平扩展,能够方便地增加服务器节点以应对高请求量

可维护性

系统代码需要清晰易懂、结构良好,方便团队成员维护和修改

日志记录

系统需要记录用户操作日志、异常日志以及系统运行日志

监控报警

系统需要实时监控运行状态,当系统异常时能够及时发送警报通知相关人员

缓存设置

针对频繁使用的数据,系统需要进行合适的缓

3.4系统流程分析

3.4.1程序操作流程

用户访问平台网站,可以选择进行注册或登录操作。注册成功后,用户可以使用注册的账号登录平台。登录后的用户可以进入系统功能界面,使用自己权限内的功能操作。程序操作流程图如下图所示。

图3.5程序操作流程图

3.4.2登录流程

用户访问平台的网站,进入登录页面页面,入其用户名和密码,后端服务接收登录请求,验证用户提供的用户名和密码是否匹配数据库中存储的信息,验证通过即可登录成功。登录流程图如下图所示。

图3.6登录流程图

3.4.3注册流程

未有账号的用户可进入注册界面进行注册操作,填写注册表格,包括用户名、密码、电子邮件等必要信息。后台系统验证并保存用户提交的信息。分配唯一用户标识符。注册成功后,用户可以使用账号密码进行登录。用户注册流程图如下图所示。

图3.7注册流程图

4  系统设计

4.1总体设计

4.1.1框架设计

B/S架构,即浏览器/服务器架构,是一种基于Web的分布式计算范式。在此架构中,应用程序的逻辑被巧妙地区分为客户端和服务器两部分。具体而言,客户端借助广泛使用的浏览器界面,进行应用访问与操作;而服务器端则肩负起业务逻辑处理、数据存储及管理的核心职责。值得一提的是,客户端无需安装特定的软件,用户仅需通过浏览器输入相应的URL地址,即可轻松访问应用程序,这一特性极大地提升了用户的使用便捷性和系统的维护效率。服务器端通常采用高性能的计算机和数据库系统,能够处理大量并发请求和复杂的业务逻辑。B/S架构的优势在于其跨平台性和易于维护性,开发者可以通过更新服务器端的代码来实现整个系统的升级和维护,而无需逐一更新客户端。

图4.1系统架构图

4.1.2功能模块设计

功能模块设计是系统开发过程中的重要阶段,它旨在将系统划分为不同的模块,每个模块负责完成特定的功能或任务。药品公司进销存管理系统由多个功能模块组成,每个模块下又包含具体的功能操作。功能模块图如下图所示。

图4.2系统架构图

4.2数据库设计

4.2.1E-R

E-R图有助于理清系统中的数据结构和关系,为后续的数据库表结构设计提供指导。在进行数据库设计之前,首先需要先绘制实体-关系(E-R)图。E-R图将帮助我们理清业务中的实体(Entity)及它们之间的关系(Relationship),从而为后续的数据库表设计提供基础。根据前文可以得出本药品公司进销存管理系统拥有多个实体,在此列举主要实体,各个实体之间联系总E-R图如下图所示。

图4.3总E-R图

4.2.2数据库表结构设计

在E-R图确定后,接下来可以根据实体和关系的属性设计数据库表结构。在E-R图明确了实体和它们之间的关系后,接下来可以开始设计数据库表结构。每个实体对应一个数据库表,每个属性对应表中的字段。如下列表格所示,在此列举主要数据表。

表名:caiwubaobiao

功能:财务报表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shijian

date

时间

yingyeshouru

double

营业收入

yingyezhichu

double

营业支出

yingyelirun

double

营业利润

baobiaoxiangqing

longtext

4294967295

报表详情

表名:popup_remind

功能:弹窗提醒

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

发布人用户ID

title

varchar

200

标题

type

varchar

200

类型

私人

brief

longtext

4294967295

简介

content

longtext

4294967295

内容

remind_time

datetime

提醒时间

表名:yaopinruku

功能:药品入库

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

cangkumingcheng

varchar

200

仓库名称

pihao

varchar

200

批号

yaopinmingcheng

varchar

200

药品名称

yaopinfenlei

varchar

200

药品分类

guige

varchar

200

规格

shuliang

varchar

200

入库数量

youxiaoqi

date

有效期

rukuren

varchar

200

入库人

rukushijian

datetime

入库时间

表名:yaopinkucun

功能:药品库存

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

cangkumingcheng

varchar

200

仓库名称

yaopinmingcheng

varchar

200

药品名称

yaopinfenlei

varchar

200

药品分类

guige

varchar

200

规格

shengchanchangjia

varchar

200

生产厂家

shuliang

int

库存数量

表名:yaopinchuku

功能:药品出库

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

cangkumingcheng

varchar

200

仓库名称

pihao

varchar

200

批号

yaopinmingcheng

varchar

200

药品名称

yaopinfenlei

varchar

200

药品分类

guige

varchar

200

规格

shuliang

double

出库数量

chukuren

varchar

200

出库人

chukushijian

datetime

出库时间

表名:kuanxiangzhifu

功能:款项支付

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhangdanbianhao

varchar

200

账单编号

zhangdanmingcheng

varchar

200

账单名称

zhifujine

double

支付金额

zhifushijian

date

支付时间

zhangdanxiangqing

longtext

4294967295

账单详情

caiwuyuangonghao

varchar

200

财务员工号

caiwuyuanxingming

varchar

200

财务员姓名

beizhu

varchar

200

备注

表名:kuanxiangshouqu

功能:款项收取

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

dingdanbianhao

varchar

200

订单编号

ruzhangjine

double

入账金额

ruzhangshijian

date

入账时间

shouruxiangqing

longtext

4294967295

收入详情

caiwuyuangonghao

varchar

200

财务员工号

caiwuyuanxingming

varchar

200

财务员姓名

beizhu

varchar

200

备注

表名:token

功能:token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表名:syslog

功能:操作日志

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

username

varchar

200

用户名

operation

varchar

200

用户操作

method

varchar

200

请求方法

params

longtext

4294967295

请求参数

time

bigint

请求时长(毫秒)

ip

varchar

200

ip地址

表名:yaopinxinxi

功能:药品信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yaopinmingcheng

varchar

200

药品名称

yaopintupian

longtext

4294967295

药品图片

yaopinfenlei

varchar

200

药品分类

guige

varchar

200

规格

shiyongrenqun

varchar

200

适用人群

shengchanchangjia

varchar

200

生产厂家

baozhiqi

varchar

200

保质期

yaopinshuoming

longtext

4294967295

药品说明

表名:kuguanyuan

功能:库管员

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xiaoshouyuangonghao

varchar

200

销售员工号

xiaoshouyuanmima

varchar

200

销售员密码

xiaoshouyuanxingming

varchar

200

销售员姓名

touxiang

longtext

4294967295

头像

xingbie

varchar

200

性别

dianhuahaoma

varchar

200

电话号码

shenfenzhenghaoma

varchar

200

身份证号码

表名:caigouhetong

功能:采购合同

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

hetongbianhao

varchar

200

合同编号

hetongmingcheng

varchar

200

合同名称

fuzeren

varchar

200

负责人

qiandingshijian

date

签订时间

qiandinghetong

longtext

4294967295

签订合同

表名:kucunzhuanyi

功能:库存转移

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

cangkumingcheng

varchar

200

仓库名称

yaopinmingcheng

varchar

200

药品名称

yaopinfenlei

varchar

200

药品分类

guige

varchar

200

规格

shengchanchangjia

varchar

200

生产厂家

zhuanyishenqing

longtext

4294967295

转移申请

shenqingren

varchar

200

申请人

shenqingshijian

date

申请时间

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

回复内容

表名:caigoudingdan

功能:采购订单

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

dingdanbianhao

varchar

200

订单编号

yaopinmingcheng

varchar

200

药品名称

yaopinfenlei

varchar

200

药品分类

guige

varchar

200

规格

danjia

double

单价

caigoushuliang

int

采购数量

caigoujine

double

采购金额

caigoufuzeren

varchar

200

采购负责人

gongyingshangmingcheng

varchar

200

供应商名称

lianxifangshi

varchar

200

联系方式

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

回复内容

表名:kucunpandian

功能:库存盘点

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

cangkumingcheng

varchar

200

仓库名称

yaopinmingcheng

varchar

200

药品名称

pihao

varchar

200

批号

yaopinfenlei

varchar

200

药品分类

guige

varchar

200

规格

shengchanchangjia

varchar

200

生产厂家

shuliang

varchar

200

库存数量

shijishuliang

double

实际数量

pandianren

varchar

200

盘点人

pandianshijian

datetime

盘点时间

pandianqingkuang

longtext

4294967295

盘点情况

表名:yaopinfenlei

功能:药品分类

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yaopinfenlei

varchar

200

药品分类

表名:kucundiaobo

功能:库存调拨

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

cangkumingcheng

varchar

200

仓库名称

yaopinmingcheng

varchar

200

药品名称

yaopinfenlei

varchar

200

药品分类

guige

varchar

200

规格

shengchanchangjia

varchar

200

生产厂家

diaoboshenqing

longtext

4294967295

调拨申请

shenqingren

varchar

200

申请人

shenqingshijian

date

申请时间

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

回复内容

表名:xiaoshouyuan

功能:销售员

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xiaoshouyuangonghao

varchar

200

销售员工号

xiaoshouyuanmima

varchar

200

销售员密码

xiaoshouyuanxingming

varchar

200

销售员姓名

touxiang

longtext

4294967295

头像

xingbie

varchar

200

性别

dianhuahaoma

varchar

200

电话号码

shenfenzhenghaoma

varchar

200

身份证号码

表名:xiaoshouhetong

功能:销售合同

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

hetongbianhao

varchar

200

合同编号

hetongmingcheng

varchar

200

合同名称

fuzeren

varchar

200

负责人

qiandingshijian

date

签订时间

qiandinghetong

longtext

4294967295

签订合同

表名:kehuxinxi

功能:客户信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

kehuxingming

varchar

200

客户姓名

lianxifangshi

varchar

200

联系方式

suozaidiqu

varchar

200

所在地区

yewuwanglai

longtext

4294967295

业务往来

表名:xiaoshoudingdan

功能:销售订单

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

dingdanbianhao

varchar

200

订单编号

yaopinmingcheng

varchar

200

药品名称

yaopinfenlei

varchar

200

药品分类

guige

varchar

200

规格

danjia

double

单价

shuliang

double

数量

xiaoshouzongjia

double

销售总价

shengchanchangjia

varchar

200

生产厂家

xiaoshoushijian

date

销售时间

kehuxingming

varchar

200

客户姓名

lianxifangshi

varchar

200

联系方式

xiaoshouyuangonghao

varchar

200

销售员工号

xiaoshouyuanxingming

varchar

200

销售员姓名

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

回复内容

表名:gongyingshangxinxi

功能:供应商信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

gongyingshangmingcheng

varchar

200

供应商名称

fuzeren

varchar

200

负责人

lianxifangshi

varchar

200

联系方式

gongyingshangdizhi

varchar

200

供应商地址

gongyingfanwei

longtext

4294967295

供应范围

表名:users

功能:管理员

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

username

varchar

200

用户名

password

varchar

200

密码

role

varchar

200

角色

表名:config

功能:轮播图

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

name

varchar

200

名称

value

longtext

4294967295

表名:caiwuyuan

功能:财务员

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

caiwuyuangonghao

varchar

200

财务员工号

caiwuyuanmima

varchar

200

财务员密码

caiwuyuanxingming

varchar

200

财务员姓名

touxiang

longtext

4294967295

头像

xingbie

varchar

200

性别

dianhuahaoma

varchar

200

电话号码

shenfenzhenghaoma

varchar

200

身份证号码

表名:menu

功能:菜单

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

menujson

longtext

4294967295

菜单

5  系统实现

5.1系统环境分析

考虑到药品公司进销存管理系统主要面对部分人群,网站的访问量不大。系统处理、统计分析工作简单,Tomcat服务器能够满足中小型网络用户的数据处理,通过互联网Internet 接入及MySQL 5.6以上的数据库应用的需求点。系统具体开发环境如下表所示:

表5.1系统环境表

项目

开发环境

操作系统

Windows 11、Windows 10、Windows 8、Windows 7

开发语言

Java

使用框架

Spring Boot、uni-app

体系结构

三层B/S体系结构

开发工具

IDEA(2020版)/MyEclipse(2017)/Eclipse、Vs Code

数据库

MySQL 5.6以上

数据库管理工具

Navicat

JDK版本

Java 1.8

Maven

apache-maven 3.6.1-bin

Tomcat

apache-tomcat-7.0.88

移动端

iOS、Android、Web(响应式)、以及各种小程序

5.2销售员模块

5.2.1用户登录界面

用户输入用户名和密码后,系统首先对这些输入进行基本的格式验证,确保用户名和密码符合系统设定的格式要求(如长度、特殊字符要求等)。系统接收到用户输入后,会根据用户名查找系统中存储的用户信息数据库或者其他持久化存储方式。系统需要验证密码的正确性,验证成功即可成功登录。

图5.1用户登录界面设计

登录关键代码如下:

 /**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            Duration duration = Duration.ofSeconds(7200L);

            redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

    }

5.2.2用户注册界面

用户注册时,系统要求用户提供必要的信息,例如用户名、密码、电话号码等。这些信息通常由用户在注册表单中输入,并通过前端验证确保格式的正确性。注册过程完成后,系统会为新用户创建一个账户。这包括分配一个唯一的用户ID和设置初始的权限或者角色。

图5.2用户注册界面设计

注册关键代码如下:

    /**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));

        query.put("username",user.getUsername());

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

}    

5.2.3采购信息管理界面

采购信息管理模块为销售员提供对采购订单、供应商信息及采购合同的全面管理。销售员可以查看和管理已提交的采购订单,实时跟踪采购物品的状态,方便协调采购需求。同时,系统展示了供应商的基本信息(如公司名称、联系方式、负责人等),帮助销售员快速找到合适的供应商,提升沟通效率。此外,销售员还可以查看现有采购合同的详细信息,包括合同条款和到期时间,以确保采购合同的顺利执行和采购计划的同步。

例如,采购订单、供应商信息、采购合同主界面图如下所示。

图5.3采购订单主界面设计

图5.4供应商信息主界面设计

图5.5采购合同主界面设计

5.2.4销售信息管理界面

销售信息管理模块帮助销售员高效处理销售流程与客户关系。销售员可以创建和管理销售订单,跟踪订单状态,并通过系统实时监控订单的执行情况,确保及时满足客户需求。系统还提供客户的基本信息(如公司名称、联系方式、历史订单记录等),便于销售员快速查询客户资料,维护良好的客户关系,并提供个性化服务。此外,销售员能够查看和更新销售合同的内容,包括合同条款、有效期及客户签字,确保合同合法合规,并方便在销售过程中及时查阅相关信息。

例如,销售订单、客户信息、销售合同界面图如下所示。

图5.6销售订单界面设计

图5.7客户信息界面设计

图5.8销售合同界面设计

5.3库管员模块

5.3.1药品库存管理界面

药品库存管理模块帮助库管员全面掌握库存情况,确保库存数据的准确性与实时更新。库管员定期进行库存盘点,核对实际库存数量与系统记录,系统支持实时记录盘点结果,以快速识别库存差异。此外,系统提供药品库存的详细数据,包括数量、批次和存放位置,便于库管员随时查询药品的储存状态。库管员在药品入库时记录相关信息,如批次、数量和入库时间,系统会自动更新库存;在药品出库时,根据销售或生产需求记录出库数量及去向,确保库存信息准确无误。

例如,库存盘点、药品库存、药品入库、药品出库主界面图如下所示。

图5.9库存盘点主界面设计

图5.10药品库存界面设计

图5.11药品入库界面设计

图5.12药品出库界面设计

5.3.2库存调拨与转移管理界面

库存调拨与转移管理模块支持库管员在不同仓库之间或存储区域内的药品流通管理。当需要调拨药品至不同仓库时,库管员可创建调拨单,记录药品名称、数量及目的仓库,系统自动更新各仓库的库存情况;当药品需要在仓库内不同存储区域之间转移时,库管员可记录转移过程并更新存储位置,确保药品位置清晰明确,方便后续查找和管理

例如,库存调拨、库存转移主界面图如下所示。

图5.13库存调拨主界面设计

图5.14库存转移主界面设计

5.4财务员模块

5.4.1财务信息管理界面

财务信息管理模块为财务员提供全面的款项记录和报表生成功能,确保公司资金流动的透明性与准确性。财务员可以管理并记录各项付款信息,如采购付款和费用报销等,系统支持多种付款方式(如银行转账、现金支付)并设有付款提醒,保障支付的及时性。款项收取方面,财务员记录客户或合作伙伴的款项到账时间和收款方式,系统自动更新账户余额,方便财务员实时跟踪收款进度。此外,系统提供收入、支出、利润等多种财务报表的生成功能,财务员可按需生成报表,支持公司财务表现的分析和决策。

例如,款项支付、款项收取、财务报表界面图如下所示。

图5.15款项支付界面设计

图5.16款项收取界面设计

图5.17财务报表界面设计

5.5管理员模块

5.5.1员工管理界面

管理员可以添加、编辑和删除员工账号,并设置各员工的权限,确保每位员工只能访问与其职责相关的模块,保障系统的安全性与数据隐私。员工管理界面图如下所示。

图5.18员工用户界面设计

添加员工用户信息关键代码:

 @PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

public Map<String, Object> addMap(Map<String,Object> map){

    service.insert(map);

     return success(1);

 }

5.5.2药品信息管理界面

管理员负责药品的基础信息维护,包括药品名称、批次、生产日期、有效期等。确保药品信息的完整和准确,为后续的库存管理和销售提供数据支持。药品信息管理界面图如下所示。

图5.19药品信息管理界面设计

5.5.3药品库存管理界面

管理员可以查看和管理所有药品的库存情况,包括库存数量、批次、存放位置等信息,支持出入库操作,确保库存的实时性和准确性。药品库存管理界面图如下所示。

图5.20药品库存管理详情界面设计

5.5.4弾窗提醒管理界面

管理员可以设置弹窗提醒规则,确保系统在重要事项发生时能够自动提醒相关人员,避免遗漏关键任务弹窗提醒管理界面如下所示

图5.21弾窗提醒管理界面设计

上传弾窗提醒关键代码如下:

   @PostMapping("/upload")

    public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {

        log.info("进入方法");

        if (file.isEmpty()) {

            return error(30000, "没有选择文件");

        }

        try {

            //判断有没路径,没有则创建

            String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";

            File targetDir = new File(filePath);

            if (!targetDir.exists() && !targetDir.isDirectory()) {

                if (targetDir.mkdirs()) {

                    log.info("创建目录成功");

                } else {

                    log.error("创建目录失败");

                }

            }

            String fileName = file.getOriginalFilename();

            File dest = new File(filePath + fileName);

            log.info("文件路径:{}", dest.getPath());

            log.info("文件名:{}", dest.getName());

            file.transferTo(dest);

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("url", "/api/upload/" + fileName);

            return success(jsonObject);

        } catch (IOException e) {

            log.info("上传失败:{}", e.getMessage());

        }

        return error(30000, "上传失败");

    }

6  系统测试

6.1测试目的与意义

在软件开发生命周期中,系统测试占据着举足轻重的地位。通过进行全面而系统的测试,我们能够确保软件在实际使用环境中具备稳定运行的能力,从而满足用户的多样化需求,并显著提升软件的整体质量与可靠性。这一过程不仅有助于识别并修复潜在问题,还能为软件的持续优化提供有力支撑。

随着现代信息的快速发展,在社会各大领域中已经都开始应用网络信息技术,在应用网络技术的同时人们也开始把软件的质量问题作为了一个重要焦点来关注,因为一个软件的好与坏它决定着这个系统在市场上的生存,所以我们必须要把软件质量来做好,这样才有一定的生存能力。对于用户来说它们首先选用的都是保证这个系统软件的质量问题,因为一个系统的软件质量决定着用户在后期上成本经济的问题。图6-1就是纠错测试流程。

图6.1测试与纠错信息流程

6.2测试用例

在系统的功能验证阶段,我们将对全部的功能界面进行全面测试。具体而言,我们将模拟用户行为,输入各类数据并进行提交操作,随后仔细观察和分析每个页面的响应反馈。这一过程旨在验证系统的功能完整性,确保页面所呈现的功能与预期相符,并能够完全实现预设的交互逻辑。通过这种全面细致的测试方法,我们将确保系统在实际应用中能够稳定、准确地响应用户需求。

下表是系统登录功能测试用例,检测了用户名和密码的不同的输入情况,观察系统的响应情况。得出该功能达到了设计目标。

表6.1系统登录功能测试用例

功能描述

用于系统登录

测试目的

检测登录时的合法性检查

测试数据以及操作

预期结果

实际结果

输入的用户名和密码带有非法字符

提示用户名或者密码错误

与预期结果一致

输入的用户名或者密码为空

提示用户名或者密码错误

与预期结果一致

输入的用户名和密码不存在

提示用户名或者密码错误

与预期结果一致

输入正确的用户名和密码

登录成功

与预期结果一致

下表是注册功能测试用例,检测了各种数据的输入情况,观察系统的响应情况。得出该功能达到了设计目标。

表6.2注册功能测试用例

功能描述

用于用户注册

测试目的

检测用户注册时的合法性检查

测试数据以及操作

预期结果

实际结果

输入的手机号不合法

提示请输入正确的手机号码

与预期结果一致

输入的字段为空

提示必填项不能为空

与预期结果一致

输入的密码少于6位

提示密码必须为6-12位

与预期结果一致

输入的密码大于12位

提示密码必须为6-12位

与预期结果一致

下表是药品信息管理功能的测试用例,检测了对药品信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;登录系统。

表6.3药品信息管理的测试用例

功能描述

用于药品信息

测试目的

检测药品信息时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加药品信息,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加药品信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改药品信息,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改药品信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除药品信息,选择药品信息删除

提示删除成功

与预期结果一致

点击搜索药品信息,输入存在的药品信息名

查找出相应药品信息

与预期结果一致

点击搜索药品信息,输入不存在的药品信息名

不显示药品信息

与预期结果一致

下表是药品库存管理功能的测试用例,检测了药品库存中对药品库存的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;登录系统。

表6.4药品库存管理的测试用例

功能描述

用于药品库存

测试目的

检测药品库存时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加药品库存,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加药品库存,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改药品库存,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改药品库存,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除药品库存,选择药品库存删除

提示删除成功

与预期结果一致

点击搜索药品库存,输入存在的药品库存名

查找出相应药品库存信息

与预期结果一致

点击搜索药品库存,输入不存在的药品库存名

不显示药品库存信息

与预期结果一致

下表是釆购信息管理功能的测试用例,检测了釆购信息中对釆购信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;登录系统。

表6.5釆购信息管理的测试用例

功能描述

用于釆购信息

测试目的

检测釆购信息时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加釆购信息,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加釆购信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改釆购信息,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改釆购信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除釆购信息,选择釆购信息删除

提示删除成功

与预期结果一致

点击搜索釆购信息,输入存在的釆购信息名

查找出相应釆购信息

与预期结果一致

点击搜索釆购信息,输入不存在的釆购信息名

不显示釆购信息

与预期结果一致

下表是销售信息管理功能的测试用例,检测了销售信息管理中对销售信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;登录系统。

表6.6销售信息管理的测试用例

功能描述

用于销售信息

测试目的

检测销售信息时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加销售信息,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加销售信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改销售信息,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改销售信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除销售信息,选择销售信息删除

提示删除成功

与预期结果一致

点击搜索销售信息,输入存在的销售信息名

查找出相应销售信息

与预期结果一致

点击搜索销售信息,输入不存在的销售信息名

不显示销售信息

与预期结果一致

6.3测试分析

本药品公司进销存管理系统开发与设计满足相关信息的管理需求,在设计时借鉴了国内外优秀网站的优点,从界面到系统设计都保证了管理员以及会员能够方便操作。系统的主要特点和优点归纳如下:

(1)本系统用的移置性和针对性都比较高,因为针对性高可以提供更好的服务而移置性可以在多个系统上运行,更给客户带来了极大的方便。

(2)该药品公司进销存管理系统开发与设计内容全面,管理方便可以及时的全面的处理各种错误,异常,这样避免了很多因客户的马虎操作而出现的失误,其操作方便,会员界面友好,能够上网的人都可以很好的进行操作。

经过对上述的测试结果分析,所有基本功能齐全,操作简单,系统运行性能良好,系统安全可靠,能促进药品公司进销存管理系统的发展,发展前景广阔。

7  结束语

药品公司进销存管理系统的整体功能模块的实现,主要是对自己在大学这几年时间所学内容的一个测试,对于系统,主要是通过现在智能化的药品公司进销存管理系统进行开始系统的实现,并且可以根据需求进行数据信息的增加修改删除等操作,完美的解决了当下药品公司进销存管理系统所遇到的问题。

经过一个学期的毕业设计的实现完成已接近尾声,到目前为止,当我回想起整个学期的系统开发日,收获颇丰。毕业设计的主要任务是建立一个智能化的药品公司进销存管理系统,主要使用springboot+vue框架和Mysql数据库的开发工具,对系统的每个功能模块进行相对应的操作,最后,系统调试结果表明系统基本可以满足功能要求。

药品公司进销存管理系统的开发对我大学学习的改进有很大帮助。它使我能够学习计算机知识的相关技术方面问题及与人交往的沟通交流方面,让我意识到无论我们做什么,我们都需要坚持不懈,努力工作,只有这样尝试了并且坚持去做了,我们才可以成功,才可以获得成功的喜悦,如果没有尝试,只是想,那连成功的机会都没有,实际操作进行做了,才会越来越近的靠近成功,随着道路一路向前,未来的路是美好的。

药品公司进销存管理系统的实现,是自己第一次完成的设计一个管理系统。在项目的设计过程中,我克服了各种困难,并且在面对这些困难,我积极的面对,想办法解决问题,并且更好的掌握了理论知识和动手操作实践能力,从系统的开发到设计完成,我完成了一个更全面、更完善、更安全的管理系统,这也让我取得了很大的成就感,也使我对未来的生活更有信心。

参考文献

[1]张帅.计算机软件Java编程特点与技术探究[J].科技资讯,2024,22(17):23-25.DOI:10.16661/j.cnki.1672-3791.2404-5042-5333.

[2]Zhang J .Teaching Reform of Java Program Design Based on Vocational Education Cloud Platform[J].Journal of Higher Education Teaching,2024,1(5):

[3]王赵慧,衣文娟,付曙光.纸品行业新型进销存管理系统的设计与实现[J].青岛远洋船员职业学院学报,2024,45(02):30-35.

[4]Wai H K ,Funabiki N,Aung T S, et al.Answer Code Validation Program with Test Data Generation for Code Writing Problem in Java Programming Learning Assistant System[J].Engineering Letters,2024,32(5):

[5]Ullenboom C .Java Programming Exercises:Volume Two: Java Standard Library[M].CRC Press:2024-03-30.

[6]Zhou R ,Luo K ,Chen X , et al.Research on the Construction of Computer Courses Based on CBE-CDIO Engineering Education Concept: Taking the Course “JAVA Programming” as an Example[J].Contemporary Education Frontiers,2023,1(2):

[7]Ullenboom C .Java Programming Exercises:The Workbook for Becoming a Great Java Developer[M].CRC Press:2023-07-18.

[8]林斯阳.浅谈进销存管理信息系统研究[J].财讯,2023,(11):31-33.

[9]刘争光.基于微服务架构的进销存管理信息系统的研究[D].北京建筑大学,2023.DOI:10.26943/d.cnki.gbjzc.2023.000590.

[10]赵鹏,唐静芸.基于区块链的服装企业进销存管理平台设计[J].中国信息化,2023,(02):81-84.

[11]张静,胡宁玉,冯丽萍.基于Java的超市进销存管理系统的设计与实现[J].信息与电脑(理论版),2022,34(18):124-127+131.

[12]蒋赛文,沈利迪.基于Java Swing技术的企业进销存管理系统的设计与实现[J].现代工业经济和信息化,2022,12(02):174-176.DOI:10.16525/j.cnki.14-1362/n.2022.02.067.

[13]王宝安,孙中志.基于B/S架构的医药进销存智能化管理系统的设计与实现[J].现代信息科技,2022,6(02):153-156.DOI:10.19850/j.cnki.2096-4706.2022.02.039.

[14]朱龙雨.基于热销推荐的进销存管理系统[J].电脑编程技巧与维护,2021,(11):97-98+135.DOI:10.16184/j.cnki.comprg.2021.11.036.

[15]马耕.基于电子商务平台的饲料产品进销存管理研究[J].中国饲料,2021,(19):99-102.DOI:10.15906/j.cnki.cn11-2975/s.20211920.

[16]代学卿.大数据背景下大型购物中心进销存管理系统的研究[J].信息记录材料,2021,22(10):20-22.DOI:10.16009/j.cnki.cn13-1295/tq.2021.10.008.

[17]文丹妮,董登姣,曾建英,等.基于内部控制的医院药品进销存管理与会计核算[J].中国卫生经济,2021,40(07):76-80.

[18]张婧.煤炭类中小公司进销存管理系统分析与设计的概述[J].辽宁经济,2019,(06):86-87.DOI:10.14041/j.cnki.1003-4617.2019.06.036.

[19]张林杰.中小型电脑公司进销存管理信息系统的设计与实现[D].江西财经大学,2019.

[20]张爱伟.基于J2EE的移动公司进销存管理系统的设计与实现[D].吉林大学,2018.

致  谢

经过几个月时间的努力终于完成了这篇文章,在文章的写作与研究的过程中遇到了很多困难,都在同学和老师的帮助下解决了。尤其非常感谢我最敬爱的老师,他对我进行了无私的指导和帮助,不厌其烦的帮助进行文章的修改。老师严谨的治学态度、渊博的学术知识、诲人不倦的敬业精神以及宽容的待人风范使我获益颇丰。此外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。在此,向帮助和指导过我的老师表示最衷心的感谢!感谢这篇文章所涉及到的各位学者。本文引用了数位学者的文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇文章的写作。感谢我的同学和朋友,在我写文章的过程中给与了我很多素材和帮助,还在文章的撰写和排版过程中提供热情的帮助。同时,感谢我的室友对我的热心指导和帮助,经常有不懂之处都是大家在帮助我,才使得我比较顺利的完成了这篇文章。由于我水平有限,所写文章难免有不足之处,恳请各位老师和学友批评和指正!

免费领取源码,请关注+点赞+收藏+私信博主,谢谢!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐