package com.ruoyi.web.controller.task; import java.util.List; import javax.servlet.http.HttpServletResponse; 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.PutMapping; 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.ISysTaskVehicleService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; /** * 任务车辆关联管理Controller * * @author ruoyi * @date 2024-01-15 */ @RestController @RequestMapping("/task/vehicle/management") public class SysTaskVehicleManagementController extends BaseController { @Autowired private ISysTaskVehicleService sysTaskVehicleService; /** * 查询任务车辆关联列表 */ @PreAuthorize("@ss.hasPermi('task:vehicle:list')") @GetMapping("/list") public TableDataInfo list(SysTaskVehicle sysTaskVehicle) { startPage(); List list = sysTaskVehicleService.selectSysTaskVehicleList(sysTaskVehicle); return getDataTable(list); } /** * 导出任务车辆关联列表 */ @PreAuthorize("@ss.hasPermi('task:vehicle:export')") @Log(title = "任务车辆关联", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, SysTaskVehicle sysTaskVehicle) { List list = sysTaskVehicleService.selectSysTaskVehicleList(sysTaskVehicle); ExcelUtil util = new ExcelUtil(SysTaskVehicle.class); util.exportExcel(response, list, "任务车辆关联数据"); } /** * 获取任务车辆关联详细信息 */ @PreAuthorize("@ss.hasPermi('task:vehicle:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return success(sysTaskVehicleService.selectSysTaskVehicleById(id)); } /** * 新增任务车辆关联 */ @PreAuthorize("@ss.hasPermi('task:vehicle:add')") @Log(title = "任务车辆关联", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody SysTaskVehicle sysTaskVehicle) { try { int result = sysTaskVehicleService.insertSysTaskVehicle(sysTaskVehicle); if (result > 0) { return success("新增成功"); } else { return error("新增失败"); } } catch (Exception e) { return error("新增失败:" + e.getMessage()); } } /** * 修改任务车辆关联 */ @PreAuthorize("@ss.hasPermi('task:vehicle:edit')") @Log(title = "任务车辆关联", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody SysTaskVehicle sysTaskVehicle) { try { int result = sysTaskVehicleService.updateSysTaskVehicle(sysTaskVehicle); if (result > 0) { return success("修改成功"); } else { return error("修改失败"); } } catch (Exception e) { return error("修改失败:" + e.getMessage()); } } /** * 删除任务车辆关联 */ @PreAuthorize("@ss.hasPermi('task:vehicle:remove')") @Log(title = "任务车辆关联", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { try { int result = sysTaskVehicleService.deleteSysTaskVehicleByIds(ids); if (result > 0) { return success("删除成功"); } else { return error("删除失败"); } } catch (Exception e) { return error("删除失败:" + e.getMessage()); } } /** * 根据任务ID查询关联车辆列表 */ @PreAuthorize("@ss.hasPermi('task:vehicle:query')") @GetMapping("/task/{taskId}") public AjaxResult getVehiclesByTaskId(@PathVariable("taskId") Long taskId) { List list = sysTaskVehicleService.selectSysTaskVehicleByTaskId(taskId); return success(list); } /** * 分配车辆给任务 */ @PreAuthorize("@ss.hasPermi('task:vehicle:assign')") @Log(title = "任务车辆分配", businessType = BusinessType.INSERT) @PostMapping("/assign") public AjaxResult assignVehicle(@RequestBody AssignVehicleRequest request) { try { int result = sysTaskVehicleService.assignVehicleToTask(request.getTaskId(), request.getVehicleId(), request.getRemark()); if (result > 0) { return success("分配成功"); } else { return error("分配失败"); } } catch (Exception e) { return error("分配失败:" + e.getMessage()); } } /** * 批量分配车辆给任务 */ @PreAuthorize("@ss.hasPermi('task:vehicle:assign')") @Log(title = "任务车辆批量分配", businessType = BusinessType.INSERT) @PostMapping("/assign-batch") public AjaxResult assignVehicles(@RequestBody BatchAssignVehicleRequest request) { try { int result = sysTaskVehicleService.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:vehicle:assign')") @Log(title = "取消任务车辆分配", businessType = BusinessType.DELETE) @DeleteMapping("/unassign/{taskId}/{vehicleId}") public AjaxResult unassignVehicle(@PathVariable("taskId") Long taskId, @PathVariable("vehicleId") Long vehicleId) { try { int result = sysTaskVehicleService.unassignVehicleFromTask(taskId, vehicleId); if (result > 0) { return success("取消分配成功"); } else { return error("取消分配失败"); } } catch (Exception e) { return error("取消分配失败:" + e.getMessage()); } } /** * 更新任务车辆关联状态 */ @PreAuthorize("@ss.hasPermi('task:vehicle:edit')") @Log(title = "更新任务车辆状态", businessType = BusinessType.UPDATE) @PutMapping("/status/{id}") public AjaxResult updateStatus(@PathVariable("id") Long id, @RequestParam String status) { try { int result = sysTaskVehicleService.updateTaskVehicleStatus(id, status); if (result > 0) { return success("状态更新成功"); } else { return error("状态更新失败"); } } catch (Exception e) { return error("状态更新失败:" + e.getMessage()); } } /** * 分配车辆请求对象 */ public static class AssignVehicleRequest { private Long taskId; private Long vehicleId; private String remark; public Long getTaskId() { return taskId; } public void setTaskId(Long taskId) { this.taskId = taskId; } 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 vehicleIds; private String remark; public Long getTaskId() { return taskId; } public void setTaskId(Long taskId) { this.taskId = taskId; } public List getVehicleIds() { return vehicleIds; } public void setVehicleIds(List vehicleIds) { this.vehicleIds = vehicleIds; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } } }