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 ee20725..c364e86 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 @@ -56,9 +56,9 @@ public class CommonContorller { * 표지조회 */ @GetMapping("/cover/info/find.ajax") - public ResponseEntity findCoverInfo() { + public ResponseEntity findCoverInfo(@RequestParam String carNo) throws Exception { - return ResponseEntity.ok("aaa"); + return ResponseEntity.ok(commonService.findCoverInfo(carNo)); } 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 index d0b2d53..f641dbd 100644 --- a/src/main/java/go/kr/project/biz/common/dto/WebClientCallDto.java +++ b/src/main/java/go/kr/project/biz/common/dto/WebClientCallDto.java @@ -77,6 +77,12 @@ public class WebClientCallDto { } + public static class CoverRequest { + + } + + + @Getter @Setter @AllArgsConstructor @@ -358,9 +364,19 @@ public class WebClientCallDto { +// @Getter +// @Setter +// @AllArgsConstructor +// @NoArgsConstructor +// @Builder +// public static class CoverInfoResponse { +// +// } } + + } 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 057d8fa..b7f8a0b 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 @@ -12,6 +12,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import javax.persistence.LockModeType; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.List; import static go.kr.project.domain.entity.QCpBdong.cpBdong; @@ -107,22 +109,26 @@ public class CommonQueryDslRepository { /** CpMain 차적조회 결과 업데이트 */ public void updateCarinfoFromCpMain(String mmCode, CpOwner cpOwner, WebClientCallDto.CarInfoResponse.CarInfoIfBody carInfoIfBody) { - queryFactory.update(cpMain) + long resultCnt = queryFactory.update(cpMain) .set(cpMain.mmCarno, carInfoIfBody.getVhrno()) - .set(cpMain.mmVhmno, "") - .set(cpMain.mmCargb, "") - .set(cpMain.mmCarkind, "") + .set(cpMain.mmVhmno, carInfoIfBody.getVin()) + .set(cpMain.mmCargb, carInfoIfBody.getVhctySeCode()) + .set(cpMain.mmCarkind, carInfoIfBody.getVhctyAsortCode()) .set(cpMain.mmOmcode, cpOwner.getOmCode()) - .set(cpMain.mmCarkind, "") - .set(cpMain.mmState, "") - .set(cpMain.mmStateDt, "") - .set(cpMain.mmViorcnt, "") - .set(cpMain.mmCarname, "") + .set(cpMain.mmState, "21") + .set(cpMain.mmStateDt, LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))) +// .set(cpMain.mmViorcnt, "위반횟수") + .set(cpMain.mmCarname, carInfoIfBody.getCnm()) + .set(cpMain.mmCarcheck, "1") .where( cpMain.mmCode.eq(mmCode) ) .execute(); + + if (resultCnt == 0) { + throw new IllegalStateException("cp_main 업데이트 대상이 없습니다. mmCode=" + mmCode); + } } 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 cdef86e..a36dd48 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 @@ -12,4 +12,8 @@ public interface CommonService { WebClientCallDto.CarInfoResponse findCarInfo(String carNo, String mmDate); void updateCarInfoFromCpMain(String mmCode, WebClientCallDto.CarInfoResponse.CarInfoIfBody carInfoIfBody); + + Boolean findCoverInfo(String carNo) throws Exception; + + } 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 7c91e0b..eb747ea 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 @@ -4,7 +4,11 @@ import go.kr.project.biz.common.dto.CommonDto; 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.entity.CpMainhist; import go.kr.project.domain.entity.CpOwner; +import go.kr.project.domain.entity.CpSetinfo; +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.mapper.EntityVoMapper; @@ -12,6 +16,9 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import javax.transaction.Transactional; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Optional; @Service @RequiredArgsConstructor @@ -21,6 +28,7 @@ public class CommonServiceImpl implements CommonService { private final WebClientCall webClientCall; private final CpOwnerRepository cpOwnerRepository; + private final CpMainhistRepository cpMainhistRepository; private final CommonQueryDslRepository commonQueryDslRepository; private final CpSetinfoRepository cpSetinfoRepository; @@ -50,9 +58,11 @@ public class CommonServiceImpl implements CommonService { @Transactional public void updateCarInfoFromCpMain(String mmCode, WebClientCallDto.CarInfoResponse.CarInfoIfBody carInfoIfBody) { + long maxOmCode = Long.parseLong(commonQueryDslRepository.findMaxOmCode()); + // owner 인서트 CpOwner cpOwner = CpOwner.builder() - .omCode(commonQueryDslRepository.findMaxOmCode() + 1) + .omCode(String.valueOf(maxOmCode + 1)) // .omSggcode() .omName(carInfoIfBody.getMberNm()) .omNo1(carInfoIfBody.getMberSeNo().substring(0,6)) @@ -75,10 +85,54 @@ public class CommonServiceImpl implements CommonService { commonQueryDslRepository.updateCarinfoFromCpMain(mmCode, cpOwner, carInfoIfBody); // main hist 인서트 + StateChangeHistSaveToMainHist("21", mmCode); + + + + } + + /** 표지조회 */ + @Override + public Boolean findCoverInfo(String carNo) throws Exception { + + CpSetinfo cpSetinfo = cpSetinfoRepository.findById( + new CpSetinfoId("COVER_INFO_IP", "0", "0")) + .orElseThrow(() -> new Exception("표지조회 연계작업이 되어있지 않은 서버입니다.")); + + return webClientCall.CoverInfoCall(cpSetinfo, carNo); + } + + + 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/WebClientCall.java index d4b144a..d0d97bc 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/WebClientCall.java @@ -1,8 +1,10 @@ package go.kr.project.biz.common.service.impl; import go.kr.project.biz.common.dto.WebClientCallDto; +import go.kr.project.domain.entity.CpSetinfo; import lombok.RequiredArgsConstructor; import org.springframework.core.env.Environment; +import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.stereotype.Component; import org.springframework.web.reactive.function.client.WebClient; @@ -11,6 +13,7 @@ import reactor.core.publisher.Mono; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Optional; @Component @RequiredArgsConstructor @@ -46,9 +49,9 @@ public class WebClientCall { // pair or gateway set String PROTOCOL = env.getProperty("car-info.protocol"); - String DOMAIN = pairProjectIp == null ? env.getProperty("car-info.domain") : pairProjectIp; - String PORT = pairProjectIp == null ? env.getProperty("car-info.port") : ""; - String DIR = pairProjectIp == null ? env.getProperty("car-info.path.basic") : "/common/car/info/find.ajax"; + String DOMAIN = pairProjectIp != null ? env.getProperty("car-info.domain") : pairProjectIp; + String PORT = pairProjectIp != null ? env.getProperty("car-info.port") : ""; + String DIR = pairProjectIp != null ? env.getProperty("car-info.path.basic") : "/common/car/info/find.ajax"; Mono carInfoMono = webClient.post() .uri(PROTOCOL + DOMAIN + PORT + DIR) @@ -62,4 +65,50 @@ public class WebClientCall { return res; } + + public Boolean CoverInfoCall(CpSetinfo cpSetinfo, String carNo) { + + String soapXml = String.format( + "\n" + + "\n" + + " \n" + + " \n" + + " DisabledParkingYnService\n" + + " ESBTEST\n" + + " SVR1311000030\n" + + " 2010111020382700773722611\n" + + " 1234567\n" + + " 김공무\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " %s\n" + + " %s\n" + + " %s\n" + + " \n" + + " \n" + + "", + cpSetinfo.getStrValue7(), cpSetinfo.getStrValue8(), carNo + ); + + String PROTOCOL = env.getProperty("cover-info.protocol"); + String DOMAIN = env.getProperty("cover-info.domain"); + String PORT = env.getProperty("cover-info.port"); + String DIR = env.getProperty("cover-info.path"); + + + String response = webClient.post() + .uri(PROTOCOL + DOMAIN + PORT + DIR) + .header(HttpHeaders.CONTENT_TYPE, "text/xml; charset=UTF-8") + .bodyValue(soapXml) + .retrieve() + .bodyToMono(String.class) + .block(); + + + return true; + } + } 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 7e02b9a..813e029 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 @@ -45,11 +45,6 @@ public class MinwonInitController { return "biz/minwon/init/init_popup" + TilesConstants.POPUP; } - @PostMapping("/car-info") - public String carInfo(){ - - return null; - } @PostMapping("/minwon/init/list.ajax") diff --git a/src/main/java/go/kr/project/biz/minwon/init/dto/MinwonInitDto.java b/src/main/java/go/kr/project/biz/minwon/init/dto/MinwonInitDto.java index b1ed0e3..9eb347b 100644 --- a/src/main/java/go/kr/project/biz/minwon/init/dto/MinwonInitDto.java +++ b/src/main/java/go/kr/project/biz/minwon/init/dto/MinwonInitDto.java @@ -48,9 +48,10 @@ public class MinwonInitDto { private String mmDate; //위반일자 private String mmImagegb; //첨부 private int mmImagecnt; //사진 - private String mmSgcont; //위반내용 + private String mmLawgb; //위반항목 private String asJsno; //접수번호 private String mmCarno; //차량번호 + private String vlId; //차량번호 private String mmCode; } diff --git a/src/main/java/go/kr/project/biz/minwon/init/repository/MinwonInitQueryDslRepository.java b/src/main/java/go/kr/project/biz/minwon/init/repository/MinwonInitQueryDslRepository.java index 6846124..d911432 100644 --- a/src/main/java/go/kr/project/biz/minwon/init/repository/MinwonInitQueryDslRepository.java +++ b/src/main/java/go/kr/project/biz/minwon/init/repository/MinwonInitQueryDslRepository.java @@ -10,6 +10,7 @@ import java.util.List; import static go.kr.project.domain.entity.QCpAnswer.cpAnswer; import static go.kr.project.domain.entity.QCpMain.cpMain; +import static go.kr.project.domain.entity.QCpViolation.cpViolation; @Repository @RequiredArgsConstructor @@ -27,20 +28,25 @@ public class MinwonInitQueryDslRepository { cpAnswer.asBbsNo, cpAnswer.asUser, cpMain.mmSgtel, + cpMain.mmSgnm, cpAnswer.asTel, cpAnswer.asJsdate, cpAnswer.asLimitDt, cpMain.mmDate, cpMain.mmImagegb, cpMain.mmImagecnt, - cpMain.mmSgcont, + cpMain.mmLawgb, cpAnswer.asJsno, cpMain.mmCarno, + cpViolation.vlId, cpMain.mmCode ) ) .from(cpMain) .innerJoin(cpAnswer).on(cpMain.mmCode.eq(cpAnswer.asMmcode)) + .innerJoin(cpViolation).on( + cpMain.mmLawgb.eq(cpViolation.id.vlCode), + cpMain.mmSggcode.eq(cpViolation.id.vlSggcode)) .where( cpMain.mmState.eq("01"), cpMain.mmDlgb.eq("2") diff --git a/src/main/java/go/kr/project/biz/minwon/init/service/impl/MinwonInitServiceImpl.java b/src/main/java/go/kr/project/biz/minwon/init/service/impl/MinwonInitServiceImpl.java index 865579d..a623dec 100644 --- a/src/main/java/go/kr/project/biz/minwon/init/service/impl/MinwonInitServiceImpl.java +++ b/src/main/java/go/kr/project/biz/minwon/init/service/impl/MinwonInitServiceImpl.java @@ -28,7 +28,6 @@ public class MinwonInitServiceImpl implements MinwonInitService { // Enum Desc 변환 result.forEach(item -> { item.setMmDlgb(MmDlgbEnum.getDescByCode(item.getMmDlgb())); - //item. (MmDlgbEnum.getDescByCode(item.getMmDlgb())); }); 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 38ade26..404c3af 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,14 @@ 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("수정되었습니다."); - - } +// @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.jsp b/src/main/webapp/WEB-INF/views/biz/minwon/init/init.jsp index 7ad88b9..b71f2ae 100644 --- a/src/main/webapp/WEB-INF/views/biz/minwon/init/init.jsp +++ b/src/main/webapp/WEB-INF/views/biz/minwon/init/init.jsp @@ -168,19 +168,19 @@ /** tui-grid Set */ let initGrid = () => { const gridColumns = [ - {header: '등록구분', name: 'mmDlgb', sortable: true, width: 50,}, - {header: '목록번호', name: 'asBbsNo', sortable: true, width: 70,}, + {header: '등록구분', name: 'mmDlgb', sortable: true, width: 100,}, + {header: '목록번호', name: 'asBbsNo', sortable: true, width: 100,}, {header: '신고자', name: 'mmSgnm', sortable: true, width: 100,}, {header: '담당자', name: 'mmSgtel', sortable: true, width: 100,}, {header: '전화번호', name: 'asTel', width: 150,}, - {header: '접수일자', name: 'asJsdate', sortable: true, width: 70,}, - {header: '처리기한', name: 'asLimitDt', sortable: true, width: 70,}, - {header: '위반일자', name: 'mmDate', sortable: true, width: 150,}, - {header: '첨부', name: 'mmImagegb', width: 150,}, - {header: '사진갯수', name: 'mmImagecnt', width: 50,}, - {header: '위반내용', name: 'mmSgcont', width: 250,}, - {header: '접수번호', name: 'asJsno', sortable: true, width: 150,}, + {header: '접수일자', name: 'asJsdate', sortable: true, width: 120,}, + {header: '처리기한', name: 'asLimitDt', sortable: true, width: 120,}, + {header: '위반일자', name: 'mmDate', sortable: true, width: 120,}, {header: '차량번호', name: 'mmCarno', sortable: true, width: 150,}, + {header: '첨부', name: 'mmImagegb', width: 50,}, + {header: '사진', name: 'mmImagecnt', width: 50,}, + {header: '위반내용', name: 'vlId', width: 250,}, + {header: '접수번호', name: 'asJsno', sortable: true, width: 150,}, {header: 'mmCode', name: 'mmCode', sortable: true, width: 150, align: 'center', hidden: true} ]; let gridDatasource = { 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 85dd79e..6c6367e 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 @@ -320,7 +320,7 @@ -
+
@@ -355,7 +355,7 @@ <%----%> <%----%>