wlzboy
4 天以前 c098f1e3a3e052aa3d65584aae6dc003a70d75ad
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTaskService.java
@@ -1,15 +1,14 @@
package com.ruoyi.system.service;
import java.util.Date;
import java.util.List;
import com.ruoyi.system.domain.vo.*;
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;
/**
@@ -19,7 +18,8 @@
 * @date 2024-01-15
 */
public interface ISysTaskService {
    public Boolean dispatchSyncEvent(Long taskId);
    /**
     * 查询任务管理
     * 
@@ -37,6 +37,15 @@
    public List<SysTask> selectSysTaskList(TaskQueryVO queryVO);
    /**
     * 根据任务编号、调度单编号或服务单编号查询任务列表
     *
     * @param queryVO 任务查询对象
     * @param taskCode 任务编号
     * @return 任务管理集合
     */
    public List<SysTask> selectSysTaskListByMultiCode(TaskQueryVO queryVO, String taskCode);
    /**
     * 新增任务管理
     * 
     * @param createVO 任务创建对象
@@ -45,12 +54,39 @@
    public int insertSysTask(TaskCreateVO createVO);
    /**
     * 新增任务管理(允许从外部传入用户信息、部门信息和时间信息)
     *
     * @param createVO 任务创建对象
     * @param userId 用户ID
     * @param deptId 部门ID
     * @param createTime 创建时间
     * @param updateTime 更新时间
     * @return 结果
     */
    public int insertTask(TaskCreateVO createVO,String serviceOrderId,String dispatchOrderId, String serviceOrdNo, Long userId,String userName, Long deptId, Date createTime, Date updateTime);
    /**
     * 修改任务管理
     * 
     * @param updateVO 任务更新对象
     * @return 结果
     */
    public int updateSysTask(TaskUpdateVO updateVO);
    public int updateSysTask(TaskUpdateVO updateVO,Boolean updateFromLegacy);
    /**
     * 修改任务管理(允许从外部传入用户信息、部门信息和时间信息) 用于从旧系统中同步过来
     * @param updateVO
     * @param serviceOrderId
     * @param dispatchOrderId
     * @param serviceOrdNo
     * @param userId
     * @param userName
     * @param deptId
     * @param createTime
     * @param updateTime
     * @return
     */
    public int updateTask(TaskUpdateVO updateVO, String serviceOrderId, String dispatchOrderId, String serviceOrdNo, Long userId, String userName, Long deptId, Date createTime, Date updateTime);
    /**
     * 批量删除任务管理
@@ -96,9 +132,21 @@
     * 
     * @param taskId 任务ID
     * @param file 文件
     * @param category 附件分类
     * @return 结果
     */
    public int uploadAttachment(Long taskId, MultipartFile file);
    public Long uploadAttachment(Long taskId, MultipartFile file, String category);
    /**
     * 从微信mediaId上传任务附件
     *
     * @param taskId 任务ID
     * @param accessToken 微信AccessToken
     * @param mediaId 微信mediaId
     * @param category 附件分类
     * @return
     */
    public Long uploadAttachmentFromWechat(Long taskId, String accessToken, String mediaId, String category);
    /**
     * 删除任务附件
@@ -107,7 +155,17 @@
     * @return 结果
     */
    public int deleteAttachment(Long attachmentId);
    /**
     * 根据ID获取附件详情
     *
     * @param attachmentId 附件ID
     * @return 附件详情
     */
    public SysTaskAttachment getAttachmentById(Long attachmentId);
    public List<SysTaskAttachment> getAttachmentsByTaskId(Long taskId);
    /**
     * 分配车辆给任务
     * 
@@ -116,7 +174,7 @@
     * @param remark 备注
     * @return 结果
     */
    public int assignVehicleToTask(Long taskId, Long vehicleId, String remark);
    public int assignVehicleToTask(Long taskId, Long vehicleId, String remark,Long userId,String userName);
    /**
     * 取消任务车辆分配
@@ -135,7 +193,7 @@
     * @param remark 备注
     * @return 结果
     */
    public int assignMultipleVehiclesToTask(Long taskId, List<Long> vehicleIds, String remark);
    public int assignMultipleVehiclesToTask(Long taskId, List<Long> vehicleIds, String remark,Long userId,String userName);
    /**
     * 查询任务关联的车辆
@@ -183,4 +241,75 @@
     * @return 任务详情
     */
    public SysTask getTaskDetail(Long taskId);
    /**
     * 检查车辆是否有正在进行中的任务
     * 正在进行中的任务是指状态不为:PENDING(待处理)、COMPLETED(已完成)、CANCELLED(已取消)的任务
     *
     * @param vehicleId 车辆ID
     * @return 正在进行中的任务列表
     */
    public List<SysTask> checkVehicleActiveTasks(Long vehicleId);
    /**
     * 检查任务是否已关联旧系统服务单ID
     *
     * @param taskId 任务ID
     * @return true-已关联,false-未关联
     */
    public boolean hasLegacyServiceOrdId(Long taskId);
    /**
     * 检查任务是否已关联旧系统调度单ID
     *
     * @param taskId 任务ID
     * @return true-已关联,false-未关联
     */
    public boolean hasLegacyDispatchOrdId(Long taskId);
    /**
     * 根据旧系统服务单ID检查是否存在任务
     *
     * @param legacyServiceOrdId 旧系统服务单ID
     * @return true-存在,false-不存在
     */
    public boolean existsByLegacyServiceOrdId(Long legacyServiceOrdId);
    /**
     * 根据旧系统调度单ID检查是否存在任务
     *
     * @param legacyDispatchOrdId 旧系统调度单ID
     * @return true-存在,false-不存在
     */
    public boolean existsByLegacyDispatchOrdId(Long legacyDispatchOrdId);
    /**
     * 检查任务是否可以出发
     * 检查:
     * 1. 车辆是否有未完成的任务
     * 2. 执行人员是否有未完成的任务
     *
     * @param taskId 任务ID
     * @return AjaxResult 校验结果,包含 valid 和 conflicts 信息
     */
    public com.ruoyi.common.core.domain.AjaxResult checkTaskCanDepart(Long taskId);
    /**
     * 执行人点击就绪
     *
     * @param taskId 任务ID
     * @param userId 用户ID
     * @return 结果
     */
    public com.ruoyi.common.core.domain.AjaxResult setAssigneeReady(Long taskId, Long userId);
    /**
     * 取消执行人就绪
     *
     * @param taskId 任务ID
     * @param userId 用户ID
     * @return 结果
     */
    public com.ruoyi.common.core.domain.AjaxResult cancelAssigneeReady(Long taskId, Long userId);
}