APP下载

基于SpringMVC 的农机具服务系统设计与实现

2024-12-31黄建勋王建钧高卉李浩天杨皓郑德聪宋海燕

农业工程 2024年8期
关键词:服务系统农机具

摘 要: 针对农机合作社等农机服务单位在农机管理中面临的工作效率低、信息不透明及维修保养难等问题,结合SpringMVC 框架、JSP 页面交互技术和持久层MyBatis 框架,设计了Biz 数据接口层、BizImplements 业务层、Controller 控制层和View 视图层4 层结构保证高内聚低耦合特性,并开发了农机具信息、库存管理、行驶轨迹、用户信息、维修管理和补贴政策等模块。这些模块旨在全面优化农机具管理,提升维修效率,获取政策信息,从而有效解决当前存在的问题,推动农机服务的高效运作,为农业生产提供有力支持。

关键词:农机具;定位轨迹;服务系统;SpringMVC;农机合作社

中图分类号:S24 文献标识码:A 文章编号:2095-1795(2024)08-0039-06

DOI:10.19998/j.cnki.2095-1795.2024.08.007

0 引言

在我国农业领域中,农机信息化发展起步较晚,当前农业农村发展已进入新阶段,但农机合作社等农机服务单位的农机具信息服务工作仍存在诸多问题,如农机相关信息不全、信息传播手段落后及服务滞后等问题,亟待加快农机领域信息化建设步伐[1-2]。

针对农机具信息服务工作开展了大量研究。刘立[3]设计了一套基于物联网和AI 技术的农机管理调度平台的搭建逻辑与调度优化方法,但对于农机合作社而言使用成本过高。张祥军等[4] 设计了基于iOS 系统的农机预约管理系统,实现了农机的科学高效调度使用,然而缺乏农机具的使用情况、维修管理等模块。为此,本研究针对农机合作社等农机服务单位在农机管理中存在工作效率较低、信息不透明及维修保养难等问题,基于SpringMVC 框架,全面分析了农机具服务系统的可行性,并设计了农机具服务系统。

本系统采用Spring+SpringMVC+Mybatis 架构体系,前端展示采用动态网页开发技术JSP。整合了用户管理、农机具信息管理、库存农机具信息管理、农机具补贴政策管理、农机具维修管理及农机具历史行驶轨迹管理等功能模块,便于不同权限的用户使用,实现了信息的共享和相关数据的使用,为农事工作的开展提供了便利[5]。

1 农机具服务系统相关技术

在农机具服务系统开发中,采用的开发技术显著提高了系统开发效率与稳定性,为后续的系统维护工作奠定了坚实的基础。特别选用了SpringMVC,不仅简化了开发流程,也提升了开发与部署效率,同时完美地实现了高内聚、低耦合的设计理念,使系统的模块化程度更高,维护性和扩展性更强。本系统使用MyEclipse 作为开发环境,Oracle 数据库作为数据存储,开发语言为Java,所使用到的技术都是发展非常成熟的技术,具有较高的代码移植性和程序的可拓展性,在开发上具有技术上的可行性[6]。

1.1 SpringMVC 框架

SpringMVC 框架是根据MVC 设计模式在Spring框架下搭建的,多用于Web 项目的开发[7]。Struts 框架与其类似,但实现原理不相同。Struts 主要实现了类等级的拦截,每个类可以对应一个请求[8]。SpringMVC是基于类中方法级别的拦截,每个方法可以对应一个请求,每个请求又对应一个URL。在Web 项目开发过程中需要使用JSP 页面交互技术,在该框架下基于JSP 的页面在配置文件中易于实现,需要在配置文件中将相关前后缀加入视图解析器。SpringMVC 框架所有的工作流程是基于处理器、处理适配器、视图解析器、处理器映射和前端控制器等组件工作的,其中有一个通用的多路上传解析器Commons Multipart Resolver 可以对本地文件进行快速解析并且支持多数文件的上传业务[9-10]。处理器具有映射功能,可以把多种请求提交至处理器进行映射,如通过异常处置解析器,可以解析编译过程中出现的各类异常问题,使用视图解析器可以实现逻辑业务到页面视图的映射,也可以渲染具体视图,最终返回系统执行所需功能[11-12]。

1.2 JSP 页面交互技术

