설정 초기화 진행 중...

internalApi
박성영 1 month ago
parent 59ff10783d
commit d653415d54

@ -0,0 +1,192 @@
package go.kr.project.carInspectionPenalty.history.Controller;
import egovframework.constant.TilesConstants;
import egovframework.util.ApiResponseUtil;
import go.kr.project.carInspectionPenalty.history.model.CarBassMatterInqireVO;
import go.kr.project.carInspectionPenalty.history.model.CarLedgerFrmbkVO;
import go.kr.project.carInspectionPenalty.history.model.CarLedgerFrmbkDtlVO;
import go.kr.project.carInspectionPenalty.history.model.VehicleApiHistorySearchVO;
import go.kr.project.carInspectionPenalty.history.service.VehicleApiHistoryService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* packageName : go.kr.project.carInspectionPenalty.history.Controller
* fileName : VehicleApiHistoryController
* author :
* date : 2025-11-06
* description : API
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2025-11-06
*/
@Controller
@RequestMapping("/carInspectionPenalty/history")
@RequiredArgsConstructor
@Slf4j
@Tag(name = "차량 API 조회 이력", description = "차량 기본정보 및 등록원부 조회 이력 API")
public class VehicleApiHistoryController {
private final VehicleApiHistoryService service;
/**
* API
*
* @param model
* @return API
*/
@GetMapping("/list.do")
@Operation(summary = "차량 API 조회 이력 목록 화면", description = "차량 API 조회 이력 목록을 조회하는 화면을 제공합니다.")
public String list(Model model) {
log.debug("차량 API 조회 이력 목록 화면 요청");
return "carInspectionPenalty/history/list" + TilesConstants.BASE;
}
// ==================== 자동차 기본정보 조회 이력 ====================
/**
* .
*
* @param searchVO VO
* @return
*/
@PostMapping("/carBassMatterInqire/list.ajax")
@Operation(summary = "자동차 기본정보 조회 이력 목록 조회", description = "자동차 기본정보 조회 이력 목록을 조회합니다.")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "조회 성공"),
@ApiResponse(responseCode = "400", description = "조회 실패")
})
public ResponseEntity<?> selectCarBassMatterInqireList(@ModelAttribute VehicleApiHistorySearchVO searchVO) {
log.debug("자동차 기본정보 조회 이력 목록 조회 요청 - 검색 조건: {}", searchVO);
// 총 개수 조회
int totalCount = service.selectCarBassMatterInqireListTotalCount(searchVO);
searchVO.setTotalCount(totalCount);
// 페이징 처리
searchVO.setPagingYn("Y");
// 목록 조회
List<CarBassMatterInqireVO> list = service.selectCarBassMatterInqireList(searchVO);
return ApiResponseUtil.successWithGrid(list, searchVO);
}
/**
* .
*
* @param carBassMatterInqire ID
* @return
*/
@GetMapping("/carBassMatterInqire/selectOne.ajax")
@Operation(summary = "자동차 기본정보 조회 이력 상세 조회", description = "자동차 기본정보 조회 이력 상세를 조회합니다.")
public ResponseEntity<?> selectCarBassMatterInqireOne(
@Parameter(description = "자동차 기본 사항 조회 ID") @RequestParam String carBassMatterInqire) {
log.debug("자동차 기본정보 조회 이력 상세 조회 요청 - ID: {}", carBassMatterInqire);
CarBassMatterInqireVO result = service.selectCarBassMatterInqireOne(carBassMatterInqire);
if (result != null) {
return ApiResponseUtil.success(result, "조회가 완료되었습니다.");
} else {
return ApiResponseUtil.error("해당 정보를 찾을 수 없습니다.");
}
}
// ==================== 자동차 등록원부(갑) 조회 이력 ====================
/**
* () .
*
* @param searchVO VO
* @return ()
*/
@PostMapping("/carLedgerFrmbk/list.ajax")
@Operation(summary = "자동차 등록원부(갑) 조회 이력 목록 조회", description = "자동차 등록원부(갑) 조회 이력 목록을 조회합니다.")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "조회 성공"),
@ApiResponse(responseCode = "400", description = "조회 실패")
})
public ResponseEntity<?> selectCarLedgerFrmbkList(@ModelAttribute VehicleApiHistorySearchVO searchVO) {
log.debug("자동차 등록원부(갑) 조회 이력 목록 조회 요청 - 검색 조건: {}", searchVO);
// 총 개수 조회
int totalCount = service.selectCarLedgerFrmbkListTotalCount(searchVO);
searchVO.setTotalCount(totalCount);
// 페이징 처리
searchVO.setPagingYn("Y");
// 목록 조회
List<CarLedgerFrmbkVO> list = service.selectCarLedgerFrmbkList(searchVO);
return ApiResponseUtil.successWithGrid(list, searchVO);
}
/**
* () .
*
* @param carLedgerFrmbkId ID
* @return ()
*/
@GetMapping("/carLedgerFrmbk/selectOne.ajax")
@Operation(summary = "자동차 등록원부(갑) 조회 이력 상세 조회", description = "자동차 등록원부(갑) 조회 이력 상세를 조회합니다.")
public ResponseEntity<?> selectCarLedgerFrmbkOne(
@Parameter(description = "자동차 등록 원부 갑 ID") @RequestParam String carLedgerFrmbkId) {
log.debug("자동차 등록원부(갑) 조회 이력 상세 조회 요청 - ID: {}", carLedgerFrmbkId);
CarLedgerFrmbkVO result = service.selectCarLedgerFrmbkOne(carLedgerFrmbkId);
if (result != null) {
return ApiResponseUtil.success(result, "조회가 완료되었습니다.");
} else {
return ApiResponseUtil.error("해당 정보를 찾을 수 없습니다.");
}
}
// ==================== 자동차 등록원부(갑) 상세 조회 이력 ====================
/**
* () .
*
* @param carLedgerFrmbkId ID
* @return ()
*/
@GetMapping("/carLedgerFrmbkDtl/list.ajax")
@Operation(summary = "자동차 등록원부(갑) 상세 조회 이력 목록 조회", description = "자동차 등록원부(갑) 상세 조회 이력 목록을 조회합니다.")
public ResponseEntity<?> selectCarLedgerFrmbkDtlList(
@Parameter(description = "자동차 등록 원부 갑 ID") @RequestParam String carLedgerFrmbkId) {
log.debug("자동차 등록원부(갑) 상세 조회 이력 목록 조회 요청 - 원부 갑 ID: {}", carLedgerFrmbkId);
List<CarLedgerFrmbkDtlVO> list = service.selectCarLedgerFrmbkDtlList(carLedgerFrmbkId);
return ApiResponseUtil.success(list, "조회가 완료되었습니다.");
}
/**
* () .
*
* @param carLedgerFrmbkDtlId ID
* @return ()
*/
@GetMapping("/carLedgerFrmbkDtl/selectOne.ajax")
@Operation(summary = "자동차 등록원부(갑) 상세 조회 이력 상세 조회", description = "자동차 등록원부(갑) 상세 조회 이력 상세를 조회합니다.")
public ResponseEntity<?> selectCarLedgerFrmbkDtlOne(
@Parameter(description = "자동차 등록 원부 갑 상세 ID") @RequestParam String carLedgerFrmbkDtlId) {
log.debug("자동차 등록원부(갑) 상세 조회 이력 상세 조회 요청 - ID: {}", carLedgerFrmbkDtlId);
CarLedgerFrmbkDtlVO result = service.selectCarLedgerFrmbkDtlOne(carLedgerFrmbkDtlId);
if (result != null) {
return ApiResponseUtil.success(result, "조회가 완료되었습니다.");
} else {
return ApiResponseUtil.error("해당 정보를 찾을 수 없습니다.");
}
}
}

