feat : 계도 발송대상, 계도현황 페이지 추가
parent
670f86f55b
commit
5fa4b73ddd
@ -0,0 +1,51 @@
|
||||
package go.kr.project.biz.post.guide.sendTarget.controller;
|
||||
|
||||
import egovframework.constant.TilesConstants;
|
||||
import egovframework.util.ApiResponseUtil;
|
||||
import go.kr.project.biz.post.guide.sendTarget.dto.GuideSendTargetDto;
|
||||
import go.kr.project.biz.post.guide.sendTarget.service.GuideSendTargetService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
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 java.util.List;
|
||||
|
||||
@Controller
|
||||
@RequiredArgsConstructor
|
||||
public class GuideSendTargetController {
|
||||
|
||||
private final GuideSendTargetService guideSendTargetService;
|
||||
|
||||
|
||||
/**
|
||||
* 발송/반송 > 계도장 > 계도장 대상 목록 페이지
|
||||
* @return 뷰 경로
|
||||
*/
|
||||
@GetMapping("post/guide/sendTarget/guideSendTarget.do")
|
||||
public String guideSendTargetView() {
|
||||
|
||||
return "biz/post/guide/sendTarget/guideSendTarget" + TilesConstants.BASE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@PostMapping("/post/guide/sendTarget/sendTargetList.ajax")
|
||||
public ResponseEntity<?> getGuideSendTargetListAjax(@ModelAttribute GuideSendTargetDto.Request.Search dto) {
|
||||
|
||||
// 총 게시물 수 조회
|
||||
int totalCount = 0;
|
||||
dto.setTotalCount(totalCount);
|
||||
|
||||
// 페이징 처리를 위한 설정
|
||||
dto.setPagingYn("N");
|
||||
|
||||
// 리스트 조회
|
||||
List<GuideSendTargetDto.Response.GuideSendTargetFlat> result = guideSendTargetService.findPreNoticeSendTarget(dto);
|
||||
|
||||
return ApiResponseUtil.successWithGrid(result, dto);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,69 @@
|
||||
package go.kr.project.biz.post.guide.sendTarget.dto;
|
||||
|
||||
import go.kr.project.domain.entity.CpAnswer;
|
||||
import go.kr.project.domain.entity.CpMain;
|
||||
import go.kr.project.domain.entity.CpOwner;
|
||||
import go.kr.project.system.common.model.PagingVO;
|
||||
import go.kr.project.vo.CpAnswerVO;
|
||||
import go.kr.project.vo.CpMainVO;
|
||||
import go.kr.project.vo.CpOwnerVO;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
public class GuideSendTargetDto {
|
||||
|
||||
public static class Request {
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public static class Search extends PagingVO {
|
||||
private String mmSggcode;
|
||||
private String searchLawgb;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static class Response {
|
||||
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public static class GuideSendTargetEntities {
|
||||
private CpMain cpMain;
|
||||
private CpAnswer cpAnswer;
|
||||
private CpOwner cpOwner;
|
||||
private String vlId;
|
||||
}
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
public static class GuideSendTarget {
|
||||
private CpMainVO cpMain;
|
||||
private CpAnswerVO cpAnswer;
|
||||
private CpOwnerVO cpOwner;
|
||||
private String vlId;
|
||||
}
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
public static class GuideSendTargetFlat {
|
||||
|
||||
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;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,57 @@
|
||||
package go.kr.project.biz.post.guide.sendTarget.repository;
|
||||
|
||||
import com.querydsl.core.types.Projections;
|
||||
import com.querydsl.jpa.impl.JPAQueryFactory;
|
||||
import go.kr.project.biz.post.guide.sendTarget.dto.GuideSendTargetDto;
|
||||
import go.kr.project.vo.code.MmStateEnum;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static go.kr.project.domain.entity.QCpAnswer.cpAnswer;
|
||||
import static go.kr.project.domain.entity.QCpInstruct.cpInstruct;
|
||||
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
|
||||
public class GuideSendTargetQueryDslRepository {
|
||||
|
||||
private final JPAQueryFactory queryFactory;
|
||||
|
||||
|
||||
|
||||
public List<GuideSendTargetDto.Response.GuideSendTargetEntities> findGuideSendTarget(GuideSendTargetDto.Request.Search dto) {
|
||||
|
||||
|
||||
List<GuideSendTargetDto.Response.GuideSendTargetEntities> result = queryFactory
|
||||
.select(
|
||||
Projections.fields(
|
||||
GuideSendTargetDto.Response.GuideSendTargetEntities.class,
|
||||
cpMain,
|
||||
cpAnswer,
|
||||
cpOwner,
|
||||
cpViolation.vlId
|
||||
)
|
||||
)
|
||||
.from(cpMain)
|
||||
.leftJoin(cpAnswer).on(cpMain.mmCode.eq(cpAnswer.asMmcode))
|
||||
.leftJoin(cpInstruct).on(cpMain.mmCode.eq(cpInstruct.itMmcode))
|
||||
.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.mmState.eq(MmStateEnum.GUIDANCE.getCode()),
|
||||
cpMain.mmLawgb.eq(dto.getSearchLawgb())
|
||||
)
|
||||
.orderBy(cpMain.mmCarno.asc(), cpMain.mmDate.asc(), cpMain.mmTime.asc())
|
||||
.fetch();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
package go.kr.project.biz.post.guide.sendTarget.service;
|
||||
|
||||
import go.kr.project.biz.post.guide.sendTarget.dto.GuideSendTargetDto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface GuideSendTargetService {
|
||||
List<GuideSendTargetDto.Response.GuideSendTargetFlat> findPreNoticeSendTarget(GuideSendTargetDto.Request.Search dto);
|
||||
}
|
||||
@ -0,0 +1,57 @@
|
||||
package go.kr.project.biz.post.guide.sendTarget.service.impl;
|
||||
|
||||
import go.kr.project.biz.post.guide.sendTarget.dto.GuideSendTargetDto;
|
||||
import go.kr.project.biz.post.guide.sendTarget.repository.GuideSendTargetQueryDslRepository;
|
||||
import go.kr.project.biz.post.guide.sendTarget.service.GuideSendTargetService;
|
||||
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;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class GuideSendTargetServiceImpl implements GuideSendTargetService {
|
||||
|
||||
private final EntityVoMapper mapper;
|
||||
private final GuideSendTargetQueryDslRepository guideSendTargetQueryDslRepository;
|
||||
|
||||
@Override
|
||||
public List<GuideSendTargetDto.Response.GuideSendTargetFlat> findPreNoticeSendTarget(GuideSendTargetDto.Request.Search dto) {
|
||||
|
||||
List<GuideSendTargetDto.Response.GuideSendTargetEntities> list = guideSendTargetQueryDslRepository.findGuideSendTarget(dto);
|
||||
|
||||
List<GuideSendTargetDto.Response.GuideSendTargetFlat> result =
|
||||
list.stream()
|
||||
.map(e -> {
|
||||
CpMainVO cpMainVO = mapper.toCpMainVO(e.getCpMain());
|
||||
CpAnswerVO cpAnswerVO = mapper.toCpAnswerVO(e.getCpAnswer());
|
||||
CpOwnerVO cpOwnerVO = mapper.toCpOwnerVO(e.getCpOwner());
|
||||
|
||||
return GuideSendTargetDto.Response.GuideSendTargetFlat.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;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
package go.kr.project.biz.post.preNotice.status.dto;
|
||||
|
||||
import go.kr.project.system.common.model.PagingVO;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
public class PreNoticeStatusDto {
|
||||
|
||||
public static class Request {
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public static class Search extends PagingVO {
|
||||
private String mmSggcode;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static class Response {
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public static class DailyStatus {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
<%--
|
||||
Created by IntelliJ IDEA.
|
||||
User: kurt
|
||||
Date: 2025. 12. 12.
|
||||
Time: 오후 3:56
|
||||
To change this template use File | Settings | File Templates.
|
||||
--%>
|
||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<html>
|
||||
<head>
|
||||
<title>Title</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Reference in New Issue