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.CompanyVo; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Table; import jakarta.persistence.Version; import lombok.Getter; import lombok.Setter; import lombok.ToString; /** * 公司信息类,保存企业信息 */ @Getter @Setter @Entity @Table(name = "COMPANY") @ToString public class Company implements IdentityEntity, NamedEntity, BasedEntity, Serializable, Voable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; /** * 公司名称 */ private String name; /** * 统一社会信用代码 *

* 编码结构 * *

     * 1 | 1 | 6 | 9 | 1 < br > 登记管理部门代码 | 机构类别代码 | 登记管理机关行政区划码 | 主体标识码 | 校验码
     * 
* *

*/ @Column(name = "UNISCID", length = 30) private String uniscid; /** * 简称 */ @Column(name = "SHORT_NAME") private String shortName; /** * 文件夹存在 */ @Column(name = "PATH_EXIST") private Boolean pathExist; /** * 文件夹路径 */ @Column(name = "PATH") private String path; /** * 记录创建日期 */ @Column(name = "CREATED") private LocalDate created; /** * 企业状态 */ @Column(name = "ENT_STATUS") private String entStatus; /** * 企业类型 */ @Column(name = "ENT_TYPE") private String entType; /** * 区域 */ @Column(name = "DISTRICT") private String district; /** * 行业 */ @Column(name = "INDUSTRY") private String industry; /** * 电话 */ @Column(name = "TELEPHONE") private String telephone; /** * 注册地址 */ @Column(name = "REG_ADDR") private String regAddr; /** * 通讯地址 */ @ToString.Exclude @Column(name = "ADDRESS") private String address; /** * 成立日期 */ @Column(name = "SETUP_DATE") private LocalDate setupDate; /** * 营业期限起始 */ @ToString.Exclude @Column(name = "OPERATION_PERIOD_BEGIN") private LocalDate operationPeriodBegin; /** * 营业期限截至 */ @ToString.Exclude @Column(name = "OPERATION_PERIOD_END") private LocalDate operationPeriodEnd; /** * 注册资金 */ @ToString.Exclude @Column(name = "REGISTERED_CAPITAL") private String registeredCapital; /** * 资本金币种 */ @ToString.Exclude @Column(name = "REGISTERED_CAPITAL_CURRENCY") private String registeredCapitalCurrency; /** * 法人 */ @ToString.Exclude @Column(name = "LEGAL_REPRESENTATIVE") private String legalRepresentative; /** * 备注 */ @ToString.Exclude @Column(name = "MEMO") private String memo; @Version @ColumnDefault("0") @Column(name = "VERSION", nullable = false) @ToString.Exclude 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; Company company = (Company) object; return getId() != null && Objects.equals(getId(), company.getId()); } @Override public final int hashCode() { return HibernateProxyUtils.hashCode(this); } @Override public CompanyVo toVo() { CompanyVo vo = new CompanyVo(); vo.setId(id); vo.setName(name); vo.setUniscid(getUniscid()); vo.setShortName(getShortName()); vo.setPathExist(getPathExist() != null && getPathExist()); vo.setPath(getPath()); vo.setCreated(getCreated()); vo.setEntStatus(getEntStatus()); vo.setEntType(getEntType()); vo.setDistrict(getDistrict()); vo.setIndustry(getIndustry()); vo.setTelephone(getTelephone()); vo.setRegAddr(getRegAddr()); vo.setAddress(getAddress()); vo.setSetupDate(getSetupDate()); vo.setOperationPeriodBegin(getOperationPeriodBegin()); vo.setOperationPeriodEnd(getOperationPeriodEnd()); vo.setRegisteredCapital(registeredCapital); vo.setRegisteredCapitalCurrency(registeredCapitalCurrency); vo.setLegalRepresentative(legalRepresentative); vo.setMemo(memo); vo.setRemark(memo); vo.setVersion(version); return vo; } }