diff --git a/build.gradle b/build.gradle index 780c826..476c12f 100644 --- a/build.gradle +++ b/build.gradle @@ -93,6 +93,7 @@ dependencies { // ===== 스프링 부트 핵심 의존성 ===== // 스프링 부트 웹 스타터 - MVC, REST, 내장 톰캣 등 웹 개발에 필요한 기본 의존성 포함 implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.boot:spring-boot-starter-webflux' // 스프링 부트 웹 스타터 - JPA implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // 스프링 부트 유효성 검사 스타터 - Bean Validation API 구현체 포함 diff --git a/src/main/java/egovframework/config/WebClient/WebClientConf.java b/src/main/java/egovframework/config/WebClient/WebClientConf.java new file mode 100644 index 0000000..05acc41 --- /dev/null +++ b/src/main/java/egovframework/config/WebClient/WebClientConf.java @@ -0,0 +1,38 @@ +package egovframework.config.WebClient; + +import io.netty.channel.ChannelOption; +import io.netty.handler.timeout.ReadTimeoutHandler; +import io.netty.handler.timeout.WriteTimeoutHandler; +import org.springframework.context.annotation.Bean; +import org.springframework.http.client.reactive.ReactorClientHttpConnector; +import org.springframework.stereotype.Component; +import org.springframework.web.reactive.function.client.ExchangeStrategies; +import org.springframework.web.reactive.function.client.WebClient; +import reactor.netty.http.client.HttpClient; + +import java.time.Duration; +import java.util.concurrent.TimeUnit; + +@Component +public class WebClientConf { + + @Bean + public WebClient webClient() { + HttpClient httpClient = HttpClient.create() + .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 5000) + .responseTimeout(Duration.ofSeconds(10)) + .doOnConnected(conn -> conn + .addHandlerLast(new ReadTimeoutHandler(10, TimeUnit.SECONDS)) + .addHandlerLast(new WriteTimeoutHandler(10, TimeUnit.SECONDS))); + + return WebClient.builder() + .clientConnector(new ReactorClientHttpConnector(httpClient)) + .exchangeStrategies( + ExchangeStrategies.builder() + .codecs(c -> c.defaultCodecs().maxInMemorySize(4 * 1024 * 1024)) + .build() + ) + .build(); + } + +} diff --git a/src/main/java/go/kr/project/biz/common/controller/CommonContorller.java b/src/main/java/go/kr/project/biz/common/controller/CommonContorller.java index 8bcce53..b7db7f3 100644 --- a/src/main/java/go/kr/project/biz/common/controller/CommonContorller.java +++ b/src/main/java/go/kr/project/biz/common/controller/CommonContorller.java @@ -7,6 +7,8 @@ import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -33,9 +35,9 @@ public class CommonContorller { * 차적조회 */ @GetMapping("/common/car/info/find.ajax") - public ResponseEntity findCarInfo() { + public ResponseEntity findCarInfo(@RequestParam String mmCarno, @RequestParam String mmDate) { - return ResponseEntity.ok("aaa"); + return ResponseEntity.ok(commonService.findCarInfo(mmCarno, mmDate)); } /** diff --git a/src/main/java/go/kr/project/biz/common/dto/WebClientCallDto.java b/src/main/java/go/kr/project/biz/common/dto/WebClientCallDto.java new file mode 100644 index 0000000..d880559 --- /dev/null +++ b/src/main/java/go/kr/project/biz/common/dto/WebClientCallDto.java @@ -0,0 +1,364 @@ +package go.kr.project.biz.common.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.*; + +import java.util.List; + +public class WebClientCallDto { + + public static class CarInfoRequest { + + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class BodyWrapper { + @JsonProperty("data") + private List data; + } + + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class Body { + + // ===== 헤더 영역 ===== + @JsonProperty("INFO_SYS_ID") + private String infoSysId; + + @JsonProperty("INFO_SYS_IP") + private String infoSysIp; + + @JsonProperty("SIGUNGU_CODE") + private String sigunguCode; + + @JsonProperty("CNTC_INFO_CODE") + private String cntcInfoCode; + + @JsonProperty("CHARGER_ID") + private String chargerId; + + @JsonProperty("CHARGER_IP") + private String chargerIp; + + @JsonProperty("CHARGER_NM") + private String chargerNm; + + // record 배열 + @JsonProperty("record") + private List record; + } + + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class IfBody { + + @JsonProperty("VHRNO") + private String vhrno; // 자동차등록번호 + + @JsonProperty("VIN") + private String vin; // 차대번호 + + @JsonProperty("LEVY_STDDE") + private String levyStdde; // 부과기준일 + + @JsonProperty("INQIRE_SE_CODE") + private String inqireSeCode; // 조회구분코드 + } + + + } + + + @Getter + @Setter + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class CarInfoResponse { + @JsonProperty("LINK_RSLT_CD") + private String linkRsltCd; + @JsonProperty("LINK_RSLT_DTL") + private String linkRsltDtl; + private List record; + + + + @Getter + @Setter + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class CarInfoIfBody { + + @JsonProperty("VHRNO") + private String vhrno; + + @JsonProperty("ATMB_NM") + private String atmbNm; + + @JsonProperty("RPRS_OWNR_NM") + private String rprsOwnrNm; + + @JsonProperty("RPRSV_OWNR_IDECNO") + private String rprsvOwnrIdecno; + + @JsonProperty("ERSR_REG_YMD") + private String ersrRegYmd; + + @JsonProperty("PRCS_IMPRTY_RSN_CD") + private String prcsImprtyRsnCd; + + @JsonProperty("PRCS_IMPRTY_RSN_DTLS") + private String prcsImprtyRsnDtls; + + @JsonProperty("YRIDNW") + private String yridnw; + + @JsonProperty("VIN") + private String vin; + + @JsonProperty("CNM") + private String cnm; + + @JsonProperty("CARMDL_ASORT_NM") + private String carmdlAsortNm; + + @JsonProperty("FRST_REG_YMD") + private String frstRegYmd; + + @JsonProperty("COLOR_NM") + private String colorNm; + + @JsonProperty("STRCT_CHG_CNT") + private String strctChgCnt; + + @JsonProperty("NOPLT_CSDY_YN") + private String nopltCsdyYn; + + @JsonProperty("NOPLT_CSDY_AVTSMT_YMD") + private String nopltCsdyAvtsmtYmd; + + @JsonProperty("INSP_VLD_PD_BGNG_YMD") + private String inspVldPdBgngYmd; + + @JsonProperty("INSP_VLD_PD_END_YMD") + private String inspVldPdEndYmd; + + @JsonProperty("SPMNNO") + private String spmnno; + + @JsonProperty("DRVNG_DSTNC") + private String drvngDstnc; + + @JsonProperty("FOM_NM") + private String fomNm; + + @JsonProperty("DSPLVL") + private String dsplvl; + + @JsonProperty("CARMDL_CLSF_NM") + private String carmdlClsfNm; + + @JsonProperty("FBCTN_YMD") + private String fbctnYmd; + + @JsonProperty("USGSRHLD_ADDR_NM") + private String usgsrhldAddrNm; + + @JsonProperty("MTRS_FOM_NM") + private String mtrsFomNm; + + @JsonProperty("RDCPCT_CNT") + private String rdcpctCnt; + + @JsonProperty("FRST_REG_APLY_RCPT_NO") + private String frstRegAplyRcptNo; + + @JsonProperty("OGNZ_NM") + private String ognzNm; + + @JsonProperty("ERSR_REG_SE_NM") + private String ersrRegSeNm; + + @JsonProperty("BFR_VHRNO") + private String bfrVhrno; + + @JsonProperty("USE_FUEL_CD") + private String useFuelCd; + + @JsonProperty("RPRS_OWNR_MBR_SE_CD") + private String rprsOwnrMbrSeCd; + + @JsonProperty("RPRS_OWNR_TELNO") + private String rprsOwnrTelno; + + @JsonProperty("OWNR_STDG_CD") + private String ownrStdgCd; + + @JsonProperty("OWNR_WHOL_ADDR") + private String ownrWholAddr; + + @JsonProperty("VHCL_TOTL_WT") + private String vhclTotlWt; + + @JsonProperty("MXMM_LDG") + private String mxmmLdg; + + @JsonProperty("CBD_LT") + private String cbdLt; + + @JsonProperty("CBD_BT") + private String cbdBt; + + @JsonProperty("CBD_HG") + private String cbdHg; + + @JsonProperty("CARMDL_ASORT_CD") + private String carmdlAsortCd; + + @JsonProperty("CARMDL_TYPE_CD") + private String carmdlTypeCd; + + @JsonProperty("FUEL_CNSMPRT") + private String fuelCnsmprt; + + @JsonProperty("ERSR_REG_SE_CD") + private String ersrRegSeCd; + + @JsonProperty("REG_DTL_CD") + private String regDtlCd; + + @JsonProperty("USGSRHLD_STDG_CD") + private String usgsrhldStdgCd; + + @JsonProperty("USGSRHLD_DONG_CD") + private String usgsrhldDongCd; + + @JsonProperty("USGSRHLD_MTN_YN") + private String usgsrhldMtnYn; + + @JsonProperty("USGSRHLD_LNBR") + private String usgsrhldLnbr; + + @JsonProperty("USGSRHLD_HO") + private String usgsrhldHo; + + @JsonProperty("USGSRHLD_ROAD_NM_CD") + private String usgsrhldRoadNmCd; + + @JsonProperty("USGSRHLD_UDGD_BLDG_SE_CD") + private String usgsrhldUdgdBldgSeCd; + + @JsonProperty("USGSRHLD_BMNO") + private String usgsrhldBmno; + + @JsonProperty("USGSRHLD_BSNO") + private String usgsrhldBsno; + + @JsonProperty("OWNR_DONG_CD") + private String ownrDongCd; + + @JsonProperty("OWNR_MTN_YN") + private String ownrMtnYn; + + @JsonProperty("OWNR_LNBR") + private String ownrLnbr; + + @JsonProperty("OWNR_HO") + private String ownrHo; + + @JsonProperty("OWNR_ADDR_NM") + private String ownrAddrNm; + + @JsonProperty("OWNR_ROAD_NM_CD") + private String ownrRoadNmCd; + + @JsonProperty("OWNR_UDGD_BLDG_SE_CD") + private String ownrUdgdBldgSeCd; + + @JsonProperty("OWNR_BMNO") + private String ownrBmno; + + @JsonProperty("OWNR_BSNO") + private String ownrBsno; + + @JsonProperty("REAR_VHRNO") + private String rearVhrno; + + @JsonProperty("USG_SE_CD") + private String usgSeCd; + + @JsonProperty("VEAG_END_YMD") + private String veagEndYmd; + + @JsonProperty("CHG_YMD") + private String chgYmd; + + @JsonProperty("CARMDL_SE_CD") + private String carmdlSeCd; + + @JsonProperty("CARMDL_TYPE_NM") + private String carmdlTypeNm; + + @JsonProperty("ACQS_YMD") + private String acqsYmd; + + @JsonProperty("ACQS_END_YMD") + private String acqsEndYmd; + + @JsonProperty("TRANSR_REG_YMD") + private String transrRegYmd; + + @JsonProperty("SPCF_REG_STTS_CD") + private String spcfRegSttsCd; + + @JsonProperty("SRC_SE_CD") + private String srcSeCd; + + @JsonProperty("NOPLT_SPCFCT_CD") + private String nopltSpcfctCd; + + @JsonProperty("ACQS_AMT") + private String acqsAmt; + + @JsonProperty("USGSRHLD_GRC_CD") + private String usgsrhldGrcCd; + + @JsonProperty("VLNT_ERSR_PRVNTC_AVTSMT_YMD") + private String vlntErsrPrvntcAvtsmtYmd; + + @JsonProperty("FRST_MXMM_LDG") + private String frstMxmmLdg; + + @JsonProperty("REG_YMD") + private String regYmd; + + @JsonProperty("ELCTY_CMPND_FUEL_CNSMPRT") + private String elctyCmpndFuelCnsmprt; + + @JsonProperty("USGSRHLD_WHOL_ADDR") + private String usgsrhldWholAddr; + + @JsonProperty("MRTG_CNT") + private String mrtgCnt; + + @JsonProperty("SZR_CNT") + private String szrCnt; + } + + + + + + } + + +} diff --git a/src/main/java/go/kr/project/biz/common/repository/CommonRepository.java b/src/main/java/go/kr/project/biz/common/repository/CommonQueryDslRepository.java similarity index 77% rename from src/main/java/go/kr/project/biz/common/repository/CommonRepository.java rename to src/main/java/go/kr/project/biz/common/repository/CommonQueryDslRepository.java index 0bda0ec..60437a1 100644 --- a/src/main/java/go/kr/project/biz/common/repository/CommonRepository.java +++ b/src/main/java/go/kr/project/biz/common/repository/CommonQueryDslRepository.java @@ -3,8 +3,6 @@ package go.kr.project.biz.common.repository; import com.querydsl.core.types.Projections; import com.querydsl.jpa.impl.JPAQueryFactory; import go.kr.project.biz.common.dto.CommonDto; -import go.kr.project.domain.entity.CpBdong; -import go.kr.project.domain.entity.CpViolation; import go.kr.project.vo.CpBdongVO; import go.kr.project.vo.CpCancelAnswerVO; import go.kr.project.vo.CpViolationVO; @@ -15,11 +13,12 @@ import java.util.List; import static go.kr.project.domain.entity.QCpBdong.cpBdong; import static go.kr.project.domain.entity.QCpCancelAnswer.cpCancelAnswer; +import static go.kr.project.domain.entity.QCpSetinfo.cpSetinfo; import static go.kr.project.domain.entity.QCpViolation.cpViolation; @Repository @RequiredArgsConstructor -public class CommonRepository { +public class CommonQueryDslRepository { private final JPAQueryFactory queryFactory; @@ -98,6 +97,35 @@ public class CommonRepository { return result; } + public Boolean isGateWay() { + String result = queryFactory + .select( + cpSetinfo.strValue1 + ) + .from(cpSetinfo) + .where( + cpSetinfo.id.codeName.eq("GATEWAY"), + cpSetinfo.id.groupCode.eq("YN"), + cpSetinfo.id.detailCode.eq("LOCAL") + ) + .fetchOne(); + + return "Y".equals(result); + } + + public String pairProjectIp() { + return queryFactory + .select( + cpSetinfo.strValue1 + ) + .from(cpSetinfo) + .where( + cpSetinfo.id.codeName.eq("GATEWAY"), + cpSetinfo.id.groupCode.eq("PAIR"), + cpSetinfo.id.detailCode.eq("LOCAL") + ) + .fetchOne(); + } } diff --git a/src/main/java/go/kr/project/biz/common/service/CommonService.java b/src/main/java/go/kr/project/biz/common/service/CommonService.java index 8b4e0c8..fc78032 100644 --- a/src/main/java/go/kr/project/biz/common/service/CommonService.java +++ b/src/main/java/go/kr/project/biz/common/service/CommonService.java @@ -1,6 +1,7 @@ package go.kr.project.biz.common.service; import go.kr.project.biz.common.dto.CommonDto; +import go.kr.project.biz.common.dto.WebClientCallDto; import org.springframework.stereotype.Service; import java.util.List; @@ -8,4 +9,5 @@ import java.util.List; public interface CommonService { CommonDto.Response.CodeResult findCode(CommonDto.Request commonDto); + WebClientCallDto.CarInfoResponse findCarInfo(String carNo, String mmDate); } diff --git a/src/main/java/go/kr/project/biz/common/service/impl/CommonServiceImpl.java b/src/main/java/go/kr/project/biz/common/service/impl/CommonServiceImpl.java index 6c7af1e..3efca41 100644 --- a/src/main/java/go/kr/project/biz/common/service/impl/CommonServiceImpl.java +++ b/src/main/java/go/kr/project/biz/common/service/impl/CommonServiceImpl.java @@ -1,33 +1,59 @@ package go.kr.project.biz.common.service.impl; import go.kr.project.biz.common.dto.CommonDto; -import go.kr.project.biz.common.repository.CommonRepository; +import go.kr.project.biz.common.dto.WebClientCallDto; +import go.kr.project.biz.common.repository.CommonQueryDslRepository; import go.kr.project.biz.common.service.CommonService; +import go.kr.project.domain.repo.cp.CpSetinfoRepository; import go.kr.project.vo.mapper.EntityVoMapper; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - @Service @RequiredArgsConstructor public class CommonServiceImpl implements CommonService { private final EntityVoMapper mapper; - private final CommonRepository commonRepository; + private final WebClientCall webClientCall; + private final CommonQueryDslRepository commonQueryDslRepository; + private final CpSetinfoRepository cpSetinfoRepository; @Override public CommonDto.Response.CodeResult findCode(CommonDto.Request commonDto) { return CommonDto.Response.CodeResult.builder() - .cpViolation(commonRepository.findViolationCode(commonDto)) - .cpBdong(commonRepository.findBdongCode()) - .cpCancelAnswer(commonRepository.findCancelAnswerCode(commonDto)) + .cpViolation(commonQueryDslRepository.findViolationCode(commonDto)) + .cpBdong(commonQueryDslRepository.findBdongCode()) + .cpCancelAnswer(commonQueryDslRepository.findCancelAnswerCode(commonDto)) .build(); } + @Override + public WebClientCallDto.CarInfoResponse findCarInfo(String mmCarno, String mmDate) { + + //게이트웨이 여부 조회 + boolean isGateWay = commonQueryDslRepository.isGateWay(); + + WebClientCallDto.CarInfoResponse resBody = new WebClientCallDto.CarInfoResponse(); + + //if 게이트웨이라면 자망호출 + if(isGateWay) { + resBody = webClientCall.carInfoCall(mmCarno, mmDate); + } else { + //else 게이트웨이 아니라면 페어 프로젝트 호출 + String pairProjectIp = commonQueryDslRepository.pairProjectIp(); + + + } + + + + + //결과받아서 후처리 + + return resBody; + } + diff --git a/src/main/java/go/kr/project/biz/common/service/impl/WebClientCall.java b/src/main/java/go/kr/project/biz/common/service/impl/WebClientCall.java new file mode 100644 index 0000000..bdcc64b --- /dev/null +++ b/src/main/java/go/kr/project/biz/common/service/impl/WebClientCall.java @@ -0,0 +1,64 @@ +package go.kr.project.biz.common.service.impl; + +import go.kr.project.biz.common.dto.WebClientCallDto; +import lombok.RequiredArgsConstructor; +import org.springframework.core.env.Environment; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Component; +import org.springframework.web.reactive.function.client.WebClient; +import reactor.core.publisher.Mono; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +@Component +@RequiredArgsConstructor +public class WebClientCall { + + private final Environment env; + private final WebClient webClient; + + public WebClientCallDto.CarInfoResponse carInfoCall(String mmCarno, String mmDate) { + + + WebClientCallDto.CarInfoRequest.BodyWrapper reqBody = WebClientCallDto.CarInfoRequest.BodyWrapper.builder() + .data( + Arrays.asList( + WebClientCallDto.CarInfoRequest.Body.builder() + .infoSysId("") + .infoSysIp("") + .sigunguCode("") + .cntcInfoCode("") + .chargerId("") + .chargerIp("") + .chargerNm("") + .record( + Arrays.asList( + WebClientCallDto.CarInfoRequest.IfBody.builder() + .vhrno(mmCarno) + .levyStdde(mmDate) + .build() + )) + .build()) + ) + .build(); + + String PROTOCOL = env.getProperty("car-info.protocol");; + String DOMAIN = env.getProperty("car-info.domain"); + String PORT = env.getProperty("car-info.port"); + String DIR = env.getProperty("car-info.path.basic"); + + Mono carInfoMono = webClient.post() + .uri(PROTOCOL + DOMAIN + PORT + DIR) + .contentType(MediaType.APPLICATION_JSON) + .accept(MediaType.APPLICATION_JSON) + .bodyValue(reqBody) + .retrieve() + .bodyToMono(WebClientCallDto.CarInfoResponse.class); + WebClientCallDto.CarInfoResponse res = carInfoMono.block(); + + + return res; + } +} diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 5d7a8ee..332623f 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -116,3 +116,27 @@ batch: error-archive-dir: d:/data/xit-framework/batch/zip/error-archive # ZIP 파일 에러 아카이브 디렉토리 error-extract-dir: d:/data/xit-framework/batch/zip/error-extract # ZIP 파일 에러 압축해제파일 디렉토리 (하위 :/yyyy/zip file name/) create-date-subdir-pattern: yyyy # yyyy, yyyyMM, yyyyMMdd 하위 디렉토리 구조 + + +car-info : + protocol: http:// + domain: 211.119.124.122 + port: :8440 + path: + basic: /api/test/carInfo/basic + +cover-info : + protocol: http:// + domain: 211.119.124.122 + port: :8440 + path: /api/test/coverInfo + + +texelse : + protocol: http:// + domain: 211.119.124.122 + port: :8440 + path: + lavy: /api/test/preLavy + match: /api/test/match + sunap: /api/test/sunap diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml index 8791278..c272be6 100644 --- a/src/main/resources/application-local.yml +++ b/src/main/resources/application-local.yml @@ -121,3 +121,27 @@ file: # error-archive-dir: d:/data/xit-framework/batch/zip/error-archive # ZIP 파일 에러 아카이브 디렉토리 # error-extract-dir: d:/data/xit-framework/batch/zip/error-extract # ZIP 파일 에러 압축해제파일 디렉토리 (하위 :/yyyy/zip file name/) # create-date-subdir-pattern: yyyy # yyyy, yyyyMM, yyyyMMdd 하위 디렉토리 구조 + + +car-info : + protocol: http:// + domain: 211.119.124.122 + port: :8440 + path: + basic: /api/test/carInfo/basic + +cover-info : + protocol: http:// + domain: 211.119.124.122 + port: :8440 + path: /api/test/coverInfo + + +texelse : + protocol: http:// + domain: 211.119.124.122 + port: :8440 + path: + lavy: /api/test/preLavy + match: /api/test/match + sunap: /api/test/sunap \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/biz/minwon/init/init_popup.jsp b/src/main/webapp/WEB-INF/views/biz/minwon/init/init_popup.jsp index 96b0dc4..f27787c 100644 --- a/src/main/webapp/WEB-INF/views/biz/minwon/init/init_popup.jsp +++ b/src/main/webapp/WEB-INF/views/biz/minwon/init/init_popup.jsp @@ -74,7 +74,7 @@
위반시간
- +
@@ -84,13 +84,13 @@
위반내용
- +
영상매체
- +
@@ -137,7 +137,7 @@
위반장소
- +
@@ -165,13 +165,13 @@
접수일
- +
답변기한
- +
@@ -185,10 +185,14 @@
차량번호
- + +
+
+
+
+
-
@@ -206,13 +210,13 @@
차량명
- +
차량색상
- +
@@ -222,7 +226,7 @@
연료구분
- +
@@ -359,20 +363,26 @@ console.log(response.data) $("#mmIngb").val(response.data.cpMain.mmIngb); $("#mmDlgb").val(response.data.cpMain.mmDlgb); - $("#mmLawgb").val(response.data.cpMain.mmLawgb); + $("#cpViolation").val(response.data.cpMain.mmLawgb).prop("selected", true); $("#mmKeum1").val(response.data.cpMain.mmKeum1); $("#mmKeum2").val(response.data.cpMain.mmKeum2); $("#mmSgcont").val(response.data.cpMain.mmSgcont); $("#mmSgnm").val(response.data.cpMain.mmSgnm); $("#mmSgtel").val(response.data.cpMain.mmSgtel); $("#mmDate").val(response.data.cpMain.mmDate); + $("#mmTime").val(response.data.cpMain.mmTime); + $("#mmSgpos").val(response.data.cpMain.mmSgpos); + $("#mmBdcode").val(response.data.cpMain.mmBdcode).prop("selected", true); + + $("#asBbsNo").val(response.data.cpAnswer.asBbsNo); $("#asState").val(response.data.cpAnswer.asState); $("#asStateDt").val(response.data.cpAnswer.asStateDt); - $("#asCell").val(response.data.cpAnswer.asCell); $("#asJsno").val(response.data.cpAnswer.asJsno); $("#asJsdate").val(response.data.cpAnswer.asJsdate); + $("#asLimitDt").val(response.data.cpAnswer.asLimitDt); + $("#mmCode").text(response.data.cpMain.mmCode.substring(5).replace(/^(\d{4})(.*)$/, '$1-$2')) @@ -430,7 +440,43 @@ response.cpCancelAnswer.forEach((item) => { $("#cpCancelAnswer").append('') }) + response.cpViolation.forEach((item) => { + $("#cpViolation").append('') + }) + + + INIT_POP_API.search(); + + }, + error: function(xhr, status, error) { + $("#result").text("조회 실패"); + } + }); + }, + + searchCarInfo: () => { + // 차량번호 위반일자 + let data = { + "mmCarno": $("#mmCarno").val(), + "mmDate": $("#mmDate").val() + } + + $.ajax({ + url: "/common/car/info/find.ajax", + type: "get", + data: data, + contentType: 'application/json', + success: function(response) { + console.log(response); + console.log(); + if(response.record.length == 0) { + alert("조회결과가 없습니다.") + return; + }; + $("#MTRS_FOM_NM").val(response.record[0].MTRS_FOM_NM) + $("#CNM").val(response.record[0].CNM) + $("#COLOR_NM").val(response.record[0].COLOR_NM) }, error: function(xhr, status, error) { $("#result").text("조회 실패"); @@ -538,6 +584,12 @@ + /** 차적조회 */ + $("#car-info").on("click", () => { + fnBiz.searchCarInfo(); + }) + + } } @@ -548,7 +600,6 @@ fnBiz.init(); - INIT_POP_API.search(); fnBiz.eventListener();