205 Commits (main)
 

Author SHA1 Message Date
박성영 bc0d2e4128 ### feat: MariaDB 데이터베이스 백업 문서 추가
- **백업 가이드 추가**
  - `docs/용인 장애인 서버에서 관리 방법.md`에 **MariaDB 데이터베이스 백업** 섹션(`6.`) 추가:
    - 백업 디렉토리 생성 방법 명시.
    - 백업 스크립트 작성 및 권한 부여 절차 설명.
    - Crontab 설정을 통한 자동화 백업 방법(매일 밤 12시) 추가.

- **백업 스크립트 상세**
  - 데이터베이스 백업 파일 생성 및 압축, 30일 지난 백업 파일 삭제를 포함한 스크립트 제공.
  - 성공 및 실패 로그 기록 기능 포함.

- **관리 명령어 제공**
  - 수동 백업 수행, 백업 파일 확인, 로그 조회, 복원 명령어 등 추가 명세.

- **기타**
  - 백업 스크립트 실행 및 관리 명령어 내용을 문서에 명확하게 기록.
  - MariaDB 관리와 백업 프로세스를 쉽게 이해할 수 있도록 섹션 및 내용 구성.
17 hours ago
박성영 93b15f3db0 ### feat: `Step 0` 및 `Step 1` 로직 공통화 및 비교 체커 로직 개선
- **`Step 0` 및 `Step 1` 공통 로직 추가**
  - `ComparisonOmServiceImpl`에서 `Step 0` 및 `Step 1` API 호출을 공통화:
    - `step0Response`와 `step1Response` 객체 생성 및 유효성 검증 추가.
    - 오류 발생 시 적절한 `log.warn` 및 `log.error` 출력.
    - 모든 검사 로직에서 공통 응답 데이터를 재사용하도록 수정.

- **체커(`Checker`) 클래스의 메서드 시그니처 수정**
  - `check` 메서드가 공통화된 응답 데이터(`step0Response`, `step1Response`)를 전달받도록 변경:
    - 기존 `check(CarFfnlgTrgtIncmpVO existingData, String userOrgCd)` →
      `check(CarFfnlgTrgtIncmpVO existingData, String userOrgCd, NewBasicResponse step0Response, NewBasicResponse step1Response)`.
    - `ProductUseOmChecker`, `OwnerTransferOmChecker`, `TransferOmChecker` 등 모든 비교 체커 반영.
    - 메서드 내 중복된 API 호출 제거 및 기존 응답 데이터 활용.

- **API 호출 로직 개선**
  - `createBasicRequest` 메서드 추가:
    - `vhrno`, `vin`, `levyCrtrYmd` 기반의 API 요청 객체를 생성하는 로직 캡슐화.
    - 호출부 간소화 및 재사용성 향상.

- **코드 및 처리 흐름 정리**
  - 기존 각 체커 내부에서 수행되던 API 호출 제거:
    - `Step 0` 및 `Step 1`은 메인 서비스에서 호출 후 응답 전달 방식으로 수정.
    - 주석 보완 및 로잉 일관성 개선.

- **불필요한 호출 및 데이터 처리 제거**
  - 중복된 API 호출 및 데이터 검증 로직 제거:
    - 기존 `step0Response`, `step1Response` 응답을 재활용하여 불필요한 호출 제거.
    - 검사 결과 처리 흐름을 단계별로 정리하여 가독성 강화.

- **기타**
  - 추가된 API 호출 및 유효성 검증으로 로직 안정성 강화.
  - 메인 서비스와 각 비교 로직 간 호출 체계를 명확히 구분.
18 hours ago
박성영 e113a20b23 ### feat: `Step 1` 로직 공통화 및 `delay_checker` 메서드 시그니처 수정
- **`Step 1` 공통 로직 도입**
  - `ComparisonServiceImpl`에서 차대번호 기반 API 호출(`Step 1`)을 공통화:
    - `step1Response` 생성 및 응답 데이터 유효성 검증 추가.
    - 오류 처리 및 로깅(`log.warn`, `log.error`) 강화.
    - 응답 객체를 각 검사 로직에서 재사용하도록 수정.

- **`delay_checker` 메서드 시그니처 업데이트**
  - 기존 `check(CarFfnlgTrgtVO existingData, String userOrgCd, NewBasicResponse step0Response)` →
    `check(CarFfnlgTrgtVO existingData, String userOrgCd, NewBasicResponse step0Response, NewBasicResponse step1Response)`로 변경:
    - 모든 `delay_checker`(`OwnerCloseWithin31Checker`, `ProductUseChecker`, `TransferCase115DayChecker` 등)에 반영.
    - 공통 API 호출(`Step 1`) 결과를 재활용하여 불필요한 중복 호출 제거.
    - `createBasicRequest`, `bassMatterLogService.updateCarFfnlgTrgtIdByTxIdNewTx` 처리 로직 정리.

- **로직 순서 정리 및 가독성 개선**
  - 처리 흐름 단순화:
    - 검사 단계 순서를 공통 체크 → 내사종결 → 날짜 수정 후 부과로 정리.
    - 각 체커 로직에서 호출 단계별 주석 추가.

- **`ComparisonOmServiceImpl` 로직 재정렬**
  - 명의이전 로직(`ownerTransferOmChecker`) 순서를 뒤로 이동:
    - 기존 이첩 로직 다음 단계로 조정하여 처리 가독성 강화.

- **불필요한 호출 제거**
  - `delay_checker` 내 중복된 `Step 1` 호출 제거:
    - 공통화된 `step1Response` 객체를 활용하도록 모든 로직 간소화.

- **기타**
  - 주석 및 로깅 일관성 개선:
    - 호출 단계별 로그 추가 및 기존 주석 정리.
    - `step1Response` 응답 유효성 검증 및 오류 시 로깅 처리 강화.
3 days ago
박성영 eb4a466a3c ### feat: `Step 0` 공통 로직 추가 및 delay_checker 업데이트
- **`Step 0` 공통 로직 도입**
  - `ComparisonServiceImpl`에 차량번호 기반 API 호출(`Step 0`) 공통화:
    - API 호출하여 `step0Response` 객체 생성.
    - 결과 데이터 유효성 검증 후 체크 로직에서 재사용.
    - 필요 시 null 반환 및 적절한 로그 출력(`log.warn` / `log.error`).

- **`delay_checker` 클래스 메서드 시그니처 수정**
  - 기존 `check(CarFfnlgTrgtVO existingData, String userOrgCd)` →
    `check(CarFfnlgTrgtVO existingData, String userOrgCd, NewBasicResponse step0Response)`로 변경:
    - `OwnerCloseWithin31Checker`, `ProductUseChecker`, `TransferCase115DayChecker` 등 전범위 반영.
    - `step0Response`를 활용하여 기존 중복 API 호출 제거.
    - 불필요한 `Step 0` 호출 및 데이터 매핑 로직 제거.

- **로직 개선 및 코드 정리**
  - 중복 호출 제거 및 API 응답 데이터 재사용을 위해 호출 순서 정리:
    - 공통 체크(상품용/명의이전 등) → 내사종결 → 날짜 수정 및 부과 순서로 간소화.
    - 각 단계별 로직 정리 및 부적절한 중복 호출 제거.

- **기타**
  - 불필요한 주석 제거 및 메서드 내 주석 추가로 가독성 강화.
  - `createBasicRequest` 메서드 추가로 API 호출 로직 캡슐화.
3 days ago
박성영 bccccf3966 ### feat: 명의이전 날짜 비교와 비고 생성 로직 개선
- **명의이전 날짜 비교 조건 추가**
  - `ProductLevyOver31Checker`, `ProductCloseWithin31Checker` 로직 수정:
    - `유효기간만료일 - 90일 <= 변경일자 <= 검사종료일자` 조건으로 비교 강화.
    - 기존 검사 종료일자와의 비교 조건을 대체.
    - 날짜 비교 로직 내 `vldPrdExpryDate`, `vldPrdExpryDateMinus90`, `inspEndDate` 변수를 추가하여 명확한 기준 설정.

- **비고 상세 생성 개선**
  - `ComparisonRemarkBuilder` 로직 확장:
    - `유효기간만료일`, `검사종료일자` 등을 비고 상세 정보로 추가.
    - 검색 조건, 날짜
3 days ago
박성영 045c6ec816 ### feat: 차량번호 대신 차대번호 활용 및 Step 0 로직 추가
- **차량번호 대신 차대번호 활용**
  - `OwnerCloseWithin31Checker`, `ProductLevyOver31Checker`, `ProductUseChecker` 등 여러 `delay_checker` 및 `om_checker` 클래스:
    - Step 0 단계에서 API 호출을 통해 차대번호(`vin`)를 조회하도록 수정.
    - Step 1 단계 및 이후 요청에서는 차량번호 대신 차대번호를 사용.

- **Step 0 로직 추가**
  - 명의이전 및 상품용 지연 케이스 모두 Step 0 단계 신설:
    - API 호출로 차대번호 조회.
    - 응답 데이터 유효성 검증 추가:
      - 응답 데이터가 없거나 비정상이면 null 반환.
    - 로깅(`log.info` 및 `log.warn`) 강화:
      - 오류나 응답 없음 등 상태에 따라 적절히 로그 출력.
    - `bassMatterLogService.updateCarFfnlgTrgtIdByTxIdNewTx` 호출로 로그 데이터 초기화.

- **JSP 검색 조건 로직 수정**
  - 검색 조건에서 날짜 포맷 관련 `.replace("-", "")` 제거:
    - 원본 값을 그대로 활용.
    - `searchCond.schRcptYmdStart`, `searchCond.schRcptYmdEnd` 등 검색 타임라인 유지.

- **서비스 로직 유지보수**
  - `inspYmd` 또는 `levyCrtrYmd`와 같은 기존 요청 포맷에 따라 Step 0의 차대번호를 전달하도록 기존 메서드 호출 방식 수정.
  - 불필요한 중복 호출 및 데이터 매핑 로직 제거.

- **기타**
  - 공통화된 API 호출 및 처리 로직 반영.
  - 관련 로직 가독성 강화를 위한 주석 및 변수명 수정.
4 days ago
박성영 11456d7340 ### refactor: 날짜 형식 처리 로직 및 데이터 저장 변경
- **`OwnerTransferOmChecker` 및 `ProductUseOmChecker` 클래스 수정**
  - 날짜 데이터에서 불필요한 `.replace("-", "")` 호출 제거 및 기존 포맷 그대로 사용하도록 변경.
  - 날짜 형식을 처리하기 위해 `inspVldPrd`, `levyCrtrYmd` 등 필드에 처리 로직 조정.
  - `DATE_FORMATTER` → `DATE_FORMATTER_DASH` 상수로 변경하여 일관성 확보.

- **데이터 저장 로직 수정**
  - `taskPrcsYmd`, `carRegFrmbkChgYmd` 데이터에 기존 포맷 유지:
    - `LocalDate.now().format(DATE_FORMATTER_DASH)` 호출로 저장 포맷 명확화.
    - 기존 `.replace("-", "")` 변환 로직 제거하여 데이터 원본 그대로 유지.

- **유지보수성 향상**
  - 코드 중복 제거 및 주석 추가로 가독성 및 유지보수성 강화.
  - 기존 메서드에서 불필요한 호출 로직 제거 및 필요한 부분만 변수 재활용.

- **기타**
  - 기존 데이터 처리 로직과 연계, 호환성 확인.
4 days ago
박성영 33fcb754fc ### feat: 날짜 형식 개선 및 불필요한 페이징 제거
- **날짜 형식 포맷 통일**
  - 기존 `yyyyMMdd` → `yyyy-MM-dd` 포맷 변경.
  - `AbstractComparisonChecker` 및 `AbstractComparisonOmChecker`에 `DATE_FORMATTER_DASH` 상수 추가.
  - 모든 `delay_checker` 및 `om_checker` 클래스에서 `DATE_FORMATTER_DASH` 적용.

- **JSP 초기값 수정**
  - `schRcptYmdStart` 검색 기간 초기값 조정:
    - 기존 `-15일` → `-10일`로 변경.
  - 초기화 버튼 클릭 시 변경된 초기값 반영.

- **페이징 UI 및 로직 제거**
  - 불필요한 페이징 관련 코드 삭제:
    - JSP에서 `perPageSelect`, `currentPage`, `totalPages` 삭제.
    - JS에서 관련 전역 변수(`GRID_PAGINATION_INFO`) 및 `setOptPageOptions` 코드 제거.
    - `readData` 메서드 호출 시 항상 첫 페이지(`1`) 로드하도록 변경.
  - 그리드에서 일련번호 계산 단순화:
    - 기존 전체 페이지 기반 → 현재 페이지의 키 값만 사용.

- **DB 변경**
  - `tb_car_ffnlg_trgt_incmp` 스키마에서 날짜 필드 길이 확장:
    - `RCPT_YMD`, `TASK_PRCS_YMD`, `CAR_REG_FRMBK_CHG_YMD` 등 날짜 관련 필드 길이 `8 → 10`.

- **기타**
  - JSP 및 JS에서 사용하지 않는 포맷팅 코드 제거:
    - `moment()` 호출 비활성화 및 주석화.
4 days ago
박성영 7051953c82 ### feat: 재검 여부 필터 추가 및 그리드 개선
- **재검 여부 필터 추가**
  - `검색 조건`에 재검 여부(`재검(Y)`, `미재검(N)`) 선택 기능 추가.
  - 재검 여부에 따른 데이터 필터링 로직 구현:
    - JSP: 검색 영역에 재검 여부 체크박스 추가.
    - JS: 검색 조건(`schReinspYn`)에 재검 여부 값 추가 및 다운로드 URL에 포함되도록 설정.
    - MyBatis: 쿼리에 재검 여부 필터 추가.

- **그리드 컬럼 및 데이터 처리 개선**
  - 결과 그리드에 `재검 여부` 열 추가:
    - JSP 및 그리드 설정에 관련 컬럼 반영.
    - MyBatis 또는 데이터 처리 단계에서 `재검 여부` 값 처리 및 가공 로직 구현.
  - 일련번호 계산 로직 단순화:
    - 기존 페이징 정보 활용 대신 로우 키만 활용하도록 변경.

