重构所有VO对象,统一字段命名规范,移除冗余字段,优化接口实现 新增Voable接口用于VO对象转换 调整BaseViewModel和ProjectBasedViewModel接口定义 更新相关服务和控制器以适应VO对象变更
119 lines
3.0 KiB
Java
119 lines
3.0 KiB
Java
package com.ecep.contract.model;
|
||
|
||
import java.io.Serializable;
|
||
import java.time.LocalDate;
|
||
import java.util.Objects;
|
||
|
||
import org.hibernate.annotations.ColumnDefault;
|
||
|
||
import com.ecep.contract.util.HibernateProxyUtils;
|
||
import com.ecep.contract.vo.CompanyContactVo;
|
||
|
||
import jakarta.persistence.Column;
|
||
import jakarta.persistence.Entity;
|
||
import jakarta.persistence.FetchType;
|
||
import jakarta.persistence.GeneratedValue;
|
||
import jakarta.persistence.GenerationType;
|
||
import jakarta.persistence.Id;
|
||
import jakarta.persistence.Index;
|
||
import jakarta.persistence.JoinColumn;
|
||
import jakarta.persistence.ManyToOne;
|
||
import jakarta.persistence.Table;
|
||
import jakarta.persistence.Version;
|
||
import lombok.Getter;
|
||
import lombok.Setter;
|
||
import lombok.ToString;
|
||
|
||
@Getter
|
||
@Setter
|
||
@Entity
|
||
@Table(name = "COMPANY_CONTACT", schema = "supplier_ms", indexes = {
|
||
@Index(name = "CUSTOMER_ID", columnList = "COMPANY_ID")
|
||
})
|
||
@ToString
|
||
public class CompanyContact implements IdentityEntity, NamedEntity, BasedEntity, CompanyBasedEntity, Serializable, Voable<CompanyContactVo> {
|
||
private static final long serialVersionUID = 1L;
|
||
@Id
|
||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||
@Column(name = "ID", nullable = false)
|
||
private Integer id;
|
||
|
||
@Column(name = "NAME")
|
||
private String name;
|
||
|
||
@Column(name = "PHONE")
|
||
private String phone;
|
||
|
||
@Column(name = "EMAIL")
|
||
private String email;
|
||
|
||
/**
|
||
* 地址
|
||
*/
|
||
@Column(name = "ADDRESS")
|
||
private String address;
|
||
|
||
/**
|
||
* 职位
|
||
*/
|
||
@Column(name = "POSITION")
|
||
private String position;
|
||
|
||
@ManyToOne(fetch = FetchType.LAZY)
|
||
@JoinColumn(name = "COMPANY_ID")
|
||
@ToString.Exclude
|
||
private Company company;
|
||
|
||
@Column(name = "U8_CODE")
|
||
private String u8Code;
|
||
|
||
@Column(name = "MEMO")
|
||
private String memo;
|
||
|
||
@Column(name = "CREATED")
|
||
private LocalDate created;
|
||
|
||
@Version
|
||
@ColumnDefault("0")
|
||
@Column(name = "VERSION", nullable = false)
|
||
private int version;
|
||
|
||
@Override
|
||
public String toPrettyString() {
|
||
return getName();
|
||
}
|
||
|
||
@Override
|
||
public final boolean equals(Object object) {
|
||
if (this == object)
|
||
return true;
|
||
if (object == null || HibernateProxyUtils.isNotEffectiveClassEquals(this, object))
|
||
return false;
|
||
CompanyContact that = (CompanyContact) object;
|
||
return getId() != null && Objects.equals(getId(), that.getId());
|
||
}
|
||
|
||
@Override
|
||
public final int hashCode() {
|
||
return HibernateProxyUtils.hashCode(this);
|
||
}
|
||
|
||
@Override
|
||
public CompanyContactVo toVo() {
|
||
CompanyContactVo vo = new CompanyContactVo();
|
||
vo.setId(id);
|
||
if (company != null) {
|
||
vo.setCompanyId(company.getId());
|
||
}
|
||
vo.setName(name);
|
||
vo.setPosition(position);
|
||
vo.setPhone(phone);
|
||
vo.setEmail(email);
|
||
vo.setAddress(address);
|
||
vo.setU8Code(u8Code);
|
||
vo.setMemo(memo);
|
||
vo.setCreated(created);
|
||
// primary和active字段默认为false,在CompanyContactVo类中已经设置
|
||
return vo;
|
||
}
|
||
} |