JSP 是在Sun Microsystems 公司的提议下,联合数家软件开发公司一起构建开发形成的一种动态网页技术标准,以Java 语言作为脚本语言,将Java 代码和特定变动内容嵌入到静态页面中,实现以静态页面为模板,动态生成其中的部分内容[13]。JSP 引入了被称为“JSP 动作”的XML 标签,用来调用内建功能。另外,可以创建JSP 标签库, 然后像使用标准HTML 或XML 标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制,使基于Web 的应用程序研发变得迅速且简单。

1.3 Oracle 数据库

Oracle 是大型关系型数据库管理系统,为重量型数据库[14]。数据库本身可以设置不同的角色来进行不同数据库的管理,增加了系统数据的安全性。Oracle 数据库在数据库管理方面的安全性一直都有良好的表现,安全系数高是该数据库最大特点之一,在操作上与轻量型数据库有很多不同之处,如在实现分页功能时MySQL 直接通过一条语句选择限制条件来实现,Oracle 需要用到伪列rownum 和嵌套查询;MySQL 在满足有InnoDB 存储引擎的行级锁时才支持事务[15-16];Oracle 则是完全支持事务的。除此之外轻量型数据库多为单进程多线程,诊断调优方法较少,主要有慢查询日志,Oracle 是多进程(在Windows 下也是单进程)能实现很多自主完成的功能, 如自动负载信息库AWR( automatic workload repository) 、SQL 追踪(SQL trace)等[17]。Oracle 在管理方面有除命令行以外专属的SQLDeveloper 等可视化数据库界面,提高了管理的效率与便捷性。Oracle 既有推或拉式的传统数据复制,也有DataGuard 的双机或多机容灰机制,主库出现问题时,可以自动切换备库到主库,但配置管理较复杂。相对来说,Oracle 数据库更加安全、可靠且性能更加稳定,符合本系统使用数据库的初衷。

2 农机具服务系统分析与设计

系统主要分为6 个功能模块:农机具信息模块、在库农机具模块、行驶轨迹模块、用户信息模块、农机具维修模块和农机补贴政策模块,如图1 所示。

2.1 系统模块

(1)农机具信息模块。根据实地调研及查阅资料,系统管理员可以设置市面上现有农机具的信息,并配置农机具详细信息。

(2)在库农机具模块。系统管理员具有全面的管理功能,可增加、修改、删除和查询农机具信息,确保库存准确无误。系统管理员还能查看农机具历史使用与维修记录,为调度、安排及采购计划提供数据支持,其他用户只可以浏览在库农机具信息。

(3)行驶轨迹模块。系统管理员可将历史轨迹文件导入,系统根据文件中的逆地理编码内容进行编译,生成历史轨迹动图,农机手在网页端可浏览农机具行驶过的历史轨迹,有助于农机手更好地了解农机具的性能、使用情况和作业效果,做出更合适的使用选择。

(4)用户信息模块。系统管理员可以增加、修改、删除和查询全部用户信息,其他用户只可以修改自己的信息。

(5)农机具维修模块。农机手将需要维修的农机具上报至系统,农机维修师在网页端收到,开始维修后将状态更改为维修中,维修结束后维修师更新订单信息中的维修费用、维修时间等信息将订单状态更改为已完成,即完成了整个维修流程。

(6)农机补贴政策模块。系统管理员可维护补贴政策信息,其他系统用户可在登录后浏览补贴政策信息并下载相关附件。

2.2 系统用户类型

系统根据不同的角色需求,分为系统管理员、农机手、农机维修师和普通访客4 种用户类型。

2.2.1 系统管理员

系统管理员在本系统中负责维护系统的正常运行,拥有最高权限。主要管理在库农机具信息,清点库内机具并将详细信息录入系统;管理农机具信息;管理用户信息,分配用户级别;管理农机具行驶轨迹信息,系统管理员需要将农机具定位器导出的位置信息中的经纬度文本文件导入系统中来绘制历史轨迹图;管理农机补贴政策,系统管理员可将政府网站上的补贴政策导入系统中,并对需要的信息另行编辑,使系统使用者快速获取信息,省去筛选寻找过程;管理农机具维修订单。

2.2.2 农机手

上报农机具维修维护订单,模块涉及农机具维护的相关知识,维修可根据实际情况上报,定期维护可通过数据库设定好的项目通过页面下拉选框进行选择添加;查看农机手工作轨迹;浏览农机补贴政策。

2.2.3 农机维修师

农机维修师进入本系统后可以查看农机具维修订单,并将订单状态从待处理更新为维修中,在维修结束后可提交维修费用并将订单状态更新为已完成。此外也可以浏览农机补贴政策、行驶轨迹等模块。

