| | |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.system.mapper.SysTaskVehicleMapper; |
| | | import com.ruoyi.system.mapper.SysTaskMapper; |
| | | import com.ruoyi.system.mapper.VehicleInfoMapper; |
| | | import com.ruoyi.system.domain.SysTask; |
| | | import com.ruoyi.system.domain.SysTaskVehicle; |
| | | import com.ruoyi.system.domain.VehicleInfo; |
| | | import com.ruoyi.system.service.ISysTaskVehicleService; |
| | |
| | | |
| | | @Autowired |
| | | private VehicleInfoMapper vehicleInfoMapper; |
| | | |
| | | @Autowired |
| | | private SysTaskMapper sysTaskMapper; |
| | | |
| | | /** |
| | | * 查询任务车辆关联 |
| | |
| | | taskVehicle.setUpdateTime(DateUtils.getNowDate()); |
| | | return sysTaskVehicleMapper.updateSysTaskVehicle(taskVehicle); |
| | | } |
| | | |
| | | /** |
| | | * 批量获取车辆当前任务状态 |
| | | * |
| | | * @param vehicleIds 车辆ID列表 |
| | | * @return Map<车辆ID, Map<"taskCode": 任务编号, "taskStatus": 任务状态>> |
| | | */ |
| | | @Override |
| | | public Map<Long, Map<String, Object>> batchGetVehicleCurrentTaskStatus(List<Long> vehicleIds) { |
| | | Map<Long, Map<String, Object>> resultMap = new HashMap<>(); |
| | | |
| | | if (vehicleIds == null || vehicleIds.isEmpty()) { |
| | | return resultMap; |
| | | } |
| | | |
| | | try { |
| | | // 对每个车辆查询其当前正在进行的任务 |
| | | for (Long vehicleId : vehicleIds) { |
| | | if (vehicleId == null) { |
| | | continue; |
| | | } |
| | | |
| | | // 查询车辆的活跃任务(未完成、未取消的任务) |
| | | List<SysTask> activeTasks = sysTaskMapper.selectActiveTasksByVehicleId(vehicleId); |
| | | |
| | | if (activeTasks != null && !activeTasks.isEmpty()) { |
| | | // 取第一个活跃任务(最新的) |
| | | SysTask currentTask = activeTasks.get(0); |
| | | |
| | | Map<String, Object> taskInfo = new HashMap<>(); |
| | | taskInfo.put("taskCode", currentTask.getTaskCode()); |
| | | taskInfo.put("taskStatus", currentTask.getTaskStatus()); |
| | | taskInfo.put("taskId", currentTask.getTaskId()); |
| | | |
| | | resultMap.put(vehicleId, taskInfo); |
| | | } else { |
| | | // 没有活跃任务 |
| | | resultMap.put(vehicleId, null); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | logger.error("批量查询车辆任务状态失败", e); |
| | | } |
| | | |
| | | return resultMap; |
| | | } |
| | | |
| | | /** |
| | | * 更新任务车辆关联状态(新方法) |
| | | * |
| | | * @param id 关联ID |
| | | * @param status 新状态 |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | @Transactional |
| | | public int updateSysTaskVehicleStatus(Long id, String status) { |
| | | return updateTaskVehicleStatus(id, status); |
| | | } |
| | | } |