如何使用ssm实现公司进销存管理系统设计与开发

@TOC

ssm792公司进销存管理系统设计与开发+jsp

第1章 绪论

1.1选题动因

当前的网络技术,软件技术等都具备成熟的理论基础,市场上也出现各种技术开发的软件,这些软件都被用于各个领域,包括生活和工作的领域。随着电脑和笔记本的广泛运用,以及各种计算机硬件的完善和升级,市面上的电脑和笔记本的性能都得到提升,可以支持的软件也逐渐增多,因此,在计算机上安装软件来发挥其高效地信息处理的作用,则很受人们的青睐。对于瓦房店宝山轴承制造有限公司进销存管理系统信息来讲,通过手工形式处理,在面对庞大的信息数量时,就显得不适宜了,首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,为了解决上述问题,有必要建立瓦房店宝山轴承制造有限公司进销存管理系统,来规范瓦房店宝山轴承制造有限公司进销存管理系统信息管理流程,让管理工作可以系统化和程序化,同时,瓦房店宝山轴承制造有限公司进销存管理系统的有效运用可以帮助管理人员准确快速地处理信息。

1.2目的和意义

瓦房店宝山轴承制造有限公司进销存管理系统可以对瓦房店宝山轴承制造有限公司进销存管理系统信息进行集中管理,可以真正避免传统管理的缺陷。瓦房店宝山轴承制造有限公司进销存管理系统是一款运用软件开发技术设计实现的应用系统,在信息处理上可以达到快速的目的,不管是针对数据添加,数据维护和统计,以及数据查询等处理要求,瓦房店宝山轴承制造有限公司进销存管理系统都可以轻松应对。所以,瓦房店宝山轴承制造有限公司进销存管理系统的运用是让瓦房店宝山轴承制造有限公司进销存管理系统信息管理升级的最好方式。它可以实现信息处理的便利化要求,还可以规范信息处理的流程,让事务处理成为管理人员手中的一件简单事,而不是之前手工处理时的困难事。尽管瓦房店宝山轴承制造有限公司进销存管理系统具备较完善的功能,但是也需要管理人员利用闲暇时间提升自身素质以及个人能力,在操作瓦房店宝山轴承制造有限公司进销存管理系统时可以最大化运用瓦房店宝山轴承制造有限公司进销存管理系统提供的功能,让系统在满足高效率处理数据的同时,也能始终稳定运行,还可以确保数据的可靠性与数据处理的质量。

1.3论文结构安排

本文总共分为6个章节,每个章节都对本系统描述了不同的内容。接下来就对本文的研究内容进行阐述。

第1章:这个章节是论文的绪论部分。从选题的背景和意义的角度阐述即将开发的系统。

第2章:这个章节是技术介绍部分。从本系统需要运用的技术知识的角度阐述系统。

第3章:这个章节是系统分析部分。从分析系统可行性,分析系统功能和性能等角度阐述系统。

第4章:这个章节是系统设计部分。从系统功能结构的角度和数据库设计的角度阐述系统。

第5章:这个章节是系统实现部分。从系统功能模块运行效果的角度阐述系统。

第6章:这个章节是系统测试部分。从测试系统功能,系统测试方法的角度阐述系统。

第2章 开发环境与技术

开发瓦房店宝山轴承制造有限公司进销存管理系统需要搭建编程的环境,也需要通过调查,对各个相关技术进行分析,选取适合本系统开发的技术与工具。

2.1 MYSQL数据库

题目确定了是一个应用程序之后,就开始按部就班的进行设计与分析。本课题是需要数据库作为数据管理工具以及数据载体,从程序功能分析到数据分析,选择合适的关系型数据库是当下所选择的重要环节。关系型数据库可选择余地不多,本身甲骨文公司的两个,微软的两个,IBM的一个,也就是这五个了,功能和差异都不影响数据库的选择,因为这些数据库都能实现应用程序功能所需的,那么只能从其他的方面来综合考虑哪种数据库更合适。作为开发使用的电脑硬件上来讲,还是大一的时候买的,当初并没有太多的钱买好一点的电脑,只是作为学习用的,所以经过这么几年的使用,电脑老化了,性能下降也比较厉害,还有好多需要用的学习资料,本身面临毕业,选择学校机房也不是一个长久的打算,选择一个数据库适合自己的老旧笔记本电脑作为学习开发当前的应用,是最重要的。综合考虑的结果就是选用MySQL数据库作为应用数据库,因为MySQL数据库体积小,占用内存小,不影响电脑上其他用的软件运行,并且不需要因为安装维护MySQL数据库而重装系统,最终选择的数据库就是MySQL数据库。

