From 18b6f702e28e0f4d766186347be72f382a4bd6d3 Mon Sep 17 00:00:00 2001 From: thkim Date: Fri, 19 Jan 2024 17:59:19 +0900 Subject: [PATCH] =?UTF-8?q?build:=20=EC=A4=91=EA=B0=84=EC=A0=80=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/pages/admin/committee/Schedules.jsx | 43 ++++++-- .../controller/SchedulesApiController.java | 47 +++++++++ .../EgovIndvdlSchdulManageService.java | 4 + .../EgovIndvdlSchdulManageServiceImpl.java | 98 ++++++++++++++++--- .../repository/TcCodeItemRepository.java | 1 + .../repository/TnCmtEventRepository.java | 47 ++++----- .../repository/TnCmtOrgRepository.java | 1 + .../resources/application-local.properties | 4 +- 8 files changed, 191 insertions(+), 54 deletions(-) diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/committee/Schedules.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/committee/Schedules.jsx index edc6db1..584340b 100644 --- a/egovframe-template-simple-react-contribution/src/pages/admin/committee/Schedules.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/admin/committee/Schedules.jsx @@ -19,7 +19,7 @@ function Schedules(props) { const DATE = new Date(); //const TODAY = new Date(DATE.getFullYear(), DATE.getMonth(), DATE.getDate()); - const TODAY = new Date(DATE.getFullYear(), 1, DATE.getDate()); + const TODAY = new Date(2023, 2, DATE.getDate()); const [searchCondition, setSearchCondition] = useState(location.state?.searchCondition || { schdulSe: '', year: TODAY.getFullYear(), month: TODAY.getMonth(), date: TODAY.getDate() }); const [calendarTag, setCalendarTag] = useState([]); @@ -150,24 +150,47 @@ function Schedules(props) { week.map((day, dayIdx) => { if (day !== 0) {//당월 일별 구현 let sDate = day.toString().length === 1 ? "0" + day.toString() : day.toString(); - let iUseDate = Number(mutsUseYearMonth + sDate); - if (scheduleList.length > 0 || sDate === "01") {//일정 있는 경우 + let iUseDate = Number(mutsUseYearMonth + sDate); + if (scheduleList.length > 0) {//일정 있는 경우 return ( - {day}
+ {day}
{ -
-
오후 03:00 [P] 해양경찰청
-
오후 05:00 [P] 미팅...
-
- + scheduleList.map((schedule, scheduleIdx) => { + let test = schedule.evt_start_dt.replace('-',''); + console.log( test ); + let iBeginDate = Number(schedule.evt_start_dt.replace('-','').substring(0, 8)); + let iEndDate = Number(schedule.evt_end_dt.replace('-','').substring(0, 8)); + + /* + let iBeginDate = Number(schedule.schdulBgnde.substring(0, 8)); + let iEndDate = Number(schedule.schdulEndde.substring(0, 8)); + innerConsole("scheduleList ", day, scheduleIdx, iBeginDate, iUseDate, iEndDate, iUseDate >= iBeginDate && iUseDate <= iEndDate); + innerConsole("schedule.schdulId ", schedule.schdulId); + if (iUseDate >= iBeginDate && iUseDate <= iEndDate) { + return ( + <> + {schedule.schdulNm} + +
+ + ); + } else return <> + */ + + return <> + }) } ); } else {//일정 없는 경우 return ( - {day}
+ {day}
); } } else if (day === 0) {// 이전달/다음달 구현 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 a4fa7bd..aa970aa 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 @@ -136,5 +136,52 @@ public class SchedulesApiController { + /** + * 일정(월별) 목록을 조회한다. + * @param request + * @param commandMap + * @return resultVO + * @throws Exception + */ + @Operation( + summary = "월별 일정 조회", + description = "일정(월별) 목록을 조회", + tags = {"EgovIndvdlSchdulManageApiController"} + ) + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "조회 성공"), + @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") + }) + @GetMapping(value = "/schedule/month") + public ResultVO scheduleMonth(@AuthenticationPrincipal LoginVO user, + HttpServletRequest request, + @RequestParam Map commandMap) throws Exception { + + + ResultVO resultVO = new ResultVO(); + + try { + resultVO = egovIndvdlSchdulManageService.scheduleMonth(resultVO, request, user, commandMap); + } 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; + + } + + + } \ No newline at end of file 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 8715cbc..8790a63 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 @@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.RequestBody; import springfox.documentation.annotations.ApiIgnore; import javax.servlet.http.HttpServletRequest; +import java.util.Map; /** * 일정관리를 처리하는 서비스인터페이스 클래스 @@ -36,5 +37,8 @@ public interface EgovIndvdlSchdulManageService { public ResultVO scheduleDetail(ResultVO resultVO, HttpServletRequest request, LoginVO user, Long scheduleId) throws Exception; + public ResultVO scheduleMonth(ResultVO resultVO, HttpServletRequest request, LoginVO user, Map scheduleId) throws Exception; + + } \ No newline at end of file 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 902b9a0..77f14fa 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 @@ -4,7 +4,9 @@ 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.service.EgovIndvdlSchdulManageService; import com.dbnt.kcscbackend.auth.entity.LoginVO; +import com.dbnt.kcscbackend.commonCode.entity.TcCodeItem; import com.dbnt.kcscbackend.commonCode.entity.TnCmtEvent; +import com.dbnt.kcscbackend.commonCode.entity.TnCmtOrg; import com.dbnt.kcscbackend.config.common.ResponseCode; import com.dbnt.kcscbackend.commonCode.repository.TcCodeItemRepository; import com.dbnt.kcscbackend.commonCode.repository.TnCmtEventRepository; @@ -150,12 +152,12 @@ public class EgovIndvdlSchdulManageServiceImpl extends EgovAbstractServiceImpl i public ResultVO scheduleDetail(ResultVO resultVO, HttpServletRequest request, LoginVO user, Long scheduleId) throws Exception { System.out.println( - "\n--------------------------------------------------------------\n" + - request.getRequestURI() + " IN:" + - "\n--------------------------------------------------------------\n" + - "scheduleId:" + "\n" + - scheduleId + "\n" + - "\n--------------------------------------------------------------\n" + "\n--------------------------------------------------------------\n" + + request.getRequestURI() + " IN:" + + "\n--------------------------------------------------------------\n" + + "scheduleId:" + "\n" + + scheduleId + "\n" + + "\n--------------------------------------------------------------\n" ); @@ -167,16 +169,21 @@ public class EgovIndvdlSchdulManageServiceImpl extends EgovAbstractServiceImpl i TnCmtEvent tnCmtEvent = tnCmtEventRepository.findByEvtSeq(scheduleId); + TcCodeItem tcCodeItem = tcCodeItemRepository.findByItemCdAndUseYn(tnCmtEvent.getEvtType(), "Y"); + + 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("divMeet", tnCmtEvent.getEvtType()); // 구분 - dto.put("upCommittee", tnCmtEvent.getUpCmtSeq()); // 심의위원회 상위 코드 번호 - dto.put("committee", tnCmtEvent.getCmtSeq()); // 심의위원회 하위 코드 번호 - dto.put("title", tnCmtEvent.getEvtTitle()); // 제목 - dto.put("location", tnCmtEvent.getEvtLocation()); // 장소 - dto.put("contents", tnCmtEvent.getEvtContents()); // 내용 - dto.put("startDate", tnCmtEvent.getEvtStartDt()); // 날짜/시간의 시작 일시 - dto.put("endDate", tnCmtEvent.getEvtEndDt()); // 날짜/시간의 종료 일시 + 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()); // 날짜/시간의 시작 일시 + dto.put("endDate", tnCmtEvent.getEvtEndDt()); // 날짜/시간의 종료 일시 // 문자열로 리턴하도록 수정해야 함. @@ -190,6 +197,67 @@ public class EgovIndvdlSchdulManageServiceImpl extends EgovAbstractServiceImpl i } + @Override + public ResultVO scheduleMonth(ResultVO resultVO, HttpServletRequest request, LoginVO user, Map commandMap) throws Exception { + + System.out.println( + "\n--------------------------------------------------------------\n" + + request.getRequestURI() + " IN:" + + "\n--------------------------------------------------------------\n" + + "String.valueOf(commandMap.get(\"year\")):" + "\n" + + String.valueOf(commandMap.get("year")) + "\n" + + "String.valueOf(commandMap.get(\"month\")):" + "\n" + + String.valueOf(commandMap.get("month")) + "\n" + + "\n--------------------------------------------------------------\n" + ); + + Map dto = new HashMap(); + + //일정구분 검색 유지 + dto.put("searchKeyword", + commandMap.get("searchKeyword") == null ? "" : (String)commandMap.get("searchKeyword")); + dto.put("searchCondition", + commandMap.get("searchCondition") == null ? "" : (String)commandMap.get("searchCondition")); + + Calendar cal = Calendar.getInstance(); + + String sYear = String.valueOf(commandMap.get("year")); // 예 "2024" + String sMonth = String.valueOf(commandMap.get("month")); // 예 "2" zeo-base. 0= 1월, 1=2월, 2=3월. 즉 "2"라면 3월 + + int iYear = cal.get(Calendar.YEAR); + int iMonth = cal.get(Calendar.MONTH); + //int iDate = cal.get(java.util.Calendar.DATE); + + //검색 설정 + String sSearchDate = ""; + if (sYear == null || sMonth == null) { + sSearchDate += Integer.toString(iYear); + sSearchDate += Integer.toString(iMonth + 1).length() == 1 ? "0" + Integer.toString(iMonth + 1) + : Integer.toString(iMonth + 1); + } else { + iYear = Integer.parseInt(sYear); + iMonth = Integer.parseInt(sMonth); + sSearchDate += sYear; + sSearchDate += Integer.toString(iMonth + 1).length() == 1 ? "0" + Integer.toString(iMonth + 1) + : Integer.toString(iMonth + 1); + } + + // sSearchDate는 검색할 월. 예 202403 + commandMap.put("searchMonth", sSearchDate); + commandMap.put("searchMode", "MONTH"); + + dto.put("prevRequest", commandMap); + dto.put("resultList", tnCmtEventRepository.getByYyyyMm(sSearchDate)); + + resultVO.setResult(dto); + + resultVO.setResultCode(ResponseCode.SUCCESS.getCode()); + resultVO.setResultMessage(ResponseCode.SUCCESS.getMessage()); + + return resultVO; + } + + diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TcCodeItemRepository.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TcCodeItemRepository.java index e5d507c..2266f5f 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TcCodeItemRepository.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/commonCode/repository/TcCodeItemRepository.java @@ -7,4 +7,5 @@ import java.util.List; public interface TcCodeItemRepository extends JpaRepository { List findByGrpCdAndUseYnOrderByGrpOrder(String grpCd, String useYn); + TcCodeItem findByItemCdAndUseYn(String itemCd, String useYn); } 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 5a0fab3..7e29883 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 @@ -18,28 +18,6 @@ import java.util.Map; public interface TnCmtEventRepository extends JpaRepository { - @Transactional - @Modifying - @Query(value = "SET datestyle TO ISO, MDY", nativeQuery = true) - int setDateStyle(); - - @Procedure - int sp_add_tn_cmt_event( - @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") Date evtStartDt, - @Param("_evt_end_dt") Date evtEndDt, - @Param("_modi_id") String modiId, - @Param("_evt_seq") Integer _evt_seq, - @Param("_result_count") Integer _result_count, - @Param("_result_code") String _result_code, - @Param("_error_message") String _error_message - ); - @Query(value = "CALL sp_add_tn_cmt_event (" + ":_evt_type, " + ":_up_cmt_seq, " + @@ -84,16 +62,31 @@ public interface TnCmtEventRepository extends JpaRepository> getByYyyyMm( + @Param("sSearchDate") String sSearchDate + ); + 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 7c2d6c8..2e1f4c7 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 @@ -7,5 +7,6 @@ import java.util.List; public interface TnCmtOrgRepository extends JpaRepository { List findByUseYnAndUpCmtSeqOrderByCmtOrder(String useYn, Long upCmtSeq); + TnCmtOrg findByUseYnAndCmtSeq(String useYn, Long cmtSeq); } diff --git a/kcsc-back-end/src/main/resources/application-local.properties b/kcsc-back-end/src/main/resources/application-local.properties index ffcfe5b..e8d6360 100644 --- a/kcsc-back-end/src/main/resources/application-local.properties +++ b/kcsc-back-end/src/main/resources/application-local.properties @@ -13,8 +13,8 @@ spring.datasource.hikari.maximum-pool-size=4 #spring.datasource.username=kcsc #spring.datasource.password=dbnt0928! spring.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy -#spring.datasource.url=jdbc:log4jdbc:postgresql://127.0.0.1:5432/kcsc -spring.datasource.url=jdbc:log4jdbc:postgresql://118.219.150.34:50503/kcsc +spring.datasource.url=jdbc:log4jdbc:postgresql://127.0.0.1:5432/kcsc +#spring.datasource.url=jdbc:log4jdbc:postgresql://118.219.150.34:50503/kcsc spring.datasource.username=dbnt0031 spring.datasource.password=dbnt0928!