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 c364e86..679320b 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 @@ -3,12 +3,14 @@ package go.kr.project.biz.common.controller; import go.kr.project.biz.common.dto.CommonDto; import go.kr.project.biz.common.dto.WebClientCallDto; import go.kr.project.biz.common.service.CommonService; +import go.kr.project.biz.minwon.init.dto.MinwonInitDto; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Map; @Controller @RequiredArgsConstructor @@ -20,7 +22,7 @@ public class CommonContorller { * 위반항목, 법정동, 미부과사유 코드 조회 */ @GetMapping("/common/code/find.ajax") - public ResponseEntity getCode(@ModelAttribute CommonDto.Request commonDto) { + public ResponseEntity getCode(@ModelAttribute CommonDto.Request.Code commonDto) { CommonDto.Response.CodeResult result = commonService.findCode(commonDto); @@ -41,13 +43,13 @@ public class CommonContorller { /** * 차적조회 후 저장 */ - @PutMapping("/common/car/info/{mmCode}/update.ajax") - public ResponseEntity updateCarInfo(@PathVariable String mmCode, @RequestBody WebClientCallDto.CarInfoResponse.CarInfoIfBody carInfoIfBody) { - - commonService.updateCarInfoFromCpMain(mmCode, carInfoIfBody); - - return ResponseEntity.ok("Success"); - } +// @PutMapping("/common/car/info/{mmCode}/update.ajax") +// public ResponseEntity updateCarInfo(@PathVariable String mmCode, @RequestBody WebClientCallDto.CarInfoResponse.CarInfoIfBody carInfoIfBody) { +// +// commonService.updateCarInfoFromCpMain(mmCode, carInfoIfBody); +// +// return ResponseEntity.ok("Success"); +// } @@ -61,7 +63,19 @@ public class CommonContorller { return ResponseEntity.ok(commonService.findCoverInfo(carNo)); } + /** + * 처리상태 변경 + * */ + @PutMapping("/common/update/{mmCode}/{state}/state.ajax") + public ResponseEntity test(@PathVariable String mmCode, + @PathVariable String state, + @RequestBody Map req) + { + + commonService.updateState(mmCode, state, req); + return ResponseEntity.ok("수정되었습니다"); + } } diff --git a/src/main/java/go/kr/project/biz/common/dto/CommonDto.java b/src/main/java/go/kr/project/biz/common/dto/CommonDto.java index 55c0099..bb95558 100644 --- a/src/main/java/go/kr/project/biz/common/dto/CommonDto.java +++ b/src/main/java/go/kr/project/biz/common/dto/CommonDto.java @@ -2,6 +2,7 @@ package go.kr.project.biz.common.dto; import go.kr.project.vo.CpBdongVO; import go.kr.project.vo.CpCancelAnswerVO; +import go.kr.project.vo.CpInstructAnswerVO; import go.kr.project.vo.CpViolationVO; import lombok.Builder; import lombok.Getter; @@ -11,13 +12,19 @@ import java.util.List; public class CommonDto { - @Getter - @Setter + public static class Request { - private String sggCode; - private String jobGroup; - private String code; + @Getter + @Setter + public static class Code { + private String sggCode; + private String jobGroup; + private String code; + } + + + } @@ -37,6 +44,7 @@ public class CommonDto { private List cpViolation; private List cpBdong; private List cpCancelAnswer; + private List cpInstructAnswer; } diff --git a/src/main/java/go/kr/project/biz/common/repository/CommonQueryDslRepository.java b/src/main/java/go/kr/project/biz/common/repository/CommonQueryDslRepository.java index b7f8a0b..d468b4c 100644 --- a/src/main/java/go/kr/project/biz/common/repository/CommonQueryDslRepository.java +++ b/src/main/java/go/kr/project/biz/common/repository/CommonQueryDslRepository.java @@ -7,6 +7,7 @@ import go.kr.project.biz.common.dto.WebClientCallDto; import go.kr.project.domain.entity.CpOwner; import go.kr.project.vo.CpBdongVO; import go.kr.project.vo.CpCancelAnswerVO; +import go.kr.project.vo.CpInstructAnswerVO; import go.kr.project.vo.CpViolationVO; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; @@ -18,6 +19,7 @@ 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.QCpInstructAnswer.cpInstructAnswer; import static go.kr.project.domain.entity.QCpMain.cpMain; import static go.kr.project.domain.entity.QCpOwner.cpOwner; import static go.kr.project.domain.entity.QCpSetinfo.cpSetinfo; @@ -31,7 +33,7 @@ public class CommonQueryDslRepository { private final JPAQueryFactory queryFactory; - public List findViolationCode(CommonDto.Request commonDto) { + public List findViolationCode(CommonDto.Request.Code commonDto) { commonDto.setSggCode("41590"); commonDto.setJobGroup("1"); @@ -82,7 +84,7 @@ public class CommonQueryDslRepository { return result; } - public List findCancelAnswerCode(CommonDto.Request commonDto) { + public List findCancelAnswerCode(CommonDto.Request.Code commonDto) { commonDto.setSggCode("41590"); @@ -104,6 +106,25 @@ public class CommonQueryDslRepository { return result; } + public List findInstructAnswer(CommonDto.Request.Code commonDto) { + + commonDto.setSggCode("41590"); + + List result = queryFactory + .select( + Projections.fields( + CpInstructAnswerVO.class, + cpInstructAnswer.id.iaSggcode, + cpInstructAnswer.id.iaCode, + cpInstructAnswer.iaId + ) + ) + .from(cpInstructAnswer) + .where(cpInstructAnswer.id.iaSggcode.eq(commonDto.getSggCode())) + .fetch(); + + return result; + } /** CpMain 차적조회 결과 업데이트 */ 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 a36dd48..bb909df 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 @@ -5,15 +5,17 @@ import go.kr.project.biz.common.dto.WebClientCallDto; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Map; public interface CommonService { - CommonDto.Response.CodeResult findCode(CommonDto.Request commonDto); + CommonDto.Response.CodeResult findCode(CommonDto.Request.Code commonDto); WebClientCallDto.CarInfoResponse findCarInfo(String carNo, String mmDate); - void updateCarInfoFromCpMain(String mmCode, WebClientCallDto.CarInfoResponse.CarInfoIfBody carInfoIfBody); +// void updateCarInfoFromCpMain(String mmCode, WebClientCallDto.CarInfoResponse.CarInfoIfBody carInfoIfBody); Boolean findCoverInfo(String carNo) throws Exception; + void updateState(String reqMmCode, String reqState, Map req); } 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 eb747ea..96d62b4 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,5 +1,7 @@ package go.kr.project.biz.common.service.impl; +import com.fasterxml.jackson.databind.ObjectMapper; +import egovframework.util.DtoConverter; import go.kr.project.biz.common.dto.CommonDto; import go.kr.project.biz.common.dto.WebClientCallDto; import go.kr.project.biz.common.repository.CommonQueryDslRepository; @@ -11,6 +13,7 @@ import go.kr.project.domain.entity.CpSetinfoId; import go.kr.project.domain.repo.cp.CpMainhistRepository; import go.kr.project.domain.repo.cp.CpOwnerRepository; import go.kr.project.domain.repo.cp.CpSetinfoRepository; +import go.kr.project.vo.code.MmStateEnum; import go.kr.project.vo.mapper.EntityVoMapper; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -18,6 +21,7 @@ import org.springframework.stereotype.Service; import javax.transaction.Transactional; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.Map; import java.util.Optional; @Service @@ -25,21 +29,25 @@ import java.util.Optional; public class CommonServiceImpl implements CommonService { private final EntityVoMapper mapper; - private final WebClientCall webClientCall; + private final DtoConverter dtoConverter; + private final WebClientCallService webClientCallService; + private final UpdateStateService updateStateService; + - private final CpOwnerRepository cpOwnerRepository; - private final CpMainhistRepository cpMainhistRepository; private final CommonQueryDslRepository commonQueryDslRepository; private final CpSetinfoRepository cpSetinfoRepository; @Override - public CommonDto.Response.CodeResult findCode(CommonDto.Request commonDto) { + public CommonDto.Response.CodeResult findCode(CommonDto.Request.Code commonDto) { + + // todo: 추후 코드값이 추가되서 너무 무거워지면 분리 예정. return CommonDto.Response.CodeResult.builder() .cpViolation(commonQueryDslRepository.findViolationCode(commonDto)) .cpBdong(commonQueryDslRepository.findBdongCode()) .cpCancelAnswer(commonQueryDslRepository.findCancelAnswerCode(commonDto)) + .cpInstructAnswer(commonQueryDslRepository.findInstructAnswer(commonDto)) .build(); } @@ -51,45 +59,10 @@ public class CommonServiceImpl implements CommonService { //게이트웨이가 아니라면 해당 변수에 null이 들어간다. String pairProjectIp = commonQueryDslRepository.pairProjectIp(); - return webClientCall.carInfoCall(mmCarno, mmDate, pairProjectIp); + return webClientCallService.carInfoCall(mmCarno, mmDate, pairProjectIp); } - @Override - @Transactional - public void updateCarInfoFromCpMain(String mmCode, WebClientCallDto.CarInfoResponse.CarInfoIfBody carInfoIfBody) { - - long maxOmCode = Long.parseLong(commonQueryDslRepository.findMaxOmCode()); - - // owner 인서트 - CpOwner cpOwner = CpOwner.builder() - .omCode(String.valueOf(maxOmCode + 1)) -// .omSggcode() - .omName(carInfoIfBody.getMberNm()) - .omNo1(carInfoIfBody.getMberSeNo().substring(0,6)) - .omJno(carInfoIfBody.getMberSeNo()) - .omNOGb(carInfoIfBody.getMberSeCode()) - .omJuso(carInfoIfBody.getUsgsrhldAdresFull()) - .omBunji(carInfoIfBody.getOwnerLnbr()) - .omZip(carInfoIfBody.getUseStrnghldBuldMainNo()) - .omDoroCode(carInfoIfBody.getOwnerRoadNmCode()) - .omBldPosition(carInfoIfBody.getUsgsrhldUndgrndBuldSeCode()) - .omBldNo1(carInfoIfBody.getUseStrnghldBuldMainNo()) - .omBldNo2(carInfoIfBody.getUseStrnghldBuldSubNo()) -// .omBldAdmno() - .omIngb(carInfoIfBody.getErsrRegistSeCode()) - .omIndt(carInfoIfBody.getTransrRegistDe()) - .build(); - cpOwnerRepository.save(cpOwner); - - // main 업데이트 - commonQueryDslRepository.updateCarinfoFromCpMain(mmCode, cpOwner, carInfoIfBody); - // main hist 인서트 - StateChangeHistSaveToMainHist("21", mmCode); - - - - } /** 표지조회 */ @Override @@ -99,41 +72,50 @@ public class CommonServiceImpl implements CommonService { new CpSetinfoId("COVER_INFO_IP", "0", "0")) .orElseThrow(() -> new Exception("표지조회 연계작업이 되어있지 않은 서버입니다.")); - return webClientCall.CoverInfoCall(cpSetinfo, carNo); + return webClientCallService.CoverInfoCall(cpSetinfo, carNo); } + /** 상태 업데이트 */ + @Override + public void updateState(String mmCode, String state, Map req) { + + //Enum으로 변환 + MmStateEnum stateEnum = MmStateEnum.fromCode(state); + + switch(stateEnum) { + case VEHICLE_CHECKED: + updateStateService.updateCarInfoFromCpMain(mmCode, dtoConverter.toStrictDto(req, WebClientCallDto.CarInfoResponse.CarInfoIfBody.class)); + break; + case DESTRUCTION_DOC: + break; + case GUIDANCE: + break; + case GUIDANCE_PROCESSED: + break; + + case PRE_NOTICE: + break; + case IMPOSITION_CANCEL: + break; + + case DEMAND: + break; + + case DESTRUCTION_DOC_DELETE: + break; + case STATEMENT_DELETE: + break; + case DELETED: + break; + } + } - public void StateChangeHistSaveToMainHist(String mmState, String mmCode) { - - - Optional prevOpt = cpMainhistRepository.findTopByMhMmcodeOrderByMhIndtDesc(mmCode); - - CpMainhist prevCpMainHist = prevOpt.orElse(null); - - String mhStateOld = null; - String mhStateOldDt = null; - - if (prevCpMainHist != null) { - mhStateOld = prevCpMainHist.getMhStateNew(); - mhStateOldDt = prevCpMainHist.getMhIndt(); - } - CpMainhist cpMainhist = CpMainhist.builder() - .mhMmcode(mmCode) - .mhStateOld(mhStateOld) - .mhStateOldDt(mhStateOldDt) - .mhStateNew(mmState) - .mhIndt(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))) - /** todo : 세션에 있는 inuser 세팅*/ -// .mhInuser() - .build(); - cpMainhistRepository.save(cpMainhist); - } } diff --git a/src/main/java/go/kr/project/biz/common/service/impl/UpdateStateService.java b/src/main/java/go/kr/project/biz/common/service/impl/UpdateStateService.java new file mode 100644 index 0000000..3c6675b --- /dev/null +++ b/src/main/java/go/kr/project/biz/common/service/impl/UpdateStateService.java @@ -0,0 +1,95 @@ +package go.kr.project.biz.common.service.impl; + +import go.kr.project.biz.common.dto.WebClientCallDto; +import go.kr.project.biz.common.repository.CommonQueryDslRepository; +import go.kr.project.domain.entity.CpMainhist; +import go.kr.project.domain.entity.CpOwner; +import go.kr.project.domain.repo.cp.CpMainhistRepository; +import go.kr.project.domain.repo.cp.CpOwnerRepository; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Optional; + +@Service +@RequiredArgsConstructor +@Slf4j +public class UpdateStateService { + + private final CommonQueryDslRepository commonQueryDslRepository; + + private final CpOwnerRepository cpOwnerRepository; + private final CpMainhistRepository cpMainhistRepository; + + @Transactional + public void updateCarInfoFromCpMain(String mmCode, WebClientCallDto.CarInfoResponse.CarInfoIfBody carInfoIfBody) { + + long maxOmCode = Long.parseLong(commonQueryDslRepository.findMaxOmCode()); + + // owner 인서트 + CpOwner cpOwner = CpOwner.builder() + .omCode(String.valueOf(maxOmCode + 1)) +// .omSggcode() + .omName(carInfoIfBody.getMberNm()) + .omNo1(carInfoIfBody.getMberSeNo().substring(0,6)) + .omJno(carInfoIfBody.getMberSeNo()) + .omNOGb(carInfoIfBody.getMberSeCode()) + .omJuso(carInfoIfBody.getUsgsrhldAdresFull()) + .omBunji(carInfoIfBody.getOwnerLnbr()) + .omZip(carInfoIfBody.getUseStrnghldBuldMainNo()) + .omDoroCode(carInfoIfBody.getOwnerRoadNmCode()) + .omBldPosition(carInfoIfBody.getUsgsrhldUndgrndBuldSeCode()) + .omBldNo1(carInfoIfBody.getUseStrnghldBuldMainNo()) + .omBldNo2(carInfoIfBody.getUseStrnghldBuldSubNo()) +// .omBldAdmno() + .omIngb(carInfoIfBody.getErsrRegistSeCode()) + .omIndt(carInfoIfBody.getTransrRegistDe()) + .build(); + cpOwnerRepository.save(cpOwner); + + // main 업데이트 + commonQueryDslRepository.updateCarinfoFromCpMain(mmCode, cpOwner, carInfoIfBody); + + // main hist 인서트 + StateChangeHistSaveToMainHist("21", mmCode); + + + } + + public void StateChangeHistSaveToMainHist(String mmState, String mmCode) { + + Optional prevOpt = cpMainhistRepository.findTopByMhMmcodeOrderByMhIndtDesc(mmCode); + + CpMainhist prevCpMainHist = prevOpt.orElse(null); + + String mhStateOld = null; + String mhStateOldDt = null; + + if (prevCpMainHist != null) { + mhStateOld = prevCpMainHist.getMhStateNew(); + mhStateOldDt = prevCpMainHist.getMhIndt(); + } + + CpMainhist cpMainhist = CpMainhist.builder() + .mhMmcode(mmCode) + .mhStateOld(mhStateOld) + .mhStateOldDt(mhStateOldDt) + .mhStateNew(mmState) + .mhIndt(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))) + /** todo : 세션에 있는 inuser 세팅*/ +// .mhInuser() + .build(); + cpMainhistRepository.save(cpMainhist); + + + } + + + + + +} 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/WebClientCallService.java similarity index 97% rename from src/main/java/go/kr/project/biz/common/service/impl/WebClientCall.java rename to src/main/java/go/kr/project/biz/common/service/impl/WebClientCallService.java index d0d97bc..7792d7d 100644 --- a/src/main/java/go/kr/project/biz/common/service/impl/WebClientCall.java +++ b/src/main/java/go/kr/project/biz/common/service/impl/WebClientCallService.java @@ -10,14 +10,11 @@ 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; -import java.util.Optional; @Component @RequiredArgsConstructor -public class WebClientCall { +public class WebClientCallService { private final Environment env; private final WebClient webClient; diff --git a/src/main/java/go/kr/project/biz/minwon/init/controller/MinwonInitController.java b/src/main/java/go/kr/project/biz/minwon/init/controller/MinwonInitController.java index 813e029..09aec4b 100644 --- a/src/main/java/go/kr/project/biz/minwon/init/controller/MinwonInitController.java +++ b/src/main/java/go/kr/project/biz/minwon/init/controller/MinwonInitController.java @@ -63,10 +63,6 @@ public class MinwonInitController { return ApiResponseUtil.successWithGrid(result, dto); } - @PostMapping("/postman/test") - public ResponseEntity test(@RequestBody MinwonInitDto.Request.Test test) { - return ResponseEntity.ok(minwonInitService.insertSometing(test)); - } } diff --git a/src/main/java/go/kr/project/biz/totalInfo/controller/TotalInfoController.java b/src/main/java/go/kr/project/biz/totalInfo/controller/TotalInfoController.java index 404c3af..1c44dfe 100644 --- a/src/main/java/go/kr/project/biz/totalInfo/controller/TotalInfoController.java +++ b/src/main/java/go/kr/project/biz/totalInfo/controller/TotalInfoController.java @@ -74,14 +74,7 @@ public class TotalInfoController { } -// @PostMapping("/total/info/{mmCode}/{state}/state.ajax") -// public ResponseEntity updateMinwonState(@PathVariable String mmCode, @PathVariable String state) { -// -// totalInfoService.updateState(mmCode, state); -// -// return ApiResponseUtil.success("수정되었습니다."); -// -// } + } 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 6c6367e..756314f 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 @@ -324,12 +324,9 @@
- + - - -
@@ -349,6 +346,7 @@ +
@@ -452,7 +450,9 @@ response.cpViolation.forEach((item) => { $("#cpViolation").append('') }) - + response.cpInstructAnswer.forEach((item) => { + $("#cpInstructAnswer").append('') + }) INIT_POP_API.search(); @@ -564,7 +564,7 @@ console.log("!!!!!!!!!!!!!",CAR_INFO) $.ajax({ - url: `/common/car/info/\${cursor}/update.ajax`, + url: `/common/update/\${cursor}/21/update.ajax`, type: "PUT", data: JSON.stringify(CAR_INFO[0]), contentType: "application/json", @@ -631,10 +631,15 @@ $("#photoDialog").dialog("open"); }); + /** 미부과처리 버튼 클릭 - 다이얼로그 오픈 */ $("#non-target").on("click", () => { $("#destruction_doc_dialog").dialog("open"); }) + /** 계도처리 버튼 클릭 - 다이얼로그 오픈 */ + $("#guidance").on("click", () => { + $("#guidance_dialog").dialog("open"); + }) @@ -653,7 +658,6 @@ return false; } - // 오너 테이블 인서트 diff --git a/src/main/webapp/WEB-INF/views/biz/totalInfo/totalInfo_popup.jsp b/src/main/webapp/WEB-INF/views/biz/totalInfo/totalInfo_popup.jsp index 017467a..7f2acc4 100644 --- a/src/main/webapp/WEB-INF/views/biz/totalInfo/totalInfo_popup.jsp +++ b/src/main/webapp/WEB-INF/views/biz/totalInfo/totalInfo_popup.jsp @@ -11,44 +11,43 @@
- - -
-
-
-
개별 총정보
-
- Double Click 민원원본보기 - -
+
+
+
개별 총정보
+
+ Double Click 민원원본보기 +
+
- -
- <%-- 부모창에서 받아오는 리스트 배열 --%> - - <%-- 부모창에서 받아오는 리스크 커서 --%> - - <%-- 개별총정보 상태값 --%> - - -
- 0of 0 -
- + + + +
+ <%-- 부모창에서 받아오는 리스트 배열 --%> + + <%-- 부모창에서 받아오는 리스크 커서 --%> + + <%-- 개별총정보 상태값 --%> + + +
+ 0of 0
- + +
+
@@ -62,13 +61,15 @@
등록구분
- +
자료출처
- +
@@ -78,13 +79,15 @@
위반일시
- +
위반내용
- +
@@ -94,13 +97,15 @@
신고자
- +
연락처
- +
@@ -110,7 +115,8 @@
담당자
- +
@@ -126,7 +132,8 @@
신고내용
- +
@@ -142,7 +149,8 @@
접수번호
- +
@@ -152,13 +160,15 @@
접수일자
- +
목록번호
- +
@@ -179,13 +189,15 @@
사진등록금액
- +
부과금액
- +
@@ -195,7 +207,7 @@
감액금액
- +
@@ -214,14 +226,21 @@
-
+
+
+ +
+
특기사항
- + + <%-- --%>
+
@@ -230,13 +249,15 @@
처리상태일시
- +
처리상태
- +
@@ -246,13 +267,13 @@
차량명
- +
차량색상
- +
@@ -262,7 +283,7 @@
연료구분
- +
@@ -279,13 +300,13 @@
소유주
- +
등록구분
- +
@@ -295,13 +316,13 @@
주민번호
- +
우편번호
- +
@@ -311,7 +332,7 @@
주소
- +
@@ -321,13 +342,13 @@
번지
- +
차대번호
- +
@@ -337,7 +358,7 @@
도로코드
- +
@@ -358,7 +379,8 @@
- 미리보기 + 미리보기
@@ -384,36 +406,29 @@ - - + -
- 의견진술 -
-
- 세부내역 -
-
- 부과이후 -
-
- 민원내역 +
+ 의견진술 +
+
+ 세부내역 +
+
+ 부과이후 +
+
+ 민원내역 +
- -<%----%> -<%----%>