2.2 Tomcat 介绍

刚开始学习Java语言的时候,是不知道还有Tomcat这些东西的,各种语法各种输出在控制台进行输出结果,当Java网站开发的时候就不可避免的学习到了Tomcat服务器。Tomcat准确的来讲不算是服务器,可以说是jsp引擎或者一个容器,这些都是学术上或者原理上都比较贴切的,但是实际工作中Tomcat就是作为一个web服务器来用的,因为可以实现网站的发布和运行。因为工作原理的原因,Tomcat一般作为中小型企业和并发量并不突出的一种轻量级的服务器存在的,比如某些行业的应用系统,本身客户端就不多,需要的连接也不多,一般都用Tomcat的。Tomcat里面可以配置多个网站,配置文件后缀是config的文档,类似于XML的结构,比较清晰明了。每当Java发布新的版本的时候,Tomcat也会为了匹配Java的版本进行升级,目前Tomcat版本已经到版本10了。Tomcat标识是一只有点发黄的小猫咪,当Tomcat配置成功一般测试的时候能看到这个小猫咪就算是成功的,才能进行下一步的配置。Tomcat服务器在Java网站开发中还是挺合适的。

2.3 jsp技术

jsp技术可以让初学者尽快上手进行编写动态网站,不需要变成高级的Java编程人员才可以书写代码,从学习的效率还有编写的效率上都有很大的提升。让着重于网页开发者与着重于后台逻辑开发进行分离合作开发变成了一种可能,降低了学习成本,不需要考虑程序运行解释编译阶段的话,jsp网页本身就可以理解成一个普通的Servlet。jsp结构上面,主要分为两个方面,一个是专属的jsp引擎,通俗的讲就是可以实现jsp编译后运行解释的一个东西,另一个就是web服务器。jsp运行编译需要jsp引擎和web服务器进行配合以及相互协作,当然他们的分工也是很明确的,这样才可以真正的运行起来。jsp容器和引擎有Tomcat,这个Tomcat其实也还有Apache静态解释代码的部分,虽然看起来运行效果差不多,但是其实是两个截然不同的工具,在文件系统里目录也是不一样的,当然如果有特殊需求也是可以进行特殊的配置的,配置上面还是比较灵活的。虽然Tomcat部署了网站之后就可以运行网页让客户访问,但是Tomcat也只是jsp引擎而非web服务器。比如JRUN和Resin都算是jsp引擎,而web服务器的职责比较单一,就是处理客户端请求还有返回给客户显示请求处理后的数据而已。jsp引擎则可以运行纯HTML编写的网站,也可以运行jsp编写的动态网站,在效率上也只是比单纯的web服务器而已,但是从纯web服务器无法运行动态网站上来讲,jsp引擎在功能上还是强大了很多,提升一点点效率反而算不了什么,对于必须实现的功能这些要素上,选择了jsp技术。

2.4ssm框架

java一直被人诟病的一点就是臃肿、麻烦。当我们还在辛苦的搭建项目时,可能Python程序员已经把功能写好了,究其原因注意是两点:复杂的配置,项目各种配置其实是开发时的损耗, 因为在思考 Spring 特性配置和解决业务问题之间需要进行思维切换,所以写配置挤占了写应用程序逻辑的时间。一个是混乱的依赖管理。项目的依赖管理也是件吃力不讨好的事情。决定项目里要用哪些库就已经够让人头痛的了,你还要知道这些库的哪个版本和其他库不会有冲突,这难题实在太棘手。并且,依赖管理也是一种损耗,添加依赖不是写应用程序代码。一旦选错了依赖的版本,随之而来的不兼容问题毫无疑问会是生产力杀手。而SpringBoot让这一切成为过去!Spring Boot 简化了基于Spring的应用开发,只需要“run”就能创建一个独立的、生产级别的Spring应用。Spring Boot为Spring平台及第三方库提供开箱即用的设置(提供默认设置,存放默认配置的包就是启动器),这样我们就可以简单的开始。多数Spring Boot应用只需要很少的Spring配置。我们可以使用SpringBoot创建java应用,并使用java –jar 启动它,就能得到一个生产级别的web工程。

第3章 系统分析

