Compare commits
11 Commits
f502ca3524
...
8ea8a97301
| Author | SHA1 | Date |
|---|---|---|
|
|
8ea8a97301 | |
|
|
fa2d2d6fd3 | |
|
|
2e8e1f2f92 | |
|
|
4a04cab8ce | |
|
|
378611bed7 | |
|
|
611895be83 | |
|
|
6be91489cf | |
|
|
baff901cee | |
|
|
79c62396f3 | |
|
|
dee9fe01f4 | |
|
|
71e2f04bda |
|
|
@ -37,7 +37,7 @@ function SchedulesDetail(props) {
|
||||||
const deleteBoardURL = `/admin/committee/progress-status/${drftSeq}`;
|
const deleteBoardURL = `/admin/committee/progress-status/${drftSeq}`;
|
||||||
|
|
||||||
const requestOptions = {
|
const requestOptions = {
|
||||||
method: "DELETE",
|
method: "POST",
|
||||||
headers: {
|
headers: {
|
||||||
'Content-type': 'application/json',
|
'Content-type': 'application/json',
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,9 @@ const useStyles = makeStyles(() => ({
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const StyledDiv = styled.div`
|
const StyledDiv = styled.div`
|
||||||
|
|
||||||
|
margin-bottom: 100px;
|
||||||
|
|
||||||
.f_select.w_250 {
|
.f_select.w_250 {
|
||||||
@media only screen and (max-width: 768px) {
|
@media only screen and (max-width: 768px) {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
@ -48,6 +51,13 @@ const StyledDiv = styled.div`
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.right_col {
|
||||||
|
position: absolute;
|
||||||
|
right: 0px;
|
||||||
|
top: 0px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,174 +9,11 @@ import Paper from '@mui/material/Paper';
|
||||||
|
|
||||||
import ListSubheader from '@mui/material/ListSubheader';
|
import ListSubheader from '@mui/material/ListSubheader';
|
||||||
|
|
||||||
|
import * as EgovNet from 'api/egovFetch';
|
||||||
|
|
||||||
import ReferenceCodePopupDialogCotentsHeader from './ReferenceCodePopupDialogCotentsHeader';
|
import ReferenceCodePopupDialogCotentsHeader from './ReferenceCodePopupDialogCotentsHeader';
|
||||||
import ReferenceCodePopupDialogCotentsListItem from './ReferenceCodePopupDialogCotentsListItem';
|
import ReferenceCodePopupDialogCotentsListItem from './ReferenceCodePopupDialogCotentsListItem';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const data = [
|
|
||||||
{
|
|
||||||
codeTitle: "KDS 10 00 00",
|
|
||||||
codeName: '설계기준',
|
|
||||||
depth: 1,
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
codeTitle: "KDS 10 10 00",
|
|
||||||
codeName: '공통편',
|
|
||||||
depth: 2,
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
codeTitle: "KDS 10 10 00",
|
|
||||||
codeName: '공통편',
|
|
||||||
depth: 3,
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
codeTitle: "KDS 10 00 00",
|
|
||||||
codeName: '공통 설계기준',
|
|
||||||
depth: 4,
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
codeTitle: "KDS 10 20 00",
|
|
||||||
codeName: '지반 설계 기준',
|
|
||||||
depth: 4,
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
codeTitle: "KDS 12 00 00",
|
|
||||||
codeName: '건설측량 설계기준',
|
|
||||||
depth: 4,
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
codeTitle: "KDS 14 00 00",
|
|
||||||
codeName: '구조 설계기준',
|
|
||||||
depth: 4,
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
codeTitle: "KDS 17 00 00",
|
|
||||||
codeName: '내진 설계기준',
|
|
||||||
depth: 4,
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
codeTitle: "KDS 10 20 00",
|
|
||||||
codeName: '시설물편',
|
|
||||||
depth: 3,
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
codeTitle: "TEST 17 00 00",
|
|
||||||
codeName: 'test',
|
|
||||||
depth: 4,
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
codeTitle: "TEST 17 00 00",
|
|
||||||
codeName: 'test',
|
|
||||||
depth: 4,
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
codeTitle: "TEST 17 00 00",
|
|
||||||
codeName: 'test',
|
|
||||||
depth: 4,
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
codeTitle: "TEST 17 00 00",
|
|
||||||
codeName: 'test',
|
|
||||||
depth: 4,
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
codeTitle: "TEST 17 00 00",
|
|
||||||
codeName: 'test',
|
|
||||||
depth: 4,
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
codeTitle: "TEST 17 00 00",
|
|
||||||
codeName: 'test',
|
|
||||||
depth: 4,
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
codeTitle: "TEST 17 00 00",
|
|
||||||
codeName: 'test',
|
|
||||||
depth: 4,
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
codeTitle: "TEST 17 00 00",
|
|
||||||
codeName: 'test',
|
|
||||||
depth: 4,
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
codeTitle: "TEST 17 00 00",
|
|
||||||
codeName: 'test',
|
|
||||||
depth: 4,
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
codeTitle: "TEST 17 00 00",
|
|
||||||
codeName: 'test',
|
|
||||||
depth: 4,
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
codeTitle: "TEST 17 00 00",
|
|
||||||
codeName: 'test',
|
|
||||||
depth: 4,
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
codeTitle: "TEST 17 00 00",
|
|
||||||
codeName: 'test',
|
|
||||||
depth: 4,
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
codeTitle: "KDS 10 20 00",
|
|
||||||
codeName: '시설물편',
|
|
||||||
depth: 2,
|
|
||||||
children: [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{ codeTitle: "KCS 20 00 00", codeName: '표준시방서', depth: 1, },
|
|
||||||
{ codeTitle: "SMCS 40 00 00", codeName: '서울시 전문시방서', depth: 1, },
|
|
||||||
{ codeTitle: "EXCS 50 00 00", codeName: '고속도로공사 전문시방서', depth: 1, },
|
|
||||||
{ codeTitle: "KRCCS 60 00 00", codeName: '농업생산기반시설 전문시방서', depth: 1, },
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
const FireNav = styled(List)({
|
const FireNav = styled(List)({
|
||||||
'& .MuiListItemButton-root': {
|
'& .MuiListItemButton-root': {
|
||||||
paddingLeft: 0,
|
paddingLeft: 0,
|
||||||
|
|
@ -194,12 +31,37 @@ const FireNav = styled(List)({
|
||||||
|
|
||||||
export default function ReferenceCodePopupDialogCotents() {
|
export default function ReferenceCodePopupDialogCotents() {
|
||||||
|
|
||||||
const [selectedValue, setSelectedValue] = React.useState('a');
|
const [StandardCodeList, setSelectedValue] = React.useState(null);
|
||||||
|
|
||||||
|
const [standardCodeList, setStandardCodeList] = React.useState(null);
|
||||||
|
|
||||||
const handleChange = (event) => {
|
const handleChange = (event) => {
|
||||||
setSelectedValue(event.target.value);
|
setSelectedValue(event.target.value);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
React.useEffect(function () {
|
||||||
|
getStandardCodeList();
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const requestOptions = {
|
||||||
|
method: "GET",
|
||||||
|
headers: {
|
||||||
|
'Content-type': 'application/json'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const getStandardCodeList = () => {
|
||||||
|
|
||||||
|
EgovNet.requestFetch(`/admin/committee/progress-status/standard-code-api/list`,
|
||||||
|
requestOptions,
|
||||||
|
function (resp) {
|
||||||
|
console.log('%o', resp);
|
||||||
|
setStandardCodeList(resp.result.items);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
@ -224,22 +86,21 @@ export default function ReferenceCodePopupDialogCotents() {
|
||||||
<FireNav
|
<FireNav
|
||||||
sx={{ my: 0, }}
|
sx={{ my: 0, }}
|
||||||
component="nav" disablePadding>
|
component="nav" disablePadding>
|
||||||
<ListItemButton component="a" href="#customized-list">
|
|
||||||
<ListItemText
|
<ListItemText
|
||||||
sx={{ my: 0 }}
|
sx={{ my: 0 }}
|
||||||
primary="문서번호 또는 코드명을 선택 하시면 하위 문서를 검색 하실 수 있습니다"
|
primary="문서번호 또는 코드명을 선택 하시면 하위 문서를 검색 하실 수 있습니다"
|
||||||
primaryTypographyProps={{
|
primaryTypographyProps={{
|
||||||
backgroundColor: '#ffffff',
|
backgroundColor: '#fafafa',
|
||||||
color: '#333333',
|
color: '#333333',
|
||||||
border: '1px solid #333333',
|
border: '1px solid #eaeaea',
|
||||||
fontSize: 15,
|
fontSize: 15,
|
||||||
fontWeight: 'medium',
|
fontWeight: 'bold',
|
||||||
letterSpacing: 0,
|
letterSpacing: 0,
|
||||||
padding: '10px',
|
padding: '10px',
|
||||||
borderRadius: '6px',
|
borderRadius: '6px',
|
||||||
|
marginBottom: '20px',
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</ListItemButton>
|
|
||||||
|
|
||||||
<List
|
<List
|
||||||
sx={{ width: '100%' }}
|
sx={{ width: '100%' }}
|
||||||
|
|
@ -261,7 +122,7 @@ export default function ReferenceCodePopupDialogCotents() {
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<ReferenceCodePopupDialogCotentsListItem
|
<ReferenceCodePopupDialogCotentsListItem
|
||||||
data={data}
|
data={standardCodeList}
|
||||||
/>
|
/>
|
||||||
</List>
|
</List>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ export default function ReferenceCodePopupDialogCotentsHeader() {
|
||||||
fontSize: ' 16px',
|
fontSize: ' 16px',
|
||||||
display: 'grid',
|
display: 'grid',
|
||||||
gridAutoFlow: 'row',
|
gridAutoFlow: 'row',
|
||||||
gridTemplateColumns: 'auto 160px 90px',
|
gridTemplateColumns: 'auto 175px 60px',
|
||||||
gap: 1,
|
gap: 1,
|
||||||
|
|
||||||
}}
|
}}
|
||||||
|
|
|
||||||
|
|
@ -59,10 +59,10 @@ const ItemComponent = (props) => {
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Item
|
<Item
|
||||||
sx={{paddingLeft: `${Number(Number(item.depth)-1) * 20}px`,}}
|
sx={{paddingLeft: `${Number(Number(item.docLevel)-1) * 20}px`,}}
|
||||||
>
|
>
|
||||||
{
|
{
|
||||||
item.children && item.children.length > 0
|
item.children && 0 < item.children.length
|
||||||
?
|
?
|
||||||
<span>
|
<span>
|
||||||
{
|
{
|
||||||
|
|
@ -76,11 +76,17 @@ const ItemComponent = (props) => {
|
||||||
:
|
:
|
||||||
<span> <InsertDriveFileOutlinedIcon sx={{ color: '#777777', height: '30px;'}} /> </span>
|
<span> <InsertDriveFileOutlinedIcon sx={{ color: '#777777', height: '30px;'}} /> </span>
|
||||||
}
|
}
|
||||||
{item.codeTitle}
|
{item.groupTitle}
|
||||||
</Item>
|
</Item>
|
||||||
<Item>{item.codeName}</Item>
|
<Item>{item.groupNm}</Item>
|
||||||
<Item sx={{textAlign: 'center'}}>
|
<Item sx={{textAlign: 'center'}}>
|
||||||
|
{
|
||||||
|
item.children && 0 < item.children.length
|
||||||
|
?
|
||||||
|
<span>-</span>
|
||||||
|
:
|
||||||
<button type="button" class="btn btn_blue_h31 px-1">선택</button>
|
<button type="button" class="btn btn_blue_h31 px-1">선택</button>
|
||||||
|
}
|
||||||
</Item>
|
</Item>
|
||||||
</Box>
|
</Box>
|
||||||
</ListItemButton>
|
</ListItemButton>
|
||||||
|
|
@ -88,6 +94,7 @@ const ItemComponent = (props) => {
|
||||||
{
|
{
|
||||||
item.children &&
|
item.children &&
|
||||||
item.children.map(function(item, index) {
|
item.children.map(function(item, index) {
|
||||||
|
console.log('thkim 2024-03-21 11:29 %o', item);
|
||||||
return (
|
return (
|
||||||
<ItemComponent item={item} index={index} openSelf={open} />
|
<ItemComponent item={item} index={index} openSelf={open} />
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,24 @@
|
||||||
import React, { useState, useEffect } from 'react';
|
import React, { useState, useEffect } from 'react';
|
||||||
import { Link, useLocation, useNavigate } from 'react-router-dom';
|
import { Link, useLocation, useNavigate } from 'react-router-dom';
|
||||||
|
|
||||||
|
import styled from "styled-components";
|
||||||
|
|
||||||
|
|
||||||
import * as EgovNet from 'api/egovFetch';
|
import * as EgovNet from 'api/egovFetch';
|
||||||
import URL from 'constants/url';
|
import URL from 'constants/url';
|
||||||
import CODE from 'constants/code';
|
import CODE from 'constants/code';
|
||||||
|
|
||||||
import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavAdmin';
|
import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavAdmin';
|
||||||
|
|
||||||
|
const StyledDiv = styled.div`
|
||||||
|
.right_col {
|
||||||
|
position: absolute;
|
||||||
|
right: 0px;
|
||||||
|
top: 0px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
function SchedulesDetail(props) {
|
function SchedulesDetail(props) {
|
||||||
console.group("EgovAdminScheduleDetail");
|
console.group("EgovAdminScheduleDetail");
|
||||||
console.log("[Start] EgovAdminScheduleDetail ------------------------------");
|
console.log("[Start] EgovAdminScheduleDetail ------------------------------");
|
||||||
|
|
@ -60,7 +72,7 @@ function SchedulesDetail(props) {
|
||||||
const deleteBoardURL = `/schedule/${schdulId}`;
|
const deleteBoardURL = `/schedule/${schdulId}`;
|
||||||
|
|
||||||
const requestOptions = {
|
const requestOptions = {
|
||||||
method: "DELETE",
|
method: "POST",
|
||||||
headers: {
|
headers: {
|
||||||
'Content-type': 'application/json',
|
'Content-type': 'application/json',
|
||||||
}
|
}
|
||||||
|
|
@ -90,7 +102,7 @@ function SchedulesDetail(props) {
|
||||||
console.log("------------------------------EgovAdminScheduleDetail [End]");
|
console.log("------------------------------EgovAdminScheduleDetail [End]");
|
||||||
console.groupEnd("EgovAdminScheduleDetail");
|
console.groupEnd("EgovAdminScheduleDetail");
|
||||||
return (
|
return (
|
||||||
<div className="container">
|
<StyledDiv className="container">
|
||||||
<div className="c_wrap">
|
<div className="c_wrap">
|
||||||
{/* <!-- Location --> */}
|
{/* <!-- Location --> */}
|
||||||
<div className="location">
|
<div className="location">
|
||||||
|
|
@ -167,7 +179,7 @@ function SchedulesDetail(props) {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</StyledDiv>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ const useStyles = makeStyles(() => ({
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const StyledDiv = styled.div`
|
const StyledDiv = styled.div`
|
||||||
|
margin-bottom: 70px;
|
||||||
.org-under-id {
|
.org-under-id {
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
@media only screen and (max-width: 768px) {
|
@media only screen and (max-width: 768px) {
|
||||||
|
|
@ -51,6 +52,12 @@ const StyledDiv = styled.div`
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.right_col {
|
||||||
|
position: absolute;
|
||||||
|
right: 0px;
|
||||||
|
top: 0px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
function SchedulesEdit(props) {
|
function SchedulesEdit(props) {
|
||||||
|
|
@ -252,7 +259,7 @@ function SchedulesEdit(props) {
|
||||||
}
|
}
|
||||||
if (formData.get('schdulBgnde') > formData.get('schdulEndde')) {
|
if (formData.get('schdulBgnde') > formData.get('schdulEndde')) {
|
||||||
alert("종료일시는 시작일시보다 앞 설 수 없습니다.");
|
alert("종료일시는 시작일시보다 앞 설 수 없습니다.");
|
||||||
//return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -286,7 +293,7 @@ function SchedulesEdit(props) {
|
||||||
const deleteBoardURL = `/schedule/${schdulId}`;
|
const deleteBoardURL = `/schedule/${schdulId}`;
|
||||||
|
|
||||||
const requestOptions = {
|
const requestOptions = {
|
||||||
method: "DELETE",
|
method: "POST",
|
||||||
headers: {
|
headers: {
|
||||||
'Content-type': 'application/json',
|
'Content-type': 'application/json',
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -155,7 +155,7 @@ function CommitteeCodeMgt(props) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const requestOptions = {
|
const requestOptions = {
|
||||||
method: "DELETE",
|
method: "POST",
|
||||||
headers: {
|
headers: {
|
||||||
'Content-type': 'application/json',
|
'Content-type': 'application/json',
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -218,7 +218,7 @@ function PopupEditor(props) {
|
||||||
const deleteBoardURL = `/contents/api/popup-manage/${popupId}`;
|
const deleteBoardURL = `/contents/api/popup-manage/${popupId}`;
|
||||||
|
|
||||||
const requestOptions = {
|
const requestOptions = {
|
||||||
method: "DELETE",
|
method: "POST",
|
||||||
headers: {
|
headers: {
|
||||||
'Content-type': 'application/json',
|
'Content-type': 'application/json',
|
||||||
}
|
}
|
||||||
|
|
@ -247,7 +247,7 @@ function PopupEditor(props) {
|
||||||
const deleteFileURL = `/contents/api/popup-manage/file/${fileSeq}`;
|
const deleteFileURL = `/contents/api/popup-manage/file/${fileSeq}`;
|
||||||
|
|
||||||
const requestOptions = {
|
const requestOptions = {
|
||||||
method: "DELETE",
|
method: "POST",
|
||||||
headers: {
|
headers: {
|
||||||
'Content-type': 'application/json',
|
'Content-type': 'application/json',
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -223,7 +223,7 @@ function StandardResearchEditor(props) {
|
||||||
const deleteBoardURL = `/contents/standard-research/${rsId}`;
|
const deleteBoardURL = `/contents/standard-research/${rsId}`;
|
||||||
|
|
||||||
const requestOptions = {
|
const requestOptions = {
|
||||||
method: "DELETE",
|
method: "POST",
|
||||||
headers: {
|
headers: {
|
||||||
'Content-type': 'application/json',
|
'Content-type': 'application/json',
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3650,6 +3650,11 @@ cjs-module-lexer@^1.0.0:
|
||||||
resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz"
|
resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz"
|
||||||
integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==
|
integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==
|
||||||
|
|
||||||
|
classnames@^2.2.5:
|
||||||
|
version "2.5.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b"
|
||||||
|
integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==
|
||||||
|
|
||||||
classnames@^2.2.6, classnames@^2.3.2:
|
classnames@^2.2.6, classnames@^2.3.2:
|
||||||
version "2.3.2"
|
version "2.3.2"
|
||||||
resolved "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz"
|
resolved "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz"
|
||||||
|
|
@ -3904,6 +3909,11 @@ cosmiconfig@^7.0.0:
|
||||||
path-type "^4.0.0"
|
path-type "^4.0.0"
|
||||||
yaml "^1.10.0"
|
yaml "^1.10.0"
|
||||||
|
|
||||||
|
countup.js@^2.8.0:
|
||||||
|
version "2.8.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/countup.js/-/countup.js-2.8.0.tgz#64951f2df3ede28839413d654d8fef28251c32a8"
|
||||||
|
integrity sha512-f7xEhX0awl4NOElHulrl4XRfKoNH3rB+qfNSZZyjSZhaAoUk6elvhH+MNxMmlmuUJ2/QNTWPSA7U4mNtIAKljQ==
|
||||||
|
|
||||||
cross-spawn@^7.0.2, cross-spawn@^7.0.3:
|
cross-spawn@^7.0.2, cross-spawn@^7.0.3:
|
||||||
version "7.0.3"
|
version "7.0.3"
|
||||||
resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
|
resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
|
||||||
|
|
@ -4620,6 +4630,11 @@ enhanced-resolve@^5.10.0:
|
||||||
graceful-fs "^4.2.4"
|
graceful-fs "^4.2.4"
|
||||||
tapable "^2.2.0"
|
tapable "^2.2.0"
|
||||||
|
|
||||||
|
enquire.js@^2.1.6:
|
||||||
|
version "2.1.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/enquire.js/-/enquire.js-2.1.6.tgz#3e8780c9b8b835084c3f60e166dbc3c2a3c89814"
|
||||||
|
integrity sha512-/KujNpO+PT63F7Hlpu4h3pE3TokKRHN26JYmQpPyjkRD/N57R7bPDNojMXdi7uveAKjYB7yQnartCxZnFWr0Xw==
|
||||||
|
|
||||||
entities@^2.0.0:
|
entities@^2.0.0:
|
||||||
version "2.2.0"
|
version "2.2.0"
|
||||||
resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz"
|
resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz"
|
||||||
|
|
@ -6875,6 +6890,13 @@ json-stable-stringify-without-jsonify@^1.0.1:
|
||||||
resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
|
resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
|
||||||
integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
|
integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
|
||||||
|
|
||||||
|
json2mq@^0.2.0:
|
||||||
|
version "0.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/json2mq/-/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a"
|
||||||
|
integrity sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==
|
||||||
|
dependencies:
|
||||||
|
string-convert "^0.2.0"
|
||||||
|
|
||||||
json5@^1.0.2:
|
json5@^1.0.2:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz"
|
resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz"
|
||||||
|
|
@ -8563,6 +8585,13 @@ react-copy-to-clipboard@^5.1.0:
|
||||||
copy-to-clipboard "^3.3.1"
|
copy-to-clipboard "^3.3.1"
|
||||||
prop-types "^15.8.1"
|
prop-types "^15.8.1"
|
||||||
|
|
||||||
|
react-countup@^6.5.3:
|
||||||
|
version "6.5.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-countup/-/react-countup-6.5.3.tgz#e892aa3eab2d6ba9c3cdba30bf4ed6764826d848"
|
||||||
|
integrity sha512-udnqVQitxC7QWADSPDOxVWULkLvKUWrDapn5i53HE4DPRVgs+Y5rr4bo25qEl8jSh+0l2cToJgGMx+clxPM3+w==
|
||||||
|
dependencies:
|
||||||
|
countup.js "^2.8.0"
|
||||||
|
|
||||||
react-csv@^2.2.2:
|
react-csv@^2.2.2:
|
||||||
version "2.2.2"
|
version "2.2.2"
|
||||||
resolved "https://registry.npmjs.org/react-csv/-/react-csv-2.2.2.tgz"
|
resolved "https://registry.npmjs.org/react-csv/-/react-csv-2.2.2.tgz"
|
||||||
|
|
@ -8781,6 +8810,17 @@ react-scripts@5.0.1:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents "^2.3.2"
|
fsevents "^2.3.2"
|
||||||
|
|
||||||
|
react-slick@^0.30.2:
|
||||||
|
version "0.30.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-slick/-/react-slick-0.30.2.tgz#b28e992f9c519bb516a0af8d37e82cb59fee08ce"
|
||||||
|
integrity sha512-XvQJi7mRHuiU3b9irsqS9SGIgftIfdV5/tNcURTb5LdIokRA5kIIx3l4rlq2XYHfxcSntXapoRg/GxaVOM1yfg==
|
||||||
|
dependencies:
|
||||||
|
classnames "^2.2.5"
|
||||||
|
enquire.js "^2.1.6"
|
||||||
|
json2mq "^0.2.0"
|
||||||
|
lodash.debounce "^4.0.8"
|
||||||
|
resize-observer-polyfill "^1.5.0"
|
||||||
|
|
||||||
react-smooth@^2.0.5:
|
react-smooth@^2.0.5:
|
||||||
version "2.0.5"
|
version "2.0.5"
|
||||||
resolved "https://registry.npmjs.org/react-smooth/-/react-smooth-2.0.5.tgz"
|
resolved "https://registry.npmjs.org/react-smooth/-/react-smooth-2.0.5.tgz"
|
||||||
|
|
@ -9006,6 +9046,11 @@ requires-port@^1.0.0:
|
||||||
resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz"
|
resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz"
|
||||||
integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
|
integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
|
||||||
|
|
||||||
|
resize-observer-polyfill@^1.5.0:
|
||||||
|
version "1.5.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"
|
||||||
|
integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==
|
||||||
|
|
||||||
resolve-cwd@^3.0.0:
|
resolve-cwd@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz"
|
resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz"
|
||||||
|
|
@ -9351,6 +9396,11 @@ slash@^4.0.0:
|
||||||
resolved "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz"
|
resolved "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz"
|
||||||
integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
|
integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
|
||||||
|
|
||||||
|
slick-carousel@^1.8.1:
|
||||||
|
version "1.8.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/slick-carousel/-/slick-carousel-1.8.1.tgz#a4bfb29014887bb66ce528b90bd0cda262cc8f8d"
|
||||||
|
integrity sha512-XB9Ftrf2EEKfzoQXt3Nitrt/IPbT+f1fgqBdoxO3W/+JYvtEOW6EgxnWfr9GH6nmULv7Y2tPmEX3koxThVmebA==
|
||||||
|
|
||||||
sockjs@^0.3.24:
|
sockjs@^0.3.24:
|
||||||
version "0.3.24"
|
version "0.3.24"
|
||||||
resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz"
|
resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz"
|
||||||
|
|
@ -9481,6 +9531,11 @@ stop-iteration-iterator@^1.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
internal-slot "^1.0.4"
|
internal-slot "^1.0.4"
|
||||||
|
|
||||||
|
string-convert@^0.2.0:
|
||||||
|
version "0.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97"
|
||||||
|
integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==
|
||||||
|
|
||||||
string-length@^4.0.1:
|
string-length@^4.0.1:
|
||||||
version "4.0.2"
|
version "4.0.2"
|
||||||
resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz"
|
resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz"
|
||||||
|
|
|
||||||
|
|
@ -112,4 +112,42 @@ public class AdminCommitteeController extends BaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Operation(
|
||||||
|
summary = "'진행현황 관리' 페이지에서 등록 또는 수정 시 '기준코드' 목록 불러오는 API",
|
||||||
|
description = "관리자 단에서 '위원회관리' > '진행현황 관리' 페이지에서 하단 '등록' 버튼 누른 후 '기준코드'에서 보여질 기준코드 목록 불러오는 API",
|
||||||
|
tags = {"AdminCommitteeController"}
|
||||||
|
)
|
||||||
|
@ApiResponses(value = {
|
||||||
|
@ApiResponse(responseCode = "200", description = "조회 성공")
|
||||||
|
})
|
||||||
|
@GetMapping(value = "/progress-status/standard-code-api/list")
|
||||||
|
public ResultVO getCommitteeProgressStatusStandardCodeApiList(
|
||||||
|
HttpServletRequest request,
|
||||||
|
@AuthenticationPrincipal LoginVO user
|
||||||
|
)
|
||||||
|
throws Exception {
|
||||||
|
|
||||||
|
ResultVO resultVO = new ResultVO();
|
||||||
|
|
||||||
|
try {
|
||||||
|
resultVO = adminCommitteeProgressStatusService.getCommitteeProgressStatusStandardCodeApiList(resultVO, request, user);
|
||||||
|
} catch (Exception e) {
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -146,7 +146,7 @@ public class SchedulesApiController {
|
||||||
@ApiResponse(responseCode = "200", description = "등록 성공"),
|
@ApiResponse(responseCode = "200", description = "등록 성공"),
|
||||||
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
|
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
|
||||||
})
|
})
|
||||||
@DeleteMapping(value = "/schedule/{scheduleId}")
|
@PostMapping(value = "/schedule/{scheduleId}")
|
||||||
public ResultVO deleteSchedule
|
public ResultVO deleteSchedule
|
||||||
(
|
(
|
||||||
@AuthenticationPrincipal LoginVO user,
|
@AuthenticationPrincipal LoginVO user,
|
||||||
|
|
|
||||||
|
|
@ -15,5 +15,7 @@ public interface AdminCommitteeProgressStatusService {
|
||||||
public ResultVO deleteCommitteeProgressStatus(ResultVO resultVO, HttpServletRequest request, LoginVO user, Long drftSeq) throws Exception;
|
public ResultVO deleteCommitteeProgressStatus(ResultVO resultVO, HttpServletRequest request, LoginVO user, Long drftSeq) throws Exception;
|
||||||
|
|
||||||
public ResultVO getCommitteeProgressStatusDetail(ResultVO resultVO, HttpServletRequest request, LoginVO user, Long drftSeq) throws Exception;
|
public ResultVO getCommitteeProgressStatusDetail(ResultVO resultVO, HttpServletRequest request, LoginVO user, Long drftSeq) throws Exception;
|
||||||
|
public ResultVO getCommitteeProgressStatusStandardCodeApiList(ResultVO resultVO, HttpServletRequest request, LoginVO user) throws Exception;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -17,12 +17,17 @@ import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
||||||
import org.egovframe.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
import org.egovframe.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.json.simple.JSONArray;
|
||||||
|
import org.json.simple.JSONObject;
|
||||||
|
import org.json.simple.parser.JSONParser;
|
||||||
|
|
||||||
@Service("adminCommitteeProgressStatusService")
|
@Service("adminCommitteeProgressStatusService")
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class AdminCommitteeProgressStatusServiceImpl extends EgovAbstractServiceImpl implements AdminCommitteeProgressStatusService {
|
public class AdminCommitteeProgressStatusServiceImpl extends EgovAbstractServiceImpl implements AdminCommitteeProgressStatusService {
|
||||||
|
|
@ -245,4 +250,99 @@ public class AdminCommitteeProgressStatusServiceImpl extends EgovAbstractService
|
||||||
return resultVO;
|
return resultVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResultVO getCommitteeProgressStatusStandardCodeApiList(ResultVO resultVO, HttpServletRequest request, LoginVO user) throws Exception {
|
||||||
|
|
||||||
|
System.out.println("\n--------------------------------------------------------------\n" +
|
||||||
|
request.getRequestURI() + " IN:" +
|
||||||
|
"\n--------------------------------------------------------------\n" +
|
||||||
|
"user.getEmail():" + "\n" +
|
||||||
|
user.getEmail() + "\n" +
|
||||||
|
"\n--------------------------------------------------------------\n");
|
||||||
|
long startTime = System.currentTimeMillis();
|
||||||
|
List<Map<String, Object>> standardCodeList = tnCmtDraftRepository.getCommitteeProgressStatusStandardCodeApiList();
|
||||||
|
Map<Integer, List<Map<String, Object>>> nodeMap = new HashMap<>();
|
||||||
|
|
||||||
|
// nodeMap 초기화
|
||||||
|
for (int i = 1; i <= 6; i++) {
|
||||||
|
nodeMap.put(i, new ArrayList<>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// docLevel 별로 데이터 분류
|
||||||
|
for (Map<String, Object> standardCode : standardCodeList) {
|
||||||
|
int nDocLevel = (int) standardCode.get("doc_level");
|
||||||
|
nodeMap.get(nDocLevel).add(standardCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONArray items = buildJsonTree(nodeMap, 1, null); // 재귀 호출 시작 (루트 노드부터)
|
||||||
|
|
||||||
|
Map<String, Object> dto = new HashMap<>();
|
||||||
|
dto.put("items", items);
|
||||||
|
resultVO.setResult(dto);
|
||||||
|
resultVO.setResultCode(ResponseCode.SUCCESS.getCode());
|
||||||
|
resultVO.setResultMessage(ResponseCode.SUCCESS.getMessage());
|
||||||
|
|
||||||
|
long endTime = System.currentTimeMillis();
|
||||||
|
long elapsedTime = endTime - startTime;
|
||||||
|
System.out.println("처리 시간: " + elapsedTime + "ms");
|
||||||
|
|
||||||
|
return resultVO;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private JSONArray buildJsonTree(Map<Integer, List<Map<String, Object>>> nodeMap, int docLevel, Integer upperParentgroupSeq) {
|
||||||
|
JSONArray items = new JSONArray();
|
||||||
|
List<Map<String, Object>> currentNodes = nodeMap.get(docLevel);
|
||||||
|
|
||||||
|
for (Map<String, Object> node : currentNodes) {
|
||||||
|
Integer groupSeq = (Integer) node.get("group_seq");
|
||||||
|
Integer parentGroupSeq = (Integer) node.get("parent_group_seq");
|
||||||
|
JSONObject item = new JSONObject();
|
||||||
|
if( upperParentgroupSeq == null || upperParentgroupSeq.equals( parentGroupSeq) ) {
|
||||||
|
String kcscCd = (String)node.get("kcsc_cd");
|
||||||
|
String groupFullCd = (String) node.get("group_full_cd");
|
||||||
|
item.put("docLevel", node.get("doc_level"));
|
||||||
|
item.put("groupTitle", makeCode(kcscCd, groupFullCd, docLevel));
|
||||||
|
item.put("groupNm", node.get("group_nm"));
|
||||||
|
item.put("groupSeq", groupSeq);
|
||||||
|
if (nodeMap.containsKey(docLevel + 1)) { // 자식 노드 존재 여부 확인
|
||||||
|
item.put("children", buildJsonTree(nodeMap, docLevel + 1, groupSeq)); // 재귀 호출
|
||||||
|
} else {
|
||||||
|
item.put("children", new JSONArray());
|
||||||
|
}
|
||||||
|
|
||||||
|
items.add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return items;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String makeCode(String kcscCd, String groupFullCd, int docLevel) {
|
||||||
|
if( docLevel < 3 ) {
|
||||||
|
int codeLength = groupFullCd.length();
|
||||||
|
String firstWord = kcscCd.split(" ")[0]; // 공백을 기준으로 문자열을 분리하고 첫 번째 요소를 가져옴
|
||||||
|
|
||||||
|
if (codeLength == 2) {
|
||||||
|
return String.format("%s %s %s", firstWord, groupFullCd, "00 00");
|
||||||
|
} else {
|
||||||
|
return String.format("%s %s %s", spaceEveryTwoChars(firstWord), groupFullCd, "00");
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
return kcscCd;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String spaceEveryTwoChars(String input) {
|
||||||
|
StringBuilder result = new StringBuilder();
|
||||||
|
for (int i = 0; i < input.length(); i++) {
|
||||||
|
result.append(input.charAt(i));
|
||||||
|
if ((i + 1) % 2 == 0 && i != input.length() - 1) { // 짝수 번째 문자이고 마지막 문자가 아닌 경우
|
||||||
|
result.append(" "); // 띄어쓰기 추가
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -464,7 +464,7 @@ public class AdminConfigController extends BaseController {
|
||||||
@ApiResponse(responseCode = "200", description = "등록 성공"),
|
@ApiResponse(responseCode = "200", description = "등록 성공"),
|
||||||
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
|
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
|
||||||
})
|
})
|
||||||
@DeleteMapping(value = "/committee-code-mgt/{orgId}")
|
@PostMapping(value = "/committee-code-mgt/{orgId}")
|
||||||
public ResultVO deleteSchedule
|
public ResultVO deleteSchedule
|
||||||
(
|
(
|
||||||
@AuthenticationPrincipal LoginVO user,
|
@AuthenticationPrincipal LoginVO user,
|
||||||
|
|
|
||||||
|
|
@ -167,7 +167,7 @@ public class PopUpApiController {
|
||||||
@ApiResponse(responseCode = "200", description = "등록 성공"),
|
@ApiResponse(responseCode = "200", description = "등록 성공"),
|
||||||
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님"),
|
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님"),
|
||||||
})
|
})
|
||||||
@DeleteMapping(value = "/contents/api/popup-manage/{popupId}")
|
@PostMapping(value = "/contents/api/popup-manage/{popupId}")
|
||||||
public ResultVO contentsApiPopUpManageDelete
|
public ResultVO contentsApiPopUpManageDelete
|
||||||
(
|
(
|
||||||
@AuthenticationPrincipal LoginVO user,
|
@AuthenticationPrincipal LoginVO user,
|
||||||
|
|
@ -282,7 +282,7 @@ public class PopUpApiController {
|
||||||
@ApiResponse(responseCode = "200", description = "등록 성공"),
|
@ApiResponse(responseCode = "200", description = "등록 성공"),
|
||||||
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님"),
|
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님"),
|
||||||
})
|
})
|
||||||
@DeleteMapping(value = "/contents/api/popup-manage/file/{fileSeq}")
|
@PostMapping(value = "/contents/api/popup-manage/file/{fileSeq}")
|
||||||
public ResultVO deleteFileContentsApiPopUpManage
|
public ResultVO deleteFileContentsApiPopUpManage
|
||||||
(
|
(
|
||||||
@AuthenticationPrincipal LoginVO user,
|
@AuthenticationPrincipal LoginVO user,
|
||||||
|
|
|
||||||
|
|
@ -164,7 +164,7 @@ public class AdminStandardResearchController {
|
||||||
@ApiResponse(responseCode = "200", description = "등록 성공"),
|
@ApiResponse(responseCode = "200", description = "등록 성공"),
|
||||||
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님"),
|
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님"),
|
||||||
})
|
})
|
||||||
@DeleteMapping(value = "/contents/standard-research/{rsId}")
|
@PostMapping(value = "/contents/standard-research/{rsId}")
|
||||||
public ResultVO contentsStandardResearchDelete
|
public ResultVO contentsStandardResearchDelete
|
||||||
(
|
(
|
||||||
@AuthenticationPrincipal LoginVO user,
|
@AuthenticationPrincipal LoginVO user,
|
||||||
|
|
|
||||||
|
|
@ -282,4 +282,26 @@ public interface TnCmtDraftRepository extends JpaRepository<TnCmtDraft, Long> {
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
@Query(value =
|
||||||
|
"select\n" +
|
||||||
|
" tdg.group_seq,\n" +
|
||||||
|
" tdg.kcsc_cd,\n" +
|
||||||
|
" tdg.group_cur_cd,\n" +
|
||||||
|
" tdg.group_nm,\n" +
|
||||||
|
" tdg.group_full_cd,\n" +
|
||||||
|
" tdg.doc_level,\n" +
|
||||||
|
" tdg.parent_group_seq\n" +
|
||||||
|
"from\n" +
|
||||||
|
" tn_document_group tdg\n" +
|
||||||
|
" left join tc_code_item tci on tdg.item_cd = tci.item_cd\n" +
|
||||||
|
"where\n" +
|
||||||
|
" tdg.use_yn = 'Y' and\n" +
|
||||||
|
" tdg.item_cd <> '00'\n" +
|
||||||
|
"order by \n" +
|
||||||
|
" tdg.group_full_cd\n" +
|
||||||
|
"limit 10000",
|
||||||
|
nativeQuery = true)
|
||||||
|
List<Map<String, Object>> getCommitteeProgressStatusStandardCodeApiList( );
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,10 @@ Globals.Allow.Origin = http://localhost:3000
|
||||||
spring.devtools.livereload.enabled=true
|
spring.devtools.livereload.enabled=true
|
||||||
#Datasource Configuration
|
#Datasource Configuration
|
||||||
spring.sql.init.encoding=utf-8
|
spring.sql.init.encoding=utf-8
|
||||||
|
|
||||||
|
spring.servlet.multipart.max-file-size=20MB
|
||||||
|
spring.servlet.multipart.max-request-size=50MB
|
||||||
|
|
||||||
#maximum-pool-size: CPU core count
|
#maximum-pool-size: CPU core count
|
||||||
spring.datasource.hikari.maximum-pool-size=4
|
spring.datasource.hikari.maximum-pool-size=4
|
||||||
#postgresql
|
#postgresql
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
# ??? ? ?? ?? properties ?? ?? ? ?? ??.
|
||||||
|
|
||||||
|
# Access-Control-Allow-Origin
|
||||||
|
Globals.Allow.Origin = https://back.dbnt.co.kr
|
||||||
|
|
||||||
|
server.port=50688
|
||||||
|
|
||||||
|
spring.devtools.livereload.enabled=false
|
||||||
|
server.error.path=/errors
|
||||||
|
|
||||||
|
logging.level.org.apache.tomcat: info
|
||||||
|
logging.level.org.apache.catalina: info
|
||||||
|
|
||||||
|
spring.servlet.multipart.max-file-size=20MB
|
||||||
|
spring.servlet.multipart.max-request-size=50MB
|
||||||
|
|
||||||
|
#Datasource Configuration
|
||||||
|
spring.sql.init.encoding=utf-8
|
||||||
|
#maximum-pool-size: CPU core count
|
||||||
|
spring.datasource.hikari.maximum-pool-size=4
|
||||||
|
#postgresql
|
||||||
|
spring.datasource.driverClassName=org.postgresql.Driver
|
||||||
|
spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/kcsc
|
||||||
|
spring.datasource.username=dbnt0031
|
||||||
|
spring.datasource.password=dbnt0928!
|
||||||
|
|
||||||
|
#jpa
|
||||||
|
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
|
||||||
|
mybatis.configuration.map-underscore-to-camel-case=true
|
||||||
|
mybatis.type-aliases-package=com.dbnt.kcscbackend.**.entity
|
||||||
|
logging.level.com.atoz_develop.mybatissample.repository=info
|
||||||
|
|
||||||
|
# File Config
|
||||||
|
Globals.posblAtchFileSize=5242880
|
||||||
|
Globals.fileStorePath=/kcscUploadFiles
|
||||||
|
Globals.addedOptions=false
|
||||||
|
|
||||||
|
kcsc.opensearch.url=http://192.168.0.89:8090
|
||||||
|
|
@ -12,6 +12,9 @@ server.error.path=/errors
|
||||||
logging.level.org.apache.tomcat: info
|
logging.level.org.apache.tomcat: info
|
||||||
logging.level.org.apache.catalina: info
|
logging.level.org.apache.catalina: info
|
||||||
|
|
||||||
|
spring.servlet.multipart.max-file-size=20MB
|
||||||
|
spring.servlet.multipart.max-request-size=50MB
|
||||||
|
|
||||||
#Datasource Configuration
|
#Datasource Configuration
|
||||||
spring.sql.init.encoding=utf-8
|
spring.sql.init.encoding=utf-8
|
||||||
#maximum-pool-size: CPU core count
|
#maximum-pool-size: CPU core count
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,9 @@ server.error.path=/errors
|
||||||
logging.level.org.apache.tomcat: info
|
logging.level.org.apache.tomcat: info
|
||||||
logging.level.org.apache.catalina: info
|
logging.level.org.apache.catalina: info
|
||||||
|
|
||||||
|
spring.servlet.multipart.max-file-size=20MB
|
||||||
|
spring.servlet.multipart.max-request-size=50MB
|
||||||
|
|
||||||
#Datasource Configuration
|
#Datasource Configuration
|
||||||
spring.sql.init.encoding=utf-8
|
spring.sql.init.encoding=utf-8
|
||||||
#maximum-pool-size: CPU core count
|
#maximum-pool-size: CPU core count
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue