build: 중간저장

thkim
thkim 2024-01-19 17:59:19 +09:00
parent 42df5ab159
commit 18b6f702e2
8 changed files with 191 additions and 54 deletions

View File

@ -19,7 +19,7 @@ function Schedules(props) {
const DATE = new Date(); const DATE = new Date();
//const TODAY = new Date(DATE.getFullYear(), DATE.getMonth(), DATE.getDate()); //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 [searchCondition, setSearchCondition] = useState(location.state?.searchCondition || { schdulSe: '', year: TODAY.getFullYear(), month: TODAY.getMonth(), date: TODAY.getDate() });
const [calendarTag, setCalendarTag] = useState([]); const [calendarTag, setCalendarTag] = useState([]);
@ -150,24 +150,47 @@ function Schedules(props) {
week.map((day, dayIdx) => { week.map((day, dayIdx) => {
if (day !== 0) {// if (day !== 0) {//
let sDate = day.toString().length === 1 ? "0" + day.toString() : day.toString(); let sDate = day.toString().length === 1 ? "0" + day.toString() : day.toString();
let iUseDate = Number(mutsUseYearMonth + sDate); let iUseDate = Number(mutsUseYearMonth + sDate);
if (scheduleList.length > 0 || sDate === "01") {// if (scheduleList.length > 0) {//
return ( return (
<td key={keyIdx++}> <td key={keyIdx++}>
<Link to={{pathname: URL.ADMIN__COMMITTEE__SCHEDULES__CREATE}} state={{iUseDate : mutsUseYearMonth + sDate + "000000"}} className="day" key={keyIdx++}>{day}</Link><br /> <Link to={{pathname: URL.ADMIN__COMMITTEE__SCHEDULES__CREATE}} state={{iUseDate: mutsUseYearMonth + sDate + "000000"}} className="day"
key={keyIdx++}>{day}</Link><br/>
{ {
<div> scheduleList.map((schedule, scheduleIdx) => {
<div>오후 03:00 [P] 해양경찰청</div> let test = schedule.evt_start_dt.replace('-','');
<div>오후 05:00 [P] 미팅...</div> console.log( test );
</div> 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 (
<>
<Link to={{pathname: URL.ADMIN_SCHEDULE_DETAIL}}
state={{schdulId: schedule.schdulId}}
key={keyIdx++}>{schedule.schdulNm}
</Link>
<br/>
</>
);
} else return <></>
*/
return <></>
})
} }
</td> </td>
); );
} else {// } else {//
return ( return (
<td key={keyIdx++}> <td key={keyIdx++}>
<Link to={{pathname: URL.ADMIN__COMMITTEE__SCHEDULES__CREATE}} state={{iUseDate : mutsUseYearMonth + sDate + "000000"}} className="day" key={keyIdx++}>{day}</Link><br /> <Link to={{pathname: URL.ADMIN__COMMITTEE__SCHEDULES__CREATE}} state={{iUseDate: mutsUseYearMonth + sDate + "000000"}} className="day"
key={keyIdx++}>{day}</Link><br/>
</td>); </td>);
} }
} else if (day === 0) {// / } else if (day === 0) {// /

View File

@ -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<String, Object> 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;
}
} }

View File

@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletRequest; 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 scheduleDetail(ResultVO resultVO, HttpServletRequest request, LoginVO user, Long scheduleId) throws Exception;
public ResultVO scheduleMonth(ResultVO resultVO, HttpServletRequest request, LoginVO user, Map<String, Object> scheduleId) throws Exception;
} }

View File