用户的需求以及与本系统相似的在市场上存在的其它系统可以作为系统分析中参考的资料,分析人员可以根据这些信息确定出本系统具备的功能,分析出本系统具备的性能等内容。

3.1可行性分析

尽管系统是根据用户的要求进行制作,但是在确定制作前,有必要分析其可行性。

3.1.1操作可行性分析

开发本系统需要用到的工具,本人都比较熟悉,因此可以使用这些工具,完整开发瓦房店宝山轴承制造有限公司进销存管理系统。此外,瓦房店宝山轴承制造有限公司进销存管理系统在功能上,基本都是完成信息的处理,涵盖了添加,修改,删除等,而且操作者面对的都是各个功能操作界面,并不是编码后台,所以一般的使用者都可以通过操作界面轻松完成信息的加工处理。因此,本系统操作可行。

3.1.2经济可行性分析

开发本系统,并没有投入资金购买开发工具。因为使用的开发工具都是事先在百度上下载安装在本人电脑上的,随着软件开发技术的成熟,系统功能实现的编码也都模块化,很容易通过各大软件开发类网站获取,并通过小部分代码改动,运用到本系统中,这些都不需要资金投入,同时,本系统开发的结构选用B/S,成本可以忽略不计。

3.1.3技术可行性分析

本系统需要的软件包括Eclipse,Tomcat,Mysql等,这些工具都接触并使用过,至于JAVA,B/S,jsp,Html等技术,图书馆都有对应的书籍可以参考学习,加上平时课堂上学习的编程小项目对这些技术都有讲解,另外,本人也从课程设计作业中锻炼了编程能力。所以在技术上,可以完成瓦房店宝山轴承制造有限公司进销存管理系统的编程开发。

通过上面的分析,已经确定了本系统在经济上的可行,本系统在技术上的可行,本系统在操作上的可行。由此,可以得出在目前的条件下,对于瓦房店宝山轴承制造有限公司进销存管理系统的设计与实现是可以进行下去的。

3.2系统流程分析

本系统在处理数据时,其内部的操作逻辑也需要使用相应的工具进行展示。

在本系统的数据录入页面,对于操作者提供的每条数据都有相应的检验规则,比如数据信息不能有非法字符,或者本来应该是汉字的数据,不能用字母代替,还有对数据内容的长度等进行规范,这样的可以确保数据准确性的检验规则,在编码时,就提前编写好了。数据添加的流程见下图。如果数据已经保存进入数据库,则说明操作者提供的数据内容和格式都是符合要求的。

图3.1 添加信息流程图

很多时候,面对系统中的大量数据,难免会发现一些错误,因此需要及时纠正错误,本系统也提供数据后期的修改功能,其流程见下图。但是更新的数据也需要通过数据有效性检验。能够最终写入数据库则说明修改的数据是符合要求的。

图3.2 修改信息流程图

面对数据库里面大量数据,在系统的前台,要想快速获取需要的信息,就需要使用查询功能。其流程见下图。该功能需要操作者提前输入关键词,当系统的后台数据库保存了与关键词匹配的数据时,就会及时显示出来,整个过程耗时很短。

图3.3 查询信息流程图

3.3系统性能分析

分析瓦房店宝山轴承制造有限公司进销存管理系统对于性能的需求主要还是从下面的5个角度来分析,它们分别是系统的实用性,系统的适应性,系统的易操作性,系统的安全性和系统的易维护性。

性能需求一:系统的实用性,本系统主要是让管理人员集中处理相关信息,可以提供方便快捷的信息添加,信息编辑等操作。在提高信息管理人员的工作效率的同时,也可以降低管理成本,并大大减少管理人员日常繁琐的工作量。

性能需求二:系统的适应性,本系统对于运行环境的要求并不高,可以被广泛运用在生活中。因为使用者只要在日常使用的计算机,或者是随身携带的笔记本上搭建运行环境都能运行本系统,另外系统提供的基础功能包括添加,修改等都能随时操作。

性能需求三:系统的易操作性,本系统提供的功能跟同类型系统一样,也具备简单的增删改操作,操作流程的逻辑也符合广大使用者的使用需求,使用者使用本系统管理数据会非常顺手。

性能需求四:系统的安全性,本系统在数据保存与管理上安全系数要达标,在设计与编码阶段,通过对用户进行权限分配,把系统的功能依照不同用户的角色进行分配,在首次进入系统时,通过编写安全验证的代码模块,引导不同用户进入不同的操作界面。还可以对用户基础信息包括登录的账号密码等进行加密保存,可以利用当下常用的技术成熟的MD5加密技术实现。

