예산 html 업뎃

master
Lim\jun 2023-05-09 16:24:41 +09:00
parent 6ae270e042
commit cae71a93d4
10 changed files with 1027 additions and 380 deletions

View File

@ -3,8 +3,7 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}">
<th:block layout:fragment="script">
<!--<script type="text/javascript" th:src="@{/js/faRpt/faRpt.js}"></script>
<script type="text/javascript" th:src="@{/js/modal/userModal.js}"></script>-->
<script type="text/javascript" th:src="@{/js/budget/assign.js}"></script>
</th:block>
<div layout:fragment="content">
<main>
@ -25,40 +24,28 @@
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<!--<form method="get" th:action="${searchUrl}">
<input type="hidden" name="activeTab" id="activeTab" th:value="${searchParams.activeTab}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<form id="assginForm" method="get" action="/budget/assign" onsubmit="return false;">
<input type="hidden" name="year" id="year" value=""/>
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto" th:if="${searchParams.activeTab ne 'send'}">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
<div class="col-auto">
<select class="form-select form-select-sm" name="code" id="code">>
<option value="OG001">본청</option>
<option th:each="code : ${codeList}" th:value="${code?.orgCode}"
th:text="${code?.orgName}"
th:selected="${searchParams?.code eq code.orgCode}">2023
</option>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="해시태그" name="hashTags" th:value="${searchParams.hashTags}">
</div>
<div class="col-auto" th:if="${accessAuth eq 'ACC003'}">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
</div>
<div class="col-auto">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
<input type="text" class="form-control form-control-sm" id="stDate" name="stDate" placeholder="시작일" autocomplete="off" readonly
th:value="${searchParams.stDate}">
<input type="text" class="form-control form-control-sm" id="edDate" name="edDate" placeholder="종료일" autocomplete="off" readonly
th:value="${searchParams.edDate}">
</div>
</div>
<div class=" col-auto">
@ -67,7 +54,7 @@
</div>
</div>
</div>
</form>-->
</form>
<div class="row">
<div class="col-12">
<table class="table table-sm table-bordered table-hover">
@ -78,61 +65,77 @@
<th rowspan="2">세부내역</th>
<th rowspan="2">예산총액</th>
<th rowspan="2">예산총배정액<br>(누적)</th>
<th colspan="2">본청</th>
<th colspan="2">중부청</th>
<th colspan="2">서해청</th>
<th colspan="2">남해청</th>
<th colspan="2">동해청</th>
<th colspan="2">제주청</th>
<th:block th:each="orglist : ${downOrgList}">
<th colspan="2" th:text="${orglist.orgName}"></th>
</th:block>
</tr>
<tr class="table-secondary">
<td>기간배정액</td>
<td>누적액</td>
<td>기간배정액</td>
<td>누적액</td>
<td>기간배정액</td>
<td>누적액</td>
<td>기간배정액</td>
<td>누적액</td>
<td>기간배정액</td>
<td>누적액</td>
<td>기간배정액</td>
<td>누적액</td>
<th:block th:each="orglist : ${downOrgList}">
<th>기간배정액</th>
<th>누적액</th>
</th:block>
</tr>
</thead>
<tbody class="table-group-divider">
<!--<tr class="faRptTr" th:each="faRpt,cnt:${faRptList}">
<input type="hidden" class="faRptKey" th:value="${faRpt.faRptKey}">
&lt;!&ndash;
<td><input type="checkbox" class="trChkBox"></td>
&ndash;&gt;
<td th:text="${cnt.count}"></td>
<td>
<th:block th:each="code:${session.commonCode.get('OG')}">
<th:block th:if="${faRpt.wrtOrgan eq code.itemCd}" th:text="${code.itemValue}"></th:block>
<tbody class="table-group-divider" id="ResultRow">
<tr th:each="info, i : ${list}">
<td th:text="${info.getbudget_name_l1}"></td>
<td th:text="${info.getbudget_name_l2}"></td>
<td th:text="${info.getbudget_name_l3}"></td>
<td th:text="${#numbers.formatInteger(info.getplan_amount,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.gettotal_assign_amount,1,'COMMA')}"
class="text-end"></td>
<th:block th:each="orglist, j : ${downOrgList}">
<th:block th:if="${j.index} == '0'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount1,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getsum_assign_amount1,1,'COMMA')}"
class="text-end"></td>
</th:block>
</td>
<td>
<th:block th:each="code:${session.commonCode.get('FRC')}">
<th:text th:if="${code.itemCd eq faRpt.faRptType}" th:text="${code.itemValue}"></th:text>
<th:block th:if="${j.index} == '1'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount2,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getsum_assign_amount2,1,'COMMA')}"
class="text-end"></td>
</th:block>
</td>
<td class="titleLeft" th:text="${faRpt.title}"></td>
<td th:text="${faRpt.fileCnt eq null?'파일 없음':#strings.concat(faRpt.fileCnt,' 건')}"></td>
<td th:text="|${faRpt.readCnt}/${faRpt.userCnt}|"></td>
<td>
<th:block th:each="code:${session.commonCode.get(faRpt.wrtOrgan)}">
<th:block th:if="${faRpt.wrtPart eq code.itemCd}" th:text="${code.itemValue}"></th:block>
<th:block th:if="${j.index} == '2'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount3,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getsum_assign_amount3,1,'COMMA')}"
class="text-end"></td>
</th:block>
</td>
<td th:text="${faRpt.wrtUserNm}"></td>
<td th:text="${#temporals.format(faRpt.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:if="${faRpt.status ne 'receive'}">
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
<th:text th:if="${commonCode.itemCd eq faRpt.status}" th:text="${commonCode.itemValue}"></th:text>
<th:block th:if="${j.index} == '3'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount4,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getsum_assign_amount4,1,'COMMA')}"
class="text-end"></td>
</th:block>
</td>
</tr>-->
<th:block th:if="${j.index} == '4'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount5,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getsum_assign_amount5,1,'COMMA')}"
class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '5'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount6,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getsum_assign_amount6,1,'COMMA')}"
class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '6'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount7,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getsum_assign_amount7,1,'COMMA')}"
class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '7'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount8,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getsum_assign_amount8,1,'COMMA')}"
class="text-end"></td>
</th:block>
</th:block>
</tr>
</tbody>
</table>
</div>
@ -140,32 +143,15 @@
<div class="row justify-content-between">
<div class="col-auto"></div>
<div class="col-auto">
<!--<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<th:block th:if="${searchParams.pageIndex>3}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
<a class="page-link" href="#" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</th:block>
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex eq num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
</th:block>
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
<a class="page-link" href="#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</th:block>
</ul>
</nav>-->
</div>
<div class="col-auto">
<!--<input type="button" class="btn btn-success" value="등록" id="addFaRptBtn">-->
<input type="button" class="btn btn-success" value="등록" id="addBtn">
</div>
</div>
<div class="modal fade" id="editModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="faRptEditModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xxl modal-dialog-scrollable">
<div class="modal-content" id="editModalContent"></div>
</div>
</div>
</div>

