견문보고 목록 첨부파일 부분 클릭시 다운로드 기능 추가.
견문보고 결재대기 목록에서 이전 결재 평가 조회도록 수정. 방첩공작 실적(통계) 쿼리 수정. 예산편성 등록모달 테이블 고정부분 추가.master
parent
a37361bdd8
commit
402bd7fa9a
|
|
@ -129,9 +129,11 @@ public class FileController extends BaseService{
|
|||
@GetMapping("/downloadAffairFiles")
|
||||
public void downloadAffairFiles(HttpServletRequest request,
|
||||
HttpServletResponse response,
|
||||
@RequestParam(value="fileNm", defaultValue = "견문보고서 첨부파일_") String fileNm,
|
||||
@RequestParam(value="affairKeyList") List<Integer> affairKeyList){
|
||||
List<FileInfo> fileList = affairService.selectAffairFileList(affairKeyList);
|
||||
makeZipAndOut(request, response, "견문보고서 첨부파일_", fileList);
|
||||
|
||||
makeZipAndOut(request, response, fileNm, fileList);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -146,6 +146,7 @@ public class SecurityConfig{
|
|||
"/counterIntelligence/**",
|
||||
"/monitoring/**",
|
||||
"/intelligenceNetwork/**",
|
||||
"/budget/**",
|
||||
"/deadline/**"
|
||||
).hasRole(Role.USER.name()) // USER 접근 허용
|
||||
.antMatchers(
|
||||
|
|
|
|||
|
|
@ -72,6 +72,8 @@ public class AffairBoard extends BaseModel {
|
|||
private String ratingOrgan;
|
||||
@Transient
|
||||
private String affairRate;
|
||||
@Transient
|
||||
private String beforeRating;
|
||||
|
||||
@Transient
|
||||
private String reception;
|
||||
|
|
|
|||
|
|
@ -109,12 +109,13 @@
|
|||
a.wrt_user_seq,
|
||||
a.wrt_dt,
|
||||
a.report_dt,
|
||||
a.doc_no,
|
||||
b.fileCnt,
|
||||
c.rating_organ,
|
||||
c.affair_status,
|
||||
c.affair_rate,
|
||||
c.organ_up,
|
||||
a.doc_no
|
||||
d.beforeRating
|
||||
from affair_board a
|
||||
left outer join (select affair_key,
|
||||
count(file_seq) as fileCnt
|
||||
|
|
@ -123,6 +124,13 @@
|
|||
on a.affair_key = b.affair_key
|
||||
inner join affair_rating c
|
||||
on a.affair_key = c.affair_key
|
||||
inner join (
|
||||
select affair_key, STRING_AGG(CAST(og.item_value||' : '||ar.item_value AS VARCHAR), ', ') as beforeRating
|
||||
from affair_rating aa
|
||||
inner join code_mgt og on aa.rating_organ = og.item_cd
|
||||
inner join code_mgt ar on aa.affair_rate = ar.item_cd
|
||||
group by affair_key
|
||||
) d on a.affair_key = d.affair_key
|
||||
<include refid="selectAffairBoardWhere"></include>
|
||||
order by a.affair_key desc
|
||||
limit #{rowCnt} offset #{firstIndex}
|
||||
|
|
|
|||
|
|
@ -117,10 +117,18 @@
|
|||
|
||||
<select id="selectCiWorkStatisticsList" resultType="ciWorkStatistics" parameterType="ciWorkStatistics">
|
||||
select work_rating,
|
||||
count(case when work_start_date >= (#{year}||'-01-01')::date and work_start_date <= (#{year}+1||'-01-01')::date then 1 end) as newWorkCnt,
|
||||
count(case when work_end_date is null or (work_end_date >= (#{year}+1||'-01-01')::date and work_end_date < (#{year}+2||'-01-01')::date) then 1 end) as doingWorkCnt,
|
||||
count(case when work_start_date > (#{year}-1||'-01-01')::date and work_start_date <= (#{year}||'-01-01')::date and work_end_date >= (#{year}||'-01-01')::date and work_end_date < (#{year}+1||'-01-01')::date then 1 end) as prevYearWorkEndCnt,
|
||||
count(case when work_start_date >= (#{year}||'-01-01')::date and work_start_date <= (#{year}+1||'-01-01')::date and work_end_date >= (#{year}||'-01-01')::date and work_end_date < (#{year}+1||'-01-01')::date then 1 end) as thisYearWorkEndCnt
|
||||
sum(case when work_start_date >= (#{year}||'-01-01')::date and work_start_date < (#{year}+1||'-01-01')::date then 1 else 0 end) as newWorkCnt,
|
||||
sum(case
|
||||
when work_start_date >= (#{year}||'-01-01')::date and work_start_date < (#{year}+1||'-01-01')::date and work_end_date is null then 1
|
||||
when work_start_date >= (#{year}-1||'-01-01')::date and work_start_date < (#{year}||'-01-01')::date and work_end_date is null then 1
|
||||
when work_start_date >= (#{year}||'-01-01')::date and work_start_date < (#{year}+1||'-01-01')::date and work_end_date > (#{year}||'-01-01')::date and work_end_date < (#{year}+1||'-01-01')::date and work_end_date > now() then 1
|
||||
when work_start_date >= (#{year}-1||'-01-01')::date and work_start_date < (#{year}||'-01-01')::date and work_end_date > (#{year}||'-01-01')::date and work_end_date < (#{year}+1||'-01-01')::date and work_end_date > now() then 1
|
||||
when work_start_date >= (#{year}||'-01-01')::date and work_start_date < (#{year}+1||'-01-01')::date and work_end_date > (#{year}+1||'-01-01')::date and work_end_date < (#{year}+2||'-01-01')::date then 1
|
||||
when work_start_date >= (#{year}-1||'-01-01')::date and work_start_date < (#{year}||'-01-01')::date and work_end_date > (#{year}+1||'-01-01')::date and work_end_date < (#{year}+2||'-01-01')::date then 1
|
||||
else 0
|
||||
end) as doingWorkCnt,
|
||||
sum(case when work_start_date >= (#{year}||'-01-01')::date and work_start_date < (#{year}+1||'-01-01')::date and work_end_date >= (#{year}||'-01-01')::date and work_end_date < (#{year}+1||'-01-01')::date then 1 else 0 end) as thisYearWorkEndCnt,
|
||||
sum(case when work_start_date >= (#{year}-1||'-01-01')::date and work_start_date < (#{year}||'-01-01')::date and work_end_date >= (#{year}||'-01-01')::date and work_end_date < (#{year}+1||'-01-01')::date then 1 else 0 end) as prevYearWorkEndCnt
|
||||
from counter_intelligence_work a
|
||||
WHERE a.status = 'DST007'
|
||||
<if test='ogCd != null and ogCd != ""'>
|
||||
|
|
@ -137,7 +145,7 @@
|
|||
</select>
|
||||
<select id="selectCiWorkYearList" resultType="int">
|
||||
select year
|
||||
from ( select EXTRACT(YEAR FROM work_start_date) AS year
|
||||
from ( select EXTRACT(YEAR FROM work_end_date) AS year
|
||||
from counter_intelligence_work
|
||||
where status <> 'DST008'
|
||||
union
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
#tableDiv{
|
||||
height: 600px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.budgetNameTh{
|
||||
z-index:3!important;
|
||||
}
|
||||
#data-table-default thead{
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 2;
|
||||
}
|
||||
#data-table-default th:nth-child(1),
|
||||
#data-table-default td:nth-child(1){
|
||||
position: sticky;
|
||||
left: -7px;
|
||||
z-index:1;
|
||||
}
|
||||
#data-table-default th:nth-child(2),
|
||||
#data-table-default td:nth-child(2){
|
||||
position: sticky;
|
||||
left: 98px;
|
||||
z-index:1;
|
||||
}
|
||||
#data-table-default th:nth-child(3),
|
||||
#data-table-default td:nth-child(3){
|
||||
position: sticky;
|
||||
left: 216px;
|
||||
z-index:1;
|
||||
}
|
||||
|
|
@ -29,8 +29,14 @@ $(document).on('click', '.affairTr', function (event){
|
|||
$(".trChkBox").prop("checked", false);
|
||||
chkBox[0].checked = true;
|
||||
}
|
||||
|
||||
if(target.className === "fileTd"
|
||||
|| $(target).parents(".fileTd").length>0){
|
||||
$("#fileDownBtn").click();
|
||||
}else{
|
||||
getAffairViewModal(Number($(this).find(".affairKey").val()));
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
$(document).on('click', '#addAffairBtn', function (){
|
||||
|
|
@ -219,14 +225,24 @@ $(document).on('click', '#fileDownBtn', function (){
|
|||
alert("대상이 없습니다.");
|
||||
return false;
|
||||
}
|
||||
if(selectedList.length===1){
|
||||
downloadAffairFiles("/file/downloadAffairFiles?fileNm=" +
|
||||
$(selectedList).parents("tr").find(".reportDt")[0].innerText + "_" +
|
||||
$(selectedList).parents("tr").find(".reportTitle")[0].innerText +
|
||||
"_&affairKeyList=", selectedList)
|
||||
}else{
|
||||
if(confirm("선택된 견문의 파일을 다운로드 하시겠습니까?")){
|
||||
let url = "/file/downloadAffairFiles?affairKeyList="
|
||||
downloadAffairFiles("/file/downloadAffairFiles?affairKeyList=", selectedList)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
function downloadAffairFiles(url, selectedList){
|
||||
$.each(selectedList, function(idx, chkBox){
|
||||
url += $(chkBox).parents("tr").find(".affairKey").val()+",";
|
||||
})
|
||||
window.open(encodeURI(url));
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
$(document).on('click', '#deleteBtn', function (){
|
||||
if(confirm("삭제하시겠습니까?\n되돌릴 수 없습니다.")){
|
||||
|
|
|
|||
|
|
@ -5,6 +5,9 @@
|
|||
<th:block layout:fragment="script">
|
||||
<script type="text/javascript" th:src="@{/js/budget/assign.js}"></script>
|
||||
</th:block>
|
||||
<th:block layout:fragment="css">
|
||||
<link rel="stylesheet" th:href="@{/css/budget/assign.css}">
|
||||
</th:block>
|
||||
<div layout:fragment="content">
|
||||
<main>
|
||||
<input type="hidden" id="menuKey" value="55">
|
||||
|
|
|
|||
|
|
@ -1,13 +1,5 @@
|
|||
<!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>
|
||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
<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>
|
||||
|
|
@ -22,9 +14,7 @@
|
|||
<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="row">
|
||||
<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"
|
||||
|
|
@ -32,13 +22,14 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<table id="data-table-default" class="table table-striped table-bordered align-middle" style="width:2500px">
|
||||
<div class="row">
|
||||
<div class="col-12 overflow-auto" id="tableDiv">
|
||||
<table id="data-table-default" class="table table-striped table-bordered text-nowrap align-middle">
|
||||
<thead>
|
||||
<tr class="table-secondary text-center">
|
||||
<th rowspan="2">사업명</th>
|
||||
<th rowspan="2">구분</th>
|
||||
<th rowspan="2">세부내역</th>
|
||||
<th class="budgetNameTh" rowspan="2">사업명</th>
|
||||
<th class="budgetNameTh" rowspan="2">구분</th>
|
||||
<th class="budgetNameTh" rowspan="2">세부내역</th>
|
||||
<th rowspan="2">예산총액</th>
|
||||
<th rowspan="2">예산총배정액<br/>(누적)</th>
|
||||
<th:block th:each="orglist, i : ${downOrgList}">
|
||||
|
|
@ -47,17 +38,17 @@
|
|||
</tr>
|
||||
<tr class="table-secondary text-center">
|
||||
<th:block th:each="orglist : ${downOrgList}">
|
||||
<th>기간배정액</th>
|
||||
<th>금회배정액</th>
|
||||
<th>누적액</th>
|
||||
<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 class="table-secondary" th:text="${info.getbudget_name_l1}"></td>
|
||||
<td class="table-secondary" th:text="${info.getbudget_name_l2}"></td>
|
||||
<td class="table-secondary" 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}">
|
||||
|
|
@ -135,25 +126,20 @@
|
|||
<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>
|
||||
oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"/>
|
||||
</td>
|
||||
<td th:text="${#numbers.formatInteger(info.getsum_assign_amount8,1,'COMMA')}" class="text-end"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<!-- </table>-->
|
||||
</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>
|
||||
<a href="javascript:;" class="btn btn-primary" id="assignSaveBtn">저장</a>
|
||||
<a href="javascript:;" class="btn btn-primary" 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>
|
||||
|
|
@ -108,17 +108,14 @@
|
|||
<th>착수일<br>/종결일</th>
|
||||
<th>재평가일</th>
|
||||
<th>첨부파일</th>
|
||||
|
||||
<th>작성자</th>
|
||||
<th>작성일시</th>
|
||||
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="ciWorkTr" th:each="ciWork,cnt:${ciWorkList}">
|
||||
<input type="hidden" class="ciwKey" th:value="${ciWork.ciwKey}">
|
||||
<td th:text="${cnt.count}"></td>
|
||||
<td th:text="${searchParams.contentCnt-(searchParams.rowCnt*(searchParams.pageIndex-1))-cnt.count+1}"></td>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<td th:if="${ciWork.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
|
|
|
|||
|
|
@ -54,12 +54,8 @@
|
|||
</th>
|
||||
</tr>
|
||||
<tr class="table-secondary">
|
||||
<th>
|
||||
<th:block th:text="|${searchParams.year-1}년 개척 건 中|"></th:block>
|
||||
</th>
|
||||
<th>
|
||||
<th:block th:text="|${searchParams.year}년 개척 건 中|"></th:block>
|
||||
</th>
|
||||
<th th:text="|${searchParams.year}년 개척 건 中|"></th>
|
||||
<th th:text="|${searchParams.year-1}년 개척 건 中|"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
|
|
@ -74,8 +70,8 @@
|
|||
</td>
|
||||
<td th:text="${statistics.newWorkCnt}"></td>
|
||||
<td th:text="${statistics.doingWorkCnt}"></td>
|
||||
<td th:text="${statistics.prevYearWorkEndCnt}"></td>
|
||||
<td th:text="${statistics.thisYearWorkEndCnt}"></td>
|
||||
<td th:text="${statistics.prevYearWorkEndCnt}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -142,10 +142,7 @@
|
|||
<tr class="table-secondary">
|
||||
<th><input type="checkbox" class="allChk"></th>
|
||||
<th>문서번호</th>
|
||||
<th>분야1</th>
|
||||
<th>분야2</th>
|
||||
<th>분야3</th>
|
||||
<th>분야4</th>
|
||||
<th>분야</th>
|
||||
<th>제목</th>
|
||||
<th>관서</th>
|
||||
<th>부서</th>
|
||||
|
|
@ -153,8 +150,14 @@
|
|||
<th>보고일자</th>
|
||||
<th>첨부파일</th>
|
||||
<th>상태</th>
|
||||
<th:block th:if="page eq 'stayReport'">
|
||||
<th>이전평가</th>
|
||||
<th>평가</th>
|
||||
</th:block>
|
||||
<th:block th:unless="page eq 'stayReport'">
|
||||
<th>평가</th>
|
||||
<th>상보</th>
|
||||
</th:block>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
|
|
@ -164,25 +167,19 @@
|
|||
<td th:text="${affair.docNo}"></td>
|
||||
<td>
|
||||
<th:block th:each="code:${session.commonCode.get('DC01')}">
|
||||
<th:block th:if="${affair.affairType1 eq code.itemCd}" th:text="${code.itemValue}"></th:block>
|
||||
<th:block th:if="${affair.affairType1 eq code.itemCd}" th:text="${#strings.concat(code.itemValue, ' > ')}"></th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td>
|
||||
<th:block th:each="code:${session.commonCode.get('DC02')}">
|
||||
<th:block th:if="${affair.affairType2 eq code.itemCd}" th:text="${code.itemValue}"></th:block>
|
||||
<th:block th:if="${affair.affairType2 eq code.itemCd}" th:text="${#strings.concat(code.itemValue, ' > ')}"></th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td>
|
||||
<th:block th:each="code:${session.commonCode.get('DC03')}">
|
||||
<th:block th:if="${affair.affairType3 eq code.itemCd}" th:text="${code.itemValue}"></th:block>
|
||||
<th:block th:if="${affair.affairType3 eq code.itemCd}" th:text="${#strings.concat(code.itemValue, ' > ')}"></th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td>
|
||||
<th:block th:each="code:${session.commonCode.get('DC04')}">
|
||||
<th:block th:if="${affair.affairType4 eq code.itemCd}" th:text="${code.itemValue}"></th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td th:text="${affair.title}"></td>
|
||||
<td class="reportTitle" th:text="${affair.title}"></td>
|
||||
<td>
|
||||
<th:block th:each="code:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${affair.wrtOrgan eq code.itemCd}" th:text="${code.itemValue}"></th:block>
|
||||
|
|
@ -194,8 +191,10 @@
|
|||
</th:block>
|
||||
</td>
|
||||
<td th:text="${affair.wrtUserNm}"></td>
|
||||
<td th:text="${#temporals.format(affair.reportDt, 'yyyy-MM-dd')}"></td>
|
||||
<td th:text="${affair.fileCnt eq null?'파일 없음':#strings.concat(affair.fileCnt,' 건')}"></td>
|
||||
<td class="reportDt" th:text="${#temporals.format(affair.reportDt, 'yyyy-MM-dd')}"></td>
|
||||
<th:block th:with="fileYn=${affair.fileCnt eq null}">
|
||||
<td th:class="${fileYn?'':'fileTd'}" th:text="${fileYn?'파일 없음':#strings.concat(affair.fileCnt,' 건')}"></td>
|
||||
</th:block>
|
||||
<td>
|
||||
<th:block th:each="code:${session.commonCode.get('DST')}">
|
||||
<th:block th:if="${affair.affairStatus eq code.itemCd}" th:text="${code.itemValue}"></th:block>
|
||||
|
|
@ -210,12 +209,13 @@
|
|||
<td th:text="${affair.organUp eq 'T'?'O':(affair.wrtOrgan ne affair.ratingOrgan?'O':'X')}"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${page eq 'stayReport'}">
|
||||
<td th:text="${affair.beforeRating}"></td>
|
||||
<th:block th:if="${apprvAuth ne null and affair.affairStatus eq 'DST002'
|
||||
and (#strings.contains(apprvAuth, 'APC004') or #strings.contains(apprvAuth, 'APC003'))}">
|
||||
<!--결재권한 있고 결재대기상태이면서 결재권한이 계장, 계장대행을 가지고있는 경우-->
|
||||
<!--결재대기상태이면서 결재권한이 계장, 계장대행을 가지고있는 경우-->
|
||||
<th:block th:if="${#strings.contains(apprvAuth, 'APC002') or #strings.contains(apprvAuth, 'APC001')}">
|
||||
<!--과장, 과장대행 결재권한을 가지고 있는 경우-->
|
||||
<td colspan="2" class="apprvTd">
|
||||
<td class="apprvTd">
|
||||
<input type="hidden" class="affairKey" th:value="${affair.affairKey}">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-auto">
|
||||
|
|
@ -243,7 +243,7 @@
|
|||
</th:block>
|
||||
<th:block th:unless="${#strings.contains(apprvAuth, 'APC002') or #strings.contains(apprvAuth, 'APC001')}">
|
||||
<!--과장, 과장대행 결재권한을 가지고 있지 않은 경우-->
|
||||
<td colspan="2" class="apprvTd">
|
||||
<td class="apprvTd">
|
||||
<input type="hidden" class="affairKey" th:value="${affair.affairKey}">
|
||||
<input type="radio" class="apprvChkbox" th:id="|apprvChkbox${affair.affairKey}DST004|" th:name="|apprvChkbox${affair.affairKey}|" value="DST004">
|
||||
<label th:for="|apprvChkbox${affair.affairKey}DST004|">결재</label>
|
||||
|
|
@ -257,7 +257,7 @@
|
|||
<th:block th:if="${apprvAuth ne null and affair.affairStatus eq 'DST004'
|
||||
and (#strings.contains(apprvAuth, 'APC002') or #strings.contains(apprvAuth, 'APC001'))}">
|
||||
<!--결재권한 있고 계장결재완료 상태이면서 결재권한이 과장, 과장대행을 가지고있는 경우-->
|
||||
<td colspan="2" class="apprvTd">
|
||||
<td class="apprvTd">
|
||||
<input type="hidden" class="affairKey" th:value="${affair.affairKey}">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-auto">
|
||||
|
|
|
|||
Loading…
Reference in New Issue