- **서비스 및 내부 로직 변경**
  - 데이터 처리 단계에서 `재검 여부` 설정:
    - `ServiceImpl`: 일수(`daycnt`) 값에 `*` 포함 여부로 재검 여부 결정 후 저장.
  - VO 및 Mapper 수정:
    - `CarFfnlgTrgtVO`, `CarFfnlgTrgtExcelVO`: 재검 여부(`reinspYn`) 필드 추가.
    - DB: `tb_car_ffnlg_trgt` 테이블에 `REINSP_YN` 칼럼 추가, 마이그레이션 SQL 작성.

- **불필요한 페이징 관련 코드 제거**
  - 조회 페이징용 전역 변수 및 관련 UI 제거:
    - `perPageSelect`, `currentPage`, `totalPages` 등 페이징 UI 요소 삭제.
  - JS 및 컨트롤러에서 페이징 관련 전역 로직 제거 및 단순화.

- **기타 개선**
  - 검색 초기화 버튼에 재검 여부 관련 로직 추가.
  - 검색 조건 정리(`SEARCH_COND`) 및 관련 주석 추가.
  - DEBUG 로그 추가: `재검 여부` 설정 및 출력 내역 기록.
4 days ago
박성영 9a67cf6e14 ### feat: 날짜 형식 처리 로직 수정 및 불필요한 replace 제거
- **날짜 형식 처리 개선**
  - `inspYmd`, `vldPrdExpryYmd`, `inspEndYmd` 데이터에 대해 `.replace("-", "")` 호출로 날짜 형식을 변환하도록 수정.
  - 모든 `delay_checker` 관련 클래스(`OwnerCloseWithin31Checker`, `ProductLevyOver31Checker` 등)에서 동일한 `.replace` 로직 추가하여 입력 데이터의 통일성을 보장.

- **불필요한 replace 호출 제거**
  - `CarRegFrmbkChgYmd` 필드에서 `.replace("-", "")` 호출을 제거하여 데이터 원본 그대로 사용.

- **서비스 로직 정리**
  - `ComparisonServiceImpl`:
    - 날짜 검증 순서 중 재사용성이 높은 `transferCase115DayChecker` 로직 순서를 앞쪽으로 이동.
    - 기존 순서를 재정렬하여 처리 흐름을 명확하게 개선:
      - 이첩 로직 → 내사종결 → 날짜 수정 후 부과 순서로 정리.
    - 처리 단계별 주석 추가로 가독성 개선.

- **유지보수성 강화**
  - `ComparisonServiceImpl` 및 관련 `Checker` 간 호출 순서 명확히 정리.
  - 중복 코드를 완화하고 관련 주석 및 로깅 추가.
4 days ago
박성영 06f6a03178 ### feat: 차량번호 및 최종등록일 별표 처리 로직 추가
- **차량번호 및 최종등록일 별표(`*`) 처리 로직 구현**
  - 차량번호와 최종등록일 앞에 별표가 포함된 경우, 별표를 별도의 필드(`vhclno-asterisk`, `last-reg-ymd-asterisk`)로 분리하여 처리.
  - 별표 제거 후 본 데이터와 함께 파싱 및 조립 로직 반영:
    - `CarFfnlgTrgtServiceImpl`에 별표 분리 및 데이터 처리 코드 추가.
    - 별표가 포함된 경우 다시 앞부분에 별표를 붙이는 로직 구현.

- **`application.yml` 필드 길이 설정 변경**
  - `vhclno-asterisk`, `last-reg-ymd-asterisk` 필드 추가 및 길이(1바이트) 정의.
  - 기존 필드들의 바이트 길이 수정:
    - `vhclno`: 13 → 12 (2바이트), 12 → 11 (3바이트)
    - `last-reg-ymd`: 12 → 11 (2바이트), 11 → 10 (3바이트)
    - 기타 관련 필드 길이 조정.

- **DB 스키마 변경**
  - `tb_car_ffnlg_trgt` 테이블:
    - 날짜 필드(`RCPT_YMD`, `INSP_YMD`, `LAST_REG_YMD`, 등)의 길이 기존 8 → 10으로 확장.
    - `DAYCNT` 필드 길이 4 → 5, 유효기간 만료일자(`VLD_PRD_EXPRY_YMD`) 등 관련 필드 길이 변경.

- **로깅 개선**
  - 별표 존재 여부 및 최종 데이터 확인용 DEBUG 로그 추가:
    - 차량번호 및 최종등록일 시 별표 처리 전후 내역 상세 기록.

- **유지보수성 및 가독성 향상**
  - 반복적인 고정폭 필드 처리 로직 리팩토링:
    - `padRightBytes` 호출부 정리.
    - 중복 및 불필요한 변수 제거, 관련 주석 정리.
4 days ago
박성영 545832040b ### feat: 날짜 형식 처리 로직 수정 및 검증 로직 제거
- **날짜 형식 처리 방식 변경**
  - 기존 YYYYMMDD → YYYY-MM-DD 변환 로직 제거:
    - JSP 화면, Excel 다운로드, DB 쿼리에서 날짜 변환 없이 원본 날짜 값을 그대로 사용하도록 수정.
    - `formatYmd` 및 관련 변환 메서드 제거.