View File

@ -0,0 +1,159 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5">
<style>
.scroll {
overflow-x: hidden;
overflow-y: auto;
height: 170px;
}
</style>
<div class="modal-header">
<h4 class="modal-title" th:text="${info eq null?'예산항목 추가':'예산항목 수정'}"></h4>
<button type="button" class="btn btn-danger" data-bs-dismiss="modal" aria-hidden="true">x</button>
</div>
<div class="modal-body">
<form id="budgetForm" action="#">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" id="assignYear" name="assignYear" th:value="${searchParams.year}"/>
<input type="hidden" id="prevNameL1" name="prevNameL1" th:value="${info?.nameL1}"/>
<input type="hidden" id="prevNameL2" name="prevNameL2" th:value="${info?.nameL2}"/>
<input type="hidden" id="prevNameL3" name="prevNameL3" th:value="${info?.nameL3}"/>
<input type="hidden" id="assignCount" name="assignCount" th:value="${#lists.size(list)}"/>
<input type="hidden" id="orgCount" name="orgCount" th:value="${#lists.size(downOrgList)}"/>
<div class="row ">
<div class="row col-10 ">
<div class="col-auto">
<div class="input-group input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm w-35 dateSelector" id="dt" name="dt"
placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.modalDate}">
</div>
</div>
</div>
</div>
<table id="data-table-default" class="table table-striped table-bordered align-middle" style="width:2500px">
<thead>
<tr class="table-secondary text-center">
<th rowspan="2">사업명</th>
<th rowspan="2">구분</th>
<th rowspan="2">세부내역</th>
<th rowspan="2">예산총액</th>
<th rowspan="2">예산총배정액<br/>(누적)</th>
<th:block th:each="orglist, i : ${downOrgList}">
<th colspan="3" th:text="${orglist.orgName}" th:id="'orgSave'+${i.index}"></th>
</th:block>
</tr>
<tr class="table-secondary text-center">
<th:block th:each="orglist : ${downOrgList}">
<th>기간배정액</th>
<th>금회배정액</th>
<th>누적액</th>
</th:block>
</tr>
</thead>
<tbody>
<tr class="odd gradeX reporterTr grid" th:each="info, i : ${list}">
<td th:text="${info.getbudget_name_l1}"></td>
<td th:text="${info.getbudget_name_l2}"></td>
<td th:text="${info.getbudget_name_l3}"></td>
<td th:text="${#numbers.formatInteger(info.getplan_amount,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.gettotal_assign_amount,1,'COMMA')}" class="text-end"></td>
<th:block th:each="orglist, j : ${downOrgList}">
<th:block th:if="${j.index} == '0'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount1,1,'COMMA')}" class="text-end"></td>
<td>
<input type="text" th:id="'org0_amount'+${i.index}" name="year" value="" class="w-100 text-end"
th:data-code="${info?.getbudget_code_l3}"
oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"
/></td>
<td th:text="${#numbers.formatInteger(info.getsum_assign_amount1,1,'COMMA')}" class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '1'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount2,1,'COMMA')}" class="text-end"></td>
<td>
<input type="text" th:id="'org1_amount'+${i.index}" name="year" value="" class="w-100 text-end"
th:data-code="${info?.getbudget_code_l3}"
oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"
/></td>
</td>
<td th:text="${#numbers.formatInteger(info.getsum_assign_amount2,1,'COMMA')}" class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '2'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount3,1,'COMMA')}" class="text-end"></td>
<td>
<input type="text" th:id="'org2_amount'+${i.index}" name="year" value="" class="w-100 text-end"
th:data-code="${info?.getbudget_code_l3}"
oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"
/></td>
</td>
<td th:text="${#numbers.formatInteger(info.getsum_assign_amount3,1,'COMMA')}" class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '3'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount4,1,'COMMA')}" class="text-end"></td>
<td>
<input type="text" th:id="'org3_amount'+${i.index}" name="year" value="" class="w-100 text-end"
th:data-code="${info?.getbudget_code_l3}"
oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"
/></td>
</td>
<td th:text="${#numbers.formatInteger(info.getsum_assign_amount4,1,'COMMA')}" class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '4'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount5,1,'COMMA')}" class="text-end"></td>
<td>
<input type="text" th:id="'org4_amount'+${i.index}" name="year" value="" class="w-100 text-end"
th:data-code="${info?.getbudget_code_l3}"
oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"
/></td>
</td>
<td th:text="${#numbers.formatInteger(info.getsum_assign_amount5,1,'COMMA')}" class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '5'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount6,1,'COMMA')}" class="text-end"></td>
<td>
<input type="text" th:id="'org5_amount'+${i.index}" name="year" value="" class="w-100 text-end"
th:data-code="${info?.getbudget_code_l3}"
oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"
/></td>
</td>
<td th:text="${#numbers.formatInteger(info.getsum_assign_amount6,1,'COMMA')}" class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '6'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount7,1,'COMMA')}" class="text-end"></td>
<td>
<input type="text" th:id="'org6_amount'+${i.index}" name="year" value="" class="w-100 text-end"
th:data-code="${info?.getbudget_code_l3}"
oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"
/></td>
</td>
<td th:text="${#numbers.formatInteger(info.getsum_assign_amount7,1,'COMMA')}" class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '7'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount8,1,'COMMA')}" class="text-end"></td>
<td>
<input type="text" th:id="'org7_amount'+${i.index}" name="year" value="" class="w-100 text-end"
th:data-code="${info?.getbudget_code_l3}"
oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"
/></td>
</td>
<td th:text="${#numbers.formatInteger(info.getsum_assign_amount8,1,'COMMA')}" class="text-end"></td>
</th:block>
</th:block>
</tr>
</tbody>
</table>
</form>
</div>
<div class="modal-footer">
<!-- <a href="javascript:;" class="btn btn-yellow" id="tempBtn">임시저장</a> -->
<a href="javascript:;" class="btn btn-blue" id="assignSaveBtn">저장</a>
<a href="javascript:;" class="btn btn-blue" id="modifyBtn" th:if="${cmd eq 'update'}">수정</a>
</div>
<!--<div class="modal-footer">
<a class="btn btn-yellow">임시저장</a>
<a class="btn btn-success">결재</a>
<a class="btn btn-blue">작성</a>
</div>-->
</html>