@ -0,0 +1,94 @@
package go.kr.project.carInspectionPenalty.history.mapper;
import go.kr.project.carInspectionPenalty.history.model.CarBassMatterInqireVO;
import go.kr.project.carInspectionPenalty.history.model.CarLedgerFrmbkVO;
import go.kr.project.carInspectionPenalty.history.model.CarLedgerFrmbkDtlVO;
import go.kr.project.carInspectionPenalty.history.model.VehicleApiHistorySearchVO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* packageName : go.kr.project.carInspectionPenalty.history.mapper
* fileName : VehicleApiHistoryMapper
* author :
* date : 2025-11-06
* description : API Mapper
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2025-11-06
*/
@Mapper
public interface VehicleApiHistoryMapper {
// ==================== 자동차 기본정보 조회 이력 ====================
/**
* .
*
* @param searchVO VO
* @return
*/
List<CarBassMatterInqireVO> selectCarBassMatterInqireList(VehicleApiHistorySearchVO searchVO);
/**
* .
*
* @param searchVO VO
* @return
*/
int selectCarBassMatterInqireListTotalCount(VehicleApiHistorySearchVO searchVO);
/**
* .
*
* @param carBassMatterInqire ID
* @return
*/
CarBassMatterInqireVO selectCarBassMatterInqireOne(String carBassMatterInqire);
// ==================== 자동차 등록원부(갑) 조회 이력 ====================
/**
* () .
*
* @param searchVO VO
* @return ()
*/
List<CarLedgerFrmbkVO> selectCarLedgerFrmbkList(VehicleApiHistorySearchVO searchVO);
/**
* () .
*
* @param searchVO VO
* @return ()
*/
int selectCarLedgerFrmbkListTotalCount(VehicleApiHistorySearchVO searchVO);
/**
* () .
*
* @param carLedgerFrmbkId ID
* @return ()
*/
CarLedgerFrmbkVO selectCarLedgerFrmbkOne(String carLedgerFrmbkId);
// ==================== 자동차 등록원부(갑) 상세 조회 이력 ====================
/**
* () .
*
* @param carLedgerFrmbkId ID
* @return ()
*/
List<CarLedgerFrmbkDtlVO> selectCarLedgerFrmbkDtlList(String carLedgerFrmbkId);
/**
* () .
*
* @param carLedgerFrmbkDtlId ID
* @return ()
*/
CarLedgerFrmbkDtlVO selectCarLedgerFrmbkDtlOne(String carLedgerFrmbkDtlId);
}

