Merge branch 'feat/infer_dev_260107' of https://kamco.gitea.gs.dabeeo.com/dabeeo/kamco-dabeeo-backoffice into feat/infer_dev_260107
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
package com.kamco.cd.kamcoback.common.enums;
|
||||
|
||||
import com.kamco.cd.kamcoback.common.utils.enums.CodeExpose;
|
||||
import com.kamco.cd.kamcoback.common.utils.enums.EnumType;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
@CodeExpose
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum ImageryFitStatus implements EnumType {
|
||||
FIT("적합"),
|
||||
UNFIT("부적합");
|
||||
|
||||
private final String desc;
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return name();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getText() {
|
||||
return desc;
|
||||
}
|
||||
}
|
||||
@@ -305,6 +305,8 @@ public class InferenceDetailDto {
|
||||
Long mapSheetNum;
|
||||
String mapSheetName;
|
||||
String subUid;
|
||||
String pnu;
|
||||
String passYn;
|
||||
|
||||
// @JsonIgnore String gemoStr;
|
||||
// @JsonIgnore String geomCenterStr;
|
||||
@@ -323,7 +325,9 @@ public class InferenceDetailDto {
|
||||
Double classAfterProb,
|
||||
Long mapSheetNum,
|
||||
String mapSheetName,
|
||||
String subUid) {
|
||||
String subUid,
|
||||
String pnu,
|
||||
String passYn) {
|
||||
this.uuid = uuid;
|
||||
this.uid = uid;
|
||||
this.compareYyyy = compareYyyy;
|
||||
@@ -338,20 +342,8 @@ public class InferenceDetailDto {
|
||||
this.mapSheetNum = mapSheetNum;
|
||||
this.mapSheetName = mapSheetName;
|
||||
this.subUid = subUid;
|
||||
// this.gemoStr = gemoStr;
|
||||
// this.geomCenterStr = geomCenterStr;
|
||||
//
|
||||
// ObjectMapper mapper = new ObjectMapper();
|
||||
// JsonNode geomJson;
|
||||
// JsonNode geomCenterJson;
|
||||
// try {
|
||||
// geomJson = mapper.readTree(gemoStr);
|
||||
// geomCenterJson = mapper.readTree(geomCenterStr);
|
||||
// } catch (JsonProcessingException e) {
|
||||
// throw new RuntimeException(e);
|
||||
// }
|
||||
// this.gemo = geomJson;
|
||||
// this.geomCenter = geomCenterJson;
|
||||
this.pnu = pnu;
|
||||
this.passYn = passYn;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -178,6 +178,12 @@ public class InferenceResultDto {
|
||||
@Schema(description = "uid")
|
||||
private String uid;
|
||||
|
||||
@Schema(description = "uid 앞 8자리")
|
||||
@JsonProperty("subUid")
|
||||
public String subUid() {
|
||||
return this.uid.substring(0, 8).toUpperCase();
|
||||
}
|
||||
|
||||
@Schema(description = "상태명")
|
||||
@JsonProperty("statusName")
|
||||
public String statusName() {
|
||||
|
||||
@@ -62,6 +62,10 @@ public class LabelWorkDto {
|
||||
private Long inspectorRemainCnt;
|
||||
private ZonedDateTime projectCloseDttm;
|
||||
|
||||
private String resultUid;
|
||||
private String subUid;
|
||||
private UUID learnUuid;
|
||||
|
||||
@JsonProperty("detectYear")
|
||||
public String getDetectYear() {
|
||||
if (compareYyyy == null || targetYyyy == null) {
|
||||
|
||||
@@ -151,7 +151,7 @@ public class MapSheetAnalDataInferenceGeomEntity {
|
||||
private ZonedDateTime fileCreatedDttm;
|
||||
|
||||
@Column(name = "pass_yn")
|
||||
private Boolean passYn;
|
||||
private String passYn;
|
||||
|
||||
@Column(name = "pass_yn_dttm")
|
||||
private ZonedDateTime passYnDttm;
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.kamco.cd.kamcoback.postgres.entity;
|
||||
|
||||
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.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import java.time.OffsetDateTime;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.hibernate.annotations.ColumnDefault;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Entity
|
||||
@Table(name = "tb_pnu")
|
||||
public class PnuEntity {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "tb_pnu_id_gen")
|
||||
@SequenceGenerator(name = "tb_pnu_id_gen", sequenceName = "tb_pnu_uid", allocationSize = 1)
|
||||
@Column(name = "id", nullable = false)
|
||||
private Long id;
|
||||
|
||||
@NotNull
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = false)
|
||||
@JoinColumn(name = "geo_uid", nullable = false)
|
||||
private MapSheetAnalDataInferenceGeomEntity geo;
|
||||
|
||||
@Size(max = 19)
|
||||
@Column(name = "pnu", length = 19)
|
||||
private String pnu;
|
||||
|
||||
@Column(name = "created_dttm")
|
||||
private OffsetDateTime createdDttm;
|
||||
|
||||
@Column(name = "created_uid")
|
||||
private Long createdUid;
|
||||
|
||||
@ColumnDefault("false")
|
||||
@Column(name = "del_yn")
|
||||
private Boolean delYn;
|
||||
}
|
||||
@@ -1,8 +1,10 @@
|
||||
package com.kamco.cd.kamcoback.postgres.repository.Inference;
|
||||
|
||||
import static com.kamco.cd.kamcoback.postgres.entity.QMapInkx50kEntity.mapInkx50kEntity;
|
||||
import static com.kamco.cd.kamcoback.postgres.entity.QMapInkx5kEntity.mapInkx5kEntity;
|
||||
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetLearn5kEntity.mapSheetLearn5kEntity;
|
||||
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetLearnEntity.mapSheetLearnEntity;
|
||||
import static com.querydsl.jpa.JPAExpressions.select;
|
||||
|
||||
import com.kamco.cd.kamcoback.scheduler.dto.JobStatusDto;
|
||||
import com.querydsl.core.BooleanBuilder;
|
||||
@@ -10,7 +12,6 @@ import com.querydsl.core.types.dsl.BooleanPath;
|
||||
import com.querydsl.core.types.dsl.Expressions;
|
||||
import com.querydsl.core.types.dsl.NumberPath;
|
||||
import com.querydsl.core.types.dsl.StringPath;
|
||||
import com.querydsl.jpa.JPAExpressions;
|
||||
import com.querydsl.jpa.impl.JPAQueryFactory;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
@@ -55,7 +56,7 @@ public class MapSheetLearn5kRepositoryImpl implements MapSheetLearn5kRepositoryC
|
||||
}
|
||||
|
||||
var learnIdSubQuery =
|
||||
JPAExpressions.select(mapSheetLearnEntity.id)
|
||||
select(mapSheetLearnEntity.id)
|
||||
.from(mapSheetLearnEntity)
|
||||
.where(mapSheetLearnEntity.uuid.eq(uuid));
|
||||
|
||||
@@ -102,7 +103,7 @@ public class MapSheetLearn5kRepositoryImpl implements MapSheetLearn5kRepositoryC
|
||||
}
|
||||
|
||||
var learnIdSubQuery =
|
||||
JPAExpressions.select(mapSheetLearnEntity.id)
|
||||
select(mapSheetLearnEntity.id)
|
||||
.from(mapSheetLearnEntity)
|
||||
.where(mapSheetLearnEntity.uuid.eq(uuid));
|
||||
|
||||
@@ -201,24 +202,30 @@ public class MapSheetLearn5kRepositoryImpl implements MapSheetLearn5kRepositoryC
|
||||
.fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* 추론 진행 도엽 목록
|
||||
*
|
||||
* @param uuid uuid
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<String> getInferenceRunMapId(UUID uuid) {
|
||||
return queryFactory
|
||||
.select(mapInkx5kEntity.mapidNm)
|
||||
.from(mapSheetLearnEntity)
|
||||
.innerJoin(mapSheetLearn5kEntity)
|
||||
.on(mapSheetLearn5kEntity.learn.id.eq(mapSheetLearnEntity.id))
|
||||
.innerJoin(mapInkx5kEntity)
|
||||
.on(
|
||||
Expressions.booleanTemplate(
|
||||
"function('regexp_match', {0}, '^[0-9]+$') is not null",
|
||||
mapInkx5kEntity.mapidcdNo)
|
||||
.and(
|
||||
mapSheetLearn5kEntity.mapSheetNum.eq(
|
||||
Expressions.numberTemplate(
|
||||
Long.class, "cast({0} as long)", mapInkx5kEntity.mapidcdNo))))
|
||||
.where(mapSheetLearnEntity.uuid.eq(uuid))
|
||||
.groupBy(mapInkx5kEntity.mapidNm)
|
||||
.select(mapInkx50kEntity.mapidNm.concat(mapInkx50kEntity.mapidcdNo))
|
||||
.from(mapInkx50kEntity)
|
||||
.join(mapInkx5kEntity)
|
||||
.on(mapInkx5kEntity.mapInkx50k.fid.eq(mapInkx50kEntity.fid))
|
||||
.where(
|
||||
mapInkx5kEntity.mapidcdNo.in(
|
||||
select(
|
||||
Expressions.stringTemplate(
|
||||
"CAST({0} AS text)", mapSheetLearn5kEntity.mapSheetNum))
|
||||
.from(mapSheetLearnEntity)
|
||||
.join(mapSheetLearn5kEntity)
|
||||
.on(mapSheetLearn5kEntity.learn.id.eq(mapSheetLearnEntity.id))
|
||||
.where(mapSheetLearnEntity.uuid.eq(uuid))))
|
||||
.groupBy(mapInkx50kEntity.mapidcdNo, mapInkx50kEntity.mapidNm)
|
||||
.orderBy(mapInkx50kEntity.mapidNm.asc())
|
||||
.fetch();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalDataInferenceG
|
||||
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalInferenceEntity.mapSheetAnalInferenceEntity;
|
||||
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalSttcEntity.mapSheetAnalSttcEntity;
|
||||
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetLearnEntity.mapSheetLearnEntity;
|
||||
import static com.kamco.cd.kamcoback.postgres.entity.QPnuEntity.pnuEntity;
|
||||
import static com.kamco.cd.kamcoback.postgres.entity.QSystemMetricEntity.systemMetricEntity;
|
||||
|
||||
import com.kamco.cd.kamcoback.common.exception.CustomApiException;
|
||||
@@ -28,6 +29,8 @@ import com.querydsl.core.types.dsl.BooleanExpression;
|
||||
import com.querydsl.core.types.dsl.CaseBuilder;
|
||||
import com.querydsl.core.types.dsl.Expressions;
|
||||
import com.querydsl.core.types.dsl.NumberExpression;
|
||||
import com.querydsl.core.types.dsl.StringExpression;
|
||||
import com.querydsl.jpa.JPAExpressions;
|
||||
import com.querydsl.jpa.impl.JPAQueryFactory;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.util.List;
|
||||
@@ -415,6 +418,13 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto
|
||||
NumberExpression<Long> inkxNoAsLong =
|
||||
Expressions.numberTemplate(Long.class, "cast({0} as long)", mapInkx5kEntity.mapidcdNo);
|
||||
|
||||
StringExpression pnu =
|
||||
Expressions.stringTemplate(
|
||||
"coalesce(({0}), '')",
|
||||
JPAExpressions.select(Expressions.stringTemplate("string_agg({0}, ',')", pnuEntity.pnu))
|
||||
.from(pnuEntity)
|
||||
.where(pnuEntity.geo.geoUid.eq(mapSheetAnalDataInferenceGeomEntity.geoUid)));
|
||||
|
||||
// 4) content
|
||||
List<Geom> content =
|
||||
queryFactory
|
||||
@@ -434,7 +444,9 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto
|
||||
mapInkx5kEntity.mapidNm,
|
||||
Expressions.stringTemplate(
|
||||
"substring({0} from 1 for 8)",
|
||||
mapSheetAnalDataInferenceGeomEntity.resultUid)))
|
||||
mapSheetAnalDataInferenceGeomEntity.resultUid),
|
||||
pnu,
|
||||
Expressions.nullExpression(String.class)))
|
||||
.from(mapSheetAnalInferenceEntity)
|
||||
.join(mapSheetAnalDataInferenceEntity)
|
||||
.on(mapSheetAnalDataInferenceEntity.analUid.eq(mapSheetAnalInferenceEntity.id))
|
||||
|
||||
@@ -381,8 +381,11 @@ public class LabelAllocateRepositoryImpl implements LabelAllocateRepositoryCusto
|
||||
mapSheetAnalDataInferenceGeomEntity.compareYyyy.eq(analEntity.getCompareYyyy()),
|
||||
mapSheetAnalDataInferenceGeomEntity.targetYyyy.eq(analEntity.getTargetYyyy()),
|
||||
mapSheetAnalDataInferenceGeomEntity.stage.eq(analEntity.getStage()),
|
||||
mapSheetAnalDataInferenceGeomEntity.pnu.gt(0L),
|
||||
mapSheetAnalDataInferenceGeomEntity.passYn.isFalse())
|
||||
mapSheetAnalDataInferenceGeomEntity.pnu.isNotNull()
|
||||
// mapSheetAnalDataInferenceGeomEntity.pnu.gt(0L)
|
||||
// mapSheetAnalDataInferenceGeomEntity.passYn.isFalse() //TODO:
|
||||
// 추후 라벨링 대상 조건 수정하기
|
||||
)
|
||||
.fetchOne();
|
||||
}
|
||||
|
||||
@@ -552,8 +555,11 @@ public class LabelAllocateRepositoryImpl implements LabelAllocateRepositoryCusto
|
||||
mapSheetAnalDataInferenceGeomEntity.dataUid))
|
||||
.where(
|
||||
mapSheetAnalInferenceEntity.uuid.eq(targetUuid),
|
||||
mapSheetAnalDataInferenceGeomEntity.pnu.gt(0L),
|
||||
mapSheetAnalDataInferenceGeomEntity.passYn.isFalse())
|
||||
mapSheetAnalDataInferenceGeomEntity.pnu.isNotNull()
|
||||
// mapSheetAnalDataInferenceGeomEntity.pnu.gt(0L),
|
||||
// mapSheetAnalDataInferenceGeomEntity.passYn.isFalse() //TODO: 추후 라벨링
|
||||
// 대상 조건 수정하기
|
||||
)
|
||||
.fetchOne();
|
||||
}
|
||||
|
||||
@@ -734,8 +740,11 @@ public class LabelAllocateRepositoryImpl implements LabelAllocateRepositoryCusto
|
||||
mapSheetAnalInferenceEntity.targetYyyy.eq(
|
||||
mapSheetAnalDataInferenceGeomEntity.targetYyyy),
|
||||
mapSheetAnalInferenceEntity.stage.eq(mapSheetAnalDataInferenceGeomEntity.stage),
|
||||
mapSheetAnalDataInferenceGeomEntity.pnu.gt(0),
|
||||
mapSheetAnalDataInferenceGeomEntity.passYn.isFalse())
|
||||
mapSheetAnalDataInferenceGeomEntity.pnu.isNotNull()
|
||||
// mapSheetAnalDataInferenceGeomEntity.pnu.gt(0),
|
||||
// mapSheetAnalDataInferenceGeomEntity.passYn.isFalse() //TODO: 추후 라벨링 대상 조건
|
||||
// 수정하기
|
||||
)
|
||||
.where(mapSheetAnalInferenceEntity.id.eq(analEntity.getId()))
|
||||
.groupBy(
|
||||
mapSheetAnalInferenceEntity.analTitle,
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.kamco.cd.kamcoback.postgres.repository.label;
|
||||
|
||||
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetLearnEntity.mapSheetLearnEntity;
|
||||
|
||||
import com.kamco.cd.kamcoback.label.dto.LabelAllocateDto.InspectState;
|
||||
import com.kamco.cd.kamcoback.label.dto.LabelAllocateDto.LabelState;
|
||||
import com.kamco.cd.kamcoback.label.dto.LabelWorkDto;
|
||||
@@ -141,7 +143,10 @@ public class LabelWorkRepositoryImpl implements LabelWorkRepositoryCustom {
|
||||
.and(
|
||||
mapSheetAnalDataInferenceGeomEntity.pnu
|
||||
.isNotNull()) // TODO: 이노팸 연동 후 0 이상이라고 해야할 듯
|
||||
.and(mapSheetAnalDataInferenceGeomEntity.passYn.eq(Boolean.FALSE)))
|
||||
//
|
||||
// .and(mapSheetAnalDataInferenceGeomEntity.passYn.eq(Boolean.FALSE)) //TODO: 추후
|
||||
// 라벨링 대상 조건 수정하기
|
||||
)
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum();
|
||||
@@ -225,12 +230,18 @@ public class LabelWorkRepositoryImpl implements LabelWorkRepositoryCustom {
|
||||
new CaseBuilder()
|
||||
.when(mapSheetAnalInferenceEntity.inspectionClosedYn.eq("Y"))
|
||||
.then(mapSheetAnalInferenceEntity.updatedDttm)
|
||||
.otherwise((ZonedDateTime) null)))
|
||||
.otherwise((ZonedDateTime) null),
|
||||
mapSheetLearnEntity.uid,
|
||||
Expressions.stringTemplate(
|
||||
"substring({0} from 1 for 8)", mapSheetLearnEntity.uid),
|
||||
mapSheetLearnEntity.uuid))
|
||||
.from(mapSheetAnalInferenceEntity)
|
||||
.innerJoin(mapSheetAnalDataInferenceEntity)
|
||||
.on(whereSubDataBuilder)
|
||||
.innerJoin(mapSheetAnalDataInferenceGeomEntity)
|
||||
.on(whereSubBuilder)
|
||||
.leftJoin(mapSheetLearnEntity)
|
||||
.on(mapSheetAnalInferenceEntity.learnId.eq(mapSheetLearnEntity.id))
|
||||
.where(whereBuilder)
|
||||
.groupBy(
|
||||
mapSheetAnalInferenceEntity.uuid,
|
||||
@@ -239,7 +250,9 @@ public class LabelWorkRepositoryImpl implements LabelWorkRepositoryCustom {
|
||||
mapSheetAnalInferenceEntity.stage,
|
||||
mapSheetAnalInferenceEntity.createdDttm,
|
||||
mapSheetAnalInferenceEntity.analState,
|
||||
mapSheetAnalInferenceEntity.id)
|
||||
mapSheetAnalInferenceEntity.id,
|
||||
mapSheetLearnEntity.uid,
|
||||
mapSheetLearnEntity.uuid)
|
||||
.orderBy(
|
||||
mapSheetAnalInferenceEntity.targetYyyy.desc(),
|
||||
mapSheetAnalInferenceEntity.compareYyyy.desc(),
|
||||
|
||||
@@ -591,7 +591,7 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport
|
||||
.afterCogUrl(afterCogUrl)
|
||||
.mapBox(mapBbox)
|
||||
.learnGeometries(learnDataList) // learnGeometry -> learnGeometries
|
||||
.labelState(assignment.toDto().getWorkState())
|
||||
.workState(assignment.toDto().getWorkState())
|
||||
.build();
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -328,7 +328,7 @@ public class TrainingDataLabelDto {
|
||||
private List<LearnDataGeometry> learnGeometries;
|
||||
|
||||
@Schema(description = "라벨 상태")
|
||||
private String labelState;
|
||||
private String workState;
|
||||
}
|
||||
|
||||
@Schema(name = "ChangeDetectionInfo", description = "변화탐지정보")
|
||||
|
||||
Reference in New Issue
Block a user