拆分模块

This commit is contained in:
2025-09-03 20:56:44 +08:00
parent 08cc2c29a5
commit a2f5e4864b
939 changed files with 14227 additions and 9607 deletions

View File

@@ -0,0 +1,63 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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 lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Entity
@Table(name = "BANK", schema = "supplier_ms")
public class Bank implements BasedEntity, IdentityEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@Column(name = "CODE")
private String code;
@Column(name = "NAME")
private String name;
@Override
public String toPrettyString() {
return code + " " + name;
}
@Override
public final boolean equals(Object object) {
if (this == object)
return true;
if (object == null)
return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy
? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass()
: object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
: this.getClass();
if (thisEffectiveClass != oEffectiveClass)
return false;
Bank bank = (Bank) object;
return getId() != null && Objects.equals(getId(), bank.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
: getClass().hashCode();
}
}

View File

@@ -0,0 +1,36 @@
package com.ecep.contract.model;
import jakarta.persistence.Column;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.MappedSuperclass;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@MappedSuperclass
@ToString
public class BaseEnumEntity<T extends Enum<?>> implements IdentityEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@Column(name = "TYPE")
@Enumerated(EnumType.STRING)
private T type;
/**
* Language
*/
@Column(name = "LANG")
private String lang;
@Column(name = "VALUE")
private String value;
}

View File

@@ -0,0 +1,6 @@
package com.ecep.contract.model;
public interface BasedEntity {
String toPrettyString();
}

View File

@@ -0,0 +1,136 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.Instant;
import java.time.LocalDateTime;
import org.hibernate.annotations.ColumnDefault;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@Entity
@Table(name = "CLOUD_RK", schema = "supplier_ms")
public class CloudRk implements IdentityEntity, Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
/**
* 平台编号
*/
@Column(name = "CLOUD_ID")
private String cloudId;
/**
* 关联的公司
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_ID")
@ToString.Exclude
private Company company;
/**
* 是否自动更新
*/
@Column(name = "AUTO_UPDATE", nullable = false, columnDefinition = "boolean default true")
private boolean autoUpdate = false;
/**
* 更新间隔天数
*/
@Column(name = "UPDATE_DAYS", nullable = false, columnDefinition = "int default 30")
private int updateDays;
/**
* 客户信用评级
*/
@ColumnDefault("''")
@Column(name = "CUSTOMER_GRADE", nullable = false)
private String customerGrade;
/**
* 客户信用总分
*/
@ColumnDefault("0")
@Column(name = "CUSTOMER_SCORE", nullable = false)
private Integer customerScore;
@Column(name = "CUSTOMER_DESCRIPTION")
private String customerDescription;
/**
* 供应商信用评级
*/
@ColumnDefault("''")
@Column(name = "VENDOR_GRADE", nullable = false)
private String vendorGrade;
/**
* 供应商信用总分
*/
@ColumnDefault("0")
@Column(name = "VENDOR_SCORE", nullable = false)
private Integer vendorScore;
@Column(name = "VENDOR_DESCRIPTION")
private String vendorDescription;
/**
* 相关方资信评价等级
*/
@ColumnDefault("''")
@Column(name = "CREDIT_RANK", nullable = false)
private String rank;
/**
* 相关方资信评价等级描述
*/
@Column(name = "CREDIT_RANK_DESCRIPTION")
private String rankDescription;
/**
* 云端最新更新时间
*/
@Column(name = "CLOUD_LATEST")
private LocalDateTime cloudLatest;
/**
* 黑名单更新时间
*/
@Column(name = "BLACK_LIST_UPDATED")
private LocalDateTime cloudBlackListUpdated;
/**
* 企业信息更新时间
*/
@Column(name = "ENT_UPDATED")
private LocalDateTime cloudEntUpdate;
/**
* 备注
*/
@Column(name = "DESCRIPTION")
private String description;
/**
* 本地更新时间戳,控制更新频率和重复更新
*/
@Column(name = "LATEST_UPDATE")
private LocalDateTime latestUpdate;
/**
* 版本号
*/
@Column(name = "VERSION", nullable = false)
private Integer version = 0;
}

View File

@@ -0,0 +1,98 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.Instant;
import java.util.Objects;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.proxy.HibernateProxy;
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.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 = "CLOUD_TYC", schema = "supplier_ms")
public class CloudTyc implements IdentityEntity, Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
/**
* 评分
*/
@ColumnDefault("0")
@Column(name = "SCORE", nullable = false)
private Integer score;
@Column(name = "CLOUD_LATEST")
private Instant cloudLatest;
/**
* 平台编号
*/
@Column(name = "CLOUD_ID")
private String cloudId;
/**
* 本地更新时间戳,控制更新频率和重复更新
*/
@Column(name = "LATEST_UPDATE")
private Instant latestUpdate;
/**
* 关联的公司
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_ID")
@ToString.Exclude
private Company company;
@Version
@ColumnDefault("0")
@Column(name = "VERSION", nullable = false)
private int version;
@Override
public final boolean equals(Object o) {
if (this == o)
return true;
if (o == null)
return false;
Class<?> oEffectiveClass = o instanceof HibernateProxy
? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass()
: o.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
: this.getClass();
if (thisEffectiveClass != oEffectiveClass)
return false;
CloudTyc cloudInfo = (CloudTyc) o;
return getId() != null && Objects.equals(getId(), cloudInfo.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
: getClass().hashCode();
}
}

View File

@@ -0,0 +1,72 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.Instant;
import java.time.LocalDate;
import org.hibernate.annotations.ColumnDefault;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@Entity
@Table(name = "CLOUD_YU", schema = "supplier_ms")
@ToString
public class CloudYu implements IdentityEntity, Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
/**
* 本地更新时间戳,控制更新频率和重复更新
*/
@Column(name = "LATEST_UPDATE")
private Instant latestUpdate;
/**
* 关联的公司
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_ID")
@ToString.Exclude
private Company company;
@ColumnDefault("''")
@Column(name = "EX_MSG")
private String exceptionMessage;
/**
* 供应商信息更新日期
*/
@Column(name = "VEN_UP_DATE")
private LocalDate vendorUpdateDate;
/**
* 客户信息更新日期
*/
@Column(name = "CUS_UP_DATE")
private LocalDate customerUpdateDate;
/**
* 数据更新日期
*/
@Column(name = "CLOUD_LATEST")
private Instant cloudLatest;
}

View File

@@ -0,0 +1,209 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.Objects;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.proxy.HibernateProxy;
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 {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
/**
* 公司名称
*/
private String name;
/**
* 统一社会信用代码
* <p>
* 编码结构
*
* <pre>
* 1 | 1 | 6 | 9 | 1 < br > 登记管理部门代码 | 机构类别代码 | 登记管理机关行政区划码 | 主体标识码 | 校验码
* </pre>
* <ul>
* <li>登记管理部门代码(第 1 位):<br>
* 例如9 代表工商部门登记的企业等。</li>
* <li>机构类别代码(第 2 位):不同的数字表示不同类型的机构。如 1 表示企业2 表示个体工商户等。</li>
* <li>登记管理机关行政区划码(第 3 - 8 位):这 6 位数字代表了登记管理机关所在的行政区划,与身份证号码的前 6
* 位类似,可对应到具体的地区。</li>
* <li>主体标识码(组织机构代码,第 9 - 17
* 位):它是对中华人民共和国境内依法注册、依法登记的机关、企事业单位、社会团体和民办非企业单位等机构颁发的一个在全国范围内唯一的、始终不变的代码。</li>
* </ul>
* </p>
*/
@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)
return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy
? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass()
: object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
: this.getClass();
if (thisEffectiveClass != oEffectiveClass)
return false;
Company company = (Company) object;
return getId() != null && Objects.equals(getId(), company.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
: getClass().hashCode();
}
}

View File

@@ -0,0 +1,57 @@
package com.ecep.contract.model;
import java.io.Serializable;
import jakarta.persistence.Column;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@jakarta.persistence.Entity
@Table(name = "COMPANY_BANK_ACCOUNT", schema = "supplier_ms")
public class CompanyBankAccount implements IdentityEntity, BasedEntity, CompanyBasedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_ID")
@ToString.Exclude
private Company company;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "BANK_ID")
@ToString.Exclude
private Bank bank;
/**
* 开户行
*/
@Column(name = "OPENING_BANK")
private String openingBank;
/**
* 账号
*/
@Column(name = "ACCOUNT")
private String account;
@Column(name = "DESCRIPTION")
private String description;
@Override
public String toPrettyString() {
return account;
}
}

View File

@@ -0,0 +1,8 @@
package com.ecep.contract.model;
public interface CompanyBasedEntity {
Company getCompany();
void setCompany(Company company);
}

View File

@@ -0,0 +1,32 @@
package com.ecep.contract.model;
import java.time.LocalDate;
public interface CompanyBasicFile<T> extends IdentityEntity {
Integer getId();
void setId(Integer id);
T getType();
void setType(T type);
String getFilePath();
void setFilePath(String filePath);
String getEditFilePath();
void setEditFilePath(String filePath);
LocalDate getSignDate();
void setSignDate(LocalDate signDate);
boolean isValid();
void setValid(boolean valid);
}

View File

@@ -0,0 +1,74 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDate;
import org.hibernate.annotations.OnDelete;
import org.hibernate.annotations.OnDeleteAction;
import com.ecep.contract.BlackReasonType;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
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.Lob;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Entity
@Table(name = "COMPANY_BLACK_REASON", schema = "supplier_ms", indexes = {
@Index(name = "COMPANY_ID", columnList = "COMPANY_ID")
})
// @org.springframework.data.relational.core.mapping.Table("COMPANY_BLACK_REASON")
@JsonIgnoreProperties(ignoreUnknown = true)
public class CompanyBlackReason implements IdentityEntity, CompanyBasedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@OnDelete(action = OnDeleteAction.CASCADE)
@JoinColumn(name = "COMPANY_ID")
private Company company;
@Column(name = "TYPE")
private BlackReasonType type;
@Column(name = "APPLY_NAME")
private String applyName;
@Column(name = "APPLY_DATE")
private LocalDate applyDate;
@Column(name = "UPDATE_TIME")
private LocalDate updateTime;
@Column(name = "CREATE_TIME")
private LocalDate createTime;
@Column(name = "INCLUDE_DATE")
private LocalDate includeDate;
@Column(name = "BLACK_REASON")
private String blackReason;
@Lob
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Column(name = "`KEY`")
private String key;
}

View File

@@ -0,0 +1,109 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.Objects;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.proxy.HibernateProxy;
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 {
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)
return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy
? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass()
: object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
: this.getClass();
if (thisEffectiveClass != oEffectiveClass)
return false;
CompanyContact that = (CompanyContact) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
: getClass().hashCode();
}
}

View File

@@ -0,0 +1,57 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.util.Map;
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.OneToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@Entity
@Table(name = "COMPANY_CONTRACT", schema = "supplier_ms", indexes = {
@Index(name = "RK_CONTRACT_ID", columnList = "CONTRACT_ID"),
@Index(name = "RK_COMPANY_ID", columnList = "COMPANY_ID")
}, uniqueConstraints = {
})
@ToString(exclude = {"company", "contract"})
public class CompanyContract implements IdentityEntity, CompanyBasedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_ID")
private Company company;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CONTRACT_ID")
private Contract contract;
/**
* 要和{@link CompanyContactUtils#getContactKey(Map)}一致
*/
public static String getContactKey(CompanyContact contact) {
if (contact == null) {
return null;
}
return contact.getName() +
contact.getPhone() +
contact.getEmail();
}
}

View File

@@ -0,0 +1,102 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.Instant;
import java.time.LocalDate;
import java.util.Objects;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.proxy.HibernateProxy;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.Id;
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_CUSTOMER", schema = "supplier_ms", indexes = {
})
@ToString
public class CompanyCustomer implements IdentityEntity, CompanyBasedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID", nullable = false)
private Integer id;
/**
* 关联的企业
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_ID")
@ToString.Exclude
private Company company;
/**
* 发展日期
*/
@Column(name = "DEV_DATE")
private LocalDate developDate;
/**
* 文件夹路径
*/
@Column(name = "PATH")
private String path;
/**
* 对口联系人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_CONTACT_ID")
@ToString.Exclude
private CompanyContact contact;
/**
* 说明
*/
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
/**
* 记录创建日期
*/
@Column(name = "CREATED")
private Instant created;
@Version
@ColumnDefault("0")
@Column(name = "VERSION", nullable = false)
private int version;
@Override
public final boolean equals(Object object) {
if (this == object)
return true;
if (object == null)
return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy
? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass()
: object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
: this.getClass();
if (thisEffectiveClass != oEffectiveClass)
return false;
CompanyCustomer that = (CompanyCustomer) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
: getClass().hashCode();
}
}

View File

