Compare commits
4 Commits
7767f27c23
...
7376a86de3
| Author | SHA1 | Date |
|---|---|---|
|
|
7376a86de3 | |
|
|
bb9375513c | |
|
|
08a140f5f4 | |
|
|
38ad18fc74 |
|
|
@ -52,10 +52,10 @@
|
|||
.board_list .head {display: table; table-layout: fixed; width: 100%;}
|
||||
/* changed by lim padding: 25px 0 27px 0; */
|
||||
.board_list .head > span {display: table-cell; padding: 10px 0 10px 0; border-bottom: 1px solid #888; font-size: 16px; font-weight: 500px; text-align: center;}
|
||||
.logs_list .result {max-height: 430px;}
|
||||
.logs_list .result {max-height: 430px;} /* added by lim .logs_list .result {max-height: 430px;} */
|
||||
.board_list .result .list_item {display: table; width: 100%; table-layout: fixed;}
|
||||
/* changed by lim padding: 18px 0 20px 0; */
|
||||
.board_list .result .list_item > div {display: table-cell; padding: 7px 0 7px 0; border-bottom: 1px solid #dde2e5; color: #666; font-size: 16px; text-align: center; vertical-align: middle;}
|
||||
.board_list .result .list_item > div {display: table-cell; padding: 7px 0 7px 0; border-bottom: 1px solid #dde2e5; color: #666; font-size: 14px; text-align: center; vertical-align: middle;}
|
||||
.board_list .result .list_item > div.al {padding: 18px 30px 20px 30px; text-align: left;}
|
||||
.board_list .result .list_item > div.reply {position: relative; padding: 18px 30px 20px 52px;}
|
||||
.board_list .result .list_item > div.reply::before {content: ""; display: block; position: absolute; left: 27px; top: 24px; width: 22px; height: 14px; background: url(css/images/ico_reply.png) no-repeat;}
|
||||
|
|
|
|||
|
|
@ -46,11 +46,11 @@ body {min-width: 1400px;}
|
|||
|
||||
|
||||
.container {min-height: calc(100vh - 300px);}
|
||||
.c_wrap {margin: 0 auto;} /* removed by lim width: 1400px; padding: 0 50px; */
|
||||
.c_wrap { margin: 0 auto;} /* removed by lim width: 1400px; padding: 0 50px; */
|
||||
.c_wrap .layout {display: table; width: 100%; table-layout: fixed; padding-bottom: 20px;} /* added by lim padding-bottom: 20px; */
|
||||
|
||||
/* sub navigation */
|
||||
.c_wrap .layout .nav {display: table-cell; width: 260px; vertical-align: top;}
|
||||
.c_wrap .layout .nav {display: table-cell; width: 220px; vertical-align: top;} /* changed by lim width: 260px; */
|
||||
.c_wrap .layout .nav .inner {border: 1px solid #dde2e5; border-radius: 10px;}
|
||||
.nav_title{padding: 35px 30px 26px 30px;} /* changed by lim border-bottom: 4px solid #dde2e5; */
|
||||
.c_wrap .layout .nav h2 {color: #222; font-size: 24px;}
|
||||
|
|
|
|||
|
|
@ -152,6 +152,22 @@
|
|||
.BRD006 .result .list_item > div:nth-child(5) {width: 140px;}
|
||||
.BRD006 .result .list_item > div:nth-child(6) {width: 140px;}
|
||||
|
||||
/* 사이트관리 > 사용자관리 > 사용자목록 */
|
||||
.userList .head > span:nth-child(1) {width: 60px;}
|
||||
.userList .head > span:nth-child(2) {width: 100px;}
|
||||
.userList .head > span:nth-child(3) {width: 100px;}
|
||||
.userList .head > span:nth-child(4) {width: 120px;}
|
||||
.userList .head > span:nth-child(5) {width: 100px;}
|
||||
.userList .head > span:nth-child(6) {width: 100px;}
|
||||
.userList .head > span:nth-child(7) {width: 100px;}
|
||||
.userList .result .list_item > div:nth-child(1) {width: 60px;}
|
||||
.userList .result .list_item > div:nth-child(2) {width: 100px;}
|
||||
.userList .result .list_item > div:nth-child(3) {width: 100px;}
|
||||
.userList .result .list_item > div:nth-child(4) {width: 120px;}
|
||||
.userList .result .list_item > div:nth-child(5) {width: 100px;}
|
||||
.userList .result .list_item > div:nth-child(6) {width: 100px;}
|
||||
.userList .result .list_item > div:nth-child(7) {width: 100px;}
|
||||
|
||||
/* 사이트소개 */
|
||||
.SITE_INTRO .ds_1 .t_1 {margin-top: 52px; color: #000; font-size: 26px; font-weight: 500; text-align: center;}
|
||||
.SITE_INTRO .ds_1 .li_1 {position: relative; margin-top: 34px; font-size: 0; text-align: center;}
|
||||
|
|
@ -220,17 +236,18 @@
|
|||
.BRD008 .result .list_item > div:nth-child(5) {width: 120px;}
|
||||
|
||||
|
||||
/* 공지사항 */
|
||||
/* 로그현황 - 개인정보 로그현황*/
|
||||
.BRD009 .head > span:nth-child(1) {width: 60px;}
|
||||
.BRD009 .head > span:nth-child(3) {width: 200px;}
|
||||
.BRD009 .head > span:nth-child(4) {width: 200px;}
|
||||
.BRD009 .head > span:nth-child(5) {width: 200px;}
|
||||
.BRD009 .head > span:nth-child(2) {width: 150px;}
|
||||
.BRD009 .head > span:nth-child(3) {width: 150px;}
|
||||
.BRD009 .head > span:nth-child(4) {width: 150px;}
|
||||
.BRD009 .head > span:nth-child(5) {width: 150px;}
|
||||
.BRD009 .head > span:nth-child(6) {width: 150px;}
|
||||
.BRD009 .result .list_item > div:nth-child(1) {width: 60px;}
|
||||
.BRD009 .result .list_item > div:nth-child(2) {text-overflow: ellipsis; white-space: nowrap; overflow: hidden;}
|
||||
.BRD009 .result .list_item > div:nth-child(3) {width: 200px;}
|
||||
.BRD009 .result .list_item > div:nth-child(4) {width: 200px;}
|
||||
.BRD009 .result .list_item > div:nth-child(5) {width: 200px;}
|
||||
.BRD009 .result .list_item > div:nth-child(2) {width: 150px; text-overflow: ellipsis; white-space: nowrap; overflow: hidden;}
|
||||
.BRD009 .result .list_item > div:nth-child(3) {width: 150px;}
|
||||
.BRD009 .result .list_item > div:nth-child(4) {width: 150px;}
|
||||
.BRD009 .result .list_item > div:nth-child(5) {width: 150px;}
|
||||
.BRD009 .result .list_item > div:nth-child(6) {width: 150px;}
|
||||
|
||||
/* 게시판 사용관리 등록 */
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
@charset "utf-8";
|
||||
|
||||
|
||||
@media (max-width: 800px) {
|
||||
|
||||
/* Layout */
|
||||
|
|
@ -44,14 +43,14 @@
|
|||
.c_wrap {width: 100%; padding: 0;}
|
||||
.c_wrap .layout {display: block;}
|
||||
.c_wrap .layout .nav {display: block; position: relative; width: 100%;}
|
||||
.c_wrap .layout .nav .inner {border: 0; border-radius: 0; border-bottom: 1px solid #e6e6e6; overflow-x: auto; -ms-overflow-style: none; box-shadow: 3px 4px 5px #ccc;}
|
||||
.c_wrap .layout .nav .inner {border: 0; border-radius: 5px; border-bottom: 1px solid #e6e6e6; overflow-x: auto; -ms-overflow-style: none; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); margin-top: 5px;}
|
||||
.c_wrap .layout .nav .inner::-webkit-scrollbar {display: none;}
|
||||
.c_wrap .layout .nav h2 {position: absolute; top: -9999px;}
|
||||
.c_wrap .layout .nav ul {padding: 0 20px;}
|
||||
.c_wrap .layout .nav ul.menu4 {width: 570px;}
|
||||
.c_wrap .layout .nav ul.menu4 {max-width: 570px;}
|
||||
.c_wrap .layout .nav ul.menu6 {width: 1000px;}
|
||||
.c_wrap .layout .nav ul::after {content: ""; display: block; clear: both;}
|
||||
.c_wrap .layout .nav ul li {float: left;}
|
||||
.c_wrap .layout .nav ul li {float: left; width: 50%; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; } /* added by lim width: 50%; ~~~~ overflow: hidden;*/
|
||||
.c_wrap .layout .nav ul li + li {margin-top: 0;}
|
||||
.c_wrap .layout .nav ul li a {height: 45px; padding: 0 25px; font-size: 15px; line-height: 45px;}
|
||||
.c_wrap .layout .nav ul li a:hover::after {content: none;}
|
||||
|
|
@ -432,6 +431,7 @@
|
|||
|
||||
.QNA_LIST .third_2 .w_500 {width: 100%;}
|
||||
|
||||
/* 로그현황 - 개인정보 로그현황*/
|
||||
.BRD009 .head {display: none;}
|
||||
.BRD009 .result .list_item {padding: 16px 0; border-bottom: 1px solid #dde2e5;}
|
||||
.BRD009 .result .list_item > div {border-bottom: 0; font-size: 14px;}
|
||||
|
|
@ -543,7 +543,8 @@
|
|||
|
||||
.SITE_INTRO .ds_1 .li_1 li {width: 90px; height: 90px; padding-top: 25px;}
|
||||
.SITE_INTRO .ds_1 .li_1 li + li {margin-left: 5px;}
|
||||
|
||||
|
||||
/* 로그현황 - 개인정보 로그현황*/
|
||||
.BRD009 .result .list_item > div:nth-child(3),
|
||||
.BRD009 .result .list_item > div:nth-child(4),
|
||||
.BRD009 .result .list_item > div:nth-child(5),
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavAdmin';
|
|||
import EgovPaging from "components/EgovPaging";
|
||||
import * as EgovNet from "api/egovFetch";
|
||||
import {itemIdxByPage} from "utils/calc";
|
||||
import Button from "react-bootstrap/Button";
|
||||
|
||||
|
||||
function List(props) {
|
||||
|
|
@ -43,35 +42,16 @@ function List(props) {
|
|||
const listIdx = itemIdxByPage(resultCnt , currentPageNo, pageSize, index);
|
||||
|
||||
mutListTag.push(
|
||||
<div>
|
||||
<span>{item.userSe}</span>
|
||||
<span>{item.userId}</span>
|
||||
<span>{item.userNm}</span>
|
||||
<span>{item.email}</span>
|
||||
<span>{item.phoneNum}</span>
|
||||
<span>{item.useYn}</span>
|
||||
<span><Button variant={"danger"} size={"sm"}>삭제</Button></span>
|
||||
<div className={"list_item"}>
|
||||
<div>{item.userSe}</div>
|
||||
<div>{item.userId}</div>
|
||||
<div>{item.userNm}</div>
|
||||
<div>{item.email}</div>
|
||||
<div>{item.phoneNum}</div>
|
||||
<div>{item.useYn}</div>
|
||||
<div><button className={"btn btn_red_h31 px-1"}>삭제</button></div>
|
||||
</div>
|
||||
);
|
||||
/*<Link to={{pathname: URL.ADMIN_NOTICE_DETAIL}}
|
||||
state={{
|
||||
nttId: item.nttId,
|
||||
searchCondition: searchCondition
|
||||
}}
|
||||
key={listIdx} className="list_item" >
|
||||
<div>{listIdx}</div>
|
||||
{(item.replyLc * 1 ? true : false) &&
|
||||
<><div className="al reply">
|
||||
{item.nttSj}
|
||||
</div></>}
|
||||
{(item.replyLc * 1 ? false : true) &&
|
||||
<><div className="al">
|
||||
{item.nttSj}
|
||||
</div></>}
|
||||
<div>{item.frstRegisterNm}</div>
|
||||
<div>{item.frstRegisterPnttm}</div>
|
||||
<div>{item.inqireCo}</div>
|
||||
</Link>*/
|
||||
});
|
||||
if(!mutListTag.length) mutListTag.push(<p className="no_data" key="0">검색된 결과가 없습니다.</p>); // 게시판 목록 초기값
|
||||
setListTag(mutListTag);
|
||||
|
|
@ -127,7 +107,7 @@ function List(props) {
|
|||
<option value="id">아이디</option>
|
||||
<option value="name">이름</option>
|
||||
<option value="email">이메일</option>
|
||||
<option value="phoneNum">전화번호</option>
|
||||
<option value="phoneNum">연락처</option>
|
||||
</select>
|
||||
</label>
|
||||
</li>
|
||||
|
|
@ -152,13 +132,13 @@ function List(props) {
|
|||
</ul>
|
||||
</div>
|
||||
|
||||
<div className="board_list BRD002">
|
||||
<div className="board_list userList">
|
||||
<div className="head">
|
||||
<span>구분</span>
|
||||
<span>아이디</span>
|
||||
<span>이름</span>
|
||||
<span>이메일</span>
|
||||
<span>전화번호</span>
|
||||
<span>연락처</span>
|
||||
<span>상태</span>
|
||||
<span>삭제</span>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ function Join(props) {
|
|||
const location = useLocation();
|
||||
console.log("JoinContent [location] : ", location);
|
||||
|
||||
const [userInfo, setUserInfo] = useState({ id: '', email: '', password: '', passwordChk: '' });
|
||||
const [userInfo, setUserInfo] = useState({ id: '', password: '', passwordChk: '', userNm: '', email: '', phoneNum: ''});
|
||||
const [infoShareChk, setInfoShareChk] = useState(false);
|
||||
const [submitFlag, setSubmitFlag] = useState(true);
|
||||
|
||||
|
|
@ -92,12 +92,16 @@ function Join(props) {
|
|||
<span className="group">
|
||||
<input type="text" name="" title="아이디" placeholder="아이디" value={userInfo?.id}
|
||||
onChange={e => setUserInfo({ ...userInfo, id: e.target.value })} />
|
||||
<input type="text" name="" title="이메일" placeholder="이메일" value={userInfo?.email}
|
||||
onChange={e => setUserInfo({ ...userInfo, email: e.target.value })} />
|
||||
<input type="password" name="" id="passwordInput" title="비밀번호" placeholder="비밀번호"
|
||||
onChange={e => setUserInfo({ ...userInfo, password: e.target.value })}/>
|
||||
<input type="password" name="" id="passwordChkInput" title="비밀번호 확인" placeholder="비밀번호 확인"
|
||||
onChange={e => setUserInfo({ ...userInfo, passwordChk: e.target.value })}/>
|
||||
<input type="text" name="" title="이름" placeholder="이름" value={userInfo?.userNm}
|
||||
onChange={e => setUserInfo({ ...userInfo, userNm: e.target.value })} />
|
||||
<input type="text" name="" title="이메일" placeholder="이메일" value={userInfo?.email}
|
||||
onChange={e => setUserInfo({ ...userInfo, email: e.target.value })} />
|
||||
<input type="text" name="" title="연락처" placeholder="연락처" value={userInfo?.phoneNum}
|
||||
onChange={e => setUserInfo({ ...userInfo, phoneNum: e.target.value })} />
|
||||
</span>
|
||||
<ul className="list">
|
||||
<li>비밀번호는 6~12자의 영문 대/소문자, 숫자, 특수문자를 혼합해서 사용하실 수 있습니다.</li>
|
||||
|
|
|
|||
|
|
@ -38,4 +38,6 @@ out/
|
|||
|
||||
|
||||
**/.idea
|
||||
**/.vscode
|
||||
**/.vscode
|
||||
|
||||
/kcscDev/kcsc-back-end/src/main/resources/application-local.properties
|
||||
|
|
@ -90,4 +90,5 @@ dependencies {
|
|||
implementation 'org.apache.commons:commons-lang3'
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,68 +2,31 @@ package com.dbnt.kcscbackend.admin.committee.schedules.controller;
|
|||
|
||||
|
||||
|
||||
import com.dbnt.kcscbackend.admin.committee.schedules.model.CreateScheduleVO;
|
||||
import com.dbnt.kcscbackend.admin.committee.schedules.service.EgovIndvdlSchdulManageService;
|
||||
import com.dbnt.kcscbackend.config.common.ResultVO;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponses;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 일정관리를 처리하는 Controller Class 구현
|
||||
* @since 2009.04.10
|
||||
* @see
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2009.04.10 장동한 최초 생성
|
||||
* 2011.05.31 JJY 경량환경 커스터마이징버전 생성
|
||||
* </pre>
|
||||
* @author 조재영
|
||||
* @version 1.0
|
||||
* @created 09-6-2011 오전 10:08:04
|
||||
*/
|
||||
|
||||
@Api("SchedulesApiController")
|
||||
@RestController
|
||||
@Tag(name="SchedulesApiController",description = "일정관리")
|
||||
@Tag(name="SchedulesApiController",description = "일정 관리")
|
||||
public class SchedulesApiController {
|
||||
|
||||
|
||||
@Resource(name = "egovIndvdlSchdulManageService")
|
||||
private EgovIndvdlSchdulManageService egovIndvdlSchdulManageService;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 0을 붙여 반환
|
||||
* @return String
|
||||
* @throws
|
||||
*/
|
||||
public String DateTypeIntForString(int iInput) {
|
||||
String sOutput = "";
|
||||
if (Integer.toString(iInput).length() == 1) {
|
||||
sOutput = "0" + Integer.toString(iInput);
|
||||
} else {
|
||||
sOutput = Integer.toString(iInput);
|
||||
}
|
||||
|
||||
return sOutput;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 관리자 단에서 '위원회 관리' > '위원회 일정 관리'에 '등록' 버튼을 누른 후 '위원회 일정 등록' 페이지 로딩 시, 필요한 데이터 불러 오는 API
|
||||
* @param commandMap
|
||||
* @return resultVO
|
||||
* @throws Exception
|
||||
*/
|
||||
@Operation(
|
||||
summary = "'위원회 일정 등록' 페이지 로딩 시, 필요한 데이터 불러 오는 API",
|
||||
description = "관리자 단에서 '위원회 관리' > '위원회 일정 관리'에 '등록' 버튼을 누른 후 '위원회 일정 등록' 페이지 로딩 시, 필요한 데이터 불러 오는 API",
|
||||
|
|
@ -74,18 +37,12 @@ public class SchedulesApiController {
|
|||
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
|
||||
})
|
||||
@GetMapping(value = "/schedule/init")
|
||||
public ResultVO ScheduleInit(@RequestParam Map<String, Object> commandMap) throws Exception {
|
||||
public ResultVO scheduleInit(@RequestParam Map<String, Object> commandMap) throws Exception {
|
||||
ResultVO resultVO = new ResultVO();
|
||||
return egovIndvdlSchdulManageService.ScheduleInit(resultVO);
|
||||
return egovIndvdlSchdulManageService.scheduleInit(resultVO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* '위원회 일정 등록' 페이지에서 심의위원회 첫 번째 거 선택 시, 하위 목록 불러오는 API
|
||||
* @param paramCodeGroup 상위 그룹 번호
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Operation(
|
||||
summary = "'위원회 일정 등록' 페이지에서 심의위원회 첫 번째 거 선택 시, 하위 목록 불러오는 API",
|
||||
description = "관리자 단에서 '위원회 관리' > '위원회 일정 관리'에 '등록' 버튼을 누른 후 '위원회 일정 등록' 페이지에서 심의위원회 첫 번째 거 선택 시, 하위 목록 불러오는 API",
|
||||
|
|
@ -96,9 +53,43 @@ public class SchedulesApiController {
|
|||
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
|
||||
})
|
||||
@GetMapping(value = "/schedule/api/org-api/depth/list")
|
||||
public ResultVO ScheduleApiOrgApiDepthList(@RequestParam Integer paramCodeGroup) throws Exception {
|
||||
public ResultVO scheduleApiOrgApiDepthList(@RequestParam Long paramCodeGroup) throws Exception {
|
||||
ResultVO resultVO = new ResultVO();
|
||||
return egovIndvdlSchdulManageService.ScheduleApiOrgApiDepthList(resultVO, paramCodeGroup);
|
||||
return egovIndvdlSchdulManageService.scheduleApiOrgApiDepthList(resultVO, paramCodeGroup);
|
||||
}
|
||||
|
||||
@Operation(
|
||||
summary = "'위원회 일정 등록' 페이지에서 일정 등록하는 API",
|
||||
description = "관리자 단에서 '위원회 관리' > '위원회 일정 관리'에 '등록' 버튼을 누른 후 '위원회 일정 등록' 페이지에서 일정 등록하는 API",
|
||||
tags = {"SchedulesApiController"}
|
||||
)
|
||||
@ApiResponses(value = {
|
||||
@ApiResponse(responseCode = "200", description = "등록 성공"),
|
||||
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
|
||||
})
|
||||
@PostMapping(value = "/schedule")
|
||||
public ResultVO createSchedule(HttpServletRequest request, CreateScheduleVO createScheduleVO) throws Exception {
|
||||
|
||||
ResultVO resultVO = new ResultVO();
|
||||
|
||||
try {
|
||||
resultVO = egovIndvdlSchdulManageService.createSchedule(resultVO, request, createScheduleVO);
|
||||
} 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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
package com.dbnt.kcscbackend.admin.committee.schedules.model;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.*;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@ApiModel(value = "createScheduleVO", description =
|
||||
"관리자 단에서 '위원회 관리' > '위원회 일정 관리'에 '등록' 버튼을 누른 후 '위원회 일정 등록' 페이지에서 일정 등록하는 API에 사용된다." + ""
|
||||
)
|
||||
@RequiredArgsConstructor
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
public class CreateScheduleVO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 6544623713351174876L;
|
||||
|
||||
@ApiModelProperty(value = "eventId")
|
||||
private Integer eventId;
|
||||
@ApiModelProperty(value = "startDate")
|
||||
private String startDate;
|
||||
@ApiModelProperty(value = "endDate")
|
||||
private String endDate;
|
||||
@ApiModelProperty(value = "title")
|
||||
private String title;
|
||||
@ApiModelProperty(value = "contents")
|
||||
private String contents;
|
||||
@ApiModelProperty(value = "location")
|
||||
private String location;
|
||||
@ApiModelProperty(value = "divMeet")
|
||||
private String divMeet;
|
||||
@ApiModelProperty(value = "upCommittee")
|
||||
private Integer upCommittee;
|
||||
@ApiModelProperty(value = "committee")
|
||||
private Integer committee;
|
||||
}
|
||||
|
|
@ -1,7 +1,12 @@
|
|||
package com.dbnt.kcscbackend.admin.committee.schedules.service;
|
||||
|
||||
|
||||
import com.dbnt.kcscbackend.admin.committee.schedules.model.CreateScheduleVO;
|
||||
import com.dbnt.kcscbackend.config.common.ResultVO;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
* 일정관리를 처리하는 서비스인터페이스 클래스
|
||||
|
|
@ -22,8 +27,10 @@ public interface EgovIndvdlSchdulManageService {
|
|||
|
||||
|
||||
|
||||
public ResultVO ScheduleInit(ResultVO resultVO) throws Exception;
|
||||
public ResultVO scheduleInit(ResultVO resultVO) throws Exception;
|
||||
|
||||
public ResultVO ScheduleApiOrgApiDepthList(ResultVO resultVO, Integer paramCodeGroup) throws Exception;
|
||||
public ResultVO scheduleApiOrgApiDepthList(ResultVO resultVO, Long paramCodeGroup) throws Exception;
|
||||
|
||||
public ResultVO createSchedule(ResultVO resultVO, HttpServletRequest request, CreateScheduleVO createScheduleVO) throws Exception;
|
||||
|
||||
}
|
||||
|
|
@ -1,18 +1,28 @@
|
|||
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.admin.config.repository.TcCodeItemRepository;
|
||||
import com.dbnt.kcscbackend.admin.config.repository.TnCmtEventRepository;
|
||||
import com.dbnt.kcscbackend.admin.config.repository.TnCmtOrgRepository;
|
||||
import com.dbnt.kcscbackend.config.common.ResultVO;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.tomcat.util.json.JSONParser;
|
||||
import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
||||
import org.springframework.boot.configurationprocessor.json.JSONObject;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.sql.Timestamp;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
|
@ -36,9 +46,12 @@ public class EgovIndvdlSchdulManageServiceImpl extends EgovAbstractServiceImpl i
|
|||
|
||||
private final TcCodeItemRepository tcCodeItemRepository;
|
||||
private final TnCmtOrgRepository tnCmtOrgRepository;
|
||||
private final TnCmtEventRepository tnCmtEventRepository;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public ResultVO ScheduleInit(ResultVO resultVO) throws Exception {
|
||||
public ResultVO scheduleInit(ResultVO resultVO) throws Exception {
|
||||
|
||||
Map<String, Object> resultMap = new HashMap<String, Object>();
|
||||
|
||||
|
|
@ -52,7 +65,7 @@ public class EgovIndvdlSchdulManageServiceImpl extends EgovAbstractServiceImpl i
|
|||
})
|
||||
|
||||
.collect(Collectors.toList());
|
||||
List<Map<String, Object>> listSubOrg = tnCmtOrgRepository.findByUseYnAndUpCmtSeqOrderByCmtOrder("Y", 3).stream()
|
||||
List<Map<String, Object>> listSubOrg = tnCmtOrgRepository.findByUseYnAndUpCmtSeqOrderByCmtOrder("Y", 3L).stream()
|
||||
.map(item -> {
|
||||
Map<String, Object> codeMap = new HashMap<>();
|
||||
codeMap.put("id", item.getCmtSeq());
|
||||
|
|
@ -60,7 +73,7 @@ public class EgovIndvdlSchdulManageServiceImpl extends EgovAbstractServiceImpl i
|
|||
return codeMap;
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
List<Map<String, Object>> listTopOrg = tnCmtOrgRepository.findByUseYnAndUpCmtSeqOrderByCmtOrder("Y", 2).stream()
|
||||
List<Map<String, Object>> listTopOrg = tnCmtOrgRepository.findByUseYnAndUpCmtSeqOrderByCmtOrder("Y", 2L).stream()
|
||||
.map(item -> {
|
||||
Map<String, Object> codeMap = new HashMap<>();
|
||||
codeMap.put("id", item.getCmtSeq());
|
||||
|
|
@ -78,7 +91,7 @@ public class EgovIndvdlSchdulManageServiceImpl extends EgovAbstractServiceImpl i
|
|||
}
|
||||
|
||||
@Override
|
||||
public ResultVO ScheduleApiOrgApiDepthList(ResultVO resultVO, Integer paramCodeGroup) throws Exception {
|
||||
public ResultVO scheduleApiOrgApiDepthList(ResultVO resultVO, Long paramCodeGroup) throws Exception {
|
||||
Map<String, Object> resultMap = new HashMap<String, Object>();
|
||||
|
||||
|
||||
|
|
@ -98,5 +111,55 @@ public class EgovIndvdlSchdulManageServiceImpl extends EgovAbstractServiceImpl i
|
|||
return resultVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public ResultVO createSchedule(ResultVO resultVO, HttpServletRequest request, CreateScheduleVO createScheduleVO) throws Exception {
|
||||
|
||||
System.out.println(
|
||||
"\n--------------------------------------------------------------\n" +
|
||||
request.getRequestURI() + " IN:" +
|
||||
"\n--------------------------------------------------------------\n" +
|
||||
"createScheduleVO:" + "\n" +
|
||||
createScheduleVO.toString() + "\n" +
|
||||
"\n--------------------------------------------------------------\n"
|
||||
);
|
||||
|
||||
Locale currentLocale = new Locale("KOREAN", "KOREA");
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", currentLocale);
|
||||
Date date = formatter.parse(createScheduleVO.getStartDate());
|
||||
|
||||
LocalDate startDate = date.toInstant()
|
||||
.atZone(ZoneId.systemDefault())
|
||||
.toLocalDate();
|
||||
|
||||
LocalDateTime endDate = Instant.ofEpochMilli(date.getTime())
|
||||
.atZone(ZoneId.systemDefault())
|
||||
.toLocalDateTime();
|
||||
|
||||
Timestamp ts=new Timestamp(date.getTime());
|
||||
|
||||
tnCmtEventRepository.sp_add_tn_cmt_event(
|
||||
createScheduleVO.getDivMeet(),
|
||||
createScheduleVO.getUpCommittee(),
|
||||
createScheduleVO.getCommittee(),
|
||||
createScheduleVO.getTitle(),
|
||||
createScheduleVO.getLocation(),
|
||||
createScheduleVO.getContents(),
|
||||
date,
|
||||
date,
|
||||
"admin",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null
|
||||
);
|
||||
|
||||
//resultVO.setResult();
|
||||
resultVO.setResultMessage("OK");
|
||||
resultVO.setResultCode(0);
|
||||
|
||||
return resultVO;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,77 @@
|
|||
package com.dbnt.kcscbackend.admin.config.entity;
|
||||
|
||||
import lombok.*;
|
||||
import org.hibernate.annotations.DynamicInsert;
|
||||
import org.hibernate.annotations.DynamicUpdate;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Entity
|
||||
@NoArgsConstructor
|
||||
@DynamicInsert
|
||||
@DynamicUpdate
|
||||
@Table(name = "tn_cmt_event")
|
||||
public class TnCmtEvent {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "evt_seq")
|
||||
private Long evt_seq;
|
||||
|
||||
@Column(name = "evt_type")
|
||||
private String evt_type;
|
||||
|
||||
@Column(name = "up_cmt_seq")
|
||||
private Long up_cmt_seq;
|
||||
|
||||
@Column(name = "cmt_seq")
|
||||
private Long cmt_seq;
|
||||
|
||||
@Column(name = "evt_title")
|
||||
private String evt_title;
|
||||
|
||||
@Column(name = "evt_location")
|
||||
private String evt_location;
|
||||
|
||||
@Column(name = "evt_contents")
|
||||
private String evt_contents;
|
||||
|
||||
@Column(name = "evt_start_dt")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime evt_start_dt;
|
||||
|
||||
@Column(name = "evt_end_dt")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime evt_end_dt;
|
||||
|
||||
@Column(name = "frst_crt_id")
|
||||
private String frst_crt_id;
|
||||
|
||||
@Column(name = "frst_crt_dt")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime frst_crt_dt;
|
||||
|
||||
@Column(name = "last_chg_id")
|
||||
private String last_chg_id;
|
||||
|
||||
@Column(name = "last_chg_dt")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime last_chg_dt;
|
||||
|
||||
@Column(name = "use_yn")
|
||||
private String use_yn;
|
||||
|
||||
@Embeddable
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class TnCmtEventId implements Serializable {
|
||||
private Long evt_seq;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -20,7 +20,7 @@ public class TnCmtOrg {
|
|||
|
||||
@Id
|
||||
@Column(name = "cmt_seq")
|
||||
private Integer cmtSeq;
|
||||
private Long cmtSeq;
|
||||
|
||||
@Column(name = "cmt_nm")
|
||||
private String cmtNm;
|
||||
|
|
@ -32,7 +32,7 @@ public class TnCmtOrg {
|
|||
private String cmtDesc;
|
||||
|
||||
@Column(name = "up_cmt_seq")
|
||||
private Integer upCmtSeq;
|
||||
private Long upCmtSeq;
|
||||
|
||||
@Column(name = "cmt_order")
|
||||
private Integer cmtOrder;
|
||||
|
|
@ -55,7 +55,7 @@ public class TnCmtOrg {
|
|||
private String useYn;
|
||||
|
||||
@Column(name = "old_seq")
|
||||
private Integer oldSeq;
|
||||
private Long oldSeq;
|
||||
|
||||
@Embeddable
|
||||
@Data
|
||||
|
|
|
|||
|
|
@ -0,0 +1,47 @@
|
|||
package com.dbnt.kcscbackend.admin.config.repository;
|
||||
|
||||
import com.dbnt.kcscbackend.admin.config.entity.TnCmtEvent;
|
||||
import com.dbnt.kcscbackend.admin.config.entity.TnCmtOrg;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.query.Procedure;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public interface TnCmtEventRepository extends JpaRepository<TnCmtEvent, TnCmtEvent.TnCmtEventId> {
|
||||
@Procedure
|
||||
int sp_add_tn_cmt_event(
|
||||
String evtType,
|
||||
Integer upCmtSeq,
|
||||
Integer cmtSeq,
|
||||
String evtTitle,
|
||||
String evtLocation,
|
||||
String evtContents,
|
||||
Date evtStartDt,
|
||||
Date evtEndDt,
|
||||
String modiId,
|
||||
Integer _evt_seq,
|
||||
Integer _result_count,
|
||||
String _result_code,
|
||||
String _error_message
|
||||
);
|
||||
|
||||
/*
|
||||
@Procedure
|
||||
int sp_add_tn_cmt_event(
|
||||
String _evt_type,
|
||||
Integer _up_cmt_seq,
|
||||
Integer _cmt_seq,
|
||||
String _evt_title,
|
||||
String _evt_location,
|
||||
String _evt_contents,
|
||||
String _evt_start_dt,
|
||||
String _evt_end_dt,
|
||||
String _modi_id
|
||||
);
|
||||
|
||||
*/
|
||||
|
||||
}
|
||||
|
|
@ -7,6 +7,6 @@ import org.springframework.data.jpa.repository.JpaRepository;
|
|||
import java.util.List;
|
||||
|
||||
public interface TnCmtOrgRepository extends JpaRepository<TnCmtOrg, TnCmtOrg.TnCmtOrgId> {
|
||||
List<TnCmtOrg> findByUseYnAndUpCmtSeqOrderByCmtOrder(String useYn, Integer upCmtSeq);
|
||||
List<TnCmtOrg> findByUseYnAndUpCmtSeqOrderByCmtOrder(String useYn, Long upCmtSeq);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,7 +59,12 @@ public class LoginVO implements Serializable{
|
|||
private String userSe;
|
||||
|
||||
@Schema(description = "이름")
|
||||
private String name;
|
||||
@NotBlank(message = "이름을 입력해주세요.")
|
||||
private String userNm;
|
||||
|
||||
@Schema(description = "연락처")
|
||||
@NotBlank(message = "연락처를 입력해주세요.")
|
||||
private String phoneNum;
|
||||
|
||||
@Schema(description = "주민등록번호")
|
||||
private String ihidNum;
|
||||
|
|
|
|||
|
|
@ -59,8 +59,10 @@ public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements Ego
|
|||
UserInfo info = new UserInfo();
|
||||
info.setUserId(loginVO.getId());
|
||||
info.setPassword(convertPassword(loginVO.getPassword()));
|
||||
info.setUserNm(loginVO.getUserNm());
|
||||
info.setEmail(loginVO.getEmail());
|
||||
info.setUserSe("USR");
|
||||
info.setPhoneNum(loginVO.getPhoneNum());
|
||||
info.setUserSe("ACC_TP02");
|
||||
userInfoRepository.save(info);
|
||||
return info.getUserSeq();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ spring.datasource.password=dbnt0928!
|
|||
spring.jpa.show-sql=true
|
||||
spring.jpa.generate-ddl=false
|
||||
spring.jpa.hibernate.naming.physical-strategy = org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
|
||||
spring.jpa.properties.hibernate.proc.param_null_passing=true
|
||||
|
||||
# MyBatis
|
||||
mybatis.mapper-locations: mybatisMapper/*.xml
|
||||
|
|
|
|||
|
|
@ -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!
|
||||
|
||||
|
|
@ -22,6 +22,8 @@ spring.datasource.password=dbnt0928!
|
|||
spring.jpa.show-sql=true
|
||||
spring.jpa.generate-ddl=false
|
||||
spring.jpa.hibernate.naming.physical-strategy = org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
|
||||
spring.jpa.properties.hibernate.proc.param_null_passing=true
|
||||
|
||||
|
||||
# MyBatis
|
||||
mybatis.mapper-locations: mybatisMapper/*.xml
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ spring.datasource.password=dbnt0928!
|
|||
spring.jpa.show-sql=false
|
||||
spring.jpa.generate-ddl=false
|
||||
spring.jpa.hibernate.naming.physical-strategy = org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
|
||||
spring.jpa.properties.hibernate.proc.param_null_passing=true
|
||||
|
||||
# MyBatis
|
||||
mybatis.mapper-locations: mybatisMapper/*.xml
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ spring.datasource.password=dbnt0928!
|
|||
spring.jpa.show-sql=false
|
||||
spring.jpa.generate-ddl=false
|
||||
spring.jpa.hibernate.naming.physical-strategy = org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
|
||||
spring.jpa.properties.hibernate.proc.param_null_passing=true
|
||||
|
||||
# MyBatis
|
||||
mybatis.mapper-locations: mybatisMapper/*.xml
|
||||
|
|
|
|||
Loading…
Reference in New Issue