Merge branch 'master' of http://118.219.150.34:50501/DBNT/kcscDev
commit
d2901908c8
|
|
@ -15,6 +15,9 @@ import AddIcon from '@mui/icons-material/Add';
|
|||
|
||||
import styledComponent from "styled-components";
|
||||
|
||||
import * as EgovNet from 'api/egovFetch';
|
||||
|
||||
|
||||
const StyledDiv = styledComponent.div`
|
||||
.text-item.active {
|
||||
background-color: #676767;
|
||||
|
|
@ -27,10 +30,14 @@ function generate(items, element, onClickListner,nameKey,
|
|||
let returnValue = [];
|
||||
let nIndex = 0;
|
||||
Object.keys(items).forEach(function(key) {
|
||||
|
||||
|
||||
returnValue = [
|
||||
...returnValue,
|
||||
React.cloneElement(element, {
|
||||
key,
|
||||
'data-key' : key,
|
||||
'data-index' : nIndex,
|
||||
},
|
||||
<Card className="text-item" sx={{ '&': { boxShadow: 'none' } }} key={key} data-index={nIndex} onClick={(e) => {onClickListner(e, key);}}>
|
||||
<CardActionArea sx={{ px: 1 }}>
|
||||
|
|
@ -114,10 +121,19 @@ function ListCreateUpdateDelete(props) {
|
|||
<ListItem
|
||||
secondaryAction={
|
||||
<div>
|
||||
<IconButton sx={{ mx: 0 }} edge="start" aria-label="edit">
|
||||
<IconButton sx={{ mx: 0 }} edge="start" aria-label="edit" onClick={(e)=> {alert('수정 클릭')}}>
|
||||
<EditIcon />
|
||||
</IconButton>
|
||||
<IconButton edge="end" aria-label="delete">
|
||||
<IconButton edge="end" aria-label="delete" onClick={(e)=> {
|
||||
const dataKey = Number(e.currentTarget.parentNode.parentNode.parentNode.getAttribute('data-key'));
|
||||
|
||||
let paramCodeGroup = null;
|
||||
if( props.depthSelectedArrayIndex > 0 ) {
|
||||
paramCodeGroup = props.itemIndex[props.depthSelectedArrayIndex-1];
|
||||
}
|
||||
|
||||
props.onClickDeleteItem(e, paramCodeGroup, props.paramCodeLevel, props.depthSelectedArrayIndex, props.items[dataKey]);
|
||||
}}>
|
||||
<DeleteIcon />
|
||||
</IconButton>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -4,14 +4,11 @@ import Box from '@mui/material/Box';
|
|||
|
||||
import * as EgovNet from 'api/egovFetch';
|
||||
|
||||
|
||||
|
||||
|
||||
import CommitteeCodeRegistrationPopup from './CommitteeCodeMgt/CommitteeCodeRegistrationPopup';
|
||||
|
||||
import ListCreateUpdateDelete from '../../../components/list/ListCreateUpdateDelete'
|
||||
import ListLabelInputs from '../../../components/list/ListLabelInputs'
|
||||
|
||||
import AlertDialogSlide from "../../../components/alert/AlertDialogSlide";
|
||||
|
||||
import URL from 'constants/url';
|
||||
|
||||
|
|
@ -30,6 +27,9 @@ function CommitteeCodeMgt(props) {
|
|||
|
||||
const [summaryArray, setSummaryArray] = useState({});
|
||||
const [depthSelectedIndex, setDepthSelectedIndex] = useState([]);
|
||||
|
||||
const [confirm, setConfirm] = React.useState();
|
||||
|
||||
|
||||
// 위원회 코드 등록 팝업을 보이거나 닫는다.
|
||||
const [isCommitteeCodeRegistrationPopupOpen, setIsCommitteeCodeRegistrationPopupOpen] = React.useState(false);
|
||||
|
|
@ -37,7 +37,7 @@ function CommitteeCodeMgt(props) {
|
|||
|
||||
// '중앙건설기술심의'에서 특정 item선택 시, 하위 '총괄위원회'목록을 불러온다.
|
||||
useEffect(function () {
|
||||
if( typeof depthSelectedIndex[0] !== "undefined" && depth01List[depthSelectedIndex[0]].orgId !== undefined) {
|
||||
if( typeof depthSelectedIndex[0] !== "undefined" && depth01List[depthSelectedIndex[0]] && depth01List[depthSelectedIndex[0]].orgId !== undefined) {
|
||||
setSearchCondition({ paramCodeGroup: depth01List[depthSelectedIndex[0]].orgId, paramCodeLevel: 'LV_02' });
|
||||
setDepth02List({});
|
||||
setDepth03List({});
|
||||
|
|
@ -153,6 +153,64 @@ function CommitteeCodeMgt(props) {
|
|||
]);
|
||||
|
||||
|
||||
const onClickDeleteItem = (e, paramCodeGroup, paramCodeLevel, depthSelectedArrayIndex, deleteItem) => {
|
||||
|
||||
if( deleteItem.orgId === undefined ) {
|
||||
alert('삭제 대상이 존재하지 않습니다.');
|
||||
return false;
|
||||
}
|
||||
|
||||
const requestOptions = {
|
||||
method: "DELETE",
|
||||
headers: {
|
||||
'Content-type': 'application/json',
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
const requestTask = () => {
|
||||
EgovNet.requestFetch(`/admin/config/committee-code-management/${deleteItem.orgId}`,
|
||||
requestOptions,
|
||||
function (resp) {
|
||||
let forChangeObject = {...searchCondition, paramCodeGroup, paramCodeLevel};
|
||||
setSearchCondition(forChangeObject);
|
||||
|
||||
//현재 선택된 아이템을 삭제한 경우 그 하위 목록을 모두 비운다.
|
||||
if( Number(depthSelectedIndex[depthSelectedArrayIndex]) === Number(deleteItem.orgId) ) {
|
||||
|
||||
for( let i = depthSelectedArrayIndex + 1; i<4; i++ ) {
|
||||
//setSearchCondition({...searchCondition, paramCodeLevel : createCondition.paramCodeLevel});
|
||||
depthSelectedIndex[i] = undefined;
|
||||
}
|
||||
let forChangeObject = [...depthSelectedIndex];
|
||||
setDepthSelectedIndex(forChangeObject);
|
||||
|
||||
// eslint-disable-next-line default-case
|
||||
switch(depthSelectedArrayIndex) {
|
||||
case 0:
|
||||
setDepth02List({});
|
||||
// eslint-disable-next-line no-fallthrough
|
||||
case 1:
|
||||
setDepth03List({});
|
||||
// eslint-disable-next-line no-fallthrough
|
||||
case 2:
|
||||
setDepth04List({});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
alert('삭제 되었습니다.');
|
||||
}
|
||||
);
|
||||
};
|
||||
setConfirm({...confirm, open: true, body: "삭제하시겠습니까?", yesCallback: requestTask});
|
||||
}
|
||||
|
||||
const Location = React.memo(function Location() {
|
||||
return (
|
||||
<div className="location">
|
||||
|
|
@ -211,6 +269,7 @@ function CommitteeCodeMgt(props) {
|
|||
idKey="orgId"
|
||||
isPopupOpen = {isCommitteeCodeRegistrationPopupOpen}
|
||||
setIsPopupOpen = {setIsCommitteeCodeRegistrationPopupOpen}
|
||||
onClickDeleteItem={onClickDeleteItem}
|
||||
/>
|
||||
<ListCreateUpdateDelete
|
||||
title="총괄위원회"
|
||||
|
|
@ -220,11 +279,14 @@ function CommitteeCodeMgt(props) {
|
|||
depthSelectedArrayIndex={1}
|
||||
createCondition={createCondition}
|
||||
setCreateCondition={setCreateCondition}
|
||||
searchCondition={searchCondition}
|
||||
setSearchCondition={setSearchCondition}
|
||||
paramCodeLevel="LV_02"
|
||||
nameKey="orgNm"
|
||||
idKey="orgId"
|
||||
isPopupOpen = {isCommitteeCodeRegistrationPopupOpen}
|
||||
setIsPopupOpen = {setIsCommitteeCodeRegistrationPopupOpen}
|
||||
onClickDeleteItem={onClickDeleteItem}
|
||||
/>
|
||||
<ListCreateUpdateDelete
|
||||
title="건설기준위원회"
|
||||
|
|
@ -234,11 +296,14 @@ function CommitteeCodeMgt(props) {
|
|||
depthSelectedArrayIndex={2}
|
||||
createCondition={createCondition}
|
||||
setCreateCondition={setCreateCondition}
|
||||
searchCondition={searchCondition}
|
||||
setSearchCondition={setSearchCondition}
|
||||
paramCodeLevel="LV_03"
|
||||
nameKey="orgNm"
|
||||
idKey="orgId"
|
||||
isPopupOpen = {isCommitteeCodeRegistrationPopupOpen}
|
||||
setIsPopupOpen = {setIsCommitteeCodeRegistrationPopupOpen}
|
||||
onClickDeleteItem={onClickDeleteItem}
|
||||
/>
|
||||
<ListCreateUpdateDelete
|
||||
title="실무위원회"
|
||||
|
|
@ -248,11 +313,14 @@ function CommitteeCodeMgt(props) {
|
|||
depthSelectedArrayIndex={3}
|
||||
createCondition={createCondition}
|
||||
setCreateCondition={setCreateCondition}
|
||||
searchCondition={searchCondition}
|
||||
setSearchCondition={setSearchCondition}
|
||||
paramCodeLevel="LV_04"
|
||||
nameKey="orgNm"
|
||||
idKey="orgId"
|
||||
isPopupOpen = {isCommitteeCodeRegistrationPopupOpen}
|
||||
setIsPopupOpen = {setIsCommitteeCodeRegistrationPopupOpen}
|
||||
onClickDeleteItem={onClickDeleteItem}
|
||||
/>
|
||||
|
||||
</Box>
|
||||
|
|
@ -279,6 +347,8 @@ function CommitteeCodeMgt(props) {
|
|||
searchCondition={searchCondition}
|
||||
setSearchCondition={setSearchCondition}
|
||||
/>
|
||||
|
||||
<AlertDialogSlide confirm={confirm} setConfirm={setConfirm} />
|
||||
{/* <!--// 본문 --> */}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -28,9 +28,12 @@ function CommitteeCodeRegistrationPopup(props) {
|
|||
EgovNet.requestFetch(`/admin/config/committee-code-management`,
|
||||
requestOptions,
|
||||
function (resp) {
|
||||
//window.location.reload();
|
||||
//방금 추가한 것만 새로 읽어 드린다.
|
||||
props.setSearchCondition({...props.searchCondition, paramCodeLevel : props.createCondition.paramCodeLevel});
|
||||
let paramCodeGroup = props.createCondition.paramOrgId;
|
||||
if( paramCodeGroup === "00" ) {
|
||||
paramCodeGroup = null;
|
||||
}
|
||||
props.setSearchCondition({...props.searchCondition, paramCodeGroup, paramCodeLevel : props.createCondition.paramCodeLevel});
|
||||
|
||||
props.setOpen(false);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -447,6 +447,47 @@ public class AdminConfigController extends BaseController {
|
|||
return resultVO;
|
||||
}
|
||||
|
||||
@Operation(
|
||||
summary = "'위원회 코드 관리' 페이지에서 위원회 코드 삭제하는 API",
|
||||
description = "관리자 단에서 '환경설정' > '위원회코드 관리' 페이지에서 휴지통 모양 삭제 버튼으로 항목 삭제하는 API",
|
||||
tags = {"AdminConfigController"}
|
||||
)
|
||||
@ApiResponses(value = {
|
||||
@ApiResponse(responseCode = "200", description = "등록 성공"),
|
||||
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
|
||||
})
|
||||
@DeleteMapping(value = "/committee-code-management/{orgId}")
|
||||
public ResultVO deleteSchedule
|
||||
(
|
||||
@AuthenticationPrincipal LoginVO user,
|
||||
HttpServletRequest request,
|
||||
@PathVariable("orgId") String strOrgId
|
||||
) throws Exception {
|
||||
|
||||
ResultVO resultVO = new ResultVO();
|
||||
Long orgId = Long.valueOf(strOrgId);
|
||||
try {
|
||||
resultVO = adminCommitteeCodeManagementService.deleteCommitteeCodeManagement(resultVO, request, user, orgId);
|
||||
} 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;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* ---- 관련사이트 관리 ----- */
|
||||
@Operation(
|
||||
summary = "관련사이트 목록 조회",
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import com.dbnt.kcscbackend.admin.config.service.AdminCommitteeCodeManagementSer
|
|||
import com.dbnt.kcscbackend.admin.standardResearch.model.CreateStandardResearchVO;
|
||||
import com.dbnt.kcscbackend.admin.standardResearch.model.UpdateStandardResearchVO;
|
||||
import com.dbnt.kcscbackend.auth.entity.LoginVO;
|
||||
import com.dbnt.kcscbackend.commonCode.entity.TnCmtOrg;
|
||||
import com.dbnt.kcscbackend.commonCode.repository.TnCmtOrgRepository;
|
||||
import com.dbnt.kcscbackend.config.common.ResponseCode;
|
||||
import com.dbnt.kcscbackend.config.common.ResultVO;
|
||||
|
|
@ -91,6 +92,7 @@ public class AdminCommitteeCodeManagementServiceImpl extends EgovAbstractService
|
|||
returnMap.put("orgNm", item.getCmtNm());
|
||||
returnMap.put("orgDesc", item.getCmtDesc());
|
||||
returnMap.put("omtOrder", item.getCmtOrder());
|
||||
returnMap.put("upCmtSeq", item.getUpCmtSeq());
|
||||
return returnMap;
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
|
|
@ -110,7 +112,56 @@ public class AdminCommitteeCodeManagementServiceImpl extends EgovAbstractService
|
|||
}
|
||||
|
||||
@Override
|
||||
public ResultVO deleteCommitteeCodeManagement(ResultVO resultVO, HttpServletRequest request, LoginVO user, Long popupId) throws Exception {
|
||||
return null;
|
||||
public ResultVO deleteCommitteeCodeManagement(ResultVO resultVO, HttpServletRequest request, LoginVO user, Long cmtSeq) throws Exception {
|
||||
System.out.println(
|
||||
"\n--------------------------------------------------------------\n" +
|
||||
request.getRequestURI() + " IN:" +
|
||||
"\n--------------------------------------------------------------\n" +
|
||||
"cmtSeq:" + "\n" +
|
||||
cmtSeq + "\n" +
|
||||
"\n--------------------------------------------------------------\n"
|
||||
);
|
||||
|
||||
|
||||
Map<String, Object> response = tnCmtOrgRepository.spDeleteTnCmtOrg(
|
||||
cmtSeq.intValue(),
|
||||
user.getId(),
|
||||
null,
|
||||
null,
|
||||
null
|
||||
);
|
||||
|
||||
// 자식 코드들을 모두 제거한다.
|
||||
getChildrenOrg(user, cmtSeq);
|
||||
|
||||
|
||||
Map<String, Object> dto = new HashMap<String, Object>();
|
||||
dto.put("errorMessage", response.get("_error_message") );
|
||||
dto.put("orgId", cmtSeq );
|
||||
|
||||
resultVO.setResult(dto);
|
||||
resultVO.setResultCode(ResponseCode.SUCCESS.getCode());
|
||||
resultVO.setResultMessage(ResponseCode.SUCCESS.getMessage());
|
||||
|
||||
return resultVO;
|
||||
}
|
||||
|
||||
private void getChildrenOrg(LoginVO user, Long upCmtSeq) {
|
||||
List<Map<String, Object>> list = tnCmtOrgRepository.findByUpCmtSeq(upCmtSeq).stream()
|
||||
.map(item -> {
|
||||
Map<String, Object> returnMap = new HashMap<>();
|
||||
returnMap.put("cmtSeq", item.getCmtSeq());
|
||||
getChildrenOrg( user, item.getCmtSeq() );
|
||||
Map<String, Object> response = tnCmtOrgRepository.spDeleteTnCmtOrg(
|
||||
item.getCmtSeq().intValue(),
|
||||
user.getId(),
|
||||
null,
|
||||
null,
|
||||
null
|
||||
);
|
||||
return returnMap;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
System.out.println("for Debugging");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.dbnt.kcscbackend.commonCode.repository;
|
|||
import com.dbnt.kcscbackend.commonCode.entity.TnCmtOrg;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.jpa.repository.query.Procedure;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -40,4 +41,28 @@ public interface TnCmtOrgRepository extends JpaRepository<TnCmtOrg, TnCmtOrg.TnC
|
|||
);
|
||||
|
||||
|
||||
|
||||
|
||||
@Query(value = "CALL sp_delete_tn_cmt_org (" +
|
||||
":_cmt_seq, " +
|
||||
":_modi_id, " +
|
||||
":_result_count, " +
|
||||
":_result_code, " +
|
||||
":_error_message)",
|
||||
nativeQuery = true)
|
||||
Map<String, Object> spDeleteTnCmtOrg(
|
||||
@Param("_cmt_seq") Integer cmtSeq,
|
||||
@Param("_modi_id") String modiId,
|
||||
@Param("_result_count") Integer resultCount,
|
||||
@Param("_result_code") String resultCode,
|
||||
@Param("_error_message") String errorMessage
|
||||
);
|
||||
|
||||
@Procedure("sp_is_valid_tn_cmt_org_id")
|
||||
int spIsValidTnCmtOrgId( Integer cmtSeq );
|
||||
|
||||
TnCmtOrg findByCmtSeq(Long cmtSeq);
|
||||
List<TnCmtOrg> findByUpCmtSeq(Long upCmtSeq);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue