Merge pull request 'feat/dev_251201' (#128) from feat/dev_251201 into develop
Reviewed-on: https://kamco.gitea.gs.dabeeo.com/dabeeo/kamco-dabeeo-backoffice/pulls/128
This commit is contained in:
@@ -7,10 +7,6 @@ import lombok.Getter;
|
|||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@Getter
|
|
||||||
@Setter
|
|
||||||
@NoArgsConstructor
|
|
||||||
@AllArgsConstructor
|
|
||||||
public class DetectMastDto {
|
public class DetectMastDto {
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@@ -71,21 +67,13 @@ public class DetectMastDto {
|
|||||||
private String featureId;
|
private String featureId;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** before 연도 */
|
@Getter
|
||||||
private String cprsBfYr;
|
@Setter
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public static class FeaturePnuDto {
|
||||||
|
|
||||||
/** after 연도 */
|
private String featureId; // polygon_id
|
||||||
private String cprsAdYr;
|
private String pnu; // 랜덤 생성
|
||||||
|
}
|
||||||
/** 차수 */
|
|
||||||
private Integer dtctSno;
|
|
||||||
|
|
||||||
/** shp 파일경로 */
|
|
||||||
private String pathNm;
|
|
||||||
|
|
||||||
/** 등록한 사람 사번 */
|
|
||||||
private String crtEpno;
|
|
||||||
|
|
||||||
/** 등록한 사람 ip */
|
|
||||||
private String crtIp;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
package com.kamco.cd.kamcoback.Innopam.service;
|
package com.kamco.cd.kamcoback.Innopam.service;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.kamco.cd.kamcoback.Innopam.dto.DetectMastDto.Basic;
|
import com.kamco.cd.kamcoback.Innopam.dto.DetectMastDto.Basic;
|
||||||
import com.kamco.cd.kamcoback.Innopam.dto.DetectMastDto.DetectMastReq;
|
import com.kamco.cd.kamcoback.Innopam.dto.DetectMastDto.DetectMastReq;
|
||||||
import com.kamco.cd.kamcoback.Innopam.dto.DetectMastDto.DetectMastSearch;
|
import com.kamco.cd.kamcoback.Innopam.dto.DetectMastDto.DetectMastSearch;
|
||||||
|
import com.kamco.cd.kamcoback.Innopam.dto.DetectMastDto.FeaturePnuDto;
|
||||||
import com.kamco.cd.kamcoback.Innopam.postgres.core.DetectMastCoreService;
|
import com.kamco.cd.kamcoback.Innopam.postgres.core.DetectMastCoreService;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -32,21 +37,13 @@ public class DetectMastService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void findPnuData(DetectMastSearch detectMast) {
|
public void findPnuData(DetectMastSearch detectMast) {
|
||||||
String pathNm = detectMastCoreService.findPnuData(detectMast);
|
// String pathNm = detectMastCoreService.findPnuData(detectMast);
|
||||||
|
String pathNm = "/Users/bokmin/detect/result/2023_2024/4";
|
||||||
File dir = new File(pathNm);
|
File geoJson = new File(pathNm);
|
||||||
if (dir.exists() && dir.isDirectory()) {
|
List<FeaturePnuDto> list = this.extractFeaturePnus(geoJson);
|
||||||
File[] files = dir.listFiles();
|
|
||||||
|
|
||||||
if (files != null) {
|
|
||||||
for (File file : files) {
|
|
||||||
System.out.println(file.getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String randomPnu() {
|
private String randomPnu() {
|
||||||
ThreadLocalRandom r = ThreadLocalRandom.current();
|
ThreadLocalRandom r = ThreadLocalRandom.current();
|
||||||
|
|
||||||
String lawCode = String.valueOf(r.nextLong(1000000000L, 9999999999L)); // 10자리
|
String lawCode = String.valueOf(r.nextLong(1000000000L, 9999999999L)); // 10자리
|
||||||
@@ -56,4 +53,38 @@ public class DetectMastService {
|
|||||||
|
|
||||||
return lawCode + sanFlag + bon + bu;
|
return lawCode + sanFlag + bon + bu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<FeaturePnuDto> extractFeaturePnus(File geoJsonFile) {
|
||||||
|
|
||||||
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
|
JsonNode root = null;
|
||||||
|
try {
|
||||||
|
mapper.readTree(geoJsonFile);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
JsonNode features = root.get("features");
|
||||||
|
List<FeaturePnuDto> result = new ArrayList<>();
|
||||||
|
|
||||||
|
if (features != null && features.isArray()) {
|
||||||
|
for (JsonNode feature : features) {
|
||||||
|
JsonNode properties = feature.get("properties");
|
||||||
|
if (properties == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
String polygonId = properties.path("polygon_id").asText(null);
|
||||||
|
if (polygonId == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
String pnu = this.randomPnu();
|
||||||
|
|
||||||
|
result.add(new FeaturePnuDto(polygonId, pnu));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 SyncCheckStateType implements EnumType {
|
||||||
|
NOTYET("미처리"),
|
||||||
|
DONE("완료");
|
||||||
|
|
||||||
|
private final String desc;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return name();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getText() {
|
||||||
|
return desc;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,12 +3,9 @@ package com.kamco.cd.kamcoback.postgres.entity;
|
|||||||
import com.kamco.cd.kamcoback.postgres.CommonDateEntity;
|
import com.kamco.cd.kamcoback.postgres.CommonDateEntity;
|
||||||
import jakarta.persistence.Column;
|
import jakarta.persistence.Column;
|
||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.FetchType;
|
|
||||||
import jakarta.persistence.GeneratedValue;
|
import jakarta.persistence.GeneratedValue;
|
||||||
import jakarta.persistence.GenerationType;
|
import jakarta.persistence.GenerationType;
|
||||||
import jakarta.persistence.Id;
|
import jakarta.persistence.Id;
|
||||||
import jakarta.persistence.JoinColumn;
|
|
||||||
import jakarta.persistence.ManyToOne;
|
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import jakarta.validation.constraints.Size;
|
import jakarta.validation.constraints.Size;
|
||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
||||||
@@ -69,10 +66,11 @@ public class MapSheetMngHstEntity extends CommonDateEntity {
|
|||||||
private Integer mngYyyy; // 년도
|
private Integer mngYyyy; // 년도
|
||||||
|
|
||||||
// JPA 연관관계: MapInkx5k 참조 (PK 기반) 소속도엽번호 1:5k
|
// JPA 연관관계: MapInkx5k 참조 (PK 기반) 소속도엽번호 1:5k
|
||||||
|
/*
|
||||||
@ManyToOne(fetch = FetchType.LAZY)
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
@JoinColumn(name = "map_sheet_code", referencedColumnName = "fid")
|
@JoinColumn(name = "map_sheet_code", referencedColumnName = "fid")
|
||||||
private MapInkx5kEntity mapInkx5kByCode;
|
private MapInkx5kEntity mapInkx5kByCode;
|
||||||
|
*/
|
||||||
// TODO 1:5k 관련 정보 추후 제거 필요
|
// TODO 1:5k 관련 정보 추후 제거 필요
|
||||||
@Column(name = "map_sheet_num")
|
@Column(name = "map_sheet_num")
|
||||||
private String mapSheetNum; // 도엽번호
|
private String mapSheetNum; // 도엽번호
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngHstEntity;
|
|||||||
import com.querydsl.core.BooleanBuilder;
|
import com.querydsl.core.BooleanBuilder;
|
||||||
import com.querydsl.core.types.Projections;
|
import com.querydsl.core.types.Projections;
|
||||||
import com.querydsl.core.types.dsl.Expressions;
|
import com.querydsl.core.types.dsl.Expressions;
|
||||||
import com.querydsl.core.types.dsl.NumberExpression;
|
|
||||||
import com.querydsl.core.types.dsl.StringExpression;
|
import com.querydsl.core.types.dsl.StringExpression;
|
||||||
import com.querydsl.jpa.impl.JPAQueryFactory;
|
import com.querydsl.jpa.impl.JPAQueryFactory;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
@@ -76,8 +75,11 @@ public class MapSheetMngFileCheckerRepositoryImpl extends QuerydslRepositorySupp
|
|||||||
return new PageImpl<>(foundContent, pageable, countQuery);
|
return new PageImpl<>(foundContent, pageable, countQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
private NumberExpression<Integer> rowNum() {
|
private NumberExpression<Integer> rowNum() {
|
||||||
return Expressions.numberTemplate(
|
return Expressions.numberTemplate(
|
||||||
Integer.class, "row_number() over(order by {0} desc)", mapSheetMngHstEntity.createdDate);
|
Integer.class, "row_number() over(order by {0} desc)", mapSheetMngHstEntity.createdDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.kamco.cd.kamcoback.postgres.repository.mapsheet;
|
package com.kamco.cd.kamcoback.postgres.repository.mapsheet;
|
||||||
|
|
||||||
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.QMapInkx5kEntity.mapInkx5kEntity;
|
||||||
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetMngEntity.mapSheetMngEntity;
|
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetMngEntity.mapSheetMngEntity;
|
||||||
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetMngFileEntity.mapSheetMngFileEntity;
|
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetMngFileEntity.mapSheetMngFileEntity;
|
||||||
@@ -393,9 +392,8 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport
|
|||||||
queryFactory
|
queryFactory
|
||||||
.select(mapSheetMngHstEntity.hstUid.count())
|
.select(mapSheetMngHstEntity.hstUid.count())
|
||||||
.from(mapSheetMngHstEntity)
|
.from(mapSheetMngHstEntity)
|
||||||
.innerJoin(mapInkx5kEntity, mapSheetMngHstEntity.mapInkx5kByCode)
|
.innerJoin(mapInkx5kEntity)
|
||||||
.fetchJoin()
|
.on(mapSheetMngHstEntity.mapSheetNum.eq(mapInkx5kEntity.mapidcdNo))
|
||||||
.leftJoin(mapInkx5kEntity.mapInkx50k, mapInkx50kEntity)
|
|
||||||
.where(whereBuilder)
|
.where(whereBuilder)
|
||||||
.fetchOne();
|
.fetchOne();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user