@@ -0,0 +1,123 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@Entity
@Table(name = "COMPANY_CUSTOMER_ENTITY", schema = "supplier_ms", indexes = {
})
@ToString
public class CompanyCustomerEntity implements IdentityEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_CUSTOMER_ID")
@ToString.Exclude
private CompanyCustomer customer;
@Column(name = "NAME")
private String name;
@Column(name = "ABB_NAME")
private String abbName;
/**
* 用友U8系统中的客户编号,1对多的原因使用编码 |code1|code2|
*/
@Column(name = "CUS_CODE")
private String code;
/**
* 客户分类
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CUS_CLS")
@ToString.Exclude
private CustomerCatalog catalog;
/**
* 创建人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CREATOR_ID")
@ToString.Exclude
private Employee creator;
/**
* 修改人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "MODIFIER_ID")
@ToString.Exclude
private Employee modifier;
/**
* 修改日期
*/
@Column(name = "MODIFY_DATE")
private LocalDate modifyDate;
/**
* 发展日期
*/
@Column(name = "DEV_DATE")
private LocalDate developDate;
/**
* 更新日期,有数据更新时的日期
*/
@Column(name = "UP_DATE")
private LocalDate updatedDate;
/**
* 抓取时间戳,用于控制抓取频率
*/
@Column(name = "FETCHED_TIME")
private LocalDateTime fetchedTime;
@Override
public final boolean equals(Object object) {
if (this == object)
return true;
if (object == null)
return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy
? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass()
: object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
: this.getClass();
if (thisEffectiveClass != oEffectiveClass)
return false;
CompanyCustomerEntity that = (CompanyCustomerEntity) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
: getClass().hashCode();
}
}

View File

@@ -0,0 +1,70 @@
package com.ecep.contract.model;
import java.io.Serializable;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.Id;
import jakarta.persistence.OneToOne;
import jakarta.persistence.PrimaryKeyJoinColumn;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 客户评估表数据
* <p>
* <p>
* 注意:字段不能使用 primitive type否则自动转换时会出现 Null Value 问题
*/
@Entity
@Getter
@Setter
@ToString
@Table(name = "COMPANY_CUSTOMER_EVALUATION_FORM_FILE")
public class CompanyCustomerEvaluationFormFile implements IdentityEntity, BasedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID", nullable = false)
private Integer id;
@PrimaryKeyJoinColumn
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private CompanyCustomerFile customerFile;
/**
* 经济指标分类
*/
@Column(name = "CATALOG")
private String catalog;
/**
* 综合指标
*/
@Column(name = "LEVEL")
private String level;
/**
* 资信等级
*/
@Column(name = "CREDIT_LEVEL")
private Integer creditLevel = 0;
private Integer score1 = 0;
private Integer score2 = 0;
private Integer score3 = 0;
private Integer score4 = 0;
private Integer score5 = 0;
/**
* 分数模板版本
*/
@Column(name = "SCORE_TEMPLATE_VER")
private Integer scoreTemplateVersion = 1;
@Override
public String toPrettyString() {
return getCatalog() + ", level=" + getCreditLevel();
}
}

View File

@@ -0,0 +1,64 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDate;
import com.ecep.contract.CompanyCustomerFileType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@Entity
@Table(name = "COMPANY_CUSTOMER_FILE")
@ToString
public class CompanyCustomerFile implements CompanyBasicFile<CompanyCustomerFileType>, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CUSTOMER_ID")
@ToString.Exclude
private CompanyCustomer customer;
@Column(name = "TYPE")
@Enumerated(EnumType.STRING)
private CompanyCustomerFileType type;
/**
* 文件路径
*/
@Column(name = "FILE_PATH")
private String filePath;
/**
* 可编辑的文件路径
*/
@Column(name = "EDIT_FILE_PATH")
private String editFilePath;
/**
* 生效日期(签署)
*/
@Column(name = "SIGN_DATE")
private LocalDate signDate;
@Column(name = "VALID")
private boolean valid = false;
}

View File

@@ -0,0 +1,21 @@
package com.ecep.contract.model;
import java.io.Serializable;
import com.ecep.contract.CompanyCustomerFileType;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@Entity
@Table(name = "COMPANY_CUSTOMER_FILE_TYPE_LOCAL")
@ToString
public class CompanyCustomerFileTypeLocal extends BaseEnumEntity<CompanyCustomerFileType> implements Serializable {
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,68 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.util.Objects;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.proxy.HibernateProxy;
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.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_EXTEND_INFO", schema = "supplier_ms")
@ToString
public class CompanyExtendInfo implements IdentityEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_ID")
@ToString.Exclude
private Company company;
/**
* 是否禁用核验
*/
@Column(name = "DISABLE_VERIFY")
private boolean disableVerify;
@Version
@ColumnDefault("0")
@Column(name = "VERSION", nullable = false)
@ToString.Exclude
private int version;
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
CompanyExtendInfo that = (CompanyExtendInfo) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,64 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDate;
import com.ecep.contract.CompanyFileType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 公司文件
*/
@Getter
@Setter
@Entity
@Table(name = "COMPANY_FILE")
@ToString
public class CompanyFile implements IdentityEntity, CompanyBasedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_ID")
@ToString.Exclude
private Company company;
@Column(name = "TYPE")
@Enumerated(EnumType.STRING)
private CompanyFileType type;
/**
* 生效日期(签署)
*/
@Column(name = "APPLY_DATE")
private LocalDate applyDate;
/**
* 有效期(签署)
*/
@Column(name = "EXP_DATE")
private LocalDate expiringDate;
/**
* 资质文件路径,全路径,网盘地址
*/
@Column(name = "FILE_PATH")
private String filePath;
}

View File

@@ -0,0 +1,20 @@
package com.ecep.contract.model;
import java.io.Serializable;
import com.ecep.contract.CompanyFileType;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@Entity
@Table(name = "COMPANY_FILE_TYPE_LOCAL")
@ToString
public class CompanyFileTypeLocal extends BaseEnumEntity<CompanyFileType> implements Serializable {
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,80 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 公司发票信息
*/
@Getter
@Setter
@Entity
@Table(name = "COMPANY_INVOICE_INFO", schema = "supplier_ms")
@ToString
public class CompanyInvoiceInfo implements IdentityEntity, NamedEntity, BasedEntity, CompanyBasedEntity, Serializable {
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;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_ID")
@ToString.Exclude
private Company company;
@Column(name = "TAX")
private String taxId; // 税号(纳税人识别号)
@Column(name = "ADDR")
private String address; // 地址
@Column(name = "TEL")
private String phone; // 电话
@Column(name = "BANK")
private String bankName; // 开户行
@Column(name = "BANK_ACCOUNT")
private String bankAccount; // 银行账号
@Override
public String toPrettyString() {
return getName() + getTaxId();
}
@Override
public final boolean equals(Object o) {
if (this == o) return true;
if (o == null) return false;
Class<?> oEffectiveClass = o instanceof HibernateProxy ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() : o.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
CompanyInvoiceInfo that = (CompanyInvoiceInfo) o;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,79 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.Objects;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.proxy.HibernateProxy;
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_OLDNAME")
@ToString
public class CompanyOldName implements IdentityEntity, NamedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@Column(name = "COMPANY_ID", nullable = false)
private Integer companyId;
@Column(name = "NAME")
private String name;
@Column(name = "BEGIN_DATE")
private LocalDate beginDate;
@Column(name = "END_DATE")
private LocalDate endDate;
/**
* 是否模糊的,当已录入的系统的名称有错误时,使用别名处理
*/
@Column(name = "AMBIGUITY")
private Boolean ambiguity;
@Column(name = "PATH")
private String path;
@Column(name = "MEMO")
@ToString.Exclude
private String memo;
@Version
@ColumnDefault("0")
@Column(name = "VERSION", nullable = false)
@ToString.Exclude
private int version;
@Override
public final boolean equals(Object o) {
if (this == o) return true;
if (o == null) return false;
Class<?> oEffectiveClass = o instanceof HibernateProxy ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() : o.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
CompanyOldName that = (CompanyOldName) o;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,123 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.Instant;
import java.time.LocalDate;
import java.util.List;
import java.util.Objects;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.proxy.HibernateProxy;
import com.ecep.contract.VendorType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.Version;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 供应商
*/
@Getter
@Setter
@Entity
@Table(name = "COMPANY_VENDOR", schema = "supplier_ms", indexes = {
})
@ToString
public class CompanyVendor implements IdentityEntity, CompanyBasedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID", nullable = false)
private Integer id;
/**
* 类型
*/
@Column(name = "TYPE")
private VendorType type;
@ColumnDefault("false")
@Column(name = "PROTOCOL_PROVIDER", nullable = false)
private boolean protocolProvider = false;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_ID")
@ToString.Exclude
private Company company;
@OneToMany(mappedBy = "vendor", fetch = FetchType.LAZY)
@ToString.Exclude
private List<CompanyVendorEntity> entities;
@ManyToOne
@JoinColumn(name = "VEN_CLS")
private VendorCatalog catalog;
/**
* 发展日期
*/
@Column(name = "DEV_DATE")
private LocalDate developDate;
/**
* 文件夹路径
*/
@Column(name = "PATH")
private String path;
/**
* 对口联系人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_CONTACT_ID")
@ToString.Exclude
private CompanyContact contact;
/**
* 采购的产品
*/
@Column(name = "purchase")
private String purchase;
/**
* 说明
*/
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
/**
* 记录创建日期
*/
@Column(name = "CREATED")
private Instant created;
@Version
@ColumnDefault("0")
@Column(name = "VERSION", nullable = false)
private int version;
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
CompanyVendor that = (CompanyVendor) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,59 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDate;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 供方名录里的文件
*/
@Getter
@Setter
@Entity
@Table(name = "COMPANY_VENDOR_APPROVED_FILE")
@ToString
public class CompanyVendorApprovedFile implements IdentityEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "LIST_ID", nullable = false)
@ToString.Exclude
private CompanyVendorApprovedList list;
/**
* 文件名,不含目录,目录使用目录的目录
*/
@Column(name = "FILE_NAME")
private String fileName;
/**
* 生效日期(签署)
*/
@Column(name = "SIGN_DATE")
private LocalDate signDate;
/**
* 备注
*/
@Column(name = "DESCRIPTION")
private String description;
}

View File

@@ -0,0 +1,82 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
import com.ecep.contract.VendorType;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 供方名录里的供应商
*/
@Getter
@Setter
@Entity
@Table(name = "COMPANY_VENDOR_APPROVED_ITEM")
@ToString
public class CompanyVendorApprovedItem implements IdentityEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "LIST_ID", nullable = false)
@ToString.Exclude
private CompanyVendorApprovedList list;
/**
* 供应商名称,有可能改名了,所以存历史名称
*/
@Column(name = "VENDOR_NAME")
private String vendorName;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "VENDOR_ID", nullable = false)
@ToString.Exclude
private CompanyVendor vendor;
/**
* 类型,历史的,可能会变更的,所以这样也要存
*/
@Column(name = "TYPE")
private VendorType type;
/**
* 备注
*/
@Column(name = "DESCRIPTION")
private String description;
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
CompanyVendorApprovedItem that = (CompanyVendorApprovedItem) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,76 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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 lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 合格供应商名录
* 每年一条记录
* 下有 item 和 file
*/
@Getter
@Setter
@Entity
@Table(name = "COMPANY_VENDOR_APPROVED")
@ToString
public class CompanyVendorApprovedList implements IdentityEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
/**
* 标题
*/
@Column(name = "TITLE")
private String title;
/**
* 发布日期
*/
@Column(name = "PUBLISH_DATE")
private LocalDate publishDate;
/**
* 文件夹路径
*/
@Column(name = "PATH")
private String path;
/**
* 备注
*/
@Column(name = "DESCRIPTION")
private String description;
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
CompanyVendorApprovedList that = (CompanyVendorApprovedList) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,115 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 供应商的关联详细项关联信息用于绑定U8系统中的供应商编号
*/
@Getter
@Setter
@Entity
@Table(name = "COMPANY_VENDOR_ENTITY", schema = "supplier_ms", indexes = {
})
@ToString
public class CompanyVendorEntity implements IdentityEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_VENDOR_ID")
@ToString.Exclude
private CompanyVendor vendor;
@Column(name = "NAME")
private String name;
@Column(name = "ABB_NAME")
private String abbName;
/**
* 用友U8系统中的客户编号,1对多的原因使用编码 |code1|code2|
*/
@Column(name = "VEN_CODE")
private String code;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "VEN_CLS")
@ToString.Exclude
private VendorCatalog catalog;
/**
* 创建人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CREATOR_ID")
@ToString.Exclude
private Employee creator;
/**
* 修改人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "MODIFIER_ID")
@ToString.Exclude
private Employee modifier;
/**
* 修改日期
*/
@Column(name = "MODIFY_DATE")
private LocalDate modifyDate;
/**
* 发展日期
*/
@Column(name = "DEV_DATE")
private LocalDate developDate;
/**
* 更新日期,有数据更新时的日期
*/
@Column(name = "UP_DATE")
private LocalDate updatedDate;
/**
* 抓取时间戳,用于控制抓取频率
*/
@Column(name = "FETCHED_TIME")
private LocalDateTime fetchedTime;
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
CompanyVendorEntity that = (CompanyVendorEntity) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,67 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDate;
import com.ecep.contract.CompanyVendorFileType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 供应商的文件
*/
@Getter
@Setter
@Entity
@Table(name = "COMPANY_VENDOR_FILE")
@ToString
public class CompanyVendorFile implements CompanyBasicFile<CompanyVendorFileType>, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "VENDOR_ID")
@ToString.Exclude
private CompanyVendor vendor;
@Column(name = "TYPE")
@Enumerated(EnumType.STRING)
private CompanyVendorFileType type;
/**
* 文件路径
*/
@Column(name = "FILE_PATH")
private String filePath;
/**
* 可编辑的文件路径
*/
@Column(name = "EDIT_FILE_PATH")
private String editFilePath;
/**
* 生效日期(签署)
*/
@Column(name = "SIGN_DATE")
private LocalDate signDate;
@Column(name = "VALID")
private boolean valid = false;
}