@ -0,0 +1,328 @@
package go.kr.project.carInspectionPenalty.history.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
/**
* packageName : go.kr.project.carInspectionPenalty.history.model
* fileName : CarBassMatterInqireVO
* author :
* date : 2025-11-06
* description : VO
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2025-11-06
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class CarBassMatterInqireVO {
/** 자동차 기본 사항 조회 ID */
private String carBassMatterInqire;
/** 정보 시스템 ID */
private String infoSysId;
/** 정보 시스템 IP */
private String infoSysIp;
/** 시군구 코드 */
private String sigunguCode;
/** 연계 정보 코드 */
private String cntcInfoCode;
/** 담당자 ID */
private String chargerId;
/** 담당자 IP */
private String chargerIp;
/** 담당자명 */
private String chargerNm;
/** 요청 부과 기준일 */
private String dmndLevyStdde;
/** 요청 조회 구분 코드 */
private String dmndInqireSeCode;
/** 요청 자동차등록번호 */
private String dmndVhrno;
/** 요청 차대번호 */
private String dmndVin;
/** 연계 결과 코드 */
private String cntcResultCode;
/** 연계 결과 상세 */
private String cntcResultDtls;
/** 연식 */
private String prye;
/** 등록일 */
private String registDe;
/** 말소 등록 구분 코드 */
private String ersrRegistSeCode;
/** 말소 등록 구분명 */
private String ersrRegistSeNm;
/** 말소 등록일 */
private String ersrRegistDe;
/** 등록 상세 코드 */
private String registDetailCode;
/** 배기량 */
private String dsplvl;
/** 사용 본거지 법정동 코드 */
private String useStrnghldLegaldongCode;
/** 사용 본거지 행정동 코드 */
private String useStrnghldAdstrdCode;
/** 사용 본거지 산 */
private String useStrnghldMntn;
/** 사용 본거지 번지 */
private String useStrnghldLnbr;
/** 사용 본거지 호 */
private String useStrnghldHo;
/** 사용 본거지 상세주소 */
private String useStrnghldAdresNm;
/** 사용 본거지 도로명 코드 */
private String useStrnghldRoadNmCode;
/** 사용 본거지 지하 건물 구분 코드 */
private String usgsrhldUndgrndBuldSeCode;
/** 사용 본거지 건물 주요 번호 */
private String useStrnghldBuldMainNo;
/** 사용 본거지 건물 부 번호 */
private String useStrnghldBuldSubNo;
/** 사용 본거지 전체주소 */
private String usgsrhldAdresFull;
/** 대표소유자 회원 구분 코드 */
private String mberSeCode;
/** 대표소유자 회원 번호 */
private String mberSeNo;
/** 대표소유자 전화번호 */
private String telno;
/** 소유자 법정동 코드 */
private String ownerLegaldongCode;
/** 소유자 행정동 코드 */
private String ownerAdstrdCode;
/** 소유자 산 */
private String ownerMntn;
/** 소유자 번지 */
private String ownerLnbr;
/** 소유자 호 */
private String ownerHo;
/** 소유자 상세주소 */
private String ownerAdresNm;
/** 소유자 도로명 코드 */
private String ownerRoadNmCode;
/** 소유자 지하건물 구분 코드 */
private String ownerUndgrndBuldSeCode;
/** 소유자 건물 주요 번호 */
private String ownerBuldMainNo;
/** 소유자 건물 부 번호 */
private String ownerBuldSubNo;
/** 소유자 전체주소 */
private String ownrWholaddr;
/** 신 차량번호 */
private String aftrVhrno;
/** 사용 연료 코드 */
private String useFuelCode;
/** 용도 구분 코드 */
private String prposSeCode;
/** 원동기 형식명 */
private String mtrsFomNm;
/** 이전 차량번호 */
private String frntVhrno;
/** 차량번호 */
private String vhclno;
/** 차대번호 */
private String vin;
/** 차명 */
private String cnm;
/** 차량 총 중량 */
private String vhcleTotWt;
/** 차령 만료일자 */
private String caagEndde;
/** 차번호 변경시기 */
private String changeDe;
/** 차종 종별 코드 */
private String vhctyAsortCode;
/** 차종 유형 코드 */
private String vhctyTyCode;
/** 차종 분류 코드 */
private String vhctySeCode;
/** 최대 적재량 */
private String mxmmLdg;
/** 차종 종별명 */
private String vhctyAsortNm;
/** 차종 유형명 */
private String vhctyTyNm;
/** 차종 분류명 */
private String vhctySeNm;
/** 최초 등록일 */
private String frstRegistDe;
/** 형식 */
private String fomNm;
/** 취득 일자 */
private String acqsDe;
/** 취득 종료일자 */
private String acqsEndDe;
/** 제작 년월일 */
private String yblMd;
/** 이전 등록일 */
private String transrRegistDe;
/** 제원 등록 상태 코드 */
private String spcfRegistSttusCode;
/** 색상명 */
private String colorNm;
/** 저당수 */
private String mrtgCo;
/** 압류건수 */
private String seizrCo;
/** 구조변경수 */
private String stmdCo;
/** 번호판 영치 여부 */
private String nmplCsdyAt;
/** 번호판 영치 최고일 */
private String nmplCsdyRemnrDe;
/** 출처 구분 코드 */
private String originSeCode;
/** 번호판 규격 코드 */
private String nmplStndrdCode;
/** 취득 금액 */
private String acqsAmount;
/** 검사 유효 기간 시작일 */
private String insptValidPdBgnde;
/** 검사 유효 기간 종료일 */
private String insptValidPdEndde;
/** 사용 본거지 관청 코드 */
private String useStrnghldGrcCode;
/** 승차정원수 */
private String tkcarPscapCo;
/** 제원관리번호 */
private String spmnno;
/** 주행거리 */
private String trvlDstnc;
/** 최초 등록 접수번호 */
private String frstRegistRqrcno;
/** 예고통지일 */
private String vlntErsrPrvntcNticeDe;
/** 등록 기관명 */
private String registInsttNm;
/** 처리 불가 사유 코드 */
private String processImprtyResnCode;
/** 처리 불가 사유 명세 */
private String processImprtyResnDtls;
/** 차체 길이 */
private String cbdLt;
/** 차체 너비 */
private String cbdBt;
/** 차체 높이 */
private String cbdHg;
/** 최초 최대 적재량 */
private String frstMxmmLdg;
/** 연료 소비율 */
private String fuelCnsmpRt;
/** 전기 복합 연료 소비율 */
private String elctyCmpndFuelCnsmpRt;
/** 등록 일시 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Seoul")
private LocalDateTime regDt;
/** 등록자 */
private String rgtr;
/** 대표소유자 성명 */
private String mberNm;
}

