wlzboy
2026-03-19 c5ac97682e3b4ca748541ace97cb37a2295bd81e
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTaskService.java
@@ -18,7 +18,16 @@
 * @date 2024-01-15
 */
public interface ISysTaskService {
    public Boolean dispatchSyncEvent(Long taskId);
    /**
     * 判断任务是否总部推送
     * @param taskCreatorId
     * @param taskDeptId
     * @return
     */
    public Boolean isTaskHeaderPush(Long taskCreatorId,Long taskDeptId);
    /**
     * 查询任务管理
     * 
@@ -36,24 +45,43 @@
    public List<SysTask> selectSysTaskList(TaskQueryVO queryVO);
    /**
     * 根据任务编号、调度单编号或服务单编号查询任务列表
     *
     * @param queryVO 任务查询对象
     * @param taskCode 任务编号
     * @return 任务管理集合
     */
    public List<SysTask> selectSysTaskListByMultiCode(TaskQueryVO queryVO, String taskCode);
    /**
     * 新增任务管理
     * 
     * @param createVO 任务创建对象
     * @return 结果
     */
    public int insertSysTask(TaskCreateVO createVO);
    /**
     * 新增任务
     *
     * @param createVO 任务创建信息
     * @return 任务ID
     */
    public Long insertSysTask(TaskCreateVO createVO);
    /**
     * 新增任务管理(允许从外部传入用户信息、部门信息和时间信息)
     * 
     * @param createVO 任务创建对象
     * @param serviceOrderId 服务单ID
     * @param dispatchOrderId 调度单ID
     * @param serviceOrdNo 服务单编号
     * @param userId 用户ID
     * @param userName 用户名称
     * @param deptId 部门ID
     * @param createTime 创建时间
     * @param updateTime 更新时间
     * @return 结果
     * @return 任务ID
     */
    public int insertTask(TaskCreateVO createVO,String serviceOrderId,String dispatchOrderId, String serviceOrdNo, Long userId,String userName, Long deptId, Date createTime, Date updateTime);
    public Long insertTask(TaskCreateVO createVO,Long serviceOrderId,Long dispatchOrderId, String serviceOrdNo, Long userId,String userName, Long deptId, Date createTime, Date updateTime);
    /**
     * 修改任务管理
@@ -76,7 +104,7 @@
     * @param updateTime
     * @return
     */
    public int updateTask(TaskUpdateVO updateVO, String serviceOrderId, String dispatchOrderId, String serviceOrdNo, Long userId, String userName, Long deptId, Date createTime, Date updateTime);
    public int updateTask(TaskUpdateVO updateVO, Long serviceOrderId, Long dispatchOrderId, String serviceOrdNo, Long userId, String userName, Long deptId, Date createTime, Date updateTime);
    /**
     * 批量删除任务管理
@@ -107,6 +135,14 @@
    public int changeTaskStatus(Long taskId, TaskStatus newStatus, String remark);
    /**
     * 强制完成任务(指定实际开始时间和结束时间)
     *
     * @param task 任务信息(包含taskId、taskStatus、actualStartTime、actualEndTime、remark)
     * @return 结果
     */
    public int forceCompleteTask(SysTask task);
    /**
     * 变更任务状态(含GPS位置信息)
     * 
     * @param taskId 任务ID
@@ -117,6 +153,23 @@
     */
    public int changeTaskStatusWithLocation(Long taskId, TaskStatus newStatus, String remark, SysTaskLog locationLog);
    /**
     * 保存任务取消信息(仅限转运任务)
     *
     * @param taskId 任务ID
     * @param cancelReason 取消原因(数据字典task_cancel_reason的value)
     * @return 结果
     */
    public int saveCancelInfo(Long taskId, String cancelReason);
    /**
     * 保存任务取消信息(含取消人)
     * @param taskId
     * @param cancelReason
     * @param cancelBy
     * @return
     */
    public int saveCancel(Long taskId, String cancelReason,String cancelBy,Date cancelTime);
    /**
     * 上传任务附件
     * 
@@ -273,4 +326,42 @@
     */
    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);
    /**
     * 检查任务是否重复(根据联系人电话和创建日期)
     *
     * @param phone 联系人电话
     * @param createDate 任务创建日期(格式:YYYY-MM-DD)
     * @return true-存在重复,false-不重复
     */
    public boolean checkTaskDuplicate(String phone, String createDate);
}