From a1a9a97616426c4878dbb97a1ead6535177f68f1 Mon Sep 17 00:00:00 2001 From: Kurt92 Date: Wed, 10 Dec 2025 18:12:50 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20=EC=82=AC=EC=A0=84=ED=86=B5=EB=B3=B4?= =?UTF-8?q?=20=ED=98=84=ED=99=A9=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PreNoticeSendTargetController.java | 2 +- .../dto/PreNoticeSendTargetDto.java | 21 ++++++++++ ...PreNoticeSendTargetQueryDslRepository.java | 7 +++- .../service/PreNoticeSendTargetService.java | 2 +- .../impl/PreNoticeSendTargetServiceImpl.java | 39 ++++++++++++++----- .../sendTarget/preNoticeSendTarget.jsp | 24 ++++++------ 6 files changed, 71 insertions(+), 24 deletions(-) diff --git a/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/controller/PreNoticeSendTargetController.java b/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/controller/PreNoticeSendTargetController.java index 0331d9e..b8986dd 100644 --- a/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/controller/PreNoticeSendTargetController.java +++ b/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/controller/PreNoticeSendTargetController.java @@ -45,7 +45,7 @@ public class PreNoticeSendTargetController { dto.setPagingYn("N"); // 리스트 조회 - List result = preNoticeSendTargetService.findPreNoticeSendTarget(dto); + List result = preNoticeSendTargetService.findPreNoticeSendTarget(dto); return ApiResponseUtil.successWithGrid(result, dto); } diff --git a/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/dto/PreNoticeSendTargetDto.java b/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/dto/PreNoticeSendTargetDto.java index 31d07ab..e15b14e 100644 --- a/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/dto/PreNoticeSendTargetDto.java +++ b/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/dto/PreNoticeSendTargetDto.java @@ -33,6 +33,7 @@ public class PreNoticeSendTargetDto { private CpMain cpMain; private CpAnswer cpAnswer; private CpOwner cpOwner; + private String vlId; } @Getter @@ -42,7 +43,27 @@ public class PreNoticeSendTargetDto { private CpMainVO cpMain; private CpAnswerVO cpAnswer; private CpOwnerVO cpOwner; + private String vlId; } + @Getter + @Setter + @Builder + public static class PreNoticeSendTargetFlat { + private String mmDlgb; + private String asBbsNo; + private String asJsdate; + private String mmSgnm; + private String mmSgtel; + private String vlId; + private String mmDate; + private String mmCarno; + private String omName; + private String omNogb; + private String omJno; + private String mmSgpos; + private String mmCode; + + } } } diff --git a/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/repository/PreNoticeSendTargetQueryDslRepository.java b/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/repository/PreNoticeSendTargetQueryDslRepository.java index 7a08114..6babf99 100644 --- a/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/repository/PreNoticeSendTargetQueryDslRepository.java +++ b/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/repository/PreNoticeSendTargetQueryDslRepository.java @@ -14,6 +14,7 @@ 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.QCpOwner.cpOwner; import static go.kr.project.domain.entity.QCpUser.cpUser; +import static go.kr.project.domain.entity.QCpViolation.cpViolation; @Repository @RequiredArgsConstructor @@ -32,13 +33,17 @@ public class PreNoticeSendTargetQueryDslRepository { PreNoticeSendTargetDto.Response.PreNoticeSendTargetEntities.class, cpMain, cpAnswer, - cpOwner + cpOwner, + cpViolation.vlId ) ) .from(cpMain) .leftJoin(cpAnswer).on(cpMain.mmCode.eq(cpAnswer.asMmcode)) .leftJoin(cpUser).on(cpAnswer.asReuser.eq(cpUser.umCode)) .leftJoin(cpOwner).on(cpMain.mmOmcode.eq(cpOwner.omCode)) + .innerJoin(cpViolation).on( + cpMain.mmLawgb.eq(cpViolation.id.vlCode), + cpMain.mmSggcode.eq(cpViolation.id.vlSggcode)) .where( // cpMain.mmSggcode.eq(dto.getMmSggcode()), cpMain.mmState.eq(MmStateEnum.VEHICLE_CHECKED.getCode()), diff --git a/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/service/PreNoticeSendTargetService.java b/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/service/PreNoticeSendTargetService.java index 7c6441d..2f379f7 100644 --- a/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/service/PreNoticeSendTargetService.java +++ b/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/service/PreNoticeSendTargetService.java @@ -5,5 +5,5 @@ import go.kr.project.biz.post.preNotice.sendTarget.dto.PreNoticeSendTargetDto; import java.util.List; public interface PreNoticeSendTargetService { - List findPreNoticeSendTarget(PreNoticeSendTargetDto.Request.Search dto); + List findPreNoticeSendTarget(PreNoticeSendTargetDto.Request.Search dto); } diff --git a/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/service/impl/PreNoticeSendTargetServiceImpl.java b/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/service/impl/PreNoticeSendTargetServiceImpl.java index 99ff1fc..65eadd2 100644 --- a/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/service/impl/PreNoticeSendTargetServiceImpl.java +++ b/src/main/java/go/kr/project/biz/post/preNotice/sendTarget/service/impl/PreNoticeSendTargetServiceImpl.java @@ -4,6 +4,10 @@ import go.kr.project.biz.minwon.init.dto.MinwonInitDto; import go.kr.project.biz.post.preNotice.sendTarget.dto.PreNoticeSendTargetDto; import go.kr.project.biz.post.preNotice.sendTarget.repository.PreNoticeSendTargetQueryDslRepository; import go.kr.project.biz.post.preNotice.sendTarget.service.PreNoticeSendTargetService; +import go.kr.project.vo.CpAnswerVO; +import go.kr.project.vo.CpMainVO; +import go.kr.project.vo.CpOwnerVO; +import go.kr.project.vo.code.MmDlgbEnum; import go.kr.project.vo.mapper.EntityVoMapper; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -19,18 +23,35 @@ public class PreNoticeSendTargetServiceImpl implements PreNoticeSendTargetServic private final PreNoticeSendTargetQueryDslRepository preNoticeSendTargetQueryDslRepository; @Override - public List findPreNoticeSendTarget(PreNoticeSendTargetDto.Request.Search dto) { + public List findPreNoticeSendTarget(PreNoticeSendTargetDto.Request.Search dto) { List list = preNoticeSendTargetQueryDslRepository.findPreNoticeSendTarget(dto); - List result = - list.stream().map(e -> - PreNoticeSendTargetDto.Response.PreNoticeSendTarget.builder() - .cpMain(mapper.toCpMainVO(e.getCpMain())) - .cpAnswer(mapper.toCpAnswerVO(e.getCpAnswer())) - .cpOwner(mapper.toCpOwnerVO(e.getCpOwner())) - .build() - ).collect(Collectors.toList()); + List result = + list.stream() + .map(e -> { + CpMainVO cpMainVO = mapper.toCpMainVO(e.getCpMain()); + CpAnswerVO cpAnswerVO = mapper.toCpAnswerVO(e.getCpAnswer()); + CpOwnerVO cpOwnerVO = mapper.toCpOwnerVO(e.getCpOwner()); + + return PreNoticeSendTargetDto.Response.PreNoticeSendTargetFlat.builder() + // 평탄화 필드 + .mmDlgb(MmDlgbEnum.getDescByCode(cpMainVO.getMmDlgb())) + .asBbsNo(cpMainVO.getMmBdcode()) + .asJsdate(cpAnswerVO.getAsJsdate()) + .mmSgnm(cpMainVO.getMmSgnm()) + .mmSgtel(cpMainVO.getMmSgtel()) + .vlId(e.getVlId()) + .mmDate(cpMainVO.getMmDate()) + .mmCarno(cpMainVO.getMmCarno()) + .omName(cpOwnerVO.getOmName()) + .omNogb(cpOwnerVO.getOmNOGb()) + .omJno(cpOwnerVO.getOmJno()) + .mmSgpos(cpMainVO.getMmSgpos()) + .mmCode(cpMainVO.getMmCode()) + .build(); + }) + .collect(Collectors.toList()); return result; } diff --git a/src/main/webapp/WEB-INF/views/biz/post/preNotice/sendTarget/preNoticeSendTarget.jsp b/src/main/webapp/WEB-INF/views/biz/post/preNotice/sendTarget/preNoticeSendTarget.jsp index f2035dd..724dc2a 100644 --- a/src/main/webapp/WEB-INF/views/biz/post/preNotice/sendTarget/preNoticeSendTarget.jsp +++ b/src/main/webapp/WEB-INF/views/biz/post/preNotice/sendTarget/preNoticeSendTarget.jsp @@ -216,18 +216,18 @@ /** tui-grid Set */ let initGrid = () => { const gridColumns = [ - {header: '등록구분', name: '', sortable: true, width: 50,}, - {header: '목록번호', name: '', sortable: true, width: 70,}, - {header: '접수일', name: '', sortable: true, width: 100,}, - {header: '신고자', name: '', sortable: true, width: 100,}, - {header: '담당자', name: '', width: 150,}, - {header: '위반내용', name: '', sortable: true, width: 70,}, - {header: '위반일시', name: '', sortable: true, width: 70,}, - {header: '차량번호', name: '', sortable: true, width: 150,}, - {header: '소유자', name: '', width: 150,}, - {header: '소유주구분', name: '', width: 50,}, - {header: '주민번호', name: '', width: 250,}, - {header: '위반장소', name: '', sortable: true, width: 150,}, + {header: '등록구분', name: 'mmDlgb', sortable: true, width: 100,}, + {header: '목록번호', name: 'asBbsNo', sortable: true, width: 100,}, + {header: '접수일', name: 'asJsdate', sortable: true, width: 100,}, + {header: '신고자', name: 'mmSgnm', sortable: true, width: 100,}, + {header: '담당자', name: 'mmSgtel', width: 100,}, + {header: '위반내용', name: 'vlId', sortable: true, width: 100,}, + {header: '위반일시', name: 'mmDate', sortable: true, width: 100,}, + {header: '차량번호', name: 'mmCarno', sortable: true, width: 150,}, + {header: '소유자', name: 'omName', width: 150,}, + {header: '소유주구분', name: 'omNogb', width: 100,}, + {header: '주민번호', name: 'omJno', width: 250,}, + {header: '위반장소', name: 'mmSgpos', sortable: true, width: 150,}, {header: 'mmCode', name: 'mmCode', sortable: true, width: 150, align: 'center', hidden: true} ]; let gridDatasource = {