View File

@ -3,8 +3,7 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}">
<th:block layout:fragment="script">
<!--<script type="text/javascript" th:src="@{/js/faRpt/faRpt.js}"></script>
<script type="text/javascript" th:src="@{/js/modal/userModal.js}"></script>-->
<script type="text/javascript" th:src="@{/js/budget/budgeting.js}"></script>
</th:block>
<div layout:fragment="content">
<main>
@ -25,49 +24,30 @@
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<!--<form method="get" th:action="${searchUrl}">
<input type="hidden" name="activeTab" id="activeTab" th:value="${searchParams.activeTab}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<form method="get" th:action="@{/budget/budgeting}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto" th:if="${searchParams.activeTab ne 'send'}">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
<div class="col-auto">
<select class="form-select" name="year" id="searchYear">
<option th:each="info, i : ${yearList}" th:value="${info.year}"
th:selected="${searchParams?.year eq info.year}"
th:text="${info.year}"></option>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
<button class="btn btn-primary" id="copyYearBtn">연도추가</button>
</div>
<div class=" col-auto">
<input type="text" class="form-control form-control-sm" placeholder="해시태그" name="hashTags" th:value="${searchParams.hashTags}">
<button class="btn btn-primary" id="deleteYearBtn">연도삭제</button>
</div>
<div class="col-auto" th:if="${accessAuth eq 'ACC003'}">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
</div>
<div class="col-auto">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
<button class="btn btn-green" id="excelDownload">엑셀다운로드</button>
</div>
</div>
</div>
</div>
</form>-->
</form>
<div class="row">
<div class="col-12">
<table class="table table-sm table-bordered table-hover">
@ -81,71 +61,51 @@
</tr>
</thead>
<tbody class="table-group-divider">
<!--<tr class="faRptTr" th:each="faRpt,cnt:${faRptList}">
<input type="hidden" class="faRptKey" th:value="${faRpt.faRptKey}">
&lt;!&ndash;
<td><input type="checkbox" class="trChkBox"></td>
&ndash;&gt;
<td th:text="${cnt.count}"></td>
<td>
<th:block th:each="code:${session.commonCode.get('OG')}">
<th:block th:if="${faRpt.wrtOrgan eq code.itemCd}" th:text="${code.itemValue}"></th:block>
<th:block>
<tr th:each="info, i : ${list}">
<td><input type="radio" th:value="${i.index}" name="budget"
th:data-name1="${info?.budgetNameL1}"
th:data-name2="${info?.budgetNameL2}"
th:data-name3="${info?.budgetNameL3}"
></td>
<td th:text="${info?.budgetNameL1}"></td>
<td th:text="${info?.budgetNameL2}"></td>
<td th:text="${info?.budgetNameL3}"></td>
<td th:text="${#numbers.formatInteger(info?.amount, 1, 'COMMA')}" class="text-end"></td>
</tr>
</th:block>
</td>
<td>
<th:block th:each="code:${session.commonCode.get('FRC')}">
<th:text th:if="${code.itemCd eq faRpt.faRptType}" th:text="${code.itemValue}"></th:text>
</th:block>
</td>
<td class="titleLeft" th:text="${faRpt.title}"></td>
<td th:text="${faRpt.fileCnt eq null?'파일 없음':#strings.concat(faRpt.fileCnt,' 건')}"></td>
<td th:text="|${faRpt.readCnt}/${faRpt.userCnt}|"></td>
<td>
<th:block th:each="code:${session.commonCode.get(faRpt.wrtOrgan)}">
<th:block th:if="${faRpt.wrtPart eq code.itemCd}" th:text="${code.itemValue}"></th:block>
</th:block>
</td>
<td th:text="${faRpt.wrtUserNm}"></td>
<td th:text="${#temporals.format(faRpt.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:if="${faRpt.status ne 'receive'}">
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
<th:text th:if="${commonCode.itemCd eq faRpt.status}" th:text="${commonCode.itemValue}"></th:text>
</th:block>
</td>
</tr>-->
<tr>
<td colspan="4" class="text-end fw-bold"> 합계</td>
<td th:text="${#numbers.formatInteger(searchParams?.sum, 1, 'COMMA')}" class="text-end fw-bold"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto"></div>
<div class="col-auto">
<!--<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<th:block th:if="${searchParams.pageIndex>3}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
<a class="page-link" href="#" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</th:block>
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex eq num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
</th:block>
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
<a class="page-link" href="#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</th:block>
</ul>
</nav>-->
<button class="btn btn-success" id="addBtn">항목추가</button>
<button class="btn btn-success" id="updateBtn">항목명변경</button>
<button class="btn btn-success" id="deleteBtn">항목삭제</button>
</div>
<div class="col-auto">
<!--<input type="button" class="btn btn-success" value="등록" id="addFaRptBtn">-->
</div>
<div class="col-auto">
<button class="btn btn-primary" id="budgetBtn">예산편성</button>
<button class="btn btn-primary" id="budgetDeleteBtn">예산삭제</button>
</div>
</div>
<div class="modal fade" id="editModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="faRptEditModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xxl modal-dialog-scrollable">
<div class="modal-content" id="editModalContent"></div>
</div>
</div>
<div class="modal fade" id="budgetModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="faRptEditModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xxl modal-dialog-scrollable">
<div class="modal-content" id="budgetModalContent"></div>
</div>
</div>
</div>

