You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.6 KiB
90 lines
2.6 KiB
10 months ago
|
package com.zc.business.domain;
|
||
|
|
||
|
import cn.hutool.core.date.DateUtil;
|
||
|
import lombok.Getter;
|
||
|
import lombok.Setter;
|
||
|
import org.apache.commons.codec.digest.DigestUtils;
|
||
|
|
||
|
import java.util.Objects;
|
||
|
|
||
|
/**
|
||
|
* 门架交通特征指数
|
||
|
* @author xiepufeng
|
||
|
*/
|
||
|
@Getter
|
||
|
@Setter
|
||
|
public class DcGantryMetricsStatisticsData extends DcStatisticsData {
|
||
|
|
||
|
/**
|
||
|
* 门架编号
|
||
|
*/
|
||
|
private String gantryCode;
|
||
|
|
||
|
/**
|
||
|
* 拥堵度
|
||
|
* 1-畅通
|
||
|
* 2-基本畅通
|
||
|
* 3-轻度拥堵
|
||
|
* 4-中度拥堵
|
||
|
* 5-重度拥堵
|
||
|
*/
|
||
|
private Integer crowdingRate;
|
||
|
|
||
|
/**
|
||
|
* 交通组成特征指数(大车占比)
|
||
|
* 1-低
|
||
|
* 2-中
|
||
|
* 3-高
|
||
|
*/
|
||
|
private Integer trafficCompositionRate;
|
||
|
|
||
|
/**
|
||
|
* 饱和度指数
|
||
|
*/
|
||
|
private Double saturationRate;
|
||
|
|
||
|
/**
|
||
|
* 重写equals方法,用于比较两个DcGantryStatisticsData对象是否相等。
|
||
|
*
|
||
|
* @param o 要与当前对象比较的对象。
|
||
|
* @return 如果两个对象相等,则返回true;否则返回false。
|
||
|
*/
|
||
|
@Override
|
||
|
public boolean equals(Object o) {
|
||
|
if (this == o) return true; // 比较是否为同一对象,是则直接返回true
|
||
|
|
||
|
if (o == null || getClass() != o.getClass()) return false; // 比较对象是否为空或类型是否不同,是则返回false
|
||
|
|
||
|
DcGantryMetricsStatisticsData that = (DcGantryMetricsStatisticsData) o; // 类型转换
|
||
|
|
||
|
// 使用Objects.equals方法比较对象的各个属性值
|
||
|
return Objects.equals(gantryCode, that.getGantryCode()) &&
|
||
|
Objects.equals(getReportTime(), that.getReportTime()) &&
|
||
|
Objects.equals(getPeriodType(), that.getPeriodType());
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 重写hashCode方法,基于对象的属性生成哈希码。
|
||
|
* @return 对象的哈希码值。
|
||
|
*/
|
||
|
@Override
|
||
|
public int hashCode() {
|
||
|
return Objects.hash(gantryCode, getReportTime(), getPeriodType());
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 生成唯一标识符。
|
||
|
* 该方法通过将多个属性结合,然后对结合后的字符串进行MD5哈希处理来生成一个唯一标识符。
|
||
|
* 结合的属性包括:门架站点标识、统计日期、道路方向、统计粒度和出入类型。
|
||
|
*/
|
||
|
@Override
|
||
|
public void generateUniqueId() {
|
||
|
// 将多个属性按照指定格式组合成一个字符串
|
||
|
String combinedAttributes = gantryCode + "_" + DateUtil.format(getStatisticalDate(), "yyyyMMdd_HHmmss") + "_" + getPeriodType();
|
||
|
// 对组合后的字符串进行MD5哈希处理,生成唯一标识符,并赋值给当前对象的id属性
|
||
|
this.setId(DigestUtils.md5Hex(combinedAttributes));
|
||
|
}
|
||
|
}
|