@ -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.model.CreateScheduleVO;
import com.dbnt.kcscbackend.admin.committee.schedules.service.EgovIndvdlSchdulManageService; import com.dbnt.kcscbackend.admin.committee.schedules.service.EgovIndvdlSchdulManageService;
import com.dbnt.kcscbackend.auth.entity.LoginVO; 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.TnCmtEvent;
import com.dbnt.kcscbackend.commonCode.entity.TnCmtOrg;
import com.dbnt.kcscbackend.config.common.ResponseCode; import com.dbnt.kcscbackend.config.common.ResponseCode;
import com.dbnt.kcscbackend.commonCode.repository.TcCodeItemRepository; import com.dbnt.kcscbackend.commonCode.repository.TcCodeItemRepository;
import com.dbnt.kcscbackend.commonCode.repository.TnCmtEventRepository; 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 { public ResultVO scheduleDetail(ResultVO resultVO, HttpServletRequest request, LoginVO user, Long scheduleId) throws Exception {
System.out.println( System.out.println(
"\n--------------------------------------------------------------\n" + "\n--------------------------------------------------------------\n" +
request.getRequestURI() + " IN:" + request.getRequestURI() + " IN:" +
"\n--------------------------------------------------------------\n" + "\n--------------------------------------------------------------\n" +
"scheduleId:" + "\n" + "scheduleId:" + "\n" +
scheduleId + "\n" + scheduleId + "\n" +
"\n--------------------------------------------------------------\n" "\n--------------------------------------------------------------\n"
); );
@ -167,16 +169,21 @@ public class EgovIndvdlSchdulManageServiceImpl extends EgovAbstractServiceImpl i
TnCmtEvent tnCmtEvent = tnCmtEventRepository.findByEvtSeq(scheduleId); 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<String, Object> dto = new HashMap<String, Object>(); Map<String, Object> dto = new HashMap<String, Object>();
dto.put("evtSeq", tnCmtEvent.getEvtSeq()); // sequence dto.put("evtSeq", tnCmtEvent.getEvtSeq()); // sequence
dto.put("divMeet", tnCmtEvent.getEvtType()); // 구분 dto.put("divMeetNm", tcCodeItem.getItemNm()); // 구분
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("title", tnCmtEvent.getEvtTitle()); // 제목
dto.put("location", tnCmtEvent.getEvtLocation()); // 장소 dto.put("location", tnCmtEvent.getEvtLocation()); // 장소
dto.put("contents", tnCmtEvent.getEvtContents()); // 내용 dto.put("contents", tnCmtEvent.getEvtContents()); // 내용
dto.put("startDate", tnCmtEvent.getEvtStartDt()); // 날짜/시간의 시작 일시 dto.put("startDate", tnCmtEvent.getEvtStartDt()); // 날짜/시간의 시작 일시
dto.put("endDate", tnCmtEvent.getEvtEndDt()); // 날짜/시간의 종료 일시 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<String, Object> 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<String, Object> dto = new HashMap<String, Object>();
//일정구분 검색 유지
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;
}

View File

@ -7,4 +7,5 @@ import java.util.List;
public interface TcCodeItemRepository extends JpaRepository<TcCodeItem, TcCodeItem.TcCodeItemId> { public interface TcCodeItemRepository extends JpaRepository<TcCodeItem, TcCodeItem.TcCodeItemId> {
List<TcCodeItem> findByGrpCdAndUseYnOrderByGrpOrder(String grpCd, String useYn); List<TcCodeItem> findByGrpCdAndUseYnOrderByGrpOrder(String grpCd, String useYn);
TcCodeItem findByItemCdAndUseYn(String itemCd, String useYn);
} }

View File

@ -18,28 +18,6 @@ import java.util.Map;
public interface TnCmtEventRepository extends JpaRepository<TnCmtEvent, TnCmtEvent.TnCmtEventId> { public interface TnCmtEventRepository extends JpaRepository<TnCmtEvent, TnCmtEvent.TnCmtEventId> {
@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 (" + @Query(value = "CALL sp_add_tn_cmt_event (" +
":_evt_type, " + ":_evt_type, " +
":_up_cmt_seq, " + ":_up_cmt_seq, " +
@ -84,16 +62,31 @@ public interface TnCmtEventRepository extends JpaRepository<TnCmtEvent, TnCmtEve
@Procedure @Procedure
int sp_is_valid_tn_cmt_event_id( Integer evtSeq ); int sp_is_valid_tn_cmt_event_id( Integer evtSeq );
@Query(value = "CALL sp_is_valid_tn_cmt_event_id ( :_evt_seq )",
nativeQuery = true)
int spIsValidTnCmtEventId(
@Param("_evt_seq") Long evtSeq
);
TnCmtEvent findByEvtSeq(Long evtSeq); TnCmtEvent findByEvtSeq(Long evtSeq);
@Query(value = "\n" +
"SELECT" + " \n" +
" *" + " \n" +
"FROM" + " \n" +
" tn_cmt_event tce" + " \n" +
"WHERE" + " " +
" TO_TIMESTAMP(" + " \n" +
" :sSearchDate," + " \n" +
" 'YYYYMM'" + " \n" +
" ) <= tce.evt_start_dt AND" + " \n" +
" tce.evt_start_dt < TO_TIMESTAMP(" + " \n" +
" :sSearchDate," + " \n" +
" 'YYYYMM'" + " \n" +
" ) + INTERVAL '1 MONTH';\n",
nativeQuery = true)
List<Map<String, Object>> getByYyyyMm(
@Param("sSearchDate") String sSearchDate
);

View File

@ -7,5 +7,6 @@ import java.util.List;
public interface TnCmtOrgRepository extends JpaRepository<TnCmtOrg, TnCmtOrg.TnCmtOrgId> { public interface TnCmtOrgRepository extends JpaRepository<TnCmtOrg, TnCmtOrg.TnCmtOrgId> {
List<TnCmtOrg> findByUseYnAndUpCmtSeqOrderByCmtOrder(String useYn, Long upCmtSeq); List<TnCmtOrg> findByUseYnAndUpCmtSeqOrderByCmtOrder(String useYn, Long upCmtSeq);
TnCmtOrg findByUseYnAndCmtSeq(String useYn, Long cmtSeq);
} }

View File

@ -13,8 +13,8 @@ spring.datasource.hikari.maximum-pool-size=4
#spring.datasource.username=kcsc #spring.datasource.username=kcsc
#spring.datasource.password=dbnt0928! #spring.datasource.password=dbnt0928!
spring.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy 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://127.0.0.1:5432/kcsc
spring.datasource.url=jdbc:log4jdbc:postgresql://118.219.150.34:50503/kcsc #spring.datasource.url=jdbc:log4jdbc:postgresql://118.219.150.34:50503/kcsc
spring.datasource.username=dbnt0031 spring.datasource.username=dbnt0031
spring.datasource.password=dbnt0928! spring.datasource.password=dbnt0928!