View File

@ -0,0 +1,63 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5">
<style>
.scroll {
overflow-x: hidden;
overflow-y: auto;
height: 170px;
}
</style>
<div class="modal-header">
<h4 class="modal-title" th:text="${info eq null?'예산항목 추가':'예산항목 수정'}"></h4>
<button type="button" class="btn btn-danger" data-bs-dismiss="modal" aria-hidden="true">x</button>
</div>
<div class="modal-body">
<form id="budgetForm" action="#">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" id="year" name="year" value=""/>
<input type="hidden" id="prevNameL1" name="prevNameL1" th:value="${info?.nameL1}"/>
<input type="hidden" id="prevNameL2" name="prevNameL2" th:value="${info?.nameL2}"/>
<input type="hidden" id="prevNameL3" name="prevNameL3" th:value="${info?.nameL3}"/>
<div class="form-group row mb-2">
<div class="col-md-1 pe-0">
<label class="col-form-label">사업명
</label>
</div>
<div class="col-md-2">
<input type="text" class="form-control" id="nameL1" name="nameL1" th:value="${info?.nameL1}"
th:classappend="${cmd.equals('view') ?'view-mode' : ''}" th:disabled="${cmd.equals('view')}">
</div>
<div class="col-md-1 pe-0">
<label class="col-form-label">구분
</label>
</div>
<div class="col-md-2">
<input type="text" class="form-control" id="nameL2" name="nameL2" th:value="${info?.nameL2}"
th:classappend="${cmd.equals('view') ?'view-mode' : ''}" th:disabled="${cmd.equals('view')}">
</div>
<div class="col-md-1 pe-0">
<label class="col-form-label">세부내역
</label>
</div>
<div class="col-md-2">
<input type="text" class="form-control" id="nameL3" name="nameL3" th:value="${info?.nameL3}"
th:classappend="${cmd.equals('view') ?'view-mode' : ''}" th:disabled="${cmd.equals('view')}">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<!-- <a href="javascript:;" class="btn btn-yellow" id="tempBtn">임시저장</a> -->
<a href="javascript:;" class="btn btn-blue" id="saveBtn" th:if="${cmd eq 'insert'}">저장</a>
<a href="javascript:;" class="btn btn-blue" id="modifyBtn" th:if="${cmd eq 'update'}">수정</a>
</div>
<!--<div class="modal-footer">
<a class="btn btn-yellow">임시저장</a>
<a class="btn btn-success">결재</a>
<a class="btn btn-blue">작성</a>
</div>-->
</html>

View File

@ -0,0 +1,62 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5">
<style>
.scroll {
overflow-x: hidden;
overflow-y: auto;
height: 170px;
}
</style>
<div class="modal-header">
<h4 class="modal-title" th:text="예산편성"></h4>
<button type="button" class="btn btn-danger" data-bs-dismiss="modal" aria-hidden="true">x</button>
</div>
<div class="modal-body">
<form id="budgetForm" action="#">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" id="orgYear" name="orgYear" th:value="${searchParams.year}"/>
<input type="hidden" id="budgetCount" name="budgetCount" th:value="${#lists.size(list)}"/>
<div class=" panel-body text-center">
<table id="data-table-default" class="table table-striped table-bordered align-middle">
<thead>
<tr>
<th class="text-nowrap" width="20%">사업명</th>
<th class="text-nowrap" width="20%">구분</th>
<th class="text-nowrap" width="20%">세부내역</th>
<th class="text-nowrap" width="20%">편성액</th>
</tr>
</thead>
<tbody>
<tr class="odd gradeX reporterTr grid" th:each="info, i : ${list}">
<th:block>
</th:block>
<td th:text="${info?.budgetNameL1}"></td>
<td th:text="${info?.budgetNameL2}"></td>
<td th:text="${info?.budgetNameL3}"></td>
<td><input type="text"
th:data-name1="${info?.budgetNameL1}"
th:data-name2="${info?.budgetNameL2}"
th:data-name3="${info?.budgetNameL3}"
class="form-control text-end" th:id="'amount'+${i.index}" th:value="${info?.amount}"
oninput="this.value = parseInt(this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1'));">
</td>
</tr>
</tbody>
</table>
</div>
</form>
</div>
<div class="modal-footer">
<!-- <a href="javascript:;" class="btn btn-yellow" id="tempBtn">임시저장</a> -->
<a href="javascript:;" class="btn btn-blue" id="budgetSaveBtn">저장</a>
<a href="javascript:;" class="btn btn-blue" id="modifyBtn" th:if="${cmd eq 'update'}">수정</a>
</div>
<!--<div class="modal-footer">
<a class="btn btn-yellow">임시저장</a>
<a class="btn btn-success">결재</a>
<a class="btn btn-blue">작성</a>
</div>-->
</html>

View File

