change(车辆生命周期): 完善领域对象及服务的注释

补充车辆生命周期相关DTO、Mapper和Service的详细注释,包括:
1. 各DTO字段的业务含义和使用场景
2. Mapper接口的查询逻辑和权限控制说明
3. Service层的校验流程和聚合查询策略
master
zch 1 week ago
parent dbb31a3aab
commit 33005c8bf9

@ -4,21 +4,44 @@ import java.io.Serializable;
import java.util.Date;
/**
*
* DTO
* <p>
* /Tab
* record_check
* </p>
*/
public class CarCheckLifecycleDTO implements Serializable
{
private static final long serialVersionUID = 1L;
/** 质检记录主键ID对应 record_check.id。 */
private Long id;
/** 轮胎RFID编码唯一标识一条轮胎实物。 */
private String tyreRfid;
/** 轮胎自编号(轮胎编号),业务展示用。 */
private String tyreNo;
/** 轮胎品牌,例如:米其林、普利司通等。 */
private String tyreBrand;
/** 轮胎规格型号例如295/80R22.5。 */
private String tyreModel;
/** 质检结果,例如:合格、不合格、建议更换等字典值。 */
private String result;
/** 质检时的维保类型/检测类型,例如:一级保养、二级保养、日常巡检。 */
private String maintenanceType;
/** 质检时记录的行驶里程(字符串形式保留原始录入值)。 */
private String mileage;
/** 质检时测量的花纹深度(毫米),用于评估轮胎磨损程度。 */
private String patternDepth;
/** 质检记录创建时间,即质检实际发生时间。 */
private Date createTime;
public Long getId()

@ -5,24 +5,36 @@ import java.util.ArrayList;
import java.util.List;
/**
*
* DTO
* <p>
*
* 线
*
* </p>
*/
public class CarLifecycleDTO implements Serializable
{
private static final long serialVersionUID = 1L;
/** 车辆主档概要,用于弹窗头部确认当前报表对象。 */
/** 车辆主档概要,用于弹窗头部确认当前报表对象。包含车牌号、所属车队、线路、车型及最近录入里程。 */
private CarLifecycleSummaryDTO car;
/** 当前装车轮胎快照,数量较少,随概要一次返回。 */
/** 当前装车轮胎快照,数量较少(通常不超过车辆轮位数),随概要一次返回用于首屏快速展示。 */
private List<CarMountedTyreDTO> mountedTyres = new ArrayList<>();
/** 最近事件时间线,用于快速定位最新装卸或维保动作。 */
/** 最近事件时间线,聚合装卸与维保两类关键事件,按时间倒序排列,用于快速定位最新动作。 */
private List<CarLifecycleEventDTO> recentEvents = new ArrayList<>();
/** 该车辆历史轮胎装卸记录总条数,用于前端分页组件初始化总页数。 */
private Integer installCount;
/** 该车辆关联维保工单总条数,用于前端分页组件初始化总页数。 */
private Integer maintenanceCount;
/** 该车辆关联轮胎质检记录总条数,用于前端分页组件初始化总页数。 */
private Integer checkCount;
/** 该车辆关联轮胎里程记录总条数,用于前端分页组件初始化总页数。 */
private Integer mileageCount;
public CarLifecycleSummaryDTO getCar()

@ -5,33 +5,81 @@ import java.math.BigDecimal;
import java.util.Date;
/**
*
* DTO
* <p>
* 线
* 便eventType
* INSTALL MAINTENANCE
* </p>
*/
public class CarLifecycleEventDTO implements Serializable
{
private static final long serialVersionUID = 1L;
/** 事件类型字典值区分数据来源。例如INSTALL轮胎装卸、MAINTENANCE维保工单。 */
private String eventType;
/** 事件发生时间,统一取各来源表中的操作/创建时间,用于时间轴排序。 */
private Date eventTime;
/** 轮胎RFID编码仅在事件类型为轮胎装卸时有效。 */
private String tyreRfid;
/** 轮胎编号,业务展示用。 */
private String tyreNo;
/** 轮胎自编号,与 tyreNo 区分,用于内部管理。 */
private String selfNo;
/** 轮胎品牌。 */
private String tyreBrand;
/** 轮胎规格型号。 */
private String tyreModel;
/** 轮位名称,例如:左前轮、右后第二轴等,仅在装卸事件中有效。 */
private String wheelPostion;
/** 事件关联的行驶里程(字符串形式,保留原始录入格式)。 */
private String mileage;
/** 事件关联的花纹深度(毫米),用于磨损评估。 */
private String patternDepth;
/** 状态字典值,例如:工单状态、轮胎状态等,视 eventType 而定。 */
private String status;
/** 工单编号,仅在事件类型为维保工单时有效。 */
private String orderNo;
/** 类型编码,例如:维保类型字典值、操作类型字典值。 */
private String typeCode;
/** 修理厂/工厂名称,仅在维保工单事件中有效。 */
private String factoryName;
/** 录入里程(数值型),维保工单或质检记录中由用户录入的当前总里程。 */
private BigDecimal inputMileage;
/** 上次里程(数值型),维保工单中记录的上一次保养时的里程。 */
private BigDecimal lastMileage;
/** 保养/维修日期,维保工单事件中的计划或实际执行日期。 */
private Date maintainDate;
/** 事件描述/故障描述,维保工单中的故障现象或备注信息。 */
private String description;
/** 质检结果,仅在轮胎质检相关事件中有效。 */
private String result;
/** 维保/检测类型字典值,例如:一级保养、二级保养、日常巡检。 */
private String maintenanceType;
/** 轮胎里程记录开始时间,仅在里程类事件中有效。 */
private Date startTime;
/** 轮胎里程记录结束时间,仅在里程类事件中有效。 */
private Date endTime;
public String getEventType()

@ -4,15 +4,33 @@ import com.ruoyi.common.core.domain.BaseEntity;
/**
*
* <p>
* {@link BaseEntity}pageNum / pageSize
* deptAlias / userAlias
*
* carNo Service carId使 carId
* </p>
*/
public class CarLifecycleQuery extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 车牌号是生命周期报表的唯一入口,避免前端绕过车辆主档直接查历史流水。 */
/**
*
* <p>
* Service
* varchar(50)
* </p>
*/
private String carNo;
/** 车辆主键只用于一致性展示和派生查询,不作为跨表唯一业务关联。 */
/**
* ID Service
* <p>
*
*
* </p>
*/
private Long carId;
public String getCarNo()

@ -4,20 +4,41 @@ import java.io.Serializable;
import java.math.BigDecimal;
/**
*
* DTO
* <p>
*
* base_car / {@link BaseCarLifecycleMapper#selectLifecycleCar}
* </p>
*/
public class CarLifecycleSummaryDTO implements Serializable
{
private static final long serialVersionUID = 1L;
/** 车辆主键IDbase_car 表的唯一标识,用于后续子查询精确关联。 */
private Long carId;
/** 车牌号车辆的唯一业务标识例如粤B12345。 */
private String carNo;
/** 所属部门ID关联 sys_dept用于数据权限过滤。 */
private Long deptId;
/** 所属车队名称由部门ID关联翻译而来前端直接展示。 */
private String team;
/** 线路名称,车辆运营的公交/客运线路。 */
private String line;
/** 车型,例如:纯电动大巴、混合动力公交等字典值。 */
private String type;
/** 最近工单录入里程只作为展示快照,避免字符串里程直接参与统计。 */
/**
*
* <p>
* input_mileage
* 使 BigDecimal
* </p>
*/
private BigDecimal inputMileage;
public Long getCarId()

@ -5,22 +5,47 @@ import java.math.BigDecimal;
import java.util.Date;
/**
*
* DTO
* <p>
* Tab
* biz_maintenance_order plate_number
* </p>
*/
public class CarMaintenanceLifecycleDTO implements Serializable
{
private static final long serialVersionUID = 1L;
/** 工单主键ID对应 biz_maintenance_order.order_id。 */
private Long orderId;
/** 工单编号业务展示的唯一编号例如WB202401150001。 */
private String orderNo;
/** 车辆ID对应工单表中的 vehicle_id 外键(若存在)。 */
private Long vehicleId;
/** 车牌号,工单中直接记录的车牌号,用于与车辆主档确认关联。 */
private String plateNumber;
/** 维保类型编码,字典值,例如:一级保养、二级保养、小修、大修。 */
private String typeCode;
/** 工单状态编码,字典值,例如:待派工、维修中、已完成、已结算。 */
private String status;
/** 录入里程,本次维保/保养时车辆的总行驶里程(数值型)。 */
private BigDecimal inputMileage;
/** 上次里程,上一次保养时记录的里程,用于计算两次保养间的行驶距离。 */
private BigDecimal lastMileage;
/** 保养/维修日期,工单的计划或实际执行日期。 */
private Date maintainDate;
/** 修理厂名称,执行本次维保的外部或内部修理厂。 */
private String factoryName;
/** 故障描述/备注,记录车辆故障现象、维修内容或用户补充说明。 */
private String description;
public Long getOrderId()

@ -4,19 +4,38 @@ import java.io.Serializable;
import java.util.Date;
/**
*
* DTO
* <p>
* Tab
* RFID record_tyre_mileage
* </p>
*/
public class CarMileageLifecycleDTO implements Serializable
{
private static final long serialVersionUID = 1L;
/** 里程记录主键ID对应 record_tyre_mileage.id。 */
private Long id;
/** 轮胎RFID编码唯一标识轮胎实物关联 record_tyre_mileage 中的轮胎标识。 */
private String tyreRfid;
/** 轮胎编号,业务展示用。 */
private String tyreNo;
/** 轮胎品牌。 */
private String tyreBrand;
/** 里程统计开始时间,即该轮胎装车或本次统计周期的起始时间点。 */
private Date startTime;
/** 里程统计结束时间,即该轮胎卸车或本次统计周期的结束时间点。 */
private Date endTime;
/** 该统计周期内累计行驶里程(公里),数值型。 */
private Long mileage;
/** 统计结束时的花纹深度(毫米),用于与起始深度对比评估磨损速率。 */
private String patternDepth;
public Long getId()

@ -3,19 +3,39 @@ package com.ruoyi.system.domain;
import java.io.Serializable;
/**
*
* DTO
* <p>
*
*
* record_tyre_install
* </p>
*/
public class CarMountedTyreDTO implements Serializable
{
private static final long serialVersionUID = 1L;
/** 轮胎主键ID对应 base_tyre.id。 */
private Long tyreId;
/** 轮胎编号,业务展示的唯一编号。 */
private String tyreNo;
/** 轮胎自编号,与 tyreNo 区分,用于仓库或车队内部管理。 */
private String selfNo;
/** 轮胎RFID/EPC编码物联网识别标签用于RFID读写器扫描匹配。 */
private String tyreEpc;
/** 轮胎品牌,例如:米其林、固特异。 */
private String tyreBrand;
/** 轮胎规格型号例如12R22.5、295/80R22.5。 */
private String tyreModel;
/** 轮位名称,例如:左前转向轮、右后驱动轴第二轴等,指示轮胎安装在车辆的具体位置。 */
private String wheelPostion;
/** 当前花纹深度(毫米),反映轮胎剩余磨损寿命,用于安全预警。 */
private String patternDepth;
public Long getTyreId()

@ -4,22 +4,48 @@ import java.io.Serializable;
import java.util.Date;
/**
*
* DTO
* <p>
* /Tab
* record_tyre_install car_no
*
* </p>
*/
public class CarTyreInstallLifecycleDTO implements Serializable
{
private static final long serialVersionUID = 1L;
/** 装卸记录主键ID对应 record_tyre_install.id。 */
private Long id;
/** 轮胎RFID编码唯一标识被操作的轮胎实物。 */
private String tyreRfid;
/** 操作类型字典值例如INSTALL安装、UNINSTALL卸下、SWAP换位。 */
private String installType;
/** 操作时的车辆行驶里程(公里),数值型,记录动作发生瞬间的车辆总里程。 */
private Long mileage;
/** 操作发生时间,即装卸动作的实际执行时间/录入时间。 */
private Date createTime;
/** 轮位名称,例如:左前轮、右后第二轴,指示轮胎安装或卸下的具体位置。 */
private String wheelPostion;
/** 操作时的花纹深度(毫米),用于追溯轮胎在每次装卸时的磨损状态。 */
private String patternDepth;
/** 轮胎编号,被操作轮胎的业务展示编号。 */
private String tyreNo;
/** 轮胎自编号,被操作轮胎的内部管理编号。 */
private String selfNo;
/** 轮胎品牌。 */
private String tyreBrand;
/** 轮胎规格型号。 */
private String tyreModel;
public Long getId()

@ -12,28 +12,141 @@ import com.ruoyi.system.domain.CarTyreInstallLifecycleDTO;
/**
* Mapper
* <p>
*
*
* 1. carNo join sys_dept {@link DataScope}
* 2. selectLifecycleCar / selectMountedTyres / selectRecentEvents / count*select*List
* 3. 使 carId
* </p>
*/
public interface BaseCarLifecycleMapper
{
/**
*
* <p>
* SQL join sys_dept d/u {@link DataScope} /
* Service 访
* </p>
*
* @param query carNo
* @return DTO null
*/
public CarLifecycleSummaryDTO selectLifecycleCar(CarLifecycleQuery query);
/**
*
* <p>
* <=
* installType='INSTALL'
* </p>
*
* @param query carId
* @return
*/
public List<CarMountedTyreDTO> selectMountedTyres(CarLifecycleQuery query);
/**
* 线TopN
* <p>
* N 10
*
* </p>
*
* @param query carId
* @return
*/
public List<CarLifecycleEventDTO> selectRecentEvents(CarLifecycleQuery query);
/**
*
* <p>
*
* pageNum / pageSize使
* </p>
*
* @param query carId
* @return
*/
public List<CarTyreInstallLifecycleDTO> selectInstallList(CarLifecycleQuery query);
/**
*
* <p>
* plate_number = carNo biz_maintenance_order
* maintain_date
* </p>
*
* @param query carId
* @return
*/
public List<CarMaintenanceLifecycleDTO> selectMaintenanceList(CarLifecycleQuery query);
/**
*
* <p>
* RFID record_check
* SQL 使 join record_tyre_install
* </p>
*
* @param query carId
* @return
*/
public List<CarCheckLifecycleDTO> selectCheckList(CarLifecycleQuery query);
/**
*
* <p>
* RFID record_tyre_mileage
*
* </p>
*
* @param query carId
* @return
*/
public List<CarMileageLifecycleDTO> selectMileageList(CarLifecycleQuery query);
/**
*
* <p>
* installCount
* </p>
*
* @param query carId
* @return 0
*/
public int countInstallRecords(CarLifecycleQuery query);
/**
*
* <p>
* maintenanceCount
* </p>
*
* @param query carId
* @return 0
*/
public int countMaintenanceOrders(CarLifecycleQuery query);
/**
*
* <p>
* checkCount
* </p>
*
* @param query carId
* @return 0
*/
public int countCheckRecords(CarLifecycleQuery query);
/**
*
* <p>
* mileageCount
* </p>
*
* @param query carId
* @return 0
*/
public int countMileageRecords(CarLifecycleQuery query);
}

@ -18,6 +18,11 @@ import org.springframework.stereotype.Service;
/**
* Service
* <p>
* carNo {@link #buildAuthorizedCar(CarLifecycleQuery)}
* 123 carId
* {@link DataScope}system:car:view/
* </p>
*/
@Service
public class BaseCarLifecycleServiceImpl implements IBaseCarLifecycleService
@ -27,6 +32,18 @@ public class BaseCarLifecycleServiceImpl implements IBaseCarLifecycleService
/**
*
* <p>
*
* - 线
* - mountedTyres
* - 线recentEvents
* - installCount / maintenanceCount / checkCount / mileageCount
*
* </p>
*
* @param query carNo
* @return DTO
* @throws ServiceException /
*/
@Override
@DataScope(deptAlias = "d", userAlias = "u")
@ -45,7 +62,15 @@ public class BaseCarLifecycleServiceImpl implements IBaseCarLifecycleService
}
/**
*
* /
* <p>
*
* RFID/
* </p>
*
* @param query buildAuthorizedCar carId
* @return null
* @throws ServiceException 访
*/
@Override
@DataScope(deptAlias = "d", userAlias = "u")
@ -56,7 +81,16 @@ public class BaseCarLifecycleServiceImpl implements IBaseCarLifecycleService
}
/**
*
* /
* <p>
* {@code biz_maintenance_order.plate_number = carNo}
*
* maintain_date
* </p>
*
* @param query buildAuthorizedCar carId
* @return
* @throws ServiceException 访
*/
@Override
@DataScope(deptAlias = "d", userAlias = "u")
@ -67,7 +101,16 @@ public class BaseCarLifecycleServiceImpl implements IBaseCarLifecycleService
}
/**
*
* /
* <p>
*
* record_tyre_install car_no record_check
* RFID
* </p>
*
* @param query buildAuthorizedCar carId
* @return
* @throws ServiceException 访
*/
@Override
@DataScope(deptAlias = "d", userAlias = "u")
@ -78,7 +121,16 @@ public class BaseCarLifecycleServiceImpl implements IBaseCarLifecycleService
}
/**
*
* /
* <p>
* record_tyre_mileage
* RFID
* 使
* </p>
*
* @param query buildAuthorizedCar carId
* @return
* @throws ServiceException 访
*/
@Override
@DataScope(deptAlias = "d", userAlias = "u")
@ -88,6 +140,20 @@ public class BaseCarLifecycleServiceImpl implements IBaseCarLifecycleService
return baseCarLifecycleMapper.selectMileageList(query);
}
/**
*
* <p>
*
* 1. {@link #validateQuery(CarLifecycleQuery)}
* 2. Mapper SQL {@code DataScope} /d/u
* 3. null访
* 4. carId query
* </p>
*
* @param query
* @return DTO
* @throws ServiceException
*/
private CarLifecycleSummaryDTO buildAuthorizedCar(CarLifecycleQuery query)
{
validateQuery(query);
@ -101,6 +167,18 @@ public class BaseCarLifecycleServiceImpl implements IBaseCarLifecycleService
return car;
}
/**
*
* <p>
*
* 1. query null carNo
* 2. 50 base_car.car_no varchar(50)
* 3. trim query SQL
* </p>
*
* @param query
* @throws ServiceException
*/
private void validateQuery(CarLifecycleQuery query)
{
if (query == null || StringUtils.isBlank(query.getCarNo()))

Loading…
Cancel
Save