车型管理模块开发设计文档

版本:V1.0.0
模块:DMS-LMS主数据管理-车型管理


一、模块概述

1.1 模块说明

车型管理用于维护运输系统中的车型基础数据,作为运输系统的核心主数据之一,为以下业务提供数据支持:

  • 运输资源匹配
  • 装载容量校验
  • 运费计算
  • 路由规划

该模块属于主数据管理模块:

  • 仅支持逻辑控制
  • 不允许物理删除
  • 支持启用 / 禁用控制
  • 支持按状态查询

二、数据库表结构设计

2.1 表名

dms_vehicle_type

2.2 表结构

CREATE TABLE dms_vehicle_type (
    vehicle_type_id         BIGINT               NOT NULL COMMENT '车型主键ID',
    vehicle_type_name       VARCHAR(100)         NOT NULL COMMENT '车型名称',
    vehicle_type_code       VARCHAR(64)          NULL COMMENT '车型代码',
    vehicle_type_status     TINYINT              DEFAULT 1 NOT NULL COMMENT '车型状态 0-禁用 1-启用',
    vehicle_size            DECIMAL(10, 2)       NOT NULL COMMENT '车型尺寸',
    vehicle_size_unit       TINYINT              DEFAULT 1 NOT NULL COMMENT '车型尺寸单位(1-FT)',
    vehicle_max_weight      DECIMAL(10, 2)       NOT NULL COMMENT '车型最大重量',
    vehicle_max_weight_unit TINYINT              DEFAULT 1 NOT NULL COMMENT '车型限重单位(1-LB)',
    vehicle_volume          INT                  NOT NULL COMMENT '装载体积',
    vehicle_volume_unit     TINYINT              DEFAULT 1 NOT NULL COMMENT '装载体积单位(1-FT3)',
    remark                  VARCHAR(256)         DEFAULT '' COMMENT '备注',
    over_flag               TINYINT              NOT NULL DEFAULT '0' COMMENT '完结标识 0-未完结,1-已完结',
    create_user             BIGINT               NOT NULL COMMENT '创建人',
    create_time             DATETIME             NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    update_user             BIGINT               DEFAULT NULL COMMENT '更新人',
    update_time             DATETIME             NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    PRIMARY KEY (vehicle_type_id),
    KEY idx_vehicle_type_name (vehicle_type_name),
    KEY idx_create_time (create_time),
    KEY idx_update_time (update_time)
) ENGINE = INNODB
  DEFAULT CHARSET = utf8mb4 COMMENT = '车型表';

三、实体对象设计

3.1 BasePo(公共基础实体)

@Data
public class BasePo implements Serializable {

    private Long createUser;

    private LocalDateTime createTime;

    private Long updateUser;

    private LocalDateTime updateTime;
}

3.2 车型实体对象

@Data
@TableName("dms_vehicle_type")
public class DmsVehicleType extends BasePo {

    @TableId
    private Long vehicleTypeId;

    private String vehicleTypeName;

    private String vehicleTypeCode;

    /**
     * 0-禁用 1-启用
     */
    private Integer vehicleTypeStatus;

    private BigDecimal vehicleSize;

    /**
     * 1-FT
     */
    private Integer vehicleSizeUnit;

    private BigDecimal vehicleMaxWeight;

    /**
     * 1-LB
     */
    private Integer vehicleMaxWeightUnit;

    private Integer vehicleVolume;

    /**
     * 1-FT3
     */
    private Integer vehicleVolumeUnit;

    private String remark;

    /**
     * 0-未完结 1-已完结
     */
    private Integer overFlag;
}

四、对象JSON结构设计

4.1 单对象示例

{
  "vehicleTypeId": 10001,
  "vehicleTypeName": "轻型厢式货车",
  "vehicleTypeCode": "VAN-10FT",
  "vehicleTypeStatus": 1,
  "vehicleSize": 10.00,
  "vehicleSizeUnit": 1,
  "vehicleMaxWeight": 5000.00,
  "vehicleMaxWeightUnit": 1,
  "vehicleVolume": 550,
  "vehicleVolumeUnit": 1,
  "remark": "标准轻型车型",
  "overFlag": 0,
  "createUser": 1,
  "createTime": "2026-03-01T09:45:00",
  "updateUser": 1,
  "updateTime": "2026-03-01T09:45:00"
}

4.2 列表对象示例

[
  {
    "vehicleTypeId": 10001,
    "vehicleTypeName": "轻型厢式货车",
    "vehicleTypeCode": "VAN-10FT",
    "vehicleTypeStatus": 1,
    "vehicleSize": 10.00,
    "vehicleSizeUnit": 1,
    "vehicleMaxWeight": 5000.00,
    "vehicleMaxWeightUnit": 1,
    "vehicleVolume": 550,
    "vehicleVolumeUnit": 1,
    "remark": "标准轻型车型",
    "overFlag": 0,
    "createUser": 1,
    "createTime": "2026-03-01T09:45:00",
    "updateUser": 1,
    "updateTime": "2026-03-01T09:45:00"
  }
]

五、业务规则设计

  1. 车型名称不能为空
  2. 车型尺寸必须大于 0
  3. 最大重量必须大于 0
  4. 装载体积必须大于 0
  5. 默认状态为启用(1)
  6. 不允许物理删除,仅允许修改状态为禁用
  7. 更新时间由数据库自动维护

六、Feign接口设计

@FeignClient(
        value = AppConstant.APPLICATION_DMS_LMS_SERVICE_NAME,
        fallback = DmsVehicleTypeClientFallback.class
)
public interface IDmsVehicleTypeClient {

    String API_PREFIX = "/feign/client/vehicleType";

    /**
     * 获取车辆信息列表
     * @param status 状态 0:禁用 1:启用
     */
    @PostMapping(API_PREFIX + "/getVehicleTypes")
    R<List<DmsVehicleTypeVO>> getVehicleTypes(@RequestParam(required = false) Integer status);

    /**
     * 根据主键ID查询车型
     */
    @GetMapping(API_PREFIX + "/getVehicleTypeById")
    R<DmsVehicleTypeVO> getByVehicleTypesId(@RequestParam("id") Long id);

    /**
     * 根据车型编码查询
     */
    @GetMapping(API_PREFIX + "/getByVehicleTypeCode")
    R<DmsVehicleTypeVO> getByVehicleTypesCode(@RequestParam("code") String code);

    /**
     * 批量根据ID查询车型
     */
    @PostMapping(API_PREFIX + "/getVehicleTypesByIds")
    R<List<DmsVehicleTypeVO>> getVehicleTypesByIds(@RequestBody List<Long> ids);
}

作者:陆飞  创建时间:2026-03-02 13:16
最后编辑:陆飞  更新时间:2026-03-03 10:08