@ -3,8 +3,7 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}">
<th:block layout:fragment="script">
<!--<script type="text/javascript" th:src="@{/js/faRpt/faRpt.js}"></script>
<script type="text/javascript" th:src="@{/js/modal/userModal.js}"></script>-->
<script type="text/javascript" th:src="@{/js/budget/expense.js}"></script>
</th:block>
<div layout:fragment="content">
<main>
@ -25,40 +24,32 @@
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<!--<form method="get" th:action="${searchUrl}">
<input type="hidden" name="activeTab" id="activeTab" th:value="${searchParams.activeTab}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<form id="assginForm" method="get" action="/budget/assign" onsubmit="return false;">
<input type="hidden" name="year" id="year" th:value="${param.year}"/>
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto" th:if="${searchParams.activeTab ne 'send'}">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
<div class="col-auto">
</div>
<div class="col-auto">
</div>
<div class="col-auto">
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="code" id="code">
<option value="OG001" th:selected="${searchParams?.code eq '본청'}">본청</option>
<option th:each="code, i : ${codeList}" th:value="${code?.orgCode}"
th:text="${code?.orgName}"
th:selected="${searchParams?.code eq code.orgCode}">
</option>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="해시태그" name="hashTags" th:value="${searchParams.hashTags}">
</div>
<div class="col-auto" th:if="${accessAuth eq 'ACC003'}">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
</div>
<div class="col-auto">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
<input type="text" class="form-control form-control-sm" id="stDate" name="stDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.stDate}">
<input type="text" class="form-control form-control-sm" id="edDate" name="edDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.edDate}">
</div>
</div>
<div class=" col-auto">
@ -67,9 +58,9 @@
</div>
</div>
</div>
</form>-->
</form>
<div class="row">
<div class="col-12">
<div class="table-responsive col-12">
<table class="table table-sm table-bordered table-hover">
<thead>
<tr class="table-secondary">
@ -79,75 +70,118 @@
<th rowspan="2">예산총액</th>
<th rowspan="2">예산총배정액<br>(누적)</th>
<th colspan="2">집행액(총계)</th>
<th colspan="4">본청</th>
<th colspan="4">중부청</th>
<th colspan="4">서해청</th>
<th colspan="4">남해청</th>
<th colspan="4">동해청</th>
<th colspan="4">제주청</th>
<th colspan="4" class="w-400px" th:each="orglist : ${downOrgList}" th:text="${orglist.orgName}"></th>
</tr>
<tr class="table-secondary">
<td>지출총액</td>
<td>보유잔액</td>
<td>배정액</td>
<td>지출총액</td>
<td>잔액</td>
<td>집행률</td>
<td>배정액</td>
<td>지출총액</td>
<td>잔액</td>
<td>집행률</td>
<td>배정액</td>
<td>지출총액</td>
<td>잔액</td>
<td>집행률</td>
<td>배정액</td>
<td>지출총액</td>
<td>잔액</td>
<td>집행률</td>
<td>배정액</td>
<td>지출총액</td>
<td>잔액</td>
<td>집행률</td>
<td>배정액</td>
<td>지출총액</td>
<td>잔액</td>
<td>집행률</td>
<th:block th:each="orglist : ${downOrgList}">
<th class="w-100px">배정액</th>
<th class="w-100px">지출총액</th>
<th class="w-100px">잔액</th>
<th class="w-100px">집행률</th>
</th:block>
</tr>
</thead>
<tbody class="table-group-divider">
<!--<tr class="faRptTr" th:each="faRpt,cnt:${faRptList}">
<input type="hidden" class="faRptKey" th:value="${faRpt.faRptKey}">
&lt;!&ndash;
<td><input type="checkbox" class="trChkBox"></td>
&ndash;&gt;
<td th:text="${cnt.count}"></td>
<td>
<th:block th:each="code:${session.commonCode.get('OG')}">
<th:block th:if="${faRpt.wrtOrgan eq code.itemCd}" th:text="${code.itemValue}"></th:block>
<tr class="faRptTr" th:each="info, i : ${list}" onclick="getEditModal(this)"
th:data-name1="${info.getbudget_name_l1}"
th:data-name2="${info.getbudget_name_l2}"
th:data-name3="${info.getbudget_name_l3}">
<td th:text="${info.getbudget_name_l1}"></td>
<td th:text="${info.getbudget_name_l2}"></td>
<td th:text="${info.getbudget_name_l3}"></td>
<td th:text="${#numbers.formatInteger(info.getplan_amount,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.gettotal_assign_amount,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_t_amount,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getbalance_t_amount,1,'COMMA')}"
class="text-end"></td>
<th:block th:each="orglist, j : ${downOrgList}">
<th:block th:if="${j.index} == '0'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount1,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_p_amount1,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getblance_amount1,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_rate1,1,'COMMA')}"
class="text-end"></td>
</th:block>
</td>
<td>
<th:block th:each="code:${session.commonCode.get('FRC')}">
<th:text th:if="${code.itemCd eq faRpt.faRptType}" th:text="${code.itemValue}"></th:text>
<th:block th:if="${j.index} == '1'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount2,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_p_amount2,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getblance_amount2,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_rate2,1,'COMMA')}"
class="text-end"></td>
</th:block>
</td>
<td class="titleLeft" th:text="${faRpt.title}"></td>
<td th:text="${faRpt.fileCnt eq null?'파일 없음':#strings.concat(faRpt.fileCnt,' 건')}"></td>
<td th:text="|${faRpt.readCnt}/${faRpt.userCnt}|"></td>
<td>
<th:block th:each="code:${session.commonCode.get(faRpt.wrtOrgan)}">
<th:block th:if="${faRpt.wrtPart eq code.itemCd}" th:text="${code.itemValue}"></th:block>
<th:block th:if="${j.index} == '2'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount3,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_p_amount3,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getblance_amount3,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_rate3,1,'COMMA')}"
class="text-end"></td>
</th:block>
</td>
<td th:text="${faRpt.wrtUserNm}"></td>
<td th:text="${#temporals.format(faRpt.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:if="${faRpt.status ne 'receive'}">
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
<th:text th:if="${commonCode.itemCd eq faRpt.status}" th:text="${commonCode.itemValue}"></th:text>
<th:block th:if="${j.index} == '3'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount4,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_p_amount4,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getblance_amount4,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_rate4,1,'COMMA')}"
class="text-end"></td>
</th:block>
</td>
</tr>-->
<th:block th:if="${j.index} == '4'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount5,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_p_amount5,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getblance_amount5,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_rate5,1,'COMMA')}"
class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '5'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount6,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_p_amount6,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getblance_amount6,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_rate6,1,'COMMA')}"
class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '6'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount7,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_p_amount7,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getblance_amount7,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_rate7,1,'COMMA')}"
class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '7'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount8,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_p_amount8,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getblance_amount8,1,'COMMA')}"
class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_rate8,1,'COMMA')}"
class="text-end"></td>
</th:block>
</th:block>
</tr>
</tbody>
</table>
</div>
@ -155,29 +189,6 @@
<div class="row justify-content-between">
<div class="col-auto"></div>
<div class="col-auto">
<!--<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<th:block th:if="${searchParams.pageIndex>3}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
<a class="page-link" href="#" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</th:block>
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex eq num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
</th:block>
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
<a class="page-link" href="#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</th:block>
</ul>
</nav>-->
</div>
<div class="col-auto">
<!--<input type="button" class="btn btn-success" value="등록" id="addFaRptBtn">-->