2.2.4 普通访客

普通访客为浏览信息系统用户,可以浏览农机具信息、农机补贴政策信息,不具有做决策的权限,适用于查阅信息的用户。

2.3 数据库

数据库管理技术是对库内数据进行存储、检索、分类、编码、组织、输出和维护[18]。数据管理从人工管理到数据库系统管理,使人工工作成本和复杂度大大降低。借助数据库的强大功能,能够运用SQL 语句实现对信息的多表联查、条件查询等,从而在前台单个页面展示一张表内的数据或多张表不同字段的数据,最后达到系统功能的完整呈现。本系统包括用户信息、农机具信息、在库农机具信息、自走式动力机信息、农机具维修订单信息、农机具轨迹信息和农机具补贴政策。

(1)用户信息。由系统管理员管理,主要包含编号(主键)、登录账户、密码、手机号和用户级别等信息。

(2)农机具信息。主要包含编号、图片编号、配套动力、机具类别、设备名称、外形尺寸、农机具与自走式动力机连接形式、结构质量、纯生产率和备注等。

(3)在库农机具信息。由系统管理员管理,主要包含设备编号(主键)、设备名称、分类号、型号、购置日期、生产厂家、价格和备注等。

(4) 自走式动力机信息。主要包含农机编号(主键)、设备名称、图片编号、发动机功率、发动机转速、最小使用质量、外形尺寸、价格和备注等。

(5)农机具维修订单信息。主要包含农机编号(主键)、设备名称、图片编号、发动机功率、发动机转速、最小使用质量、外形尺寸、价格和备注等。

(6)农机具轨迹信息。主要包含轨迹编号、纬度、经度和设备编号等。

(7)农机具补贴政策。主要包含文章编号、文章标题、发布方、内容、政策附件和创建时间等。

2.4 框架设计

本研究的系统框架是模型−视图−控制器模型,是MyBatis、SpringMVC 和Spring 框架的整合,将整个系统划分为Biz 数据接口层、BizImplements 业务层、Controller 控制器层和View 视图层4 层,是目前比较主流的JavaEE 企业级框架,适用于搭建各种大型的企业级应用系统[19]。使用SpringMVC 负责请求的转发和视图管理,Spring 实现业务对象管理,Mybatis 作为数据对象的持久化引擎。

(1)Biz 数据接口层。负责处理业务逻辑,通过调用Mapper 映射层提供的接口来访问数据库。与数据库连接相关的配置信息,以及关于如何连接数据库的参数,都在Spring 框架的配置文件中进行设置。所以Biz 层将数据库交互、配置、业务逻辑和控制模块分开,并通过Spring 框架进行了组织和管理,使开发者可以更专注于各自模块的实现,提高了代码的可维护性和可扩展性。

(2)BizImplements 业务层。是系统的核心业务逻辑实现层,承载了整个系统功能和业务逻辑。通过Mapper 接口与数据库进行交互,Mapper 接口定义了数据访问的方法,而在Mapper 接口的实现类中,通过编写SQL 语句来实现对数据库中各个表的数据进行查询、添加或删除等操作。使用Mapper 模式可以将SQL 语句与业务逻辑分离,使系统的耦合度降低,有利于系统的维护和扩展。同时,BizImplements 业务层对外的接口是已经定义好的Biz 数据持久层的接口,这样可以保证系统的耦合度更低、开发效率更高。总之,使用Biz数据持久层和BizImplements 业务层可以使系统的结构更加清晰,有利于系统的维护和扩展,同时降低系统的耦合度,提高开发效率。

(3)Controller 控制层。是系统的关键部分,负责处理前端页面与后端代码的交互,负责控制业务流程的实现和管理, 保证系统的稳定性和可靠性。Controller 控制层中的每个方法都对应一个具体的业务逻辑, 通过调用Biz 数据持久层的方法来实现。Controller 控制层通过Request Mapping 注解来识别前端页面请求的方法,从而调用相应的业务逻辑方法。

(4)View 视图层。是系统的重要组成部分,可以使用各种前端技术来实现页面的展示和交互,如HTML、CSS、JavaScript 等。同时,View 视图层需要与Controller 控制层紧密结合,通过调用Controller 控制层的方法来获取数据或者提交数据,共同实现系统的业务逻辑。

本系统因其高内聚低耦合的特性实现业务逻辑与用户界面的分离,使其可以独立更改且不会互相影响。各层之间的系统框架流程如图2 所示。

