영상관리 수정
This commit is contained in:
@@ -2,7 +2,6 @@ package com.kamco.cd.kamcoback.common.utils;
|
||||
|
||||
import static java.lang.String.CASE_INSENSITIVE_ORDER;
|
||||
|
||||
import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.DmlReturn;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
@@ -457,15 +456,13 @@ public class FIleChecker {
|
||||
return FIleChecker.getFilesFromAllDepth(dir, targetFileNm, extension, 100, "name", 0, 100);
|
||||
}
|
||||
|
||||
public static int getFileCountFromAllDepth(
|
||||
String dir, String targetFileNm, String extension) {
|
||||
public static int getFileCountFromAllDepth(String dir, String targetFileNm, String extension) {
|
||||
|
||||
List<FIleChecker.Basic> basicList =
|
||||
FIleChecker.getFilesFromAllDepth(dir, targetFileNm, extension);
|
||||
FIleChecker.getFilesFromAllDepth(dir, targetFileNm, extension);
|
||||
|
||||
return (int) basicList.stream()
|
||||
.filter(dto -> dto.getExtension().toString().equals(extension))
|
||||
.count();
|
||||
return (int)
|
||||
basicList.stream().filter(dto -> dto.getExtension().toString().equals(extension)).count();
|
||||
}
|
||||
|
||||
public static Long getFileTotSize(List<FIleChecker.Basic> files) {
|
||||
@@ -478,8 +475,7 @@ public class FIleChecker {
|
||||
return fileTotSize;
|
||||
}
|
||||
|
||||
public static boolean validationMultipart(MultipartFile mfile)
|
||||
{
|
||||
public static boolean validationMultipart(MultipartFile mfile) {
|
||||
// 파일 유효성 검증
|
||||
if (mfile == null || mfile.isEmpty() || mfile.getSize() == 0) {
|
||||
return false;
|
||||
|
||||
@@ -178,9 +178,8 @@ public class MapSheetMngApiController {
|
||||
@RequestParam(value = "hstUid", required = false) Long hstUid,
|
||||
@RequestParam(value = "overwrite", required = false) boolean overwrite) {
|
||||
|
||||
|
||||
|
||||
return ApiResponseDto.createOK(mapSheetMngService.uploadPair(tfwFile, tifFile, hstUid, overwrite));
|
||||
return ApiResponseDto.createOK(
|
||||
mapSheetMngService.uploadPair(tfwFile, tifFile, hstUid, overwrite));
|
||||
}
|
||||
|
||||
@Operation(summary = "영상관리 > 파일조회", description = "영상관리 > 파일조회")
|
||||
|
||||
@@ -92,26 +92,27 @@ public class MapSheetMngDto {
|
||||
|
||||
public String getMngState() {
|
||||
|
||||
if (this.syncStateDoneCnt == 0)return "NOTYET";
|
||||
else if (this.syncStateDoneCnt < this.syncTotCnt)return "PROCESSING";
|
||||
if (this.syncStateDoneCnt == 0) return "NOTYET";
|
||||
else if (this.syncStateDoneCnt < this.syncTotCnt) return "PROCESSING";
|
||||
|
||||
if( (this.syncNotPaireExecCnt + this.syncDuplicateExecCnt + this.syncFaultExecCnt) > 0 )return "TAKINGERROR";
|
||||
if ((this.syncNotPaireExecCnt + this.syncDuplicateExecCnt + this.syncFaultExecCnt) > 0)
|
||||
return "TAKINGERROR";
|
||||
|
||||
return "DONE";
|
||||
}
|
||||
|
||||
public String getSyncState() {
|
||||
|
||||
if (this.syncStateDoneCnt == 0)return "NOTYET";
|
||||
else if (this.syncStateDoneCnt < this.syncTotCnt)return "PROCESSING";
|
||||
if (this.syncStateDoneCnt == 0) return "NOTYET";
|
||||
else if (this.syncStateDoneCnt < this.syncTotCnt) return "PROCESSING";
|
||||
|
||||
return "DONE";
|
||||
}
|
||||
|
||||
public String getDataCheckState() {
|
||||
|
||||
if (this.syncDataCheckDoneCnt == 0)return "NOTYET";
|
||||
else if (this.syncDataCheckDoneCnt < this.syncTotCnt)return "PROCESSING";
|
||||
if (this.syncDataCheckDoneCnt == 0) return "NOTYET";
|
||||
else if (this.syncDataCheckDoneCnt < this.syncTotCnt) return "PROCESSING";
|
||||
|
||||
return "DONE";
|
||||
}
|
||||
@@ -138,8 +139,6 @@ public class MapSheetMngDto {
|
||||
return this.syncNotPaireExecCnt + this.syncDuplicateExecCnt + this.syncFaultExecCnt;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String getMngStateName() {
|
||||
String enumId = this.mngState;
|
||||
if (enumId == null || enumId.isEmpty()) {
|
||||
@@ -254,8 +253,6 @@ public class MapSheetMngDto {
|
||||
this.errorCheckTifFileName = errorCheckTifFileName;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private String getSyncStateName(String enumId) {
|
||||
if (enumId == null || enumId.isEmpty()) {
|
||||
enumId = "NOTYET";
|
||||
|
||||
@@ -33,7 +33,6 @@ public class MapSheetMngService {
|
||||
private final MapSheetMngCoreService mapSheetMngCoreService;
|
||||
private final FileConfig fileConfig;
|
||||
|
||||
|
||||
@Value("${file.sync-root-dir}")
|
||||
private String syncRootDir;
|
||||
|
||||
@@ -85,7 +84,8 @@ public class MapSheetMngService {
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public DmlReturn uploadPair(MultipartFile tfwFile, MultipartFile tifFile, Long hstUid, Boolean overwrite) {
|
||||
public DmlReturn uploadPair(
|
||||
MultipartFile tfwFile, MultipartFile tifFile, Long hstUid, Boolean overwrite) {
|
||||
|
||||
String rootPath = syncRootDir;
|
||||
String tmpPath = syncTmpDir;
|
||||
@@ -103,32 +103,30 @@ public class MapSheetMngService {
|
||||
return new DmlReturn("fail", "CREATE TEMP FOLDER ERROR");
|
||||
}
|
||||
|
||||
//업로드 파일 사이즈,확장자명 체크
|
||||
// 업로드 파일 사이즈,확장자명 체크
|
||||
dmlReturn = this.validationFile(tfwFile, tifFile);
|
||||
if( dmlReturn.getFlag().equals("fail") )return dmlReturn;
|
||||
|
||||
if (dmlReturn.getFlag().equals("fail")) return dmlReturn;
|
||||
|
||||
MngDto mngDto = mapSheetMngCoreService.findMapSheetMng(errDto.getMngYyyy());
|
||||
String targetYearDir = mngDto.getMngPath();
|
||||
|
||||
// 중복체크
|
||||
if( !overwrite ) {
|
||||
if (!overwrite) {
|
||||
|
||||
int tfwCnt = FIleChecker.getFileCountFromAllDepth(targetYearDir, tfwFile.getOriginalFilename(), "tfw");
|
||||
int tifCnt = FIleChecker.getFileCountFromAllDepth(targetYearDir, tfwFile.getOriginalFilename(), "tfw");
|
||||
int tfwCnt =
|
||||
FIleChecker.getFileCountFromAllDepth(targetYearDir, tfwFile.getOriginalFilename(), "tfw");
|
||||
int tifCnt =
|
||||
FIleChecker.getFileCountFromAllDepth(targetYearDir, tfwFile.getOriginalFilename(), "tfw");
|
||||
|
||||
if (tfwCnt > 0 || tifCnt > 0) {
|
||||
String tfwtifMsg = "";
|
||||
if (tfwCnt > 0)
|
||||
tfwtifMsg = tfwFile.getOriginalFilename();
|
||||
if (tifCnt > 0) {
|
||||
if (tfwCnt > 0)
|
||||
tfwtifMsg = "," + tifFile.getOriginalFilename();
|
||||
else
|
||||
tfwtifMsg = tifFile.getOriginalFilename();
|
||||
}
|
||||
return new DmlReturn("duplicate", tfwtifMsg);
|
||||
if (tfwCnt > 0 || tifCnt > 0) {
|
||||
String tfwtifMsg = "";
|
||||
if (tfwCnt > 0) tfwtifMsg = tfwFile.getOriginalFilename();
|
||||
if (tifCnt > 0) {
|
||||
if (tfwCnt > 0) tfwtifMsg = "," + tifFile.getOriginalFilename();
|
||||
else tfwtifMsg = tifFile.getOriginalFilename();
|
||||
}
|
||||
return new DmlReturn("duplicate", tfwtifMsg);
|
||||
}
|
||||
}
|
||||
|
||||
File directory = new File(tmpPath);
|
||||
@@ -214,12 +212,13 @@ public class MapSheetMngService {
|
||||
return new DmlReturn("success", "파일 업로드 완료되었습니다.");
|
||||
}
|
||||
|
||||
public DmlReturn validationFile(MultipartFile tfwFile, MultipartFile tifFile)
|
||||
{
|
||||
if( !FIleChecker.validationMultipart(tfwFile) )return new DmlReturn("fail", "TFW SIZE 오류");
|
||||
else if( !FIleChecker.validationMultipart(tifFile) )return new DmlReturn("fail", "TFW SIZE 오류");
|
||||
else if (!FIleChecker.checkExtensions(tfwFile.getOriginalFilename(), "tfw"))return new DmlReturn("fail", "TFW FILENAME ERROR");
|
||||
else if (!FIleChecker.checkExtensions(tifFile.getOriginalFilename(), "tif"))return new DmlReturn("fail", "TIF FILENAME ERROR");
|
||||
public DmlReturn validationFile(MultipartFile tfwFile, MultipartFile tifFile) {
|
||||
if (!FIleChecker.validationMultipart(tfwFile)) return new DmlReturn("fail", "TFW SIZE 오류");
|
||||
else if (!FIleChecker.validationMultipart(tifFile)) return new DmlReturn("fail", "TFW SIZE 오류");
|
||||
else if (!FIleChecker.checkExtensions(tfwFile.getOriginalFilename(), "tfw"))
|
||||
return new DmlReturn("fail", "TFW FILENAME ERROR");
|
||||
else if (!FIleChecker.checkExtensions(tifFile.getOriginalFilename(), "tif"))
|
||||
return new DmlReturn("fail", "TIF FILENAME ERROR");
|
||||
|
||||
return new DmlReturn("success", "파일체크");
|
||||
}
|
||||
|
||||
@@ -79,7 +79,6 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport
|
||||
mapSheetMngEntity.mngState,
|
||||
mapSheetMngEntity.syncState,
|
||||
mapSheetMngEntity.syncCheckState,
|
||||
|
||||
mapSheetMngHstEntity.count().as("syncTotalCnt"),
|
||||
new CaseBuilder()
|
||||
.when(mapSheetMngHstEntity.dataState.eq("DONE"))
|
||||
@@ -87,13 +86,11 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport
|
||||
.otherwise(0L)
|
||||
.sum()
|
||||
.as("syncStateDoneCnt"),
|
||||
|
||||
new CaseBuilder()
|
||||
.when(mapSheetMngHstEntity.syncState.ne("NOTYET"))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
|
||||
new CaseBuilder()
|
||||
.when(mapSheetMngHstEntity.syncState.eq("NOTPAIR"))
|
||||
.then(1L)
|
||||
@@ -108,7 +105,6 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
|
||||
new CaseBuilder()
|
||||
.when(mapSheetMngHstEntity.syncState.eq("DUPLICATE"))
|
||||
.then(1L)
|
||||
@@ -123,7 +119,6 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
|
||||
new CaseBuilder()
|
||||
.when(
|
||||
mapSheetMngHstEntity
|
||||
@@ -146,23 +141,20 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
|
||||
new CaseBuilder()
|
||||
.when(mapSheetMngHstEntity.syncState.eq("NOFILE"))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
new CaseBuilder()
|
||||
.when(
|
||||
mapSheetMngHstEntity
|
||||
.syncCheckState
|
||||
.eq("DONE")
|
||||
.and(mapSheetMngHstEntity.syncState.eq("NOFILE")))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
|
||||
|
||||
new CaseBuilder()
|
||||
.when(mapSheetMngHstEntity.syncState.eq("NOFILE"))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
new CaseBuilder()
|
||||
.when(
|
||||
mapSheetMngHstEntity
|
||||
.syncCheckState
|
||||
.eq("DONE")
|
||||
.and(mapSheetMngHstEntity.syncState.eq("NOFILE")))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
mapSheetMngEntity.createdDttm,
|
||||
mapSheetMngHstEntity.syncEndDttm.max()))
|
||||
.from(mapSheetMngEntity)
|
||||
@@ -221,102 +213,94 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport
|
||||
queryFactory
|
||||
.select(
|
||||
Projections.constructor(
|
||||
MapSheetMngDto.MngDto.class,
|
||||
Expressions.numberTemplate(
|
||||
Integer.class,
|
||||
"row_number() over(order by {0} desc)",
|
||||
mapSheetMngEntity.createdDttm),
|
||||
mapSheetMngEntity.mngYyyy,
|
||||
mapSheetMngEntity.mngPath,
|
||||
mapSheetMngEntity.mngState,
|
||||
mapSheetMngEntity.syncState,
|
||||
mapSheetMngEntity.syncCheckState,
|
||||
|
||||
mapSheetMngHstEntity.count().as("syncTotalCnt"),
|
||||
new CaseBuilder()
|
||||
.when(mapSheetMngHstEntity.dataState.eq("DONE"))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum()
|
||||
.as("syncStateDoneCnt"),
|
||||
|
||||
new CaseBuilder()
|
||||
.when(mapSheetMngHstEntity.syncState.ne("NOTYET"))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
|
||||
new CaseBuilder()
|
||||
.when(mapSheetMngHstEntity.syncState.eq("NOTPAIR"))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
new CaseBuilder()
|
||||
.when(
|
||||
mapSheetMngHstEntity
|
||||
.syncCheckState
|
||||
.eq("DONE")
|
||||
.and(mapSheetMngHstEntity.syncState.eq("NOTPAIR")))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
|
||||
new CaseBuilder()
|
||||
.when(mapSheetMngHstEntity.syncState.eq("DUPLICATE"))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
new CaseBuilder()
|
||||
.when(
|
||||
mapSheetMngHstEntity
|
||||
.syncCheckState
|
||||
.eq("DONE")
|
||||
.and(mapSheetMngHstEntity.syncState.eq("DUPLICATE")))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
|
||||
new CaseBuilder()
|
||||
.when(
|
||||
mapSheetMngHstEntity
|
||||
.syncState
|
||||
.eq("TYPEERROR")
|
||||
.or(mapSheetMngHstEntity.syncState.eq("SIZEERROR")))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
new CaseBuilder()
|
||||
.when(
|
||||
mapSheetMngHstEntity
|
||||
.syncCheckState
|
||||
.eq("DONE")
|
||||
.and(
|
||||
mapSheetMngHstEntity
|
||||
.syncState
|
||||
.eq("TYPEERROR")
|
||||
.or(mapSheetMngHstEntity.syncState.eq("SIZEERROR"))))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
|
||||
new CaseBuilder()
|
||||
.when(mapSheetMngHstEntity.syncState.eq("NOFILE"))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
new CaseBuilder()
|
||||
.when(
|
||||
mapSheetMngHstEntity
|
||||
.syncCheckState
|
||||
.eq("DONE")
|
||||
.and(mapSheetMngHstEntity.syncState.eq("NOFILE")))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
|
||||
|
||||
mapSheetMngEntity.createdDttm,
|
||||
mapSheetMngHstEntity.syncEndDttm.max()))
|
||||
MapSheetMngDto.MngDto.class,
|
||||
Expressions.numberTemplate(
|
||||
Integer.class,
|
||||
"row_number() over(order by {0} desc)",
|
||||
mapSheetMngEntity.createdDttm),
|
||||
mapSheetMngEntity.mngYyyy,
|
||||
mapSheetMngEntity.mngPath,
|
||||
mapSheetMngEntity.mngState,
|
||||
mapSheetMngEntity.syncState,
|
||||
mapSheetMngEntity.syncCheckState,
|
||||
mapSheetMngHstEntity.count().as("syncTotalCnt"),
|
||||
new CaseBuilder()
|
||||
.when(mapSheetMngHstEntity.dataState.eq("DONE"))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum()
|
||||
.as("syncStateDoneCnt"),
|
||||
new CaseBuilder()
|
||||
.when(mapSheetMngHstEntity.syncState.ne("NOTYET"))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
new CaseBuilder()
|
||||
.when(mapSheetMngHstEntity.syncState.eq("NOTPAIR"))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
new CaseBuilder()
|
||||
.when(
|
||||
mapSheetMngHstEntity
|
||||
.syncCheckState
|
||||
.eq("DONE")
|
||||
.and(mapSheetMngHstEntity.syncState.eq("NOTPAIR")))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
new CaseBuilder()
|
||||
.when(mapSheetMngHstEntity.syncState.eq("DUPLICATE"))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
new CaseBuilder()
|
||||
.when(
|
||||
mapSheetMngHstEntity
|
||||
.syncCheckState
|
||||
.eq("DONE")
|
||||
.and(mapSheetMngHstEntity.syncState.eq("DUPLICATE")))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
new CaseBuilder()
|
||||
.when(
|
||||
mapSheetMngHstEntity
|
||||
.syncState
|
||||
.eq("TYPEERROR")
|
||||
.or(mapSheetMngHstEntity.syncState.eq("SIZEERROR")))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
new CaseBuilder()
|
||||
.when(
|
||||
mapSheetMngHstEntity
|
||||
.syncCheckState
|
||||
.eq("DONE")
|
||||
.and(
|
||||
mapSheetMngHstEntity
|
||||
.syncState
|
||||
.eq("TYPEERROR")
|
||||
.or(mapSheetMngHstEntity.syncState.eq("SIZEERROR"))))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
new CaseBuilder()
|
||||
.when(mapSheetMngHstEntity.syncState.eq("NOFILE"))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
new CaseBuilder()
|
||||
.when(
|
||||
mapSheetMngHstEntity
|
||||
.syncCheckState
|
||||
.eq("DONE")
|
||||
.and(mapSheetMngHstEntity.syncState.eq("NOFILE")))
|
||||
.then(1L)
|
||||
.otherwise(0L)
|
||||
.sum(),
|
||||
mapSheetMngEntity.createdDttm,
|
||||
mapSheetMngHstEntity.syncEndDttm.max()))
|
||||
.from(mapSheetMngEntity)
|
||||
.leftJoin(mapSheetMngHstEntity)
|
||||
.on(mapSheetMngEntity.mngYyyy.eq(mapSheetMngHstEntity.mngYyyy))
|
||||
@@ -339,7 +323,7 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport
|
||||
mapSheetMngHstEntity.syncState.ne("DONE").and(mapSheetMngHstEntity.syncState.ne("NOTYET")));
|
||||
|
||||
if (searchReq.getSyncState() != null && !searchReq.getSyncState().isEmpty()) {
|
||||
whereBuilder.and(mapSheetMngHstEntity.syncState.eq(searchReq.getSyncState()));
|
||||
whereBuilder.and(mapSheetMngHstEntity.syncState.eq(searchReq.getSyncState()));
|
||||
}
|
||||
|
||||
if (searchReq.getSyncCheckState() != null && !searchReq.getSyncCheckState().isEmpty()) {
|
||||
|
||||
Reference in New Issue
Block a user