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