wlzboy
6 天以前 3bbd80a63ac7728ac01b641a48a26befcb171a0f
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) {
        // 如果没有传deptId,使用当前用户的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;
        }