View File

@@ -0,0 +1,21 @@
package com.ecep.contract.model;
import com.ecep.contract.CompanyVendorFileType;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 供应商文件类型(多国语言支持)
*/
@Getter
@Setter
@Entity
@Table(name = "COMPANY_VENDOR_FILE_TYPE_LOCAL")
@ToString
public class CompanyVendorFileTypeLocal extends BaseEnumEntity<CompanyVendorFileType> {
}

View File

@@ -0,0 +1,291 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Objects;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.proxy.HibernateProxy;
import com.ecep.contract.ContractPayWay;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
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 = "CONTRACT", schema = "supplier_ms")
@ToString
public class Contract implements IdentityEntity, NamedEntity, BasedEntity, CompanyBasedEntity, Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
/**
* GUID合同在U8系统中的唯一标识
*/
@Column(name = "GUID")
private String guid;
@Column(name = "PAY_WAY")
@Enumerated(EnumType.ORDINAL)
private ContractPayWay payWay;
/**
* 合同编号合同编号由录入员在U8系统中录入同步导入合同编号规则参考制度文件
*/
@Column(name = "CODE")
private String code;
/**
* 合同名称合同名称由录入员在U8系统中录入同步导入
*/
@Column(name = "NAME")
private String name;
/**
* 合同状态U8 系统中的合同状态,目前含义未知
* <table>
* <caption>各个状态值的统计情况如下数据样本日期2025-02-08</caption>
* <tr><th>State</th><th>Count</th></tr>
* <tr><td>null</td><td>3891</td></tr>
* <tr><td>A</td><td>9</td></tr>
* <tr><td>B</td><td>6499</td></tr>
* <tr><td>C</td><td>79</td></tr>
* </table>
*/
@Column(name = "STATE")
private String state;
/**
* 合同分组
*/
// @ManyToOne(fetch = FetchType.EAGER)
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "GROUP_ID")
private ContractGroup group;
/**
* 分类
*/
// @ManyToOne(fetch = FetchType.EAGER)
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "TYPE_ID")
private ContractType type;
/**
* 性质
*/
// @ManyToOne(fetch = FetchType.EAGER)
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "KIND_ID")
private ContractKind kind;
/**
* 主合同编号,一般未销售合同,子合同未采购合同(服务合同、分包合同)
*/
@Column(name = "PARENT_CODE")
private String parentCode;
/**
* 签订日期
*/
@Column(name = "ORDER_DATE")
private LocalDate orderDate;
/**
* 合同起始日期
*/
@Column(name = "START_DATE")
private LocalDate startDate;
/**
* 合同截止日期
*/
@Column(name = "END_DATE")
private LocalDate endDate;
/**
* 创建人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "SETUP_PERSON_ID")
@ToString.Exclude
private Employee setupPerson;
/**
* 提交日期
*/
@Column(name = "SETUP_DATE")
private LocalDate setupDate;
/**
* 生效人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "INURE_PERSON_ID")
@ToString.Exclude
private Employee inurePerson;
/**
* 生效日期
*/
@Column(name = "INURE_DATE")
private LocalDate inureDate;
/**
* 修改人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "VARY_PERSON_ID")
@ToString.Exclude
private Employee varyPerson;
@Column(name = "VARY_DATE")
private LocalDate varyDate;
/**
* 文件夹路径
*/
@Column(name = "PATH")
private String path;
@Lob
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
/**
* 创建时间
*/
@Column(name = "CREATED")
private LocalDateTime created;
/**
* 所属公司
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_ID")
@ToString.Exclude
private Company company;
/**
* 业务员
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "BM_EMPLOYEE_ID")
@ToString.Exclude
private Employee employee;
/**
* 经办人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "BM_HANDLER_ID")
@ToString.Exclude
private Employee handler;
/**
* 关联项目
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PROJECT_ID")
@ToString.Exclude
private Project project;
/**
* 合同金额
*/
@Column(name = "AMOUNT")
private Double amount;
/**
* 是否标准付款方式
*/
@ColumnDefault("0")
@Column(name = "STANDARD_PAY_WAY", nullable = false)
private boolean standardPayWay;
/**
* 是否标准合同文本
*/
@ColumnDefault("0")
@Column(name = "STANDARD_CONTRACT_TEXT", nullable = false)
private boolean standardPContractText;
@Version
@ColumnDefault("0")
@Column(name = "VERSION", nullable = false)
private int version;
/**
* 总数量
*/
@Column(name = "TOTAL_QUANTITY")
private double totalQuantity;
/**
* 总金额
*/
@Column(name = "TOTAL_AMOUNT")
private double totalAmount;
/**
* 总不含税金额
*/
@Column(name = "TOTAL_UNTAX_AMOUNT")
private double totalUnTaxAmount;
/**
* 已经执行数量
*/
@Column(name = "EXEC_QUANTITY")
private double execQuantity;
/**
* 已经执行金额
*/
@Column(name = "EXEC_AMOUNT")
private double execAmount;
/**
* 已经执行不含税金额
*/
@Column(name = "EXEC_UNTAX_AMOUNT")
private double execUnTaxAmount;
@Override
public String toPrettyString() {
return getCode() + " " + getName();
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
Contract contract = (Contract) object;
return getId() != null && Objects.equals(getId(), contract.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,7 @@
package com.ecep.contract.model;
public interface ContractBasedEntity {
Contract getContract();
void setContract(Contract contract);
}

View File

@@ -0,0 +1,78 @@
package com.ecep.contract.model;
import java.io.Serializable;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 比价供应商
*/
@Getter
@Setter
@Entity
@Table(name = "CONTRACT_BID_VENDOR", schema = "supplier_ms", indexes = {
})
@ToString
public class ContractBidVendor implements IdentityEntity, ContractBasedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CONTRACT_ID")
@ToString.Exclude
private Contract contract;
@ManyToOne
@JoinColumn(name = "COMPANY_ID")
private Company company;
/**
* 供应商报价表
* 关联到合同的文件
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "QUOTATION_SHEET_FILE_ID")
@ToString.Exclude
private ContractFile quotationSheet;
@Override
public final boolean equals(Object object) {
if (this == object)
return true;
if (object == null)
return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy
? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass()
: object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
: this.getClass();
if (thisEffectiveClass != oEffectiveClass)
return false;
ContractBidVendor that = (ContractBidVendor) object;
return equals(that);
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
: getClass().hashCode();
}
}

View File

@@ -0,0 +1,69 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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 lombok.Getter;
import lombok.Setter;
/**
* 合同编号中前缀部分代表合同种类
* <p>
* 表明种类含义,以及存储方法、存储目的目录
*/
@Getter
@Setter
@Entity
@Table(name = "CONTRACT_CATALOG", schema = "supplier_ms")
public class ContractCatalog implements IdentityEntity, NamedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
/**
* 合同编号 - 前的分类编号
*/
@Column(name = "CODE")
private String code;
@Column(name = "NAME")
private String name;
@Column(name = "PATH")
private String path;
@Column(name = "PARENT")
private String parent;
/**
* 是否使用年份组织目录
*/
@Column(name = "USE_YEAR")
private boolean useYear;
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
ContractCatalog that = (ContractCatalog) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,84 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
import com.ecep.contract.ContractFileType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 合同的文件
*/
@Getter
@Setter
@Entity
@Table(name = "CONTRACT_FILE")
@ToString
public class ContractFile implements IdentityEntity, ContractBasedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CONTRACT_ID")
@ToString.Exclude
private Contract contract;
/**
* 类型
*/
@Column(name = "TYPE")
@Enumerated(EnumType.STRING)
private ContractFileType type;
/**
* 文件名,不含目录,目录使用合同的目录
*/
@Column(name = "FILE_NAME")
private String fileName;
/**
* 生效日期(签署)
*/
@Column(name = "APPLY_DATE")
private LocalDate applyDate;
/**
* 备注
*/
@Column(name = "DESCRIPTION")
private String description;
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
ContractFile that = (ContractFile) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,27 @@
package com.ecep.contract.model;
import com.ecep.contract.ContractFileType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 合同文件类型(多国语言支持)
*/
@Getter
@Setter
@Entity
@Table(name = "CONTRACT_FILE_TYPE_LOCAL")
@ToString
public class ContractFileTypeLocal extends BaseEnumEntity<ContractFileType> {
/**
* 建议的文件名
*/
@Column(name = "SUGGEST_FILE_NAME")
private String suggestFileName;
}

View File

@@ -0,0 +1,67 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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 lombok.Getter;
import lombok.Setter;
/**
* 用友U8系统中的合同分组
*/
@Getter
@Setter
@Entity
@Table(name = "CONTRACT_GROUP", schema = "supplier_ms")
public class ContractGroup implements IdentityEntity, NamedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
/**
* 用友U8系统中的合同分组代码
*/
@Column(name = "CODE")
private String code;
@Column(name = "NAME")
private String name;
@Column(name = "TITLE")
private String title;
public static String toString(ContractGroup group) {
if (group != null) {
return group.getCode() + " " + group.getName();
} else {
return "-";
}
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
ContractGroup that = (ContractGroup) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,164 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 合同项目, CM_Contract_Item_B
*/
@Getter
@Setter
@Entity
@Table(name = "CONTRACT_ITEM")
@ToString
public class ContractItem implements IdentityEntity, ContractBasedEntity, BasedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CONTRACT_ID")
@ToString.Exclude
private Contract contract;
/**
* 相关数据Id
*/
@Column(name = "REF_ID")
private Integer refId;
/**
* 项目编号
*/
@Column(name = "ITEM_CODE")
private String itemCode;
/**
* 项目
*/
@Column(name = "TITLE")
private String title;
/**
* 规格
*/
@Column(name = "SPECIFICATION")
private String specification;
/**
* 单位
*/
@Column(name = "UNIT")
private String unit;
/**
* 存货
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "INVENTORY_ID")
@ToString.Exclude
private Inventory inventory;
/**
* 不含税单价
*/
@Column(name = "EX_TAX_PRICE")
private double exclusiveTaxPrice;
/**
* 税率
*/
@Column(name = "TAX_RATE")
private double taxRate;
/**
* 含税单价
*/
@Column(name = "TAX_PRICE")
private double taxPrice;
/**
* 数量
*/
@Column(name = "QUANTITY")
private double quantity;
/**
* 创建日期
*/
@Column(name = "CREATE_TIME")
private LocalDateTime createDate;
/**
* 更新日期
*/
@Column(name = "UPDATE_TIME")
private LocalDateTime updateDate;
@Column(name = "START_DATE")
private LocalDate startDate;
@Column(name = "END_DATE")
private LocalDate endDate;
/**
* 创建人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CREATE_BY")
@ToString.Exclude
private Employee creator;
/**
* 更新人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "UPDATE_BY")
@ToString.Exclude
private Employee updater;
/**
* 备注
*/
@Column(name = "REMARK")
private String remark;
@Override
public String toPrettyString() {
return getTitle() + " " + getSpecification() + " x " + getQuantity();
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
ContractItem that = (ContractItem) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,69 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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 lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 用友U8系统中的合同分类
*/
@Getter
@Setter
@Entity
@Table(name = "CONTRACT_KIND", schema = "supplier_ms")
@ToString
public class ContractKind implements IdentityEntity, NamedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
/**
* 用友U8系统中的合同分类代码
*/
@Column(name = "CODE")
private String code;
@Column(name = "NAME")
private String name;
@Column(name = "TITLE")
private String title;
public static String toString(ContractKind kind) {
if (kind != null) {
return kind.getCode() + " " + kind.getName();
} else {
return "-";
}
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
ContractKind that = (ContractKind) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,69 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
/**
* 合同付款计划, CM_Contract_Pay
*/
@Getter
@Setter
@Entity
@Table(name = "CONTRACT_PAY_PLAN", schema = "supplier_ms", indexes = {
})
public class ContractPayPlan implements IdentityEntity, ContractBasedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CONTRACT_ID")
private Contract contract;
/**
* 相关数据Id
*/
@Column(name = "REF_ID")
private Integer refId;
@Column(name = "PAY_DATE")
private LocalDate payDate;
/**
* 付款比例
*/
@Column(name = "PAY_RATIO")
private float payRatio;
/**
* 付款金额
*/
@Column(name = "PAY_CURRENCY")
private double payCurrency;
/**
* 付款条件
*/
@Column(name = "PAY_TERM")
private String payTerm;
/**
* 更新(同步)日期从U8系统中同步更新数据的日期
*/
@Column(name = "UPDATE_TIME")
private LocalDateTime updateDate;
}

View File

@@ -0,0 +1,75 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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 lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 用友U8系统中的合同类型
*/
@Getter
@Setter
@Entity
@Table(name = "CONTRACT_TYPE", schema = "supplier_ms")
@ToString
public class ContractType implements IdentityEntity, NamedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
/**
* 用友U8系统中的合同分类代码
*/
@Column(name = "CODE")
private String code;
@Column(name = "NAME")
private String name;
@Column(name = "CATALOG")
private String catalog;
@Column(name = "TITLE")
private String title;
@Column(name = "DIRECTION")
private String direction;
public static String toString(ContractType type) {
if (type != null) {
return type.getCode() + " " + type.getName();
} else {
return "-";
}
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
ContractType that = (ContractType) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,66 @@
package com.ecep.contract.model;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.proxy.HibernateProxy;
import java.util.Objects;
/**
* U8系统的 客户分类
*/
@Getter
@Setter
@Entity
@Table(name = "CUSTOMER_CATALOG", schema = "supplier_ms")
@ToString
public class CustomerCatalog implements BasedEntity {
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
/**
* 用友U8系统中的合同分类代码
*/
@Column(name = "CODE")
private String code;
@Column(name = "NAME")
private String name;
@Column(name = "DESCRIPTION")
private String description;
@Override
public String toPrettyString() {
return code + " " + name;
}
@Override
public final boolean equals(Object object) {
if (this == object)
return true;
if (object == null)
return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy
? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass()
: object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
: this.getClass();
if (thisEffectiveClass != oEffectiveClass)
return false;
CustomerCatalog that = (CustomerCatalog) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
: getClass().hashCode();
}
}

View File

@@ -0,0 +1,79 @@
package com.ecep.contract.model;
import java.time.LocalDate;
import java.time.LocalDateTime;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 项目客户满意度调查
*/
@Getter
@Setter
@Entity
@Table(name = "PROJECT_CUSTOMER_SATISFACTION_SURVEY", schema = "supplier_ms")
@ToString
public class CustomerSatisfactionSurvey implements IdentityEntity, ProjectBasedEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
/**
* 项目
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PROJECT_ID")
@ToString.Exclude
private Project project;
@Column(name = "CODE", length = 100)
private String code;
@Column(name = "DATE")
private LocalDate date;
/**
* 总分
*/
@Column(name = "TOTAL_SCORE")
private int totalScore;
/**
* 数据,格式如下
* version:a,b,c,d,e,f,g,h,i,j
* version 表示项目版本号不同的版本号表示不同的项目a-j 表示项目属性1-10 表示分数
* 1:1,2,3,4,5,6,7,8,9,10
*/
@Column(name = "DATA")
private String data;
/**
* 申请人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "APPLICANT_ID")
@ToString.Exclude
private Employee applicant;
/**
* 申请日期
*/
@Column(name = "APPLY_DATE")
private LocalDateTime applyTime;
/**
* 说明
*/
@Column(name = "DESCRIPTION")
private String description;
}

View File

@@ -0,0 +1,67 @@
package com.ecep.contract.model;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 项目交货签收方式
*/
@Getter
@Setter
@Entity
@Table(name = "PRODUCT_DELIVERY_SIGN_METHOD", schema = "supplier_ms")
public class DeliverySignMethod implements BasedEntity, IdentityEntity {
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "NAME")
private String name;
@Column(name = "CODE")
private String code;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "SALE_TYPE_ID")
@ToString.Exclude
private ProjectSaleType saleType;
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Override
public String toPrettyString() {
return code + " " + name;
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
DeliverySignMethod that = (DeliverySignMethod) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,66 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
import jakarta.persistence.Column;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@jakarta.persistence.Entity
@Table(name = "DEPARTMENT", schema = "supplier_ms")
public class Department implements BasedEntity, IdentityEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@Column(name = "CODE")
private String code;
@Column(name = "NAME")
private String name;
@JoinColumn(name = "LEADER")
@ManyToOne(fetch = FetchType.LAZY)
@ToString.Exclude
private Employee leader;
@Column(name = "IS_ACTIVE", nullable = false)
private boolean isActive;
@Override
public String toPrettyString() {
return code + " " + name;
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
Department that = (Department) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,124 @@
package com.ecep.contract.model;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.proxy.HibernateProxy;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.Objects;
@Getter
@Setter
@jakarta.persistence.Entity
@Table(name = "EMPLOYEE", schema = "supplier_ms")
public class Employee implements BasedEntity, IdentityEntity, NamedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@Column(name = "ACCOUNT")
private String account;
@Column(name = "NAME")
private String name;
@Column(name = "ALIAS")
private String alias;
@JoinColumn(name = "DEPARTMENT_ID")
@ManyToOne(fetch = FetchType.LAZY)
@ToString.Exclude
private Department department;
/**
* U8系统中的人员代码
*/
@Column(name = "CODE")
private String code;
@Column(name = "EMAIL")
private String email;
@Column(name = "PHONE")
private String phone;
@Column(name = "CREATED")
private LocalDate created;
// 新增的入职日期字段
@Column(name = "ENTRY_DATE")
private LocalDate entryDate;
// 新增的离职日期字段
@Column(name = "LEAVE_DATE")
private LocalDate leaveDate;
@Column(name = "LOCALE")
private String locale;
@Column(name = "DATE_FORMATTER")
private String dateFormatter;
@Column(name = "DATETIME_FORMATTER")
private String dateTimeFormatter;
@Column(name = "TIME_FORMATTER")
private String timeFormatter;
@Column(name = "TIME_ZONE")
private String timeZone;
@Column(name = "NUMBER_FORMATTER")
private String numberFormatter;
@Column(name = "CURRENCY_FORMATTER")
private String currencyFormatter;
/**
* 员工是否活跃的状态
*/
@Column(name = "IS_ACTIVE", nullable = false)
private boolean isActive;
@ManyToMany(fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST, CascadeType.MERGE })
@JoinTable(name = "EMPLOYEE_ROLES", joinColumns = @JoinColumn(name = "EMPLOYEE_ID"), inverseJoinColumns = @JoinColumn(name = "ROLE_ID"))
private java.util.List<EmployeeRole> roles = new java.util.ArrayList<>();
@Override
public String toPrettyString() {
if (code == null) {
return name;
}
return code + " " + name;
}
@Override
public final boolean equals(Object object) {
if (this == object)
return true;
if (object == null)
return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy
? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass()
: object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
: this.getClass();
if (thisEffectiveClass != oEffectiveClass)
return false;
Employee employee = (Employee) object;
return getId() != null && Objects.equals(getId(), employee.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
: getClass().hashCode();
}
}

View File

@@ -0,0 +1,74 @@
package com.ecep.contract.model;
import java.io.Serializable;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.proxy.HibernateProxy;
import java.time.LocalDateTime;
import java.util.Objects;
@Getter
@Setter
@jakarta.persistence.Entity
@Table(name = "EMPLOYEE_AUTH_BIND", schema = "supplier_ms")
public class EmployeeAuthBind implements BasedEntity, IdentityEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@JoinColumn(name = "EMPLOYEE_ID")
@ManyToOne(fetch = FetchType.LAZY)
private Employee employee;
@Column(name = "IP")
private String ip;
@Column(name = "MAC")
private String mac;
/**
* 创建时间
*/
@Column(name = "CREATE_TIME")
private LocalDateTime createTime;
/**
* 更新人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "UPDATE_BY")
@ToString.Exclude
private Employee updater;
@Column(name = "UPDATE_TIME")
private LocalDateTime updateTime;
@Column(name = "DESCRIPTION")
private String description;
@Override
public String toPrettyString() {
return ip + " " + mac;
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
EmployeeAuthBind bank = (EmployeeAuthBind) object;
return getId() != null && Objects.equals(getId(), bank.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,61 @@
package com.ecep.contract.model;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.proxy.HibernateProxy;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Objects;
@Getter
@Setter
@jakarta.persistence.Entity
@Table(name = "EMPLOYEE_LOGIN_HISTORY", schema = "supplier_ms")
public class EmployeeLoginHistory implements BasedEntity ,IdentityEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@JoinColumn(name = "EMPLOYEE_ID")
@ManyToOne(fetch = FetchType.LAZY)
private Employee employee;
@Column(name = "IP")
private String ip;
@Column(name = "MAC")
private String mac;
@Column(name = "DT")
private LocalDateTime loginTime;
@Column(name = "LATEST_ACTIVE")
private LocalDateTime activeTime;
@Override
public String toPrettyString() {
return ip + " " + mac;
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
EmployeeLoginHistory bank = (EmployeeLoginHistory) object;
return getId() != null && Objects.equals(getId(), bank.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,60 @@
package com.ecep.contract.model;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
@jakarta.persistence.Entity
@Table(name = "EMPLOYEE_ROLE", schema = "supplier_ms")
public class EmployeeRole implements IdentityEntity, NamedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@Column(name = "CODE")
private String code;
@Column(name = "NAME")
private String name;
/**
* 是否系统管理员
*/
@Column(name = "SYS_ADMIN")
private boolean systemAdministrator;
/**
* 是否管理层
*/
@Column(name = "MANAGER")
private boolean manager;
/**
* 是否启用
*/
@Column(name = "IS_ACTIVE")
private boolean active = true;
@ManyToMany(fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST, CascadeType.MERGE })
@JoinTable(
name = "EMPLOYEE_ROLE_FUNCTIONS",
joinColumns = @JoinColumn(name = "ROLE_ID"),
inverseJoinColumns = @JoinColumn(name = "FUNC_ID")
)
private java.util.List<Function> functions = new java.util.ArrayList<>();
@ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinTable(
name = "EMPLOYEE_ROLES",
joinColumns = @JoinColumn(name = "ROLE_ID"),
inverseJoinColumns = @JoinColumn(name = "EMPLOYEE_ID")
)
private java.util.List<Employee> employees = new java.util.ArrayList<>();
}

View File

@@ -0,0 +1,83 @@
package com.ecep.contract.model;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@Entity
@Table(name = "CONTRACT_EXTEND_VENDOR_INFO", schema = "supplier_ms")
@ToString
public class ExtendVendorInfo implements IdentityEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CONTRACT_ID")
@ToString.Exclude
private Contract contract;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "VENDOR_GROUP_ID")
@ToString.Exclude
private VendorGroup group;
/**
* 合同序号
*/
@Column(name = "CODE_SN")
private int codeSequenceNumber;
/**
* 是否已分配指定供应商
*/
@Column(name = "ASSIGNED_PROVIDER")
private boolean assignedProvider;
/**
* 是否是预采购
*/
@Column(name = "PRE_PURCHASE")
private boolean prePurchase;
@Override
public final boolean equals(Object object) {
if (this == object)
return true;
if (object == null)
return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy
? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass()
: object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
: this.getClass();
if (thisEffectiveClass != oEffectiveClass)
return false;
ExtendVendorInfo that = (ExtendVendorInfo) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
: getClass().hashCode();
}
}

