diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/AdminConfigController.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/AdminConfigController.java index 9f36621..ce6b294 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/AdminConfigController.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/AdminConfigController.java @@ -1,6 +1,7 @@ package com.dbnt.kcscbackend.admin.config; import com.dbnt.kcscbackend.admin.config.entity.TcMenu; +import com.dbnt.kcscbackend.admin.config.model.CreateCommitteeCodeManagementVO; import com.dbnt.kcscbackend.admin.config.service.AdminCommitteeCodeManagementService; import com.dbnt.kcscbackend.admin.standardResearch.service.AdminStandardResearchService; import com.dbnt.kcscbackend.commonCode.entity.TcCodeGrp; @@ -402,4 +403,46 @@ public class AdminConfigController extends BaseController { return resultVO; } + + @Operation( + summary = "'위원회 코드 관리' 페이지에서 위원회 코드 추가하는 API", + description = "관리자 단에서 '환경설정' > '위원회코드 관리' 페이지에서 +(추가) 버튼으로 항목 추가하는 API", + tags = {"AdminConfigController"} + ) + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "조회 성공"), + @ApiResponse(responseCode = "303", description = "만료된 토큰"), + @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") + }) + @PostMapping(value = "/committee-code-management") + public ResultVO createCommitteeCodeManagement( + @AuthenticationPrincipal LoginVO user, + HttpServletRequest request, + CreateCommitteeCodeManagementVO createCommitteeCodeManagementVO + ) throws Exception { + + ResultVO resultVO = new ResultVO(); + if(user == null) { + resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode()); + } else { + try { + resultVO = adminCommitteeCodeManagementService.createCommitteeCodeManagement(resultVO, request, user, createCommitteeCodeManagementVO); + } catch (Exception e) { + resultVO.setResultCode(ResponseCode.FAILED.getCode()); + resultVO.setResultMessage(e.getMessage()); + } + } + + System.out.println( + "\n--------------------------------------------------------------\n" + + request.getRequestURI() + " OUT:" + + "\n--------------------------------------------------------------\n" + + "resultVO.toString():" + "\n" + + resultVO.toString() + "\n" + + "\n--------------------------------------------------------------\n" + ); + + return resultVO; + } + } diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/model/CreateCommitteeCodeManagementVO.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/model/CreateCommitteeCodeManagementVO.java index b3fca59..93c8af8 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/model/CreateCommitteeCodeManagementVO.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/model/CreateCommitteeCodeManagementVO.java @@ -1,2 +1,34 @@ -package com.dbnt.kcscbackend.admin.config.model;public class CreateCommitteeCodeManagementVO { +package com.dbnt.kcscbackend.admin.config.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.Setter; +import lombok.ToString; + +import java.io.Serializable; + +@ApiModel(value = "CreateCommitteeCodeManagementVO", description = + "관리자 단에서 '환경설정' > '위원회코드 관리' 페이지에서 +(추가) 버튼으로 항목 추가하는 API에 사용된다." + "" +) +@RequiredArgsConstructor +@Getter +@Setter +@ToString +public class CreateCommitteeCodeManagementVO implements Serializable { + private static final long serialVersionUID = -603047540959527181L; + + @ApiModelProperty(value = "현재 등록하고 있는 항목의 level이 들어간다. '중앙건설기술심의'인 경우, LV_01이다. '총괄위원회'인 경우, LV_02이다. 이런 식으로 값이 들어간다.") + private String paramCodeLevel; + + @ApiModelProperty(value = "현재 등록하고 있는 항목의 상위 코드 값이 들어간다. '중앙건설기술심의'인 경우, 값이 00이다. 하지만 tn_cmt_org table에 cmt_seq 값이 00인 레코드는 존재하지 않는다.") + private String paramOrgId; + + @ApiModelProperty(value = "명칭") + private String paramOrgNm; + + @ApiModelProperty(value = "위원회 설명") + private String paramOrgDesc; + } diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/service/AdminCommitteeCodeManagementService.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/service/AdminCommitteeCodeManagementService.java index 7e6ae13..4d83564 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/service/AdminCommitteeCodeManagementService.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/service/AdminCommitteeCodeManagementService.java @@ -1,5 +1,6 @@ package com.dbnt.kcscbackend.admin.config.service; +import com.dbnt.kcscbackend.admin.config.model.CreateCommitteeCodeManagementVO; import com.dbnt.kcscbackend.admin.standardResearch.model.CreateStandardResearchVO; import com.dbnt.kcscbackend.admin.standardResearch.model.UpdateStandardResearchVO; import com.dbnt.kcscbackend.auth.entity.LoginVO; @@ -12,7 +13,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest; import javax.servlet.http.HttpServletRequest; public interface AdminCommitteeCodeManagementService { - public ResultVO createCommitteeCodeManagement(ResultVO resultVO, HttpServletRequest request, LoginVO user, final MultipartHttpServletRequest multiRequest, CreateStandardResearchVO createStandardResearchVO) throws Exception; + public ResultVO createCommitteeCodeManagement(ResultVO resultVO, HttpServletRequest request, LoginVO user, CreateCommitteeCodeManagementVO createCommitteeCodeManagementVO) throws Exception; public ResultVO getCommitteeCodeManagement(ResultVO resultVO, HttpServletRequest request, LoginVO user, Long upCmtSeq, String cmtType) throws Exception; public ResultVO setCommitteeCodeManagement(ResultVO resultVO, HttpServletRequest request, LoginVO user, UpdateStandardResearchVO updateStandardResearchVO, Long popupId) throws Exception; public ResultVO deleteCommitteeCodeManagement(ResultVO resultVO, HttpServletRequest request, LoginVO user, Long popupId) throws Exception; diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/service/impl/AdminCommitteeCodeManagementServiceImpl.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/service/impl/AdminCommitteeCodeManagementServiceImpl.java index 60b0f01..5970a59 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/service/impl/AdminCommitteeCodeManagementServiceImpl.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/config/service/impl/AdminCommitteeCodeManagementServiceImpl.java @@ -1,5 +1,6 @@ package com.dbnt.kcscbackend.admin.config.service.impl; +import com.dbnt.kcscbackend.admin.config.model.CreateCommitteeCodeManagementVO; import com.dbnt.kcscbackend.admin.config.service.AdminCommitteeCodeManagementService; import com.dbnt.kcscbackend.admin.standardResearch.model.CreateStandardResearchVO; import com.dbnt.kcscbackend.admin.standardResearch.model.UpdateStandardResearchVO; @@ -28,28 +29,68 @@ public class AdminCommitteeCodeManagementServiceImpl extends EgovAbstractService private final TnCmtOrgRepository tnCmtOrgRepository; @Override - public ResultVO createCommitteeCodeManagement(ResultVO resultVO, HttpServletRequest request, LoginVO user, MultipartHttpServletRequest multiRequest, CreateStandardResearchVO createStandardResearchVO) throws Exception { - return null; + public ResultVO createCommitteeCodeManagement(ResultVO resultVO, HttpServletRequest request, LoginVO user, CreateCommitteeCodeManagementVO createCommitteeCodeManagementVO) throws Exception { + System.out.println( + "\n--------------------------------------------------------------\n" + + request.getRequestURI() + " IN:" + + "\n--------------------------------------------------------------\n" + + "user.getEmail():" + "\n" + + user.getEmail() + "\n" + + "\n--------------------------------------------------------------\n" + ); + + // 아래 null로 전달 되는 부분 확인하기. + // 유효성 검사 실시 + if(createCommitteeCodeManagementVO.getParamCodeLevel().trim().isEmpty()) { + throw new Exception("오류가 발생했습니다. 시스템 담당자에게 문의 바랍니다. paramCodeLevel is empty."); + } + Integer upCmtSeq = null; + if( createCommitteeCodeManagementVO.getParamOrgId().trim().equals("00") == false ) { // 00은 '중앙건설기술심의' 항목의 부모 sequnce이다. 그러나 DB에 실제 00이란 sequence는 존재하지 않는다. + upCmtSeq = Integer.parseInt(createCommitteeCodeManagementVO.getParamOrgId()); + } + + Map response = tnCmtOrgRepository.spAddTnCmtOrg( + createCommitteeCodeManagementVO.getParamOrgNm(), // 위원회 이름 + createCommitteeCodeManagementVO.getParamCodeLevel(), // 위원회 등급 + createCommitteeCodeManagementVO.getParamOrgDesc(), // 위원회 설명 + upCmtSeq, // 상위 위원회 sequence + 1, // 정렬 순서 + user.getId(), + null, + null, + null, + null + ); + + Map dto = new HashMap(); + dto.put("id", response.get("_cmt_seq") ); + + resultVO.setResult(dto); + resultVO.setResultCode(ResponseCode.SUCCESS.getCode()); + resultVO.setResultMessage(ResponseCode.SUCCESS.getMessage()); + + return resultVO; } @Override public ResultVO getCommitteeCodeManagement(ResultVO resultVO, HttpServletRequest request, LoginVO user, Long upCmtSeq, String cmtType) throws Exception { System.out.println( - "\n--------------------------------------------------------------\n" + - request.getRequestURI() + " IN:" + - "\n--------------------------------------------------------------\n" + - "user.getEmail():" + "\n" + - user.getEmail() + "\n" + - "\n--------------------------------------------------------------\n" + "\n--------------------------------------------------------------\n" + + request.getRequestURI() + " IN:" + + "\n--------------------------------------------------------------\n" + + "user.getEmail():" + "\n" + + user.getEmail() + "\n" + + "\n--------------------------------------------------------------\n" ); List> list = tnCmtOrgRepository.findByUseYnAndUpCmtSeqAndCmtTypeOrderByCmtOrder("Y", upCmtSeq, cmtType).stream() .map(item -> { Map returnMap = new HashMap<>(); - returnMap.put("orgId", item.getCmtSeq()); - returnMap.put("orgNm", item.getCmtNm()); - returnMap.put("orgDesc", item.getCmtDesc()); + returnMap.put("orgId", item.getCmtSeq()); + returnMap.put("orgNm", item.getCmtNm()); + returnMap.put("orgDesc", item.getCmtDesc()); + returnMap.put("omtOrder", item.getCmtOrder()); return returnMap; }) .collect(Collectors.toList()); diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TnCmtOrgRepository.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TnCmtOrgRepository.java index c3ff2ac..5ab14c3 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TnCmtOrgRepository.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TnCmtOrgRepository.java @@ -2,12 +2,42 @@ package com.dbnt.kcscbackend.commonCode.repository; import com.dbnt.kcscbackend.commonCode.entity.TnCmtOrg; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import java.util.List; +import java.util.Map; public interface TnCmtOrgRepository extends JpaRepository { List findByUseYnAndUpCmtSeqOrderByCmtOrder(String useYn, Long upCmtSeq); TnCmtOrg findByUseYnAndCmtSeq(String useYn, Long cmtSeq); List findByUseYnAndUpCmtSeqAndCmtTypeOrderByCmtOrder(String useYn, Long upCmtSeq, String cmtType); + + @Query(value = "CALL sp_add_tn_cmt_org (" + + ":_cmt_nm, " + + ":_cmt_type, " + + ":_cmt_desc, " + + ":_up_cmt_seq, " + + ":_cmt_order, " + + ":_modi_id, " + + ":_cmt_seq, " + + ":_result_count, " + + ":_result_code, " + + ":_error_message)", + nativeQuery = true) + Map spAddTnCmtOrg( + @Param("_cmt_nm") String cmtNm, + @Param("_cmt_type") String cmtType, + @Param("_cmt_desc") String cmtDesc, + @Param("_up_cmt_seq") Integer upCmtSeq, + @Param("_cmt_order") Integer cmtOrder, + @Param("_modi_id") String modiId, + @Param("_cmt_seq") Integer evtSeq, + @Param("_result_count") Integer resultCount, + @Param("_result_code") String resultCode, + @Param("_error_message") String errorMessage + ); + + }