feat: add MaintenanceTask entity

This commit is contained in:
chiguyong 2026-03-24 00:07:49 +08:00
parent efdc4b71f6
commit 305e09101a
1 changed files with 95 additions and 0 deletions

View File

@ -0,0 +1,95 @@
package com.ether.pms.mdm.entity;
import jakarta.persistence.*;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.UUID;
@Entity
@Table(name = "ops_maintenance_task")
@Data
public class MaintenanceTask {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
@Column(name = "project_id", nullable = false)
private UUID projectId;
@Column(name = "task_code", nullable = false, unique = true)
private String taskCode;
@Column(name = "plan_id")
private UUID planId;
@Column(name = "equipment_id")
private UUID equipmentId;
@Column(name = "task_type")
@Enumerated(EnumType.STRING)
private TaskType taskType = TaskType.PREVENTIVE;
public enum TaskType {
PREVENTIVE, // 预防性维护
CORRECTIVE // 纠正性维护
}
@Column(name = "trigger_type")
@Enumerated(EnumType.STRING)
private MaintenancePlan.TriggerType triggerType;
@Column(name = "maintenance_items", columnDefinition = "TEXT")
private String maintenanceItems;
@Column(nullable = false)
@Enumerated(EnumType.STRING)
private Status status = Status.PENDING;
public enum Status {
PENDING, // 待接受
ACCEPTED, // 已接受
IN_PROGRESS, // 执行中
COMPLETED, // 已完成
CANCELLED // 已取消
}
@Column(name = "assigned_to")
private UUID assignedTo;
@Column(name = "scheduled_date")
private LocalDateTime scheduledDate;
@Column(name = "actual_start_date")
private LocalDateTime actualStartDate;
@Column(name = "actual_end_date")
private LocalDateTime actualEndDate;
@Column(name = "labor_hours", precision = 10, scale = 2)
private BigDecimal laborHours;
@Column(name = "materials_cost", precision = 12, scale = 2)
private BigDecimal materialsCost;
@Column(columnDefinition = "TEXT")
private String remarks;
@Column(name = "created_at")
private LocalDateTime createdAt;
@Column(name = "updated_at")
private LocalDateTime updatedAt;
@PrePersist
public void prePersist() {
createdAt = LocalDateTime.now();
updatedAt = LocalDateTime.now();
}
@PreUpdate
public void preUpdate() {
updatedAt = LocalDateTime.now();
}
}