package com.ruoyi.system.service; import java.util.List; import org.springframework.web.multipart.MultipartFile; import com.ruoyi.system.domain.SysTask; import com.ruoyi.system.domain.SysTaskVehicle; import com.ruoyi.system.domain.SysTaskAttachment; 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; /** * 任务管理Service接口 * * @author ruoyi * @date 2024-01-15 */ public interface ISysTaskService { /** * 查询任务管理 * * @param taskId 任务管理主键 * @return 任务管理 */ public SysTask selectSysTaskByTaskId(Long taskId); /** * 查询任务管理列表 * * @param queryVO 任务查询对象 * @return 任务管理集合 */ public List selectSysTaskList(TaskQueryVO queryVO); /** * 新增任务管理 * * @param createVO 任务创建对象 * @return 结果 */ public int insertSysTask(TaskCreateVO createVO); /** * 修改任务管理 * * @param updateVO 任务更新对象 * @return 结果 */ public int updateSysTask(TaskUpdateVO updateVO); /** * 批量删除任务管理 * * @param taskIds 需要删除的任务管理主键集合 * @return 结果 */ public int deleteSysTaskByTaskIds(Long[] taskIds); /** * 分配任务 * * @param taskId 任务ID * @param assigneeId 执行人ID * @param remark 备注 * @return 结果 */ public int assignTask(Long taskId, Long assigneeId, String remark); /** * 变更任务状态 * * @param taskId 任务ID * @param newStatus 新状态 * @param remark 备注 * @return 结果 */ public int changeTaskStatus(Long taskId, TaskStatus newStatus, String remark); /** * 上传任务附件 * * @param taskId 任务ID * @param file 文件 * @return 结果 */ public int uploadAttachment(Long taskId, MultipartFile file); /** * 删除任务附件 * * @param attachmentId 附件ID * @return 结果 */ public int deleteAttachment(Long attachmentId); /** * 分配车辆给任务 * * @param taskId 任务ID * @param vehicleId 车辆ID * @param remark 备注 * @return 结果 */ public int assignVehicleToTask(Long taskId, Long vehicleId, String remark); /** * 取消任务车辆分配 * * @param taskId 任务ID * @param vehicleId 车辆ID * @return 结果 */ public int unassignVehicleFromTask(Long taskId, Long vehicleId); /** * 批量分配车辆给任务 * * @param taskId 任务ID * @param vehicleIds 车辆ID列表 * @param remark 备注 * @return 结果 */ public int assignMultipleVehiclesToTask(Long taskId, List vehicleIds, String remark); /** * 查询任务关联的车辆 * * @param taskId 任务ID * @return 任务车辆关联列表 */ public List getTaskVehicles(Long taskId); /** * 查询可用车辆 * * @param deptId 部门ID * @param taskType 任务类型 * @return 可用车辆列表 */ public List getAvailableVehicles(Long deptId, String taskType); /** * 查询任务统计信息 * * @return 任务统计信息 */ public TaskStatisticsVO getTaskStatistics(); /** * 查询超时任务列表 * * @return 超时任务列表 */ public List selectOverdueTasks(); /** * 查询我的任务列表 * * @param userId 用户ID * @return 我的任务列表 */ public List selectMyTasks(Long userId); /** * 获取任务详情(包含关联数据) * * @param taskId 任务ID * @return 任务详情 */ public SysTask getTaskDetail(Long taskId); }