View File

@ -0,0 +1,142 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5">
<style>
.scroll {
overflow-x: hidden;
overflow-y: auto;
height: 170px;
}
</style>
<div class="modal-header">
<h4 class="modal-title" th:text="${info eq null?'집행항목 등록/수정':'집행항목 등록/수정'}"></h4>
<button type="button" class="btn btn-danger" data-bs-dismiss="modal" aria-hidden="true">x</button>
</div>
<div class="modal-body">
<form id="budgetForm" action="#">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" id="prevYear" name="prevYear" th:value="${searchParams?.year}"/>
<input type="hidden" id="prevNameL1" name="prevNameL1" th:value="${searchParams?.nameL1}" />
<input type="hidden" id="prevNameL2" name="prevNameL2" th:value="${searchParams?.nameL2}" />
<input type="hidden" id="prevNameL3" name="prevNameL3" th:value="${searchParams?.nameL3}" />
<div class="row ">
<div class="row col-10 ">
<div class="col-auto">
<div class="input-group " id="">
사업명:
</div>
</div>
<div class="col-auto">
<div class="input-group " id="" th:text="${searchParams.nameL1}">
</div>
</div>
<div class="col-auto">
<div class="input-group " id="">
구분:
</div>
</div>
<div class="col-auto">
<div class="input-group " id="" th:text="${searchParams.nameL2}">
</div>
</div>
<div class="col-auto">
<div class="input-group " id="">
세부내역:
</div>
</div>
<div class="col-auto">
<div class="input-group " id="" th:text="${searchParams.nameL3}">
</div>
</div>
</div>
</div>
<table id="data-table-default" class="table table-striped table-bordered align-middle" >
<thead>
<tr class="table-secondary">
<th>등록일</th>
<th>집행내역</th>
<th>집행액</th>
<th>등록자</th>
<th>최종수정일</th>
</tr>
</thead>
<tbody>
<tr class="odd gradeX reporterTr grid" th:each="info, i : ${list}">
<td th:text="${info.getexpense_date}"></td>
<td th:text="${info.getexpense_item}"></td>
<td th:text="${info.getamount}"></td>
<td th:text="${info.getmodi_id}"></td>
<td th:text="${info.getmodi_date}"></td>
</tr>
<th:block th:if="${#lists.isEmpty(list)}">
<tr>
<td colspan="5">등록된 내역이 없습니다.</td>
</tr>
</th:block>
</tbody>
</table>
<div class="form-group row mb-2">
<div class="col-md-1 pe-0">
<label class="col-form-label">집행내역
</label>
</div>
<div class="col-md-2">
<input type="text" class="form-control" id="item" name="item">
</div>
<div class="col-md-1 pe-0">
<label class="col-form-label">집행액
</label>
</div>
<div class="col-md-2">
<input type="text" class="form-control" id="amount" name="amount" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');">
</div>
<div class="col-md-1 pe-0">
<label class="col-form-label">등록일
</label>
</div>
<div class="col-md-2">
<div class="input-group input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm w-35 dateSelector" id="expenseDate" name="expenseDate" placeholder="등록일" autocomplete="off" readonly >
</div>
</div>
<div class="col-md-2">
<a href="javascript:;" class="btn btn-blue" id="expenseSaveBtn">등록</a>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<!-- <a href="javascript:;" class="btn btn-yellow" id="tempBtn">임시저장</a> -->
<!-- <a href="javascript:;" class="btn btn-blue" id="assignSaveBtn">등록</a>
<a href="javascript:;" class="btn btn-blue" id="modifyBtn" th:if="${cmd eq 'update'}">수정</a> -->
</div>
<!--<div class="modal-footer">
<a class="btn btn-yellow">임시저장</a>
<a class="btn btn-success">결재</a>
<a class="btn btn-blue">작성</a>
</div>-->
</html>

View File

