Merge branch 'master' of http://118.219.150.34:50501/DBNT/kcscDev
commit
35c90bbb53
|
|
@ -5,11 +5,11 @@ import * as EgovNet from 'api/egovFetch';
|
||||||
import URL from 'constants/url';
|
import URL from 'constants/url';
|
||||||
import { NOTICE_BBS_ID } from 'config';
|
import { NOTICE_BBS_ID } from 'config';
|
||||||
|
|
||||||
import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavInform';
|
|
||||||
import EgovPaging from 'components/EgovPaging';
|
import EgovPaging from 'components/EgovPaging';
|
||||||
import { itemIdxByPage } from 'utils/calc';
|
import { itemIdxByPage } from 'utils/calc';
|
||||||
|
|
||||||
import StandardCodeListModal from './StandardCodeListModal'
|
import {StandardCodeListModal, StandardCodeListModalTable} from './StandardCodeListModal'
|
||||||
|
|
||||||
function StandardCodeList(props) {
|
function StandardCodeList(props) {
|
||||||
const {listCode} = useParams();
|
const {listCode} = useParams();
|
||||||
|
|
@ -17,8 +17,48 @@ function StandardCodeList(props) {
|
||||||
const [groupseq,setgroupseq] = useState();
|
const [groupseq,setgroupseq] = useState();
|
||||||
function showhandling(e){
|
function showhandling(e){
|
||||||
const param = e.currentTarget.dataset;
|
const param = e.currentTarget.dataset;
|
||||||
|
const groupseq = param.groupseq;
|
||||||
|
console.log(groupseq);
|
||||||
|
EgovNet.requestFetch(
|
||||||
|
'/standardCode/testCodeList.do',
|
||||||
|
{
|
||||||
|
method: "POST",
|
||||||
|
headers: {
|
||||||
|
'Content-type': 'application/json'
|
||||||
|
},
|
||||||
|
body: JSON.stringify(
|
||||||
|
groupseq
|
||||||
|
)
|
||||||
|
},(resp) =>{
|
||||||
|
console.log(resp+"------------------------resp")
|
||||||
|
const body =[];
|
||||||
|
const head =[];
|
||||||
|
if(resp.length>0){
|
||||||
|
|
||||||
|
resp.forEach(function (item,index){
|
||||||
|
const formattedDate = item.aplcnBgngYmd.match(/\d{4}-\d{2}-\d{2}/)[0];
|
||||||
|
const url = "https://www.kcsc.re.kr/file/DownloadGrp/"+item.docFileGrpId;
|
||||||
|
body.push(
|
||||||
|
<tr>
|
||||||
|
<td>{formattedDate}</td>
|
||||||
|
<td><a href={url}>{item.docFileGrpId}</a></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>)
|
||||||
|
})
|
||||||
|
head.push(
|
||||||
|
<tr>
|
||||||
|
<td>년도</td>
|
||||||
|
<td>기준코드</td>
|
||||||
|
<td>신구건설기준비교</td>
|
||||||
|
</tr>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
setgroupseq(<StandardCodeListModalTable head={head} content={body}/>);
|
||||||
|
}
|
||||||
|
)
|
||||||
setshow(true);
|
setshow(true);
|
||||||
setgroupseq(param.groupseq);
|
|
||||||
}
|
}
|
||||||
function close () {
|
function close () {
|
||||||
setshow(false);
|
setshow(false);
|
||||||
|
|
@ -75,29 +115,22 @@ function StandardCodeList(props) {
|
||||||
|
|
||||||
mutListTag.push(
|
mutListTag.push(
|
||||||
<Link
|
<Link
|
||||||
to={"#"}
|
|
||||||
state={{
|
|
||||||
docInfoSeq: item.docInfoSeq,
|
|
||||||
docNm: item.docNm,
|
|
||||||
kcscCd: item.kcscCd,
|
|
||||||
searchCondition: searchCondition
|
|
||||||
}}
|
|
||||||
key={listIdx}
|
key={listIdx}
|
||||||
className="list_item" >
|
className="list_item List_Codes" >
|
||||||
<div></div>
|
<div>{item.mainCategory}</div>
|
||||||
<div></div>
|
<div>{item.middleCategory}</div>
|
||||||
<div>{item.kcscCd}</div>
|
<div>{item.kcscCd}</div>
|
||||||
{(item.replyLc * 1 ? true : false) &&
|
{(item.replyLc * 1 ? true : false) &&
|
||||||
<div className="al reply">
|
<div className="al reply">
|
||||||
{item.docNm}
|
{item.groupNm}
|
||||||
</div>}
|
</div>}
|
||||||
{(item.replyLc * 1 ? false : true) &&
|
{(item.replyLc * 1 ? false : true) &&
|
||||||
<div className="al">
|
<div className="al">
|
||||||
{item.docNm}
|
{item.groupNm}
|
||||||
</div>}
|
</div>}
|
||||||
<div><button onClick={showhandling} data-groupseq = {item.groupSeq}>개정이력</button></div>
|
<div><button onClick={showhandling} data-groupseq = {item.groupSeq}>개정이력</button></div>
|
||||||
<div></div>
|
<div>{item.contentcount>0?<a href = {"/standardCode/viewer/"+item.kcscCd}>{item.kcscCd}</a>:null}</div>
|
||||||
<div></div>
|
<div>{item.docFileGrpId}</div>
|
||||||
<div></div>
|
<div></div>
|
||||||
|
|
||||||
</Link>
|
</Link>
|
||||||
|
|
@ -134,14 +167,14 @@ function StandardCodeList(props) {
|
||||||
|
|
||||||
<div className="layout">
|
<div className="layout">
|
||||||
{/* <!-- Navigation --> */}
|
{/* <!-- Navigation --> */}
|
||||||
<EgovLeftNav/>
|
|
||||||
{/* <!--// Navigation --> */}
|
{/* <!--// Navigation --> */}
|
||||||
|
|
||||||
<div className="contents NOTICE_LIST" id="contents">
|
<div className="contents NOTICE_LIST" id="contents">
|
||||||
{/* <!-- 본문 --> */}
|
{/* <!-- 본문 --> */}
|
||||||
|
|
||||||
<div className="top_tit">
|
<div className="top_tit">
|
||||||
<h1 className="tit_1">건설기준코드</h1>
|
<h2 className="tit_1">건설기준코드</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h2 className="tit_2">설계기준, 표준시방서 내용을 열람할 수 있습니다.</h2>
|
<h2 className="tit_2">설계기준, 표준시방서 내용을 열람할 수 있습니다.</h2>
|
||||||
|
|
@ -206,7 +239,8 @@ function StandardCodeList(props) {
|
||||||
retrieveList({ ...searchCondition, pageIndex: passedPage, searchCnd: cndRef.current.value, searchWrd: wrdRef.current.value })
|
retrieveList({ ...searchCondition, pageIndex: passedPage, searchCnd: cndRef.current.value, searchWrd: wrdRef.current.value })
|
||||||
}} />
|
}} />
|
||||||
{/* <!--/ Paging --> */}
|
{/* <!--/ Paging --> */}
|
||||||
<StandardCodeListModal show ={show} groupseq ={groupseq} onClose = {close}/>
|
<StandardCodeListModal size={"lg"} show ={show} content ={groupseq} onClose = {close} title={"개정이력"}/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* <!--// 본문 --> */}
|
{/* <!--// 본문 --> */}
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,30 @@
|
||||||
import {Button, Modal, ModalBody, ModalFooter, ModalHeader, ModalTitle} from "react-bootstrap";
|
import {Button, Modal, ModalBody, ModalFooter, ModalHeader, ModalTitle} from "react-bootstrap";
|
||||||
|
|
||||||
|
|
||||||
function StandardCodeListModal({show,groupseq,onClose}){
|
function StandardCodeListModal({show,content,onClose,title,size}){
|
||||||
//todo 로직추가구현필요
|
|
||||||
return(
|
return(
|
||||||
<Modal show={show}>
|
<Modal size={size} show={show} aria-labelledby="example-modal-sizes-title-lg">
|
||||||
<ModalHeader>
|
<ModalHeader>
|
||||||
<ModalTitle>개정이력</ModalTitle>
|
<ModalTitle id="example-modal-sizes-title-lg">{title}</ModalTitle>
|
||||||
</ModalHeader>
|
</ModalHeader>
|
||||||
<ModalBody>
|
<ModalBody>
|
||||||
{groupseq}
|
{content}
|
||||||
</ModalBody>
|
</ModalBody>
|
||||||
<ModalFooter><Button onClick={onClose}>닫기</Button></ModalFooter>
|
<ModalFooter><Button onClick={onClose}>닫기</Button></ModalFooter>
|
||||||
</Modal>)
|
</Modal>)
|
||||||
}
|
}
|
||||||
export default StandardCodeListModal;
|
|
||||||
|
function StandardCodeListModalTable({head,content}){
|
||||||
|
return(
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
{head}
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{content}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export {StandardCodeListModal,StandardCodeListModalTable};
|
||||||
|
|
@ -15,6 +15,7 @@ import lombok.RequiredArgsConstructor;
|
||||||
import org.egovframe.rte.fdl.property.EgovPropertyService;
|
import org.egovframe.rte.fdl.property.EgovPropertyService;
|
||||||
import org.egovframe.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
import org.egovframe.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
@ -23,6 +24,7 @@ import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -117,7 +119,7 @@ public class StandardCodeController extends BaseController {
|
||||||
tnDocumentInfo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
tnDocumentInfo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||||
|
|
||||||
Map<String, Object> resultMap = new HashMap<>();
|
Map<String, Object> resultMap = new HashMap<>();
|
||||||
resultMap.put("resultList", standardCodeService.selectStandardCodeList(tnDocumentInfo));
|
resultMap.put("resultList", standardCodeService.selectStandardcodelist(tnDocumentInfo.getListCode()));
|
||||||
resultMap.put("resultCnt", standardCodeService.selectStandardCodeListCnt(tnDocumentInfo));
|
resultMap.put("resultCnt", standardCodeService.selectStandardCodeListCnt(tnDocumentInfo));
|
||||||
Integer totCnt = (Integer) resultMap.get("resultCnt");
|
Integer totCnt = (Integer) resultMap.get("resultCnt");
|
||||||
paginationInfo.setTotalRecordCount(totCnt);
|
paginationInfo.setTotalRecordCount(totCnt);
|
||||||
|
|
@ -130,4 +132,17 @@ public class StandardCodeController extends BaseController {
|
||||||
resultVO.setResult(resultMap);
|
resultVO.setResult(resultMap);
|
||||||
return resultVO;
|
return resultVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Operation(
|
||||||
|
summary = "건설기준코드 개정이력 조회",
|
||||||
|
description = "건설기준코드 개정이력 조회",
|
||||||
|
tags = {"StandardCodeController"}
|
||||||
|
)
|
||||||
|
@PostMapping("/testCodeList.do")
|
||||||
|
public ResponseEntity<List<TnDocumentInfo>> testCodeList(@RequestBody Integer groupseq){
|
||||||
|
return ResponseEntity.ok(standardCodeService.selectStandardCodeRevisionhistoryList(groupseq));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
package com.dbnt.kcscbackend.standardCode.entity;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
import org.hibernate.annotations.DynamicInsert;
|
||||||
|
import org.hibernate.annotations.DynamicUpdate;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Entity
|
||||||
|
@NoArgsConstructor
|
||||||
|
@DynamicInsert
|
||||||
|
@DynamicUpdate
|
||||||
|
public class TnDocumentCodeList {
|
||||||
|
|
||||||
|
@Column(name = "main_category")
|
||||||
|
private String mainCategory;
|
||||||
|
@Column(name = "middle_category")
|
||||||
|
private String middleCategory;
|
||||||
|
@Column(name = "group_nm")
|
||||||
|
private String groupNm;
|
||||||
|
@Column(name = "kcsc_cd")
|
||||||
|
private String kcscCd;
|
||||||
|
@Column(name = "doc_file_grp_id")
|
||||||
|
private String docFileGrpId;
|
||||||
|
@Id
|
||||||
|
@Column(name ="group_seq")
|
||||||
|
private Integer groupSeq;
|
||||||
|
@Column(name = "contentcount")
|
||||||
|
private Integer contentcount;
|
||||||
|
}
|
||||||
|
|
@ -87,6 +87,8 @@ public class TnDocumentInfo {
|
||||||
@Column(name = "old_seq")
|
@Column(name = "old_seq")
|
||||||
private Integer oldSeq;
|
private Integer oldSeq;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Schema(description = "현재페이지")
|
@Schema(description = "현재페이지")
|
||||||
private int pageIndex = 1;
|
private int pageIndex = 1;
|
||||||
@Schema(description = "페이지갯수")
|
@Schema(description = "페이지갯수")
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.dbnt.kcscbackend.standardCode.mapper;
|
package com.dbnt.kcscbackend.standardCode.mapper;
|
||||||
|
|
||||||
|
|
||||||
|
import com.dbnt.kcscbackend.standardCode.entity.TnDocumentCodeList;
|
||||||
import com.dbnt.kcscbackend.standardCode.entity.TnDocumentInfo;
|
import com.dbnt.kcscbackend.standardCode.entity.TnDocumentInfo;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
|
@ -13,4 +14,7 @@ public interface StandardCodeMapper {
|
||||||
|
|
||||||
Integer selectStandardCodeListCnt(TnDocumentInfo tnDocumentInfo);
|
Integer selectStandardCodeListCnt(TnDocumentInfo tnDocumentInfo);
|
||||||
|
|
||||||
|
List<TnDocumentInfo> selectStandardCodeRevisionhistoryList(Integer groupseq);
|
||||||
|
|
||||||
|
List<TnDocumentCodeList> selectStandardcodelist(String code);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.dbnt.kcscbackend.standardCode.service;
|
package com.dbnt.kcscbackend.standardCode.service;
|
||||||
|
|
||||||
|
import com.dbnt.kcscbackend.standardCode.entity.TnDocumentCodeList;
|
||||||
import com.dbnt.kcscbackend.standardCode.entity.TnDocumentInfo;
|
import com.dbnt.kcscbackend.standardCode.entity.TnDocumentInfo;
|
||||||
import com.dbnt.kcscbackend.standardCode.mapper.StandardCodeMapper;
|
import com.dbnt.kcscbackend.standardCode.mapper.StandardCodeMapper;
|
||||||
import com.dbnt.kcscbackend.standardCode.repository.TnDocumentContentRepository;
|
import com.dbnt.kcscbackend.standardCode.repository.TnDocumentContentRepository;
|
||||||
|
|
@ -34,4 +35,11 @@ public class StandardCodeService {
|
||||||
return standardCodeMapper.selectStandardCodeListCnt(tnDocumentInfo);
|
return standardCodeMapper.selectStandardCodeListCnt(tnDocumentInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<TnDocumentInfo> selectStandardCodeRevisionhistoryList(Integer groupseq) {
|
||||||
|
return standardCodeMapper.selectStandardCodeRevisionhistoryList(groupseq);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<TnDocumentCodeList> selectStandardcodelist(String code){
|
||||||
|
return standardCodeMapper.selectStandardcodelist(code);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -61,4 +61,55 @@
|
||||||
</where>
|
</where>
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectStandardCodeRevisionhistoryList" resultType="TnDocumentInfo">
|
||||||
|
select tdi.aplcn_bgng_ymd,tdi.doc_file_grp_id from tn_document_info tdi, tn_document_group tdg
|
||||||
|
where 1 = 1
|
||||||
|
and tdi.group_seq = tdg.group_seq
|
||||||
|
and tdi.kcsc_cd like 'KDS%'
|
||||||
|
and tdi.group_seq =#{groupseq}
|
||||||
|
and tdi.use_yn = 'Y'
|
||||||
|
order by tdi.kcsc_cd;
|
||||||
|
</select>
|
||||||
|
<select id="selectStandardcodelist" resultType="TnDocumentCodeList">
|
||||||
|
select
|
||||||
|
case
|
||||||
|
when a3.doc_level > 1 then a3.doc_code_name
|
||||||
|
else a2.doc_code_name
|
||||||
|
end as main_category,
|
||||||
|
case
|
||||||
|
when a3.doc_level > 1 then a2.doc_code_name
|
||||||
|
else a.group_nm
|
||||||
|
end as middle_category,
|
||||||
|
a.group_nm,
|
||||||
|
a.kcsc_cd,
|
||||||
|
tdi.doc_file_grp_id,
|
||||||
|
a.group_seq,
|
||||||
|
count(tdc.full_content) as contentcount
|
||||||
|
from
|
||||||
|
tn_document_group a
|
||||||
|
left join tn_document_info tdi on
|
||||||
|
a.group_seq = tdi.group_seq
|
||||||
|
left join tn_document_content tdc on
|
||||||
|
tdi.doc_info_seq = tdc.doc_info_seq,
|
||||||
|
sp_get_tn_document_code_by_tree() a2,
|
||||||
|
sp_get_tn_document_code_by_tree() a3
|
||||||
|
where
|
||||||
|
a.parent_group_seq = a2.seq
|
||||||
|
and a2.parent_seq = a3.seq
|
||||||
|
and a.group_full_cd like #{code} || '%'
|
||||||
|
and a.group_type = 'D'
|
||||||
|
and tdi.last_yn = 'Y'
|
||||||
|
group by
|
||||||
|
main_category,
|
||||||
|
middle_category,
|
||||||
|
a.group_nm,
|
||||||
|
a.kcsc_cd,
|
||||||
|
tdi.doc_file_grp_id,
|
||||||
|
a.group_seq
|
||||||
|
order by
|
||||||
|
a.kcsc_cd;
|
||||||
|
|
||||||
|
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
Loading…
Reference in New Issue