性能需求五:系统的易维护性,本系统在后期运行中,会根据使用者的操作,产生许多数据信息,为了便于维护,就要求这些数据可以通过工具从数据库中导出来,对于一些阶段性数据,可以进行批量删除,以此达到轻负荷处理数据的目标,让本系统可以变得更加轻盈。

第4章 系统设计

市面上设计比较好的系统都有一个共同特征,就是主题鲜明突出。通过对页面简洁清晰的布局,让页面的内容,包括文字语言,或者视频图片等元素可以清晰表达出系统的主题。让来访用户无需花费过多精力和时间找寻需要的内容。

4.1界面设计原则

一般来说,大部分用户使用系统,有些是想从系统中获取需要的信息,有些则是使用系统提供的服务。所以,为了改善用户体验,提高系统的使用率,在对系统界面设计时,需要按照下面的原则进行。

第一点,对用户进行分析,了解用户使用系统的目的,以及使用系统的方式,考虑大部分用户的阅读习惯,设计Z字形或F型结构可以方便用户获取信息。

第二点:设计有效的导航,这个包括每个页面上都有导航条的显示,有时也可以在页面的底部设计导航条,当用户进入具体页面时,要设计相应的位置提示,在页面中比较特殊的位置,需要设计返回链接,可以返回上个页面,也可以返回首页等。

第三点:对整个系统要运用统一的设计方案,包括色彩方案的一致性,页面模板的相似性等,对相同操作和专业术语的描述在整个系统中也应该保持一致。

第四点:设计的界面要保证传达的内容清晰准确。要避免在同一个页面设计非常多的内容,另外可以准确对系统内容进行分类,把页面中用户视觉集中的位置,用来显示重要信息。

作为初学者,并没有那么多的设计经验,但是可以运用上面提到的界面设计原则设计出比较好的系统,可以让用户产生良好的使用体验。

4.2功能结构设计

为了让系统的编码可以顺利进行,特意对本系统功能进行细分设计,设计的系统功能结构见下图。

瓦房店宝山轴承制造有限公司进销存管理系统

员工信息管理

会员信息管理

商品类型管理

商品信息管理

员工信息修改

员工信息新增

商品信息添加

商品信息删除

商品信息修改

销售信息添加

销售信息修改

销售信息删除

会员信息添加

会员信息删改

会员信息删除

商品类型添加

商品类型修改

商品类型删除

盘点信息管理

盘点信息修改

盘点信息删除

盘点信息添加

销售信息管理

图4.1 系统功能结构图

4.3 数据库设计

开发一个系统也需要提前设计数据库。这里的数据库是相关数据的集合,存储在一起的这些数据也是按照一定的组织方式进行的。目前,数据库能够服务于多种应用程序,则是源于它存储方式最佳,具备数据冗余率低的优势。虽然数据库为程序提供信息存储服务,但它与程序之间也可以保持较高的独立性。总而言之,数据库经历了很长一段时间的发展,从最初的不为人知,到现在的人尽皆知,其相关技术也越发成熟,同时也拥有着坚实的理论基础。

4.3.1 数据库概念设计

这部分内容需要借助数据库关系图来完成,也需要使用专门绘制数据库关系图的工具,比如Visio工具就可以设计E-R图(数据库关系图)。设计数据库,也需要按照设计的流程进行,首先还是要根据需求完成实体的确定,分析实体具有的特征,还有对实体间的关联关系进行确定。最后才是使用E-R模型的表示方法,绘制本系统的E-R图。不管是使用亿图软件,还是Visio工具,对于E-R模型的表示符号都一样,通常矩形代表实体,实体间存在的关系用菱形符号表示,实体的属性也就是实体的特征用符号椭圆表示。最后使用直线将矩形,菱形和椭圆等符号连接起来。接下来就开始对本系统的E-R图进行绘制。

(1)下图是入库实体和其具备的属性。

C:\Users\Administrator\Desktop\img\wafangdianbaoshanzhoucheng\入库.jpg 图4.1 入库实体属性图

(2)下图是管理员表实体和其具备的属性。

C:\Users\Administrator\Desktop\img\wafangdianbaoshanzhoucheng\管理员表.jpg 图4.2 管理员表实体属性图

(3)下图是字典表实体和其具备的属性。

C:\Users\Administrator\Desktop\img\wafangdianbaoshanzhoucheng\字典表.jpg 图4.3 字典表实体属性图