View File

@@ -0,0 +1,38 @@
package com.ecep.contract.model;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
@jakarta.persistence.Entity
@Table(name = "FUNC", schema = "supplier_ms")
public class Function implements IdentityEntity, NamedEntity, Serializable {
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 = "FUNC_KEY")
private String key;
@Column(name = "IS_ACTIVE")
private boolean active;
@Column(name = "CONTROLLER", columnDefinition = "VARCHAR(255)")
private String controller;
@Column(name = "ICON", columnDefinition = "VARCHAR(255)")
private String icon;
@Column(name = "DESCRIPTION", columnDefinition = "VARCHAR(255)")
private String description;
}

View File

@@ -0,0 +1,28 @@
package com.ecep.contract.model;
import jakarta.persistence.Embeddable;
import lombok.Data;
import java.time.MonthDay;
@Embeddable
@Data
public class HistoryPrice {
/**
* 税率1% =1100% =100
*/
private float taxRate;
/**
* 税前价格
*/
private double preTaxPrice;
/**
* 税后价格
*/
private double postTaxPrice;
/**
* 12-31, 字符串方式存储
* {@link com.ecep.contract.manager.ds.MonthDayConverter}
*/
private MonthDay monthDay;
}

View File

@@ -0,0 +1,29 @@
package com.ecep.contract.model;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.annotations.JdbcTypeCode;
import org.hibernate.type.SqlTypes;
import java.time.LocalDate;
@Getter
@Setter
@Entity
@Table(name = "HOLIDAY_TABLE")
@ToString
public class HolidayTable {
@Id
@Column(name = "ID", nullable = false)
@JdbcTypeCode(SqlTypes.DATE)
private LocalDate id;
@Column(name = "IS_HOLIDAY", nullable = false)
private boolean holiday;
}

View File

@@ -0,0 +1,15 @@
package com.ecep.contract.model;
import java.util.Objects;
public interface IdentityEntity {
Integer getId();
void setId(Integer id);
default boolean equals(IdentityEntity that) {
if (this == that) return true;
if (that == null) return false;
return getId() != null && Objects.equals(getId(), that.getId());
}
}

