Merge branch 'master' of http://118.219.150.34:50501/DBNT/kcscDev
commit
f67c3ee502
|
|
@ -64,7 +64,10 @@ function SchedulesEdit(props) {
|
|||
//${location.state?.schdulId
|
||||
|
||||
const getDateFourteenDigit = (date) => {
|
||||
return `${getYYYY_MM_DD(date).toString()} ${makeTwoDigit(date.getHours())}:${makeTwoDigit(date.getMinutes())}:${makeTwoDigit(date.getSeconds())}`;
|
||||
return `${getYYYYMMDD(date).toString()}${makeTwoDigit(date.getHours())}${makeTwoDigit(date.getMinutes())}${makeTwoDigit(date.getSeconds())}`;
|
||||
}
|
||||
const getYYYYMMDD = (date) => {
|
||||
return date.getFullYear().toString() + makeTwoDigit(Number(date.getMonth() + 1)) + makeTwoDigit(date.getDate());
|
||||
}
|
||||
const getYYYY_MM_DD = (date) => {
|
||||
return `${date.getFullYear().toString()}-${makeTwoDigit(Number(date.getMonth() + 1))}-${makeTwoDigit(date.getDate())}`;
|
||||
|
|
@ -250,13 +253,10 @@ function SchedulesEdit(props) {
|
|||
alert("내용을 입력해 주세요.");
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
if (formData.get('contents') > formData.get('schdulEndde')) {
|
||||
if (formData.get('schdulBgnde') > formData.get('schdulEndde')) {
|
||||
alert("종료일시는 시작일시보다 앞 설 수 없습니다.");
|
||||
return false;
|
||||
//return false;
|
||||
}
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -285,6 +285,31 @@ function SchedulesEdit(props) {
|
|||
}, [scheduleDetail && scheduleDetail.upCommittee]);
|
||||
|
||||
|
||||
const onClickDeleteSchedule = (schdulId) => {
|
||||
const deleteBoardURL = `/schedule/${schdulId}`;
|
||||
|
||||
const requestOptions = {
|
||||
method: "DELETE",
|
||||
headers: {
|
||||
'Content-type': 'application/json',
|
||||
}
|
||||
}
|
||||
|
||||
EgovNet.requestFetch(deleteBoardURL,
|
||||
requestOptions,
|
||||
(resp) => {
|
||||
console.log("====>>> Schdule delete= ", resp);
|
||||
if (Number(resp.resultCode) === Number(CODE.RCV_SUCCESS)) {
|
||||
alert("게시글이 삭제되었습니다.")
|
||||
navigate(URL.ADMIN__COMMITTEE__SCHEDULES ,{ replace: true });
|
||||
} else {
|
||||
navigate({pathname: URL.ERROR}, {state: {msg : resp.resultMessage}});
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
console.log("------------------------------EgovAdminScheduleEdit [End]");
|
||||
console.groupEnd("EgovAdminScheduleEdit");
|
||||
return (
|
||||
|
|
@ -389,7 +414,7 @@ function SchedulesEdit(props) {
|
|||
showTimeInput
|
||||
onChange={(date) => {
|
||||
console.log("setStartDate : ", date);
|
||||
setScheduleDetail({ ...scheduleDetail, startDate: date });
|
||||
setScheduleDetail({ ...scheduleDetail, schdulBgnde: getDateFourteenDigit(date), schdulBgndeYYYMMDD: getYYYYMMDD(date), schdulBgndeHH: date.getHours(), schdulBgndeMM: date.getMinutes(), startDate: date });
|
||||
setSchdulBgndeHH(date.getHours());
|
||||
setSchdulBgndeMM(date.getMinutes());
|
||||
}} />
|
||||
|
|
@ -407,7 +432,7 @@ function SchedulesEdit(props) {
|
|||
minDate={scheduleDetail.startDate}
|
||||
onChange={(date) => {
|
||||
console.log("setEndDate: ", date);
|
||||
setScheduleDetail({ ...scheduleDetail, endDate: date });
|
||||
setScheduleDetail({ ...scheduleDetail, schdulEndde: getDateFourteenDigit(date), schdulEnddeYYYMMDD: getYYYYMMDD(date), schdulEnddeHH: date.getHours(), schdulEnddeMM: date.getMinutes(), endDate: date });
|
||||
setSchdulEnddeHH(date.getHours());
|
||||
setSchdulEnddeMM(date.getMinutes());
|
||||
}
|
||||
|
|
@ -433,7 +458,13 @@ function SchedulesEdit(props) {
|
|||
<button className="btn btn_skyblue_h46 w_100"
|
||||
onClick={() => updateSchedule()}
|
||||
> 저장</button>
|
||||
<a href="#!" className="btn btn_skyblue_h46 w_100">삭제</a>
|
||||
{modeInfo.mode === CODE.MODE_MODIFY &&
|
||||
<button className="btn btn_skyblue_h46 w_100"
|
||||
onClick={(e) => {
|
||||
onClickDeleteSchedule(location.state?.schdulId);
|
||||
}}>삭제</button>
|
||||
}
|
||||
|
||||
</div>
|
||||
|
||||
<div className="right_col btn1">
|
||||
|
|
|
|||
|
|
@ -129,81 +129,81 @@ function EgovMain(props) {
|
|||
</Row>
|
||||
</div>
|
||||
|
||||
<div className="right_col">
|
||||
<div className="mini_board">
|
||||
<ul className="tab">
|
||||
<li><a href="#공지사항" className="on">공지사항</a></li>
|
||||
<li><a href="#갤러리">갤러리</a></li>
|
||||
</ul>
|
||||
<div className="list">
|
||||
<div className="notice">
|
||||
<h2 className="blind">공지사항</h2>
|
||||
<ul>
|
||||
{noticeListTag}
|
||||
</ul>
|
||||
<Link to={URL.INFORM_NOTICE} className="more">더보기</Link>
|
||||
</div>
|
||||
{/*<div className="right_col">*/}
|
||||
{/* <div className="mini_board">*/}
|
||||
{/* <ul className="tab">*/}
|
||||
{/* <li><a href="#공지사항" className="on">공지사항</a></li>*/}
|
||||
{/* <li><a href="#갤러리">갤러리</a></li>*/}
|
||||
{/* </ul>*/}
|
||||
{/* <div className="list">*/}
|
||||
{/* <div className="notice">*/}
|
||||
{/* <h2 className="blind">공지사항</h2>*/}
|
||||
{/* <ul>*/}
|
||||
{/* {noticeListTag}*/}
|
||||
{/* </ul>*/}
|
||||
{/* <Link to={URL.INFORM_NOTICE} className="more">더보기</Link>*/}
|
||||
{/* </div>*/}
|
||||
|
||||
<div className="gallary">
|
||||
<h2 className="blind">갤러리</h2>
|
||||
<ul>
|
||||
{gallaryListTag}
|
||||
</ul>
|
||||
<Link to={URL.INFORM_GALLERY} className="more">더보기</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/* <div className="gallary">*/}
|
||||
{/* <h2 className="blind">갤러리</h2>*/}
|
||||
{/* <ul>*/}
|
||||
{/* {gallaryListTag}*/}
|
||||
{/* </ul>*/}
|
||||
{/* <Link to={URL.INFORM_GALLERY} className="more">더보기</Link>*/}
|
||||
{/* </div>*/}
|
||||
{/* </div>*/}
|
||||
{/* </div>*/}
|
||||
|
||||
<div className="banner">
|
||||
<Link to={URL.SUPPORT_DOWNLOAD} className="bn1">
|
||||
<strong>자료실</strong>
|
||||
<span>다양한 자료를<br />다운로드 받으실 수 있습니다.</span>
|
||||
</Link>
|
||||
<Link to={URL.ABOUT} className="bn2">
|
||||
<strong>국가건설기준센터</strong>
|
||||
<span>국가건설기준센터의<br />약도 등의 정보를 제공합니다.</span>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
{/* <div className="banner">*/}
|
||||
{/* <Link to={URL.SUPPORT_DOWNLOAD} className="bn1">*/}
|
||||
{/* <strong>자료실</strong>*/}
|
||||
{/* <span>다양한 자료를<br />다운로드 받으실 수 있습니다.</span>*/}
|
||||
{/* </Link>*/}
|
||||
{/* <Link to={URL.ABOUT} className="bn2">*/}
|
||||
{/* <strong>국가건설기준센터</strong>*/}
|
||||
{/* <span>국가건설기준센터의<br />약도 등의 정보를 제공합니다.</span>*/}
|
||||
{/* </Link>*/}
|
||||
{/* </div>*/}
|
||||
{/*</div>*/}
|
||||
</div>
|
||||
|
||||
<div className="banner_bot">
|
||||
<div className="b1">
|
||||
<div>
|
||||
<h2>주요사업 소개</h2>
|
||||
<p>국가건설기준센터가 제공하는<br />
|
||||
주요 사업을 소개합니다.</p>
|
||||
</div>
|
||||
<Link to={URL.INTRO_WORKS}>자세히 보기</Link>
|
||||
</div>
|
||||
<div className="b2">
|
||||
<div>
|
||||
<h2>대표서비스 소개</h2>
|
||||
<p>국가건설기준센터 실행환경의<br />
|
||||
서비스 그룹에서 제공하는<br />
|
||||
대표서비스입니다.</p>
|
||||
</div>
|
||||
<Link to={URL.INTRO_SERVICE}>자세히 보기</Link>
|
||||
</div>
|
||||
<div className="b3">
|
||||
<div>
|
||||
<h2>서비스 신청</h2>
|
||||
<p>국가건설기준센터 경량환경<br />
|
||||
홈페이지의 다양한 서비스를<br />
|
||||
신청 하실 수 있습니다.</p>
|
||||
</div>
|
||||
<Link to={URL.SUPPORT_APPLY}>자세히 보기</Link>
|
||||
</div>
|
||||
<div className="b4">
|
||||
<div>
|
||||
<h2>일정 현황</h2>
|
||||
<p>국가건설기준센터 경량환경<br />
|
||||
홈페이지의 전체적인 일정<br />
|
||||
현황을 조회하실 수 있습니다.</p>
|
||||
</div>
|
||||
<Link to={URL.INFORM}>자세히 보기</Link>
|
||||
</div>
|
||||
</div>
|
||||
{/*<div className="banner_bot">*/}
|
||||
{/* <div className="b1">*/}
|
||||
{/* <div>*/}
|
||||
{/* <h2>주요사업 소개</h2>*/}
|
||||
{/* <p>국가건설기준센터가 제공하는<br />*/}
|
||||
{/* 주요 사업을 소개합니다.</p>*/}
|
||||
{/* </div>*/}
|
||||
{/* <Link to={URL.INTRO_WORKS}>자세히 보기</Link>*/}
|
||||
{/* </div>*/}
|
||||
{/* <div className="b2">*/}
|
||||
{/* <div>*/}
|
||||
{/* <h2>대표서비스 소개</h2>*/}
|
||||
{/* <p>국가건설기준센터 실행환경의<br />*/}
|
||||
{/* 서비스 그룹에서 제공하는<br />*/}
|
||||
{/* 대표서비스입니다.</p>*/}
|
||||
{/* </div>*/}
|
||||
{/* <Link to={URL.INTRO_SERVICE}>자세히 보기</Link>*/}
|
||||
{/* </div>*/}
|
||||
{/* <div className="b3">*/}
|
||||
{/* <div>*/}
|
||||
{/* <h2>서비스 신청</h2>*/}
|
||||
{/* <p>국가건설기준센터 경량환경<br />*/}
|
||||
{/* 홈페이지의 다양한 서비스를<br />*/}
|
||||
{/* 신청 하실 수 있습니다.</p>*/}
|
||||
{/* </div>*/}
|
||||
{/* <Link to={URL.SUPPORT_APPLY}>자세히 보기</Link>*/}
|
||||
{/* </div>*/}
|
||||
{/* <div className="b4">*/}
|
||||
{/* <div>*/}
|
||||
{/* <h2>일정 현황</h2>*/}
|
||||
{/* <p>국가건설기준센터 경량환경<br />*/}
|
||||
{/* 홈페이지의 전체적인 일정<br />*/}
|
||||
{/* 현황을 조회하실 수 있습니다.</p>*/}
|
||||
{/* </div>*/}
|
||||
{/* <Link to={URL.INFORM}>자세히 보기</Link>*/}
|
||||
{/* </div>*/}
|
||||
{/*</div>*/}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ public class SchedulesApiController {
|
|||
try {
|
||||
resultVO = egovIndvdlSchdulManageService.createSchedule(resultVO, request, createScheduleVO);
|
||||
} catch (Exception e) {
|
||||
resultVO.setResultCode(-1);
|
||||
resultVO.setResultCode(ResponseCode.FAILED.getCode());
|
||||
resultVO.setResultMessage(e.getMessage());
|
||||
}
|
||||
|
||||
|
|
@ -119,7 +119,47 @@ public class SchedulesApiController {
|
|||
try {
|
||||
resultVO = egovIndvdlSchdulManageService.updateSchedule(resultVO, request, updateScheduleVO);
|
||||
} catch (Exception e) {
|
||||
resultVO.setResultCode(-1);
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
@Operation(
|
||||
summary = "'위원회 일정 등록' 페이지에서 일정 삭제하는 API",
|
||||
description = "관리자 단에서 '위원회 관리' > '위원회 일정 관리'에서 특정 일정을 삭제하는 API",
|
||||
tags = {"SchedulesApiController"}
|
||||
)
|
||||
@ApiResponses(value = {
|
||||
@ApiResponse(responseCode = "200", description = "등록 성공"),
|
||||
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
|
||||
})
|
||||
@DeleteMapping(value = "/schedule/{scheduleId}")
|
||||
public ResultVO deleteSchedule
|
||||
(
|
||||
@AuthenticationPrincipal LoginVO user,
|
||||
HttpServletRequest request,
|
||||
@PathVariable("scheduleId") String schdulId
|
||||
) throws Exception {
|
||||
|
||||
ResultVO resultVO = new ResultVO();
|
||||
Long test = Long.valueOf(schdulId);
|
||||
try {
|
||||
resultVO = egovIndvdlSchdulManageService.deleteSchedule(resultVO, request, test);
|
||||
} catch (Exception e) {
|
||||
resultVO.setResultCode(ResponseCode.FAILED.getCode());
|
||||
resultVO.setResultMessage(e.getMessage());
|
||||
}
|
||||
|
||||
|
|
@ -158,7 +198,7 @@ public class SchedulesApiController {
|
|||
try {
|
||||
resultVO = egovIndvdlSchdulManageService.scheduleDetail(resultVO, request, user, scheduleId);
|
||||
} catch (Exception e) {
|
||||
resultVO.setResultCode(-1);
|
||||
resultVO.setResultCode(ResponseCode.FAILED.getCode());
|
||||
resultVO.setResultMessage(e.getMessage());
|
||||
}
|
||||
|
||||
|
|
@ -204,7 +244,7 @@ public class SchedulesApiController {
|
|||
try {
|
||||
resultVO = egovIndvdlSchdulManageService.scheduleMonth(resultVO, request, user, commandMap);
|
||||
} catch (Exception e) {
|
||||
resultVO.setResultCode(-1);
|
||||
resultVO.setResultCode(ResponseCode.FAILED.getCode());
|
||||
resultVO.setResultMessage(e.getMessage());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@ public interface EgovIndvdlSchdulManageService {
|
|||
|
||||
public ResultVO createSchedule(ResultVO resultVO, HttpServletRequest request, CreateScheduleVO createScheduleVO) throws Exception;
|
||||
public ResultVO updateSchedule(ResultVO resultVO, HttpServletRequest request, UpdateScheduleVO updateScheduleVO) throws Exception;
|
||||
public ResultVO deleteSchedule(ResultVO resultVO, HttpServletRequest request, Long scheduleId) throws Exception;
|
||||
|
||||
|
||||
|
||||
public ResultVO scheduleDetail(ResultVO resultVO, HttpServletRequest request, LoginVO user, Long scheduleId) throws Exception;
|
||||
|
|
|
|||
|
|
@ -122,6 +122,11 @@ public class EgovIndvdlSchdulManageServiceImpl extends EgovAbstractServiceImpl i
|
|||
"\n--------------------------------------------------------------\n"
|
||||
);
|
||||
|
||||
// 유효성 검사 실시
|
||||
if( Long.parseLong(createScheduleVO.getStartDate()) > Long.parseLong(createScheduleVO.getEndDate()) ) {
|
||||
throw new Exception("종료일시는 시작일시보다 앞 설 수 없습니다.");
|
||||
}
|
||||
|
||||
|
||||
Map<String, Object> response = tnCmtEventRepository.spAddTnCmtEvent(
|
||||
createScheduleVO.getDivMeet(), // 구분
|
||||
|
|
@ -162,12 +167,22 @@ public class EgovIndvdlSchdulManageServiceImpl extends EgovAbstractServiceImpl i
|
|||
"\n--------------------------------------------------------------\n"
|
||||
);
|
||||
|
||||
// 유효성 검사 실시
|
||||
int isValid = tnCmtEventRepository.sp_is_valid_tn_cmt_event_id( updateScheduleVO.getEvtSeq() );
|
||||
|
||||
if( isValid == 0 ) {
|
||||
throw new Exception("대상이 존재하지 않습니다.");
|
||||
}
|
||||
|
||||
if( Long.parseLong(updateScheduleVO.getStartDate()) > Long.parseLong(updateScheduleVO.getEndDate()) ) {
|
||||
throw new Exception("종료일시는 시작일시보다 앞 설 수 없습니다.");
|
||||
}
|
||||
|
||||
Map<String, Object> response = tnCmtEventRepository.spUpdateTnCmtEvent(
|
||||
updateScheduleVO.getEvtSeq().intValue(),
|
||||
updateScheduleVO.getEvtSeq(),
|
||||
updateScheduleVO.getDivMeet(), // 구분
|
||||
updateScheduleVO.getUpCommittee().intValue(), // 심의위원회 상위 코드 번호
|
||||
updateScheduleVO.getCommittee().intValue(), // 심의위원회 하위 코드 번호
|
||||
updateScheduleVO.getUpCommittee(), // 심의위원회 상위 코드 번호
|
||||
updateScheduleVO.getCommittee(), // 심의위원회 하위 코드 번호
|
||||
updateScheduleVO.getTitle(), // 제목
|
||||
updateScheduleVO.getLocation(), // 장소
|
||||
updateScheduleVO.getContents(), // 내용
|
||||
|
|
@ -190,6 +205,38 @@ public class EgovIndvdlSchdulManageServiceImpl extends EgovAbstractServiceImpl i
|
|||
return resultVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultVO deleteSchedule(ResultVO resultVO, HttpServletRequest request, Long scheduleId) throws Exception {
|
||||
|
||||
System.out.println(
|
||||
"\n--------------------------------------------------------------\n" +
|
||||
request.getRequestURI() + " IN:" +
|
||||
"\n--------------------------------------------------------------\n" +
|
||||
"scheduleId:" + "\n" +
|
||||
scheduleId + "\n" +
|
||||
"\n--------------------------------------------------------------\n"
|
||||
);
|
||||
|
||||
|
||||
Map<String, Object> response = tnCmtEventRepository.spDeleteTnCmtEvent(
|
||||
scheduleId.intValue(),
|
||||
"admin",
|
||||
null,
|
||||
null,
|
||||
null
|
||||
);
|
||||
|
||||
Map<String, Object> dto = new HashMap<String, Object>();
|
||||
dto.put("errorMessage", response.get("_error_message") );
|
||||
dto.put("schdulId", scheduleId );
|
||||
|
||||
resultVO.setResult(dto);
|
||||
resultVO.setResultCode(ResponseCode.SUCCESS.getCode());
|
||||
resultVO.setResultMessage(ResponseCode.SUCCESS.getMessage());
|
||||
|
||||
return resultVO;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -27,11 +27,11 @@ public interface TnCmtEventRepository extends JpaRepository<TnCmtEvent, TnCmtEve
|
|||
":_evt_contents, " +
|
||||
"TO_TIMESTAMP(" +
|
||||
" :_evt_start_dt," +
|
||||
" 'YYYY-MM-DD HH24:MI:SS'" +
|
||||
" 'YYYYMMDDHH24MISS'" +
|
||||
")::::timestamptz AT TIME ZONE 'UTC', " +
|
||||
"TO_TIMESTAMP(" +
|
||||
" :_evt_end_dt," +
|
||||
" 'YYYY-MM-DD HH24:MI:SS'" +
|
||||
" 'YYYYMMDDHH24MISS'" +
|
||||
")::::timestamptz AT TIME ZONE 'UTC', " +
|
||||
":_modi_id, " +
|
||||
":_evt_seq, " +
|
||||
|
|
@ -66,11 +66,11 @@ public interface TnCmtEventRepository extends JpaRepository<TnCmtEvent, TnCmtEve
|
|||
":_evt_contents, " +
|
||||
"TO_TIMESTAMP(" +
|
||||
" :_evt_start_dt," +
|
||||
" 'YYYY-MM-DD HH24:MI:SS'" +
|
||||
" 'YYYYMMDDHH24MISS'" +
|
||||
")::::timestamptz AT TIME ZONE 'UTC', " +
|
||||
"TO_TIMESTAMP(" +
|
||||
" :_evt_end_dt," +
|
||||
" 'YYYY-MM-DD HH24:MI:SS'" +
|
||||
" 'YYYYMMDDHH24MISS'" +
|
||||
")::::timestamptz AT TIME ZONE 'UTC', " +
|
||||
":_modi_id, " +
|
||||
":_result_count, " +
|
||||
|
|
@ -94,6 +94,23 @@ public interface TnCmtEventRepository extends JpaRepository<TnCmtEvent, TnCmtEve
|
|||
);
|
||||
|
||||
|
||||
|
||||
@Query(value = "CALL sp_delete_tn_cmt_event (" +
|
||||
":_evt_seq, " +
|
||||
":_modi_id, " +
|
||||
":_result_count, " +
|
||||
":_result_code, " +
|
||||
":_error_message)",
|
||||
nativeQuery = true)
|
||||
Map<String, Object> spDeleteTnCmtEvent(
|
||||
@Param("_evt_seq") Integer evtSeq,
|
||||
@Param("_modi_id") String modiId,
|
||||
@Param("_result_count") Integer resultCount,
|
||||
@Param("_result_code") String resultCode,
|
||||
@Param("_error_message") String errorMessage
|
||||
);
|
||||
|
||||
|
||||
//@Procedure
|
||||
//Map<String, Object> sp_is_valid_tn_cmt_event_id( @Param("_evt_seq") Long evtSeq );
|
||||
|
||||
|
|
@ -111,11 +128,13 @@ public interface TnCmtEventRepository extends JpaRepository<TnCmtEvent, TnCmtEve
|
|||
"FROM" + " \n" +
|
||||
" tn_cmt_event tce" + " \n" +
|
||||
"WHERE" + " " +
|
||||
" tce.use_yn = 'Y'" + " \n" +
|
||||
" AND" + " \n" +
|
||||
" TO_TIMESTAMP(" + " \n" +
|
||||
" :sSearchDate," + " \n" +
|
||||
" 'YYYYMM'" + " \n" +
|
||||
" ) AT TIME ZONE 'UTC+9' <= tce.evt_start_dt AND" + " \n" +
|
||||
|
||||
" ) AT TIME ZONE 'UTC+9' <= tce.evt_start_dt" + " \n" +
|
||||
" AND" + " \n" +
|
||||
" tce.evt_start_dt < TO_TIMESTAMP(" + " \n" +
|
||||
" :sSearchDate," + " \n" +
|
||||
" 'YYYYMM'" + " \n" +
|
||||
|
|
|
|||
Loading…
Reference in New Issue