@ -3,8 +3,7 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}">
<th:block layout:fragment="script">
<!--<script type="text/javascript" th:src="@{/js/faRpt/faRpt.js}"></script>
<script type="text/javascript" th:src="@{/js/modal/userModal.js}"></script>-->
<script type="text/javascript" th:src="@{/js/budget/statsOrg.js}"></script>
</th:block>
<div layout:fragment="content">
<main>
@ -25,40 +24,52 @@
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<!--<form method="get" th:action="${searchUrl}">
<input type="hidden" name="activeTab" id="activeTab" th:value="${searchParams.activeTab}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<form id="assginForm" method="get" action="/budget/assign" onsubmit="return false;">
<input type="hidden" name="year" id="year" value=""/>
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link ivsgtTab active"
data-bs-toggle="tab" type="button" role="tab">총괄표</button>
</li>
<li class="nav-item" role="presentation" onclick="goOrg()">
<button class="nav-link ivsgtTab"
data-bs-toggle="tab" type="button" role="tab">관서별현황</button>
</li>
<li class="nav-item" role="presentation" onclick="goDetail()">
<button class="nav-link ivsgtTab"
data-bs-toggle="tab" type="button" role="tab">세부내역별현황</button>
</li>
</ul>
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto" th:if="${searchParams.activeTab ne 'send'}">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
<div class="col-auto">
</div>
<div class="col-auto">
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="won" id="won">
<option value="1" th:selected="${searchParams?.won eq '1'}"></option>
<option value="2" th:selected="${searchParams?.won eq '2'}">백원</option>
<option value="3" th:selected="${searchParams?.won eq '3'}">천원</option>
<option value="4" th:selected="${searchParams?.won eq '4'}">만원</option>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="해시태그" name="hashTags" th:value="${searchParams.hashTags}">
</div>
<div class="col-auto" th:if="${accessAuth eq 'ACC003'}">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
<select class="form-select form-select-sm" name="code" id="code">
<option value="OG001" th:selected="${searchParams?.code eq 'OG001'}">본청</option>
<option th:each="code, i : ${codeList}" th:value="${code?.orgCode}"
th:text="${code?.orgName}"
th:selected="${searchParams?.code eq code.orgCode}">2023
</option>
</select>
</div>
<div class="col-auto">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
<input type="text" class="form-control form-control-sm" id="stDate" name="stDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.stDate}">
<input type="text" class="form-control form-control-sm" id="edDate" name="edDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.edDate}">
</div>
</div>
<div class=" col-auto">
@ -67,7 +78,7 @@
</div>
</div>
</div>
</form>-->
</form>
<div class="row">
<div class="col-12">
<table class="table table-sm table-bordered table-hover">
@ -82,38 +93,8 @@
</tr>
</thead>
<tbody class="table-group-divider">
<!--<tr class="faRptTr" th:each="faRpt,cnt:${faRptList}">
<input type="hidden" class="faRptKey" th:value="${faRpt.faRptKey}">
&lt;!&ndash;
<td><input type="checkbox" class="trChkBox"></td>
&ndash;&gt;
<td th:text="${cnt.count}"></td>
<td>
<th:block th:each="code:${session.commonCode.get('OG')}">
<th:block th:if="${faRpt.wrtOrgan eq code.itemCd}" th:text="${code.itemValue}"></th:block>
</th:block>
</td>
<td>
<th:block th:each="code:${session.commonCode.get('FRC')}">
<th:text th:if="${code.itemCd eq faRpt.faRptType}" th:text="${code.itemValue}"></th:text>
</th:block>
</td>
<td class="titleLeft" th:text="${faRpt.title}"></td>
<td th:text="${faRpt.fileCnt eq null?'파일 없음':#strings.concat(faRpt.fileCnt,' 건')}"></td>
<td th:text="|${faRpt.readCnt}/${faRpt.userCnt}|"></td>
<td>
<th:block th:each="code:${session.commonCode.get(faRpt.wrtOrgan)}">
<th:block th:if="${faRpt.wrtPart eq code.itemCd}" th:text="${code.itemValue}"></th:block>
</th:block>
</td>
<td th:text="${faRpt.wrtUserNm}"></td>
<td th:text="${#temporals.format(faRpt.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:if="${faRpt.status ne 'receive'}">
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
<th:text th:if="${commonCode.itemCd eq faRpt.status}" th:text="${commonCode.itemValue}"></th:text>
</th:block>
</td>
</tr>-->
<tr class="faRptTr" th:each="info, i : ${list}">
</tr>
</tbody>
</table>
</div>
@ -121,29 +102,6 @@
<div class="row justify-content-between">
<div class="col-auto"></div>
<div class="col-auto">
<!--<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<th:block th:if="${searchParams.pageIndex>3}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
<a class="page-link" href="#" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</th:block>
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex eq num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
</th:block>
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
<a class="page-link" href="#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</th:block>
</ul>
</nav>-->
</div>
<div class="col-auto">
<!--<input type="button" class="btn btn-success" value="등록" id="addFaRptBtn">-->

View File

@ -0,0 +1,124 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}">
<th:block layout:fragment="script">
<script type="text/javascript" th:src="@{/js/budget/statsDetail.js}"></script>
</th:block>
<div layout:fragment="content">
<main>
<input type="hidden" id="menuKey" value="1">
<div class="row justify-content-between">
<div class="col-auto">
<div class="mb-2">
<div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div>
<h5 class="d-inline align-middle"> 예산통계</h5>
</div>
</div>
<div class="col-auto">
<p class="mb-0 mt-2">정보예산관리 > 예산통계</p>
</div>
</div>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<form id="assginForm" method="get" action="/budget/assign" onsubmit="return false;">
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item" role="presentation" onclick="goAll()">
<button class="nav-link ivsgtTab"
data-bs-toggle="tab" type="button" role="tab">총괄표</button>
</li>
<li class="nav-item" role="presentation" onclick="goOrg()">
<button class="nav-link ivsgtTab"
data-bs-toggle="tab" type="button" role="tab">관서별현황</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link ivsgtTab active"
data-bs-toggle="tab" type="button" role="tab">세부내역별현황</button>
</li>
</ul>
<div class="row justify-content-between py-1">
<div class="col-auto">
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto">
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="won" id="won">
<option value="1" th:selected="${searchParams?.won eq '1'}"></option>
<option value="2" th:selected="${searchParams?.won eq '2'}">백원</option>
<option value="3" th:selected="${searchParams?.won eq '3'}">천원</option>
<option value="4" th:selected="${searchParams?.won eq '4'}">만원</option>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="year" id="year" onchange="changeYear()">
<option th:each="info, i : ${yearList}" th:value="${info.year}" th:selected="${searchParams?.year eq info.year}" th:text="${info.year}">2023</option>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="item" id="item">
<option th:each="code, i : ${codeList}" th:value="${code?.getl3_code}" th:text="${code?.getl3_name}" th:selected="${searchParams?.item eq code.getl3_code}">2023</option>
</select>
</div>
<div class="col-auto">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="stDate" name="stDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.stDate}">
<input type="text" class="form-control form-control-sm" id="edDate" name="edDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.edDate}">
</div>
</div>
<div class=" col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row">
<div class="col-12">
<table class="table table-sm table-bordered table-hover">
<thead>
<tr class="table-secondary">
<th rowspan="2">재무관서</th>
<th rowspan="2">예산총액</th>
<th rowspan="2">예산배정액<br/>(누적)</th>
<th rowspan="1" colspan="3">집행액(총계)</th>
</tr>
<tr class="table-secondary">
<th>지출액</th>
<th>보유잔액</th>
<th>집행비율</th>
</tr>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="faRptTr" th:each="info, i : ${list}">
<td th:text="${info.getorg_name}"></td>
<td th:text="${#numbers.formatInteger(info.getplan_amount,1,'COMMA')}"></td>
<td th:text="${#numbers.formatInteger(info.gettotal_assign_amount,1,'COMMA')}"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_t_amount,1,'COMMA')}"></td>
<td th:text="${#numbers.formatInteger(info.getbalance_t_amount,1,'COMMA')}"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_total_rate,1,'COMMA')}"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto"></div>
<div class="col-auto">
</div>
<div class="col-auto">
<!--<input type="button" class="btn btn-success" value="등록" id="addFaRptBtn">-->
</div>
</div>
</div>
</div>
</div>
</main>
</div>
</html>