@ -0,0 +1,79 @@
package go.kr.project.carInspectionPenalty.history.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
/**
* packageName : go.kr.project.carInspectionPenalty.history.model
* fileName : CarLedgerFrmbkDtlVO
* author :
* date : 2025-11-06
* description : VO
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2025-11-06
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class CarLedgerFrmbkDtlVO {
/** 자동차 등록 원부 갑 상세 ID */
private String carLedgerFrmbkDtlId;
/** 자동차 등록 원부 갑 ID */
private String carLedgerFrmbkId;
/** 해제여부 */
private String mainchk;
/** 변경 업무 구분 코드 */
private String changeJobSeCode;
/** 주번호 */
private String mainno;
/** 부번호 */
private String subno;
/** 사항란 */
private String dtls;
/** 접수번호 */
private String rqrcno;
/** 차량관리번호 */
private String vhmno;
/** 원부 그룹 번호 */
private String ledgerGroupNo;
/** 원부 개별 번호 */
private String ledgerIndvdlzNo;
/** 변경 업무 구분명 */
private String gubunNm;
/** 변경 일자 */
private String changeDe;
/** 상세 순번 */
private String detailSn;
/** 표기여부 */
private String flag;
/** 등록 일시 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Seoul")
private LocalDateTime regDt;
/** 등록자 */
private String rgtr;
}