View File

@@ -0,0 +1,185 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
import jakarta.persistence.AttributeOverride;
import jakarta.persistence.AttributeOverrides;
import jakarta.persistence.Column;
import jakarta.persistence.Embedded;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 存货物品清单
*/
@Getter
@Setter
@Entity
@Table(name = "INVENTORY", schema = "supplier_ms")
public class Inventory implements IdentityEntity, BasedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
//
@ManyToOne(fetch = FetchType.LAZY, optional = true)
@JoinColumn(name = "CATALOG_ID")
@ToString.Exclude
private InventoryCatalog catalog;
@Column(name = "CODE")
private String code;
@Column(name = "SPEC")
private String specification;
@Column(name = "SPEC_LOCK", nullable = false)
private boolean specificationLock;
@Column(name = "NAME")
private String name;
@Column(name = "NAME_LOCK")
private boolean nameLock;
/**
* 采购价格
*/
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "taxRate", column = @Column(name = "PURCHASE_TAX")),
@AttributeOverride(name = "preTaxPrice", column = @Column(name = "PURCHASE_PRICE")),
@AttributeOverride(name = "postTaxPrice", column = @Column(name = "PURCHASE_TAX_PRICE"))
})
private Price purchasePrice = new Price();
/**
* 销售价格
*/
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "taxRate", column = @Column(name = "SALE_TAX")),
@AttributeOverride(name = "preTaxPrice", column = @Column(name = "SALE_PRICE")),
@AttributeOverride(name = "postTaxPrice", column = @Column(name = "SALE_TAX_PRICE"))
})
private Price salePrice = new Price();
/**
* 单位
*/
@Column(name = "UNIT")
private String unit;
/**
* 产品重量
*/
@Column(name = "WEIGHT")
private double weight;
/**
* 包装重量
*/
@Column(name = "PACK_WEIGHT")
private double packagedWeight;
/**
* 重量单位
*/
@Column(name = "WEIGHT_UNIT")
private String weightUnit="kg";
/**
* 体积单位
*/
@Column(name = "VOLUME_UNIT")
private String volumeUnit="";
/**
* 尺寸单位
*/
@Column(name = "VOLUME_SIZE_UNIT")
private String sizeUnit="mm";
/**
* 体积尺寸(不含包装)
*/
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "volume", column = @Column(name = "VOLUME")),
@AttributeOverride(name = "length", column = @Column(name = "VOLUME_SIZE_LENGTH")),
@AttributeOverride(name = "width", column = @Column(name = "VOLUME_SIZE_WIDTH")),
@AttributeOverride(name = "height", column = @Column(name = "VOLUME_SIZE_HEIGHT"))
})
private VolumeSize volumeSize = new VolumeSize();
/**
* 包装体积尺寸
*/
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "volume", column = @Column(name = "PACK_VOLUME")),
@AttributeOverride(name = "length", column = @Column(name = "PACK_VOLUME_SIZE_LENGTH")),
@AttributeOverride(name = "width", column = @Column(name = "PACK_VOLUME_SIZE_WIDTH")),
@AttributeOverride(name = "height", column = @Column(name = "PACK_VOLUME_SIZE_HEIGHT"))
})
private VolumeSize packagedVolumeSize = new VolumeSize();
/**
* 创建人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CREATE_BY")
@ToString.Exclude
private Employee creator;
@Column(name = "CREATE_DATE")
private LocalDate createTime;
/**
* 更新人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "UPDATE_BY")
@ToString.Exclude
private Employee updater;
@Column(name = "UPDATE_DATE")
private LocalDateTime updateDate;
@Column(name = "DESCRIPTION")
private String description;
@Override
public String toPrettyString() {
return getName() + " " + getSpecification();
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
Inventory that = (Inventory) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,49 @@
package com.ecep.contract.model;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.proxy.HibernateProxy;
import java.util.Objects;
/**
* 存货分类
*/
@Getter
@Setter
@Entity
@Table(name = "INVENTORY_CATALOG", schema = "supplier_ms")
public class InventoryCatalog implements IdentityEntity, BasedEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@Column(name = "CODE")
private String code;
@Column(name = "NAME")
private String name;
@Override
public String toPrettyString() {
return getName() + " " + getCode();
}
@Override
public final boolean equals(Object o) {
if (this == o) return true;
if (o == null) return false;
Class<?> oEffectiveClass = o instanceof HibernateProxy ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() : o.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
InventoryCatalog that = (InventoryCatalog) o;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,109 @@
package com.ecep.contract.model;
import jakarta.persistence.Entity;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.proxy.HibernateProxy;
import java.time.Year;
import java.util.Objects;
@Getter
@Setter
@ToString
@Entity
@Table(name = "INVENTORY_HISTORY", schema = "supplier_ms")
public class InventoryHistoryPrice implements IdentityEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@JoinColumn(name = "INVENTORY_ID")
@ManyToOne(fetch = FetchType.LAZY)
@ToString.Exclude
private Inventory inventory;
@Column(name = "YEAR")
private Year year;
public void setYear(int year) {
this.year = Year.of(year);
}
/**
* 最新价格
*/
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "taxRate", column = @Column(name = "LATEST_PURCHASE_TAX")),
@AttributeOverride(name = "preTaxPrice", column = @Column(name = "LATEST_PURCHASE_PRICE")),
@AttributeOverride(name = "postTaxPrice", column = @Column(name = "LATEST_PURCHASE_TAX_PRICE")),
@AttributeOverride(name = "monthDay", column = @Column(name = "LATEST_PURCHASE_MONTH_DAY"))
})
private HistoryPrice latestPurchasePrice = new HistoryPrice();
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "taxRate", column = @Column(name = "LATEST_SALE_TAX")),
@AttributeOverride(name = "preTaxPrice", column = @Column(name = "LATEST_SALE_PRICE")),
@AttributeOverride(name = "postTaxPrice", column = @Column(name = "LATEST_SALE_TAX_PRICE")),
@AttributeOverride(name = "monthDay", column = @Column(name = "LATEST_SALE_MONTH_DAY"))
})
private HistoryPrice latestSalePrice = new HistoryPrice();
/**
* 最低价格
*/
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "taxRate", column = @Column(name = "MINI_PURCHASE_TAX")),
@AttributeOverride(name = "preTaxPrice", column = @Column(name = "MINI_PURCHASE_PRICE")),
@AttributeOverride(name = "postTaxPrice", column = @Column(name = "MINI_PURCHASE_TAX_PRICE")),
@AttributeOverride(name = "monthDay", column = @Column(name = "MINI_PURCHASE_MONTH_DAY"))
})
private HistoryPrice miniPurchasePrice = new HistoryPrice();
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "taxRate", column = @Column(name = "MINI_SALE_TAX")),
@AttributeOverride(name = "preTaxPrice", column = @Column(name = "MINI_SALE_PRICE")),
@AttributeOverride(name = "postTaxPrice", column = @Column(name = "MINI_SALE_TAX_PRICE")),
@AttributeOverride(name = "monthDay", column = @Column(name = "MINI_SALE_MONTH_DAY"))
})
private HistoryPrice miniSalePrice = new HistoryPrice();
/**
* 最高价格
*/
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "taxRate", column = @Column(name = "MAX_PURCHASE_TAX")),
@AttributeOverride(name = "preTaxPrice", column = @Column(name = "MAX_PURCHASE_PRICE")),
@AttributeOverride(name = "postTaxPrice", column = @Column(name = "MAX_PURCHASE_TAX_PRICE")),
@AttributeOverride(name = "monthDay", column = @Column(name = "MAX_PURCHASE_MONTH_DAY"))
})
private HistoryPrice maxPurchasePrice = new HistoryPrice();
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "taxRate", column = @Column(name = "MAX_SALE_TAX")),
@AttributeOverride(name = "preTaxPrice", column = @Column(name = "MAX_SALE_PRICE")),
@AttributeOverride(name = "postTaxPrice", column = @Column(name = "MAX_SALE_TAX_PRICE")),
@AttributeOverride(name = "monthDay", column = @Column(name = "MAX_SALE_MONTH_DAY"))
})
private HistoryPrice maxSalePrice = new HistoryPrice();
@Override
public final boolean equals(Object o) {
if (this == o) return true;
if (o == null) return false;
Class<?> oEffectiveClass = o instanceof HibernateProxy ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() : o.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
InventoryHistoryPrice that = (InventoryHistoryPrice) o;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,97 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
import org.springframework.util.StringUtils;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 发票
*/
@Getter
@Setter
@Entity
@Table(name = "INVOICE", schema = "supplier_ms")
@ToString
public class Invoice implements IdentityEntity, BasedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
/**
* 发票号
*/
@Column(name = "CODE")
private String code;
/**
* 发票所属公司
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_ID")
@ToString.Exclude
private Company company;
/**
* 发票开票日期
*/
@Column(name = "INVOICE_DATE")
private LocalDate invoiceDate;
/**
* 备注
*/
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Override
public String toPrettyString() {
if (StringUtils.hasText(getCode())) {
return getCode();
}
return "#" + getId();
}
@Override
public final boolean equals(Object o) {
if (this == o)
return true;
if (o == null)
return false;
Class<?> oEffectiveClass = o instanceof HibernateProxy
? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass()
: o.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
: this.getClass();
if (thisEffectiveClass != oEffectiveClass)
return false;
Invoice invoice = (Invoice) o;
return getId() != null && Objects.equals(getId(), invoice.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
: getClass().hashCode();
}
}

View File

@@ -0,0 +1,7 @@
package com.ecep.contract.model;
public interface NamedEntity {
String getName();
void setName(String name);
}

View File

@@ -0,0 +1,30 @@
package com.ecep.contract.model;
import java.io.Serializable;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@jakarta.persistence.Entity
@Table(name = "PERMISSION", schema = "supplier_ms")
public class Permission implements IdentityEntity, NamedEntity, Serializable {
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;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "FUNC_ID")
@ToString.Exclude
private Function function;
@Column(name = "PERMISSION_KEY")
private String key;
}

View File

@@ -0,0 +1,23 @@
package com.ecep.contract.model;
import java.io.Serializable;
import jakarta.persistence.Embeddable;
import lombok.Data;
@Embeddable
@Data
public class Price implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 税率1% =1100% =100
*/
private float taxRate;
/**
* 税前价格
*/
private double preTaxPrice;
/**
* 税后价格
*/
private double postTaxPrice;
}

View File

@@ -0,0 +1,69 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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 lombok.Getter;
import lombok.Setter;
/**
* 产品类型
*/
@Getter
@Setter
@Entity
@Table(name = "PRODUCT_TYPE")
public class ProductType implements BasedEntity, IdentityEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "NAME")
private String name;
@Column(name = "CODE")
private String code;
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Override
public String toPrettyString() {
return code + " " + name;
}
@Override
public final boolean equals(Object object) {
if (this == object)
return true;
if (object == null)
return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy
? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass()
: object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
: this.getClass();
if (thisEffectiveClass != oEffectiveClass)
return false;
ProductType that = (ProductType) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
: getClass().hashCode();
}
}

View File

