diff --git a/src/main/java/com/kamco/cd/kamcoback/common/enums/StatusType.java b/src/main/java/com/kamco/cd/kamcoback/common/enums/StatusType.java index 029e85ae..6d83bac7 100644 --- a/src/main/java/com/kamco/cd/kamcoback/common/enums/StatusType.java +++ b/src/main/java/com/kamco/cd/kamcoback/common/enums/StatusType.java @@ -7,9 +7,9 @@ import lombok.Getter; @Getter @AllArgsConstructor public enum StatusType implements EnumType { - ACTIVE("활성"), + ACTIVE("사용"), INACTIVE("미사용"), - PENDING("보류"); + PENDING("계정등록"); private final String desc; diff --git a/src/main/java/com/kamco/cd/kamcoback/common/utils/CommonStringUtils.java b/src/main/java/com/kamco/cd/kamcoback/common/utils/CommonStringUtils.java index ee94b72c..c891325f 100644 --- a/src/main/java/com/kamco/cd/kamcoback/common/utils/CommonStringUtils.java +++ b/src/main/java/com/kamco/cd/kamcoback/common/utils/CommonStringUtils.java @@ -14,7 +14,7 @@ public class CommonStringUtils { */ public static boolean isValidPassword(String password) { String passwordPattern = - "^(?=.*[A-Za-z])(?=.*\\d)(?=.*[!@#$%^&*()_+\\-\\[\\]{};':\"\\\\|,.<>/?]).{8,20}$"; + "^(?=.*[A-Za-z])(?=.*\\d)(?=.*[!@#$%^&*()_+\\-\\[\\]{};':\"\\\\|,.<>/?=]).{8,20}$"; return Pattern.matches(passwordPattern, password); } diff --git a/src/main/java/com/kamco/cd/kamcoback/common/utils/FIleChecker.java b/src/main/java/com/kamco/cd/kamcoback/common/utils/FIleChecker.java index 7eb6b757..f6d53588 100644 --- a/src/main/java/com/kamco/cd/kamcoback/common/utils/FIleChecker.java +++ b/src/main/java/com/kamco/cd/kamcoback/common/utils/FIleChecker.java @@ -253,8 +253,8 @@ public class FIleChecker { List fileList = new ArrayList<>(); SimpleDateFormat dttmFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - int fileTotCnt = 0; - long fileTotSize = 0; + // int fileTotCnt = 0; + // long fileTotSize = 0; try (Stream stream = Files.walk(startPath, maxDepth)) { diff --git a/src/main/java/com/kamco/cd/kamcoback/mapsheet/MapSheetMngApiController.java b/src/main/java/com/kamco/cd/kamcoback/mapsheet/MapSheetMngApiController.java index 07a9d293..9869992f 100644 --- a/src/main/java/com/kamco/cd/kamcoback/mapsheet/MapSheetMngApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/mapsheet/MapSheetMngApiController.java @@ -42,6 +42,9 @@ public class MapSheetMngApiController { @PostMapping("/mng-list") public ApiResponseDto> findMapSheetMngList( @RequestBody MapSheetMngDto.MngSearchReq searchReq) { + + System.out.println("kkkkkkkkkkkkkkkkkkkkkkkkk"); + return ApiResponseDto.ok(mapSheetMngService.findMapSheetMngList(searchReq)); } diff --git a/src/main/java/com/kamco/cd/kamcoback/mapsheet/dto/MapSheetMngDto.java b/src/main/java/com/kamco/cd/kamcoback/mapsheet/dto/MapSheetMngDto.java index 1130f3ac..95dba9e6 100644 --- a/src/main/java/com/kamco/cd/kamcoback/mapsheet/dto/MapSheetMngDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/mapsheet/dto/MapSheetMngDto.java @@ -69,15 +69,40 @@ public class MapSheetMngDto { private int mngYyyy; private String mngState; private String syncState; - private String syncCheckState; + private String syncDataCheckState; private Long syncTotCnt; private Long syncStateDoneCnt; - private Long syncCheckStateDoneCnt; - private Long syncNotFileCnt; - private Long syncTypeErrorCnt; - private Long syncSizeErrorCnt; + private Long syncDataCheckDoneCnt; + private Long syncNotPaireCnt; + private Long syncNotPaireExecCnt; + private Long syncDuplicateCnt; + private Long syncDuplicateExecCnt; + private Long syncFaultCnt; + private Long syncFaultExecCnt; @JsonFormatDttm private ZonedDateTime rgstStrtDttm; @JsonFormatDttm private ZonedDateTime rgstEndDttm; + + public double getSyncStateDoneRate() { + if (this.syncTotCnt == null || this.syncTotCnt == 0) { + return 0.0; + } + return (double) this.syncStateDoneCnt / this.syncTotCnt * 100.0; + } + + public double getSyncDataCheckDoneRate() { + if (this.syncTotCnt == null || this.syncTotCnt == 0) { + return 0.0; + } + return (double) this.syncDataCheckDoneCnt / this.syncTotCnt * 100.0; + } + + public long getSyncErrorTotCnt() { + return this.syncNotPaireCnt + this.syncDuplicateCnt + this.syncFaultCnt; + } + + public long getSyncErrorExecTotCnt() { + return this.syncNotPaireExecCnt + this.syncDuplicateExecCnt + this.syncFaultExecCnt; + } } @Schema(name = "ErrorSearchReq", description = "영상관리 오류데이터 검색 요청") diff --git a/src/main/java/com/kamco/cd/kamcoback/members/dto/MembersDto.java b/src/main/java/com/kamco/cd/kamcoback/members/dto/MembersDto.java index 557be142..55494625 100644 --- a/src/main/java/com/kamco/cd/kamcoback/members/dto/MembersDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/members/dto/MembersDto.java @@ -46,7 +46,8 @@ public class MembersDto { ZonedDateTime createdDttm, ZonedDateTime firstLoginDttm, ZonedDateTime lastLoginDttm, - ZonedDateTime statusChgDttm) { + ZonedDateTime statusChgDttm, + Boolean pwdResetYn) { this.id = id; this.uuid = uuid; this.userRole = userRole; @@ -54,7 +55,7 @@ public class MembersDto { this.name = name; this.employeeNo = employeeNo; this.status = status; - this.statusName = getStatusName(status); + this.statusName = getStatusName(status, pwdResetYn); this.createdDttm = createdDttm; this.firstLoginDttm = firstLoginDttm; this.lastLoginDttm = lastLoginDttm; @@ -66,8 +67,12 @@ public class MembersDto { return type.getText(); } - private String getStatusName(String status) { + private String getStatusName(String status, Boolean pwdResetYn) { StatusType type = Enums.fromId(StatusType.class, status); + pwdResetYn = pwdResetYn != null && pwdResetYn; + if (type.equals(StatusType.PENDING) && pwdResetYn) { + type = StatusType.ACTIVE; + } return type.getText(); } } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/mapsheet/MapSheetMngRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/mapsheet/MapSheetMngRepositoryImpl.java index aa33deac..16125bf5 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/mapsheet/MapSheetMngRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/mapsheet/MapSheetMngRepositoryImpl.java @@ -52,6 +52,16 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport whereBuilder.and(mapSheetMngEntity.mngYyyy.eq(searchReq.getMngYyyy())); } + NumberExpression totalCount = mapSheetMngHstEntity.count().as("syncTotCnt"); + + NumberExpression doneCount = + new CaseBuilder() + .when(mapSheetMngHstEntity.dataState.eq("DONE")) + .then(1L) + .otherwise(0L) + .sum() + .as("syncStateDoneCnt"); + List foundContent = queryFactory .select( @@ -67,33 +77,76 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport mapSheetMngEntity.syncCheckState, mapSheetMngHstEntity.count(), new CaseBuilder() - .when(mapSheetMngHstEntity.syncState.eq("DONE")) + .when(mapSheetMngHstEntity.dataState.eq("DONE")) .then(1L) .otherwise(0L) .sum() .as("syncStateDoneCnt"), new CaseBuilder() - .when(mapSheetMngHstEntity.syncCheckState.eq("DONE")) + .when(mapSheetMngHstEntity.syncState.ne("NOTYET")) .then(1L) .otherwise(0L) .sum(), new CaseBuilder() - .when(mapSheetMngHstEntity.dataState.eq("NOT")) + .when( + mapSheetMngHstEntity + .syncState + .eq("NOFILE") + .or(mapSheetMngHstEntity.syncState.eq("NOTPAIR"))) .then(1L) .otherwise(0L) .sum(), new CaseBuilder() - .when(mapSheetMngHstEntity.dataState.eq("TYPEERROR")) + .when( + mapSheetMngHstEntity + .syncCheckState + .eq("DONE") + .and( + mapSheetMngHstEntity + .syncState + .eq("NOFILE") + .or(mapSheetMngHstEntity.syncState.eq("NOTPAIR")))) .then(1L) .otherwise(0L) .sum(), new CaseBuilder() - .when(mapSheetMngHstEntity.dataState.eq("SIZEERROR")) + .when(mapSheetMngHstEntity.syncState.eq("DUPLICATE")) .then(1L) .otherwise(0L) .sum(), - mapSheetMngHstEntity.syncStrtDttm.min(), - mapSheetMngHstEntity.syncCheckEndDttm.max())) + 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(), + mapSheetMngEntity.createdDttm, + mapSheetMngHstEntity.syncEndDttm.max())) .from(mapSheetMngEntity) .leftJoin(mapSheetMngHstEntity) .on(mapSheetMngEntity.mngYyyy.eq(mapSheetMngHstEntity.mngYyyy)) diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/members/MembersRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/members/MembersRepositoryImpl.java index a57d9204..0cf06001 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/members/MembersRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/members/MembersRepositoryImpl.java @@ -125,7 +125,8 @@ public class MembersRepositoryImpl implements MembersRepositoryCustom { memberEntity.createdDttm, memberEntity.firstLoginDttm, memberEntity.lastLoginDttm, - memberEntity.statusChgDttm)) + memberEntity.statusChgDttm, + memberEntity.pwdResetYn)) .from(memberEntity) .where(builder) .offset(pageable.getOffset()) diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryImpl.java index d160475e..3029a053 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryImpl.java @@ -108,7 +108,7 @@ public class MapSheetMngFileJobRepositoryImpl extends QuerydslRepositorySupport public void mngHstDataSyncStateUpdate(MapSheetMngDto.MngHstDto updateReq) { - if (updateReq.getSyncState().equals("DONE")) { + if (updateReq.getDataState().equals("DONE")) { long updateCount = queryFactory .update(mapSheetMngHstEntity)