| | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | | import com.ruoyi.common.annotation.Anonymous; |
| | | import com.ruoyi.system.domain.SysTaskEmergency; |
| | | import com.ruoyi.system.service.*; |
| | | import org.springframework.beans.factory.annotation.Qualifier; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | |
| | | |
| | | @Autowired |
| | | private ISysTaskService sysTaskService; |
| | | |
| | | @Autowired |
| | | private ISysTaskEmergencyService sysTaskEmergencyService; |
| | | |
| | | @Autowired |
| | | private IVehicleInfoService vehicleInfoService; |
| | |
| | | @GetMapping("/admin/list") |
| | | public TableDataInfo adminList(TaskQueryVO queryVO) { |
| | | startPage(); |
| | | List<SysTask> list = sysTaskService.selectSysTaskList(queryVO); |
| | | // Handle multi-field task code search |
| | | String searchTaskCode = queryVO.getTaskCode(); |
| | | List<SysTask> list; |
| | | if(searchTaskCode != null && !searchTaskCode.trim().isEmpty()){ |
| | | // Search across task_code, emergency_info.dispatch_code, and emergency_info.service_code |
| | | list = sysTaskService.selectSysTaskListByMultiCode(queryVO, searchTaskCode); |
| | | } else { |
| | | queryVO.setTaskCode(null); |
| | | list = sysTaskService.selectSysTaskList(queryVO); |
| | | } |
| | | |
| | | |
| | | return getDataTable(list); |
| | | } |
| | | |
| | |
| | | return toAjax(sysTaskService.insertSysTask(createVO)); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 新增任务(APP端) |
| | | */ |
| | |
| | | TaskStatus newStatus = TaskStatus.getByCode(request.getTaskStatus()); |
| | | if (newStatus == null) { |
| | | return error("无效的任务状态"); |
| | | } |
| | | |
| | | // 如果是取消状态,保存取消原因 |
| | | if (newStatus == TaskStatus.CANCELLED && StringUtils.isNotEmpty(request.getCancelReason())) { |
| | | sysTaskService.saveCancelInfo(taskId, request.getCancelReason()); |
| | | } |
| | | |
| | | // 如果包含GPS位置信息,使用带位置的方法 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 执行人点击就绪(APP端) |
| | | */ |
| | | @PostMapping("/{taskId}/assignee/ready") |
| | | public AjaxResult setAssigneeReady(@PathVariable Long taskId) { |
| | | Long userId = getUserId(); |
| | | return sysTaskService.setAssigneeReady(taskId, userId); |
| | | } |
| | | |
| | | /** |
| | | * 执行人取消就绪(APP端) |
| | | */ |
| | | @PostMapping("/{taskId}/assignee/cancel-ready") |
| | | public AjaxResult cancelAssigneeReady(@PathVariable Long taskId) { |
| | | Long userId = getUserId(); |
| | | return sysTaskService.cancelAssigneeReady(taskId, userId); |
| | | } |
| | | |
| | | /** |
| | | * 分配任务请求对象 |
| | | */ |
| | | public static class AssignTaskRequest { |
| | |
| | | private Double altitude; |
| | | private Double speed; |
| | | private Double heading; |
| | | |
| | | // 取消相关字段 |
| | | private String cancelReason; // 取消原因(关联数据字典task_cancel_reason) |
| | | |
| | | public String getTaskStatus() { |
| | | return taskStatus; |
| | |
| | | public void setHeading(Double heading) { |
| | | this.heading = heading; |
| | | } |
| | | |
| | | public String getCancelReason() { |
| | | return cancelReason; |
| | | } |
| | | |
| | | public void setCancelReason(String cancelReason) { |
| | | this.cancelReason = cancelReason; |
| | | } |
| | | } |
| | | } |