중간저장.

thkim
강석 최 2024-01-30 17:59:30 +09:00
parent 3657c16a15
commit c308ec3691
9 changed files with 115 additions and 79 deletions

View File

@ -46,14 +46,14 @@
.code_list .result .List_Codes >div:nth-child(7){ .code_list .result .List_Codes >div:nth-child(7){
font-size: 14px; font-size: 14px;
} }
.codelistcontent{ .codeListContent{
padding: 0 0; padding: 10px 0;
width: 80%; width: 100%;
} }
.StandardCodeList{ .StandardCodeList{
max-width: 100%; max-width: 100%;
} }
.listtablediv{ .listTableDiv{
padding: 0 !important; padding: 0 !important;
} }
.vieweratag{ .vieweratag{

View File

@ -50,7 +50,7 @@ body {min-width: 1400px;}
.c_wrap .layout {display: table; width: 100%; table-layout: fixed; padding-bottom: 20px;} /* added by lim padding-bottom: 20px; */ .c_wrap .layout {display: table; width: 100%; table-layout: fixed; padding-bottom: 20px;} /* added by lim padding-bottom: 20px; */
/* sub navigation */ /* sub navigation */
.c_wrap .layout .nav {display: table-cell; width: 220px; vertical-align: top;} /* changed by lim width: 260px; */ /*.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;} .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; */ .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;} .c_wrap .layout .nav h2 {color: #222; font-size: 24px;}

View File

@ -12,6 +12,7 @@ function StandardCodeList({}) {
const [listData, setListData] = useState([]) const [listData, setListData] = useState([])
const [filterData, setFilterData] = useState(''); const [filterData, setFilterData] = useState('');
const [resultCnt, setResultCnt] = useState(0); const [resultCnt, setResultCnt] = useState(0);
const [remarkCnt, setRemarkCnt] = useState(0);
const [groupSeq, setGroupSeq] = useState(); const [groupSeq, setGroupSeq] = useState();
const [show, setShow] = useState(false); const [show, setShow] = useState(false);
@ -75,7 +76,8 @@ function StandardCodeList({}) {
}, },
(resp) => { (resp) => {
setListData(resp.result.resultList); setListData(resp.result.resultList);
setResultCnt(resp.result.resultCnt); setResultCnt(resp.result.resultCnt.allCnt);
setRemarkCnt(resp.result.resultCnt.remarkCnt);
}, },
function (resp) { function (resp) {
console.log("err response : ", resp); console.log("err response : ", resp);
@ -87,22 +89,10 @@ function StandardCodeList({}) {
return ( return (
<div className="StandardCodeList container"> <div className="StandardCodeList container">
<div className="c_wrap codelistcontent"> <div className="c_wrap codeListContent">
<div className="location">
<ul>
<li><Link to={URL.MAIN} className="home">Home</Link></li>
<li><Link to='#'>건설기준코드</Link></li>
<li><Link to={URL.STANDARD_CODE_LIST}>건설기준코드 검색</Link></li>
</ul>
</div>
<div className="layout"> <div className="layout">
<div className="contents NOTICE_LIST listtablediv"> <div className="contents NOTICE_LIST listTableDiv">
<div className="top_tit"> <StandardCodeSearchForm param={listCode} reloadFunction={retrieveList} resultCnt={resultCnt} remarkCnt={remarkCnt}/>
<h2 className="tit_1">건설기준코드 검색</h2>
</div>
<StandardCodeSearchForm param={listCode} reloadFunction={retrieveList}/>
<div><span>전체 {resultCnt} </span></div>
{/* <!-- 게시판목록 --> */}
<div className="board_list code_list"> <div className="board_list code_list">
<div className="head"> <div className="head">
<span>대분류</span> <span>대분류</span>
@ -125,9 +115,9 @@ function StandardCodeList({}) {
<div className="mainCategory">{item.mainCategory}</div> <div className="mainCategory">{item.mainCategory}</div>
<div className="middleCategory">{item.middleCategory}</div> <div className="middleCategory">{item.middleCategory}</div>
<div className="kcscCd">{item.kcscCd}</div> <div className="kcscCd">{item.kcscCd}</div>
<div className="groupNm">{item.groupNm}</div> <div className="groupNm">{item.groupNm}<br/><span className={"text-danger"}>{item.rvsnRemark}</span></div>
<div className="Revisionhistory"><a className="vieweratag" onClick={showHandling} data-groupSeq={item.groupSeq}>개정이력</a></div> <div className="Revisionhistory"><a className="vieweratag" onClick={showHandling} data-groupSeq={item.groupSeq}>개정이력</a></div>
<div className="fille">{item.contentcount > 0 ? <a className="vieweratag" href={"/standardCode/viewer/" + item.kcscCd}>내용보기</a> : null}</div> <div className="fille"><a className="vieweratag" href={"/standardCode/viewer/" + item.kcscCd}>내용보기</a></div>
<div className="star"><AiFillStar/></div> <div className="star"><AiFillStar/></div>
</div> </div>
) )

View File

@ -1,6 +1,11 @@
import React, {useEffect, useState} from "react"; import React, {useEffect, useState} from "react";
import {Nav} from "react-bootstrap";
import Row from "react-bootstrap/Row";
import Col from "react-bootstrap/Col";
import {Link} from "react-router-dom";
import Button from "react-bootstrap/Button";
function StandardCodeSearchForm({param, reloadFunction}){ function StandardCodeSearchForm({param, reloadFunction, resultCnt, remarkCnt}){
const [searchCondition, setSearchCondition] = useState({ const [searchCondition, setSearchCondition] = useState({
pageIndex: 1, pageIndex: 1,
@ -60,25 +65,36 @@ function StandardCodeSearchForm({param, reloadFunction}){
</select> </select>
</label> </label>
</li> </li>
<li className="third_1 L">
{remarkCnt?(
<span>전체 {resultCnt} / <span className={"text-danger"}>{remarkCnt}</span> </span>
):(
<span>전체 {resultCnt} </span>
)}
</li>
<li className="third_1 L"> <li className="third_1 L">
<div className={`tab`}>통합 다운로드</div> <div className={`tab`}>통합 다운로드</div>
</li> </li>
</ul> </ul>
</div> </div>
{subTabsVisible && ( <Row className={"justify-content-between"}>
<div className="right_col"> <Col>
<div className="mini_board"> {subTabsVisible && (
<ul> <Nav variant={"tabs"} >
<div className={`tab ${searchCondition.tab === 40 ? 'active' : ''}`} onClick={() => {setSearchCondition({...searchCondition, tab: 40})}}>서울특별시</div> <Nav.Item><Nav.Link className={`${searchCondition.tab === 40 ? 'active' : ''}`} onClick={() => {setSearchCondition({...searchCondition, tab: 40})}}>서울특별시</Nav.Link></Nav.Item>
<div className={`tab ${searchCondition.tab === 50 ? 'active' : ''}`} onClick={() => {setSearchCondition({...searchCondition, tab: 50})}}>고속도로공사</div> <Nav.Item><Nav.Link className={`${searchCondition.tab === 50 ? 'active' : ''}`} onClick={() => {setSearchCondition({...searchCondition, tab: 50})}}>고속도로공사</Nav.Link></Nav.Item>
<div className={`tab ${searchCondition.tab === 60 ? 'active' : ''}`} onClick={() => {setSearchCondition({...searchCondition, tab: 60})}}>한국농어촌공사</div> <Nav.Item><Nav.Link className={`${searchCondition.tab === 60 ? 'active' : ''}`} onClick={() => {setSearchCondition({...searchCondition, tab: 60})}}>한국농어촌공사</Nav.Link></Nav.Item>
<div className={`tab ${searchCondition.tab === 70 ? 'active' : ''}`} onClick={() => {setSearchCondition({...searchCondition, tab: 70})}}>철도건설공사</div> <Nav.Item><Nav.Link className={`${searchCondition.tab === 70 ? 'active' : ''}`} onClick={() => {setSearchCondition({...searchCondition, tab: 70})}}>철도건설공사</Nav.Link></Nav.Item>
<div className={`tab ${searchCondition.tab === 80 ? 'active' : ''}`} onClick={() => {setSearchCondition({...searchCondition, tab: 80})}}>LH한국토지주택공사</div> <Nav.Item><Nav.Link className={`${searchCondition.tab === 80 ? 'active' : ''}`} onClick={() => {setSearchCondition({...searchCondition, tab: 80})}}>LH한국토지주택공사</Nav.Link></Nav.Item>
<div className={`tab ${searchCondition.tab === 90 ? 'active' : ''}`} onClick={() => {setSearchCondition({...searchCondition, tab: 90})}}>K-Water</div> <Nav.Item><Nav.Link className={`${searchCondition.tab === 90 ? 'active' : ''}`} onClick={() => {setSearchCondition({...searchCondition, tab: 90})}}>K-Water</Nav.Link></Nav.Item>
</ul> </Nav>
</div> )}
</div> </Col>
)} <Col xs={"auto"}>
<Button href={"/standardCode/info"} size={"sm"} variant={"secondary"}>건설기준코드 안내</Button>
</Col>
</Row>
</> </>
); );
} }

View File

@ -164,11 +164,8 @@ public class StandardCodeController extends BaseController {
resultMap.put("category3List", standardCodeService.selectStandardCodeCategoryList(categorySeq3)); resultMap.put("category3List", standardCodeService.selectStandardCodeCategoryList(categorySeq3));
tnDocumentInfo.setListCode(tab + category1 + category2 + category3); tnDocumentInfo.setListCode(tab + category1 + category2 + category3);
List<TnDocumentCodeList> tnDocumentCodeList = standardCodeService.selectStandardCodeList(tnDocumentInfo); resultMap.put("resultList", standardCodeService.selectStandardCodeList(tnDocumentInfo));
resultMap.put("resultList", tnDocumentCodeList); resultMap.put("resultCnt", standardCodeService.selectStandardCodeListCnt(tnDocumentInfo));
Integer totCnt = tnDocumentCodeList.get(0).getContentcount();
resultMap.put("resultCnt", totCnt);
resultMap.put("user", user); resultMap.put("user", user);
resultVO.setResultCode(ResponseCode.SUCCESS.getCode()); resultVO.setResultCode(ResponseCode.SUCCESS.getCode());

View File

@ -28,15 +28,20 @@ public class TnDocumentCodeList {
private String middleCategory; private String middleCategory;
@Column(name = "group_nm") @Column(name = "group_nm")
private String groupNm; private String groupNm;
@Column(name = "rvsn_remark")
private String rvsnRemark;
@Column(name = "kcsc_cd") @Column(name = "kcsc_cd")
private String kcscCd; private String kcscCd;
@Column(name = "doc_file_grp_id") @Column(name = "doc_file_grp_id")
private String docFileGrpId; private String docFileGrpId;
@Column(name = "contentcount")
private Integer contentcount;
@Column(name = "parent_group_seq") @Column(name = "parent_group_seq")
private String parentGroupSeq; private String parentGroupSeq;
@Column(name = "group_full_cd") @Column(name = "group_full_cd")
private String groupFullCd; private String groupFullCd;
@Transient
private Integer allCnt;
@Transient
private Integer remarkCnt;
} }

View File

@ -12,7 +12,9 @@ public interface StandardCodeMapper {
List<TnDocumentCodeList> selectStandardCodeList(TnDocumentInfo tnDocumentInfo); List<TnDocumentCodeList> selectStandardCodeList(TnDocumentInfo tnDocumentInfo);
Integer selectStandardCodeListCnt(TnDocumentInfo tnDocumentInfo); TnDocumentCodeList selectStandardCodeListCnt(TnDocumentInfo tnDocumentInfo);
List<TnDocumentInfo> selectStandardCodeHistoryList(TnDocumentInfo tnDocumentInfo);
List<TnDocumentInfo> selectStandardCodeRevisionhistoryList(Integer groupseq); List<TnDocumentInfo> selectStandardCodeRevisionhistoryList(Integer groupseq);

View File

@ -44,10 +44,17 @@ public class StandardCodeService extends EgovAbstractServiceImpl {
} }
public List<TnDocumentCodeList> selectStandardCodeList(TnDocumentInfo tnDocumentInfo){ public List<TnDocumentCodeList> selectStandardCodeList(TnDocumentInfo tnDocumentInfo){
return standardCodeMapper.selectStandardCodeList(tnDocumentInfo); List<TnDocumentCodeList> codeList = standardCodeMapper.selectStandardCodeList(tnDocumentInfo);
List<TnDocumentInfo> historyList = standardCodeMapper.selectStandardCodeHistoryList(tnDocumentInfo);
for(TnDocumentCodeList code: codeList){
for(TnDocumentInfo history: historyList){
}
}
return codeList;
} }
public Integer selectStandardCodeListCnt(TnDocumentInfo tnDocumentInfo) { public TnDocumentCodeList selectStandardCodeListCnt(TnDocumentInfo tnDocumentInfo) {
return standardCodeMapper.selectStandardCodeListCnt(tnDocumentInfo); return standardCodeMapper.selectStandardCodeListCnt(tnDocumentInfo);
} }

View File

@ -5,52 +5,71 @@
<sql id="selectStandardCodeListWhere"> <sql id="selectStandardCodeListWhere">
<where> <where>
a.parent_group_seq = a2.seq
and a2.parent_seq = a3.seq
<if test="listCode != 102041 and listCode != null and listCode != ''"> <if test="listCode != 102041 and listCode != null and listCode != ''">
and a.group_full_cd like #{listCode} || '%' and c.group_full_cd like #{listCode} || '%'
</if> </if>
<if test="listCode == 102041"> <if test="listCode == 102041">
and (a.group_full_cd like 102041 || '%' and (c.group_full_cd like 102041 || '%'
or a.group_full_cd like 102042 || '%' or c.group_full_cd like 102042 || '%'
or a.group_full_cd like 102043 || '%') or c.group_full_cd like 102043 || '%')
</if> </if>
<if test="searchWrd != null and searchWrd != ''"> <if test="searchWrd != null and searchWrd != ''">
and a.group_nm like '%' || #{searchWrd} || '%' and c.group_nm like '%' || #{searchWrd} || '%'
</if> </if>
and a.group_type = 'D' and c.group_type = 'D'
and tdi.last_yn = 'Y' and tdi.last_yn = 'Y'
</where> </where>
</sql> </sql>
<select id="selectStandardCodeList" parameterType="TnDocumentInfo" resultType="TnDocumentCodeList"> <select id="selectStandardCodeList" parameterType="TnDocumentInfo" resultType="TnDocumentCodeList">
select select
count(*) over() as contentcount, case
case when a.doc_level &lt; 3 then b.group_nm
when a3.doc_level > 1 then a3.doc_code_name else a.group_nm
else a2.doc_code_name end as main_category,
end as main_category, case
case when a.doc_level &lt; 3 then c.group_nm
when a3.doc_level > 1 then a2.doc_code_name else b.group_nm
else a.group_nm end as middle_category,
end as middle_category, c.group_nm,
a.group_nm, c.rvsn_remark ,
a.kcsc_cd, c.kcsc_cd,
tdi.doc_file_grp_id, tdi.doc_file_grp_id,
a.group_seq c.group_seq
from from tn_document_group a
tn_document_group a inner join tn_document_group b on a.group_seq = b.parent_group_seq
left join tn_document_info tdi on inner join tn_document_group c on b.group_seq = c.parent_group_seq
a.group_seq = tdi.group_seq left join tn_document_info tdi on c.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
<include refid="selectStandardCodeListWhere"></include> <include refid="selectStandardCodeListWhere"></include>
group by main_category, middle_category, a.group_nm, a.kcsc_cd, tdi.doc_file_grp_id, a.group_seq order by c.kcsc_cd
order by a.kcsc_cd
</select> </select>
<select id="selectStandardCodeListCnt" parameterType="TnDocumentInfo" resultType="TnDocumentCodeList">
select count(*) as allCnt,
sum(case when c.rvsn_remark is not null then 1 end) as remarkCnt
from tn_document_group a
inner join tn_document_group b on a.group_seq = b.parent_group_seq
inner join tn_document_group c on b.group_seq = c.parent_group_seq
left join tn_document_info tdi on c.group_seq = tdi.group_seq
<include refid="selectStandardCodeListWhere"></include>
</select>
<select id="selectStandardCodeHistoryList" parameterType="TnDocumentInfo" resultType="TnDocumentInfo">
select a.*
from tn_document_info a
inner join tn_document_group b on a.kcsc_cd = b.kcsc_cd
where
<if test="listCode != 102041 and listCode != null and listCode != ''">
and b.group_full_cd like #{listCode} || '%'
</if>
<if test="listCode == 102041">
and (b.group_full_cd like 102041 || '%'
or b.group_full_cd like 102042 || '%'
or b.group_full_cd like 102043 || '%')
</if>
and b.group_type = 'D'
</select>
<select id="selectStandardCodeGroupSeq" parameterType="String" resultType="Integer"> <select id="selectStandardCodeGroupSeq" parameterType="String" resultType="Integer">
select select
group_seq group_seq