Files
ERP/oa-backend/src/main/java/com/kaidi/oa/domain/MfgEnvSupplierProfile.java
T

228 lines
8.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.kaidi.oa.domain;
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 java.time.Instant;
/**
* 制造管理中心 / 环保设备制造中心 —— 供应商资质台账(需求 §4 供应商管理 · 补深 GAP#4 med)。
*
* <p>独立于 {@link Supplier} 通用供应商主数据,本实体专为环保设备制造领域建立<b>结构化资质档案</b>
* <ul>
* <li>ISO 证书(isoExpiry / isoCertNo)、环保认证(envCertType / envCertExpiry);</li>
* <li>业绩记录(performanceJson:历史供货项目数量/合格率,Lob 存 JSON 数组);</li>
* <li>综合评价(qualityScore / deliveryScore / priceScore → overallGrade A/B/C/D);</li>
* <li>重要外购件合格供应商名录标记(keyPartSupplier=true 代表该供应商入围名录);</li>
* <li>状态机:申请中 → 已准入 / 暂停 / 停用。</li>
* </ul>
* 表名加 mfg_env_ 前缀,零撞名。
*/
@Entity
@Table(name = "mfg_env_supplier_profile")
public class MfgEnvSupplierProfile {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/** 供应商编号(空则自动 ESUP-序号)。 */
private String supplierCode;
/** 供应商名称(不能为空)。 */
@Column(nullable = false)
private String supplierName;
/** 统一社会信用代码。 */
private String creditCode;
/** 供应商类型:原材料供应商 / 标准件供应商 / 外协加工商 / 备件供应商 / 综合供应商。 */
private String supplierType;
/** 联系人。 */
private String contactPerson;
/** 联系电话。 */
private String contactPhone;
/** 注册地址。 */
private String address;
// -------- ISO 资质 --------
/** ISO 证书编号。 */
private String isoCertNo;
/** ISO 证书类型(ISO 9001 / ISO 14001 / ISO 45001 / IATF 16949 等)。 */
private String isoCertType;
/** ISO 证书到期日 YYYY-MM-DD。 */
private String isoExpiry;
/** ISO 认证机构名称。 */
private String isoCertBody;
// -------- 环保认证 --------
/** 环保认证类型(三同时证明 / 环评批复 / 清洁生产认证 / 无)。 */
private String envCertType;
/** 环保认证到期日 YYYY-MM-DD。 */
private String envCertExpiry;
/** 环保认证文件编号。 */
private String envCertNo;
// -------- 供货业绩 --------
/**
* 历史供货业绩(JSON 数组):[{projectName, deliveryYear, qty, qualifiedRate, customer}...]。
* Lob 存储,前端渲染为折叠卡片。
*/
@Column(columnDefinition = "TEXT")
private String performanceJson;
/** 历史供货总次数(冗余,便于快速汇总)。 */
private Integer deliveryCount;
// -------- 供应商评价 --------
/** 质量评分(0-100)。 */
private Integer qualityScore;
/** 交期评分(0-100)。 */
private Integer deliveryScore;
/** 价格竞争力评分(0-100)。 */
private Integer priceScore;
/** 综合评级:A(优选) / B(合格) / C(观察) / D(停用候补)。自动从三项评分计算。 */
private String overallGrade;
/** 最近评价日期 YYYY-MM-DD。 */
private String lastEvalDate;
/** 评价人/评价部门。 */
private String evaluator;
// -------- 合格供应商名录 --------
/**
* 是否入围重要外购件合格供应商名录(电机/减速机/仪表等关键件供应商)。
* true = 已列入合格供应商名录(Key Parts Approved Vendor)。
*/
private Boolean keyPartSupplier;
/**
* 指定供应的关键外购件列表(多种用";"分隔,如"电机;减速机;变频器")。
*/
private String keyParts;
// -------- 状态机 --------
/**
* 状态:申请中 / 已准入 / 暂停(再评估后可恢复)/ 停用。
*/
private String status;
/** 备注(审核意见/停用原因等)。 */
private String remark;
private Instant createdAt;
private Instant updatedAt;
// -------- getters & setters --------
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getSupplierCode() { return supplierCode; }
public void setSupplierCode(String supplierCode) { this.supplierCode = supplierCode; }
public String getSupplierName() { return supplierName; }
public void setSupplierName(String supplierName) { this.supplierName = supplierName; }
public String getCreditCode() { return creditCode; }
public void setCreditCode(String creditCode) { this.creditCode = creditCode; }
public String getSupplierType() { return supplierType; }
public void setSupplierType(String supplierType) { this.supplierType = supplierType; }
public String getContactPerson() { return contactPerson; }
public void setContactPerson(String contactPerson) { this.contactPerson = contactPerson; }
public String getContactPhone() { return contactPhone; }
public void setContactPhone(String contactPhone) { this.contactPhone = contactPhone; }
public String getAddress() { return address; }
public void setAddress(String address) { this.address = address; }
public String getIsoCertNo() { return isoCertNo; }
public void setIsoCertNo(String isoCertNo) { this.isoCertNo = isoCertNo; }
public String getIsoCertType() { return isoCertType; }
public void setIsoCertType(String isoCertType) { this.isoCertType = isoCertType; }
public String getIsoExpiry() { return isoExpiry; }
public void setIsoExpiry(String isoExpiry) { this.isoExpiry = isoExpiry; }
public String getIsoCertBody() { return isoCertBody; }
public void setIsoCertBody(String isoCertBody) { this.isoCertBody = isoCertBody; }
public String getEnvCertType() { return envCertType; }
public void setEnvCertType(String envCertType) { this.envCertType = envCertType; }
public String getEnvCertExpiry() { return envCertExpiry; }
public void setEnvCertExpiry(String envCertExpiry) { this.envCertExpiry = envCertExpiry; }
public String getEnvCertNo() { return envCertNo; }
public void setEnvCertNo(String envCertNo) { this.envCertNo = envCertNo; }
public String getPerformanceJson() { return performanceJson; }
public void setPerformanceJson(String performanceJson) { this.performanceJson = performanceJson; }
public Integer getDeliveryCount() { return deliveryCount; }
public void setDeliveryCount(Integer deliveryCount) { this.deliveryCount = deliveryCount; }
public Integer getQualityScore() { return qualityScore; }
public void setQualityScore(Integer qualityScore) { this.qualityScore = qualityScore; }
public Integer getDeliveryScore() { return deliveryScore; }
public void setDeliveryScore(Integer deliveryScore) { this.deliveryScore = deliveryScore; }
public Integer getPriceScore() { return priceScore; }
public void setPriceScore(Integer priceScore) { this.priceScore = priceScore; }
public String getOverallGrade() { return overallGrade; }
public void setOverallGrade(String overallGrade) { this.overallGrade = overallGrade; }
public String getLastEvalDate() { return lastEvalDate; }
public void setLastEvalDate(String lastEvalDate) { this.lastEvalDate = lastEvalDate; }
public String getEvaluator() { return evaluator; }
public void setEvaluator(String evaluator) { this.evaluator = evaluator; }
public Boolean getKeyPartSupplier() { return keyPartSupplier; }
public void setKeyPartSupplier(Boolean keyPartSupplier) { this.keyPartSupplier = keyPartSupplier; }
public String getKeyParts() { return keyParts; }
public void setKeyParts(String keyParts) { this.keyParts = keyParts; }
public String getStatus() { return status; }
public void setStatus(String status) { this.status = status; }
public String getRemark() { return remark; }
public void setRemark(String remark) { this.remark = remark; }
public Instant getCreatedAt() { return createdAt; }
public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; }
public Instant getUpdatedAt() { return updatedAt; }
public void setUpdatedAt(Instant updatedAt) { this.updatedAt = updatedAt; }
}