@ -0,0 +1,271 @@
package go.kr.project.carInspectionPenalty.history.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
/**
* packageName : go.kr.project.carInspectionPenalty.history.model
* fileName : CarLedgerFrmbkVO
* author :
* date : 2025-11-06
* description : VO
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2025-11-06
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class CarLedgerFrmbkVO {
/** 자동차 등록 원부 갑 ID */
private String carLedgerFrmbkId;
/** 정보 시스템 ID */
private String infoSysId;
/** 정보 시스템 IP */
private String infoSysIp;
/** 시군구 코드 */
private String sigunguCode;
/** 연계 정보 코드 */
private String cntcInfoCode;
/** 담당자 ID */
private String chargerId;
/** 담당자 IP */
private String chargerIp;
/** 담당자명 */
private String chargerNm;
/** 요청 자동차등록번호 */
private String dmndVhrno;
/** 요청 개인 정보 공개 */
private String dmndOnesInformationOpen;
/** 요청 민원인 성명 */
private String dmndCpttrNm;
/** 요청 민원인 주민번호 */
private String dmndCpttrIhidnum;
/** 요청 민원인 법정동 코드 */
private String dmndCpttrLegaldongCode;
/** 요청 경로 구분 코드 */
private String dmndRouteSeCode;
/** 요청 내역 표시 */
private String dmndDetailExpression;
/** 요청 조회 구분 코드 */
private String dmndInqireSeCode;
/** 연계 결과 코드 */
private String cntcResultCode;
/** 연계 결과 상세 */
private String cntcResultDtls;
/** 원부 그룹 번호 */
private String ledgerGroupNo;
/** 원부 개별 번호 */
private String ledgerIndvdlzNo;
/** 차량관리번호 */
private String vhmno;
/** 차량등록번호 */
private String vhrno;
/** 차대번호 */
private String vin;
/** 차종 종별 코드 */
private String vhctyAsortCode;
/** 차종 종별명 */
private String vhctyAsortNm;
/** 차명 */
private String cnm;
/** 색상 코드 */
private String colorCode;
/** 색상명 */
private String colorNm;
/** 번호판 규격 코드 */
private String nmplStndrdCode;
/** 번호판 규격명 */
private String nmplStndrdNm;
/** 용도 구분 코드 */
private String prposSeCode;
/** 용도 구분명 */
private String prposSeNm;
/** 원동기 형식명 */
private String mtrsFomNm;
/** 형식명 */
private String fomNm;
/** 취득 금액 */
private String acqsAmount;
/** 등록 상세 코드 */
private String registDetailCode;
/** 등록 상세명 */
private String registDetailNm;
/** 최초 등록일 */
private String frstRegistDe;
/** 차령 종료일 */
private String caagEndde;
/** 연식 */
private String prye;
/** 제원관리번호1 */
private String spmnno1;
/** 제원관리번호2 */
private String spmnno2;
/** 제작 년월일 */
private String yblMd;
/** 주행 거리 */
private String trvlDstnc;
/** 검사 유효 기간 시작일 */
private String insptValidPdBgnde;
/** 검사 유효 기간 종료일 */
private String insptValidPdEndde;
/** 점검 유효 기간 시작일 */
private String chckValidPdBgnde;
/** 점검 유효 기간 종료일 */
private String chckValidPdEndde;
/** 등록 신청 구분명 */
private String registReqstSeNm;
/** 최초 등록 접수번호 */
private String frstRegistRqrcno;
/** 번호판 영치 최고일 */
private String nmplCsdyRemnrDe;
/** 번호판 영치 여부 */
private String nmplCsdyAt;
/** 사업용 사용 기간 */
private String bssUsePd;
/** 직권 말소 예고 통지일 */
private String octhtErsrPrvntcNticeDe;
/** 말소 등록일 */
private String ersrRegistDe;
/** 말소 등록 구분 코드 */
private String ersrRegistSeCode;
/** 말소 등록 구분명 */
private String ersrRegistSeNm;
/** 저당수 */
private String mrtgcnt;
/** 압류건수 */
private String vhclecnt;
/** 구조변경수 */
private String stmdcnt;
/** 사용 본거지 주소 */
private String adres1;
/** 사용 본거지 주소상세 */
private String adresNm1;
/** 소유자 주소 */
private String adres;
/** 소유자 주소상세 */
private String adresNm;
/** 개인 사업자 여부 */
private String indvdlBsnmAt;
/** 대표소유자 전화번호 */
private String telno;
/** 대표소유자 성명 */
private String mberNm;
/** 대표소유자 회원 구분 코드 */
private String mberSeCode;
/** 대표소유자 회원 번호 */
private String mberSeNo;
/** 비과세 대상 구분 코드 */
private String taxxmptTrgterSeCode;
/** 비과세 대상 구분 코드명 */
private String taxxmptTrgterSeCodeNm;
/** 특기사항 건수 */
private String cntMatter;
/** 사용 본거지 행정동명 */
private String emdNm;
/** 예고수 */
private String prvntccnt;
/** 수출 이행 여부 신고일 */
private String xportFlflAtSttemntDe;
/** 발급번호 */
private String partnRqrcno;
/** 최초 양도일 */
private String frstTrnsfrDe;
/** 처리 불가 사유 코드 */
private String processImprtyResnCode;
/** 처리 불가 사유 명세 */
private String processImprtyResnDtls;
/** 등록 일시 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Seoul")
private LocalDateTime regDt;
/** 등록자 */
private String rgtr;
}

@ -0,0 +1,48 @@
package go.kr.project.carInspectionPenalty.history.model;
import go.kr.project.common.model.PagingVO;
import lombok.*;
/**
* packageName : go.kr.project.carInspectionPenalty.history.model
* fileName : VehicleApiHistorySearchVO
* author :
* date : 2025-11-06
* description : API VO
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2025-11-06
*/
@EqualsAndHashCode(callSuper=true)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class VehicleApiHistorySearchVO extends PagingVO {
/** 조회 API 구분 (basic: 기본정보, ledger: 등록원부, ledgerDtl: 등록원부상세) */
private String apiType;
/** 조회 시작일 (yyyyMMdd) */
private String searchStartDate;
/** 조회 종료일 (yyyyMMdd) */
private String searchEndDate;
/** 차량번호 */
private String vhrno;
/** 담당자명 */
private String chargerNm;
/** 연계 결과 코드 */
private String cntcResultCode;
/** 차대번호 */
private String vin;
/** 담당자 ID */
private String chargerId;
}

