package com.estate.expert.admin.domain.exam.eval;
|
|
import com.estate.expert.admin.domain.business.client.Client;
|
import com.estate.expert.admin.domain.common.EntityBase;
|
import com.estate.expert.admin.domain.exam.task.check.CheckTask;
|
import com.estate.expert.admin.domain.plan.Plan;
|
import com.estate.expert.admin.domain.project.Project;
|
import lombok.Getter;
|
import lombok.NoArgsConstructor;
|
import lombok.Setter;
|
import org.hibernate.annotations.Type;
|
|
import javax.persistence.*;
|
import java.util.UUID;
|
|
@Getter
|
@Setter
|
@NoArgsConstructor
|
@Entity
|
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
|
@DiscriminatorColumn(name = "type")
|
public class EvalResult extends EntityBase {
|
|
@ManyToOne(fetch = FetchType.LAZY)
|
@JoinColumn(name = "check_task_id", nullable = false)
|
private CheckTask task;
|
|
/**
|
* 实际评分
|
*/
|
private float score;
|
|
/**
|
* 用于地图显示的矫正分数
|
*/
|
private float displayScore;
|
|
/**
|
* 评分结果
|
*/
|
@Type(type = "io.hypersistence.utils.hibernate.type.json.JsonType")
|
@Column(columnDefinition = "json")
|
private int[]errorCounts;
|
|
///// 以下数据都是从task中获取的,为了方便查询,冗余存储
|
@ManyToOne(fetch = FetchType.LAZY)
|
@JoinColumn(name = "plan_id")
|
private Plan plan;
|
|
@ManyToOne(fetch = FetchType.LAZY)
|
@JoinColumn(name = "project_id")
|
private Project project;
|
|
@ManyToOne(fetch = FetchType.LAZY)
|
@JoinColumn(name = "client_id")
|
private Client client;
|
|
private boolean containSystemRes;
|
/**
|
* 是否有设备评分
|
*/
|
private boolean containDeviceRes;
|
|
public EvalResult(CheckTask task, float score) {
|
this.setName(UUID.randomUUID().toString());
|
this.task = task;
|
this.score = score;
|
this.displayScore = score;
|
this.plan = task.getPlan();
|
this.project = task.getProject();
|
this.client = task.getProject().getClient();
|
}
|
}
|