@@ -0,0 +1,60 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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 lombok.Getter;
import lombok.Setter;
/**
* 项目产品用途
*/
@Getter
@Setter
@Entity
@Table(name = "PRODUCT_USAGE", schema = "supplier_ms")
public class ProductUsage implements BasedEntity, IdentityEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "NAME")
private String name;
@Column(name = "CODE")
private String code;
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Override
public String toPrettyString() {
return code + " " + name;
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
ProductUsage that = (ProductUsage) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,253 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.Objects;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.proxy.HibernateProxy;
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.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 = "PROJECT", schema = "supplier_ms")
@ToString
public class Project implements IdentityEntity, NamedEntity, BasedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
/**
* 项目对应的客户公司
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CUSTOMER_ID")
@ToString.Exclude
private Company customer;
/**
* 项目名称
*/
@Column(name = "NAME")
private String name;
/**
* 项目代码,{@link #saleType saleType.Code}+{@link #codeYear}+{@link #codeSequenceNumber codeSequenceNumber} 组成
*/
@Column(name = "CODE")
private String code;
/**
* 项目代码年份
*/
@Column(name = "CODE_YEAR")
private int codeYear;
/**
* 项目代码序号
*/
@Column(name = "CODE_SN")
private int codeSequenceNumber;
/**
* 项目地址
*/
@Column(name = "ADDRESS")
private String address;
/**
* 是否投标
*/
@Column(name = "USE_BID")
private boolean useBid;
/**
* 是否报价
*/
@Column(name = "USE_OFFER")
private boolean useOffer;
/**
* 合同金额
*/
@Column(name = "AMOUNT")
private Integer amount;
/**
* 是否标准付款方式
*/
@Column(name = "STANDARD_PAY_WAY", nullable = false)
@ColumnDefault("0")
private boolean standardPayWay;
/**
* 最终用户行业类型
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "INDUSTRY_ID")
@ToString.Exclude
private ProjectIndustry industry;
/**
* 销售类型
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "SALE_TYPE_ID")
@ToString.Exclude
private ProjectSaleType saleType;
/**
* 项目类型
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PROJECT_TYPE_ID")
@ToString.Exclude
private ProjectType projectType;
/**
* 产品类型
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PRODUCT_TYPE_ID")
@ToString.Exclude
private ProductType productType;
/**
* 交货签收方式
* Delivery signature method
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "DELIVERY_SIGN_METHOD_ID")
@ToString.Exclude
private DeliverySignMethod deliverySignMethod;
/**
* 产品用途
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PRODUCT_USAGE_ID")
@ToString.Exclude
private ProductUsage productUsage;
/**
* 申请人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "APPLICANT_ID")
@ToString.Exclude
private Employee applicant;
/**
* 审核人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "AUTHORIZER_ID")
@ToString.Exclude
private Employee authorizer;
/**
* 文件夹路径
*/
@Column(name = "PATH")
private String path;
/**
* 说明
*/
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Column(name = "CREATED")
private LocalDate created;
/**
* 预计开工时间
*/
@Column(name = "PLANNED_START_TIME")
private LocalDate PlannedStartTime;
/**
* 预计完工时间
*/
@Column(name = "PLANNED_COMPLETION_TIME")
private LocalDate PlannedCompletionTime;
/**
* 银行账户(公司可能有多个账户,此项目关联其中一个账户)
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_BANK_ACCOUNT_ID")
@ToString.Exclude
private CompanyBankAccount bankAccount;
/**
* 开票信息(公司可能有多个开票信息,此项目关联其中一个开票信息)
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_INVOICE_INFO_ID")
@ToString.Exclude
private CompanyInvoiceInfo invoiceInfo;
/**
* 主联系人(公司可能有多个联系人,此项目关联其中一个为主联系人)
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "MAIN_CONTACT_ID")
@ToString.Exclude
private CompanyContact mainContact;
/**
* 备用联系人(公司可能有多个联系人,此项目关联其中一个为备用联系人)
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "SUB_CONTACT_ID")
@ToString.Exclude
private CompanyContact subContact;
@Version
@ColumnDefault("0")
@Column(name = "VERSION", nullable = false)
@ToString.Exclude
private int version;
@Override
public String toPrettyString() {
return code + " " + name;
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
Project project = (Project) object;
return getId() != null && Objects.equals(getId(), project.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,8 @@
package com.ecep.contract.model;
public interface ProjectBasedEntity {
Project getProject();
void setProject(Project project);
}

View File

@@ -0,0 +1,140 @@
package com.ecep.contract.model;
import java.time.LocalDateTime;
import org.hibernate.annotations.ColumnDefault;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 项目投标
* <p>
* Approval 审批
*/
@Getter
@Setter
@Entity
@Table(name = "PROJECT_BID")
@ToString
public class ProjectBid implements IdentityEntity, ProjectBasedEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
/**
* 项目
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PROJECT_ID")
@ToString.Exclude
private Project project;
/**
* 客户资信等级
*/
@Column(name = "LEVEL", nullable = false)
private int level;
/**
* 报价金额
*/
@Column(name = "AMOUNT")
private double amount;
/**
* 评价表单文件
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CUS_EVAL_FILE_ID")
@ToString.Exclude
private CompanyCustomerEvaluationFormFile evaluationFile;
/**
* 成本
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COST_ID")
@ToString.Exclude
private ProjectCost cost;
/**
* 是否标准付款方式
*/
@ColumnDefault("0")
@Column(name = "STANDARD_PAY_WAY", nullable = false)
private boolean standardPayWay;
/**
* 非标准付款方式文本
*/
@Column(name = "NO_STANDARD_PAY_WAY_TEXT")
private String noStandardPayWayText;
/**
* 是否标准合同文本
*/
@ColumnDefault("0")
@Column(name = "STANDARD_CONTRACT_TEXT", nullable = false)
private boolean standardContractText;
/**
* 非标准合同文本
*/
@Column(name = "NO_STANDARD_CONTRACT_TEXT")
private String noStandardContractText;
/**
* 审核文件
*/
@Column(name = "AUTHORIZER_FILE")
private String authorizationFile;
/**
* 中标通知书文件
*/
@Column(name = "BID_ACCEPTANCE_LETTER_FILE")
private String bidAcceptanceLetterFile;
/**
* 申请人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "APPLICANT_ID")
@ToString.Exclude
private Employee applicant;
/**
* 申请日期
*/
@Column(name = "APPLY_DATE")
private LocalDateTime applyTime;
/**
* 审核人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "AUTHORIZER_ID")
@ToString.Exclude
private Employee authorizer;
/**
* 审核时间
*/
@Column(name = "AUTHORIZER_DATE")
private LocalDateTime authorizationTime;
/**
* 说明
*/
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
}

View File

@@ -0,0 +1,223 @@
package com.ecep.contract.model;
import java.time.LocalDateTime;
import java.util.Objects;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@Entity
@Table(name = "PROJECT_COST")
@ToString
public class ProjectCost implements IdentityEntity, ProjectBasedEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CONTRACT_ID")
@ToString.Exclude
private Contract contract;
/**
* 项目
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PROJECT_ID")
@ToString.Exclude
private Project project;
@Column(name = "VER")
private int version;
/**
* 是否标准付款方式
*/
@ColumnDefault("0")
@Column(name = "STANDARD_PAY_WAY", nullable = false)
private boolean standardPayWay;
/**
* 非标准付款方式文本
*/
@Column(name = "NO_STANDARD_PAY_WAY_TEXT")
private String noStandardPayWayText;
/**
* 是否标准合同文本
*/
@ColumnDefault("0")
@Column(name = "STANDARD_CONTRACT_TEXT", nullable = false)
private boolean standardContractText;
/**
* 非标准合同文本
*/
@Column(name = "NO_STANDARD_CONTRACT_TEXT")
private String noStandardContractText;
/**
* 印花税
*/
@Column(name = "STAMP_TAX")
private float stampTax;
/**
* 印花税费用
*/
@Column(name = "STAMP_TAX_FEE")
private float stampTaxFee;
/**
* 现场服务费
*/
@Column(name = "ON_SITE_SERVICE_FEE")
private float onSiteServiceFee;
/**
* (拆)装机服务费
*/
@Column(name = "ASSEMBLY_SERVICE_FEE")
private float assemblyServiceFee;
/**
* 技术服务费
*/
@Column(name = "TECHNICAL_SERVICE_FEE")
private float technicalServiceFee;
/**
* 投标服务费
*/
@Column(name = "BID_SERVICE_FEE")
private float bidServiceFee;
/**
* 运费
*/
@Column(name = "FREIGHT_COST")
private float freightCost;
/**
* 保函费
*/
@Column(name = "GUARANTEE_LETTER_FEE")
private float guaranteeLetterFee;
/**
* 营业税及附加费
* 0~100:0% ~ 100%
*/
@Column(name = "TAX_AND_SURCHARGES")
private float taxAndSurcharges;
@Column(name = "TAX_AND_SURCHARGES_FEE")
private float taxAndSurchargesFee;
@Column(name = "IN_QUANTITY")
private double inQuantities;
/**
* 含税进项总金额
*/
@Column(name = "IN_TAX_AMOUNT")
private double inTaxAmount;
/**
* 不含税进项总金额
*/
@Column(name = "IN_EXCLUSIVE_TAX_AMOUNT")
private double inExclusiveTaxAmount;
@Column(name = "OUT_QUANTITY")
private double outQuantities;
/**
* 含税出项总金额
*/
@Column(name = "OUT_TAX_AMOUNT")
private double outTaxAmount;
/**
* 不含税出项总金额
*/
@Column(name = "OUT_EXCLUSIVE_TAX_AMOUNT")
private double outExclusiveTaxAmount;
/**
* 毛利率
*/
@Column(name = "GROSS_PROFIT_MARGIN")
private double grossProfitMargin;
/**
* 申请人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "APPLICANT_ID")
@ToString.Exclude
private Employee applicant;
/**
* 申请时间
*/
@Column(name = "APPLY_DATE")
private LocalDateTime applyTime;
/**
* 审核人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "AUTHORIZER_ID")
@ToString.Exclude
private Employee authorizer;
/**
* 审核时间
*/
@Column(name = "AUTHORIZER_DATE")
private LocalDateTime authorizationTime;
/**
* 审核文件
*/
@Column(name = "AUTHORIZER_FILE")
private String authorizationFile;
/**
* 说明
*/
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Column(name = "IMPORT_LOCK")
private boolean importLock;
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
ProjectCost that = (ProjectCost) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,154 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@Entity
@Table(name = "PROJECT_COST_ITEM")
@ToString
public class ProjectCostItem implements IdentityEntity, BasedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COST_ID")
@ToString.Exclude
private ProjectCost cost;
/**
* 项目
*/
@Column(name = "TITLE")
private String title;
/**
* 规格
*/
@Column(name = "SPECIFICATION")
private String specification;
/**
* 单位
*/
@Column(name = "UNIT")
private String unit;
/**
* 存货
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "INVENTORY_ID")
@ToString.Exclude
private Inventory inventory;
/**
* 进项税率
*/
@Column(name = "IN_TAX_RATE")
private double inTaxRate;
/**
* 进项不含税单价
*/
@Column(name = "IN_TAX_PRICE")
private double inExclusiveTaxPrice;
/**
* 进项数量
*/
@Column(name = "IN_QUANTITY")
private double inQuantity;
/**
* 出项税率
*/
@Column(name = "OUT_TAX_RATE")
private double outTaxRate;
/**
* 出项不含税单价
*/
@Column(name = "OUT_TAX_PRICE")
private double outExclusiveTaxPrice;
/**
* 出项数量
*/
@Column(name = "OUT_QUANTITY")
private double outQuantity;
/**
* 备注
*/
@Column(name = "REMARK")
private String remark;
/**
* 创建日期
*/
@Column(name = "CREATE_TIME")
private LocalDateTime createDate;
/**
* 创建人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CREATE_BY")
@ToString.Exclude
private Employee creator;
/**
* 更新日期
*/
@Column(name = "UPDATE_TIME")
private LocalDateTime updateDate;
/**
* 更新人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "UPDATE_BY")
@ToString.Exclude
private Employee updater;
@Override
public String toPrettyString() {
return getTitle() + " " + getSpecification();
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
ProjectCostItem that = (ProjectCostItem) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,80 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
import com.ecep.contract.ProjectFileType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 项目文件
*/
@Getter
@Setter
@Entity
@Table(name = "PROJECT_FILE")
@ToString
public class ProjectFile implements IdentityEntity, ProjectBasedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PROJECT_ID")
@ToString.Exclude
private Project project;
@Column(name = "TYPE")
@Enumerated(EnumType.STRING)
private ProjectFileType type;
/**
* 资质文件路径,全路径,网盘地址
*/
@Column(name = "FILE_PATH")
private String filePath;
@Override
public final boolean equals(Object object) {
if (this == object)
return true;
if (object == null)
return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy
? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass()
: object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
: this.getClass();
if (thisEffectiveClass != oEffectiveClass)
return false;
ProjectFile that = (ProjectFile) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
: getClass().hashCode();
}
}

View File

@@ -0,0 +1,36 @@
package com.ecep.contract.model;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
import com.ecep.contract.ProjectFileType;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@Entity
@Table(name = "PROJECT_FILE_TYPE_LOCAL")
@ToString
public class ProjectFileTypeLocal extends BaseEnumEntity<ProjectFileType> {
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
ProjectFileTypeLocal that = (ProjectFileTypeLocal) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,79 @@
package com.ecep.contract.model;
import java.time.LocalDate;
import java.time.LocalDateTime;
import com.ecep.contract.ContractPayWay;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 项目投标
* <p>
* Approval 审批
*/
@Getter
@Setter
@Entity
@Table(name = "PROJECT_FUND_PLAN")
@ToString
public class ProjectFundPlan implements IdentityEntity, ProjectBasedEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PROJECT_ID")
private Project project;
/**
* 付款日期
*/
@Column(name = "PAY_DATE")
private LocalDate payDate;
/**
* 付款方式
*/
@Column(name = "PAY_WAY")
@Enumerated(EnumType.ORDINAL)
private ContractPayWay payWay;
/**
* 付款比例
*/
@Column(name = "PAY_RATIO")
private float payRatio;
/**
* 付款金额
*/
@Column(name = "PAY_CURRENCY")
private double payCurrency;
/**
* 付款条件
*/
@Column(name = "PAY_TERM")
private String payTerm;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CONTRACT_PAY_PLAN_ID")
private ContractPayPlan contractPayPlan;
/**
* 更新日期,从销售合同和采购合同中更新
*/
@Column(name = "UPDATE_TIME")
private LocalDateTime updateDate;
}

View File

@@ -0,0 +1,64 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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 lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 最终用户行业类型
*/
@Getter
@Setter
@Entity
@Table(name = "PROJECT_INDUSTRY", schema = "supplier_ms", indexes = {
})
@ToString
public class ProjectIndustry implements BasedEntity, IdentityEntity, NamedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "NAME")
private String name;
@Column(name = "CODE")
private String code;
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Override
public String toPrettyString() {
return code + " " + name;
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
ProjectIndustry that = (ProjectIndustry) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,111 @@
package com.ecep.contract.model;
import java.time.LocalDateTime;
import org.hibernate.annotations.ColumnDefault;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 项目报价
* <p>
* Approval 审批
*/
@Getter
@Setter
@Entity
@Table(name = "PROJECT_QUOTATION")
@ToString
public class ProjectQuotation implements IdentityEntity, ProjectBasedEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
/**
* 项目
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PROJECT_ID")
@ToString.Exclude
private Project project;
/**
* 客户资信等级
*/
@Column(name = "LEVEL", nullable = false)
private int level;
/**
* 是否标准付款方式
*/
@ColumnDefault("0")
@Column(name = "STANDARD_PAY_WAY", nullable = false)
private boolean standardPayWay;
/**
* 非标准付款方式文本
*/
@Column(name = "NO_STANDARD_PAY_WAY_TEXT")
private String noStandardPayWayText;
/**
* 报价金额
*/
@Column(name = "AMOUNT")
private double amount;
/**
* 申请人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "APPLICANT_ID")
@ToString.Exclude
private Employee applicant;
/**
* 申请日期
*/
@Column(name = "APPLY_DATE")
private LocalDateTime applyTime;
/**
* 审核人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "AUTHORIZER_ID")
@ToString.Exclude
private Employee authorizer;
/**
* 审核时间
*/
@Column(name = "AUTHORIZER_DATE")
private LocalDateTime authorizationTime;
/**
* 审核文件
*/
@Column(name = "AUTHORIZER_FILE")
private String authorizationFile;
/**
* 说明
*/
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
/**
* 评价表单文件
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CUS_EVAL_FILE_ID")
@ToString.Exclude
private CompanyCustomerEvaluationFormFile evaluationFile;
}

View File

@@ -0,0 +1,79 @@
package com.ecep.contract.model;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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 lombok.Getter;
import lombok.Setter;
/**
* 销售类型
*/
@Getter
@Setter
@Entity
@Table(name = "PROJECT_SALE_TYPE")
public class ProjectSaleType implements IdentityEntity, NamedEntity, BasedEntity {
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "NAME")
private String name;
@Column(name = "CODE")
private String code;
@Column(name = "PATH")
private String path;
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Column(name = "STORE_BY_YEAR")
private boolean storeByYear;
/**
* 是否启用重大项目决策(三重一大)
*/
@Column(name = "CRITICAL_PROJECT_DECISION")
private boolean criticalProjectDecision;
/**
* 符合重大项目的合同金额条件
*/
@Column(name = "CRITICAL_PROJECT_LIMIT")
private double criticalProjectLimit;
@Column(name = "IS_ACTIVE")
private boolean active;
@Override
public String toPrettyString() {
return code + " " + name;
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
ProjectSaleType that = (ProjectSaleType) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,82 @@
package com.ecep.contract.model;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
import com.ecep.contract.ContractFileType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 项目销售类型对应的必须的关联文件类型
*/
@Getter
@Setter
@Entity
@Table(name = "PROJECT_SALE_TYPE_REQ_FILE_TYPE")
public class ProjectSaleTypeRequireFileType implements IdentityEntity, BasedEntity {
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "SALE_TYPE_ID")
@ToString.Exclude
private ProjectSaleType saleType;
@Column(name = "FILE_TYPE")
@Enumerated(EnumType.STRING)
private ContractFileType fileType;
/**
* 文件频率,如:一次、每天、每周、每月、每季度、每年等
*/
@Column(name = "FREQUENCY")
@Enumerated(EnumType.STRING)
private ContractFileType.Frequency frequency;
@Override
public String toPrettyString() {
return getFileType().name();
}
@Override
public final boolean equals(Object object) {
if (this == object)
return true;
if (object == null)
return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy
? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass()
: object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
: this.getClass();
if (thisEffectiveClass != oEffectiveClass)
return false;
ProjectSaleTypeRequireFileType that = (ProjectSaleTypeRequireFileType) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
: getClass().hashCode();
}
}

View File

@@ -0,0 +1,60 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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 lombok.Getter;
import lombok.Setter;
/**
* 项目类型
*/
@Getter
@Setter
@Entity
@Table(name = "PROJECT_TYPE")
public class ProjectType implements IdentityEntity, NamedEntity, BasedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "NAME")
private String name;
@Column(name = "CODE")
private String code;
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Override
public String toPrettyString() {
return code + " " + name;
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
ProjectType that = (ProjectType) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,133 @@
package com.ecep.contract.model;
import java.time.LocalDateTime;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 采购账单凭证(专用发票) Purchase Bill Voucher
* 对应 U8 的 PurBillVouch 表
*/
@Getter
@Setter
@Entity
@Table(name = "PURCHASE_BILL_VOUCHER", schema = "supplier_ms")
@ToString
public class PurchaseBillVoucher implements IdentityEntity, BasedEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
/**
* PurBillVouch 表的 PBVID 主键
*/
@Column(name = "REF_ID")
private int refId;
@Column(name = "CODE")
private String code;
/**
* 所属公司
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_ID")
@ToString.Exclude
private Company company;
/**
* 发票,对应 cPBVCode 字段
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "INVOICE_ID")
@ToString.Exclude
private Invoice invoice;
/**
* 业务员
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "EMPLOYEE_ID")
@ToString.Exclude
private Employee employee;
/**
* 制单人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "MAKER_ID")
@ToString.Exclude
private Employee maker;
/**
* 制单日期
*/
@Column(name = "MAKER_DATE")
private LocalDateTime makerDate;
/**
* 修改日期
*/
@Column(name = "MODIFY_DATE")
private LocalDateTime modifyDate;
/**
* 审核人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "VERIFIER_ID")
@ToString.Exclude
private Employee verifier;
/**
* 审核日期
*/
@Column(name = "VERIFIER_DATE")
private LocalDateTime verifierDate;
/**
* 备注
*/
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Override
public String toPrettyString() {
return getId() + "#" + getCode();
}
@Override
public final boolean equals(Object o) {
if (this == o)
return true;
if (o == null)
return false;
Class<?> oEffectiveClass = o instanceof HibernateProxy
? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass()
: o.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
: this.getClass();
if (thisEffectiveClass != oEffectiveClass)
return false;
PurchaseBillVoucher that = (PurchaseBillVoucher) o;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
: getClass().hashCode();
}
}

View File

@@ -0,0 +1,116 @@
package com.ecep.contract.model;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 采购账单凭证(专用发票)条目, Purchase Bill Voucher Item
* 对应 U8 的 PurBillVouchs 表
*/
@Getter
@Setter
@Entity
@Table(name = "PURCHASE_BILL_VOUCHER_ITEM", schema = "supplier_ms")
@ToString
public class PurchaseBillVoucherItem implements IdentityEntity, BasedEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
/**
* PurBillVouchs 表的 ID 主键
*/
@Column(name = "REF_ID")
private int refId;
/**
* 对应的采购账单凭证
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "VOUCHER_ID")
@ToString.Exclude
private PurchaseBillVoucher voucher;
/**
* 对应的采购订单, 对应 iPOsID 字段
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PURCHASE_ORDER_ITEM_ID")
@ToString.Exclude
private PurchaseOrderItem orderItem;
/**
* 对应的发票
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "INVOICE_ID")
@ToString.Exclude
private Invoice invoice;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "INVENTORY_ID")
@ToString.Exclude
private Inventory inventory;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CONTRACT_ID")
@ToString.Exclude
private Contract contract;
@Column(name = "QUANTITY")
private double quantity;
/**
* 结算单价
*/
@Column(name = "PRICE")
private double price;
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Override
public final boolean equals(Object o) {
if (this == o)
return true;
if (o == null)
return false;
Class<?> oEffectiveClass = o instanceof HibernateProxy
? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass()
: o.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
: this.getClass();
if (thisEffectiveClass != oEffectiveClass)
return false;
PurchaseBillVoucherItem that = (PurchaseBillVoucherItem) o;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
: getClass().hashCode();
}
@Override
public String toPrettyString() {
return "#" + getId();
}
}

View File

@@ -0,0 +1,116 @@
package com.ecep.contract.model;
import java.time.LocalDateTime;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 采购订单
* 对应 U8 的 PO_Pomain 表
*/
@Getter
@Setter
@Entity
@Table(name = "PURCHASE_ORDER", schema = "supplier_ms")
@ToString
public class PurchaseOrder implements IdentityEntity, BasedEntity, ContractBasedEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CONTRACT_ID")
@ToString.Exclude
private Contract contract;
/**
* 业务员
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "EMPLOYEE_ID")
@ToString.Exclude
private Employee employee;
@Column(name = "CODE")
private String code;
@Column(name = "REF_ID")
private int refId;
@Column(name = "VEN_CODE")
private String vendorCode;
/**
* 制单人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "MAKER_ID")
@ToString.Exclude
private Employee maker;
/**
* 制单日期
*/
@Column(name = "MAKER_DATE")
private LocalDateTime makerDate;
/**
* 修改日期
*/
@Column(name = "MODIFY_DATE")
private LocalDateTime modifyDate;
/**
* 审核人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "VERIFIER_ID")
@ToString.Exclude
private Employee verifier;
/**
* 审核日期
*/
@Column(name = "VERIFIER_DATE")
private LocalDateTime verifierDate;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CLOSER_ID")
@ToString.Exclude
private Employee closer;
@Column(name = "CLOSER_DATE")
private LocalDateTime closerDate;
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Override
public String toPrettyString() {
return "#" + getId();
}
@Override
public final boolean equals(Object o) {
if (this == o) return true;
if (o == null) return false;
Class<?> oEffectiveClass = o instanceof HibernateProxy ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() : o.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
PurchaseOrder that = (PurchaseOrder) o;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,105 @@
package com.ecep.contract.model;
import java.time.LocalDate;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 采购订单条目
* 对应 U8 的 PO_Podetails 表
*/
@Getter
@Setter
@Entity
@Table(name = "PURCHASE_ORDER_ITEM", schema = "supplier_ms")
@ToString
public class PurchaseOrderItem implements IdentityEntity, BasedEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ORDER_ID")
@ToString.Exclude
private PurchaseOrder order;
@Column(name = "REF_ID")
private int refId;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "INVENTORY_ID")
@ToString.Exclude
private Inventory inventory;
/**
* 数量
*/
@Column(name = "QUANTITY")
private double quantity;
/**
* 含税单价
*/
@Column(name = "TAX_PRICE")
private double price;
/**
* 税率
*/
@Column(name = "TAX_RATE")
private double taxRate;
/**
* 不含税单价
*/
@Column(name = "EX_TAX_PRICE")
private double exclusiveTaxPrice;
@Column(name = "ARRIVE_DATE")
private LocalDate arriveDate;
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Override
public final boolean equals(Object o) {
if (this == o)
return true;
if (o == null)
return false;
Class<?> oEffectiveClass = o instanceof HibernateProxy
? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass()
: o.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
: this.getClass();
if (thisEffectiveClass != oEffectiveClass)
return false;
PurchaseOrderItem that = (PurchaseOrderItem) o;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
: getClass().hashCode();
}
@Override
public String toPrettyString() {
return "#" + getId();
}
}

View File

@@ -0,0 +1,88 @@
package com.ecep.contract.model;
import java.time.LocalDate;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 采购入库单
* 对应 U8 的 表
*/
@Getter
@Setter
@Entity
@Table(name = "PURCHASE_RECEIPT", schema = "supplier_ms")
@ToString
public class PurchaseReceipt implements IdentityEntity, BasedEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
/**
* 入库单号
*/
@Column(name = "CODE")
private String code;
/**
* 对应采购订单
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ORDER_ID")
@ToString.Exclude
private PurchaseOrder order;
/**
* 入库日期
*/
@Column(name = "RECEIPT_DATE")
private LocalDate verifierDate;
/**
* 到货日期
*/
@Column(name = "ARRIVE_DATE")
private LocalDate arriveDate;
/**
* 备注
*/
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Override
public String toPrettyString() {
return "#" + getId();
}
@Override
public final boolean equals(Object o) {
if (this == o) return true;
if (o == null) return false;
Class<?> oEffectiveClass = o instanceof HibernateProxy ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() : o.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
PurchaseReceipt that = (PurchaseReceipt) o;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,100 @@
package com.ecep.contract.model;
import java.time.LocalDate;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 采购结算凭证
* 对应 U8 的 PurSettleVouch 表
*/
@Getter
@Setter
@Entity
@Table(name = "PURCHASE_SETTLE_VOUCHER", schema = "supplier_ms")
@ToString
public class PurchaseSettlementVoucher implements IdentityEntity, BasedEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
/**
* PurSettleVouch 表的 PSVID 主键
*/
@Column(name = "REF_ID")
private int refId;
@Column(name = "CODE")
private String code;
/**
* 对应 dSVDate 字段
*/
@Column(name = "SETTLE_DATE")
private LocalDate date;
/**
* 供应商,对应 cVenCode 字段
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_ID")
@ToString.Exclude
private Company company;
/**
* 业务员,对应 cPersonCode 字段
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "EMPLOYEE_ID")
@ToString.Exclude
private Employee employee;
/**
* 制单人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "MAKER_ID")
@ToString.Exclude
private Employee maker;
/**
* 备注
*/
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Override
public String toPrettyString() {
return "#" + getId();
}
@Override
public final boolean equals(Object o) {
if (this == o) return true;
if (o == null) return false;
Class<?> oEffectiveClass = o instanceof HibernateProxy ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() : o.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
PurchaseSettlementVoucher that = (PurchaseSettlementVoucher) o;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,111 @@
package com.ecep.contract.model;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 采购结算凭证详情
* 对应 U8 的 PurSettleVouchs 表
*/
@Getter
@Setter
@Entity
@Table(name = "PURCHASE_SETTLE_VOUCHER_ITEM", schema = "supplier_ms")
@ToString
public class PurchaseSettlementVoucherItem implements IdentityEntity, BasedEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
/**
* PurSettleVouchs 表的 ID 主键
*/
@Column(name = "REF_ID")
private int refId;
/**
* 采购结算单
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "VOUCHER_ID")
@ToString.Exclude
private PurchaseSettlementVoucher voucher;
/**
* 会计师
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ACCOUNTANT_ID")
@ToString.Exclude
private Employee accountant;
/**
* 对应的发票
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "INVOICE_ID")
@ToString.Exclude
private Invoice invoice;
/**
* 对应的采购入库单
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PURCHASE_RECEIPT_ID")
@ToString.Exclude
private PurchaseReceipt receipt;
/**
* cInvCode 字段
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "INVENTORY_ID")
@ToString.Exclude
private Inventory inventory;
@Column(name = "QUANTITY")
private double quantity;
/**
* 结算单价
*/
@Column(name = "PRICE")
private double price;
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Override
public final boolean equals(Object o) {
if (this == o) return true;
if (o == null) return false;
Class<?> oEffectiveClass = o instanceof HibernateProxy ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() : o.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
PurchaseSettlementVoucherItem that = (PurchaseSettlementVoucherItem) o;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
@Override
public String toPrettyString() {
return "#" + getId();
}
}

View File

@@ -0,0 +1,133 @@
package com.ecep.contract.model;
import java.time.LocalDateTime;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 销售账单凭证(发票) Sales Bill Voucher
* 对应 U8 的 SaleBillVouch 表
*/
@Getter
@Setter
@Entity
@Table(name = "SALES_BILL_VOUCHER", schema = "supplier_ms")
@ToString
public class SalesBillVoucher implements IdentityEntity, BasedEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
/**
* SaleBillVouch 表的 SBVID 主键
*/
@Column(name = "REF_ID")
private int refId;
@Column(name = "CODE")
private String code;
/**
* 所属公司
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "COMPANY_ID")
@ToString.Exclude
private Company company;
/**
* 对应的销售订单
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ORDER_ID")
@ToString.Exclude
private SalesOrder order;
/**
* 业务员
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "EMPLOYEE_ID")
@ToString.Exclude
private Employee employee;
/**
* 制单人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "MAKER_ID")
@ToString.Exclude
private Employee maker;
/**
* 制单日期
*/
@Column(name = "MAKER_DATE")
private LocalDateTime makerDate;
/**
* 修改日期
*/
@Column(name = "MODIFY_DATE")
private LocalDateTime modifyDate;
/**
* 审核人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "VERIFIER_ID")
@ToString.Exclude
private Employee verifier;
/**
* 审核日期
*/
@Column(name = "VERIFIER_DATE")
private LocalDateTime verifierDate;
/**
* 备注
*/
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Override
public String toPrettyString() {
return getId() + "#" + getCode();
}
@Override
public final boolean equals(Object o) {
if (this == o)
return true;
if (o == null)
return false;
Class<?> oEffectiveClass = o instanceof HibernateProxy
? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass()
: o.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass()
: this.getClass();
if (thisEffectiveClass != oEffectiveClass)
return false;
SalesBillVoucher that = (SalesBillVoucher) o;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy
? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode()
: getClass().hashCode();
}
}

View File

@@ -0,0 +1,87 @@
package com.ecep.contract.model;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 销售账单凭证(发票)条目, Sales Bill Voucher Item
* 对应 U8 的 SaleBillVouchs 表
*/
@Getter
@Setter
@Entity
@Table(name = "SALES_BILL_VOUCHER_ITEM", schema = "supplier_ms")
@ToString
public class SalesBillVoucherItem implements IdentityEntity, BasedEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
/**
* PurBillVouchs 表的 ID 主键
*/
@Column(name = "REF_ID")
private int refId;
/**
* 对应的采购账单凭证
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "VOUCHER_ID")
@ToString.Exclude
private SalesBillVoucher voucher;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "INVENTORY_ID")
@ToString.Exclude
private Inventory inventory;
@Column(name = "QUANTITY")
private double quantity;
/**
* 结算单价
*/
@Column(name = "PRICE")
private double price;
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Override
public final boolean equals(Object o) {
if (this == o) return true;
if (o == null) return false;
Class<?> oEffectiveClass = o instanceof HibernateProxy ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() : o.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
SalesBillVoucherItem that = (SalesBillVoucherItem) o;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
@Override
public String toPrettyString() {
return "#" + getId();
}
}

View File

@@ -0,0 +1,103 @@
package com.ecep.contract.model;
import java.time.LocalDate;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 销售订单
* 对应 U8 的 SO_SOMain 表
*/
@Getter
@Setter
@Entity
@Table(name = "CONTRACT_SALES_ORDER", schema = "supplier_ms")
@ToString
public class SalesOrder implements IdentityEntity, BasedEntity, ContractBasedEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CONTRACT_ID")
@ToString.Exclude
private Contract contract;
/**
* 业务员
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "EMPLOYEE_ID")
@ToString.Exclude
private Employee employee;
@Column(name = "CODE")
private String code;
/**
* 制单人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "MAKER_ID")
@ToString.Exclude
private Employee maker;
/**
* 制单日期
*/
@Column(name = "MAKER_DATE")
private LocalDate makerDate;
/**
* 审核人
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "VERIFIER_ID")
@ToString.Exclude
private Employee verifier;
/**
* 审核日期
*/
@Column(name = "VERIFIER_DATE")
private LocalDate verifierDate;
/**
* 备注
*/
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Override
public final boolean equals(Object o) {
if (this == o) return true;
if (o == null) return false;
Class<?> oEffectiveClass = o instanceof HibernateProxy ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() : o.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
SalesOrder that = (SalesOrder) o;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
@Override
public String toPrettyString() {
return "#" + getId();
}
}

View File

@@ -0,0 +1,97 @@
package com.ecep.contract.model;
import java.time.LocalDate;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 销售订单条目
* 对应 U8 的 SO_SODetails 表
*/
@Getter
@Setter
@Entity
@Table(name = "CONTRACT_SALES_ORDER_ITEM", schema = "supplier_ms")
@ToString
public class SalesOrderItem implements IdentityEntity, BasedEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ORDER_ID")
@ToString.Exclude
private SalesOrder order;
@Column(name = "CODE")
private String code;
@Column(name = "NAME")
private String name;
@Column(name = "QUANTITY")
private double quantity;
/**
* 含税单价
*/
@Column(name = "TAX_PRICE")
private double price;
/**
* 税率
*/
@Column(name = "TAX_RATE")
private double taxRate;
/**
* 不含税单价
*/
@Column(name = "EX_TAX_PRICE")
private double exclusiveTaxPrice;
@Column(name = "START_DATE")
private LocalDate startDate;
@Column(name = "END_DATE")
private LocalDate endDate;
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Override
public final boolean equals(Object o) {
if (this == o) return true;
if (o == null) return false;
Class<?> oEffectiveClass = o instanceof HibernateProxy ? ((HibernateProxy) o).getHibernateLazyInitializer().getPersistentClass() : o.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
SalesOrderItem that = (SalesOrderItem) o;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
@Override
public String toPrettyString() {
return "#" + getId();
}
}

View File

@@ -0,0 +1,35 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.time.LocalDateTime;
import org.hibernate.annotations.ColumnDefault;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Entity
@Table(name = "SYS_CONF", schema = "supplier_ms")
public class SysConf implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID", nullable = false)
private String id;
@Column(name = "VALUE")
private String value;
@ColumnDefault("CURRENT_TIMESTAMP")
@Column(name = "MODIFIED")
private LocalDateTime modified;
@Column(name = "CREATED")
private LocalDateTime created;
}

View File

@@ -0,0 +1,47 @@
package com.ecep.contract.model;
import java.io.Serializable;
import com.ecep.contract.UnitType;
import jakarta.persistence.Column;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
/**
* 单位
*/
@Getter
@Setter
@jakarta.persistence.Entity
@Table(name = "UNIT", schema = "supplier_ms")
public class Unit implements IdentityEntity, NamedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", nullable = false)
private Integer id;
@Column(name = "CODE")
private String code;
@Column(name = "NAME")
private String name;
@Enumerated(EnumType.ORDINAL)
@Column(name = "UNIT_TYPE")
private UnitType unitType;
// 转换比例,与标准单位之间的比例
@Column(name = "RATIO")
private double ratio;
@Column(name = "STANDARD")
private boolean standard;
}

View File

@@ -0,0 +1,67 @@
package com.ecep.contract.model;
import java.io.Serializable;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
import com.ecep.contract.VendorType;
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 lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* U8系统的 供应商分类
*/
@Getter
@Setter
@Entity
@Table(name = "VENDOR_CATALOG", schema = "supplier_ms")
@ToString
public class VendorCatalog implements BasedEntity, Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
/**
* 用友U8系统中的合同分类代码
*/
@Column(name = "CODE")
private String code;
@Column(name = "TYPE")
private VendorType type;
@Column(name = "NAME")
private String name;
@Override
public String toPrettyString() {
return code + " " + name;
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
VendorCatalog that = (VendorCatalog) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,79 @@
package com.ecep.contract.model;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
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 lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 采购合同类型
*/
@Getter
@Setter
@Entity
@Table(name = "VENDOR_GROUP", schema = "supplier_ms")
@ToString
public class VendorGroup implements IdentityEntity, NamedEntity, BasedEntity {
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "NAME")
private String name;
@Column(name = "CODE")
private String code;
@Column(name = "DESCRIPTION", columnDefinition = "TEXT")
private String description;
@Column(name = "IS_ACTIVE")
private boolean active;
@Column(name = "IS_PRICE_COMP")
private boolean priceComparison;
/**
* 中选的供应商是否可以免除报价表
*/
@Column(name = "IS_REQUIRE_QUOTATION_SHEET_FOR_BID")
private boolean requireQuotationSheetForBid;
/**
* 是否可以提前预采购
*/
@Column(name = "CAN_PRE_PURCHASE")
private boolean canPrePurchase;
@Override
public String toPrettyString() {
return code + " " + name;
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
VendorGroup that = (VendorGroup) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,73 @@
package com.ecep.contract.model;
import java.util.Objects;
import org.hibernate.proxy.HibernateProxy;
import com.ecep.contract.ContractFileType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 供应商类型对应的必须的关联文件类型
*/
@Getter
@Setter
@Entity
@Table(name = "VENDOR_GROUP_REQ_FILE_TYPE")
public class VendorGroupRequireFileType implements IdentityEntity, BasedEntity {
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "GROUP_ID")
@ToString.Exclude
private VendorGroup group;
@Column(name = "FILE_TYPE")
@Enumerated(EnumType.STRING)
private ContractFileType fileType;
/**
* 文件频率,如:一次、每天、每周、每月、每季度、每年等
*/
@Column(name = "FREQUENCY")
@Enumerated(EnumType.STRING)
private ContractFileType.Frequency frequency;
@Override
public String toPrettyString() {
return getFileType().name();
}
@Override
public final boolean equals(Object object) {
if (this == object) return true;
if (object == null) return false;
Class<?> oEffectiveClass = object instanceof HibernateProxy ? ((HibernateProxy) object).getHibernateLazyInitializer().getPersistentClass() : object.getClass();
Class<?> thisEffectiveClass = this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass() : this.getClass();
if (thisEffectiveClass != oEffectiveClass) return false;
VendorGroupRequireFileType that = (VendorGroupRequireFileType) object;
return getId() != null && Objects.equals(getId(), that.getId());
}
@Override
public final int hashCode() {
return this instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashCode() : getClass().hashCode();
}
}

View File

@@ -0,0 +1,20 @@
package com.ecep.contract.model;
import com.ecep.contract.VendorType;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 供应商类型(多国语言支持)
*/
@Getter
@Setter
@Entity
@Table(name = "VENDOR_TYPE_LOCAL")
@ToString(callSuper = true)
public class VendorTypeLocal extends BaseEnumEntity<VendorType> {
}

View File

@@ -0,0 +1,28 @@
package com.ecep.contract.model;
import jakarta.persistence.Embeddable;
import lombok.Data;
/**
* 体积尺寸
*/
@Embeddable
@Data
public class VolumeSize {
/**
* 体积
*/
private double volume;
/**
* 长
*/
private double length;
/**
* 宽
*/
private double width;
/**
* 高
*/
private double height;
}