- **날짜 형식 검증 로직 비활성화**
  - 입력 데이터에서 '*' 포함된 특수 형식이 있는 경우를 고려하여 날짜 검증 로직 삭제:
    - `isValidDate` 호출 제거 및 주석 처리.
    - 검사일자, 검사종료일자, 유효기간만료일자 등에 대한 검증 로직 비활성화.

- **DB 스키마 변경**
  - `tb_car_ffnlg_trgt`, `tb_car_ffnlg_trgt_incmp` 테이블:
    - `RMRK_DTL` 컬럼 타입 `MODIFY COLUMN`으로 변경.

- **MyBatis 매퍼 수정**
  - `CarFfnlgTrgtMapper_maria.xml`:
    - SELECT 구문에서 DATE_FORMAT 제거, 원본 날짜 필드 그대로 반환하도록 수정.

- **서비스 로직 개선**
  - `CarFfnlgTrgtServiceImpl`:
    - `DateTimeFormatter` 추가 및 사용하지 않는 변수를 명확히 삭제.
    - `padRightBytes`, `padLeftBytes` 호출부에서 날짜 형식 그대로 처리.

- **기타**
  - `application.yml`에서 주석 정리 및 일관성 유지.
  - 코멘트 추가 및 불필요한 변환 관련 로직 제거.
4 days ago
박성영 cadf5af5a3 ### feat: 비고 상세 생성 로직 개선 및 데이터 처리 로직 확장
- **비고 상세 생성 및 업데이트**
  - `ComparisonOmRemarkBuilder` 및 `ComparisonRemarkBuilder` 수정:
    - 비고 상세 생성 시 API 호출 및 비교 과정, 판정 근거 등 추가 기록.
    - 각 판정 유형별로 세부 정보를 포함하도록 형식 개선.

- **Checker 로직 개선**
  - `OwnerCloseWithin31Checker`, `OwnerLevyOver31Checker` 등 `delay_checker` 클래스:
    - 명의이전일자 및 검사일 간 조건 비교 로직 확장.
    - 추가 쿼리 조건 및 상세한 레코드 비교 로직 포함.

- **DB 스키마 변경**
  - `tb_car_ffnlg_trgt`, `tb_car_ffnlg_trgt_incmp` 테이블:
    - `RMRK_DTL` 컬럼 타입을 `TEXT`로 변경.
    - `RMRK_DTL` 컬럼 신규 추가로 비고 상세 저장 로직을 지원.

- **API 수정**
  - `ComparisonRemarkBuilder.buildOwnerLevyOver31RemarkDetail` 메서드:
    - `vldPrdExpryYmd`, `inspEndYmd` 등 추가 파라미터 처리.
    - 검사종료일 및 유효기간만료일에 따른 추가 비교 로직 반영.

- **기타**
  - 기존 비고 생성 로직 리팩토링 및 상세 기록을 위한 주석 추가.
  - 변경 사항을 반영한 추가 SQL 파일 작성 및 테이블 변경 적용.
4 days ago
박성영 f6c70be983 ### feat: 사용자 정보 병렬 처리 지원 및 비교 로직 수정
- **병렬 처리 시 사용자 정보 전달 구현**
  - 세션 기반 사용자 정보 조회 로직 추가: `SessionUtil.getLoginUser()`.
  - 사용자 정보를 병렬 처리의 각 작업으로 전달하기 위해 메소드 서명 수정:
    - `processOneTarget`, `executeComparison`에 `LoginUserVO` 매개변수 추가.

- **Comparison 서비스 로직 업데이트**
  - 기존 세션 종속 비교 로직을 호출부에서 사용자 정보를 전달하도록 수정:
    - `ComparisonOmServiceImpl`, `ComparisonServiceImpl` 코드 변경.
    - `ComparisonOmChecker`, `delay_checker`의 호출 방식 업데이트.

- **코드 리팩토링**
  - 중복된 세션 접근 코드를 `try-catch` 처리로 통합.
  - 불필요한 세션 의존성 최소화 및 호출부 주입 방식으로 변경.

- **병렬 처리 개선**
  - `CompletableFuture` 기반 병렬 처리에 사용자 정보가 올바르게 전달되도록 수정.
  - 스레드 풀 크기 최적화: `(CPU 코어 수 * 2)`.

- **기타**
  - 주석 추가 및 로그 개선: 세션 조회 실패 경고 로그 및 사용자 정보 전달 내역 로깅.
  - 기존 트랜잭션 처리 방식과 병렬 처리 간의 연계 유지.
