package com.estate.expert.admin.domain.exam.task.check; import com.estate.expert.admin.domain.exam.task.Task; import com.estate.expert.admin.domain.exam.task.pass.ByPassInfo; import com.estate.expert.admin.domain.exam.task.review.ReviewTask; import com.estate.expert.admin.domain.plan.Plan; import com.estate.expert.admin.domain.project.Project; import com.estate.expert.admin.domain.project.info.ProjectInfo; import lombok.Getter; import lombok.Setter; import org.hibernate.annotations.Type; import javax.persistence.*; import java.util.Map; /** * 项目检查任务 * * 每个计划对应该委托人的项目,均可创建一个项目 */ @Getter @Setter @Entity @DiscriminatorValue("check_task") public class CheckTask extends Task { /** * 项目ID */ @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "project_id") private Project project; /** * 计划ID */ @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "plan_id") private Plan plan; @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "bypass_info_id", referencedColumnName = "id") private ByPassInfo byPassInfo; /** * 任务状态 */ private CheckTaskState state; @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "review_task_id", referencedColumnName = "id") private ReviewTask reviewTask; /** * 地点信息 */ private String location; /** * 打分评价结果 */ private Float systemScore; @Type(type = "io.hypersistence.utils.hibernate.type.json.JsonType") @Column(columnDefinition = "json") private Map deviceScoreMap; /** * 模糊评价结果 */ private Float systemFuzzy; @Type(type = "io.hypersistence.utils.hibernate.type.json.JsonType") @Column(columnDefinition = "json") private Map deviceFuzzyMap; /** * 经纬度 * double[0] 经度 * double[1] 纬度 */ @Type(type = "io.hypersistence.utils.hibernate.type.json.JsonType") @Column(columnDefinition = "json") private Double[] gps; @Override public String getOptionName() { return project.getName(); } //关闭项目的时候,关联项目最后一条信息到检查任务上,不管是谁添加的,用于出报告 @ManyToOne @JoinColumn(name = "project_info_id") private ProjectInfo projectInfo; }