diff --git a/data/ctr/src/main/java/kr/co/palnet/kac/data/ctr/model/CtrCntrlBas.java b/data/ctr/src/main/java/kr/co/palnet/kac/data/ctr/model/CtrCntrlBas.java index c070c35..bf2ec2f 100644 --- a/data/ctr/src/main/java/kr/co/palnet/kac/data/ctr/model/CtrCntrlBas.java +++ b/data/ctr/src/main/java/kr/co/palnet/kac/data/ctr/model/CtrCntrlBas.java @@ -1,100 +1,99 @@ package kr.co.palnet.kac.data.ctr.model; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.Id; -import jakarta.persistence.Table; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; +import jakarta.persistence.*; +import lombok.*; import java.time.Instant; +import java.util.List; @Data @NoArgsConstructor @AllArgsConstructor @Builder +@ToString(exclude = {"ctrCntrlHstryList"}) @Entity @Table(name = "CTR_CNTRL_BAS") public class CtrCntrlBas { // 관제ID @Id - @Column(name = "CNTRL_ID") + @Column(name = "CNTRL_ID", length = 60) private String cntrlId; // 식별번호 - @Column(name = "IDNTF_NUM") + @Column(name = "IDNTF_NUM", length = 30, nullable = false) private String idntfNum; // 상태코드 - @Column(name = "STATUS_CD") + @Column(name = "STATUS_CD", length = 20, nullable = false) private String statusCd; // 처리상태여부 - @Column(name = "PROC_STATUS_YN") + @Column(name = "PROC_STATUS_YN", columnDefinition = "char(1) default 'N'", nullable = false) private String procStatusYn; // 물체타입코드 - @Column(name = "OBJECT_TYPE_CD") + @Column(name = "OBJECT_TYPE_CD", length = 20, nullable = false) private String objectTypeCd; // 비행시작일시 - @Column(name = "FLGHT_ST_DT", columnDefinition = "TIMESTAMP") + @Column(name = "FLGHT_ST_DT", columnDefinition = "datetime(6)") private Instant flghtStDt; // 비행종료일시 - @Column(name = "FLGHT_END_DT", columnDefinition = "TIMESTAMP") + @Column(name = "FLGHT_END_DT", columnDefinition = "datetime(6)") private Instant flghtEndDt; // 관제시작일시 - @Column(name = "CNTRL_ST_DT", columnDefinition = "TIMESTAMP") + @Column(name = "CNTRL_ST_DT", columnDefinition = "datetime(6)", nullable = false) private Instant cntrlStDt; // 관제종료일시 - @Column(name = "CNTRL_END_DT", columnDefinition = "TIMESTAMP") + @Column(name = "CNTRL_END_DT", columnDefinition = "datetime(6)") private Instant cntrlEndDt; // 총비행시간 - @Column(name = "TTL_TIME") - private Double ttlTime = 0.0; + @Column(name = "TTL_TIME", columnDefinition = "double default 0.0") + private Double ttlTime; // 총비행시간단위 - @Column(name = "TTL_TIME_TYPE") + @Column(name = "TTL_TIME_TYPE", length = 20) private String ttlTimeType; // 총비행거리 - @Column(name = "TTL_DSTNC") - private Double ttlDstnc = 0.0; + @Column(name = "TTL_DSTNC", columnDefinition = "double default 0.0") + private Double ttlDstnc; // 총비행거리단위 - @Column(name = "TTL_DSTNC_TYPE") + @Column(name = "TTL_DSTNC_TYPE", length = 20) private String ttlDstncType; // 평균속도 - @Column(name = "AVRG_SPEED") - private Double avrgSpeed = 0.0; + @Column(name = "AVRG_SPEED", columnDefinition = "double default 0.0") + private Double avrgSpeed; // 평균속도단위 - @Column(name = "AVRG_SPEED_TYPE") + @Column(name = "AVRG_SPEED_TYPE", length = 20) private String avrgSpeedType; // 배터리소모량 - @Column(name = "BTTR_CNSMPTN") - private Double bttrCnsmptn = 0.0; + @Column(name = "BTTR_CNSMPTN", columnDefinition = "double default 0.0") + private Double bttrCnsmptn; // 종료타입코드 - @Column(name = "END_TYPE_CD") + @Column(name = "END_TYPE_CD", length = 20) private String endTypeCd; // 생성일시 - @Column(name = "CREATE_DT", columnDefinition = "TIMESTAMP") + @Column(name = "CREATE_DT", columnDefinition = "datetime", updatable = false, nullable = false) private Instant createDt; // 수정일시 - @Column(name = "UPDATE_DT", columnDefinition = "TIMESTAMP") + @Column(name = "UPDATE_DT", columnDefinition = "datetime", nullable = false) private Instant updateDt; + @OneToMany(mappedBy = "ctrCntrlBas", fetch = FetchType.LAZY) + private List ctrCntrlHstryList; + } \ No newline at end of file diff --git a/data/ctr/src/main/java/kr/co/palnet/kac/data/ctr/model/CtrCntrlHstry.java b/data/ctr/src/main/java/kr/co/palnet/kac/data/ctr/model/CtrCntrlHstry.java index 2da0139..c0d7567 100644 --- a/data/ctr/src/main/java/kr/co/palnet/kac/data/ctr/model/CtrCntrlHstry.java +++ b/data/ctr/src/main/java/kr/co/palnet/kac/data/ctr/model/CtrCntrlHstry.java @@ -1,18 +1,17 @@ package kr.co.palnet.kac.data.ctr.model; import jakarta.persistence.*; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; +import lombok.*; import java.time.Instant; +import java.util.List; @Data @NoArgsConstructor @AllArgsConstructor @Builder +@ToString(exclude = {"ctrCntrlHstryAreaList", "ctrCntrlBas"}) @Entity @Table(name = "CTR_CNTRL_HSTRY") public class CtrCntrlHstry { @@ -20,96 +19,105 @@ public class CtrCntrlHstry { // 이력일련번호 @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "HSTRY_SNO") - private int hstrySno; + @Column(name = "HSTRY_SNO", columnDefinition = "int unsigned") + private Long hstrySno; // 관제ID - @Column(name = "CNTRL_ID") + @Column(name = "CNTRL_ID", length = 60, nullable = false) private String cntrlId; // 터미널ID - @Column(name = "TRMNL_ID") + @Column(name = "TRMNL_ID", length = 100, nullable = false) private String trmnlId; // 메시지코드 - @Column(name = "MSSG_TYPE_CD") + @Column(name = "MSSG_TYPE_CD", length = 20, nullable = false) private String mssgTypeCd; // 상태코드 - @Column(name = "STATUS_CD") + @Column(name = "STATUS_CD", length = 20) private String statusCd; // 위도 - @Column(name = "LAT") + @Column(name = "LAT", columnDefinition = "double(18,10)", nullable = false) private Double lat; // 경도 - @Column(name = "LON") + @Column(name = "LON", columnDefinition = "double(18,10)", nullable = false) private Double lon; // 속도 - @Column(name = "SPEED") + @Column(name = "SPEED", columnDefinition = "double") private Double speed; // 속도단위 - @Column(name = "SPEED_TYPE") + @Column(name = "SPEED_TYPE", length = 20) private String speedType; // 방향 - @Column(name = "HEADING") + @Column(name = "HEADING", columnDefinition = "double") private Double heading; // 고도단위 - @Column(name = "ELEV_TYPE") + @Column(name = "ELEV_TYPE", length = 20) private String elevType; // 고도 - @Column(name = "ELEV") + @Column(name = "ELEV", columnDefinition = "double") private Double elev; // 이동거리 - @Column(name = "MV_DSTNC") + @Column(name = "MV_DSTNC", columnDefinition = "double") private Double mvDstnc; // 이동거리단위 - @Column(name = "MV_DSTNC_TYPE") + @Column(name = "MV_DSTNC_TYPE", length = 20) private String mvDstncType; // 배터리잔량 - @Column(name = "BTTR_LVL") + @Column(name = "BTTR_LVL", columnDefinition = "double") private Double bttrLvl; // 배터리전압 - @Column(name = "BTTR_VLTG") + @Column(name = "BTTR_VLTG", columnDefinition = "double") private Double bttrVltg; // 단말기수신시간 - @Column(name = "TRMNL_RCV_DT", columnDefinition = "TIMESTAMP") + @Column(name = "TRMNL_RCV_DT", columnDefinition = "datetime(6)") private Instant trmnlRcvDt; // 서버수신시간 - @Column(name = "SRVR_RCV_DT", columnDefinition = "TIMESTAMP") + @Column(name = "SRVR_RCV_DT", columnDefinition = "datetime(6)", nullable = false) private Instant srvrRcvDt; // 환경센서 필드 // 일산화탄소 - @Column(name = "SENSOR_CO") + @Column(name = "SENSOR_CO", columnDefinition = "double") private Double sensorCo; // 아황산가스 - @Column(name = "SENSOR_SO2") + @Column(name = "SENSOR_SO2", columnDefinition = "double") private Double sensorSo2; // 이산화질소 - @Column(name = "SENSOR_NO2") + @Column(name = "SENSOR_NO2", columnDefinition = "double") private Double sensorNo2; // 오존 - @Column(name = "SENSOR_O3") + @Column(name = "SENSOR_O3", columnDefinition = "double") private Double sensorO3; // 미세먼지 - @Column(name = "SENSOR_DUST") + @Column(name = "SENSOR_DUST", columnDefinition = "double") private Double sensorDust; + @JoinColumn( + name = "CNTRL_ID", insertable = false, updatable = false, + foreignKey = @ForeignKey(name = "FK_CTR_CNTRL_HSTRY_CTR_CNTRL_BAS") + ) + @ManyToOne(fetch = FetchType.LAZY) + private CtrCntrlBas ctrCntrlBas; + + @OneToMany(mappedBy = "ctrCntrlHstry", fetch = FetchType.LAZY) + private List ctrCntrlHstryAreaList; } \ No newline at end of file diff --git a/data/ctr/src/main/java/kr/co/palnet/kac/data/ctr/model/CtrCntrlHstryArea.java b/data/ctr/src/main/java/kr/co/palnet/kac/data/ctr/model/CtrCntrlHstryArea.java index 87c8482..6c50bac 100644 --- a/data/ctr/src/main/java/kr/co/palnet/kac/data/ctr/model/CtrCntrlHstryArea.java +++ b/data/ctr/src/main/java/kr/co/palnet/kac/data/ctr/model/CtrCntrlHstryArea.java @@ -1,10 +1,7 @@ package kr.co.palnet.kac.data.ctr.model; import jakarta.persistence.*; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; +import lombok.*; import java.time.Instant; @@ -13,6 +10,7 @@ import java.time.Instant; @NoArgsConstructor @AllArgsConstructor @Builder +@ToString(exclude = {"ctrCntrlHstry"}) @Entity @Table(name = "CTR_CNTRL_HSTRY_AREA") public class CtrCntrlHstryArea { @@ -20,71 +18,79 @@ public class CtrCntrlHstryArea { // 이력지역일련번호 @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "HSTRY_AREA_SNO") - private int hstryAreaSno; + @Column(name = "HSTRY_AREA_SNO", columnDefinition = "int unsigned") + private Long hstryAreaSno; + + // 이력일련번호 + @Column(name = "HSTRY_SNO", columnDefinition = "int unsigned", nullable = false) + private int hstrySno; // 관제ID - @Column(name = "CNTRL_ID") + @Column(name = "CNTRL_ID", length = 60, nullable = false) private String cntrlId; // 행동구분 - @Column(name = "ACTN_TYPE") + @Column(name = "ACTN_TYPE", length = 20, nullable = false) private String actnType; // 처리여부 - @Column(name = "PRCS_YN") + @Column(name = "PRCS_YN", columnDefinition = "char(1) default 'N'", nullable = false) private String prcsYn; - // 이력일련번호 - @Column(name = "HSTRY_SNO") - private int hstrySno; // 위도 - @Column(name = "LAT") - private double lat; + @Column(name = "LAT", columnDefinition = "double(18,10)") + private Double lat; // 경도 - @Column(name = "LON") - private double lon; + @Column(name = "LON", columnDefinition = "double(18,10)") + private Double lon; // 시도명 - @Column(name = "AREA1") + @Column(name = "AREA1", length = 20) private String area1; // 시군구명 - @Column(name = "AREA2") + @Column(name = "AREA2", length = 20) private String area2; // 읍면동명 - @Column(name = "AREA3") + @Column(name = "AREA3", length = 20) private String area3; // 우편번호 - @Column(name = "ZIP_CD") + @Column(name = "ZIP_CD", length = 6) private String zipCd; // 도로명 - @Column(name = "LAND_NM") + @Column(name = "LAND_NM", length = 30) private String landNm; // 도로번호 - @Column(name = "LAND_NUM") + @Column(name = "LAND_NUM", length = 10) private String landNum; // 지역타입 - @Column(name = "AREA_TYPE") + @Column(name = "AREA_TYPE", length = 20) private String areaType; // 지역명 - @Column(name = "AREA_NM") + @Column(name = "AREA_NM", length = 100) private String areaNm; // 등록일시 - @Column(name = "CREATE_DT", columnDefinition = "TIMESTAMP") + @Column(name = "CREATE_DT", columnDefinition = "datetime", updatable = false, nullable = false) private Instant createDt; // 수정일시 - @Column(name = "UPDATE_DT", columnDefinition = "TIMESTAMP") + @Column(name = "UPDATE_DT", columnDefinition = "datetime", nullable = false) private Instant updateDt; + @JoinColumn( + name = "HSTRY_SNO", updatable = false, insertable = false, + foreignKey = @ForeignKey(name = "FK_CTR_CNTRL_HSTRY_AREA_CTR_CNTRL_HSTRY") + ) + @ManyToOne(fetch = FetchType.LAZY) + private CtrCntrlHstry ctrCntrlHstry; + } \ No newline at end of file diff --git a/data/ctr/src/main/java/kr/co/palnet/kac/data/ctr/model/CtrCntrlWarnLog.java b/data/ctr/src/main/java/kr/co/palnet/kac/data/ctr/model/CtrCntrlWarnLog.java index 1941a4c..5d195db 100644 --- a/data/ctr/src/main/java/kr/co/palnet/kac/data/ctr/model/CtrCntrlWarnLog.java +++ b/data/ctr/src/main/java/kr/co/palnet/kac/data/ctr/model/CtrCntrlWarnLog.java @@ -19,43 +19,43 @@ public class CtrCntrlWarnLog { // 로그일련번호 @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "WARN_LOG_SNO") + @Column(name = "WARN_LOG_SNO", columnDefinition = "int unsigned") private Integer warnLogSno; // 관제ID - @Column(name = "CNTRL_ID") + @Column(name = "CNTRL_ID", length = 60, nullable = false) private String cntrlId; // 상황종류 - @Column(name = "WARN_TYPE") + @Column(name = "WARN_TYPE", length = 30, nullable = false) private String warnType; // 식별번호 - @Column(name = "IDNTF_NUM") + @Column(name = "IDNTF_NUM", length = 30, nullable = false) private String idntfNum; // 발생시간 - @Column(name = "OCCUR_DT") + @Column(name = "OCCUR_DT", columnDefinition = "datetime(6)", nullable = false) private Instant occurDt; // 위도 - @Column(name = "LAT") - private double lat; + @Column(name = "LAT", columnDefinition = "double(18,10)") + private Double lat; // 경도 - @Column(name = "LON") - private double lon; + @Column(name = "LON", columnDefinition = "double(18,10)") + private Double lon; // 고도 - @Column(name = "ELEV") - private double elev; + @Column(name = "ELEV", columnDefinition = "double") + private Double elev; // 등록일자 - @Column(name = "CREATE_DT") + @Column(name = "CREATE_DT", columnDefinition = "datetime", updatable = false, nullable = false) private Instant createDt; // 등록사용자ID - @Column(name = "CREATE_USER_ID") + @Column(name = "CREATE_USER_ID", length = 30, updatable = false, nullable = false) private String createUserId; }