@ -0,0 +1,92 @@
package go.kr.project.carInspectionPenalty.history.service;
import go.kr.project.carInspectionPenalty.history.model.CarBassMatterInqireVO;
import go.kr.project.carInspectionPenalty.history.model.CarLedgerFrmbkVO;
import go.kr.project.carInspectionPenalty.history.model.CarLedgerFrmbkDtlVO;
import go.kr.project.carInspectionPenalty.history.model.VehicleApiHistorySearchVO;
import java.util.List;
/**
* packageName : go.kr.project.carInspectionPenalty.history.service
* fileName : VehicleApiHistoryService
* author :
* date : 2025-11-06
* description : API
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2025-11-06
*/
public interface VehicleApiHistoryService {
// ==================== 자동차 기본정보 조회 이력 ====================
/**
* .
*
* @param searchVO VO
* @return
*/
List<CarBassMatterInqireVO> selectCarBassMatterInqireList(VehicleApiHistorySearchVO searchVO);
/**
* .
*
* @param searchVO VO
* @return
*/
int selectCarBassMatterInqireListTotalCount(VehicleApiHistorySearchVO searchVO);
/**
* .
*
* @param carBassMatterInqire ID
* @return
*/
CarBassMatterInqireVO selectCarBassMatterInqireOne(String carBassMatterInqire);
// ==================== 자동차 등록원부(갑) 조회 이력 ====================
/**
* () .
*
* @param searchVO VO
* @return ()
*/
List<CarLedgerFrmbkVO> selectCarLedgerFrmbkList(VehicleApiHistorySearchVO searchVO);
/**
* () .
*
* @param searchVO VO
* @return ()
*/
int selectCarLedgerFrmbkListTotalCount(VehicleApiHistorySearchVO searchVO);
/**
* () .
*
* @param carLedgerFrmbkId ID
* @return ()
*/
CarLedgerFrmbkVO selectCarLedgerFrmbkOne(String carLedgerFrmbkId);
// ==================== 자동차 등록원부(갑) 상세 조회 이력 ====================
/**
* () .
*
* @param carLedgerFrmbkId ID
* @return ()
*/
List<CarLedgerFrmbkDtlVO> selectCarLedgerFrmbkDtlList(String carLedgerFrmbkId);
/**
* () .
*
* @param carLedgerFrmbkDtlId ID
* @return ()
*/
CarLedgerFrmbkDtlVO selectCarLedgerFrmbkDtlOne(String carLedgerFrmbkDtlId);
}

@ -0,0 +1,86 @@
package go.kr.project.carInspectionPenalty.history.service.impl;
import go.kr.project.carInspectionPenalty.history.mapper.VehicleApiHistoryMapper;
import go.kr.project.carInspectionPenalty.history.model.CarBassMatterInqireVO;
import go.kr.project.carInspectionPenalty.history.model.CarLedgerFrmbkVO;
import go.kr.project.carInspectionPenalty.history.model.CarLedgerFrmbkDtlVO;
import go.kr.project.carInspectionPenalty.history.model.VehicleApiHistorySearchVO;
import go.kr.project.carInspectionPenalty.history.service.VehicleApiHistoryService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* packageName : go.kr.project.carInspectionPenalty.history.service.impl
* fileName : VehicleApiHistoryServiceImpl
* author :
* date : 2025-11-06
* description : API
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2025-11-06
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class VehicleApiHistoryServiceImpl implements VehicleApiHistoryService {
private final VehicleApiHistoryMapper mapper;
// ==================== 자동차 기본정보 조회 이력 ====================
@Override
public List<CarBassMatterInqireVO> selectCarBassMatterInqireList(VehicleApiHistorySearchVO searchVO) {
log.debug("자동차 기본정보 조회 이력 목록 조회 - 검색 조건: {}", searchVO);
return mapper.selectCarBassMatterInqireList(searchVO);
}
@Override
public int selectCarBassMatterInqireListTotalCount(VehicleApiHistorySearchVO searchVO) {
log.debug("자동차 기본정보 조회 이력 총 개수 조회 - 검색 조건: {}", searchVO);
return mapper.selectCarBassMatterInqireListTotalCount(searchVO);
}
@Override
public CarBassMatterInqireVO selectCarBassMatterInqireOne(String carBassMatterInqire) {
log.debug("자동차 기본정보 조회 이력 상세 조회 - ID: {}", carBassMatterInqire);
return mapper.selectCarBassMatterInqireOne(carBassMatterInqire);
}
// ==================== 자동차 등록원부(갑) 조회 이력 ====================
@Override
public List<CarLedgerFrmbkVO> selectCarLedgerFrmbkList(VehicleApiHistorySearchVO searchVO) {
log.debug("자동차 등록원부(갑) 조회 이력 목록 조회 - 검색 조건: {}", searchVO);
return mapper.selectCarLedgerFrmbkList(searchVO);
}
@Override
public int selectCarLedgerFrmbkListTotalCount(VehicleApiHistorySearchVO searchVO) {
log.debug("자동차 등록원부(갑) 조회 이력 총 개수 조회 - 검색 조건: {}", searchVO);
return mapper.selectCarLedgerFrmbkListTotalCount(searchVO);
}
@Override
public CarLedgerFrmbkVO selectCarLedgerFrmbkOne(String carLedgerFrmbkId) {
log.debug("자동차 등록원부(갑) 조회 이력 상세 조회 - ID: {}", carLedgerFrmbkId);
return mapper.selectCarLedgerFrmbkOne(carLedgerFrmbkId);
}
// ==================== 자동차 등록원부(갑) 상세 조회 이력 ====================
@Override
public List<CarLedgerFrmbkDtlVO> selectCarLedgerFrmbkDtlList(String carLedgerFrmbkId) {
log.debug("자동차 등록원부(갑) 상세 조회 이력 목록 조회 - 원부 갑 ID: {}", carLedgerFrmbkId);
return mapper.selectCarLedgerFrmbkDtlList(carLedgerFrmbkId);
}
@Override
public CarLedgerFrmbkDtlVO selectCarLedgerFrmbkDtlOne(String carLedgerFrmbkDtlId) {
log.debug("자동차 등록원부(갑) 상세 조회 이력 상세 조회 - ID: {}", carLedgerFrmbkDtlId);
return mapper.selectCarLedgerFrmbkDtlOne(carLedgerFrmbkDtlId);
}
}