View File

@ -0,0 +1,182 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}">
<th:block layout:fragment="script">
<script type="text/javascript" th:src="@{/js/budget/statsOrg.js}"></script>
</th:block>
<div layout:fragment="content">
<main>
<input type="hidden" id="menuKey" value="1">
<div class="row justify-content-between">
<div class="col-auto">
<div class="mb-2">
<div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div>
<h5 class="d-inline align-middle"> 예산통계</h5>
</div>
</div>
<div class="col-auto">
<p class="mb-0 mt-2">정보예산관리 > 예산통계</p>
</div>
</div>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<form id="assginForm" method="get" action="/budget/assign" onsubmit="return false;">
<input type="hidden" name="year" id="year" value=""/>
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item" role="presentation" onclick="goAll()">
<button class="nav-link ivsgtTab"
data-bs-toggle="tab" type="button" role="tab">총괄표></button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link ivsgtTab active"
data-bs-toggle="tab" type="button" role="tab">관서별현황</button>
</li>
<li class="nav-item" role="presentation" onclick="goDetail()">
<button class="nav-link ivsgtTab"
data-bs-toggle="tab" type="button" role="tab">세부내역별현황</button>
</li>
</ul>
<div class="row justify-content-between py-1">
<div class="col-auto">
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto">
</div>
<div class="col-auto">
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="won" id="won">
<option value="1" th:selected="${searchParams?.won eq '1'}"></option>
<option value="2" th:selected="${searchParams?.won eq '2'}">백원</option>
<option value="3" th:selected="${searchParams?.won eq '3'}">천원</option>
<option value="4" th:selected="${searchParams?.won eq '4'}">만원</option>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="code" id="code">
<option value="OG001" th:selected="${searchParams?.code eq 'OG001'}">본청</option>
<option th:each="code, i : ${codeList}" th:value="${code?.orgCode}" th:text="${code?.orgName}" th:selected="${searchParams?.code eq code.orgCode}">2023</option>
</select>
</div>
<div class="col-auto">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="stDate" name="stDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.stDate}">
<input type="text" class="form-control form-control-sm" id="edDate" name="edDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.edDate}">
</div>
</div>
<div class=" col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row">
<div class="col-12">
<table class="table table-sm table-bordered table-hover">
<thead>
<tr class="table-secondary">
<th rowspan="2">사업명</th>
<th rowspan="2">구분</th>
<th rowspan="2">세부내역</th>
<th rowspan="2">예산총액</th>
<th rowspan="2">예산총배정액<br/>(누적)</th>
<th rowspan="1" colspan="3">집행액(총계)</th>
<th colspan="4" th:each="orglist : ${downOrgList}" th:text="${orglist.orgName}"></th>
</tr>
<tr class="table-secondary">
<th>지출총액</th>
<th>보유잔액</th>
<th>진행률</th>
<th:block th:each="orglist : ${downOrgList}">
<th>배정액</th>
<th>지출총액</th>
<th>잔액</th>
<th>집행률</th>
</th:block>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="faRptTr" th:each="info, i : ${list}">
<td th:text="${info.getbudget_name_l1}"></td>
<td th:text="${info.getbudget_name_l2}"></td>
<td th:text="${info.getbudget_name_l3}"></td>
<td th:text="${#numbers.formatInteger(info.getplan_amount,1,'COMMA')}"></td>
<td th:text="${#numbers.formatInteger(info.gettotal_assign_amount,1,'COMMA')}"></td>
<td th:text="${info.getexpense_t_amount}"></td>
<td th:text="${#numbers.formatInteger(info.getbalance_t_amount,1,'COMMA')}"></td>
<th:block th:each="orglist, j : ${downOrgList}">
<th:block th:if="${j.index} == '0'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount1,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_p_amount1,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getblance_amount1,1,'COMMA')}" class="text-end">11</td>
<td th:text="${#numbers.formatInteger(info.getexpense_rate1,1,'COMMA')}" class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '1'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount2,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_p_amount2,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getblance_amount2,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_rate2,1,'COMMA')}" class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '2'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount3,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_p_amount3,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getblance_amount3,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_rate3,1,'COMMA')}" class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '3'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount4,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_p_amount4,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getblance_amount4,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_rate4,1,'COMMA')}" class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '4'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount5,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_p_amount5,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getblance_amount5,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_rate5,1,'COMMA')}" class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '5'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount6,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_p_amount6,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getblance_amount6,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_rate6,1,'COMMA')}" class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '6'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount7,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_p_amount7,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getblance_amount7,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_rate7,1,'COMMA')}" class="text-end"></td>
</th:block>
<th:block th:if="${j.index} == '7'">
<td th:text="${#numbers.formatInteger(info.getperiod_assign_amount8,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_p_amount8,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getblance_amount8,1,'COMMA')}" class="text-end"></td>
<td th:text="${#numbers.formatInteger(info.getexpense_rate8,1,'COMMA')}" class="text-end"></td>
</th:block>
</th:block>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto"></div>
<div class="col-auto">
</div>
<div class="col-auto">
<!--<input type="button" class="btn btn-success" value="등록" id="addFaRptBtn">-->
</div>
</div>
</div>
</div>
</div>
</main>
</div>
</html>