4 days ago
박성영 edc0aa5e89 ### feat: 사용자 조직코드 기반 비교 로직 추가 및 세션 의존성 제거
- **사용자 조직코드 추가**
  - `ComparisonChecker` 및 `ComparisonOmChecker`의 `check` 메서드에 `userOrgCd` 매개변수 추가.
  - 세션에서 사용자 정보를 가져오던 방식 제거 후, 호출부에서 조직코드를 전달하도록 변경.

- **Checker 클래스 수정**
  - `ProductUseChecker`, `OwnerCloseWithin31Checker`, `OwnerLevyOver31Checker` 등 모든 `delay_checker` 및 `om_checker` 클래스에서 새로운 매개변수(`userOrgCd`)를 활용하는 방식으로 수정.
  - 사용자 조직코드 유효성 검사 추가.

- **세션 의존성 제거**
  - 불필요한 `SessionUtil` 및 `LoginUserVO` 관련 코드 삭제.
  - 사용자 정보의 외부 주입 방식을 통해 세션 로그인을 사용하지 않는 호출도 가능하도록 개선.

- **비교 서비스 로직 수정**
  - `ComparisonServiceImpl` 및 `ComparisonOmServiceImpl`에서 세션 기반 사용자 정보 조회 후 조직코드 추출 및 모든 관련 호출로 전달.
  - 비교 로직 유지보수성 강화.

- **기타**
  - 중복 코드 제거 및 코드 정리.
  - 주석 업데이트.
4 days ago
박성영 9c6f16e4b2 ### feat: 명의이전일자 및 검사일 비교 로직 수정
- **명의이전일자 ~ 검사일 계산 조건 보완**
  - `명의이전일자 < 검사종료일` 조건을 추가하여 검사종료일에 따른 비교 로직 세분화.
  - 검사일과 명의이전일자 간 기준 일수 비교 조건 명확화:
    - 검사종료일 기준 조건 추가.
    - 명의이전일자가 검사일 내 포함되는지 확인 로직 개선.

- **적용 대상**
  - `OwnerCloseWithin31Checker`
  - `OwnerLevyOver31Checker`
  - `ProductCloseWithin31Checker`
  - `ProductLevyOver31Checker`

- **로그 레벨 조정**
  - `TransferOmChecker` 관련 `log.debug`를 `log.info`로 변경하여 로그 가시성 강화.

- **문서 업데이트**
  - `자동차과태료_비교로직_정리-[지연].md`에 관련 변경사항 반영:
    - 명의이전일자 비교 기준 및 로직 설명 수정.

- **기타**
  - 중복 코드 제거 및 가독성을 위한 리팩토링.
  - 검사일자의 파싱 처리 및 최신 명의이전일자 계산 로직 정리.
4 days ago
박성영 28fc8c4b87 ### feat: 비고(Remark) 생성 로직 개선 및 메서드 분리
- **비고 생성 메서드 수정 및 분리**
  - `ComparisonOmRemarkBuilder` 및 `ComparisonRemarkBuilder`:
    - `buildProductCloseLevyRemark` 메서드를 `buildProductCloseRemark`와 `buildProductLevyRemark`로 각각 분리.
    - 비고 형식과 요구사항에 따라 명확히 구분된 메서드 제공.
  - `OwnerTransferRemarkBuilder`와 관련된 비고 생성 메서드 개선:
    - 파라미터 추가(`sggNm`, `ownerNm`)로 상세 정보 포함 가능.

- **Checker 클래스 로직 수정**
  - `ProductLevyOver31Checker`, `ProductCloseWithin31Checker`, `OwnerTransferOmChecker`:
    - 분리된 비고 생성 메서드 호출 방식으로 변경.
    - 불필요 매개변수 제거 및 명확성 증가.

- **비고 형식 변경**
  - 31일 이내: `명의이전(YYYY.MM.DD) 이전소유자 상품용`
  - 31일 초과: `시군구명/소유자명, 미수검명의이전(YYYY.MM.DD)`

- **기타**
  - 중복된 메서드 제거 및 가독성을 위한 리팩토링.
  - 기존 로직 및 형식에 맞춰 코드 정리.
5 days ago
박성영 fb63a0bc2b ### feat: 비고 상세 생성 및 관리 기능 추가
- **주요 변경 사항**
  - `RMRK_DTL`(비고 상세) 컬럼 추가:
    - `tb_car_ffnlg_trgt`, `tb_car_ffnlg_trgt_incmp` 테이블에 `RMRK_DTL`(비고 상세, 최대 4000자) 컬럼 추가.
  - MyBatis 매퍼 및 VO 수정:
    - 관련 쿼리(`SELECT`, `INSERT`, `UPDATE`)에 `RMRK_DTL` 필드 추가.
    - `CarFfnlgTrgtVO`, `CarFfnlgTrgtExcelVO` 등 데이터 모델에 `RMRK_DTL` 속성 추가.
  - 비고 상세 생성 로직 추가:
    - `ComparisonRemarkBuilder`, `ComparisonOmRemarkBuilder`에 비고 상세 생성 메서드 다수 추가(`buildProductUseRemarkDetail` 등).
    - 로직 내 기존 `RMRK` 생성 메서드와 함께 호출하여 상세 내용을 추가 저장.
  - Checker 개선:
    - `delay_checker`, `om_checker` 등 모든 체크 로직에서 비고 상세(`RMRK_DTL`) 생성 후 DB 업데이트.

