Merge pull request 'kurt/kurt' (#31) from kurt/kurt into dev

Reviewed-on: http://211.119.124.110:3000/cjm/clean-parking/pulls/31
xithoon
cjm 1 week ago
commit e3d0ac0edf

@ -93,6 +93,7 @@ dependencies {
// ===== ===== // ===== =====
// - MVC, REST, // - MVC, REST,
implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-webflux'
// - JPA // - JPA
implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
// - Bean Validation API // - Bean Validation API

@ -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();
}
}

@ -7,6 +7,8 @@ import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute; 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; import java.util.List;
@ -33,9 +35,9 @@ public class CommonContorller {
* *
*/ */
@GetMapping("/common/car/info/find.ajax") @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));
} }
/** /**

@ -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<Body> 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<IfBody> 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<CarInfoIfBody> 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;
}
}
}

@ -3,8 +3,6 @@ package go.kr.project.biz.common.repository;
import com.querydsl.core.types.Projections; import com.querydsl.core.types.Projections;
import com.querydsl.jpa.impl.JPAQueryFactory; import com.querydsl.jpa.impl.JPAQueryFactory;
import go.kr.project.biz.common.dto.CommonDto; 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.CpBdongVO;
import go.kr.project.vo.CpCancelAnswerVO; import go.kr.project.vo.CpCancelAnswerVO;
import go.kr.project.vo.CpViolationVO; 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.QCpBdong.cpBdong;
import static go.kr.project.domain.entity.QCpCancelAnswer.cpCancelAnswer; 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; import static go.kr.project.domain.entity.QCpViolation.cpViolation;
@Repository @Repository
@RequiredArgsConstructor @RequiredArgsConstructor
public class CommonRepository { public class CommonQueryDslRepository {
private final JPAQueryFactory queryFactory; private final JPAQueryFactory queryFactory;
@ -98,6 +97,35 @@ public class CommonRepository {
return result; 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();
}
} }

@ -1,6 +1,7 @@
package go.kr.project.biz.common.service; package go.kr.project.biz.common.service;
import go.kr.project.biz.common.dto.CommonDto; import go.kr.project.biz.common.dto.CommonDto;
import go.kr.project.biz.common.dto.WebClientCallDto;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
@ -8,4 +9,5 @@ import java.util.List;
public interface CommonService { public interface CommonService {
CommonDto.Response.CodeResult findCode(CommonDto.Request commonDto); CommonDto.Response.CodeResult findCode(CommonDto.Request commonDto);
WebClientCallDto.CarInfoResponse findCarInfo(String carNo, String mmDate);
} }

@ -1,33 +1,59 @@
package go.kr.project.biz.common.service.impl; package go.kr.project.biz.common.service.impl;
import go.kr.project.biz.common.dto.CommonDto; 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.biz.common.service.CommonService;
import go.kr.project.domain.repo.cp.CpSetinfoRepository;
import go.kr.project.vo.mapper.EntityVoMapper; import go.kr.project.vo.mapper.EntityVoMapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class CommonServiceImpl implements CommonService { public class CommonServiceImpl implements CommonService {
private final EntityVoMapper mapper; private final EntityVoMapper mapper;
private final CommonRepository commonRepository; private final WebClientCall webClientCall;
private final CommonQueryDslRepository commonQueryDslRepository;
private final CpSetinfoRepository cpSetinfoRepository;
@Override @Override
public CommonDto.Response.CodeResult findCode(CommonDto.Request commonDto) { public CommonDto.Response.CodeResult findCode(CommonDto.Request commonDto) {
return CommonDto.Response.CodeResult.builder() return CommonDto.Response.CodeResult.builder()
.cpViolation(commonRepository.findViolationCode(commonDto)) .cpViolation(commonQueryDslRepository.findViolationCode(commonDto))
.cpBdong(commonRepository.findBdongCode()) .cpBdong(commonQueryDslRepository.findBdongCode())
.cpCancelAnswer(commonRepository.findCancelAnswerCode(commonDto)) .cpCancelAnswer(commonQueryDslRepository.findCancelAnswerCode(commonDto))
.build(); .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;
}

@ -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<WebClientCallDto.CarInfoResponse> 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;
}
}

@ -116,3 +116,27 @@ batch:
error-archive-dir: d:/data/xit-framework/batch/zip/error-archive # ZIP 파일 에러 아카이브 디렉토리 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/) error-extract-dir: d:/data/xit-framework/batch/zip/error-extract # ZIP 파일 에러 압축해제파일 디렉토리 (하위 :/yyyy/zip file name/)
create-date-subdir-pattern: yyyy # yyyy, yyyyMM, yyyyMMdd 하위 디렉토리 구조 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

@ -121,3 +121,27 @@ file:
# error-archive-dir: d:/data/xit-framework/batch/zip/error-archive # ZIP 파일 에러 아카이브 디렉토리 # 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/) # error-extract-dir: d:/data/xit-framework/batch/zip/error-extract # ZIP 파일 에러 압축해제파일 디렉토리 (하위 :/yyyy/zip file name/)
# create-date-subdir-pattern: yyyy # yyyy, yyyyMM, yyyyMMdd 하위 디렉토리 구조 # 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

@ -74,7 +74,7 @@
<div class="field-group"> <div class="field-group">
<div class="lbl">위반시간</div> <div class="lbl">위반시간</div>
<div class="fld"> <div class="fld">
<input type="text" name="cpMain" data-field="mmLawgb" id="mmLawgb" value="" readonly> <input type="text" name="cpMain" data-field="mmTime" id="mmTime" value="" readonly>
</div> </div>
</div> </div>
</div> </div>
@ -84,13 +84,13 @@
<div class="field-group"> <div class="field-group">
<div class="lbl">위반내용</div> <div class="lbl">위반내용</div>
<div class="fld"> <div class="fld">
<input type="text" name="cpMain" data-field="mmSgnm" id="mmSgnm" value="" readonly> <select name="cpViolation" id="cpViolation"></select>
</div> </div>
</div> </div>
<div class="field-group"> <div class="field-group">
<div class="lbl">영상매체</div> <div class="lbl">영상매체</div>
<div class="fld"> <div class="fld">
<input type="text" name="cpAnswer" data-field="asCell" id="asCell" value="" readonly> <input type="text" name="cpAnswer" data-field="" id="" value="" readonly>
</div> </div>
</div> </div>
</div> </div>
@ -137,7 +137,7 @@
<div class="field-group full"> <div class="field-group full">
<div class="lbl">위반장소</div> <div class="lbl">위반장소</div>
<div class="fld"> <div class="fld">
<input type="text" data-field="" id="" value="" readonly> <input type="text" data-field="mmSgpos" id="mmSgpos" value="" readonly>
</div> </div>
</div> </div>
</div> </div>
@ -165,13 +165,13 @@
<div class="field-group"> <div class="field-group">
<div class="lbl">접수일</div> <div class="lbl">접수일</div>
<div class="fld"> <div class="fld">
<input type="text" name="cpAnswer" data-field="asJsno" id="asJsno" value="" readonly> <input type="text" name="cpAnswer" data-field="asJsdate" id="asJsdate" value="" readonly>
</div> </div>
</div> </div>
<div class="field-group"> <div class="field-group">
<div class="lbl">답변기한</div> <div class="lbl">답변기한</div>
<div class="fld"> <div class="fld">
<input type="text" name="cpAnswer" data-field="asJsno" id="asJsno" value="" readonly> <input type="text" name="cpAnswer" data-field="asLimitDt" id="asLimitDt" value="" readonly>
</div> </div>
</div> </div>
</div> </div>
@ -185,10 +185,14 @@
<div class="field-group"> <div class="field-group">
<div class="lbl">차량번호</div> <div class="lbl">차량번호</div>
<div class="fld"> <div class="fld">
<input type="text" name="cpAnswer" data-field="" id="" value="" readonly> <input type="text" name="cpMain" data-field="" id="mmCarno" value="">
</div>
</div>
<div class="field-group">
<div class="fld">
<button type="button" class="btn btn-light" name="changeSt" id="car-info">차적조회</button>
</div> </div>
</div> </div>
<div class="field-group empty"></div>
</div> </div>
<!-- 11줄: 특기사항 (textarea, 한 줄 전체) --> <!-- 11줄: 특기사항 (textarea, 한 줄 전체) -->
@ -206,13 +210,13 @@
<div class="field-group"> <div class="field-group">
<div class="lbl">차량명</div> <div class="lbl">차량명</div>
<div class="fld"> <div class="fld">
<input type="text" data-field="" value="" > <input type="text" data-field="" id="CNM" value="" >
</div> </div>
</div> </div>
<div class="field-group"> <div class="field-group">
<div class="lbl">차량색상</div> <div class="lbl">차량색상</div>
<div class="fld"> <div class="fld">
<input type="text" data-field="" value="" > <input type="text" data-field="" id="COLOR_NM" value="" >
</div> </div>
</div> </div>
</div> </div>
@ -222,7 +226,7 @@
<div class="field-group"> <div class="field-group">
<div class="lbl">연료구분</div> <div class="lbl">연료구분</div>
<div class="fld"> <div class="fld">
<input type="text" data-field="" value="" > <input type="text" data-field="" id="MTRS_FOM_NM" value="" >
</div> </div>
</div> </div>
<div class="field-group empty"></div> <div class="field-group empty"></div>
@ -359,20 +363,26 @@
console.log(response.data) console.log(response.data)
$("#mmIngb").val(response.data.cpMain.mmIngb); $("#mmIngb").val(response.data.cpMain.mmIngb);
$("#mmDlgb").val(response.data.cpMain.mmDlgb); $("#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); $("#mmKeum1").val(response.data.cpMain.mmKeum1);
$("#mmKeum2").val(response.data.cpMain.mmKeum2); $("#mmKeum2").val(response.data.cpMain.mmKeum2);
$("#mmSgcont").val(response.data.cpMain.mmSgcont); $("#mmSgcont").val(response.data.cpMain.mmSgcont);
$("#mmSgnm").val(response.data.cpMain.mmSgnm); $("#mmSgnm").val(response.data.cpMain.mmSgnm);
$("#mmSgtel").val(response.data.cpMain.mmSgtel); $("#mmSgtel").val(response.data.cpMain.mmSgtel);
$("#mmDate").val(response.data.cpMain.mmDate); $("#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); $("#asBbsNo").val(response.data.cpAnswer.asBbsNo);
$("#asState").val(response.data.cpAnswer.asState); $("#asState").val(response.data.cpAnswer.asState);
$("#asStateDt").val(response.data.cpAnswer.asStateDt); $("#asStateDt").val(response.data.cpAnswer.asStateDt);
$("#asCell").val(response.data.cpAnswer.asCell); $("#asCell").val(response.data.cpAnswer.asCell);
$("#asJsno").val(response.data.cpAnswer.asJsno); $("#asJsno").val(response.data.cpAnswer.asJsno);
$("#asJsdate").val(response.data.cpAnswer.asJsdate); $("#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')) $("#mmCode").text(response.data.cpMain.mmCode.substring(5).replace(/^(\d{4})(.*)$/, '$1-$2'))
@ -430,7 +440,43 @@
response.cpCancelAnswer.forEach((item) => { response.cpCancelAnswer.forEach((item) => {
$("#cpCancelAnswer").append('<option value="' +item.caCode+'">' +item.caId+ '</option>') $("#cpCancelAnswer").append('<option value="' +item.caCode+'">' +item.caId+ '</option>')
}) })
response.cpViolation.forEach((item) => {
$("#cpViolation").append('<option value="' +item.vlCode+'">' +item.vlId+ '</option>')
})
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) { error: function(xhr, status, error) {
$("#result").text("조회 실패"); $("#result").text("조회 실패");
@ -538,6 +584,12 @@
/** 차적조회 */
$("#car-info").on("click", () => {
fnBiz.searchCarInfo();
})
} }
} }
@ -548,7 +600,6 @@
fnBiz.init(); fnBiz.init();
INIT_POP_API.search();
fnBiz.eventListener(); fnBiz.eventListener();

Loading…
Cancel
Save