(4)下图是员工实体和其具备的属性。

C:\Users\Administrator\Desktop\img\wafangdianbaoshanzhoucheng\员工.jpg 图4.4 员工实体属性图

(5)下图是盘点实体和其具备的属性。

C:\Users\Administrator\Desktop\img\wafangdianbaoshanzhoucheng\盘点.jpg 图4.5 盘点实体属性图

(6)下图是商品实体和其具备的属性。

C:\Users\Administrator\Desktop\img\wafangdianbaoshanzhoucheng\商品.jpg 图4.6 商品实体属性图

(7)下图是公告实体和其具备的属性。

C:\Users\Administrator\Desktop\img\wafangdianbaoshanzhoucheng\公告.jpg 图4.7 公告实体属性图

(8)下图是会员实体和其具备的属性。

C:\Users\Administrator\Desktop\img\wafangdianbaoshanzhoucheng\会员.jpg 图4.8 会员实体属性图

(9)下图是设备实体和其具备的属性。

C:\Users\Administrator\Desktop\img\wafangdianbaoshanzhoucheng\设备.jpg 图4.9 设备实体属性图

(10)下图是供应商实体和其具备的属性。

C:\Users\Administrator\Desktop\img\wafangdianbaoshanzhoucheng\供应商.jpg 图4.10 供应商实体属性图

(11)下图是销售实体和其具备的属性。

C:\Users\Administrator\Desktop\img\wafangdianbaoshanzhoucheng\销售.jpg 图4.11 销售实体属性图

(12)下图是盘点详情实体和其具备的属性。

C:\Users\Administrator\Desktop\img\wafangdianbaoshanzhoucheng\盘点详情.jpg 图4.12 盘点详情实体属性图

4.3.2 数据库物理设计

作为程序后台的支持,本数据库也需要设计数据存储的结构。而数据存储结构的设计就包括了数据表结构的设计和创建。数据表结构包括了字段,数据类型,还有字段的取值范围等信息。而E-R模型中的实体就是一张表,实体的特征就可以作为该表中的字段,根据本程序信息存储要求,设计每个字段需要的类型,还有该字段的取值范围等。每当设计完成一张数据表,就需要及时保存在数据库里面,并对该设计的数据表准确命名,要求设置的数据表的名称尽量不要是中文,而且要方便记忆。因为在程序编码阶段,通过SQL语句可以把程序里面的数据写入在各个数据表里面,而这个环节需要使用到数据表的名称。如果数据表名称是中文的话,可能会乱码并影响程序运行。下面就以表格形式展示设计的结果。

表4.1字典表表

序号列名数据类型说明允许空
1IdIntid
2dic_codeString字段
3dic_nameString字段名
4code_indexInteger编码
5index_nameString编码名字
6super_idInteger父字段id
7create_timeDate创建时间

表4.2公告表

序号列名数据类型说明允许空
1IdIntid
2gonggao_nameString公告名称
3gonggao_typesInteger公告类型
4insert_timeDate公告时间
5gonggao_contentString公告详情
6create_timeDate创建时间

表4.3供应商表

序号列名数据类型说明允许空
1IdIntid
2gongyinghsang_nameString公告名称
3gongyinghsang_typesInteger供应商类型
4gongyinghsang_xinyong_typesInteger供应商信用等级名称
5insert_timeDate添加时间
6gongyinghsang_contentString供应商详情
7create_timeDate创建时间

表4.4商品表

序号列名数据类型说明允许空
1IdIntid
2goods_nameString商品名字
3goods_typesInteger商品种类
4goods_numberInteger商品数量
5goods_photoString商品图片
6danweiString单位
7danjiaBigDecimal单价
8goods_contentString商品详情
9flagInteger是否删除
10create_timeDate创建时间

表4.5入库表

序号列名数据类型说明允许空
1IdIntid
2goods_idInteger商品
3gongyinghsang_idInteger供应商
4yuangong_idInteger操作人
5goods_in_danhao_numberString单号
6goods_in_numberInteger入库数量
7insert_timeDate入库时间
8goods_in_contentString备注
9create_timeDate创建时间

表4.6销售表

序号列名数据类型说明允许空
1IdIntid
2goods_idInteger商品
3yuangong_idInteger操作人
4huiyuan_idInteger操作人
5goods_out_danhao_numberString单号
6goods_out_numberInteger售卖数量
7insert_timeDate售卖时间
8goods_out_contentString备注
9create_timeDate创建时间