- **화면 및 UI 변경**
  - JSP 업데이트:
    - 상세 화면 및 Excel 다운로드 시 ‘비고 상세’ 열 추가.
    - ‘비고’는 너비 증가(`200px → 300px`), ‘비고 상세’는 신규 추가(`200px`).
    - 내용이 길 경우 30자 요약 표시 및 팝업 기능 추가.

- **기타**
  - SQL 정리 및 누락된 매퍼 반영.
  - 가독성 개선을 위한 코드 리팩토링.
  - 주석 및 문서 업데이트 (`자동차과태료_비교로직_정리-[미필].md`).
5 days ago
박성영 4691fb8073 ### feat: 비고(Remark) 생성 로직 개선 및 코드 단순화
- **비고 형식 변경 및 단순화**
  - 불필요한 다중 매개변수를 제거하고 단일 매개변수 처리로 변경
  - 상품용, 명의이전, 이첩 등의 비고 생성 로직에서 복잡한 문자열 빌더 사용 제거, 단순 문자열 반환 방식으로 수정

- **시군구명 및 소유자명 추가**
  - 명의이전 및 이첩 비고 생성 시 시군구명(`sggNm`)과 소유자명(`ownerNm`)을 파라미터로 추가
  - `carFfnlgTrgtMapper.selectSggNmBySggCd` 호출을 통해 시군구명 조회 로직 적용

- **불필요 메서드 삭제**
  - `NewBasicResponse` 및 `NewBasicResponse.Record` 관련 비고 생성 메서드 제거 (`buildProductUseRemark`, `buildProductUseChangeRemark` 등)

- **Checker 로직 수정**
  - `OmChecker`, `delay_checker` 내 비고 생성 로직 모두 단일화된 메서드 호출로 변경
  - 모든 비고 생성 로직에 시군구명 및 소유자명 적용
  - 호출 매개변수 최소화 및 유지보수성 강화

- **기타**
  - 기존에 사용되었던 복잡한 비고 생성 포맷 정리 및 관련 주석 제거
  - 중복 코드 제거 및 가독성을 위한 리팩토링
5 days ago
박성영 dde9bf4c02 feat: 과태료 대상 비교 로직 병렬 처리 및 트랜잭션 관리 개선
- **병렬 처리 도입**
  - 대상 데이터 처리 작업을 병렬화하여 성능 최적화
  - CPU 코어 수의 2배 스레드 풀 생성 및 `CompletableFuture` 활용

- **트랜잭션 단위 변경**
  - 기존: 전체 트랜잭션으로 관리, 하나의 실패 시 전체 롤백
  - 변경: 개별 대상별 트랜잭션 적용, 실패 데이터만 롤백

- **통계 및 로그 추가**
  - 성공/실패, 유형별 처리 건수(상품용, 이첩, 정상 등) 통계 데이터 제공
  - 병렬 처리 상태 및 작업 내역 로그 추가

- **기타**
  - `TransactionTemplate` 도입 및 가독성을 위한 코드 리팩토링
  - 문서 업데이트 (`자동차과태료_비교로직_정리-[미필].md`, `자동차과태료_비교로직_정리-[지연].md`)
5 days ago
박성영 914f61256b ### feat: 차량번호 및 소유자명 처리 로직 개선, 특수문자 제거 처리 추가
- **소유자명 검증 보완**
  - 소유자명은 null 또는 공백 입력도 가능하도록 로직 수정
  - 길이 초과(75자) 제한만 유효하게 유지

- **특수문자 '*' 제거 처리 추가**
  - 차량번호 및 일수(`daycnt`)에서 전출차량 및 재검여부를 나타내는 '*' 제거 후 검증
  - `createLedgerRequest`, `createBasicRequest` 등 차량번호를 사용하는 API 호출 로직에 적용
  - 숫자값 검증 및 비교 수행 시 특수문자 제거 처리 추가

- **차량번호 형식 검증 로직 보완**
  - '*' 특수문자 포함 여부를 허용하도록 정규식 및 검증 프로세스 수정
  - '*'만 포함된 경우는 유효하지 않도록 처리

- **Comparison 로직 수정**
  - 비교 로직 시작 시 차량번호 및 일수에서 '*' 제거 기능 추가

- **샘플 데이터 수정**
  - 샘플 데이터 파일 수정 (`docs/지연-샘플용-utf-8-1.txt`)
  - 차량번호 및 일수에서 전출차량 및 재검여부를 나타내는 '*' 적용 예시 추가