3 农机具服务系统实现

本系统主要面向农机合作社等农机服务单位,以山西农业大学农机具库的部分数据为例,展示使用本系统的实际效果。

系统主页展示了多个表格联查功能,如图3 所示。可查询机库中历年播种机、拖拉机、脱粒机等农机具的数量,同时以图表形式展示了库内主要农机具数量和农机具在库状态,方便使用者在进入系统后对库内农机具有一个直观、全面的了解。

系统管理员可将相关农机具信息录入系统中,如图4 所示。农机具分类是按照工信部发布的机械行业标准(JB/T 8574—2013)下的农机具产品型号编制规则分为14 大类,可按照类别进行查询,也可按照设备名称进行模糊查询。另外,根据日常使用情况,系统还添加了一类自走式动力机以展示拖拉机信息。点击详情页,所有用户即可查看该农机具的详细参数。

系统管理员在后台可以执行增加、删除、修改和查看用户信息等操作,也可以根据需要设置用户的级别,并重置用户的密码。

系统管理员将农机具信息添加到系统中,以便后期进行高效地管理和查看。系统管理员可以对农机具信息表进行各种操作,如查看单个农机具信息、删除某个农机具信息、更新现有农机具信息及查询特定农机具信息等。

系统管理员将出台的相关政策文件导入电脑后,点击上传按钮,找到文件存储的文件夹,确认后即可导入系统,如图5 所示。在富文本编辑器中,可以显示已导入信息。这种编辑器可确保文本按照编辑时的格式显示,避免在提交后出现乱码、格式错乱等错误。最后,系统管理员可以编辑其他摘要信息并发布至系统中供其他用户查看。其他已登录的系统用户可以浏览农机具相关政策信息,并下载相关附件。

系统管理员可以将包含历史轨迹信息的文件导入系统,系统能自动解析文件中的逆地理编码信息,并生成形象的历史轨迹动态图。农机手在网页端可以查看到农机具历史行驶轨迹。

农机手可以提交维修订单并跟踪查看维修订单的状态,而机械维修师则可以查看和更新维修订单,如图6 所示。此外,为了确保农机具能够持续安全使用,本系统还设置了多个保养选项,包括油道清洁、更换润滑油、螺母检查等。农机具的定期保养对于其安全使用至关重要[20]。

经过对每个功能模块的详尽测试,本系统成功地展现了其稳定运行的能力,基本满足了不同用户的需求。系统管理员能够顺利执行各项事务的管理工作,包括用户信息管理、系统用户权限设置、位置信息上传及补贴政策编辑与上传等。农机手可以查看历史轨迹动图,查看农机具补贴政策及上传维修订单。农机维修师可以查看待维修订单,更新维修订单状态等。

从性能方面来看,本系统能够在用户发出请求后的5 s 内响应,为用户提供快速高效的响应时间。从安全性角度来讲,系统采取了多重安全措施。首先,系统能够防止SQL 注入攻击,确保用户数据的安全性;其次,用户登录密码在后台进行加密处理,进一步增强了系统的安全性;此外,针对不同用户设定了不同的权限,确保了系统数据的保密性和完整性。安全措施的实施使系统在保证用户数据安全性方面具有较高的可靠性。在数据耦合度方面,系统采用了低耦合设计,使后期维护工作变得简单易行;此设计方法使得各个功能模块之间的依赖性降低,方便维护人员快速定位并解决问题,大大提高了系统的可维护性和可扩展性。

综上所述,本系统在稳定性、性能、安全性和数据耦合度方面均表现出色,满足了农机合作社等农机服务单位的需求并提供了优质的服务。

4 结束语

在我国农业现代化进程不断加速的情况下,传统低效的农机具管理方式已无法满足新时代智慧农业的建设需求。为了解决农机合作社等农机服务单位传统农机具管理方式存在的问题,本研究基于MyBatis、SpringMVC 和Spring 框架的整合,设计并实现了农机具服务系统,旨在以较低的成本实现农机具的高效使用与维护,提升农机服务单位的管理水平。

本系统采用了高性能、高可靠性的Web 开发框架和数据库技术,通过降低数据耦合度,提高系统的可维护性和可扩展性,实现了快速响应和稳定运行,UI界面简洁友好、操作简单、应用前景广,可以为基于WEB 的农业管理平台提供研究基础。系统的应用将有力推动农业生产的智能化与信息化进程,显著提升农业生产效率,进一步加速农业现代化的发展步伐。

参考文献

