济菏高速数据中心代码
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.

68 lines
2.3 KiB

package com.zc.business.domain;
import cn.hutool.core.date.DateUtil;
import lombok.Data;
import org.apache.commons.codec.digest.DigestUtils;
import java.io.Serializable;
import java.util.Objects;
/**
* 门架数据统计实体类
* @author xiepufeng
*/
@Data
public class DcGantryStatisticsData extends DcTrafficFlowStatisticsData implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 门架标识
*/
private String gantryCode;
/**
* 重写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
DcGantryStatisticsData that = (DcGantryStatisticsData) o; // 类型转换
// 使用Objects.equals方法比较对象的各个属性值
return Objects.equals(gantryCode, that.gantryCode) &&
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));
}
}