From 09faa36132c8cbada5327649875534ef01c1a3b1 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期四, 11 十二月 2025 20:44:31 +0800
Subject: [PATCH] feat: 优化任务里程统计

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/SysTaskVehicleController.java |   47 ++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 36 insertions(+), 11 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/SysTaskVehicleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/SysTaskVehicleController.java
index 6d70f75..0fa7ef8 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/SysTaskVehicleController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/SysTaskVehicleController.java
@@ -1,6 +1,8 @@
 package com.ruoyi.web.controller.task;
 
 import java.util.List;
+
+import com.ruoyi.common.utils.SecurityUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -16,7 +18,9 @@
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.system.domain.SysTaskVehicle;
+import com.ruoyi.system.domain.VehicleInfo;
 import com.ruoyi.system.service.ISysTaskService;
+import com.ruoyi.system.service.IVehicleInfoService;
 
 /**
  * 浠诲姟杞﹁締鍏宠仈Controller
@@ -30,11 +34,13 @@
     
     @Autowired
     private ISysTaskService sysTaskService;
+    
+    @Autowired
+    private IVehicleInfoService vehicleInfoService;
 
     /**
      * 鏌ヨ浠诲姟鍏宠仈鐨勮溅杈嗗垪琛�
      */
-    @PreAuthorize("@ss.hasPermi('task:general:query')")
     @GetMapping("/list/{taskId}")
     public AjaxResult list(@PathVariable("taskId") Long taskId) {
         List<SysTaskVehicle> list = sysTaskService.getTaskVehicles(taskId);
@@ -42,24 +48,32 @@
     }
 
     /**
-     * 鏌ヨ鍙敤杞﹁締鍒楄〃
+     * 鏌ヨ鍙敤杞﹁締鍒楄〃锛堟牴鎹敤鎴锋潈闄愶級
+     * 鏍规嵁鐢ㄦ埛鎵�鍦ㄧ殑鍒嗗叕鍙革紝閫氳繃杞﹁締-鍒嗗叕鍙稿叧鑱旇〃鏌ヨ鎵�鏈夊彲鐢ㄨ溅杈�
+     * 
+     * @param deptId 閮ㄩ棬ID锛堝彲閫夛紝濡傛灉涓嶄紶鍒欎娇鐢ㄥ綋鍓嶇敤鎴风殑deptId锛�
+     * @param taskType 浠诲姟绫诲瀷锛堝彲閫夛級
+     * @return 杞﹁締鍒楄〃
      */
-    @PreAuthorize("@ss.hasPermi('task:general:query')")
     @GetMapping("/available")
-    public AjaxResult getAvailableVehicles(@RequestParam Long deptId, @RequestParam(required = false) String taskType) {
-        List<SysTaskVehicle> list = sysTaskService.getAvailableVehicles(deptId, taskType);
-        return success(list);
+    public AjaxResult getAvailableVehicles(
+            @RequestParam(required = false) Long deptId, 
+            @RequestParam(required = false) String taskType) {
+        // 濡傛灉娌℃湁浼燿eptId锛屼娇鐢ㄥ綋鍓嶇敤鎴风殑userId鏌ヨ
+        List<VehicleInfo> vehicles = vehicleInfoService.selectAvailableVehiclesByUser(getUserId());
+        return success(vehicles);
     }
 
     /**
      * 鍒嗛厤杞﹁締缁欎换鍔�
      */
-    @PreAuthorize("@ss.hasPermi('task:general:assign')")
     @Log(title = "浠诲姟杞﹁締鍒嗛厤", businessType = BusinessType.INSERT)
     @PostMapping("/assign/{taskId}")
     public AjaxResult assignVehicle(@PathVariable("taskId") Long taskId, @RequestBody AssignVehicleRequest request) {
         try {
-            int result = sysTaskService.assignVehicleToTask(taskId, request.getVehicleId(), request.getRemark());
+            Long userId= SecurityUtils.getUserId();
+            String username = SecurityUtils.getUsername();
+            int result = sysTaskService.assignVehicleToTask(taskId, request.getVehicleId(), request.getRemark(), userId, username);
             if (result > 0) {
                 return success("鍒嗛厤鎴愬姛");
             } else {
@@ -73,12 +87,15 @@
     /**
      * 鎵归噺鍒嗛厤杞﹁締缁欎换鍔�
      */
-    @PreAuthorize("@ss.hasPermi('task:general:assign')")
     @Log(title = "浠诲姟杞﹁締鎵归噺鍒嗛厤", businessType = BusinessType.INSERT)
     @PostMapping("/assign-batch/{taskId}")
     public AjaxResult assignVehicles(@PathVariable("taskId") Long taskId, @RequestBody BatchAssignVehicleRequest request) {
         try {
-            int result = sysTaskService.assignMultipleVehiclesToTask(taskId, request.getVehicleIds(), request.getRemark());
+            // 璁剧疆璇锋眰瀵硅薄涓殑taskId锛岀‘淇濆弬鏁颁竴鑷存��
+            request.setTaskId(taskId);
+            Long userId= SecurityUtils.getUserId();
+            String username = SecurityUtils.getUsername();
+            int result = sysTaskService.assignMultipleVehiclesToTask(request.getTaskId(), request.getVehicleIds(), request.getRemark(), userId, username);
             if (result > 0) {
                 return success("鎵归噺鍒嗛厤鎴愬姛锛屽叡鍒嗛厤 " + result + " 杈嗚溅");
             } else {
@@ -92,7 +109,6 @@
     /**
      * 鍙栨秷浠诲姟杞﹁締鍒嗛厤
      */
-    @PreAuthorize("@ss.hasPermi('task:general:assign')")
     @Log(title = "鍙栨秷浠诲姟杞﹁締鍒嗛厤", businessType = BusinessType.DELETE)
     @DeleteMapping("/{taskId}/{vehicleId}")
     public AjaxResult unassignVehicle(@PathVariable("taskId") Long taskId, @PathVariable("vehicleId") Long vehicleId) {
@@ -136,9 +152,18 @@
      * 鎵归噺鍒嗛厤杞﹁締璇锋眰瀵硅薄
      */
     public static class BatchAssignVehicleRequest {
+        private Long taskId;
         private List<Long> vehicleIds;
         private String remark;
 
+        public Long getTaskId() {
+            return taskId;
+        }
+
+        public void setTaskId(Long taskId) {
+            this.taskId = taskId;
+        }
+
         public List<Long> getVehicleIds() {
             return vehicleIds;
         }

--
Gitblit v1.9.1