基于SpringBoot的自动化车座安排系统

2023-05-30 10:48:04董袁泉贾苏钱梦颖
电脑知识与技术 2023年2期

董袁泉 贾苏 钱梦颖

关键词:Spring Boot;自动化排车系统;Web

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2023)02-0047-03

1 引言

随着知识经济的发展,高职逐渐成为区域经济实用性人才的主要来源。为了促进学生了解张家港,寻求本土企业参与人才培养,提高爱国主义情怀,沙洲职业工学院电子信息工程系在学生学习生涯中安排了多次外出交流活動,例如:走访当地知名企业,参观红色主题场馆等。可以帮助学生了解所学专业的在本地布局的企业,为其毕业后留张家港就业打下了基础,进而更好地服务张家港产业。

上述活动安排均涉及了用车需求,进而需要安排车辆,为了保证学生准确且迅速地寻找自己车辆座位等信息,避免每次用车时排座所需的人力,减少人工排座可能出现的错误,故采用SpringBoot技术开发了自动化排座系统。

2 相关技术概述

2.1 SpringBoot

SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,提高了性能,并且通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。相较于Spring其不需要XML等配置文件。

其可以减少在项目开发中所需要的一系列的第三方类库的配置,例如:JDBC、MySQL等,实现了部分自动化配置,极大程度地提高了开发效率[1]。

2.2 JXL

JXL[2]是一个开源的、基于Java开发的操作Excel文件的第三方类库。其支持Excel95-2000的所有版本,且不依赖于具体的平台。

其可以完成:

1)支持多种Excel版本,基本上覆盖了常见用户,支持多版本Excel文件的创建。

2)支持操纵数字、日期等数据格式的数据。

3)支持丰富的单元格设定。

4)支持文字的字体、大小的设定

其提供了WorkBook、Sheet、Cell等对象实现对Ex?cel不同构件的抽象。

一个WorkBook对应一个Excel。

Sheet对象对应于一个工作表,一个WorkBook中可以有多个Sheet,Sheet对象从0开始,序号对应着依次创建的sheet。

Cell对象存在于Sheet对象中,代表了具体的单元格。

3 系统功能概述

本系统主要的功能是实现对学生和车辆、车辆座位的自动化排座,可以减少排车过程中所需要的人力。系统角色分为两大类:学生和管理员。

学生模块中,提供两大功能:登录系统以及查看活动信息。

管理员模块,提供学生信息管理,提供新增用户、编辑用户以及删除用户,并且支持使用Excel表格批量导入用户信息。活动信息管理,提供新建活动、编辑已发布活动和删除已发布活动。车辆信息管理,提供新增车辆、编辑车辆信息、删除处理以及批量导入车辆。排车管理,提供了三种排车方案:顺序排车,其按照学生的学号顺序和已有的车辆及其座位顺序地安排座位。班级排车,按照学生班级进行排车,一个班级的学生优先放入一辆车中,便于管理。环保排车,结合顺序排车和班级排车的优点,在保证班级学生不分散的情况下使用最少辆车完成配车。

系统的主要功能模块如图1所示:

4 总体设计

4.1 系统架构

本系统使用MVC架构开发,可以将系统中的前后端代码进行分离。后端使用SpringBoot框架和My?Batis进行设计,主要设计了Controller控制层、Service服务层以及DAO数据访问层。

Controll 控制层主要负责接受并响应客户的请求,其通过对Service服务层中定义的调用处理用户不同的请求,并将结果返回给视图层。

Service服务层主要是系统中的业务逻辑,比如系统中不同的排车方案,数据的添加、删除、修改等操作。其针对控制层传来的不同参数,通过DAO层完成对数据库的访问,完成业务逻辑处理。

DAO 数据访问层,使用MyBatis 框架完成了对ORM结果集的封装。实现了对JDBC的简单封装,实现对系统所需数的增删查改。

View视图层使用Thymeleaf模板引擎,其可以很好的结合SpringBoot框架[3-4]。视图层依据控制层返回的数据,结合浏览器完成和用户的交互。

4.2 数据库设计

系统主要涉及学生、车辆、活动和班级等实体。结合数据库设计原则,满足实际应用的需求[5],数据库由用户(User)表、活动(Activity)表、汽车信息(Car)表和班级(Class)表组成。

5 功能实现

5.1 项目环境

本项目开发平台配置:I7 10700处理器,16GB内容,64 位Windows 操作系统。前端开发工具为VScode,后端开发使用IDEA 2020。其他软硬件版本如下:

5.2 绿色环保排车

为了降低出行费用,响应节能减排的号召,在系统中添加了绿色环保排车,在确保出行的情况下,使用最少的车辆完成出行。排车思路如下:对车辆按人数进行降序排序,依次和最少人数的班级进行匹配。实现代码如下:

for (Car car : collectDes) {

try {

car.carryStudents=students.subList(sum, sum

+ car.getCarryNumber());

} catch (IndexOutOfBoundsException e) {

int overage = studentSize - sum;

for (Car car2 : collectAsc) {

if (car2.getCarryNumber() >= overage) {

car2. carryStudents=students. subList

(sum, studentSize);

break;

}

}

}

sum += car.getCarryNumber();

}

5.3 部分功能实现

系统管理员登录之后,有学生管理模块,其中提供了单个学生添加、修改、删除以及批量添加,批量添加如图4所示:

在排车管理模块中可以进行排车,系统一共提供了三种排车方式:顺序排车、班级排车和环保排车,如图5所示:

点击排车按钮之后,系统会依据不同的排车方法生成最终乘车信息名单。

6 结束语

本文主要介绍使用SpringBoot框架搭建一个自动化排车的信息系统,就功能设计、项目系统框架以及数据库设计进行了详细的介绍。系统开发完毕后,经过了一定的测试,可以满足校内学生出行需求。

系统在设计上还存在一定的问题,在排座上不够灵活,不能有效地支持学生个性化选座,后面会考虑加入新的模块,以满足学生个性化选座的需求。同时还需要验证大量用户访问时系统地表现,进一步完善以提高系统用户友好性。