| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | * @date 2024-01-15 |
| | | */ |
| | | public interface ISysTaskService { |
| | | |
| | | |
| | | public Boolean dispatchSyncEvent(Long taskId); |
| | | /** |
| | | * 查询任务管理 |
| | | * |
| | |
| | | public List<SysTask> selectSysTaskList(TaskQueryVO queryVO); |
| | | |
| | | /** |
| | | * 根据任务编号、调度单编号或服务单编号查询任务列表 |
| | | * |
| | | * @param queryVO 任务查询对象 |
| | | * @param taskCode 任务编号 |
| | | * @return 任务管理集合 |
| | | */ |
| | | public List<SysTask> selectSysTaskListByMultiCode(TaskQueryVO queryVO, String taskCode); |
| | | |
| | | /** |
| | | * 新增任务管理 |
| | | * |
| | | * @param createVO 任务创建对象 |
| | |
| | | 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); |
| | | |
| | | /** |
| | | * 批量删除任务管理 |
| | |
| | | * |
| | | * @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); |
| | | |
| | | /** |
| | | * 删除任务附件 |
| | |
| | | * @return 结果 |
| | | */ |
| | | public int deleteAttachment(Long attachmentId); |
| | | |
| | | /** |
| | | * 根据ID获取附件详情 |
| | | * |
| | | * @param attachmentId 附件ID |
| | | * @return 附件详情 |
| | | */ |
| | | public SysTaskAttachment getAttachmentById(Long attachmentId); |
| | | |
| | | |
| | | public List<SysTaskAttachment> getAttachmentsByTaskId(Long taskId); |
| | | /** |
| | | * 分配车辆给任务 |
| | | * |
| | |
| | | * @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); |
| | | |
| | | /** |
| | | * 取消任务车辆分配 |
| | |
| | | * @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); |
| | | |
| | | /** |
| | | * 查询任务关联的车辆 |
| | |
| | | * @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); |
| | | |
| | | } |