|
|
- yml flag 값에 따라, 차량기본정보를 구 or 신 api 호출할지 결정
|
|
|
- 구 or 신 api 통일한 model object 값으로 처리될수 있도록 통합 model 필요 및 자동변환 처리
|
|
|
- 구 : 자동차기본정보 api, 신 : 자동차기본정보 api, 자동차등록원부(갑)
|
|
|
- 통합 오브젝트는 자동차기본정보(구,신) 만 필요
|
|
|
|
|
|
|
|
|
* 순서 중요!!
|
|
|
* 조건에 걸리는 순간 다음 차량번호 비교 진행
|
|
|
* 현재는 하나의 api 를 호출해서 비교로직 진행 -> 수정후에는 각 비교 로직별로 api 호출!!
|
|
|
|
|
|
|
|
|
|
|
|
-- 1. 상품용 [자동차등록원부(갑) 필요]
|
|
|
----- 필요한 api 정보
|
|
|
1. 자동차기본정보 api 호출 [차량번호, 부과일자:검사일] -> response.차대번호, response.소유자명
|
|
|
2. 자동차기본정보 api 호출 [1.response.차대번호, 부과일자:오늘일자] -> response.차량번호, response.성명, response.민원인주민번호, response.민원인법정동코드
|
|
|
3. 자동차등록원본(갑) api 호출 [2.response.차량번호, 2.response.성명, 2.response.민원인주민번호, 2.response.민원인법정동코드]
|
|
|
-- 비교로직에 사용될 api response 정보
|
|
|
----------------------------------
|
|
|
1. TB_CAR_FFNLG_TRGT.검사일 기준 api 호출
|
|
|
2. api.MBER_NM like ‘%상품용%’
|
|
|
3. (갑부 상세(LedgerRecord) List.CHG_YMD between TB_CAR_FFNLG_TRGT.유효기간만료일 and TB_CAR_FFNLG_TRGT.검사종료일자) and (갑부 상세 List.CHANGE_JOB_SE_CODE = '11' --명의이전 코드)
|
|
|
4. TB_CAR_FFNLG_TRGT 비고 : 조건에 걸린 - "[상품용] 갑부정보"
|
|
|
|
|
|
|
|
|
-- 2. 이첩1, 2 병합로직
|
|
|
-- 부과기준일 구하는 부분만 다르고 나머지 법정도코드 비교로직은 동일, 대신 TB_CAR_FFNLG_TRGT 비고 컬럼에 각기 알맞는 value 값 넣어줘야함.
|
|
|
if(TB_CAR_FFNLG_TRGT.DAYCNT(textFile 일수) > 115){
|
|
|
부과기준일 = (TB_CAR_FFNLG_TRGT.검사종료일자 + 115일)
|
|
|
TB_CAR_FFNLG_TRGT 비고 : 조건에 걸린 - "전라남도 순천시 / 김정대, 115일 도래지, [2개의 api 법정동코드 및 법정동명]"
|
|
|
이첩-2
|
|
|
}else{
|
|
|
부과기준일 = (TB_CAR_FFNLG_TRGT.검사일자)
|
|
|
table 비고 : 조건에 걸린 - "서울시 용산구/ 이경호, 검사일사용본거지, [검사대상, 사용자 조직코드 앞 4자리 및 법정동명]"
|
|
|
이첩-1
|
|
|
}
|
|
|
아래는 이첩1,2 모두 공용
|
|
|
자동차기본정보 (부과기준일, 차량번호)api call,
|
|
|
// 법정동코드 유효성 검사
|
|
|
if (useStrnghldLegaldongCode == null || useStrnghldLegaldongCode.length() < 4) {
|
|
|
log.debug("[이첩][조건1] 법정동코드 없음. 차량번호: {}", vhclno);
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
// 사용자 정보 조회
|
|
|
SystemUserVO userInfo = userMapper.selectUser(userId);
|
|
|
if (userInfo == null || userInfo.getOrgCd() == null) {
|
|
|
log.debug("[이첩][조건1] 사용자 정보 없음. 사용자ID: {}", userId);
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
// 법정동코드 앞 4자리 vs 사용자 조직코드 앞 4자리 비교
|
|
|
String legalDong4 = useStrnghldLegaldongCode.substring(0, 4);
|
|
|
String userOrgCd = userInfo.getOrgCd();
|
|
|
String userOrg4 = userOrgCd.length() >= 4 ? userOrgCd.substring(0, 4) : userOrgCd;
|
|
|
|
|
|
if (legalDong4.equals(userOrg4)) {
|
|
|
log.debug("[이첩][조건1] 법정동코드 일치. 차량번호: {}, 법정동: {}, 조직: {}",
|
|
|
vhclno, legalDong4, userOrg4);
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
log.info("[이첩][조건1] 법정동코드 불일치! 차량번호: {}, 법정동: {}, 조직: {}",
|
|
|
vhclno, legalDong4, userOrg4);
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
-- 이첩-1 [차동차기본정보]
|
|
|
1. TB_CAR_FFNLG_TRGT.검사일 기준 api 호출
|
|
|
2. 아래 로직 참조
|
|
|
/**
|
|
|
* 이첩 조건1: 1. TB_CAR_FFNLG_TRGT.DAYCNT(textFile 일수) <= 115 이내, 법정동코드 불일치
|
|
|
* 사용본거지법정동코드 앞 4자리 != 사용자 조직코드 앞 4자리
|
|
|
*/
|
|
|
private boolean checkTransferCondition1_LegalDongMismatch(BasicResponse.Record basicInfo, String userId, String vhclno) {
|
|
|
String useStrnghldLegaldongCode = basicInfo.getUseStrnghldLegaldongCode();
|
|
|
|
|
|
// 법정동코드 유효성 검사
|
|
|
if (useStrnghldLegaldongCode == null || useStrnghldLegaldongCode.length() < 4) {
|
|
|
log.debug("[이첩][조건1] 법정동코드 없음. 차량번호: {}", vhclno);
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
// 사용자 정보 조회
|
|
|
SystemUserVO userInfo = userMapper.selectUser(userId);
|
|
|
if (userInfo == null || userInfo.getOrgCd() == null) {
|
|
|
log.debug("[이첩][조건1] 사용자 정보 없음. 사용자ID: {}", userId);
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
// 법정동코드 앞 4자리 vs 사용자 조직코드 앞 4자리 비교
|
|
|
String legalDong4 = useStrnghldLegaldongCode.substring(0, 4);
|
|
|
String userOrgCd = userInfo.getOrgCd();
|
|
|
String userOrg4 = userOrgCd.length() >= 4 ? userOrgCd.substring(0, 4) : userOrgCd;
|
|
|
|
|
|
if (legalDong4.equals(userOrg4)) {
|
|
|
log.debug("[이첩][조건1] 법정동코드 일치. 차량번호: {}, 법정동: {}, 조직: {}",
|
|
|
vhclno, legalDong4, userOrg4);
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
log.info("[이첩][조건1] 법정동코드 불일치! 차량번호: {}, 법정동: {}, 조직: {}",
|
|
|
vhclno, legalDong4, userOrg4);
|
|
|
return true;
|
|
|
}
|
|
|
3. table 비고 : 조건에 걸린 - "서울시 용산구/ 이경호, 검사일사용본거지, [검사대상, 사용자 조직코드 앞 4자리 및 법정동명]"
|
|
|
|
|
|
|
|
|
-- 이첩-2 [차량기본정보 필요]
|
|
|
1. TB_CAR_FFNLG_TRGT.DAYCNT(textFile 일수) > 115
|
|
|
2. 검사일 기준 api 호출
|
|
|
3. (TB_CAR_FFNLG_TRGT.검사종료일자 + 115일) 기준 api 호출
|
|
|
4. 2 api<->3 api 자동차기본정보 : 사용본거지법정동코드 앞 4자리 다를경우
|
|
|
5. TB_CAR_FFNLG_TRGT 비고 : 조건에 걸린 - "전라남도 순천시 / 김정대, 115일 도래지, [2개의 api 법정동코드 및 법정동명]"
|
|
|
*/ |