[KC-116] shp 파일 다운로드 이력 추가

This commit is contained in:
2026-01-19 17:28:21 +09:00
parent 5a9ddc8c66
commit 098a21ae21
7 changed files with 188 additions and 3 deletions

View File

@@ -8,6 +8,9 @@ import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.InferenceServerSt
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.InferenceStatusDetailDto;
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.ResultList;
import com.kamco.cd.kamcoback.inference.service.InferenceResultService;
import com.kamco.cd.kamcoback.log.dto.AuditLogDto;
import com.kamco.cd.kamcoback.log.dto.AuditLogDto.DownloadReq;
import com.kamco.cd.kamcoback.log.dto.AuditLogDto.searchReq;
import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.MngYyyyDto;
import com.kamco.cd.kamcoback.mapsheet.service.MapSheetMngService;
import com.kamco.cd.kamcoback.model.dto.ModelMngDto;
@@ -413,7 +416,7 @@ public class InferenceResultApiController {
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
})
@GetMapping(value = "/download/{uuid}", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public ResponseEntity<Resource> downloadZip(@PathVariable UUID uuid) throws IOException {
public ResponseEntity<Resource> downloadShp(@PathVariable UUID uuid) throws IOException {
String path;
try {
@@ -441,4 +444,37 @@ public class InferenceResultApiController {
.contentLength(resource.contentLength())
.body((Resource) resource);
}
@GetMapping(value = "/download-audit/{uuid}")
public ApiResponseDto<Page<AuditLogDto.Basic>> downloadAudit(
@Parameter(description = "UUID", example = "0192efc6-9ec2-43ee-9a90-5b73e763c09f")
@PathVariable
UUID uuid,
@Parameter(description = "구분-NAME(이름), EMPLOYEE_NO(사번)", example = "NAME")
@RequestParam(required = false)
String type,
@Parameter(description = "다운로드일 시작", example = "2025-01-01") @RequestParam(required = false)
LocalDate strtDttm,
@Parameter(description = "다운로드일 종료", example = "2026-01-01") @RequestParam(required = false)
LocalDate endDttm,
@Parameter(description = "키워드", example = "변화탐지") @RequestParam(required = false)
String searchValue,
@Parameter(description = "페이지 번호 (0부터 시작)", example = "0") @RequestParam(defaultValue = "0")
int page,
@Parameter(description = "페이지 크기", example = "20") @RequestParam(defaultValue = "20")
int size) {
AuditLogDto.searchReq searchReq = new searchReq();
searchReq.setPage(page);
searchReq.setSize(size);
DownloadReq downloadReq = new DownloadReq();
downloadReq.setUuid(uuid);
downloadReq.setStartDate(strtDttm);
downloadReq.setEndDate(endDttm);
downloadReq.setType(type);
downloadReq.setSearchValue(searchValue);
downloadReq.setMenuId("22");
downloadReq.setRequestUri("/api/inference/download-audit");
return ApiResponseDto.ok(inferenceResultService.getDownloadAudit(searchReq, downloadReq));
}
}

View File

@@ -23,7 +23,7 @@ import org.springframework.data.domain.Pageable;
public class InferenceResultDto {
/** 탐지 데이터 옵션 dto */
/** 분석대상 도엽 enum */
@Getter
@AllArgsConstructor
public enum MapSheetScope implements EnumType {
@@ -52,7 +52,7 @@ public class InferenceResultDto {
}
}
/** 분석대상 도엽 enum */
/** 탐지 데이터 옵션 dto */
@Getter
@AllArgsConstructor
public enum DetectOption implements EnumType {

View File

@@ -25,10 +25,13 @@ import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.SaveInferenceAiDt
import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.Status;
import com.kamco.cd.kamcoback.inference.dto.InferenceSendDto;
import com.kamco.cd.kamcoback.inference.dto.InferenceSendDto.pred_requests_areas;
import com.kamco.cd.kamcoback.log.dto.AuditLogDto;
import com.kamco.cd.kamcoback.log.dto.AuditLogDto.DownloadReq;
import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.MngListCompareDto;
import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.MngListDto;
import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.TotalListDto;
import com.kamco.cd.kamcoback.model.dto.ModelMngDto.Basic;
import com.kamco.cd.kamcoback.postgres.core.AuditLogCoreService;
import com.kamco.cd.kamcoback.postgres.core.InferenceResultCoreService;
import com.kamco.cd.kamcoback.postgres.core.MapSheetMngCoreService;
import com.kamco.cd.kamcoback.postgres.core.ModelMngCoreService;
@@ -62,6 +65,8 @@ public class InferenceResultService {
private final InferenceResultCoreService inferenceResultCoreService;
private final MapSheetMngCoreService mapSheetMngCoreService;
private final ModelMngCoreService modelMngCoreService;
private final AuditLogCoreService auditLogCoreService;
private final ExternalHttpClient externalHttpClient;
private final ObjectMapper objectMapper;
private final UserUtil userUtil;
@@ -554,4 +559,18 @@ public class InferenceResultService {
return Path.of(datasetDir).resolve(uid).resolve("merge").resolve(uid + ".zip");
}
/**
* 다운로드 이력 조회
*
* @param searchReq 페이징
* @param startDate 다운로드 시작일
* @param endDate 다운로드 종료일
* @param type 검색 구분
* @param searchValue 키워드
*/
public Page<AuditLogDto.Basic> getDownloadAudit(
AuditLogDto.searchReq searchReq, DownloadReq downloadReq) {
return auditLogCoreService.findLogByAccount(searchReq, downloadReq);
}
}