[1]孙烈娟.农机管理对农业现代化发展的影响分析[J].农机使用与维修,2023(3):44-46.

SUN Liejuan.Analysis of the impact of agricultural machinery management on the development of agricultura modernization[J]. Agricultural Machinery Using amp; Maintenance,2023(3):44-46.

[2]刘召阳,马洪海,马崇超,等.农机管理中的信息化应用及探究[J].农家参谋,2022(15):61-63.

[3]刘立.基于物联网和AI技术的农机管理调度优化研究[D].扬州:扬州大学,2023.

LIU Li. Agricultural machinery management and scheduling based on IoT and AI technology[D].Yangzhou:Yangzhou University,2023.

[4]张祥军,刘刚,黄文博.基于iOS 系统的农机预约管理系统设计与实现[J].现代农业装备,2023,44(2):30-34.

ZHANG Xiangjun, LIU Gang, HUANG Wenbo. Design and lmplementation of agricultural machinery reservation management system based on iOS[J].Modern Agricultural Equipment,2023,44(2):30-34.

[5]陈海燕.农机工程机械设备管理中存在的问题及应对措施[J].农业工程技术,2022,42(24):34-35.

[6]白净.软件工程的应用与展望[J].电子技术,2021,50(6):110-111.

BAI Jing. Application and prospect of software engineering[J]. Electronic Technology,2021,50(6):110-111.

[7]沈士强,曹军,朱勇.基于SpringMVC 高校教务信息系统的设计 与实现[J].电子元器件与信息技术,2022,6(1):182-183.

[8]徐尧. 基于J2EE+SpringMVC 框架的网上报名系统设计与实现[J].电子元器件与信息技术,2020,4(12):156-157.

[9]李红锦.基于SpringMVC 框架的双语阅读平台研究与实现[D].北京:北京邮电大学,2020.

LI Hongjin.Research and design of bilingual reading platform based on SpringMVC framework[D]. Beijing: Beijing University of Posts and Telecommunications,2020.

[10]张之. 基于SpringMVC 的应急救援指挥管理系统设计与实现[D].长春:吉林大学,2019.

ZHANG Zhi. Design and lmplementation of emergency rescue command management system based on SpringMVC[D].Changchun:Jilin University,2019.

[11]李先耀.基于SpringMVC 房屋销售管理系统的设计与实现[D].成都:电子科技大学,2019.

LI Xianyao. Design and implementation of housing sales management system based on SpringMVC[D]. Chengdu: University of Electronic Science and Technology of China,2019.

[12]肖志刚.基于J2EE+SpringMVC 框架的教学管理系统[D].西安电子科技大学,2019.

XIAO Zhigang. Teaching management system based on J2EE and SpringMVC framework[D].Xi'an:Xidian University,2019.

[13]周国军.基于合作学习的JSP 程序设计课程教学改革研究[J].电脑知识与技术,2023,19(3):178-180.

[14]王志国,周笑宇.基于Oracle 的医院信息系统性能优化研究与实现[J].软件,2022,43(2):55-57.

WANG Zhiguo, ZHOU Xiaoyu. Research and lmplementation of performance optimization of hospital information system based on Oracle[J].Software,2022,43(2):55-57.

[15]董礼.基于ORACLE 数据库的优化设计研究[J].黑龙江科学,2021,12(10):94-95.

DONG Li. Research of optimization design based on ORACLE database[J].Heilongjiang Science,2021,12(10):94-95.

[16]KLINGERMAN S.What's new from oracle database development[J].Database Trends and Applications,2021,35(5):26-27.

[17]KLINGERMAN S. Top five reasons to use an oracle database[J].Database Trends and Applications,2020,34(6):34-35.

[18]孙玉.计算机软件数据库设计中存在的问题及设计原则[J].电子技术与软件工程,2021(6):162-163.

[19]李展飞.Web 软件系统开发框架设计在MVC 模式的实现[J].电子技术与软件工程,2017(8):61.

[20]唐靖.浅谈农业机械维修技术现状及对策[J].南方农机,2022,53(15):196-198.

猜你喜欢

服务系统农机具
试论大型农机具的维修与保养
如何正确使用和维护农机
农机具的维护与保养策略
图书馆用户需求服务系统研究
基于可穿戴设备的养老服务系统研究
浅谈电力营销自动管理及交互式服务系统
选购农机具要“六看”
山西省农业气候资源区划服务系统开发与应用
浅析如何实施农机具推广工作
电力营销业务数字化管理模式分析