puzhibing
4 天以前 a7d9fba4c1d0b021e017abd70d1b37ba87ebae1e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package com.ruoyi.other.service;
 
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.account.api.model.TVinManagement;
import com.ruoyi.other.api.domain.TFleet;
import com.ruoyi.other.api.dto.FleetExportDTO;
import com.ruoyi.other.api.dto.FleetImportDTO;
import com.ruoyi.other.api.dto.FleetQueryDTO;
 
import java.util.List;
 
/**
 * <p>
 * 车队管理 服务类
 * </p>
 *
 * @author mxcd
 * @since 2026-09-22
 */
public interface TFleetService extends IService<TFleet> {
 
    /**
     * 批量导入车队(Excel 解析结果),校验并入库
     *
     * @param items Excel 解析出的车队数据
     * @return 导入结果提示
     */
    String importFleets(List<FleetImportDTO> items);
 
    /**
     * 按条件查询车队导出列表(含公司名称回填)
     *
     * @param query 导出查询条件
     * @return 导出数据
     */
    List<FleetExportDTO> selectExportList(FleetQueryDTO query);
 
    /**
     * 分页查询车队下的VIN码车辆(远程调用VIN管理服务,含VIN码、车牌号、手机号、初始分配额度、启用状态)
     *
     * @param fleetId 车队ID
     * @param current 当前页码
     * @param size    每页数量
     * @return VIN码车辆分页数据
     */
    Page<TVinManagement> selectVinPage(Integer fleetId, Integer current, Integer size);
 
    /**
     * 填充车队列表聚合字段(VIN车辆数、可充电站数、累计充电量/电费/服务费),
     * 供车队管理分页列表与导出列表共用,任一远程调用异常时该字段为 0(不阻塞整体加载)。
     *
     * @param fleets 车队记录列表(原地修改)
     */
    void fillAggregates(List<TFleet> fleets);
 
    /**
     * 删除车队(先远程解绑该车队下的 VIN码/充电卡/白名单车队归属,解绑成功后再删除车队)。
     * 解绑失败时抛出异常并中止删除,车队与绑定关系均保持一致。
     *
     * @param ids 车队ID列表(自动去重、过滤空值)
     * @return 是否删除成功
     */
    boolean deleteFleets(List<Integer> ids);
 
}