- **기타**
  - 가독성을 위한 주석 정리 및 로직 구조 개선
5 days ago
박성영 ad168358cb feat: 과태료 대상 비교 로직 병렬 처리 구현 및 성능 최적화
- **병렬 처리 도입**
  - 대상 데이터별로 처리 작업을 병렬화하여 성능 개선
  - I/O 작업 처리 시 CPU 코어 수의 2배 스레드 풀 적용

- **트랜잭션 단위 변경**
  - 기존: 전체가 하나의 트랜잭션으로 관리되어 하나의 대상 실패 시 전체 롤백 처리
  - 변경: 개별 데이터에 대해 독립적인 트랜잭션 적용, 실패 데이터만 롤백

- **통계 데이터 추가**
  - 성공/실패, 유형별 처리 건수(상품용, 이첩, 정상) 통계 제공

- **기타**
  - `TransactionTemplate` 및 `CompletableFuture` 활용
  - 병렬 처리 로그 및 예외 처리 추가
  - 코드 주석 및 가독성 개선
5 days ago
박성영 0dbd34c40c feat: API 초당 호출 제한 및 DB 스키마 수정
- **API Rate Limit 조정**
  - 초당 호출 제한(`permits-per-second`)을 5.0에서 0으로 변경 (무제한 호출 가능)

- **DB 스키마 변경**
  - `tb_car_ledger_frmbk_dtl` 테이블
    - `FLAG` 컬럼 크기를 `varchar(3)`에서 `varchar(1000)`로 확장 (데이터 저장 용량 증가)
5 days ago
박성영 d5286a509e feat: 상품용 및 명의이전 로직 보완
- **상품용(ProductUseOmChecker)**
  - 부과일자 소유자가 상품용인 경우의 검증 로직 보완
  - 명의이전(11) 레코드 조건에 `CHG_YMD <= 검사유효기간 종료일 + 31일` 추가

- **명의이전(OwnerTransferOmChecker)**
  - 명의이전 검증 시 `CHG_YMD > 검사유효기간 종료일 + 31일` 로 변경

- **문서 업데이트**
  - 비교로직 문서 (`자동차과태료_비교로직_정리-[미필].md`) 수정
  - 주요 변경사항 및 로직 설명 수정

- **기타**
  - 불필요 파일(CarFfnlgTrgtIncmpController.java.bak) 삭제
7 days ago
박성영 6b70444b07 디자인 수정 7 days ago
박성영 fb120ed4a5 로직 오류 수정 및 보완 7 days ago
박성영 45041c36de 필요없는 파일 삭제 및 sql 재정의 1 week ago
박성영 0f246eb867 del_yn 필드 적용 1 week ago
박성영 36a3041a36 미필 명의이전 오류 수정 1 week ago
박성영 d41a2975d3 미필 비교로직 MD 파일 작성 1 week ago
박성영 7be3d97430 지연 - 로그 및 주석 로직에 맞춰 수정 1 week ago
박성영 733986b838 지연 - 명의이전 - 일단 접수 02 상태 그대로 1 week ago
박성영 7985785bd4 지연 - 비교로직 재정의 1 week ago
박성영 c85deef5ee 지연 - 비교로직 재정의 1 week ago
박성영 9d8c306b59 미필 : 상품용 - 2단계: 1번 API 소유자 = 2번 API 소유자
비교로직 추가
1 week ago
박성영 64d367a8ef 미필 : 이첩 케이스-2 번 수정 1 week ago
박성영 e8e362f4c0 미필 : 이첩 케이스-2 번 적용 1 week ago
박성영 b72525e0f6 미필 주석 145 -> 146일로 일단 변경 1 week ago
박성영 a25c8ff359 내사종결-명의이전, 날짜수정후부과-명의이전
일자 검색조건 변경
// 조건: 유효기간만료일 <= CHG_YMD <= 검사종료일자
// 조건: 유효기간만료일-90일 <= CHG_YMD <= 검사종료일자
1 week ago
박성영 6a08b6164f 미필 작업 진행 중... 1 week ago
박성영 36e1831153 미필 작업 진행 중... 1 week ago
박성영 a98ec94638 미필 작업 진행 중... 1 week ago
박성영 7e3fa07327 미필 작업 진행 중... 2 weeks ago
박성영 3885a218bc 미필 작업 진행 중... 2 weeks ago
박성영 983f987f6a 미필 일단 업로드까진 완료 2 weeks ago
박성영 20312693c6 미필 일단 업로드까진 완료 2 weeks ago
박성영 40d8518a50 미필 초기 작업 진행중.... 2 weeks ago
박성영 fdcf38bb31 대상 구분 컬럼 삭제 2 weeks ago
박성영 b157c28e1e 대상 구분 컬럼 삭제 2 weeks ago
박성영 6521e3e09b PRN 파일 확장자명으로 수정 2 weeks ago