wlzboy
2025-10-26 2c86a8bd60deed0dd0e044bad6fb83f75d19a332
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTaskService.java
New file
@@ -0,0 +1,186 @@
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.SysTaskLog;
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<SysTask> 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);
    /**
     * 变更任务状态(含GPS位置信息)
     *
     * @param taskId 任务ID
     * @param newStatus 新状态
     * @param remark 备注
     * @param locationLog GPS位置信息日志对象
     * @return 结果
     */
    public int changeTaskStatusWithLocation(Long taskId, TaskStatus newStatus, String remark, SysTaskLog locationLog);
    /**
     * 上传任务附件
     *
     * @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<Long> vehicleIds, String remark);
    /**
     * 查询任务关联的车辆
     *
     * @param taskId 任务ID
     * @return 任务车辆关联列表
     */
    public List<SysTaskVehicle> getTaskVehicles(Long taskId);
    /**
     * 查询可用车辆
     *
     * @param deptId 部门ID
     * @param taskType 任务类型
     * @return 可用车辆列表
     */
    public List<SysTaskVehicle> getAvailableVehicles(Long deptId, String taskType);
    /**
     * 查询任务统计信息
     *
     * @return 任务统计信息
     */
    public TaskStatisticsVO getTaskStatistics();
    /**
     * 查询超时任务列表
     *
     * @return 超时任务列表
     */
    public List<SysTask> selectOverdueTasks();
    /**
     * 查询我的任务列表
     *
     * @param userId 用户ID
     * @return 我的任务列表
     */
    public List<SysTask> selectMyTasks(Long userId);
    /**
     * 获取任务详情(包含关联数据)
     *
     * @param taskId 任务ID
     * @return 任务详情
     */
    public SysTask getTaskDetail(Long taskId);
}