feat: sample

This commit is contained in:
2025-12-02 14:08:07 +09:00
parent 2036a85df9
commit a90b72a1fa
9 changed files with 338 additions and 17 deletions

View File

@@ -1,6 +1,14 @@
package com.kamco.cd.kamcoback.postgres.entity;
import jakarta.persistence.*;
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto;
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.MapSheet;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.SequenceGenerator;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
import org.locationtech.jts.geom.Geometry;
@@ -10,6 +18,7 @@ import org.locationtech.jts.geom.Geometry;
@Table(name = "tb_map_inkx_5k")
@Entity
public class MapInkx5kEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "tb_map_inkx_5k_fid_seq_gen")
@SequenceGenerator(
@@ -29,4 +38,8 @@ public class MapInkx5kEntity {
@Column(name = "fid_k50")
private Long fidK50;
public InferenceResultDto.MapSheet toEntity() {
return new MapSheet(mapidcdNo, mapidNm);
}
}

View File

@@ -1,10 +1,15 @@
package com.kamco.cd.kamcoback.postgres.entity;
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto;
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.Clazz;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.SequenceGenerator;
import jakarta.persistence.Table;
import jakarta.validation.constraints.Size;
@@ -51,6 +56,10 @@ public class MapSheetAnalDataGeomEntity {
@Column(name = "map_sheet_num")
private Long mapSheetNum;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "map_5k_id", referencedColumnName = "fid")
private MapInkx5kEntity map5k;
@Column(name = "compare_yyyy")
private Integer compareYyyy;
@@ -133,4 +142,19 @@ public class MapSheetAnalDataGeomEntity {
@Column(name = "geom_center", columnDefinition = "geometry")
private Geometry geomCenter;
public InferenceResultDto.DetailListEntity toEntity() {
Clazz comparedClazz = new Clazz(classBeforeCd, classBeforeProb);
Clazz targetClazz = new Clazz(classAfterCd, classAfterProb);
InferenceResultDto.MapSheet mapSheet = map5k != null ? map5k.toEntity() : null;
InferenceResultDto.Coordinate coordinate = null;
if (geomCenter != null) {
org.locationtech.jts.geom.Point point = (org.locationtech.jts.geom.Point) geomCenter;
coordinate = new InferenceResultDto.Coordinate(point.getX(), point.getY());
}
return new InferenceResultDto.DetailListEntity(
comparedClazz, targetClazz, mapSheet, coordinate);
}
}

View File

@@ -9,7 +9,9 @@ import jakarta.persistence.SequenceGenerator;
import jakarta.persistence.Table;
import jakarta.validation.constraints.Size;
import java.time.ZonedDateTime;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.annotations.ColumnDefault;
@@ -17,6 +19,9 @@ import org.hibernate.annotations.ColumnDefault;
@Setter
@Entity
@Table(name = "tb_map_sheet_anal")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
// TODO SETTER 제거
// TODO 주석
public class MapSheetAnalEntity {
@Id
@@ -28,21 +33,24 @@ public class MapSheetAnalEntity {
@Column(name = "anal_uid", nullable = false)
private Long id;
// TODO UUID
// UK 추가
@Column(name = "compare_yyyy")
private Integer compareYyyy;
private Integer compareYyyy; // 비교년도
@Column(name = "target_yyyy")
private Integer targetYyyy;
private Integer targetYyyy; // 기분년도
@Column(name = "model_uid")
private Long modelUid;
private Long modelUid; // 모델식별키 ?
@Size(max = 100)
@Column(name = "server_ids", length = 100)
private String serverIds;
private String serverIds; // 서버ID?
@Column(name = "anal_map_sheet", length = Integer.MAX_VALUE)
private String analMapSheet;
private String analMapSheet; // 분석도엽?
@Column(name = "anal_strt_dttm")
private ZonedDateTime analStrtDttm;
@@ -54,15 +62,15 @@ public class MapSheetAnalEntity {
private Long analSec;
@Column(name = "anal_pred_sec")
private Long analPredSec;
private Long analPredSec; // 예상소요초?
@Size(max = 20)
@Column(name = "anal_state", length = 20)
private String analState;
private String analState; // enum 으로 관리
@Size(max = 20)
@Column(name = "gukyuin_used", length = 20)
private String gukyuinUsed;
private String gukyuinUsed; // Boolean으로 관리
@Column(name = "accuracy")
private Double accuracy;
@@ -71,17 +79,9 @@ public class MapSheetAnalEntity {
@Column(name = "result_url")
private String resultUrl;
@ColumnDefault("now()")
@Column(name = "created_dttm")
private ZonedDateTime createdDttm;
@Column(name = "created_uid")
private Long createdUid;
@ColumnDefault("now()")
@Column(name = "updated_dttm")
private ZonedDateTime updatedDttm;
@Column(name = "updated_uid")
private Long updatedUid;
@@ -94,4 +94,13 @@ public class MapSheetAnalEntity {
@Column(name = "base_map_sheet_num")
private String baseMapSheetNum;
// TODO CommonDateEntity ?
@ColumnDefault("now()")
@Column(name = "created_dttm")
private ZonedDateTime createdDttm;
@ColumnDefault("now()")
@Column(name = "updated_dttm")
private ZonedDateTime updatedDttm;
}