package com.ruoyi.system.service.impl; import com.ruoyi.common.annotation.DataSource; import com.ruoyi.common.enums.DataSourceType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.system.domain.VehicleSyncDTO; import com.ruoyi.system.mapper.VehicleSyncMapper; import com.ruoyi.system.service.IVehicleSyncDataService; import java.util.List; /** * SQL Server 车辆数据查询服务实现 * * 职责:专门负责从 SQL Server 查询车辆数据 * * 数据流向:SQL Server → 返回 DTO 列表 * * @author ruoyi * @date 2025-10-20 */ @Service @DataSource(DataSourceType.SQLSERVER) public class VehicleSyncDataServiceImpl implements IVehicleSyncDataService { private static final Logger log = LoggerFactory.getLogger(VehicleSyncDataServiceImpl.class); @Autowired private VehicleSyncMapper vehicleSyncMapper; /** * 从 SQL Server 查询所有正常状态的车辆数据 * * 注意:VehicleSyncMapper 上有 @DataSource(DataSourceType.SQLSERVER) 注解 * 此方法会自动切换到 SQL Server 数据源执行查询 * * @return 车辆列表 */ @Override public List getVehiclesFromSqlServer() { try { log.info("开始从 SQL Server 查询车辆数据..."); // 调用 Mapper 查询 SQL Server 数据 // @DataSource 注解会自动切换数据源 List vehicles = vehicleSyncMapper.selectVehiclesFromSqlServer(); if (vehicles == null || vehicles.isEmpty()) { log.warn("未从 SQL Server 查询到车辆数据"); return vehicles; } log.info("从 SQL Server 查询到 {} 条车辆数据", vehicles.size()); return vehicles; } catch (Exception e) { log.error("从 SQL Server 查询车辆数据失败", e); throw new RuntimeException("查询 SQL Server 车辆数据失败: " + e.getMessage(), e); } } }