




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Java的药店库存管理系统设计摘要随着计算机科学技术的快速发展,越来越多的行业趋向于无纸化办公。采用计算机管理系统的方式进行相应的管理操作,不仅能够解决大量人力、物力、财力资源的浪费,而且能够达到高效、便捷的管理。就目前而言,我国许多医药行业也已经采用计算机管理系统的方式进行管理。因此,本次毕业设计决定开发药店库存管理系统,帮助药店进行相应的管理操作。 针对这一需求,本文设计的药店库存管理系统是基于SpringBoot的后台管理系统,使用Window10作为服务端的操作系统,后台开发语言使用的是Java,数据库使用的是MySQL,使用Mybatis做为数据库连接技术,服务器使用的是SpringBoot内嵌的Tomcat服务器,前端页面使用的是Layui框架技术,对该系统进行完整设计。通过对相关管理系统的调查研究,开发了本药店库存管理系统。该系统实现了用户登录、药品管理、类型管理、用户管理、权限管理、处方管理、公告管理、统计管理等几大功能模块。其中药品管理模块主要实现了查看药品列表、库存管理、仓库管理等功能;类型管理主要实现了药品类型添加、查看类型列表等功能;用户管理主要实现了查看用户列表、用户添加等功能;权限管理主要实现了角色管理、菜单管理等主要功能;处方管理主要实现了添加处方信息、查看处方列表主要功能;公告管理主要实现了查看公告列表、发布公告的功能;统计管理主要实现了药品统计、处方统计的功能。关键词:管理系统;JAVA;MySQL数据库目录摘要 I1绪论 11.1研究背景与意义 11.2研究现状 11.3论文结构 22主要技术和工具介绍 32.1SpringBoot简介 32.2MySQL简介 42.3IDEA简介 42.4Tomcat简介 43系统分析 63.1可行性分析 63.2系统功能需求分析 73.3系统非功能需求分析 84系统设计 94.1系统功能结构图 94.2数据库设计 94.2.1数据库实体 104.2.2数据库表设计 135系统实现 175.1用户登录模块 175.2药品管理模块 175.2.1查看药品列表 185.2.2库存管理 185.2.3仓库管理 195.3类型管理模块 205.3.1药品类型添加 205.3.2查看药品类型 215.4用户管理模块 215.4.1查看用户列表 225.4.2添加用户 225.5权限管理模块 235.5.1角色管理 235.5.2菜单管理 245.6处方管理模块 255.7公告管理模块 265.7.1查看公告列表 265.7.2发布公告 275.8统计管理模块 285.8.1药品统计 285.8.2处方统计 296系统测试 326.1测试目的与定义 326.2功能测试 326.3测试结果 347结束语 35参考文献 361绪论本文章围绕系统的设计与实现展开详细叙述,本章主要介绍药店库存管理系统的研究背景与意义以及研究现状。1.1研究背景与意义随着计算机科学技术的快速发展,越来越多的行业趋向于无纸化办公。采用计算机管理系统的方式进行相应的管理操作,不仅能够解决大量人力、物力、财力资源的浪费,而且能够达到高效、便捷的管理。就目前而言,我国许多医药行业也已经采用计算机管理系统的方式进行管理。因此,本次毕业设计决定开发药店库存管理系统,帮助药店进行相应的管理操作。传统的药店库存等相关信息管理需要依靠人工记录的手段实现对药品、处方信息相关管理,不仅需要大量的人力、物力资源,而且非常容易造成数据的错误和缺失。然而,这些信息的数据又非常重要,不容出现一丝的错误,所以对这方面的管理在之前一直是人们较为头疼的一件事情。随着相关计算机管理系统的出现,采用管理系统的方式对这方面的信息进行管理,可以有限的解决浪费资源、效率低下、容易出错等相关问题。本篇论文简单的开发并且研究了对于药店库存的管理系统,它是一种基于JAVA技术的Web应用程序。该系统实现了药店库存管理的基本业务,方便了工作人员,提高了工作人员管理质量和工作效率。1.2研究现状孙赟,沈宁乔,顾明辰(2019)指出2000年6月建立了较先进的计算机网络管理系统,医师用计算机开处方,将电子处方先
传送到收费处,患者付费后,再传送到药房配药,患者走到药房时药已调配好,无须排长队等待;该系统实现了中西药房、中西药库的网络化管理、能快速统计、处理各种与药品的库存数、种类、消耗、处方数、价格等等相关的数据,目前,有关西药房实行计算机网络管理的报道很多,但由于中医药的一些特殊性,中药实行计
算机网络管理的实例较少[1]。汪步升(2019)指出通过对目前中医处方系统存在的重财务收费,轻中医临床应用;审核功能不全面以及应用友好性不够等问题进行分析,进一步阐述通过处方业务流程优化;按方剂学改造处方模板功能;增加审核功能,强化应用友好性来解决中医处方系统存在的问题,进一步推进中医信息化的建设发展[2]。赵虎(2017)指出随着互联网技术的发展,中医馆、中医诊所、中医院、连锁中医馆实现规范化管理,信息化管理越来越受到重视,对于信息化的掌握不仅是能够科学化管理运营医疗机构,同时能够提高一半的效率,节省非常多的时间,保达中医处方系统就提供一套完善的解决方案[3]。赵士洁(2019)指出目前,还有很多门诊医院的处方发药操作仍是由人工完成,其效率低下而且易错,降低了医院的工作效率,中医处方管理房系统弥补了这方面的不足,它将处方的发药操作交由软件系统控制,自动机件系统完成操作,高效且准确[4]。刘霏(2018)指出对中药房而言中药电子处方清晰明了,既避免了医生和调剂人员因理解的偏差而出现生熟制品混淆的现象,又杜绝了因医生字迹潦草而出现配错的情况;中药电子处方的应用使原来由两人承担的收方划价发药工作,变为一人负责完成;在处方统计中,只要轻点鼠标,就可轻松完成过去花很长时间才完成的工作;中药电子处方在发药完成后,可从电脑中直接查询库存情况,及时申领药物,保证门诊用药需求,避免了过去在配药时才发现缺药而让患者久等的现象;在盘点工作中,只要将实物数字输入电脑按财务程序处理数据,很快药物的进、消、存、报损、报溢数据便一目了然,尽收眼底,中药电子处方的应用提高了中药房的效率和配方的准确率[5]。1.3论文结构本文主要研究设计药店库存管理系统的设计与实现。运用Java编程语言、相应的技术框架和MySQL数据库等对管理系统进行设计实现,对相应的数据信息进行整合分类,实现在网页的管理查看。本论文主要分为七个章节,以下是对各章节的概括简述:第一章是论文的绪论部分,主要介绍了课题的研究背景以及研究目的和意义。第二章研究了药店库存管理系统系统所采用的开发技术和开发工具。第三章研究了药店库存管理系统系统的需求分析,根据系统的特点,分析系统采用的体系结构及开发方法,以及该系统的运行环境。第四章是对系统的详细设计进行说明。第五章是系统的具体实现,介绍系统的各个模块的具体实现。第六章在前几章的基础上对系统进行测试和运行。最后对系统进行了认真的总结,以此对未来有一个新的展望。2主要技术和工具介绍该系统采用技术主要包括Java编程语言、LayUI框架和SpringBoot框架等技术,使用MySQL数据库、IDEA和Tomcat服务器等开发工具实现,如下是对所应用技术的介绍。2.1SpringBoot简介现如今后台开源框架主流的有SSH、SSM、SpringBoot,但是SSH、SSM框架的环境配置项较多,而SpringBoot主要的设计思想就是约定大于配置,故而SpingBoot在设计时几乎达到零配置。SpringBoot整合了业界上的开源框架,如Spring、SpringMVC、Mybatis、Struts、Hibernate。具体采用技术框架描述如下:(1)Mybatis:Mybatis的前身是Apache的开源框架iBatis,与Hibernate一样是一个Java持久层的框架。Mybatis的优势在于灵活,它几乎可以替代JDBC,同时提供了接口编程。目前Mybatis的数据访问层DAO(DataAccessObject)是不需要实习类的,它只需要一个接口和XML(或者注解),建议使用注解来实现。Mybatis提供自动映射,动态SQL,级联,缓存,注解,代码和SQL分离等特性,使用方便,同时也对SQL进行优化[6]。因为其具有封装少,映射多样化,支持存储过程,可以进行SQL优化等特点,是的它取代了Hibernate成为Java互联网中首选持久层框架。(2)SpringMVC:SpringMVC和众多其他web框架一样,它基于MVC的设计理念,此外,它采用可松散耦合可插拔组件结构,比其他MVC框架更具扩展性和灵活性。SpringMVC通过一套MVC注解,让POJO成为处理请求的控制器,无需实现任何接口,同时,SpringMVC还支持REST风格的URL请求[7]。SpringMVC框架围绕DispatcherServlet核心展开,DispatcherServlet是springMVC框架的总导演,总策划,它负责截获请求并将其分派给相应的处理器处理。
SpringMVC属于Spring体系中Servlet一部分。(3)SpringBoot:SpringBoot是一个简化Spring开发的框架。用来监护spring应用开发,约定大于配置,去繁就简,justrun就能创建一个独立的,产品级的应用。我们在使用SpringBoot时只需要配置相应的SpringBoot就可以用所有的Spring组件,简单的说,springboot就是整合了很多优秀的框架,不用我们自己手动的去写一堆xml配置然后进行配置。从本质上来说,SpringBoot就是Spring,它做了那些没有它你也会去做的SpringBean配置[8]。SpringBoot是一款非常强大后台框架,因为SpringBoot开发时可以基本不用写配置文件,所以使用SpringBoot搭建网站的后台环境,在SpringBoot的yml配置文件中写入项目启动端口,项目就可以启动。项目的Java文件还有静态文件都是由SpringBoot来管理。2.2MySQL简介MySQL是一个面向公众的、免费、开源的数据库,它的原开发者为瑞典的MySQLAB公司,于2008年被昇阳微系统(SunMicrosystems)收购。2009年,甲骨文公司(Oracle)收购昇阳微系统公司,MySQL成为Oracle旗下产品[9]。MySQL,是一种真正的多用户、多线程的SQL数据库服务器,是基于SQL的客户/服务器模式的关系数据库管理系统,它具有功能强大、管理方便、使用简单、安全可靠性高、多线程、跨平台性、较稳定性等优点。MySQL有如下特点:(1)MySQL数据库是用C和C++语言编写的,并且使用了多种编辑器进行测试,以保证源码的可移植性[10]。(2)支持多个操作系统例如:Windows、Linux、MacOS等等。(3)支持多线程,可以充分的利用CPU资源。(4)为多种编程语言提供API,包括C语言,Java,PHP。Python语言等。(5)MySQL优化了SQL算法,有效的提高了查询速度。(6)MySQL开放源代码且无版权制约,自主性及使用成本低。2.3IDEA简介IDEA全称IntelliJIDEA,是用于Java语言开发的集成环境(也可用于其他语言),IntelliJ在业界被公认为最好的Java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查以及创新的GUI设计等方面的功能可以说是超常的[11]。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。IDEA具有强大的整合能力,提示功能的快速、便捷,提示功能的范围比较广,好用的快捷键和代码模块。2.4Tomcat简介Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。因为Tomcat的稳定性,其在中小型系统和并发访问用户不是很多的场合下被普遍使用,并且因为得到Java运维公司的支持,对JSP的最新规范做的很好,是开发和调试JSP程序的首选[12]。
3系统分析在完成系统开发工具的选择和系统的整体开发框架确定后,为了更加高效的进行系统的开发,这一章主要是对中医处方管理系统的功能做了可行性分析和需求分析。分析了中医处方管理系统要实现的功能以及完成这个项目后想要达到什么样的效果。3.1可行性分析系统的可行性是确定该系统是否是有必要开发的程序系统。在每次可行性分析期间对系统进行全面评估。通过系统可行性分析,有利于减少不必要的社会劳动,使开发过程合理可行。同时,系统的可行性分析是系统分析过程中的一个步骤。它是系统开发之前的一个环节。这个链接不是为了实现系统,而是通过简单的分析过程进行可行和深入的调查。从任务开始,系统的设计是可行的,并且还可以将设计的系统直接放置在稳定的服务器上。以下将从四个方面分析系统的可行性。技术可行性在Java+MySQL的基础上,对本科学习阶段学习到的技术进行了深入研究,一些框架知识将更简单,更易学。因此,从MVC框架技术应用学习框架也有利于SPRING技术的操作和使用。对建立这个管理系统提供帮助。由于学习曲线比较平滑,技术难点在于文件的导入和导出,以及一些系统优化的处理。以前,没有积累的技术和经验,因此应该通过自己的探索解决这些问题。另外,经过我们的分析和考虑,通过一定的研究和分析可以解决上述难点和问题。经济可行性从收入/投资比率的角度考虑该系统,效益相当可观。从大的角度来看,它可以节省系统管理时间,提高管理效率。系统估算编写,运营和维护项目的成本,估算未来收益以及成本是否高于收入。最后,该系统被认为是经济上可行的。法律可行性分析在任何情况下都不能越过法律的界限,本系统的开发在法律方面符合法律要求,分析系统是否涉及侵权、合同、责任向抵触的问题,避免出现。我国已经颁布了计算机软件保护条例和著作权法,不能够盗用他人作品,本系统是自己设计,没有复制任何版权类问题,法律分析是完全可行的。拓展可行原则系统在开发中要考虑后期的维护,对于拓展性方面,代码是否可以进行拓展和文本复用,随着人们需求的不断提高,系统也要结合实际进行不断升级,保证系统拓展后可以正常使用,数据可以存储大量信息。操作者如果需要添加、修改和删除功能,如果系统拓展差的话,系统可能会奔溃,导致不必要的麻烦的产生,所有我们在开发前期就应该想到系统的拓展性能,必须能够达到要求。3.2系统功能需求分析通过对相关管理系统的调查研究,开发了本药店库存管理系统。该系统实现了用户登录、药品管理、类型管理、用户管理、权限管理、处方管理、公告管理、统计管理等几大功能模块。其中药品管理模块主要实现了查看药品列表、库存管理、仓库管理等功能;类型管理主要实现了药品类型添加、查看类型列表等功能;用户管理主要实现了查看用户列表、用户添加等功能;权限管理主要实现了角色管理、菜单管理等主要功能;处方管理主要实现了添加处方信息、查看处方列表主要功能;公告管理主要实现了查看公告列表、发布公告的功能;统计管理主要实现了药品统计、处方统计的功能。用户登录:用户的登录是进入系统的前提,只有拥有系统账号密码的用户才能进入系统,在系统中进行相关的管理操作。药品管理:系统用户进入系统后,可以查看系统中的药品信息,并且可以添加新的药品,同时可以对药店库存和仓库进行相关的管理操作。类型管理:系统用户进入系统后,可以查看系统中所有药品类型的详细信息,并且可以进行相关的操作,同时可以添加新的药品类型。用户管理:系统用户进入系统后,可以查看系统中所有用户的详细信息,并且可以进行相关的管理操作,同时可以添加新的用户。权限管理:用户进入系统后,可以查看系统的角色和菜单的详细信息,并且可以进行相关的管理操作。处方管理:系统用户进入系统后,可以查看系统中所有的处方信息,并且可以进行相关的管理操作,并且可以添加新的处方。公告管理:系统用户进入系统后,可以查看系统中所有发布的公告信息的详细信息,并且可以进行相关的管理操作,同时可以进行发布新的公告的操作。统计管理:系统用户进入系统后,可以查看药品统计、处方统计等详细信息。3.3系统非功能需求分析(1)系统的实用性系统的实用性是指系统设计开发的功能要尽量简单、实用,用户在使用系统过程中能够感受到系统的快捷、方便,不存在很多累赘和多余的操作或者功能。(2)系统的稳定性系统稳定性差则预示着系统在用户使用时,可能会出现数据操作错误,页面响应时间过长或者干脆无法响应等,因此系统的稳定性是用户对系统评价的重要指标之一。系统应采用稳定的操作系统、数据库、中间件等,以保证系统的稳定性。(3)系统的开放性系统的开放性是指系统具有良好的可兼容性,可以在Windows的大部分版本的操作系统中正常的运行,另外,也支持不同浏览器版本,能够在微软的IE浏览器、谷歌浏览器等常用的浏览器上正常运行。系统的易升级和管理也是系统开放性的表现。
4系统设计当系统分析完成之后,所需要做的就是对系统的详细设计。本章节的目的就是从逻辑和物理层面考虑搭建出可以实现的系统框架,方便后期的实现。4.1系统功能结构图通过对相关管理系统的调查研究,开发了本中医处方管理系统。该系统实现了用户登录、药品管理、类型管理、用户管理、权限管理、处方管理、公告管理、统计管理等几大功能模块。其中中药管理模块主要实现了添加药品信息、查看药材列表等功能;类型管理主要实现了药品类型添加、查看类型列表等功能;用户管理主要实现了查看用户列表、用户添加等功能;权限管理主要实现了角色管理、菜单管理等主要功能;处方管理主要实现了添加处方信息、查看处方列表主要功能;公告管理主要实现了查看公告列表、发布公告的功能;统计管理主要实现了药品统计、处方统计的功能。系统的功能结构图如图4-1所示。图4-1系统的功能结构图4.2数据库设计数据库设计就是根据业务系统和您选择的DBMS的需求设计最佳的数据存储模型。同时,建立表的结构以及表与表之间的关系。建立基于数据分析的系统分析和数据库设计,然后从以前的分析角度巩固设计角度,最后完成系统的结构分析和优化设计。使用E-R图对数据库进行逻辑建模。4.2.1数据库实体数据库实体是指数据库管理系统中的各种用于数据管理方便而设定的各种数据管理对象,广义上讲,这些对象中所存储的数据也是数据库实体。实体就是指可以摸到的存在的具有区分其他事物的特性或属性并与其他实体有联系的实体。(1)用户实体包括用户ID、用户名、密码、角色ID、状态。用户实体属性图如4-2所示。图4-2用户实体属性图(2)角色实体属性包括角色ID、角色名、角色描述、状态。角色实体属性图如图4-3所示。图4-3角色实体属性图(3)药品类型实体属性包括药品类型ID、类型名、状态。药品类型实体属性图如4-4所示。图4-4药品类型实体属性图(4)药品实体属性包括药品ID、药品编号、药品名、药品类型、药材基原、药材别名、性味归经、功能主治、药材出处、计量单位、注意事项、状态。药品实体属性图如4-5所示。图4-5药品实体属性图处方类型实体属性包括处方类型ID、处方名、状态。处方类型实体属性图如4-6所示。图4-6处方类型实体属性图(6)处方实体属性包括处方ID、处方编号、处方出处、处方名、处方组成、处方类别、制成方法、主治、禁忌、状态。处方实体属性图如4-7所示。图4-7处方实体属性图(7)公告实体属性包括公告ID、用户名、公告内容、发布时间、状态、角色名。公告方实体属性图如4-8所示。图4-8公告实体属性图4.2.2数据库表设计概念设计的目标是反映系统所需的数据库概念的结构,即概念模型。概念架构独立于数据库的逻辑结构,是一个独立的DBMS,不需要依赖计算机系统。以下是本系统中的数据库表:(1)用户表:用来存放用户所需要的信息,包括用户ID、用户名、密码、角色ID、状态。用户表如表4-1所示。表4-1用户表序号字段名称字段类型长度允许为空是否为主键备注1idint11NoYes自动递增2usernamevarchar255YesNo用户名3passwordvarchar255YesNo密码4role_idint11YesNo角色ID5statusint11YesNo状态(2)角色表:用来存放角色的基本信息。包括角色ID、角色名、角色描述、状态。角色表如表4-2所示。表4-2角色表序号字段名称字段类型长度允许为空是否为主键备注1idint11NoYes自动递增2role_namevarchar255YesNo角色名3role_descvarchar255YesNo角色描述4statusint11YesNo状态
(3)药品类型表:用来存放药品类型的基本信息。包括药品类型ID、类型名、状态。药品类型表如表4-3所示。表4-3药品类型表序号字段名称字段类型长度允许为空是否为主键备注1idint11NoYes自动递增2type_namevarchar255YesNo类型名3statusint11YesNo状态(4)药品表:该表用于保存药品的相关信息,包括药品ID、药品编号、药品名、药品类型、药材基原、药材别名、性味归经、功能主治、药材出处、计量单位、注意事项、状态。药品表如表4-4所示。表4-4药品表序号字段名称字段类型长度允许为空是否为主键备注1idint11NoYes自动递增2drug_codevarchar255YesNo药品编号3drug_namevarchar255YesNo药品名4drug_typevarchar255YesNo药品类型5drug_componentvarchar255YesNo药材基原6another_namevarchar255YesNo药材别名7tastevarchar255YesNo性味归经8featuresvarchar255YesNo功能主治9drug_fromvarchar255YesNo药材出处10drug_unitvarchar255YesNo计量单位11precautionsvarchar255YesNo注意事项12statusint11YesNo状态
(5)处方类型表:该表用于保存处方类型的相关信息。包括处方类型ID、处方类型名、状态。处方类型表如表4-5所示。表4-5处方类型表序号字段名称字段类型长度允许为空是否为主键备注1idint11NoYes自动递增2prescription_namevarchar255YesNo类型名3statusint11YesNo状态
(6)处方表:该表用于保存处方的相关信息,包括处方ID、处方编号、处方出处、处方名、处方组成、处方类别、制成方法、主治、禁忌、状态。处方信息表如表4-6所示。表4-6处方信息表序号字段名称字段类型长度允许为空是否为主键备注1idint11NoYes自动递增2prescription_codevarchar255YesNo处方编号3prescription_fromvarchar255YesNo处方出处4prescription_namevarchar255YesNo处方名5prescription_componentvarchar255YesNo处方组成6prescription_typevarchar255YesNo处方类别7prescription_methodvarchar255YesNo制成方法8prescription_treatmentvarchar255YesNo主治9prescription_taboovarchar255YesNo禁忌10statusint11YesNo状态
(7)公告表:该表用于保存公告的相关信息,包括公告ID、用户名、公告内容、发布时间、状态、角色名。公告信息表如表4-6所示。表4-6公告信息表序号字段名称字段类型长度允许为空是否为主键备注1idint11NoYes自动递增2user_namevarchar255YesNo用户名3contextvarchar255YesNo公告内容4create_timedatetime0YesNo发布时间5statusint11YesNo状态6role_namevarchar255YesNo角色表
5系统实现为了将本系统的实现更仔细的进行介绍,本章节对各个功能模块进行详细的展示和介绍。5.1用户登录模块该系统需要用户登录后才可以使用,用户在登录页面展示的表单中输入自己的登录信息,点击登录按,如果查询有结果,则判定用户存在,返回登陆成功跳转的页面地址,否则返回用户信息错误提示。用户登录界面如图5-1所示。图5-1用户登录用户登录的主要代码如下:@RequestMapping("/login")
@ResponseBody
publicObjectlogin(@RequestBodyUseruser,HttpServletRequestrequest){
UserExampleue=newUserExample();
ue.createCriteria().andUsernameEqualTo(user.getUsername()).andPasswordEqualTo(user.getPassword());
List<User>users=userMapper.selectByExample(ue);
if(users.size()>0){
request.getSession().setAttribute("user",users.get(0));
returnLayuiResult.LayuiData(200,"登陆成功","/");
}
returnLayuiResult.LayuiData(0,"账号密码错误",null);
}5.2药品管理模块药品管理模块主要实现了查看药品列表、库存管理、仓库管理等功能,以下是对药品管理模块功能的具体介绍。5.2.1查看药品列表管理员进入到后台管理系统后,点击进入系统左边功能栏中的“药品管理”页面,可以查看系统中所有药品的详细信息列表,并且可以对药品信息作出删除或者修改操作,同时可以上传药品信息表格到系统当中,药品管理展示如图5-2所示。图5-2药品管理展示药品管理关键代码如下:@RequestMapping("/get")
publicObjectget(Integerpage,Integerlimit){
DrugsExampledrugsExample=newDrugsExample();
List<Drugs>drugs=drugsMapper.selectByExample(drugsExample);
Pager<Drugs>pager=newPager<>();
pager.setCurentPageIndex(page);
pager.setCountPerpage(limit);
pager.setBigList(drugs);
returnLayuiResult.LayuiData(0,"success",pager.getSmallList(),pager.getRecordCount());
}5.2.2库存管理管理员进入到后台管理系统后,点击进入系统左边功能栏中的“药品管理”页面下的库存管理,可以查看系统中所有药品库存的详细信息列表,并且可以对药品库存信息作出删除或者修改操作,同时可以添加新的药品库存信息,库存管理展示如图5-3所示。图5-3库存管理展示库存管理关键代码如下:@RequestMapping("/add")
publicObjectadd(@RequestBodyDrugStockdrugStock){
QueryWrapper<DrugStock>queryWrapper=newQueryWrapper<>();
queryWrapper.eq("drug_id",drugStock.getDrugId()).eq("stock_id",drugStock.getStockId());
List<DrugStock>drugStocks=drugStockMapper.selectList(queryWrapper);
if(drugStocks.size()>0){
returnLayuiResult.LayuiData(0,"药品库存记录已存在,请勿重复操作",null);
}
drugStockMapper.insert(drugStock);
returnLayuiResult.LayuiData(0,"创建药品库存记录成功",null);
}5.2.3仓库管理管理员进入到后台管理系统后,点击进入系统左边功能栏中的“药品管理”页面下的仓库管理,可以查看系统中所有药品仓库的详细信息列表,并且可以对药品仓库信息作出删除或者修改操作,同时可以添加新的药品仓库信息,仓库管理展示如图5-4所示。图5-4仓库管理展示仓库管理关键代码如下:@RequestMapping("/get")
publicObjectget(Integerpage,Integerlimit){
QueryWrapper<Stock>queryWrapper=newQueryWrapper<>();
List<Stock>stocks=stockMapper.selectList(queryWrapper);
Pager<Stock>pager=newPager<>();
pager.setCurentPageIndex(page);
pager.setCountPerpage(limit);
pager.setBigList(stocks);
returnLayuiResult.LayuiData(0,"success",pager.getSmallList(),pager.getRecordCount());
}5.3类型管理模块该模块下主要实现了药品类型添加、查看类型列表等功能,以下是对该模块下的功能进行具体的介绍。5.3.1药品类型添加管理员进入到后台管理系统后,点击系统左边功能栏中的“类型管理”下的类型添加,可以通过填写药品类型名,从而完成药品类型的添加,药品类型添加展示如图5-5所示。图5-5药品类型添加药品类型添加关键代码如下:@RequestMapping("/add")
publicObjectadd(@RequestBodyDrugTypedrugType){
drugTypeMapper.insertSelective(drugType);
returnLayuiResult.LayuiData(0,"添加药材类别成功",null);
}5.3.2查看药品类型管理员进入到后台管理系统后,点击系统左边功能栏中的“类型管理”下的类型列表,可以看到系统中所有药品类型的详细信息,并且可以进行相关的管理操作功,查看药品类型信息展示如图5-6所示。图5-6查看药品类型信息展示查看药品类型信息关键代码如下:@RequestMapping("/get")
publicObjectget(Integerpage,Integerlimit){
DrugTypeExampledte=newDrugTypeExample();
List<DrugType>drugTypes=drugTypeMapper.selectByExample(dte);
Pager<DrugType>pager=newPager<>();
pager.setCurentPageIndex(page);
pager.setCountPerpage(limit);
pager.setBigList(drugTypes);
returnLayuiResult.LayuiData(0,"success",pager.getSmallList(),pager.getRecordCount());
}5.4用户管理模块该模块下主要实现了查看用户列表、用户添加等功能,以下是对该模块下的功能进行具体的介绍。5.4.1查看用户列表管理员进入到后台管理系统后,点击系统左边功能栏中的“用户管理”下的用户列表,可以看到该系统中所有的系统用户信息,并且可以进行相应的操作,查看用户列表展示如图5-7所示。图5-7查看用户列表查看用户列表关键代码如下:@RequestMapping("/get")
publicObjectget(Integerpage,Integerlimit){
UserExampleuserExample=newUserExample();
List<User>users=userMapper.selectByExample(userExample);
users.forEach(user->{
Rolerole=roleMapper.selectByPrimaryKey(user.getRoleId());
user.setRoleName(role.getRoleName());
user.setRoleDesc(role.getRoleDesc());
});
Pager<User>pager=newPager<>();
pager.setCurentPageIndex(page);
pager.setCountPerpage(limit);
pager.setBigList(users);
returnLayuiResult.LayuiData(0,"success",pager.getSmallList(),pager.getRecordCount());
}5.4.2添加用户管理员进入到后台管理系统后,点击系统左边功能栏中的“用户管理”下的添加用户,填写详细的用户信息,包括用户名、密码、用户角色等用户基本信息,即可添加成功,添加用户展示如图5-8所示。图5-8添加用户展示添加用户关键代码如下:@RequestMapping("/add")
publicObjectadd(@RequestBodyUseruser){
userMapper.insertSelective(user);
returnLayuiResult.LayuiData(0,"添加用户成功",null);
}5.5权限管理模块该模块下主要实现了角色管理、菜单管理等主要功能,以下是对该模块下的功能进行具体的介绍。5.5.1角色管理管理员进入到后台管理系统后,点击系统左边功能栏中的“权限管理”下的角色管理,可以看到该系统中所有的角色的详细信息,并且可以进行相应的添加、修改、删除等操作,同时可以给角色赋予相关的权限,角色管理展示如图5-9所示。图5-7角色管理角色管理关键代码如下:@RequestMapping("/get")
publicObjectget(Integerpage,Integerlimit){
RoleExampleroleExample=newRoleExample();
List<Role>roles=roleMapper.selectByExample(roleExample);
Pager<Role>pager=newPager<>();
pager.setCurentPageIndex(page);
pager.setCountPerpage(limit);
pager.setBigList(roles);
returnLayuiResult.LayuiData(0,"请求成功",pager.getSmallList(),pager.getRecordCount());
}5.5.2菜单管理管理员进入到后台管理系统后,点击系统左边功能栏中的“权限管理”下的菜单管理,可以看到该系统中所有的菜单的详细信息,并且可以进行相应的添加、修改、删除等操作,菜单管理展示如图5-10所示。图5-10菜单管理菜单管理关键代码如下:@RequestMapping("/get")
publicObjectget(){
MenuExampleme=newMenuExample();
me.createCriteria().andParentIdEqualTo(0);
List<Menu>menus=menuMapper.selectByExample(me);
List<Object>list=newArrayList<>();
for(Menumenu:menus){
Map<String,Object>map=newHashMap<>();
map.put("id",menu.getId());
map.put("menuName",menu.getMenuName());
map.put("menuUrl",menu.getMenuUrl());
MenuExamplemenuExample=newMenuExample();
menuExample.createCriteria().andParentIdEqualTo(menu.getId());
List<Menu>menus1=menuMapper.selectByExample(menuExample);
map.put("child",menus1);
list.add(map);
}
returnLayuiResult.LayuiData(0,"请求成功",list);
}5.6处方管理模块管理员进入到后台管理系统后,点击进入系统左边功能栏中的“处方管理”页面,可以查看系统中所有处方的详细信息列表,并且可以对处方信息作出删除或者修改操作,同时可以上传处方信息表格到系统当中,处方管理展示如图5-11所示。图5-11处方管理处方管理关键代码如下:@RequestMapping("/get")
publicObjectget(Integerpage,Integerlimit){
PrescriptionExamplepe=newPrescriptionExample();
List<Prescription>prescriptions=prescriptionMapper.selectByExample(pe);
Pager<Prescription>pager=newPager<>();
pager.setCurentPageIndex(page);
pager.setCountPerpage(limit);
pager.setBigList(prescriptions);
returnLayuiResult.LayuiData(0,"success",pager.getSmallList(),pager.getRecordCount());
}5.7公告管理模块该模块下主要实现了查看公告列表、发布公告的功能,以下是对该模块下的功能进行具体的介绍。5.7.1查看公告列表管理员进入到后台管理系统后,点击系统左边功能栏中的“公告管理”下的公告列表,可以查看系统中所有发布的公告列表的详细信息,并且可以进行相关的管理操作,查看公告列表展示如图5-12所示。图5-12查看公告列表查看公告列表关键代码如下:@RequestMapping("/get")
publicObjectget(Integerpage,Integerlimit){
SystemNoticeExamplesne=newSystemNoticeExample();
List<SystemNotice>systemNotices=systemNoticeMapper.selectByExample(sne);
Pager<SystemNotice>pager=newPager<>();
pager.setCurentPageIndex(page);
pager.setCountPerpage(limit);
pager.setBigList(systemNotices);
returnLayuiResult.LayuiData(0,"success",pager.getSmallList(),pager.getRecordCount());
}5.7.2发布公告管理员进入到后台管理系统后,点击系统左边功能栏中的“公告管理”下的发布公告,通过填写完整的公告信息进行系统公告的发布操作,发布公告展示如图5-13所示。图5-13发布公告发布公告关键代码如下:@RequestMapping("/add/{context}")
publicObjectadd(@PathVariableStringcontext,HttpServletRequestrequest){
Useruser=(User)request.getSession().getAttribute("user");
Rolerole=roleMapper.selectByPrimaryKey(user.getRoleId());
SystemNoticesystemNotice=newSystemNotice();
systemNotice.setContext(context);
systemNotice.setUserName(user.getUsername());
systemNotice.setRoleName(role.getRoleName());
systemNotice.setCreatedTime(newDate());
systemNoticeMapper.insertSelective(systemNotice);
returnLayuiResult.LayuiData(0,"发布公告成功",null);
}5.8统计管理模块该模块下主要实现了药品统计、处方统计的功能,以下是对该模块下的功能进行具体的介绍。5.8.1药品统计管理员进入到后台管理系统后,点击系统左边功能栏中的“统计管理”下的药品统计,可以看到当前系统中所有的药品的统计图表信息,查看药品统计展示如图5-14所示。图5-14查看药品统计查看药品统计关键代码如下:@RequestMapping("/drug/get")
publicObjectdrugGet(){
DrugTypeExampledte=newDrugTypeExample();
List<DrugType>drugTypes=drugTypeMapper.selectByExample(dte);
Map<String,Object>map=newHashMap<>();
List<String>typeNameList=newArrayList<>();
List<Object>mapList=newArrayList<>();
drugTypes.forEach(drugType->{
typeNameList.add(drugType.getTypeName());
DrugsExamplede=newDrugsExample();
de.createCriteria().andDrugTypeEqualTo(drugType.getTypeName());
List<Drugs>drugs=drugsMapper.selectByExample(de);
Map<String,Object>drugMap=newHashMap<>();
drugMap.put("value",drugs.size());
drugMap.put("name",drugType.getTypeName());
mapList.add(drugMap);
});
map.put("typeData",typeNameList);
map.put("data",mapList);
returnLayuiResult.LayuiData(0,"success",map);
}5.8.2处方统计管理员进入到后台管理系统后,点击系统左边功能栏中的“统计管理”下的处方统计,可以看到当前系统中所有的处方的统计图表信息,查看处方统计展示如图5-15所示。图5-15查看处方统计查看处方统计关键代码如下:@RequestMapping("/prescription/get")
publicObjectprescriptionGet(){
PrescriptionTypeExamplepte=newPrescriptionTypeExample();
List<PrescriptionType>prescriptionTypes=prescriptionTypeMapper.selectByExample(pte);
Map<String,Object>map=newHashMap<>();
List<String>typeList=newArrayList<>();
List<Object>mapList=newArrayList<>();
prescriptionTypes.forEach(prescriptionType->{
typeList.add(prescriptionType.getPrescriptionName());
PrescriptionExampleprescriptionExample=newPrescriptionExample();
prescriptionExample.createCriteria().andPrescriptionTypeEqualTo(prescriptionType.getPrescriptionName());
List<Prescription>prescriptions=prescriptionMapper.selectByExample(prescriptionExample);
Map<String,Object>prescriptionMap=newHashMap<>();
prescriptionMap.put("value",prescriptions.size());
prescriptionMap.put("name",prescriptionType.getPrescriptionName());
mapList.add(prescriptionMap);
});
map.put("typeData",typeList);
map.put("data",mapList);
returnLayuiResult.LayuiData(0,"success",map);
}
6系统测试系统测试就是对设计完成的软件进行功能和稳定性的测试,看是否能够达到设计目标的需求。根据软件的功能进行逐一实现,看是否达到预期设计目的,若能够达到要求满足用户的需求则说明设计成功。6.1测试目的与定义系统测试是系统的最后一部分,在系统开发过程中多多少少会出现错误,这些错
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学生血吸虫知识
- 人教陕西 九年级 下册 语文 期末特训 专题3 语段综合
- 公司调岗补偿合同范例
- 初级药师合同范例
- 人才租赁劳务合同范例
- 个人之间拆迁合同范例
- 临时司机劳务合同范例
- 动产汽车互易合同范例
- 农村建房包工合同范例
- 出租物品维修合同范例
- 2024年广东省中考数学试卷(附答案)
- 应急社会动员与志愿者管理预案
- 旅行社安全管理培训
- DB65T 8024-2024 建筑用室外气象参数标准
- 7号楼-招标控制价
- 《预制高强混凝土风电塔筒生产技术规程》文本附编制说明
- ICD-11(国际疾病分类第十一修订)重点基础知识总结-
- 重庆市2025年初中学业水平暨高中招生考试数学试题预测卷(一)
- 2025年山东省青岛市技师学院公开招聘工作人员35名历年高频重点提升(共500题)附带答案详解
- 全国青少年人工智能创新挑战赛技能知识竞赛题库(含答案)
- 服务细节培训课件
评论
0/150
提交评论