From 3b9a2476b267924e3537bd8420b5f4cd0cee5742 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=84=B1=EC=98=81?= Date: Thu, 4 Dec 2025 14:52:56 +0900 Subject: [PATCH] =?UTF-8?q?=EC=8B=A0=EA=B7=9C=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EC=83=81=ED=92=88=EC=9A=A9-=EB=B3=80=EA=B2=BD=EB=93=B1?= =?UTF-8?q?=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DB/DDL/vips/tb_car_bass_matter_inqire.sql | 2 +- docs/샘플용-utf-8-1.txt | 19 -------- ...유효기간경과_과태료부과대상_리스트 (7).txt | 25 ----------- .../service/impl/ComparisonRemarkBuilder.java | 44 +++++++++++++++++++ .../service/impl/ComparisonServiceImpl.java | 18 +++++--- 5 files changed, 58 insertions(+), 50 deletions(-) delete mode 100644 docs/샘플용-utf-8-1.txt delete mode 100644 docs/유효기간경과_과태료부과대상_리스트 (7).txt diff --git a/DB/DDL/vips/tb_car_bass_matter_inqire.sql b/DB/DDL/vips/tb_car_bass_matter_inqire.sql index e387119..5c4ab68 100644 --- a/DB/DDL/vips/tb_car_bass_matter_inqire.sql +++ b/DB/DDL/vips/tb_car_bass_matter_inqire.sql @@ -82,7 +82,7 @@ create table tb_car_bass_matter_inqire NOPLT_CSDY_AVTSMT_YMD varchar(10) null comment '번호판 영치 최고일', SRC_SE_CD varchar(1) null comment '출처 구분 코드', NOPLT_SPCFCT_CD varchar(1) null comment '번호판 규격 코드', - ACQS_AMT varchar(18) null comment '취득 금액', + ACQS_AMT varchar(100) null comment '취득 금액', INSP_VLD_PD_BGNG_YMD varchar(10) null comment '검사 유효 기간 시작일', INSP_VLD_PD_END_YMD varchar(10) null comment '검사 유효 기간 종료일', USGSRHLD_GRC_CD varchar(4) null comment '사용 본거지 관청 코드', diff --git a/docs/샘플용-utf-8-1.txt b/docs/샘플용-utf-8-1.txt deleted file mode 100644 index 652a4db..0000000 --- a/docs/샘플용-utf-8-1.txt +++ /dev/null @@ -1,19 +0,0 @@ - 유효기간경과 과태료부과대상 리스트 - ------------------------------------ - - - * 최종등록일이 검사일자보다 늦는 경우는 소유자 및 사용본거지 주소를 재확인하여 주시기 바랍니다. (재검여부 = *일수) - * 전출차량( *차번호)인 경우 전출 전의 주소입니다. 소유자 및 사용본거지 주소를 재확인하여 주시기 바랍니다. -------------------------------------------------------------------------------------------------------------------------------------------------- -검사소 검사일자 자동차번호 소유자명 주민등록번호 차 명 차 종 용 도 종료일 일수 과태료 - 최종등록일 주 소 유효기간만료일 매매상품용 -------------------------------------------------------------------------------------------------------------------------------------------------- -H494 2025-09-01 162고6489 (주)지앤티테크 1244110241315 엠뱅크언더리프 특수차구난형소영업용 2025-08-25 7 4만원 - 2025-07-14 경기도 용인시 기흥구 강남로 9, 111-111호(신행동, 진주만프라자) 2020-12-05 - -H494 2025-09-01 271구5475 (주)케이비캐피탈 1301110013499 엠뱅크언더리프 특수차구난형소영업용 2024-09-24 303 60만원 - 2025-07-14 경기도 용인시 기흥구 강남로 9, 111-111호(신행동, 진주만프라자) 2020-12-05 - -H494 2025-09-14 142러3779 서찬규 1101110037998 엠뱅크언더리프 특수차구난형소영업용 2025-05-26 109 56만원 - 2025-07-14 경기도 용인시 기흥구 강남로 9, 111-111호(신행동, 진주만프라자) 2020-12-05 - diff --git a/docs/유효기간경과_과태료부과대상_리스트 (7).txt b/docs/유효기간경과_과태료부과대상_리스트 (7).txt deleted file mode 100644 index ad51ec6..0000000 --- a/docs/유효기간경과_과태료부과대상_리스트 (7).txt +++ /dev/null @@ -1,25 +0,0 @@ - ȿⰣ ·ΰ Ʈ - ------------------------------------ - - - * ˻ں ʴ 뺻 ּҸ ȮϿ ֽñ ٶϴ. (˿ = *ϼ) - * ( *ȣ) ּԴϴ. 뺻 ּҸ ȮϿ ֽñ ٶϴ. -------------------------------------------------------------------------------------------------------------------------------------------------- -˻ ˻ ڵȣ ڸ ֹεϹȣ ϼ · - ȿⰣ ŸŻǰ -------------------------------------------------------------------------------------------------------------------------------------------------- -H494 2025-11-01 112222 ֿ() 1111110081111 ũ Ưҿ 2021-01-05 1761 30 - 2025-07-14 ⵵ ν ﱸ 9, 111-111ȣ(ൿ, ָ) 2020-12-05 - -H500 2025-11-01 222222 ֽȸ ϰ 1111106811111 ׷ Ÿ ȭڰ 2025-04-28 187 60 - 2025-10-01 ⵵ ν óα 222-2, 202ȣ 2025-03-28 - -H692 2025-11-01 333333 ȫ浿 7604092328316 SM6 ¿Ϲڰ 2025-07-14 110 56 - 2025-09-22 ⵵ ν ﱸ 53, 605 1802ȣ(, žȾƮ) 2025-06-11 - -H271 2025-11-01 444444 ̿ ֽȸ 1111110064044 1 ȭϹ- ڰ 2025-08-25 68 28 - 2020-05-20 ⵵ ν óα 444(0-44(4)) 2025-07-24 - -H420 2025-11-01 555555 ö 5555261080555 ̿6 (IONI ¿Ϲڰ 2025-08-25 68 28 - 2024-09-09 ⵵ ν 1 55, 505 505ȣ(, ǿŸġ) 2025-07-25 - 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 649c58a..b326998 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 @@ -57,6 +57,50 @@ public class ComparisonRemarkBuilder { return sb.toString(); } + /** + * 상품용-변경등록 비고 생성 + * + * @param step1Record Step 1 API 응답 (검사일 기준 소유자명) + * @param step4Record Step 4 API 응답 (변경등록 시점 소유자명) + * @param ledgerRecord 조건에 맞는 갑부 레코드 (변경등록 레코드) + * @param vldPrdExpryYmd 유효기간만료일 + * @param inspEndYmd 검사종료일자 + * @return 비고 문자열 + */ + public static String buildProductUseChangeRemark( + NewBasicResponse.Record step1Record, + NewBasicResponse.Record step4Record, + NewLedgerResponse.Record ledgerRecord, + String vldPrdExpryYmd, + String inspEndYmd) { + + StringBuilder sb = new StringBuilder(); + sb.append("상품용 - 변경등록\n"); + + // 1. 검사일 기준 소유자 정보 + sb.append("\n■ 검사일 기준 소유자정보\n"); + sb.append(" - 소유자명: ").append(StringUtil.nvl(step1Record.getRprsOwnrNm())).append("\n"); + sb.append(" - 차대번호: ").append(StringUtil.nvl(step1Record.getVin())).append("\n"); + + // 2. 변경등록 시점 소유자 정보 + sb.append("\n■ 변경등록 시점 소유자정보\n"); + sb.append(" - 소유자명: ").append(StringUtil.nvl(step4Record.getRprsOwnrNm())).append("\n"); + sb.append(" - 조회일자: ").append(DateUtil.formatDateString(ledgerRecord.getChgYmd())).append("\n"); + + // 3. 갑부 상세 정보 (변경등록 이력) + sb.append("\n■ 갑부 상세 (변경등록 이력)\n"); + sb.append(" - 변경일자: ").append(DateUtil.formatDateString(ledgerRecord.getChgYmd())).append("\n"); + sb.append(" - 변경업무코드: ").append(StringUtil.nvl(ledgerRecord.getChgTaskSeCd())).append("\n"); + sb.append(" - 변경업무명: ").append(StringUtil.nvl(ledgerRecord.getChgTaskSeNm())).append("\n"); + sb.append(" - 특별사항: ").append(StringUtil.nvl(ledgerRecord.getSpcablMttr())).append("\n"); + + // 4. 비교 기간 + sb.append("\n■ 비교 기간\n"); + sb.append(" - 검사종료일자: ").append(DateUtil.formatDateString(inspEndYmd)).append("\n"); + + return sb.toString(); + } + /** * 상품용 비고 생성 - Case 2 (검사일 소유자가 상품용이 아니지만, 명의이전 후 상품용인 경우) * diff --git a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/ComparisonServiceImpl.java b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/ComparisonServiceImpl.java index d3ecd74..4fe4444 100644 --- a/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/ComparisonServiceImpl.java +++ b/src/main/java/go/kr/project/carInspectionPenalty/registration/service/impl/ComparisonServiceImpl.java @@ -19,6 +19,7 @@ import org.springframework.stereotype.Service; public class ComparisonServiceImpl extends EgovAbstractServiceImpl implements ComparisonService { private final ProductUseChecker productUseChecker; + private final ProductUseChnageChecker productUseChnageChecker; private final ProductCloseWithin31Checker productCloseWithin31Checker; private final OwnerCloseWithin31Checker ownerCloseWithin31Checker; private final ProductLevyOver31Checker productLevyOver31Checker; @@ -42,35 +43,42 @@ public class ComparisonServiceImpl extends EgovAbstractServiceImpl implements Co return productUseResult; } - // ========== 2. 내사종결 체크 - 명의이전 이전소유자 상품용, 31일 이내 ========== + // ========== 2. 상품용 체크 - api-1번호출.소유자명.contains("상품용-변경등록") ========== + String productUseChangeResult = productUseChnageChecker.check(existingData); + if (productUseChangeResult != null) { + log.info("========== 비교 로직 종료 (상품용-변경등록): {} ==========", vhclno); + return productUseChangeResult; + } + + // ========== 3. 내사종결 체크 - 명의이전 이전소유자 상품용, 31일 이내 ========== String investigationClosedByProductResult = productCloseWithin31Checker.check(existingData); if (investigationClosedByProductResult != null) { log.info("========== 비교 로직 종료 (내사종결 - 명의이전 이전소유자 상품용, 31일 이내): {} ==========", vhclno); return investigationClosedByProductResult; } - // ========== 3. 내사종결 체크 - 명의이전, 31일 이내 ========== + // ========== 4. 내사종결 체크 - 명의이전, 31일 이내 ========== String investigationClosedByOwnerChangeResult = ownerCloseWithin31Checker.check(existingData); if (investigationClosedByOwnerChangeResult != null) { log.info("========== 비교 로직 종료 (내사종결 - 명의이전, 31일 이내): {} ==========", vhclno); return investigationClosedByOwnerChangeResult; } - // ========== 4. 날짜 수정 후 부과 체크 - 명의이전 이전소유자 상품용, 31일 초과 ========== + // ========== 5. 날짜 수정 후 부과 체크 - 명의이전 이전소유자 상품용, 31일 초과 ========== String dateModifiedLevyByProductResult = productLevyOver31Checker.check(existingData); if (dateModifiedLevyByProductResult != null) { log.info("========== 비교 로직 종료 (날짜 수정 후 부과 - 명의이전 이전소유자, 31일 초과): {} ==========", vhclno); return dateModifiedLevyByProductResult; } - // ========== 5. 날짜 수정 후 부과 체크 - 명의이전, 31일 초과 ========== + // ========== 6. 날짜 수정 후 부과 체크 - 명의이전, 31일 초과 ========== String dateModifiedLevyByOwnerChangeOverResult = ownerLevyOver31Checker.check(existingData); if (dateModifiedLevyByOwnerChangeOverResult != null) { log.info("========== 비교 로직 종료 (날짜 수정 후 부과 - 명의이전, 31일 초과): {} ==========", vhclno); return dateModifiedLevyByOwnerChangeOverResult; } - // ========== 6. 이첩 체크 ========== + // ========== 7. 이첩 체크 ========== String transferResult = transferCase115DayChecker.check(existingData); if (transferResult != null) { log.info("========== 비교 로직 종료 (이첩): {} ==========", vhclno);