【Java毕设】停车场管理系统 SpringBoot+Vue框架 计算机毕业设计项目 Idea+Navicat+MySQL安装 附源码+文档+讲解

71 阅读3分钟

前言

💖💖作者:计算机程序员小杨 💙💙个人简介:我是一名计算机相关专业的从业者,擅长Java、微信小程序、Python、Golang、安卓Android等多个IT方向。会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。热爱技术,喜欢钻研新工具和框架,也乐于通过代码解决实际问题,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💕💕文末获取源码联系 计算机程序员小杨 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目 计算机毕业设计选题 💜💜

一.开发工具简介

开发语言:Java+Python(两个版本都支持) 后端框架:Spring Boot(Spring+SpringMVC+Mybatis)+Django(两个版本都支持) 前端:Vue+ElementUI+HTML 数据库:MySQL 系统架构:B/S 开发工具:IDEA(Java的)或者PyCharm(Python的)

二.系统内容简介

本停车场管理系统基于SpringBoot+Vue架构开发,采用B/S模式设计,旨在解决传统停车场管理效率低下、信息记录不准确等问题。系统集成了用户管理、车辆登记信息管理、车位信息管理、固定停车位管理、入场信息管理、临时入场管理、离场信息管理、留言板管理、系统管理和个人中心等十大核心功能模块。后端采用Spring Boot框架构建RESTful API接口,结合MyBatis实现数据持久化操作,前端使用Vue.js配合ElementUI组件库构建响应式用户界面,数据存储采用MySQL关系型数据库。系统支持Java和Python双版本实现,管理员可以通过Web界面实时监控停车场运营状况,包括车位占用率、车辆进出记录、收费统计等关键指标,同时为车主提供便捷的停车服务体验,实现停车场运营的数字化转型和智能化管理。

三.系统功能演示

停车场管理系统-链接

四.系统界面展示

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

五.系统源码展示


import org.apache.spark.sql.SparkSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.math.BigDecimal;

@Service
public class ParkingManagementService {
    
    @Autowired
    private VehicleMapper vehicleMapper;
    @Autowired
    private ParkingSpaceMapper parkingSpaceMapper;
    @Autowired
    private EntryRecordMapper entryRecordMapper;
    
    private SparkSession spark = SparkSession.builder()
        .appName("ParkingManagementAnalysis")
        .master("local[*]")
        .getOrCreate();
    
    // 车辆入场管理核心功能
    public Result vehicleEntry(VehicleEntryRequest request) {
        Vehicle vehicle = vehicleMapper.findByLicensePlate(request.getLicensePlate());
        if (vehicle == null) {
            vehicle = new Vehicle();
            vehicle.setLicensePlate(request.getLicensePlate());
            vehicle.setOwnerName(request.getOwnerName());
            vehicle.setOwnerPhone(request.getOwnerPhone());
            vehicle.setVehicleType(request.getVehicleType());
            vehicle.setCreateTime(LocalDateTime.now());
            vehicleMapper.insert(vehicle);
        }
        List<ParkingSpace> availableSpaces = parkingSpaceMapper.findAvailableSpaces();
        if (availableSpaces.isEmpty()) {
            return Result.error("暂无可用停车位");
        }
        ParkingSpace assignedSpace = availableSpaces.get(0);
        assignedSpace.setStatus(1);
        assignedSpace.setOccupiedBy(vehicle.getId());
        assignedSpace.setUpdateTime(LocalDateTime.now());
        parkingSpaceMapper.updateById(assignedSpace);
        EntryRecord entryRecord = new EntryRecord();
        entryRecord.setVehicleId(vehicle.getId());
        entryRecord.setSpaceId(assignedSpace.getId());
        entryRecord.setEntryTime(LocalDateTime.now());
        entryRecord.setStatus(0);
        entryRecordMapper.insert(entryRecord);
        return Result.success("车辆入场成功,分配停车位:" + assignedSpace.getSpaceNumber());
    }
    
