package com.ruoyi.system.service; import com.ruoyi.system.domain.SysTaskVehicle; import java.util.Date; import java.util.List; import java.util.Map; /** * 任务车辆服务接口 * * @author ruoyi */ public interface ISysTaskVehicleService { /** * 查询任务车辆关联列表 * * @param sysTaskVehicle 任务车辆关联 * @return 任务车辆关联集合 */ List selectSysTaskVehicleList(SysTaskVehicle sysTaskVehicle); /** * 查询任务车辆关联信息 * * @param id 任务车辆关联主键 * @return 任务车辆关联信息 */ SysTaskVehicle selectSysTaskVehicleById(Long id); /** * 根据任务ID查询关联车辆列表 * * @param taskId 任务ID * @return 任务车辆关联集合 */ List selectSysTaskVehicleByTaskId(Long taskId); /** * 新增任务车辆关联 * * @param sysTaskVehicle 任务车辆关联 * @return 结果 */ int insertSysTaskVehicle(SysTaskVehicle sysTaskVehicle); /** * 修改任务车辆关联 * * @param sysTaskVehicle 任务车辆关联 * @return 结果 */ int updateSysTaskVehicle(SysTaskVehicle sysTaskVehicle); /** * 删除任务车辆关联信息 * * @param id 任务车辆关联主键 * @return 结果 */ int deleteSysTaskVehicleById(Long id); /** * 批量删除任务车辆关联信息 * * @param ids 需要删除的主键集合 * @return 结果 */ int deleteSysTaskVehicleByIds(Long[] ids); /** * 更新任务车辆关联状态 * * @param id 任务车辆关联主键 * @param status 状态 * @return 结果 */ int updateSysTaskVehicleStatus(Long id, String status); /** * 批量获取车辆当前任务状态 * * @param vehicleIds 车辆ID列表 * @return 车辆任务状态映射 */ Map> batchGetVehicleCurrentTaskStatus(List vehicleIds); /** * 保存任务车辆关联 * * @param taskId 任务ID * @param vehicleIds 车辆ID列表 * @param userName 操作人用户名 */ void saveTaskVehicles(Long taskId, List vehicleIds, String userName); /** * 保存任务车辆关联(指定时间) * * @param taskId 任务ID * @param vehicleIds 车辆ID列表 * @param userName 操作人用户名 * @param assignTime 分配时间 * @param createTime 创建时间 * @param updateTime 更新时间 */ void saveTaskVehicles(Long taskId, List vehicleIds, String userName, Date assignTime, Date createTime, Date updateTime); /** * 更新任务车辆关联 * * @param taskId 任务ID * @param newVehicleIds 新的车辆ID列表 * @param userName 操作人用户名 * @return 是否有变更 */ boolean updateTaskVehicles(Long taskId, List newVehicleIds, String userName); /* * @param taskId 任务ID * @param vehicleId 车辆ID * @param remark 备注 * @param userId 操作人ID * @param userName 操作人用户名 * @return 结果 */ int assignVehicleToTask(Long taskId, Long vehicleId, String remark, Long userId, String userName); /** * 取消任务车辆分配 * * @param taskId 任务ID * @param vehicleId 车辆ID * @return 结果 */ int unassignVehicleFromTask(Long taskId, Long vehicleId); /** * 批量分配车辆给任务 * * @param taskId 任务ID * @param vehicleIds 车辆ID列表 * @param remark 备注 * @param userId 操作人ID * @param userName 操作人用户名 * @return 结果 */ int assignMultipleVehiclesToTask(Long taskId, List vehicleIds, String remark, Long userId, String userName); /** * 查询任务关联的车辆 * * @param taskId 任务ID * @return 任务车辆关联列表 */ List getTaskVehicles(Long taskId); /** * 查询可用车辆 * * @param deptId 部门ID * @param taskType 任务类型 * @return 可用车辆列表 */ List getAvailableVehicles(Long deptId, String taskType); /** * 删除任务的所有车辆关联 * * @param taskId 任务ID * @return 结果 */ int deleteTaskVehiclesByTaskId(Long taskId); /** * 检查车辆是否已分配给任务 * * @param taskId 任务ID * @param vehicleId 车辆ID * @return true-已分配,false-未分配 */ boolean checkVehicleAssigned(Long taskId, Long vehicleId); }