From 65ea825eb3e8547f0222224835554dabaec5a7ad Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 03 六月 2026 13:44:30 +0800
Subject: [PATCH] feat(vehicle): 添加车辆管理模块及归还里程功能

---
 src/main/java/com/ruoyi/approve/service/impl/VehicleBorrowRecordServiceImpl.java |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/service/impl/VehicleBorrowRecordServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/VehicleBorrowRecordServiceImpl.java
index dd7f646..5fe032d 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/VehicleBorrowRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/VehicleBorrowRecordServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ruoyi.approve.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -197,6 +198,7 @@
         update.setActualReturnTime(now);
         update.setReturnedTime(now);
         update.setBorrowStatus(BORROW_STATUS_RETURNED);
+        update.setReturnMileage(record.getReturnMileage());
         update.setUpdateUser(SecurityUtils.getUserId());
         update.setUpdateTime(now);
         update.setExtendStatus(existing.getExtendStatus());
@@ -208,6 +210,9 @@
         Vehicle vehicle = new Vehicle();
         vehicle.setId(existing.getVehicleId());
         vehicle.setStatus("IDLE");
+        if (record.getReturnMileage() != null) {
+            vehicle.setMileage(record.getReturnMileage());
+        }
         vehicleMapper.updateById(vehicle);
         return true;
     }
@@ -247,7 +252,10 @@
             throw new ServiceException("淇濆瓨寤舵湡鐢宠澶辫触");
         }
         VehicleBorrowRecord refreshed = detail(existing.getId());
-        startApproval(refreshed, TypeEnums.VEHICLE_DELAY_APPROVAL.getCode());
+        VehicleBorrowRecordDto recordDto = new VehicleBorrowRecordDto();
+        BeanUtil.copyProperties(refreshed, recordDto);
+        recordDto.setFormConfig(record.getFormConfig());
+        startApproval(recordDto, TypeEnums.VEHICLE_DELAY_APPROVAL.getCode());
         return true;
     }
 
@@ -329,11 +337,12 @@
         }
     }
 
-    private void startApproval(VehicleBorrowRecord record, Long businessType) {
+    private void startApproval(VehicleBorrowRecordDto record, Long businessType) {
         Long templateId = null;
-        if (record instanceof VehicleBorrowRecordDto) {
-            templateId = ((VehicleBorrowRecordDto) record).getApprovalTemplateId();
+        if (record == null) {
+            return;
         }
+        templateId = record.getApprovalTemplateId();
         ApprovalTemplate approvalTemplate = resolveApprovalTemplate(templateId, businessType);
         ApprovalInstanceDto approvalInstanceDto = new ApprovalInstanceDto();
         approvalInstanceDto.setTemplateId(approvalTemplate.getId());
@@ -346,6 +355,7 @@
         approvalInstanceDto.setApplyTime(LocalDateTime.now());
         approvalInstanceDto.setStatus("PENDING");
         approvalInstanceDto.setCurrentLevel(1);
+        approvalInstanceDto.setFormConfig(record.getFormConfig());
 
         boolean saved = approvalInstanceService.add(approvalInstanceDto);
         if (!saved || approvalInstanceDto.getId() == null) {

--
Gitblit v1.9.3