@ -1,9 +1,9 @@
package go.kr.project.carInspectionPenalty.search;
package go.kr.project.carInspectionPenalty.search.Controller;
import egovframework.constant.TilesConstants;
import egovframework.util.ApiResponseUtil;
import go.kr.project.carInspectionPenalty.service.ExternalVehicleApiService;
import go.kr.project.carInspectionPenalty.vo.VehicleApiResponseVO;
import go.kr.project.externalApi.service.ExternalVehicleApiService;
import go.kr.project.externalApi.vo.VehicleApiResponseVO;
import go.kr.project.common.service.CommonCodeService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;

@ -1,6 +1,6 @@
package go.kr.project.carInspectionPenalty.service;
package go.kr.project.externalApi.service;
import go.kr.project.carInspectionPenalty.vo.*;
import go.kr.project.externalApi.vo.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.ParameterizedTypeReference;

@ -1,4 +1,4 @@
package go.kr.project.carInspectionPenalty.vo;
package go.kr.project.externalApi.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

@ -1,4 +1,4 @@
package go.kr.project.carInspectionPenalty.vo;
package go.kr.project.externalApi.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;

@ -1,4 +1,4 @@
package go.kr.project.carInspectionPenalty.vo;
package go.kr.project.externalApi.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;

@ -1,4 +1,4 @@
package go.kr.project.carInspectionPenalty.vo;
package go.kr.project.externalApi.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;

@ -1,4 +1,4 @@
package go.kr.project.carInspectionPenalty.vo;
package go.kr.project.externalApi.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;

@ -1,4 +1,4 @@
package go.kr.project.carInspectionPenalty.vo;
package go.kr.project.externalApi.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;

