package com.jeesite.modules.mes.entity; import java.util.Date; import javax.validation.constraints.Size; import com.fasterxml.jackson.annotation.JsonFormat; import com.jeesite.common.entity.DataEntity; import com.jeesite.common.mybatis.annotation.Column; import com.jeesite.common.mybatis.annotation.JoinTable; import com.jeesite.common.mybatis.annotation.JoinTable.Type; import com.jeesite.common.mybatis.annotation.Table; import com.jeesite.common.utils.excel.annotation.ExcelField; import com.jeesite.common.utils.excel.annotation.ExcelField.Align; import com.jeesite.common.utils.excel.annotation.ExcelFields; /** * 设备维保记录Entity * @author mes * @version 2026-06-28 */ @Table(name="mes_device_maintenance", alias="a", label="设备维保记录信息", columns={ @Column(name="id", attrName="id", label="id", isPK=true), @Column(name="device_tree_code", attrName="deviceTreeCode", label="设备编码", isQuery=true), @Column(name="maintenance_date", attrName="maintenanceDate", label="维保日期", isQuery=true), @Column(name="fault_time", attrName="faultTime", label="故障发生时间"), @Column(name="resume_production_time", attrName="resumeProductionTime", label="恢复生产时间"), @Column(name="downtime", attrName="downtime", label="停机时长"), @Column(name="repair_start_time", attrName="repairStartTime", label="维修开始时间"), @Column(name="repair_end_time", attrName="repairEndTime", label="维修结束时间"), @Column(name="repair_duration", attrName="repairDuration", label="维修时长"), @Column(name="fault_phenomenon", attrName="faultPhenomenon", label="故障现象"), @Column(name="repair_measure", attrName="repairMeasure", label="维修措施"), @Column(name="fault_category", attrName="faultCategory", label="故障类别", isQuery=true), @Column(name="root_cause_analysis", attrName="rootCauseAnalysis", label="根本原因分析"), @Column(name="spare_part_name", attrName="sparePartName", label="备件名称"), @Column(name="quantity", attrName="quantity", label="数量"), @Column(name="repair_user", attrName="repairUser", label="维修人", isQuery=true), @Column(name="acceptance_result", attrName="acceptanceResult", label="验收结果", isQuery=true), @Column(name="remarks", attrName="remarks", label="备注"), @Column(name="create_by", attrName="createBy", label="create_by", isUpdate=false, isQuery=false), @Column(name="create_date", attrName="createDate", label="create_date", isUpdate=false, isQuery=false, isUpdateForce=true), @Column(name="update_by", attrName="updateBy", label="update_by", isQuery=false), @Column(name="update_date", attrName="updateDate", label="update_date", isQuery=false, isUpdateForce=true), }, joinTable={ @JoinTable(type=Type.LEFT_JOIN, entity=MesDevice.class, attrName="this", alias="b", on="a.device_tree_code = b.tree_code", columns={ @Column(name="tree_name", attrName="deviceName", label="设备名称"), @Column(name="device_code", attrName="deviceCode", label="机台号"), }), }, orderBy="a.maintenance_date DESC" ) public class MesDeviceMaintenance extends DataEntity { private static final long serialVersionUID = 1L; private String deviceTreeCode; // 设备编码(关联mes_device.tree_code) private Date maintenanceDate; // 维保日期 private Date faultTime; // 故障发生时间 private Date resumeProductionTime; // 恢复生产时间 private String downtime; // 停机时长 private Date repairStartTime; // 维修开始时间 private Date repairEndTime; // 维修结束时间 private String repairDuration; // 维修时长 private String faultPhenomenon; // 故障现象 private String repairMeasure; // 维修措施 private String faultCategory; // 故障类别 private String rootCauseAnalysis; // 根本原因分析 private String sparePartName; // 备件名称 private Integer quantity; // 数量 private String repairUser; // 维修人 private String acceptanceResult; // 验收结果 // JoinTable 关联字段 private String deviceName; // 设备名称(来自设备结构表 tree_name) private String deviceCode; // 机台号(来自设备结构表 device_code) @ExcelFields({ @ExcelField(title="维保日期", attrName="maintenanceDate", align=Align.CENTER, sort=10), @ExcelField(title="设备名称", attrName="deviceName", align=Align.CENTER, sort=20), @ExcelField(title="机台号", attrName="deviceCode", align=Align.CENTER, sort=30), @ExcelField(title="故障发生时间", attrName="faultTime", align=Align.CENTER, sort=40), @ExcelField(title="恢复生产时间", attrName="resumeProductionTime", align=Align.CENTER, sort=50), @ExcelField(title="停机时长", attrName="downtime", align=Align.CENTER, sort=60), @ExcelField(title="维修开始时间", attrName="repairStartTime", align=Align.CENTER, sort=70), @ExcelField(title="维修结束时间", attrName="repairEndTime", align=Align.CENTER, sort=80), @ExcelField(title="维修时长", attrName="repairDuration", align=Align.CENTER, sort=90), @ExcelField(title="故障现象", attrName="faultPhenomenon", align=Align.CENTER, sort=100), @ExcelField(title="维修措施", attrName="repairMeasure", align=Align.CENTER, sort=110), @ExcelField(title="故障类别", attrName="faultCategory", align=Align.CENTER, sort=120), @ExcelField(title="根本原因分析", attrName="rootCauseAnalysis", align=Align.CENTER, sort=130), @ExcelField(title="备件名称", attrName="sparePartName", align=Align.CENTER, sort=140), @ExcelField(title="数量", attrName="quantity", align=Align.CENTER, sort=150), @ExcelField(title="维修人", attrName="repairUser", align=Align.CENTER, sort=160), @ExcelField(title="验收结果", attrName="acceptanceResult", align=Align.CENTER, sort=170), @ExcelField(title="备注", attrName="remarks", align=Align.CENTER, sort=180), }) public MesDeviceMaintenance() { this(null); } public MesDeviceMaintenance(String id){ super(id); } @Size(min=0, max=64, message="设备编码长度不能超过 64 个字符") public String getDeviceTreeCode() { return deviceTreeCode; } public void setDeviceTreeCode(String deviceTreeCode) { this.deviceTreeCode = deviceTreeCode; } @JsonFormat(pattern = "yyyy-MM-dd") public Date getMaintenanceDate() { return maintenanceDate; } public void setMaintenanceDate(Date maintenanceDate) { this.maintenanceDate = maintenanceDate; } @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") public Date getFaultTime() { return faultTime; } public void setFaultTime(Date faultTime) { this.faultTime = faultTime; } @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") public Date getResumeProductionTime() { return resumeProductionTime; } public void setResumeProductionTime(Date resumeProductionTime) { this.resumeProductionTime = resumeProductionTime; } @Size(min=0, max=100, message="停机时长长度不能超过 100 个字符") public String getDowntime() { return downtime; } public void setDowntime(String downtime) { this.downtime = downtime; } @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") public Date getRepairStartTime() { return repairStartTime; } public void setRepairStartTime(Date repairStartTime) { this.repairStartTime = repairStartTime; } @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") public Date getRepairEndTime() { return repairEndTime; } public void setRepairEndTime(Date repairEndTime) { this.repairEndTime = repairEndTime; } @Size(min=0, max=100, message="维修时长长度不能超过 100 个字符") public String getRepairDuration() { return repairDuration; } public void setRepairDuration(String repairDuration) { this.repairDuration = repairDuration; } public String getFaultPhenomenon() { return faultPhenomenon; } public void setFaultPhenomenon(String faultPhenomenon) { this.faultPhenomenon = faultPhenomenon; } public String getRepairMeasure() { return repairMeasure; } public void setRepairMeasure(String repairMeasure) { this.repairMeasure = repairMeasure; } @Size(min=0, max=100, message="故障类别长度不能超过 100 个字符") public String getFaultCategory() { return faultCategory; } public void setFaultCategory(String faultCategory) { this.faultCategory = faultCategory; } public String getRootCauseAnalysis() { return rootCauseAnalysis; } public void setRootCauseAnalysis(String rootCauseAnalysis) { this.rootCauseAnalysis = rootCauseAnalysis; } @Size(min=0, max=255, message="备件名称长度不能超过 255 个字符") public String getSparePartName() { return sparePartName; } public void setSparePartName(String sparePartName) { this.sparePartName = sparePartName; } public Integer getQuantity() { return quantity; } public void setQuantity(Integer quantity) { this.quantity = quantity; } @Size(min=0, max=100, message="维修人长度不能超过 100 个字符") public String getRepairUser() { return repairUser; } public void setRepairUser(String repairUser) { this.repairUser = repairUser; } @Size(min=0, max=100, message="验收结果长度不能超过 100 个字符") public String getAcceptanceResult() { return acceptanceResult; } public void setAcceptanceResult(String acceptanceResult) { this.acceptanceResult = acceptanceResult; } public String getDeviceName() { return deviceName; } public void setDeviceName(String deviceName) { this.deviceName = deviceName; } public String getDeviceCode() { return deviceCode; } public void setDeviceCode(String deviceCode) { this.deviceCode = deviceCode; } }