    // 车辆离场管理核心功能
    public Result vehicleExit(VehicleExitRequest request) {
        Vehicle vehicle = vehicleMapper.findByLicensePlate(request.getLicensePlate());
        if (vehicle == null) {
            return Result.error("未找到该车辆信息");
        }
        EntryRecord activeRecord = entryRecordMapper.findActiveRecordByVehicleId(vehicle.getId());
        if (activeRecord == null) {
            return Result.error("该车辆无有效入场记录");
        }
        LocalDateTime exitTime = LocalDateTime.now();
        long parkingMinutes = ChronoUnit.MINUTES.between(activeRecord.getEntryTime(), exitTime);
        BigDecimal parkingFee = calculateParkingFee(parkingMinutes, vehicle.getVehicleType());
        activeRecord.setExitTime(exitTime);
        activeRecord.setParkingFee(parkingFee);
        activeRecord.setStatus(1);
        entryRecordMapper.updateById(activeRecord);
        ParkingSpace space = parkingSpaceMapper.selectById(activeRecord.getSpaceId());
        space.setStatus(0);
        space.setOccupiedBy(null);
        space.setUpdateTime(LocalDateTime.now());
        parkingSpaceMapper.updateById(space);
        ExitRecord exitRecord = new ExitRecord();
        exitRecord.setVehicleId(vehicle.getId());
        exitRecord.setSpaceId(activeRecord.getSpaceId());
        exitRecord.setExitTime(exitTime);
        exitRecord.setParkingDuration(parkingMinutes);
        exitRecord.setParkingFee(parkingFee);
        exitRecordMapper.insert(exitRecord);
        return Result.success("车辆离场成功,停车费用:" + parkingFee + "元");
    }
    
    // 停车位状态管理核心功能
    public Result manageParkingSpaceStatus(ParkingSpaceManageRequest request) {
        ParkingSpace parkingSpace = parkingSpaceMapper.selectById(request.getSpaceId());
        if (parkingSpace == null) {
            return Result.error("停车位不存在");
        }
        if (request.getOperation().equals("reserve")) {
            if (parkingSpace.getStatus() != 0) {
                return Result.error("该停车位不可预订");
            }
            parkingSpace.setStatus(2);
            parkingSpace.setReservedBy(request.getUserId());
            parkingSpace.setReservationTime(LocalDateTime.now());
            parkingSpace.setUpdateTime(LocalDateTime.now());
            parkingSpaceMapper.updateById(parkingSpace);
            ReservationRecord reservation = new ReservationRecord();
            reservation.setUserId(request.getUserId());
            reservation.setSpaceId(request.getSpaceId());
            reservation.setReservationTime(LocalDateTime.now());
            reservation.setStatus(0);
            reservationMapper.insert(reservation);
        } else if (request.getOperation().equals("cancel")) {
            if (parkingSpace.getStatus() != 2 || !parkingSpace.getReservedBy().equals(request.getUserId())) {
                return Result.error("无法取消该预订");
            }
            parkingSpace.setStatus(0);
            parkingSpace.setReservedBy(null);
            parkingSpace.setReservationTime(null);
            parkingSpace.setUpdateTime(LocalDateTime.now());
            parkingSpaceMapper.updateById(parkingSpace);
            reservationMapper.cancelReservationBySpaceIdAndUserId(request.getSpaceId(), request.getUserId());
        } else if (request.getOperation().equals("maintain")) {
            parkingSpace.setStatus(3);
            parkingSpace.setMaintenanceReason(request.getReason());
            parkingSpace.setMaintenanceStartTime(LocalDateTime.now());
            parkingSpace.setUpdateTime(LocalDateTime.now());
            parkingSpaceMapper.updateById(parkingSpace);
        }
        return Result.success("停车位状态更新成功");
    }
    
    private BigDecimal calculateParkingFee(long parkingMinutes, String vehicleType) {
        BigDecimal hourlyRate = vehicleType.equals("小型车") ? new BigDecimal("5.00") : new BigDecimal("8.00");
        long hours = (parkingMinutes + 59) / 60;
        return hourlyRate.multiply(new BigDecimal(hours));
    }
}

					   ```

## 六.系统文档展示
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/61c315df037e43aa87f6eb0775ad954e.png#pic_center)


## 结束



💕💕文末获取源码联系  [计算机程序员小杨](https://blog.csdn.net/2501_92997004?spm=1000.2115.3001.5343)