| | |
| | | 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.enums.BusinessType; |
| | | import com.ruoyi.system.domain.SysTask; |
| | | import com.ruoyi.system.domain.SysTaskLog; |
| | | import com.ruoyi.system.domain.VehicleInfo; |
| | | import com.ruoyi.system.domain.vo.TaskQueryVO; |
| | | import com.ruoyi.system.domain.vo.TaskCreateVO; |
| | | import com.ruoyi.system.domain.vo.TaskUpdateVO; |
| | | import com.ruoyi.system.domain.vo.TaskStatisticsVO; |
| | | import com.ruoyi.system.domain.enums.TaskStatus; |
| | | import com.ruoyi.system.service.ISysTaskService; |
| | | import com.ruoyi.system.service.IVehicleInfoService; |
| | | import com.ruoyi.common.utils.poi.ExcelUtil; |
| | | import com.ruoyi.common.core.page.TableDataInfo; |
| | | |
| | |
| | | |
| | | @Autowired |
| | | private ISysTaskService sysTaskService; |
| | | |
| | | @Autowired |
| | | private IVehicleInfoService vehicleInfoService; |
| | | |
| | | /** |
| | | * 查询任务管理列表 |
| | | * 查询任务管理列表(后台管理端) |
| | | * 管理员权限,可以查看所有任务 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('task:general:query')") |
| | | @GetMapping("/admin/list") |
| | | public TableDataInfo adminList(TaskQueryVO queryVO) { |
| | | startPage(); |
| | | List<SysTask> list = sysTaskService.selectSysTaskList(queryVO); |
| | | return getDataTable(list); |
| | | } |
| | | |
| | | /** |
| | | * 查询任务列表(APP端) |
| | | * 仅显示当前用户相关的任务: |
| | | * 1. 当前用户所在机构的任务 |
| | | * 2. 当前用户创建的任务 |
| | | * 3. 分配给当前用户的任务 |
| | | */ |
| | | @GetMapping("/list") |
| | | public TableDataInfo list(TaskQueryVO queryVO) { |
| | | public TableDataInfo appList(TaskQueryVO queryVO) { |
| | | // 在后端自动获取当前用户信息,实现综合查询 |
| | | // 综合查询:当前用户所在机构任务 + 当前用户创建的任务 + 分配给当前用户的任务 |
| | | Long currentUserId = getUserId(); |
| | | Long currentDeptId = getDeptId(); |
| | | |
| | | // 如果前端没有传递这些参数,则使用当前登录用户信息 |
| | | if (queryVO.getCreatorId() == null && queryVO.getAssigneeId() == null && queryVO.getDeptId() == null) { |
| | | queryVO.setDeptId(currentDeptId); |
| | | queryVO.setCreatorId(currentUserId); |
| | | queryVO.setAssigneeId(currentUserId); |
| | | } |
| | | // APP端强制使用当前登录用户信息进行过滤 |
| | | queryVO.setDeptId(currentDeptId); |
| | | queryVO.setCreatorId(currentUserId); |
| | | queryVO.setAssigneeId(currentUserId); |
| | | |
| | | startPage(); |
| | | List<SysTask> list = sysTaskService.selectSysTaskList(queryVO); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 导出任务管理列表 |
| | | * 导出任务管理列表(后台管理端) |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('task:general:export')") |
| | | @Log(title = "任务管理", businessType = BusinessType.EXPORT) |
| | | @PostMapping("/export") |
| | | @PostMapping("/admin/export") |
| | | public void export(HttpServletResponse response, TaskQueryVO queryVO) { |
| | | List<SysTask> list = sysTaskService.selectSysTaskList(queryVO); |
| | | ExcelUtil<SysTask> util = new ExcelUtil<SysTask>(SysTask.class); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 获取任务管理详细信息 |
| | | * 获取任务详细信息(后台管理端) |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('task:general:query')") |
| | | @GetMapping(value = "/{taskId}") |
| | | public AjaxResult getInfo(@PathVariable("taskId") Long taskId) { |
| | | @GetMapping(value = "/admin/{taskId}") |
| | | public AjaxResult adminGetInfo(@PathVariable("taskId") Long taskId) { |
| | | return success(sysTaskService.getTaskDetail(taskId)); |
| | | } |
| | | |
| | | /** |
| | | * 新增任务管理 |
| | | * 获取任务详细信息(APP端) |
| | | */ |
| | | @GetMapping(value = "/{taskId}") |
| | | public AjaxResult appGetInfo(@PathVariable("taskId") Long taskId) { |
| | | return success(sysTaskService.getTaskDetail(taskId)); |
| | | } |
| | | |
| | | /** |
| | | * 新增任务(后台管理端) |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('task:general:add')") |
| | | @Log(title = "任务管理", businessType = BusinessType.INSERT) |
| | | @PostMapping |
| | | public AjaxResult add(@RequestBody TaskCreateVO createVO) { |
| | | @PostMapping("/admin") |
| | | public AjaxResult adminAdd(@RequestBody TaskCreateVO createVO) { |
| | | return toAjax(sysTaskService.insertSysTask(createVO)); |
| | | } |
| | | |
| | | /** |
| | | * 修改任务管理 |
| | | * 新增任务(APP端) |
| | | */ |
| | | @Log(title = "任务创建", businessType = BusinessType.INSERT) |
| | | @PostMapping |
| | | public AjaxResult appAdd(@RequestBody TaskCreateVO createVO) { |
| | | return toAjax(sysTaskService.insertSysTask(createVO)); |
| | | } |
| | | |
| | | /** |
| | | * 修改任务(后台管理端) |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('task:general:edit')") |
| | | @Log(title = "任务管理", businessType = BusinessType.UPDATE) |
| | | @PutMapping |
| | | public AjaxResult edit(@RequestBody TaskUpdateVO updateVO) { |
| | | @PutMapping("/admin") |
| | | public AjaxResult adminEdit(@RequestBody TaskUpdateVO updateVO) { |
| | | return toAjax(sysTaskService.updateSysTask(updateVO)); |
| | | } |
| | | |
| | | /** |
| | | * 删除任务管理 |
| | | * 修改任务(APP端) |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('task:general:remove')") |
| | | @Log(title = "任务管理", businessType = BusinessType.DELETE) |
| | | @Log(title = "任务修改", businessType = BusinessType.UPDATE) |
| | | @PutMapping |
| | | public AjaxResult appEdit(@RequestBody TaskUpdateVO updateVO) { |
| | | return toAjax(sysTaskService.updateSysTask(updateVO)); |
| | | } |
| | | |
| | | /** |
| | | * 删除任务(APP端) |
| | | */ |
| | | @Log(title = "任务删除", businessType = BusinessType.DELETE) |
| | | @DeleteMapping("/{taskIds}") |
| | | public AjaxResult remove(@PathVariable Long[] taskIds) { |
| | | public AjaxResult appRemove(@PathVariable Long[] taskIds) { |
| | | return toAjax(sysTaskService.deleteSysTaskByTaskIds(taskIds)); |
| | | } |
| | | |
| | | /** |
| | | * 分配任务 |
| | | * 删除任务(后台管理端) |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('task:general:assign')") |
| | | @PreAuthorize("@ss.hasPermi('task:general:remove')") |
| | | @Log(title = "任务管理", businessType = BusinessType.DELETE) |
| | | @DeleteMapping("/admin/{taskIds}") |
| | | public AjaxResult adminRemove(@PathVariable Long[] taskIds) { |
| | | return toAjax(sysTaskService.deleteSysTaskByTaskIds(taskIds)); |
| | | } |
| | | |
| | | /** |
| | | * 分配任务(后台管理端) |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('task:general:edit')") |
| | | @Log(title = "任务分配", businessType = BusinessType.UPDATE) |
| | | @PutMapping("/{taskId}/assign") |
| | | public AjaxResult assignTask(@PathVariable Long taskId, @RequestBody AssignTaskRequest request) { |
| | | @PutMapping("/admin/{taskId}/assign") |
| | | public AjaxResult adminAssignTask(@PathVariable Long taskId, @RequestBody AssignTaskRequest request) { |
| | | return toAjax(sysTaskService.assignTask(taskId, request.getAssigneeId(), request.getRemark())); |
| | | } |
| | | |
| | | /** |
| | | * 更新任务状态 |
| | | * 分配任务(APP端) |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('task:general:status')") |
| | | @Log(title = "任务分配", businessType = BusinessType.UPDATE) |
| | | @PutMapping("/{taskId}/assign") |
| | | public AjaxResult appAssignTask(@PathVariable Long taskId, @RequestBody AssignTaskRequest request) { |
| | | return toAjax(sysTaskService.assignTask(taskId, request.getAssigneeId(), request.getRemark())); |
| | | } |
| | | |
| | | /** |
| | | * 更新任务状态(后台管理端) |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('task:general:edit')") |
| | | @Log(title = "任务状态变更", businessType = BusinessType.UPDATE) |
| | | @PutMapping("/admin/{taskId}/status") |
| | | public AjaxResult adminChangeTaskStatus(@PathVariable Long taskId, @RequestBody ChangeStatusRequest request) { |
| | | TaskStatus newStatus = TaskStatus.getByCode(request.getTaskStatus()); |
| | | if (newStatus == null) { |
| | | return error("无效的任务状态"); |
| | | } |
| | | return toAjax(sysTaskService.changeTaskStatus(taskId, newStatus, request.getRemark())); |
| | | } |
| | | |
| | | /** |
| | | * 更新任务状态(APP端) |
| | | * 支持GPS位置信息上报 |
| | | */ |
| | | @Log(title = "任务状态变更", businessType = BusinessType.UPDATE) |
| | | @PutMapping("/{taskId}/status") |
| | | public AjaxResult changeTaskStatus(@PathVariable Long taskId, @RequestBody ChangeStatusRequest request) { |
| | | public AjaxResult appChangeTaskStatus(@PathVariable Long taskId, @RequestBody ChangeStatusRequest request) { |
| | | TaskStatus newStatus = TaskStatus.getByCode(request.getTaskStatus()); |
| | | if (newStatus == null) { |
| | | return error("无效的任务状态"); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 查询任务统计信息 |
| | | * 查询任务统计信息(APP端) |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('task:general:query')") |
| | | @GetMapping("/statistics") |
| | | public AjaxResult getStatistics() { |
| | | TaskStatisticsVO statistics = sysTaskService.getTaskStatistics(); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 查询超时任务列表 |
| | | * 查询任务统计信息(后台管理端) |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('task:general:query')") |
| | | @GetMapping("/admin/statistics") |
| | | public AjaxResult adminGetStatistics() { |
| | | TaskStatisticsVO statistics = sysTaskService.getTaskStatistics(); |
| | | return success(statistics); |
| | | } |
| | | |
| | | /** |
| | | * 查询超时任务列表(APP端) |
| | | */ |
| | | @GetMapping("/overdue") |
| | | public AjaxResult getOverdueTasks() { |
| | | List<SysTask> list = sysTaskService.selectOverdueTasks(); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 查询我的任务列表 |
| | | * 查询超时任务列表(后台管理端) |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('task:general:query')") |
| | | @GetMapping("/admin/overdue") |
| | | public AjaxResult adminGetOverdueTasks() { |
| | | List<SysTask> list = sysTaskService.selectOverdueTasks(); |
| | | return success(list); |
| | | } |
| | | |
| | | /** |
| | | * 查询我的任务列表(APP端) |
| | | */ |
| | | @GetMapping("/my") |
| | | public AjaxResult getMyTasks() { |
| | | List<SysTask> list = sysTaskService.selectMyTasks(getUserId()); |