表4.7会员表

序号列名数据类型说明允许空
1IdIntid
2huiyuan_nameString会员姓名
3huiyuan_phoneString会员手机号
4huiyuan_id_numberString会员身份证号
5huiyuan_photoString会员照片
6sex_typesInteger性别
7create_timeDate创建时间

表4.8盘点表

序号列名数据类型说明允许空
1IdIntid
2yuangong_idInteger操作人
3pandian_order_nameString盘点名
4insert_timeDate盘点时间
5pandian_order_contentString备注
6create_timeDate创建时间

表4.9盘点详情表

序号列名数据类型说明允许空
1IdIntid
2pandian_order_idInteger盘点
3goods_idInteger商品
4goods_qian_numberInteger盘点前数量
5pandian_order_list_numberInteger盘点后数量
6insert_timeDate插入时间
7create_timeDate创建时间

表4.10设备表

序号列名数据类型说明允许空
1IdIntid
2shebei_nameString设备名称
3shebei_typesInteger设备类型
4shebei_numberInteger设备数量
5insert_timeDate添加时间
6shebei_contentString设备详情
7create_timeDate创建时间

表4.11员工表

序号列名数据类型说明允许空
1IdIntid
2yuangong_nameString员工姓名
3yuangong_phoneString员工手机号
4yuangong_id_numberString员工身份证号
5yuangong_photoString员工照片
6create_timeDate创建时间

表4.12管理员表表

序号列名数据类型说明允许空
1IdIntid
2usernameString用户名
3passwordString密码
4roleString角色
5addtimeDate新增时间

第5章 系统实现

这个环节需要使用前面的设计方案,包括对系统模块的设计,还有对程序后台的数据支持的数据库的设计等。不过这部分内容还是强调系统编码人员的开发能力,要把前面设计的内容通过编码的形式以一个完整的,可以运行的系统呈现出来。

功能模块的实现

5.1员工信息管理

如图5.1显示的就是员工信息管理页面,此页面提供给管理员的功能有:员工信息的查询管理,可以删除员工信息、修改员工信息、新增员工信息,

还进行了对用户名称的模糊查询的条件

图5.1 员工信息管理页面

5.2 商品信息管理

如图5.2显示的就是商品信息管理页面,此页面提供给管理员的功能有:查看已发布的商品信息数据,修改商品信息,商品信息作废,即可删除,还进行了对商品信息名称的模糊查询 商品信息信息的类型查询等等一些条件。

图5.2 商品信息管理页面

5.3销售信息管理

如图5.3显示的就是销售信息管理页面,此页面提供给管理员的功能有:根据销售信息进行条件查询,还可以对销售信息进行新增、修改、查询操作等等。

图5.3 销售信息管理页面

5.1会员信息管理

如图5.4显示的就是会员信息管理页面,此页面提供给管理员的功能有:根据会员信息进行新增、修改、查询操作等等。

图5.4 会员信息管理页面

GoodsOutServiceImpl.java
package com.service.impl;import com.utils.StringUtil;
import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
import java.util.*;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import com.utils.PageUtils;
import com.utils.Query;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;import com.dao.GoodsOutDao;
import com.entity.GoodsOutEntity;
import com.service.GoodsOutService;
import com.entity.view.GoodsOutView;/*** 销售 服务实现类*/
@Service("goodsOutService")
@Transactional
public class GoodsOutServiceImpl extends ServiceImpl<GoodsOutDao, GoodsOutEntity> implements GoodsOutService {@Overridepublic PageUtils queryPage(Map<String,Object> params) {if(params != null && (params.get("limit") == null || params.get("page") == null)){params.put("page","1");params.put("limit","10");}Page<GoodsOutView> page =new Query<GoodsOutView>(params).getPage();page.setRecords(baseMapper.selectListView(page,params));return new PageUtils(page);}}
UserServiceImpl.java

package com.service.impl;import java.util.List;
import java.util.Map;import com.service.UserService;
import org.springframework.stereotype.Service;import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.dao.UserDao;
import com.entity.UserEntity;
import com.utils.PageUtils;
import com.utils.Query;/*** 系统用户* @author*/
@Service("userService")
public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements UserService {@Overridepublic PageUtils queryPage(Map<String, Object> params) {Page<UserEntity> page = this.selectPage(new Query<UserEntity>(params).getPage(),new EntityWrapper<UserEntity>());return new PageUtils(page);}@Overridepublic List<UserEntity> selectListView(Wrapper<UserEntity> wrapper) {return baseMapper.selectListView(wrapper);}@Overridepublic PageUtils queryPage(Map<String, Object> params,Wrapper<UserEntity> wrapper) {Page<UserEntity> page =new Query<UserEntity>(params).getPage();page.setRecords(baseMapper.selectListView(page,wrapper));PageUtils pageUtil = new PageUtils(page);return pageUtil;}
}
FileUtil.java
package com.utils;import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;/**
* @author yangliyuan
* @version 创建时间:2020年2月7日 下午8:01:14
* 类说明 : 
*/public class FileUtil {public static byte[] FileToByte(File file) throws IOException {// 将数据转为流@SuppressWarnings("resource")InputStream content = new FileInputStream(file);ByteArrayOutputStream swapStream = new ByteArrayOutputStream();byte[] buff = new byte[100];int rc = 0;while ((rc = content.read(buff, 0, 100)) > 0) {swapStream.write(buff, 0, rc);}// 获得二进制数组return swapStream.toByteArray();}
}

声明

本博客适用于广泛的学术和教育用途,包括但不限于个人学习、开发设计,产品设计。仅供学习参考,旨在为读者提供深入理解和学术研究的材料。

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

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

相关文章

python画图|曲线动态输出基础教程

在前述学习过程中&#xff0c;已经掌握基本的曲线图像画法&#xff0c;并尝试探索过3D动画基础教程。 相关文章可以通过下述链接直达&#xff1a; python画三角函数图|小白入门级教程_正余弦函数画图python-CSDN博客 python动画教程|Animations using Matplotlib-官网教程程…

电玩体验馆计时软件可以倒计时的软件试用版下载 佳易王ps5计时器管理系统使用教程

一、前言 【软件试用版下载可以点击本文章最下方官网卡片】 电玩体验馆计时软件可以倒计时的软件试用版下载 佳易王ps5计时器管理系统使用教程 1、软件能够记录玩家开始的时间和节数时间&#xff0c;从而计算出时长。 2、根据预设的收费标准&#xff0c;软件可以自动计算出…

各省份自然灾害损失造成的直接经济损失数据(2009-2022年)

自然灾害是自然演变过程中不可避免的现象&#xff0c;它们对人类社会构成了巨大的威胁。中国作为一个自然灾害频发的国家&#xff0c;面临着种类繁多的灾害挑战&#xff0c;包括气象灾害、地质灾害、海洋灾害、生物灾害和森林草原火灾等。 数据来源&#xff1a;《中国环境统计…

【GESP】C++一级练习BCQM3030,保留12位小数

浮点数数位保留练习&#xff0c;%m.nf知识点&#xff0c;已在BCQM3027中详细介绍。 题解详见&#xff1a;https://www.coderli.com/gesp-1-bcqm3030/ 【GESP】C一级练习BCQM3030&#xff0c;保留12位小数 | OneCoder浮点数数位保留练习&#xff0c;%m.nf知识点&#xff0c;已在…

培训机构客户管理系统的设计+ssm论文源码调试讲解

2 系统开发环境 2.1微信开发者工具 微信开发者工具现在已经被小程序开发团队开发运行&#xff0c;目前微信开发者工具任然在不断的完善中&#xff0c;在开发小程序时经常要不断的更新。可以使用微信扫码登陆开发者工具&#xff0c;开发者工具将使用这个微信帐号的信息进行小程…

Android车载音频系统概览

目录 1. 什么是Android车载音频系统 2. Android 声音和声音流 2.1 Android 声音 2.2 外部声音流 2.3 输出设备 章节说明:本节内容是Android车载音频系统简介。 1. 什么是Android车载音频系统 官方英文名称是:Automotive audio systems 由于汽车上无论是音频设备的数量还…

QT 实现图片查看工具

QT 实现图片查看工具 1、选择图像文件 单文件选择 QFileDialog::getOpenFileName多文件选择 QFileDialog::getOpenFileNamesQList<QString> imageNames = QFileDialog::getOpenFileNames(this,tr("打开图片"),"",tr("图片文件 (*.png *.jpg *.b…

OpenHarmony中OpenSSL从1.1.1 升级到3.0.7 时不支持MD4算法导致wpa_supplicant报错问题解决

OpenHarmony中OpenSSL从1.1.1 升级到3.0.7 时不支持MD4算法导致wpa_supplicant报错问题解决 1 问题现象 我们在测试EAP-PEAP(MSCHAPV2)功能时发现如下打印,导致认证失败 2 初步分析 openssl_digest_vector 中 调用EVP_DigestInit_ex 时如果报错 会打印"OpenSSL: EVP…

人工智能重点知识点总结整理

一、章节知识点目录 绪论知识表示方法确定性推理非经典推理计算智能机器学习完结篇二、每章重点内容 1. 绪论 定义:人工智能(AI)

厨房用品分割系统源码&数据集分享

厨房用品分割系统源码&#xff06;数据集分享 [yolov8-seg-C2f-DCNV3&#xff06;yolov8-seg-AFPN-P345等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Global Al ln…

论文阅读笔记-XLNet: Generalized Autoregressive Pretraining for Language Understanding

前言 Google发布的XLNet在问答、文本分类、自然语言理解等任务上都大幅超越BERT,XLNet提出一个框架来连接语言建模方法和预训练方法。我们所熟悉的BERT是denoising autoencoding模型,最大的亮点就是能够获取上下文相关的双向特征表示,所以相对于标准语言模型(自回归)的预…

测绘工程专业职称申报条件是什么?

关于测绘工程专业职称申报条件&#xff0c;甘建二从初级、中级、高级给大家说一下&#xff1a; 一、初级&#xff08;助理&#xff09;测绘工程工程师评审条件&#xff1a; 1、测绘类或者相近专业类毕业 2、专科毕业满3年并且从事专业技术员职务工作2年以上 3、本科毕业后&a…

Qt-QVBoxLayout布局类控件(41)

目录 描述 属性 使用 每一个widget只能有一个布局管理器 描述 使⽤ QVBoxLayout 表⽰垂直的布局管理器. V 是 vertical 的缩写. 为此Qt提供了布局管理器 属性 layoutLeftMargin左侧边距layoutRightMargin右侧边距layoutTopMargin上⽅边距layoutBottomMargin下⽅边距layo…

Linus Torvalds 要求内核开发人员编写更好的 Git 合并提交信息

昨天在宣布 Linux 6.12-rc2 内核时&#xff0c;Linus Torvalds 要求内核维护者在提交信息方面做得更好。Torvalds 尤其希望内核维护者在描述拉取请求中的变更时&#xff0c;能更好地使用积极、命令式的语气。 Linux创建者在6.12-rc2 公告中解释道&#xff1a; 总之&#xff0c…

ChatGPT Canvas:系统提示词泄漏了~

OpenAI 推出了一款叫做 Canvas 的新工具&#xff0c;用来帮助用户更好地与 ChatGPT 协作写作和编程。详细介绍可以看这篇文章&#xff1a;ChatGPT Canvas&#xff1a;交互式对话编辑器-CSDN博客​编辑 以下是 OpenAI 新功能 “Canvas” 的系统提示内容 你是 ChatGPT&#xff0…

域渗透之: 域渗透环境搭建详解基于VMware

域控环境介绍 在域架构中&#xff0c;最核心的就是域控主机&#xff0c;域控主机分为三种: 普通域控额外域控只读域控 域控环境相关知识点介绍 创建域环境首先就是要创建域控主机。域控主机创建完成以后&#xff0c;需要把所有的计算机拉入域中&#xff0c;这样就形成了域控…

棒球运动物体检测系统源码分享

棒球运动物体检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

Apple Intelligence将于10月28日发布,ChatGPT集成推迟!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;专注于分享AI全维度知识&#xff0c;包括但不限于AI科普&#xff0c;AI工…

Python GUI 编程:tkinter 初学者入门指南——单行文本框

在本文中&#xff0c;将介绍如何使用 tkinter Entry 小部件。tkinter Entry 小部件允许创建能够输入的单行文本框。 要创建 Entry 单行文本框&#xff0c;请按如下方式使用构造函数&#xff1a; textbox tk.Entry(master, **options) 通常&#xff0c;将 Entry 单行文本框输…

Allegro如何合并同名网络铜皮操作指导

Allegro如何合并同名网络铜皮操作指导 Allegro可以将同名网络的铜皮合并起来&#xff0c;如下图&#xff0c;需要把下面两块铜皮合并成一块铜皮 具体操作如下 选择Shape 选择merge shapes Find选择shapes 点击其中一块铜皮&#xff0c;会被亮起来 再点击另外一块铜皮 两块铜皮…