parent
791926ba6a
commit
36d13ac671
@ -0,0 +1,157 @@
|
||||
package go.kr.project.carInspectionPenalty.registration.service.impl;
|
||||
|
||||
import egovframework.util.DateUtil;
|
||||
import egovframework.util.StringUtil;
|
||||
import go.kr.project.api.model.response.NewBasicResponse;
|
||||
import go.kr.project.api.model.response.NewLedgerResponse;
|
||||
|
||||
/**
|
||||
* 과태료 대상 비교 비고(Remark) 생성 유틸리티 클래스
|
||||
*
|
||||
* <p>각 비교 로직별 비고 문자열을 생성하는 메서드를 제공합니다.</p>
|
||||
*/
|
||||
public class ComparisonRemarkBuilder {
|
||||
|
||||
/**
|
||||
* 상품용 비고 생성 - Case 1
|
||||
*
|
||||
* @param step1Record Step 1 API 응답 (검사일 기준 소유자명)
|
||||
* @param step4Record Step 4 API 응답 (명의이전 시점 소유자명)
|
||||
* @param ledgerRecord 조건에 맞는 갑부 레코드
|
||||
* @param vldPrdExpryYmd 유효기간만료일
|
||||
* @param inspEndYmd 검사종료일자
|
||||
* @return 비고 문자열
|
||||
*/
|
||||
public static String buildProductUseRemarkCase1(
|
||||
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.getAplyRcptNo())).append("\n");
|
||||
|
||||
|
||||
// 4. 비교 기간
|
||||
sb.append("\n■ 비교 기간\n");
|
||||
sb.append(" - 유효기간만료일: ").append(DateUtil.formatDateString(vldPrdExpryYmd)).append("\n");
|
||||
sb.append(" - 검사종료일자: ").append(DateUtil.formatDateString(inspEndYmd)).append("\n");
|
||||
sb.append(" - 판정: 명의이전일자가 기간 내 존재하고 검사일 소유자명과 일치");
|
||||
*/
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품용 비고 생성 - Case 2 (검사일 소유자가 상품용이 아니지만, 명의이전 후 상품용인 경우)
|
||||
*
|
||||
* 비고 형식:
|
||||
* 명의이전(25.9.3.) 이전소유자 상품용
|
||||
* 22루2283
|
||||
* 검사기간 시작일자 - 종료일자
|
||||
* 검사일 일자
|
||||
* 명의이전 일자
|
||||
* 상품용 일자
|
||||
*
|
||||
* @param step1Record Step 1 API 응답 (검사일 기준 소유자명)
|
||||
* @param step4Record Step 4 API 응답 (명의이전 시점 소유자명 = 상품용)
|
||||
* @param ledgerRecord 조건에 맞는 갑부 레코드 (명의이전 레코드)
|
||||
* @param vhclno 차량번호
|
||||
* @param inspYmd 검사일자
|
||||
* @param vldPrdExpryYmd 유효기간만료일
|
||||
* @param inspEndYmd 검사종료일자
|
||||
* @return 비고 문자열
|
||||
*/
|
||||
public static String buildCloseProductUseRemark(
|
||||
NewBasicResponse.Record step1Record,
|
||||
NewBasicResponse.Record step4Record,
|
||||
NewLedgerResponse.Record ledgerRecord,
|
||||
String vhclno,
|
||||
String inspYmd,
|
||||
String vldPrdExpryYmd,
|
||||
String inspEndYmd) {
|
||||
|
||||
// 날짜 포맷 변환 (YYYYMMDD -> YY.M.D)
|
||||
String chgYmdFormatted = DateUtil.formatToShortDate(ledgerRecord.getChgYmd());
|
||||
String step1OwnerName = StringUtil.nvl(step1Record.getRprsOwnrNm());
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
// 첫 줄: 명의이전(25.9.3.) 이전소유자 상품용
|
||||
sb.append("명의이전(").append(chgYmdFormatted).append(") 이전소유자 상품용").append("\n");
|
||||
|
||||
// 둘째 줄: 차량번호
|
||||
sb.append(StringUtil.nvl(vhclno)).append("\n");
|
||||
|
||||
// 셋째 줄: 검사기간 시작일자 - 종료일자
|
||||
sb.append(" - 검사기간: ").append(DateUtil.formatDateString(vldPrdExpryYmd))
|
||||
.append(" - ").append(DateUtil.formatDateString(inspEndYmd)).append("\n");
|
||||
|
||||
// 넷째 줄: 검사일 일자
|
||||
sb.append(" - 검사일: ").append(DateUtil.formatDateString(inspYmd)).append("\n");
|
||||
|
||||
// 다섯째 줄: 명의이전 일자
|
||||
sb.append(" - 명의이전: ").append(DateUtil.formatDateString(ledgerRecord.getChgYmd())).append("\n");
|
||||
|
||||
// 여섯째 줄: 상품용 일자 (명의이전 일자와 동일)
|
||||
sb.append(" - 상품용: ").append(DateUtil.formatDateString(ledgerRecord.getChgYmd()));
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 등록원부 갑부 레코드 상세 정보 생성
|
||||
*
|
||||
* @param record 갑부 레코드
|
||||
* @return 상세 정보 문자열
|
||||
*/
|
||||
public static String buildLedgerRecordDetail(NewLedgerResponse.Record record) {
|
||||
if (record == null) {
|
||||
return "";
|
||||
}
|
||||
|
||||
StringBuilder detail = new StringBuilder();
|
||||
|
||||
// 변경 정보
|
||||
StringUtil.appendIfNotEmpty(detail, "변경업무구분코드", record.getChgTaskSeCd());
|
||||
StringUtil.appendIfNotEmpty(detail, "변경업무구분명", record.getChgTaskSeNm());
|
||||
StringUtil.appendIfNotEmpty(detail, "변경일자", DateUtil.formatDateString(record.getChgYmd()));
|
||||
|
||||
// 주요 정보
|
||||
StringUtil.appendIfNotEmpty(detail, "주요번호", record.getMainNo());
|
||||
StringUtil.appendIfNotEmpty(detail, "일련번호", record.getSno());
|
||||
StringUtil.appendIfNotEmpty(detail, "특별사항", record.getSpcablMttr());
|
||||
|
||||
// 명의자 정보
|
||||
StringUtil.appendIfNotEmpty(detail, "명의자명", record.getHshldrNm());
|
||||
StringUtil.appendIfNotEmpty(detail, "명의자식별번호", StringUtil.maskIdecno(record.getHshldrIdecno()));
|
||||
|
||||
// 기타
|
||||
StringUtil.appendIfNotEmpty(detail, "신청접수번호", record.getAplyRcptNo());
|
||||
StringUtil.appendIfNotEmpty(detail, "차량관리번호", record.getVhmno());
|
||||
StringUtil.appendIfNotEmpty(detail, "원부그룹번호", record.getLedgerGroupNo());
|
||||
StringUtil.appendIfNotEmpty(detail, "원부개별번호", record.getLedgerIndivNo());
|
||||
StringUtil.appendIfNotEmpty(detail, "상세일련번호", record.getDtlSn());
|
||||
|
||||
return detail.toString();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue