车型管理模块开发设计文档
版本: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"
}
]
五、业务规则设计
- 车型名称不能为空
- 车型尺寸必须大于 0
- 最大重量必须大于 0
- 装载体积必须大于 0
- 默认状态为启用(1)
- 不允许物理删除,仅允许修改状态为禁用
- 更新时间由数据库自动维护
六、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
最后编辑:陆飞 更新时间:2026-03-03 10:08