From 2c86a8bd60deed0dd0e044bad6fb83f75d19a332 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期日, 26 十月 2025 15:05:50 +0800
Subject: [PATCH] Merge branch 'feature-task'

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/SysTaskVehicleController.java |  169 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 169 insertions(+), 0 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
new file mode 100644
index 0000000..c5dd2a1
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/SysTaskVehicleController.java
@@ -0,0 +1,169 @@
+package com.ruoyi.web.controller.task;
+
+import java.util.List;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.SysTaskVehicle;
+import com.ruoyi.system.service.ISysTaskService;
+
+/**
+ * 浠诲姟杞﹁締鍏宠仈Controller
+ * 
+ * @author ruoyi
+ * @date 2024-01-15
+ */
+@RestController
+@RequestMapping("/task/vehicle")
+public class SysTaskVehicleController extends BaseController {
+    
+    @Autowired
+    private ISysTaskService sysTaskService;
+
+    /**
+     * 鏌ヨ浠诲姟鍏宠仈鐨勮溅杈嗗垪琛�
+     */
+    @PreAuthorize("@ss.hasPermi('task:general:query')")
+    @GetMapping("/list/{taskId}")
+    public AjaxResult list(@PathVariable("taskId") Long taskId) {
+        List<SysTaskVehicle> list = sysTaskService.getTaskVehicles(taskId);
+        return success(list);
+    }
+
+    /**
+     * 鏌ヨ鍙敤杞﹁締鍒楄〃
+     */
+    @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);
+    }
+
+    /**
+     * 鍒嗛厤杞﹁締缁欎换鍔�
+     */
+    @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());
+            if (result > 0) {
+                return success("鍒嗛厤鎴愬姛");
+            } else {
+                return error("鍒嗛厤澶辫触");
+            }
+        } catch (Exception e) {
+            return error("鍒嗛厤澶辫触锛�" + e.getMessage());
+        }
+    }
+
+    /**
+     * 鎵归噺鍒嗛厤杞﹁締缁欎换鍔�
+     */
+    @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 {
+            // 璁剧疆璇锋眰瀵硅薄涓殑taskId锛岀‘淇濆弬鏁颁竴鑷存��
+            request.setTaskId(taskId);
+            int result = sysTaskService.assignMultipleVehiclesToTask(request.getTaskId(), request.getVehicleIds(), request.getRemark());
+            if (result > 0) {
+                return success("鎵归噺鍒嗛厤鎴愬姛锛屽叡鍒嗛厤 " + result + " 杈嗚溅");
+            } else {
+                return error("鎵归噺鍒嗛厤澶辫触");
+            }
+        } catch (Exception e) {
+            return error("鎵归噺鍒嗛厤澶辫触锛�" + e.getMessage());
+        }
+    }
+
+    /**
+     * 鍙栨秷浠诲姟杞﹁締鍒嗛厤
+     */
+    @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) {
+        try {
+            int result = sysTaskService.unassignVehicleFromTask(taskId, vehicleId);
+            if (result > 0) {
+                return success("鍙栨秷鍒嗛厤鎴愬姛");
+            } else {
+                return error("鍙栨秷鍒嗛厤澶辫触");
+            }
+        } catch (Exception e) {
+            return error("鍙栨秷鍒嗛厤澶辫触锛�" + e.getMessage());
+        }
+    }
+
+    /**
+     * 鍒嗛厤杞﹁締璇锋眰瀵硅薄
+     */
+    public static class AssignVehicleRequest {
+        private Long vehicleId;
+        private String remark;
+
+        public Long getVehicleId() {
+            return vehicleId;
+        }
+
+        public void setVehicleId(Long vehicleId) {
+            this.vehicleId = vehicleId;
+        }
+
+        public String getRemark() {
+            return remark;
+        }
+
+        public void setRemark(String remark) {
+            this.remark = remark;
+        }
+    }
+
+    /**
+     * 鎵归噺鍒嗛厤杞﹁締璇锋眰瀵硅薄
+     */
+    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;
+        }
+
+        public void setVehicleIds(List<Long> vehicleIds) {
+            this.vehicleIds = vehicleIds;
+        }
+
+        public String getRemark() {
+            return remark;
+        }
+
+        public void setRemark(String remark) {
+            this.remark = remark;
+        }
+    }
+}

--
Gitblit v1.9.1