@ -0,0 +1,187 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="go.kr.project.carInspectionPenalty.history.mapper.VehicleApiHistoryMapper">
<!-- ==================== 자동차 기본정보 조회 이력 ==================== -->
<!-- 자동차 기본정보 조회 이력 목록 조회 -->
<select id="selectCarBassMatterInqireList" parameterType="VehicleApiHistorySearchVO" resultType="CarBassMatterInqireVO">
SELECT
CAR_BASS_MATTER_INQIRE,
INFO_SYS_ID,
INFO_SYS_IP,
SIGUNGU_CODE,
CNTC_INFO_CODE,
CHARGER_ID,
CHARGER_IP,
CHARGER_NM,
DMND_LEVY_STDDE,
DMND_INQIRE_SE_CODE,
DMND_VHRNO,
DMND_VIN,
CNTC_RESULT_CODE,
CNTC_RESULT_DTLS,
VHCLNO,
VIN,
CNM,
MBER_NM,
REG_DT,
RGTR
FROM tb_car_bass_matter_inqire
WHERE 1=1
<if test='searchStartDate != null and searchStartDate != ""'>
AND DATE_FORMAT(REG_DT, '%Y%m%d') <![CDATA[>=]]> #{searchStartDate}
</if>
<if test='searchEndDate != null and searchEndDate != ""'>
AND DATE_FORMAT(REG_DT, '%Y%m%d') <![CDATA[<=]]> #{searchEndDate}
</if>
<if test='vhrno != null and vhrno != ""'>
AND (DMND_VHRNO LIKE CONCAT('%', #{vhrno}, '%') OR VHCLNO LIKE CONCAT('%', #{vhrno}, '%'))
</if>
<if test='vin != null and vin != ""'>
AND (DMND_VIN LIKE CONCAT('%', #{vin}, '%') OR VIN LIKE CONCAT('%', #{vin}, '%'))
</if>
<if test='chargerNm != null and chargerNm != ""'>
AND CHARGER_NM LIKE CONCAT('%', #{chargerNm}, '%')
</if>
<if test='cntcResultCode != null and cntcResultCode != ""'>
AND CNTC_RESULT_CODE = #{cntcResultCode}
</if>
ORDER BY REG_DT DESC
<if test='pagingYn == "Y"'>
LIMIT #{startIndex}, #{perPage}
</if>
</select>
<!-- 자동차 기본정보 조회 이력 총 개수 조회 -->
<select id="selectCarBassMatterInqireListTotalCount" parameterType="VehicleApiHistorySearchVO" resultType="int">
SELECT COUNT(*)
FROM tb_car_bass_matter_inqire
WHERE 1=1
<if test='searchStartDate != null and searchStartDate != ""'>
AND DATE_FORMAT(REG_DT, '%Y%m%d') <![CDATA[>=]]> #{searchStartDate}
</if>
<if test='searchEndDate != null and searchEndDate != ""'>
AND DATE_FORMAT(REG_DT, '%Y%m%d') <![CDATA[<=]]> #{searchEndDate}
</if>
<if test='vhrno != null and vhrno != ""'>
AND (DMND_VHRNO LIKE CONCAT('%', #{vhrno}, '%') OR VHCLNO LIKE CONCAT('%', #{vhrno}, '%'))
</if>
<if test='vin != null and vin != ""'>
AND (DMND_VIN LIKE CONCAT('%', #{vin}, '%') OR VIN LIKE CONCAT('%', #{vin}, '%'))
</if>
<if test='chargerNm != null and chargerNm != ""'>
AND CHARGER_NM LIKE CONCAT('%', #{chargerNm}, '%')
</if>
<if test='cntcResultCode != null and cntcResultCode != ""'>
AND CNTC_RESULT_CODE = #{cntcResultCode}
</if>
</select>
<!-- 자동차 기본정보 조회 이력 상세 조회 -->
<select id="selectCarBassMatterInqireOne" parameterType="String" resultType="CarBassMatterInqireVO">
SELECT *
FROM tb_car_bass_matter_inqire
WHERE CAR_BASS_MATTER_INQIRE = #{carBassMatterInqire}
</select>
<!-- ==================== 자동차 등록원부(갑) 조회 이력 ==================== -->
<!-- 자동차 등록원부(갑) 조회 이력 목록 조회 -->
<select id="selectCarLedgerFrmbkList" parameterType="VehicleApiHistorySearchVO" resultType="CarLedgerFrmbkVO">
SELECT
CAR_LEDGER_FRMBK_ID,
INFO_SYS_ID,
INFO_SYS_IP,
SIGUNGU_CODE,
CNTC_INFO_CODE,
CHARGER_ID,
CHARGER_IP,
CHARGER_NM,
DMND_VHRNO,
CNTC_RESULT_CODE,
CNTC_RESULT_DTLS,
VHRNO,
VIN,
CNM,
MBER_NM,
REG_DT,
RGTR
FROM tb_car_ledger_frmbk
WHERE 1=1
<if test='searchStartDate != null and searchStartDate != ""'>
AND DATE_FORMAT(REG_DT, '%Y%m%d') <![CDATA[>=]]> #{searchStartDate}
</if>
<if test='searchEndDate != null and searchEndDate != ""'>
AND DATE_FORMAT(REG_DT, '%Y%m%d') <![CDATA[<=]]> #{searchEndDate}
</if>
<if test='vhrno != null and vhrno != ""'>
AND (DMND_VHRNO LIKE CONCAT('%', #{vhrno}, '%') OR VHRNO LIKE CONCAT('%', #{vhrno}, '%'))
</if>
<if test='vin != null and vin != ""'>
AND VIN LIKE CONCAT('%', #{vin}, '%')
</if>
<if test='chargerNm != null and chargerNm != ""'>
AND CHARGER_NM LIKE CONCAT('%', #{chargerNm}, '%')
</if>
<if test='cntcResultCode != null and cntcResultCode != ""'>
AND CNTC_RESULT_CODE = #{cntcResultCode}
</if>
ORDER BY REG_DT DESC
<if test='pagingYn == "Y"'>
LIMIT #{startIndex}, #{perPage}
</if>
</select>
<!-- 자동차 등록원부(갑) 조회 이력 총 개수 조회 -->
<select id="selectCarLedgerFrmbkListTotalCount" parameterType="VehicleApiHistorySearchVO" resultType="int">
SELECT COUNT(*)
FROM tb_car_ledger_frmbk
WHERE 1=1
<if test='searchStartDate != null and searchStartDate != ""'>
AND DATE_FORMAT(REG_DT, '%Y%m%d') <![CDATA[>=]]> #{searchStartDate}
</if>
<if test='searchEndDate != null and searchEndDate != ""'>
AND DATE_FORMAT(REG_DT, '%Y%m%d') <![CDATA[<=]]> #{searchEndDate}
</if>
<if test='vhrno != null and vhrno != ""'>
AND (DMND_VHRNO LIKE CONCAT('%', #{vhrno}, '%') OR VHRNO LIKE CONCAT('%', #{vhrno}, '%'))
</if>
<if test='vin != null and vin != ""'>
AND VIN LIKE CONCAT('%', #{vin}, '%')
</if>
<if test='chargerNm != null and chargerNm != ""'>
AND CHARGER_NM LIKE CONCAT('%', #{chargerNm}, '%')
</if>
<if test='cntcResultCode != null and cntcResultCode != ""'>
AND CNTC_RESULT_CODE = #{cntcResultCode}
</if>
</select>
<!-- 자동차 등록원부(갑) 조회 이력 상세 조회 -->
<select id="selectCarLedgerFrmbkOne" parameterType="String" resultType="CarLedgerFrmbkVO">
SELECT *
FROM tb_car_ledger_frmbk
WHERE CAR_LEDGER_FRMBK_ID = #{carLedgerFrmbkId}
</select>
<!-- ==================== 자동차 등록원부(갑) 상세 조회 이력 ==================== -->
<!-- 자동차 등록원부(갑) 상세 조회 이력 목록 조회 -->
<select id="selectCarLedgerFrmbkDtlList" parameterType="String" resultType="CarLedgerFrmbkDtlVO">
SELECT *
FROM tb_car_ledger_frmbk_dtl
WHERE CAR_LEDGER_FRMBK_ID = #{carLedgerFrmbkId}
ORDER BY REG_DT DESC
</select>
<!-- 자동차 등록원부(갑) 상세 조회 이력 상세 조회 -->
<select id="selectCarLedgerFrmbkDtlOne" parameterType="String" resultType="CarLedgerFrmbkDtlVO">
SELECT *
FROM tb_car_ledger_frmbk_dtl
WHERE CAR_LEDGER_FRMBK_DTL_ID = #{carLedgerFrmbkDtlId}
</select>
</mapper>
Loading…
Cancel
Save