基于Java的新能源汽车充电站管理系统的设计与实现_第1页
基于Java的新能源汽车充电站管理系统的设计与实现_第2页
基于Java的新能源汽车充电站管理系统的设计与实现_第3页
基于Java的新能源汽车充电站管理系统的设计与实现_第4页
基于Java的新能源汽车充电站管理系统的设计与实现_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-3-第1章绪论1.1研究目的和意义随着新能源汽车的不断普及,新能源应用范围越来越广泛,新能源汽车也成为了一种重要的交通方式。由于它的高效率、低成本、低污染等特点,许多国家都积极鼓励使用这种交通方式,以此来解决燃料短缺问题。此外由于它的高效率、低成本、低污染等特点,它已经成为许多城市的标志性建设。由于充电桩的位置偏远、容易受到非法破坏、老旧无法维护,这些情况给汽车驾驶者造成了很大的麻烦,因此利用智能科学技术,实施全面的智慧充电系统,来改善汽车充电的便利性和智能型,显得尤为重要。鉴于此,在对一些用户的需求性分析的基础上,结合现代化的管理模式,我尝试基于Java设计开发一个新能源汽车充电站管理系统,该系统设计完成后,将有利于充电桩的灵活使用和管理,方便车主充电续航,查看充电信息,方便缴费等,有效提高用户的使用效率,同时也增强新能源汽车充电的稳定性。1.2国内外研究现状近年来,由于科技的快速发展以及政府的支持和企业的大力参与,中国的可再生能源汽车行业获得了巨大的进展。然而由于缺乏充分的保障,一些问题开始浮现,为此市场提供了巨大的投资机遇。随着国家出台了更加积极的政策,未来的发展方向越来越清晰,而且纯电动的可再生能源汽车的技术更加成熟,因此充电桩的建设将会成为未来的热点。它们的存在无疑会促进电动车应用的发展,并且未来的规模会越来越庞大,因此它们的安装、维护、运营等都会成为未来的热点话题。通过严格的监督与管理,可以显著提升电动车应用发展的速度与覆盖面。2020年,杨军峰、冯磊提出的TLBO算法可有效地帮助选择合适的地点,他们把地理范围划分成多个区,把各地的电动汽车充电桩数量作为权重系数[1],构建出一套完整的地理空间优化模型,从而有效地满足当地的需求。通过使用TLBO优化算法,可以精确估算电动汽车充电站的位置、覆盖区域,同时还可以优化它们的数量。通过模拟,发现TLBO算法在这些问题上都非常优秀,特别是在充电站的优化上。然而仅仅依靠这些信息还无法满足用户的需求。2021年,李宇飞、李锁健深入探讨WebGIS技术[2],提出的一种新型的、可持续的、可扩展的(EV)充电桩运营管理系统,具有良好的可扩展性,可以有效地满足(EV)用户的需求,并且可以实现更加高效、安全的(EV)充电服务。近年来,由于全球气候变暖、燃料紧缺等社会问题日益严重,世界范围内的许多地区积极推广电动汽车,并将其用户作为充电站的主要目标客户。这种情况与世界各地的充电技术的进步息息相关,同时也促进充电站的普及。通过对比可以发现,国外的充电系统无论是在产品还是技术水平,均表现出色。此外由于人工智能、自动驾驶以及其他前沿科学的出现,这些充电设备正在走出传统的局限,走向更加完善、更加智能、更加安全的未来。在2019崔亚松和\o"/home/search?sw=6&sw-input=Gao%20Chunbin"高春斌在《Architectureofpilechargemanagementsystemforelectricvehicle》[3]中为了提高电动汽车的桩充电效率,提出一种基于物联网(IoT)、数据信息存储等的电动汽车桩充电管理系统架构。该技术可以简化运营商的管理流程,改善消费者的人机交互体验。确实的推动了电动汽车的推动和发展,但是随着新能源汽车充电桩的数量增加,一些充电桩损坏并造成了很多损失,于是在2020年MohamedA.Ahmed,MohamedR.El-Sharkawy和Young-ChonKim.在《RemoteMonitoringofElectricVehicleChargingStationsinSmartCampusParkingLot》[4]PLLC必须建立一个连接,以便将其与EVCS)之间的数据传输,以便实现对RemoteMonitoringofElectricVehicleChargingStationsinSmartCampusParkingLot的有效监督,来研究用于远程监控智能校园停车场EVCS的底层通信网络。通信网络由两个子网组成:停车区域网络(PAN)和校园区域网络(CAN)。PAN涵盖电动汽车、充电站和PLLC之间的通信,而CAN支持PLLC与大学全球控制器之间的专用通信来管理电动汽车充电桩,并且通过数据监控可知充电桩是被人为恶意损坏还是设备自身问题,但是会造成其中的数据丢失和通信的延迟,并且可能会显着降低系统性能。于是第二年NiccolaiAlessandro,BettiniLeonardo,ZichRiccardo.在《Optimizationofelectricvehicleschargingstationdeploymentbymeansofevolutionaryalgorithms》[5]中提出用基于进化的方法来解决CS部署问题。调查了该方法制定的许多方面,例如设计变量的选择和可行性函数的定义,来提高有效性和灵活性,它可以与大多数可用的进化算法(EA)一起使用,数据会被保存起来且不易丢失,还可以管理不同的服务质量性能参数。将所提出的方法与米兰市(意大利)案例研究中使用四种不同EA的贪婪优化进行了成功比较。已经定义了两个不同的性能参数,并用于证明所提出的方法的灵活性。结果表明,其收敛率和得到的解的质量都很好,有效地解决了灵活性和系统性能的问题。1.3主要研究内容在Windows操作系统下使用Java语言、MySQL数据库设计开发一个新能源汽车充电站管理系统。该系统的主要功能模块有用户信息管理、充电桩管理、运营商管理、故障管理和留言板管理等功能,应完成的主要工作如下:(1)总结国内外的参考文献从内容上进行梳理,确定系统的开发技术路线。(2)经过详细的可行性分析和需求评估,确定系统的功能架构。(3)选择MySQL数据库对数据进行存储。(4)对系统功能界面进行美化和系统各个模块的设计和实现。(5)对系统进行全面的测试,分析测试结果并完善相关功能。第2章关键技术简介2.1JavaJava作为一种强大的面向对象编程工具,能够在多种不同的环境下实现复杂的功能,包括PC、数字化、桌面、虚拟现实、智能手表、智能家居、智能交换、智能搜索引擎等,它的优势在于它的普遍适用性、快速响应能力、灵活的编码能力、强大的开发团队。Sun公司的Java编写的程序具有强大的可扩展性,可以轻松地实现各种复杂的、基于网络的应用,为企业提供了更加高效的解决方案。Java语言特别适合于Internet应用程序的开发。该语言具有与计算机硬、软件平台无关的特性,这使得它在各种操作系统平台以及硬件平台上非常流行,Java语言也成为互联网上最为流行的程序设计语言之一。后来Sun公司被Oracle公司收购,因此Java也成为Oracle公司的一个产品。2.2MySQLOracle公司的MySQL被认可为是一种具有高可用性的关联性数据库,它可以被MS的SQLServer、MySQL等多种操作系统所使用,其中Solaris、MacOS、FreeBSD、Windows、ows等均可以被Linux所接受。它是一种DBSM,说得简单一些,它是一种数据库软件。MySQL可以存储、检索、管理和处理数据,MySQL的核心作用在于处理大量的数据,而为这些数据提供足够的存储空间则是MySQL的重点。MySQL的最大特点第一,它的开放源代码,通常不需要付任何代价,甚至可以无限期地更新;第二,MySQL的运算速度极为迅速;第三,MySQL的稳定性和可靠性极高;第四,MySQL的操作简单方便。2.3B/S模式Browser/Server,也就是Browser,是一种高效的Web架构,它允许用户访问和执行大部分的web/server操作,而不需要进行任何额外的设置。它的优势在于用户不需要安装任何其他的操作,就能够访问和执行大部分的Web操作。在这句话中,提到了前端所承担的主要任务,这些任务主要由后台完成。相对于之前,用户前端主要负责处理一些基础操作,如数据渲染、请求处理。这种方式有很多好处,例如能够在宽带环境中运行,并且能够在特殊条件下进行授权,方便多个用户同时使用。此外,这种方式还具有很高的交互性,并且能够在短期内完成所有功能。尽管该软件具有跨浏览器的优势,但其实际效果仍然有待提高,以至于无法满足CS程序的标准,而且还必须采用请求-响应的方式,这就导致了系统的运行效率低下,而且还会增加额外的设备维护成本。第3章系统分析3.1可行性分析3.1.1技术可行性在这次系统开发中,需要考虑技术上的可行性,本系统使用的语言为Java,框架为SpringBoot,而且采用MVC设计模式,这些技术已经非常成熟并且在很多相关领域得到了应用。通过使用这些技术,可以轻松地开发出这个系统,所以技术上是可行的。3.1.2经济可行性本系统开发过程中使用的大部分开发工具都是免费的,并且需要投入的资金很低,但该系统建成后,开发的系统有较好的应用前景和较高的经济价值,所以认为开发该系统在经济上是可行的。3.1.3操作可行性为确保系统的操作可行性,从用户的角度出发,对系统进行设计和优化。当系统交付给用户时,很容易使用,界面设计清晰明了,操作流程简单易懂,数据输入灵活完整,而从管理员的角度来看,整个系统管理起来简单、高效,并对用户有不同级别的使用权限管理。基于这些考虑,可以确定这个开发是可操作的。3.1.4法律可行性在设计和开发充电站管理系统时,必须遵守相关的法律法规。例如,要求对用户隐私进行保护、保证数据安全性和防止数据泄露,没有知识产权方面的问题,也没有抄袭任何网站或侵犯任何网站的版权等。3.2需求分析对系统功能要求的分析可以提供所需要的信息,良好的分析活动有助于避免出现错误,从而提高软件利用效率、降低成本并提高软件质量,为用户登录区分功能。3.2.1功能需求分析本系统主要为用户和管理员两个角色提供服务。用户注册登录后可以查看充电站的信息和运营商信息,找到所属地的充电站填写好好自己的信息进行充电预约,结束充电后缴纳费用。若发生故障可直接上传故障信息,对该系统的意见和评价可以通过留言板进行留言。用户用例图如图3.1所示。图3.1用户用例图管理员登录到后台系统,对用户、充电站、运营商等信息进行增删改查的操作,还可以对用户提交的预约信息进行审核,对上报的故障问题审核成功后派遣相关的工作人员进行维修。管理员用例图如图3.2所示。图3.2管理员用例图3.2.2非功能需求分析本文设计一个新能源汽车充电站管理系统,该系统为用户存储大量充电站信息和基本操作系统信息,以确保系统数据的安全。Java的Web管理系统通常会对每个用户进行严格的认证,以便给予他们合适的权限,来让他们能够独立地进行任何活动,同时也能够安全地使用操作系统的资源。通过严格的用户授予管理,能够有效地保护系统中的数据,一旦出现任何异常情况,就会立刻终止其使用。为了确保系统稳定可靠地运行,为系统建立一个完整的错误处理机制,可以保证系统长时间运行可靠,来解决系统中的错误。第4章系统设计4.1系统总体设计经过精心设计,依据“高内聚”、“低耦合”原则,将本系统分为用户管理、充电桩信息管理、预约管理、充电管理以及充电桩费用管理等多个模块,来满足不同的功能需求。系统功能结构图如图4.1所示。图4.1系统功能结构图4.2数据库设计4.2.1概念结构设计在这个阶段,需要建立数据模型,包括实体、属性和关系等,以帮助理解系统的数据需求。可以使用实体关系图(E-R)来表示数据模型。对于新能源充电站管理系统,考虑的实体包括管理员、用户、充电桩、支付信息等。管理员实体包括管理员编号、用户名、密码、角色等属性,其实体属性图如图4.2所示。图4.2管理员实体属性图(2)用户包括用户账号、密码、姓名、年龄、头像、手机号等属性,其实体属性图如图4.3所示。图4.3用户实体属性图(3)充电桩实体包括电站名称、行政区域、地址、发电量、发电方式等属性,其实体属性图如图4.4所示。图4.4充电桩实体属性图(4)充电费用实体包含多个关键属性,例如订单编号、电桩编号、每时单价、充电时长、用户账号、姓名、订单时间、备注等信息,以便更好地满足消费者的需求。其实体属性图如图4.5所示。图4.5充电费用实体属性图

