From 28fc8c4b879e592374409df7dbd0f6605dede75e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=84=B1=EC=98=81?= Date: Thu, 11 Dec 2025 15:41:25 +0900 Subject: [PATCH] =?UTF-8?q?###=20feat:=20=EB=B9=84=EA=B3=A0(Remark)=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=20=EB=A1=9C=EC=A7=81=20=EA=B0=9C=EC=84=A0=20?= =?UTF-8?q?=EB=B0=8F=20=EB=A9=94=EC=84=9C=EB=93=9C=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - **비고 생성 메서드 수정 및 분리** - `ComparisonOmRemarkBuilder` 및 `ComparisonRemarkBuilder`: - `buildProductCloseLevyRemark` 메서드를 `buildProductCloseRemark`와 `buildProductLevyRemark`로 각각 분리. - 비고 형식과 요구사항에 따라 명확히 구분된 메서드 제공. - `OwnerTransferRemarkBuilder`와 관련된 비고 생성 메서드 개선: - 파라미터 추가(`sggNm`, `ownerNm`)로 상세 정보 포함 가능. - **Checker 클래스 로직 수정** - `ProductLevyOver31Checker`, `ProductCloseWithin31Checker`, `OwnerTransferOmChecker`: - 분리된 비고 생성 메서드 호출 방식으로 변경. - 불필요 매개변수 제거 및 명확성 증가. - **비고 형식 변경** - 31일 이내: `명의이전(YYYY.MM.DD) 이전소유자 상품용` - 31일 초과: `시군구명/소유자명, 미수검명의이전(YYYY.MM.DD)` - **기타** - 중복된 메서드 제거 및 가독성을 위한 리팩토링. - 기존 로직 및 형식에 맞춰 코드 정리. --- .../service/impl/ComparisonRemarkBuilder.java | 24 ++++++++++++++----- .../ProductCloseWithin31Checker.java | 2 +- .../ProductLevyOver31Checker.java | 2 +- .../impl/ComparisonOmRemarkBuilder.java | 20 ++++++++-------- .../om_checker/OwnerTransferOmChecker.java | 4 ++-- 5 files changed, 32 insertions(+), 20 deletions(-) diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/ComparisonRemarkBuilder.java b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/ComparisonRemarkBuilder.java index 2bbf6ce..7479fde 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/ComparisonRemarkBuilder.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/ComparisonRemarkBuilder.java @@ -30,19 +30,31 @@ public class ComparisonRemarkBuilder { } /** - * 명의이전 이전소유자 상품용 비고 생성 - * 비고 형식: 명의이전(25.9.5.) 이전소유자 상품용, 시군구명/ 소유자명 + * 내사종결 - 명의이전 이전소유자 상품용 비고 생성 (31일 이내) + * 비고 형식: 명의이전(25.9.11.) 이전소유자 상품용 + * + * @param ledgerRecord 조건에 맞는 갑부 레코드 (명의이전 레코드) + * @return 비고 문자열 + */ + public static String buildProductCloseRemark(NewLedgerResponse.Record ledgerRecord) { + String chgYmdFormatted = DateUtil.formatToShortDate(ledgerRecord.getChgYmd()); + return String.format("명의이전(%s) 이전소유자 상품용", chgYmdFormatted); + } + + /** + * 날짜수정후부과 - 명의이전 이전소유자 상품용 비고 생성 (31일 초과) + * 비고 형식: 시군구명/ 소유자명, 미수검명의이전(25.8.19.) * * @param ledgerRecord 조건에 맞는 갑부 레코드 (명의이전 레코드) * @param sggNm 시군구명 * @param ownerNm 소유자명 * @return 비고 문자열 */ - public static String buildProductCloseLevyRemark(NewLedgerResponse.Record ledgerRecord, - String sggNm, String ownerNm) { + public static String buildProductLevyRemark(NewLedgerResponse.Record ledgerRecord, + String sggNm, String ownerNm) { String chgYmdFormatted = DateUtil.formatToShortDate(ledgerRecord.getChgYmd()); - return String.format("명의이전(%s) 이전소유자 상품용, %s/ %s", - chgYmdFormatted, StringUtil.nvl(sggNm), StringUtil.nvl(ownerNm)); + return String.format("%s/ %s, 미수검명의이전(%s)", + StringUtil.nvl(sggNm), StringUtil.nvl(ownerNm), chgYmdFormatted); } /** diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductCloseWithin31Checker.java b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductCloseWithin31Checker.java index d210efd..6985b7b 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductCloseWithin31Checker.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductCloseWithin31Checker.java @@ -198,7 +198,7 @@ public class ProductCloseWithin31Checker extends AbstractComparisonChecker { String ownerNm = step1Record.getRprsOwnrNm(); // ========== 비고 생성 ========== - String rmrk = ComparisonRemarkBuilder.buildProductCloseLevyRemark(targetRecord, sggNm, ownerNm); + String rmrk = ComparisonRemarkBuilder.buildProductCloseRemark(targetRecord); String rmrkDtl = ComparisonRemarkBuilder.buildProductCloseLevyRemarkDetail( vhclno, inspYmd, step1OwnerName, targetChgYmd, step4OwnerName, daysBetween); diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductLevyOver31Checker.java b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductLevyOver31Checker.java index 7d52a18..1449ce7 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductLevyOver31Checker.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/delay_checker/ProductLevyOver31Checker.java @@ -200,7 +200,7 @@ public class ProductLevyOver31Checker extends AbstractComparisonChecker { String ownerNm = step1Record.getRprsOwnrNm(); // ========== 비고 생성 ========== - String rmrk = ComparisonRemarkBuilder.buildProductCloseLevyRemark(targetRecord, sggNm, ownerNm); + String rmrk = ComparisonRemarkBuilder.buildProductLevyRemark(targetRecord, sggNm, ownerNm); String rmrkDtl = ComparisonRemarkBuilder.buildProductLevyOver31RemarkDetail( vhclno, inspYmd, step1OwnerName, targetChgYmd, step4OwnerName, daysBetween); diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/ComparisonOmRemarkBuilder.java b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/ComparisonOmRemarkBuilder.java index e4fe2f9..a641d8c 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/ComparisonOmRemarkBuilder.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/ComparisonOmRemarkBuilder.java @@ -32,31 +32,31 @@ public class ComparisonOmRemarkBuilder { /** * 명의이전 이전소유자 상품용 비고 생성 - 미필 - * 비고 형식: 명의이전(25.5.19.) 이전소유자 상품용, 시군구명/ 소유자명 + * 비고 형식: 명의이전(25.9.5.) 이전소유자 상품용 * * @param ledgerRecord 조건에 맞는 갑부 레코드 (명의이전 레코드) - * @param sggNm 시군구명 - * @param ownerNm 소유자명 * @return 비고 문자열 */ - public static String buildProductCloseLevyRemark(NewLedgerResponse.Record ledgerRecord, - String sggNm, String ownerNm) { + public static String buildProductCloseLevyRemark(NewLedgerResponse.Record ledgerRecord) { String chgYmdFormatted = DateUtil.formatToShortDate(ledgerRecord.getChgYmd()); - return String.format("명의이전(%s) 이전소유자 상품용, %s/ %s", - chgYmdFormatted, StringUtil.nvl(sggNm), StringUtil.nvl(ownerNm)); + return String.format("명의이전(%s) 이전소유자 상품용", chgYmdFormatted); } /** * 미수검명의이전 비고 생성 - 미필 - * 비고 형식: 미수검명의이전(25.5.19.)(차량번호) + * 비고 형식: 시군구명/ 소유자명, 미수검명의이전(25.5.19.)(차량번호) * * @param ledgerRecord 조건에 맞는 갑부 레코드 (명의이전 레코드) + * @param sggNm 시군구명 + * @param ownerNm 소유자명 * @param vhclno 차량번호 * @return 비고 문자열 */ - public static String buildOwnerChangeRemark(NewLedgerResponse.Record ledgerRecord, String vhclno) { + public static String buildOwnerChangeRemark(NewLedgerResponse.Record ledgerRecord, + String sggNm, String ownerNm, String vhclno) { String chgYmdFormatted = DateUtil.formatToShortDate(ledgerRecord.getChgYmd()); - return String.format("미수검명의이전(%s)(%s)", chgYmdFormatted, StringUtil.nvl(vhclno)); + return String.format("%s/ %s, 미수검명의이전(%s)(%s)", + StringUtil.nvl(sggNm), StringUtil.nvl(ownerNm), chgYmdFormatted, StringUtil.nvl(vhclno)); } /** diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/OwnerTransferOmChecker.java b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/OwnerTransferOmChecker.java index 2483496..afbcc8d 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/OwnerTransferOmChecker.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registrationOm/service/impl/om_checker/OwnerTransferOmChecker.java @@ -227,7 +227,7 @@ public class OwnerTransferOmChecker extends AbstractComparisonOmChecker { log.info("[명의이전-미필] 명의이전 전 소유자가 상품용"); taskPrcsSttsCd = TaskPrcsSttsConstants.TASK_PRCS_STTS_CD_01_RCPT; // 접수 - rmrk = ComparisonOmRemarkBuilder.buildProductCloseLevyRemark(targetRecord, sggNm, ownerNm); + rmrk = ComparisonOmRemarkBuilder.buildProductCloseLevyRemark(targetRecord); rmrkDtl = ComparisonOmRemarkBuilder.buildProductCloseLevyRemarkDetail( vhclno, inspVldPrdEnd, levyCrtrYmd, step1OwnerName, targetChgYmd, step4OwnerName); } else { @@ -235,7 +235,7 @@ public class OwnerTransferOmChecker extends AbstractComparisonOmChecker { log.info("[명의이전-미필] 명의이전 전 소유자가 상품용 아님"); taskPrcsSttsCd = TaskPrcsSttsConstants.TASK_PRCS_STTS_CD_01_RCPT; // 접수 - rmrk = ComparisonOmRemarkBuilder.buildOwnerChangeRemark(targetRecord, vhclno); + rmrk = ComparisonOmRemarkBuilder.buildOwnerChangeRemark(targetRecord, sggNm, ownerNm, vhclno); rmrkDtl = ComparisonOmRemarkBuilder.buildOwnerChangeRemarkDetail( vhclno, inspVldPrdEnd, levyCrtrYmd, step1OwnerName, targetChgYmd, step4OwnerName); }