From f6d0399f826195d3630e038f9b83c0b2551de951 Mon Sep 17 00:00:00 2001 From: thkim Date: Mon, 22 Jan 2024 17:31:05 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=EA=B4=80=EB=A6=AC=EC=9E=90=20-=20?= =?UTF-8?q?=EC=9C=84=EC=9B=90=ED=9A=8C=EA=B4=80=EB=A6=AC=20-=20=EC=9C=84?= =?UTF-8?q?=EC=9B=90=ED=9A=8C=20=EC=9D=BC=EC=A0=95=EA=B4=80=EB=A6=AC?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EC=9D=BC=EC=A0=95=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EC=8B=9C=20=EC=A0=80=EC=9E=A5=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=20=EA=B1=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SchedulesApiController.java | 41 ++++++++++ .../schedules/model/CreateScheduleVO.java | 1 - .../schedules/model/UpdateScheduleVO.java | 55 +++++++++++++ .../EgovIndvdlSchdulManageService.java | 3 + .../EgovIndvdlSchdulManageServiceImpl.java | 81 +++++++++++++++---- .../repository/TnCmtEventRepository.java | 42 +++++++++- 6 files changed, 204 insertions(+), 19 deletions(-) create mode 100644 kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/model/UpdateScheduleVO.java diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/controller/SchedulesApiController.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/controller/SchedulesApiController.java index aa970aa..d53336d 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/controller/SchedulesApiController.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/controller/SchedulesApiController.java @@ -3,6 +3,7 @@ package com.dbnt.kcscbackend.admin.committee.schedules.controller; import com.dbnt.kcscbackend.admin.committee.schedules.model.CreateScheduleVO; +import com.dbnt.kcscbackend.admin.committee.schedules.model.UpdateScheduleVO; import com.dbnt.kcscbackend.admin.committee.schedules.service.EgovIndvdlSchdulManageService; import com.dbnt.kcscbackend.auth.entity.LoginVO; import com.dbnt.kcscbackend.config.common.ResponseCode; @@ -95,6 +96,46 @@ public class SchedulesApiController { return resultVO; } + @Operation( + summary = "'위원회 일정 등록' 페이지에서 일정 수정하는 API", + description = "관리자 단에서 '위원회 관리' > '위원회 일정 관리'에 특정 일정을 누른 후, '수정' > '저장' 버튼을 누르면 해당 일정을 수정하는 API", + tags = {"SchedulesApiController"} + ) + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "등록 성공"), + @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") + }) + @PutMapping(value = "/schedule/{scheduleId}") + public ResultVO updateSchedule + ( + @AuthenticationPrincipal LoginVO user, + HttpServletRequest request, + UpdateScheduleVO updateScheduleVO, + @PathVariable("scheduleId") Long scheduleId + ) throws Exception { + + ResultVO resultVO = new ResultVO(); + + try { + resultVO = egovIndvdlSchdulManageService.updateSchedule(resultVO, request, updateScheduleVO); + } catch (Exception e) { + resultVO.setResultCode(-1); + resultVO.setResultMessage(e.getMessage()); + } + + + System.out.println( + "\n--------------------------------------------------------------\n" + + request.getRequestURI() + " OUT:" + + "\n--------------------------------------------------------------\n" + + "resultVO.toString():" + "\n" + + resultVO.toString() + "\n" + + "\n--------------------------------------------------------------\n" + ); + + return resultVO; + } + @Operation( summary = "일정 상세조회", diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/model/CreateScheduleVO.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/model/CreateScheduleVO.java index 6221e50..4aacb4b 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/model/CreateScheduleVO.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/model/CreateScheduleVO.java @@ -17,7 +17,6 @@ import java.time.LocalDateTime; public class CreateScheduleVO implements Serializable { private static final long serialVersionUID = 6544623713351174876L; - @ApiModelProperty(value = "eventId") private Integer eventId; @ApiModelProperty(value = "startDate") diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/model/UpdateScheduleVO.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/model/UpdateScheduleVO.java new file mode 100644 index 0000000..8112d69 --- /dev/null +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/model/UpdateScheduleVO.java @@ -0,0 +1,55 @@ +package com.dbnt.kcscbackend.admin.committee.schedules.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 = "createScheduleVO", description = + "관리자 단에서 '위원회 관리' > '위원회 일정 관리'에서 일정을 수정할 때 사용된다." + "" +) +@RequiredArgsConstructor +@Getter +@Setter +@ToString +public class UpdateScheduleVO implements Serializable { + + private static final long serialVersionUID = 4730156840930491646L; + + @ApiModelProperty(value = "startDate") + private String startDate; + @ApiModelProperty(value = "endDate") + private String endDate; + @ApiModelProperty(value = "eventId") + private Integer eventId; + @ApiModelProperty(value = "upCommitteeNm") + private String upCommitteeNm; + @ApiModelProperty(value = "committee") + private Integer committee; + @ApiModelProperty(value = "committeeNm") + private String committeeNm; + @ApiModelProperty(value = "divMeet") + private String divMeet; + @ApiModelProperty(value = "title") + private String title; + @ApiModelProperty(value = "divMeetNm") + private String divMeetNm; + @ApiModelProperty(value = "schdulEndde") + private String schdulEndde; + @ApiModelProperty(value = "evtSeq") + private Integer evtSeq; + @ApiModelProperty(value = "contents") + private String contents; + @ApiModelProperty(value = "upCommittee") + private Integer upCommittee; + @ApiModelProperty(value = "location") + private String location; + @ApiModelProperty(value = "schdulBgnde") + private String schdulBgnde; + + +} diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/service/EgovIndvdlSchdulManageService.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/service/EgovIndvdlSchdulManageService.java index 8790a63..62e6154 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/service/EgovIndvdlSchdulManageService.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/service/EgovIndvdlSchdulManageService.java @@ -2,6 +2,7 @@ package com.dbnt.kcscbackend.admin.committee.schedules.service; import com.dbnt.kcscbackend.admin.committee.schedules.model.CreateScheduleVO; +import com.dbnt.kcscbackend.admin.committee.schedules.model.UpdateScheduleVO; import com.dbnt.kcscbackend.auth.entity.LoginVO; import com.dbnt.kcscbackend.config.common.ResultVO; import org.springframework.security.core.annotation.AuthenticationPrincipal; @@ -34,6 +35,8 @@ public interface EgovIndvdlSchdulManageService { public ResultVO scheduleApiOrgApiDepthList(ResultVO resultVO, Long paramCodeGroup) throws Exception; public ResultVO createSchedule(ResultVO resultVO, HttpServletRequest request, CreateScheduleVO createScheduleVO) throws Exception; + public ResultVO updateSchedule(ResultVO resultVO, HttpServletRequest request, UpdateScheduleVO updateScheduleVO) throws Exception; + public ResultVO scheduleDetail(ResultVO resultVO, HttpServletRequest request, LoginVO user, Long scheduleId) throws Exception; diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/service/impl/EgovIndvdlSchdulManageServiceImpl.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/service/impl/EgovIndvdlSchdulManageServiceImpl.java index e347077..6816849 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/service/impl/EgovIndvdlSchdulManageServiceImpl.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/committee/schedules/service/impl/EgovIndvdlSchdulManageServiceImpl.java @@ -2,6 +2,7 @@ package com.dbnt.kcscbackend.admin.committee.schedules.service.impl; import com.dbnt.kcscbackend.admin.committee.schedules.model.CreateScheduleVO; +import com.dbnt.kcscbackend.admin.committee.schedules.model.UpdateScheduleVO; import com.dbnt.kcscbackend.admin.committee.schedules.service.EgovIndvdlSchdulManageService; import com.dbnt.kcscbackend.auth.entity.LoginVO; import com.dbnt.kcscbackend.commonCode.entity.TcCodeItem; @@ -149,6 +150,49 @@ public class EgovIndvdlSchdulManageServiceImpl extends EgovAbstractServiceImpl i } + @Override + public ResultVO updateSchedule(ResultVO resultVO, HttpServletRequest request, UpdateScheduleVO updateScheduleVO) throws Exception { + + System.out.println( + "\n--------------------------------------------------------------\n" + + request.getRequestURI() + " IN:" + + "\n--------------------------------------------------------------\n" + + "updateScheduleVO:" + "\n" + + updateScheduleVO.toString() + "\n" + + "\n--------------------------------------------------------------\n" + ); + + + Map response = tnCmtEventRepository.spUpdateTnCmtEvent( + updateScheduleVO.getEvtSeq().intValue(), + updateScheduleVO.getDivMeet(), // 구분 + updateScheduleVO.getUpCommittee().intValue(), // 심의위원회 상위 코드 번호 + updateScheduleVO.getCommittee().intValue(), // 심의위원회 하위 코드 번호 + updateScheduleVO.getTitle(), // 제목 + updateScheduleVO.getLocation(), // 장소 + updateScheduleVO.getContents(), // 내용 + updateScheduleVO.getStartDate(), // 날짜/시간의 시작 일시 + updateScheduleVO.getEndDate(), // 날짜/시간의 종료 일시 + "admin", + null, + null, + null + ); + + Map dto = new HashMap(); + dto.put("errorMessage", response.get("_error_message") ); + dto.put("schdulId", updateScheduleVO.getEvtSeq() ); + + resultVO.setResult(dto); + resultVO.setResultCode(ResponseCode.SUCCESS.getCode()); + resultVO.setResultMessage(ResponseCode.SUCCESS.getMessage()); + + return resultVO; + } + + + + @Override public ResultVO scheduleDetail(ResultVO resultVO, HttpServletRequest request, LoginVO user, Long scheduleId) throws Exception { @@ -168,23 +212,28 @@ public class EgovIndvdlSchdulManageServiceImpl extends EgovAbstractServiceImpl i throw new Exception("대상이 존재하지 않습니다."); } - TnCmtEvent tnCmtEvent = tnCmtEventRepository.findByEvtSeq(scheduleId); + TnCmtEvent tnCmtEvent = tnCmtEventRepository.findByEvtSeq(scheduleId); - TcCodeItem tcCodeItem = tcCodeItemRepository.findByItemCdAndUseYn(tnCmtEvent.getEvtType(), "Y"); + TcCodeItem tcCodeItem = tcCodeItemRepository.findByItemCdAndUseYn(tnCmtEvent.getEvtType(), "Y"); - TnCmtOrg tnCmtOrgForUpCommitteeNm = tnCmtOrgRepository.findByUseYnAndCmtSeq("Y", tnCmtEvent.getUpCmtSeq()); - TnCmtOrg tnCmtOrgForCommitteeNm = tnCmtOrgRepository.findByUseYnAndCmtSeq("Y", tnCmtEvent.getCmtSeq()); + TnCmtOrg tnCmtOrgForUpCommitteeNm = tnCmtOrgRepository.findByUseYnAndCmtSeq("Y", tnCmtEvent.getUpCmtSeq()); + TnCmtOrg tnCmtOrgForCommitteeNm = tnCmtOrgRepository.findByUseYnAndCmtSeq("Y", tnCmtEvent.getCmtSeq()); - Map dto = new HashMap(); - dto.put("evtSeq", tnCmtEvent.getEvtSeq()); // sequence - dto.put("divMeetNm", tcCodeItem.getItemNm()); // 구분 - dto.put("upCommitteeNm", tnCmtOrgForUpCommitteeNm.getCmtNm()); // 심의위원회 상위 이름 - dto.put("committeeNm", tnCmtOrgForCommitteeNm.getCmtNm()); // 심의위원회 하위 이름 - dto.put("title", tnCmtEvent.getEvtTitle()); // 제목 - dto.put("location", tnCmtEvent.getEvtLocation()); // 장소 - dto.put("contents", tnCmtEvent.getEvtContents()); // 내용 - dto.put("startDate", tnCmtEvent.getEvtStartDt().plusHours(9)); // 날짜/시간의 시작 일시 - dto.put("endDate", tnCmtEvent.getEvtEndDt().plusHours(9)); // 날짜/시간의 종료 일시 + Map dto = new HashMap(); + dto.put("evtSeq", tnCmtEvent.getEvtSeq()); // sequence + dto.put("divMeetNm", tcCodeItem.getItemNm()); // 구분 명 + dto.put("divMeet", tnCmtEvent.getEvtType()); // 구분 코드 + dto.put("upCommittee", tnCmtEvent.getUpCmtSeq()); // 심의위원회 상위 코드 + dto.put("upCommitteeNm", tnCmtOrgForUpCommitteeNm.getCmtNm()); // 심의위원회 상위 이름 + dto.put("committee", tnCmtEvent.getCmtSeq()); // 심의위원회 하위 코드 + dto.put("committeeNm", tnCmtOrgForCommitteeNm.getCmtNm()); // 심의위원회 하위 이름 + dto.put("title", tnCmtEvent.getEvtTitle()); // 제목 + dto.put("location", tnCmtEvent.getEvtLocation()); // 장소 + dto.put("contents", tnCmtEvent.getEvtContents()); // 내용 + dto.put("startDate", tnCmtEvent.getEvtStartDt().plusHours(9)); // 날짜/시간의 시작 일시 + dto.put("endDate", tnCmtEvent.getEvtEndDt().plusHours(9)); // 날짜/시간의 종료 일시 + dto.put("schdulBgnde", tnCmtEvent.getEvtStartDt().plusHours(9).format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); // 날짜/시간의 시작 일시 - yyyyMMddHHmmss + dto.put("schdulEndde", tnCmtEvent.getEvtEndDt().plusHours(9).format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); // 날짜/시간의 종료 일시 // 문자열로 리턴하도록 수정해야 함. @@ -251,8 +300,8 @@ public class EgovIndvdlSchdulManageServiceImpl extends EgovAbstractServiceImpl i .stream() .map(item -> { Map mapDto = new HashMap<>(); - mapDto.put("evt_start_dt", item.getEvtStartDt().format(DateTimeFormatter.ofPattern("yyyyMMdd HH:mm:ss.SSS"))); - mapDto.put("evt_end_dt", item.getEvtEndDt().format(DateTimeFormatter.ofPattern("yyyyMMdd HH:mm:ss.SSS"))); + mapDto.put("evt_start_dt", item.getEvtStartDt().plusHours(9).format(DateTimeFormatter.ofPattern("yyyyMMdd HH:mm:ss.SSS"))); + mapDto.put("evt_end_dt", item.getEvtEndDt().plusHours(9).format(DateTimeFormatter.ofPattern("yyyyMMdd HH:mm:ss.SSS"))); mapDto.put("schdulId", item.getEvtSeq()); mapDto.put("schdulNm", item.getEvtTitle()); diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TnCmtEventRepository.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TnCmtEventRepository.java index 604ed2a..7b00a47 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TnCmtEventRepository.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TnCmtEventRepository.java @@ -56,6 +56,44 @@ public interface TnCmtEventRepository extends JpaRepository spUpdateTnCmtEvent( + @Param("_evt_seq") Integer evtSeq, + @Param("_evt_type") String evtType, + @Param("_up_cmt_seq") Integer upCmtSeq, + @Param("_cmt_seq") Integer cmtSeq, + @Param("_evt_title") String evtTitle, + @Param("_evt_location") String evtLocation, + @Param("_evt_contents") String evtContents, + @Param("_evt_start_dt") String evtStartDt, + @Param("_evt_end_dt") String evtEndDt, + @Param("_modi_id") String modiId, + @Param("_result_count") Integer resultCount, + @Param("_result_code") String resultCode, + @Param("_error_message") String errorMessage + ); + + //@Procedure //Map sp_is_valid_tn_cmt_event_id( @Param("_evt_seq") Long evtSeq ); @@ -76,12 +114,12 @@ public interface TnCmtEventRepository extends JpaRepository getByYyyyMm( @Param("sSearchDate") String sSearchDate From 2944f9d95ec14548f5f7e748a2303ad7d47f92c1 Mon Sep 17 00:00:00 2001 From: thkim Date: Mon, 22 Jan 2024 17:32:10 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=EA=B4=80=EB=A6=AC=EC=9E=90=20-=20?= =?UTF-8?q?=EC=9C=84=EC=9B=90=ED=9A=8C=EA=B4=80=EB=A6=AC=20-=20=EC=9C=84?= =?UTF-8?q?=EC=9B=90=ED=9A=8C=20=EC=9D=BC=EC=A0=95=EA=B4=80=EB=A6=AC?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EC=9D=BC=EC=A0=95=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EC=8B=9C=20=EC=A0=80=EC=9E=A5=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=20=EA=B1=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/committee/Schedules/Detail.jsx | 4 +- .../pages/admin/committee/Schedules/Edit.jsx | 51 ++++++++++++++----- 2 files changed, 41 insertions(+), 14 deletions(-) diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/committee/Schedules/Detail.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/committee/Schedules/Detail.jsx index d597c42..f056a47 100644 --- a/egovframe-template-simple-react-contribution/src/pages/admin/committee/Schedules/Detail.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/admin/committee/Schedules/Detail.jsx @@ -139,9 +139,9 @@ function SchedulesDetail(props) { {/* */}
- {user.id && + {user.id || true &&
-