(5)维修实体包括时间、所处位置、电桩编号、派工时间、完成时间、维修状态等属性,其实体属性图如图4.6所示。图4.6维修实体属性图(6)留言实体包括用户名、留言内容、留言图片、回复内容、回复图片等属性,其实体属性图如图4.7所示图4.7留言实体图新能源汽车充电站管理系统E-R图,如图4.8所示。图4.8新能源汽车充电站管理系统E-R图4.2.2逻辑结构设计在前一节,通过E-R图来建立一种可以描述各种抽象数据实体及其彼此联系的模型,并且根据这一模型,创建出一组可供查询的数据库及其对应的表格。如图系统的具体表设计如下:(1)管理员表users“管理员表users”是一个用于记录登记管理员信息的系统,它的结构如表4.1所示。表4.1管理员表users字段名称类型长度字段说明主键默认值idbigint编号主键usernamevarchar100用户名续表4.1管理员表users字段名称类型长度字段说明主键默认值passwordvarchar20密码rolevarchar20角色管理员addtimetimestamp新增时间CURRENT_TIMESTAMP(2)用户yonghu“用户yonghu”是用来记录系统用户登录的信息。其表结构如表4.2所示。表4.2用户表字段名称类型长度字段说明编号默认值idbigint主键编号addtimetimestamp创建时间CURRENT_TIMESTAMPyonghuzhanghaovarchar20用户账号mimavarchar10密码yonghuxingmingvarchar10用户姓名xingbievarchar2性别nianlingvarchar4年龄touxianglongtext头像yonghushoujivarchar22用户手机(3)充电桩chongdianzhuang“充电桩chongdianzhuang”是用来记录充电桩的信息。其表结构如表4.3所示。表4.3充电桩信息表字段名称类型长度字段说明编号默认值idbigint主键编号addtimetimestamp创建时间CURRENT_TIMESTAMPdianzhuangbianhaovarchar20电桩编号dianzhuangfenleivarchar10电桩分类tupianlongtext图片shurudianyaint输入电压(V))shuchugonglvint输出功率(KW))shiyongfangshivarchar100使用方式zhuyishixiangvarchar100注意事项suochuweizhivarchar50所处位置meishidanjiaint每时单价yunyingshangvarchar20运营商dianzhanmingchengvarchar20电站名称xiangqinglongtext详情(4)充电桩预约chongdianzhuangyuyue“充电桩预约chongdianzhuangyuyue”是来记录充电桩预约的信息。其表结构如图4.4示。表4.4充电桩预约表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPyuyuebianhaovarchar20预约编号dianzhuangbianhaovarchar20电桩编号dianzhuangfenleivarchar50电桩分类suochuweizhivarchar30所处位置meishidanjiavarchar10每时单价yonghuzhanghaovarchar20用户账号yonghuxingmingvarchar10用户姓名yonghushoujivarchar22用户手机yuyueshijiandatetime预约时间beizhuvarchar100备注chongdianzhuangtaivarchar6充电状态sfshvarchar6是否审核否shhflongtext100审核回复(5)运营商yunyingshang“运营商yunyingshang”是用来记录运营商的信息。其表结构如图4.5所示。表4.5运营商表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPyunyingshangmingchengvarchar20运营商名称fengmiantupianlongtext封面图片jieshaolongtext100介绍shengshivarchar10省市dianzhuangshuliangvarchar10电桩数量fuzerenvarchar10负责人lianxifangshivarchar22联系方式(6)开始充电kaishichongdian“开始充电kaishichongdian”是来记录车辆开始充电的信息。其表结构如图4.6所示。表4.6开始充电表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPyuyuebianhaovarchar20预约编号dianzhuangbianhaovarchar20电桩编号dianzhuangfenleivarchar20电桩分类suochuweizhivarchar30所处位置续表4.6开始充电表字段名称类型长度字段说明主键默认值meishidanjiavarchar10每时单价yonghuzhanghaovarchar20用户账号yonghuxingmingvarchar10用户姓名yonghushoujivarchar22用户手机chongdianshijiandatetime充电时间jieshuzhuangtaivarchar200结束状态(7)结束充电jieshuchongdian“结束充电jieshuchongdian”是来记录车辆结束充电的信息。其表结构如图4.7所示。表4.7结束充电表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPyuyuebianhaovarchar20预约编号dianzhuangbianhaovarchar20电桩编号dianzhuangfenleivarchar20电桩分类suochuweizhivarchar30所处位置meishidanjiavarchar10每时单价续表4.7结束充电表字段名称类型长度字段说明主键默认值yonghuzhanghaovarchar20用户账号yonghuxingmingvarchar10用户姓名yonghushoujivarchar22用户手机chongdianshijianvarchar10充电时间jieshushijiandatetime结束时间yonghupingjialongtext100用户评价pingfenvarchar6评分(8)充电费用chongdianfeiyong“充电费用chongdianfeiyong”是用来记录充电费用的信息。其表结构如表4.8所示。表4.8充电费用表字段名称类型长度字段说明编号默认值idbigint主键编号addtimetimestamp创建时间CURRENT_TIMESTAMPdingdanbianhaovarchar20订单编号yuyuebianhaovarchar20预约编号dianzhuangbianhaovarchar20电桩编号续表4.8充电费用表字段名称类型长度字段说明编号默认值dianzhuangfenleivarchar20电桩分类meishidanjiavarchar4每时单价chongdianshizhangint充电时长chongdianjiagefloat充电价格yonghuzhanghaovarchar20用户账号yonghuxingmingvarchar10用户姓名yonghushoujivarchar22用户手机dingdanshijiandatetime订单时间dingdanbeizhuvarchar100订单备注crossuseridbigint跨表用户idcrossrefidbigint跨表主键idispayvarchar6是否支付未支付(9)故障查看guzhangtongzhi“故障查看guzhangtongzhi”是用来记录故障查看的信息。其表结构如表4.9所示。表4.9故障查看表字段名称类型长度字段说明编号默认值idbigint编号编号addtimetimestamp创建时间CURRENT_TIMESTAMPyuyuebianhaovarchar20预约编号dianzhuangbianhaovarchar20电桩编号dianzhuangfenleiVarchar20电桩分类suochuweizhivarchar20所处位置yonghuzhanghaovarchar20用户账号yonghuxingmingvarchar10用户姓名yonghushoujivarchar22用户手机shangbaoshijiandatetime上报时间baogaoleixingvarchar100报告类型baogaoneironglongtext报告内容sfshvarchar2是否审核否shhflongtext审核回复(10)留言板Message“留言板Message”是用来记录留言的信息。其表结构如图4.10所示。表4.10留言板表字段名称类型长度字段说明编号默认值idbigint编号编号addtimetimestamp创建时间CURRENT_TIMESTAMPyonghuzhanghaovarchar20用户账号liuiuyanxinxiliuyantupianhuifuxinxihuifutupianvarcharvarcharvarcharvarchar留言信息留言图片回复信息回复图片(11)维修工单weixiugongdan“维修工单weixiugongdan”是用来记录维修工单的信息。其表结构如表4.11所示。表4.11维修工单表字段名称类型长度字段说明编号默认值idbigint编号编号addtimetimestamp创建时间CURRENT_TIMESTAMPgongdanbianhaovarchar20工单编号shijiandate时间dianzhuangbianhaovarchar20电桩编号dianzhuangfenleivarchar20电桩分类suochuweizhivarchar30所处位置paigongbumenvarchar20派工部门paigongshijiandate派工时间guzhangmiaoshulongtext故障描述wanchengshijiandate完成时间gongdanzhuangtaivarchar10工单状态第5章系统实现5.1用户管理在打开系统之后,点击用户注册,进入到注册界面,填写用户账号、密码、确认密码、用户姓名、年龄、用户手机等信息,用户注册页面如图5.1所示。图5.1用户注册界面实现该功能的关键代码如下:@IgnoreAuth@RequestMapping("/register")publicRregister(@RequestBodyYonghuEntityyonghu){ //ValidatorUtils.validateEntity(yonghu); YonghuEntityu=yonghuService.selectOne(newEntityWrapper<YonghuEntity>().eq("yonghuzhanghao",yonghu.getYonghuzhanghao())); if(u!=null){ returnR.error("注册用户已存在"); } LonguId=newDate().getTime(); yonghu.setId(uId);yonghuService.insert(yonghu);returnR.ok();}当用户访问网站时,必须先登录,然后填写账号和密码,并点击登录按钮,用户登录页面如图5.2所示。若用户没有填写上述信息或者填写错误,则会出现一个错误的提示,登录失败图页面如图5.3所示。图5.2用户登录界面图5.3用户登录失败界面实现该功能的关键代码如下:publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){ YonghuEntityu=yonghuService.selectOne(newEntityWrapper<YonghuEntity>().eq("yonghuzhanghao",username)); if(u==null||!u.getMima().equals(password)){ returnR.error("账号或密码不正确"); } Stringtoken=tokenService.generateToken(u.getId(),username,"yonghu","用户"); returnR.ok().put("token",token); }以管理员身份登录时,需要在登录页面填写用户名、密码以及角色,验证后进入后台系统。其登录页面如图5.4所示。图5.4登录页面实现该功能的关键代码如下:publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){ UsersEntityuser=userService.selectOne(newEntityWrapper<UsersEntity>().eq("username",username)); if(user==null||!user.getPassword().equals(password)){ returnR.error("账号或密码不正确"); } Stringtoken=tokenService.generateToken(user.getId(),username,"users",user.getRole()); returnR.ok().put("token",token); }管理员查看用户信息,在系统中输入用户账号,点击“用户”的查询功能,用户信息管理界面如图5.5所示。查询找到用户信息,并对信息进行查看详情、修改、删除等操作。图5.5用户信息管理界面实现该功能的关键代码如下:/***查询*/@RequestMapping("/query")publicRquery(YonghuEntityyonghu){EntityWrapper<YonghuEntity>ew=newEntityWrapper<YonghuEntity>(); ew.allEq(MPUtil.allEQMapPre(yonghu,"yonghu")); YonghuViewyonghuView=yonghuService.selectView(ew); returnR.ok("查询用户成功").put("data",yonghuView);}/***删除*/@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){userService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.2充电桩信息管理管理员登录到后台系统中,选择电站信息管理下的“电站信息”按钮,进入电站信息管理界面如图5.6所示。图5.6电站信息管理界面用户登录系统后,点击“充电桩”按钮进入充电桩信息界面,充电桩界面如图5.7所示。图5.7充电桩信息界面实现该功能的关键代码如下:publicRquery(DianzhanxinxiEntitydianzhanxinxi){EntityWrapper<DianzhanxinxiEntity>ew=newEntityWrapper<DianzhanxinxiEntity>(); ew.allEq(MPUtil.allEQMapPre(dianzhanxinxi,"dianzhanxinxi")); DianzhanxinxiViewdianzhanxinxiView=dianzhanxinxiService.selectView(ew); returnR.ok("查询电站信息成功").put("data",dianzhanxinxiView);}管理员输入电站名称,选择查询找到电站信息,可以对电站信息进行删除操作,其删除操作如图5.8所示。图5.8电站信息删除界面实现该功能的关键代码如下:*删除*/@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){dianzhanxinxiService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}管理员还可以对电站信息进行修改操作,其修改界面如图5.9所示。图5.9电站信息修改界面实现该功能的关键代码如下:*修改*/@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyDianzhanxinxiEntitydianzhanxinxi,HttpServletRequestrequest){//ValidatorUtils.validateEntity(dianzhanxinxi);dianzhanxinxiService.updateById(dianzhanxinxi);//全部更新returnR.ok();}5.3充电桩预约管理用户输入用户名和密码信息进入系统界面,找到充电桩按钮点击查看进入充电桩预约界面点击预约按钮后,进入预约界面填写账号、姓名、手机号、预约时间等信息提交后进行预约。用户预约界面如图5.10所示。图5.10用户预约界面实现该功能的关键代码如下:publicRpage(@RequestParamMap<String,Object>params,ChongdianzhuangyuyueEntitychongdianzhuangyuyue, HttpServletRequestrequest){ StringtableName=request.getSession().getAttribute("tableName").toString(); if(tableName.equals("yonghu")){ chongdianzhuangyuyue.setYonghuzhanghao((String)request.getSession().getAttribute("username")); }EntityWrapper<ChongdianzhuangyuyueEntity>ew=newEntityWrapper<ChongdianzhuangyuyueEntity>(); PageUtilspage=chongdianzhuangyuyueService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,chongdianzhuangyuyue),params),params));returnR.ok().put("data",page);}管理员在后台系统中找到充电桩预约管理按钮,点击该按钮,即可查看用户预约的信息,并且可以根据用户的预约时间,开始进行审核,审核界面如图5.11所示。一旦审核通过,用户就可以按照提醒的时间及时完成充电。审核预约管理页面如图5.12所示。管理员可以对该界面的信息进行查询、修改、删除等操作。图5.11审核界面图5.12预约管理界面实现该功能的关键代码如下:publicRlist(ChongdianzhuangyuyueEntitychongdianzhuangyuyue){ EntityWrapper<ChongdianzhuangyuyueEntity>ew=newEntityWrapper<ChongdianzhuangyuyueEntity>(); ew.allEq(MPUtil.allEQMapPre(chongdianzhuangyuyue,"chongdianzhuangyuyue"));returnR.ok().put("data",chongdianzhuangyuyueService.selectListView(ew));}*查询*/@RequestMapping("/query")publicRquery(ChongdianzhuangyuyueEntitychongdianzhuangyuyue){EntityWrapper<ChongdianzhuangyuyueEntity>ew=newEntityWrapper<ChongdianzhuangyuyueEntity>(); ew.allEq(MPUtil.allEQMapPre(chongdianzhuangyuyue,"chongdianzhuangyuyue")); ChongdianzhuangyuyueViewchongdianzhuangyuyueView=chongdianzhuangyuyueService.selectView(ew); returnR.ok("查询充电桩预约成功").put("data",chongdianzhuangyuyueView);}*删除*/@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){chongdianzhuangyuyueService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.4运营商管理用户在系统中找到运营商按钮,输入运营商名字或省市信息来进行搜索查看自己所属地的充电桩。运营商信息如图5.13所示。图5.13运营商信息界面实现该功能的关键代码如下:publicRlist(YunyingshangEntityyunyingshang){ EntityWrapper<YunyingshangEntity>ew=newEntityWrapper<YunyingshangEntity>(); ew.allEq(MPUtil.allEQMapPre(yunyingshang,"yunyingshang"));returnR.ok().put("data",yunyingshangService.selectListView(ew));}管理员登录到后台系统中,选择运营商管理下的“运营商”按钮,进入运营商管理界面,可以查看运营商名称、省份、负责人和联系方式等信息,还可以对运营商信息进行查询、修改、删除等操作。删除页面如图5.14所示。运营商管理界面如图5.15所示。图5.14运营商删除界面图5.15运营商管理界面实现该功能的关键代码如下:/***查询*/@RequestMapping("/query")publicRquery(YunyingshangEntityyunyingshang){EntityWrapper<YunyingshangEntity>ew=newEntityWrapper<YunyingshangEntity>(); ew.allEq(MPUtil.allEQMapPre(yunyingshang,"yunyingshang")); YunyingshangViewyunyingshangView=yunyingshangService.selectView(ew); returnR.ok("查询运营商成功").put("data",yunyingshangView);}/***修改*/@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyYunyingshangEntityyunyingshang,HttpServletRequestrequest){//ValidatorUtils.validateEntity(yunyingshang);yunyingshangService.updateById(yunyingshang);//全部更新returnR.ok();}/***删除*/@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){yunyingshangService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}publicRquery(YunyingshangEntityyunyingshang){EntityWrapper<YunyingshangEntity>ew=newEntityWrapper<YunyingshangEntity>(); ew.allEq(MPUtil.allEQMapPre(yunyingshang,"yunyingshang")); YunyingshangViewyunyingshangView=yunyingshangService.selectView(ew); returnR.ok("查询运营商成功").put("data",yunyingshangView);}5.5充电管理5.5.1开始充电管理用户登录到系统后找到后台管理按钮,点击后在列表查看开始充电信息,可以查看充电桩所处位置、自己的信息和充电时间等等,可以根据电桩编号、用户姓名或者结束状态查询充电信息,用户还可以进行查看详情、结束充电和故障上报,开始充电信息如图5.16所示。图5.16开始充电界面以管理员身份登录到后台系统中,选择开始充电管理下的“开始充电”按钮,进入开始充电列表界面,输入电桩编号、用户姓名,选择查询找到“开始充电”,还可以对“开始充电”进行修改、删除等操作。开始充电管理界面如图5.17所示。图5.17开始充电管理界面实现该功能的关键代码如下:/***查询*/@RequestMapping("/query")publicRquery(KaishichongdianEntitykaishichongdian){EntityWrapper<KaishichongdianEntity>ew=newEntityWrapper<KaishichongdianEntity>(); ew.allEq(MPUtil.allEQMapPre(kaishichongdian,"kaishichongdian")); KaishichongdianViewkaishichongdianView=kaishichongdianService.selectView(ew); returnR.ok("查询开始充电成功").put("data",kaishichongdianView);}/***修改*/@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyKaishichongdianEntitykaishichongdian,HttpServletRequestrequest){//ValidatorUtils.validateEntity(kaishichongdian);kaishichongdianService.updateById(kaishichongdian);//全部更新returnR.ok();}/***删除*/@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){kaishichongdianService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.5.2结束充电管理管理员登录到后台系统中,选择结束充电管理下的“结束充电”按钮,进入结束充电列表界面,输入充电桩编号或者用户姓名,选择查询找到结束充电,进行费用计算;还可以对结束充电进行查询、费用计算、修改、删除等操作。结束充电管理界面如图5.18所示。图5.18结束充电管理界面管理员点击查看“费用计算”按钮进入费用计算页面,如图5.19所示。图5.19费用计算界面实现该功能的关键代码如下:*查询*/@RequestMapping("/query")publicRquery(JieshuchongdianEntityjieshuchongdian){EntityWrapper<JieshuchongdianEntity>ew=newEntityWrapper<JieshuchongdianEntity>(); ew.allEq(MPUtil.allEQMapPre(jieshuchongdian,"jieshuchongdian")); JieshuchongdianViewjieshuchongdianView=jieshuchongdianService.selectView(ew); returnR.ok("查询结束充电成功").put("data",jieshuchongdianView);}/***修改*/@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyJieshuchongdianEntityjieshuchongdian,HttpServletRequestrequest){//ValidatorUtils.validateEntity(jieshuchongdian);jieshuchongdianService.updateById(jieshuchongdian);//全部更新returnR.ok();}/***删除*/@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){jieshuchongdianService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.6充电费用管理用户点击进入后台管理后,点击充电费用管理列表中的充电费用,可以查看充电时长、订单时间、自己的信息和支付信息等信息,充电费用信息如图5.20所示。用户可以对自己的费用信息进行查看详情操作。图5.20充电费用信息界面实现该功能的关键代码如下:publicRpage(@RequestParamMap<String,Object>params,ChongdianfeiyongEntitychongdianfeiyong, HttpServletRequestrequest){ StringtableName=request.getSession().getAttribute("tableName").toString(); if(tableName.equals("yonghu")){ chongdianfeiyong.setYonghuzhanghao((String)request.getSession().getAttribute("username")); }EntityWrapper<ChongdianfeiyongEntity>ew=newEntityWrapper<ChongdianfeiyongEntity>(); PageUtilspage=chongdianfeiyongService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,chongdianfeiyong),params),params));returnR.ok().put("data",page);}管理员登录到后台系统中,选择充电费用管理下的“充电费用”按钮,进入充电费用列表界面,输入充电桩编号、用户姓名,充电费用管理界面如图5.21所示。还可以对充电费用进行查询、修改和删除操作。图5.21充电费用管理界面实现该功能的关键代码如下:/***查询*/@RequestMapping("/query")publicRquery(ChongdianfeiyongEntitychongdianfeiyong){EntityWrapper<ChongdianfeiyongEntity>ew=newEntityWrapper<ChongdianfeiyongEntity>(); ew.allEq(MPUtil.allEQMapPre(chongdianfeiyong,"chongdianfeiyong")); ChongdianfeiyongViewchongdianfeiyongView=chongdianfeiyongService.selectView(ew); returnR.ok("查询充电费用成功").put("data",chongdianfeiyongView);}/***修改*/@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyChongdianfeiyongEntitychongdianfeiyong,HttpServletRequestrequest){//ValidatorUtils.validateEntity(chongdianfeiyong);chongdianfeiyongService.updateById(chongdianfeiyong);//全部更新returnR.ok();}/***删除*/@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){chongdianfeiyongService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.7故障管理用户进入系统后根据点击进入后台管理,查看列表中的故障查看信息,可以查看充电桩所处的位置、报告类型、个人的信息和审核状态,故障通知信息页面如图5.22所示。用户对自己填写的报修信息进行可以查看详情和删除操作。图5.22故障通知界面管理员登录到后台系统中,选择故障管理下的“故障管理”按钮,进入故障管理列表界面,输入充电桩编号,用户姓名或者报告类型,故障管理界面如图5.23所示。还可以对故障查看详情、修改和删除操作。图5.23故障管理界面管理员查看用户填写的报修信息并进行审核,其故障审核界面如图5.24所示。图5.24故障审核界面实现该功能的关键代码如下:publicRlist(@RequestParamMap<String,Object>params,GuzhangtongzhiEntityguzhangtongzhi, HttpServletRequestrequest){EntityWrapper<GuzhangtongzhiEntity>ew=newEntityWrapper<GuzhangtongzhiEntity>(); PageUtilspage=guzhangtongzhiService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,guzhangtongzhi),params),params));returnR.ok().put("data",page);}/***查询*/@RequestMapping("/query")publicRquery(GuzhangtongzhiEntityguzhangtongzhi){EntityWrapper<GuzhangtongzhiEntity>ew=newEntityWrapper<GuzhangtongzhiEntity>(); ew.allEq(MPUtil.allEQMapPre(guzhangtongzhi,"guzhangtongzhi")); GuzhangtongzhiViewguzhangtongzhiView=guzhangtongzhiService.selectView(ew); returnR.ok("查询故障通知成功").put("data",guzhangtongzhiView);}/***删除*/@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){guzhangtongzhiService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.8留言板信息管理用户登录到系统后找到留言板按钮点击,可以对充电站的意见和评价进行留言,留言板信息页面如图5.25所示。图5.25留言板信息页面管理员登录到后台系统中,选择留言板管理下的“留言板”按钮,点击进入留言板管理界面如图5.26所示,随后输入用户名,点击查询按钮,可以对留言板进行查看详情、回复等操作。图5.26留言板管理界面实现该功能的关键代码如下:*查询*/@RequestMapping("/query")publicRquery(MessagesEntitymessages){EntityWrapper<MessagesEntity>ew=newEntityWrapper<MessagesEntity>(); ew.allEq(MPUtil.allEQMapPre(messages,"messages")); MessagesViewmessagesView=messagesService.selectView(ew); returnR.ok("查询留言板成功").put("data",messagesView);}第6章系统测试6.1测试方法黑盒测试是从用户的角度出发,查看用户会用到哪些功能,遇到哪些问题,它以一个具有可靠的测试模型为基础,结合客观的测试结果,以及可靠的测试数据,来评估系统的可靠性。白盒测试是面向编程人员来测试关注程序源代码的内部逻辑结构是否正确。因此采用黑白盒结合测试来检查系统的整体功能,提高系统的稳定性。6.2功能测试6.2.1用户管理用户在注册页面填写账号、密码、年龄、手机号等信息注册账号,如果手机号格式错误提示页面如图6.1所示。图6.1手机格式有误页面

如果信息填写正确,注册成功,其界面如图6.2所示。图6.2注册成功页面用户注册成功后,输入正确的用户名和密码进入到系统页面,如果用户名或者密码出错,系统检测后会弹出“账号或密码不正确”的提示,如图6.3所示。图6.3用户登录信息有误页面管理员登录时需要选择角色,如果没有选择角色,登录失败并且弹出“请选择角色”的提示,其页面如图6.4所示。图6.4登录失败页面管理员登录成功后,点击“用户信息”按钮查看用户信息,如图6.5所示。图6.5用户信息页面6.2.2充电桩信息管理管理员可以在充电站信息管理中添加新的电站信息,如图6.6所示图6.6添加充电桩信息页面充电桩信息页面添加成功的页面如图6.7所示图6.7充电桩信息添加成功页面在搜索栏目搜索电站名称“特瑞斯”点击搜素,查看带有“特瑞斯”关键词成功的页面如图6.8所示。图6.8搜索关键词成功页面在充电桩信息管理界面中选择带有“哪吒”电站名称的信息进行删除,删除前的充电站管理页面如图6.9所示。图6.9充电桩信息删除前的管理页面对带有“哪吒”关键词的整个充电站信息进行删除,删除提示页面如图6.10所示。图6.10删除提示页面删除成功后的管理页面如图6.11所示。图6.11删除后的电站信息管理页面6.2.3充电桩预约管理用户登录到系统后找到预约页面,填写信息进行预约,如图6.12所示图6.12填写预约信息页面用户填写预约信息完成后,上传到后台系统,用户预约信息管理页面如图6.13所示。图6.13用户预约信息页面管理员审核通过后才可以进行充电,审核时会弹出提示,如图6.14所示。图6.14审核提示页面管理员进行审核,审核页面如图6.15所示。图6.15审核页面管理员通过审核页面如图6.16所示。图6.16通过审核的管理页面6.2.4运营商管理管理员添加运营商信息页面如图6.17所示。图6.17添加运营商页面管理员查看添加的运营商页面如图6.18所示。图6.18运营商管理页面用户点击查看石家庄市运营商,可以查看电桩数量、负责人姓名和联系方式等信息,其页面如图6.19和6.20所示。图6.19运营商信息页面图6.20运营商信息页面用户可以根据运营商名称搜索对应的充电桩如图6.21所示。图6.21搜索运营商页面6.2.5充电管理用户开始充电后点击充电页面,如图6.22所示。图6.22开始充电页面管理员查看开始充电的管理页面如图6.23所示。图6.23开始充电管理页面结束充电点击按钮会弹出提示框如图6.24所示。图6.24提示页面结束充电后充电状态变更为已结束,该页面如图6.5所示。图6.25结束充电信息页面6.2.6充电费用管理用户充电结束后点击费用信息管理查看费用订单页面如图6.26所示。图6.26费用订单页面用户支付订单是弹出提示框如图6.27所示。图6.27订单提示页面用户确认支付后,查看已支付订单页面如图6.28所示。图6.28已支付订单页面管理员从系统中查看订单管理页面如图6.29所示。图6.29费用信息管理页面支付完成后的后台系统支付状态变为已支付状态,如图6.30所示。图6.30已支付订单管理页面6.2.7故障管理用户点击故障查看页面如图6.31所示。6.31故障页面管理员查看故障管理页面查看如图6.32所示。6.32故障管理界面管理员审核维修状态的管理页面如图6.33所示。6.33审核页面未通过审核的故障管理页面如图6.34所示。6.34故障管理页面6.2.8留言板信息管理用户可以在留言上添加意见和评价,如图6.35所示6.35留言板页面上传后用户可以看到该留言,如图6.36所示。6.36留言信息上传页面管理员查看后进行留言管理页面如图6.37所示。6.37留言管理页面

6.3测试结论经过使用多个测试用例对系统的部分功能进行了全面测试,整个系统在测试过程中,都能很好的把正确数据呈现给用户,不管是从系统的功能上、还是从系统的使用上,基本上都能达到当初预计的结果。

结论随着充电站设备的不断发展,充电站利用率低,用户充电不方便等问题显露出来,鉴于此,在Windows系统操作下使用Java语言、MySQL数据库设计开发了一个新能源充电站管理系统。该系统实现了用户信息管理、充电桩信息管理、充电桩预约管理、运营商管理、充电管理和故障管理等功能。本设计基本满足了用户在充电问题

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论