업무용 휴대전화 검색기능 추가.

master
강석 최 2023-03-02 12:12:44 +09:00
parent 53d2149614
commit d214a6dfce
3 changed files with 118 additions and 60 deletions

View File

@ -406,27 +406,55 @@
order by version_no asc
limit 1
</select>
<sql id="selectCellPhoneListWhere">
where cm.mgt_organ = oc.organ_cd
and cm.p_user_seq = ui.user_seq
and cm.mgt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
<if test='mgtOrgan != null and mgtOrgan != ""'>
and cm.mgt_organ = #{mgtOrgan}
</if>
<if test='telNo != null and telNo != ""'>
and cm.tel_no like '%'||#{telNo}||'%'
</if>
<if test='userNm != null and userNm != ""'>
and ui.user_nm like '%'||#{userNm}||'%'
</if>
<if test='extMail != null and extMail != ""'>
and cm.ext_mail like '%'||#{extMail}||'%'
</if>
<if test='webexNo != null and webexNo != ""'>
and cm.webex_no like '%'||#{webexNo}||'%'
</if>
<if test='katalkId != null and katalkId != ""'>
and cm.katalk_id like '%'||#{katalkId}||'%'
</if>
</sql>
<select id="selectCellPhoneList" resultType="CellPhone" parameterType="CellPhone">
select phone_key,
case
when oc.organ_type = 'OGC001' then (select item_value from code_mgt cm where cm.item_cd = oc.organ_cd )
when oc.organ_type = 'OGC002' then (select item_value from code_mgt cm where cm.item_cd = oc.organ_cd )
else concat((select item_value from code_mgt cm where cm.item_cd = oc.parent_organ ),'-', (select item_value from code_mgt cm where cm.item_cd = oc.organ_cd ))
end as sosok,
tel_no,
p_user_seq,
(select user_nm from user_info ui where ui.user_seq = cm.p_user_seq) as user_nm,
ext_mail,
webex_no,
katalk_id
when oc.organ_type = 'OGC001' then (select item_value from code_mgt cm where cm.item_cd = oc.organ_cd )
when oc.organ_type = 'OGC002' then (select item_value from code_mgt cm where cm.item_cd = oc.organ_cd )
else concat(
(select item_value from code_mgt cm where cm.item_cd = oc.parent_organ ),
'-',
(select item_value from code_mgt cm where cm.item_cd = oc.organ_cd )
)
end as sosok,
tel_no,
p_user_seq,
ui.user_nm as user_nm,
ext_mail,
webex_no,
katalk_id
from cellphone_mgt cm,
organ_config oc
where cm.mgt_organ = oc.organ_cd
and cm.mgt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
organ_config oc,
user_info ui
<include refid="selectCellPhoneListWhere"></include>
order by cm.wrt_dt desc
<if test='excel != "Y"'>
limit #{rowCnt} offset #{firstIndex}
@ -444,17 +472,14 @@
end as sosok,
tel_no,
p_user_seq,
(select user_nm from user_info ui where ui.user_seq = cm.p_user_seq) as user_nm,
ui.user_nm as user_nm,
ext_mail,
webex_no,
katalk_id
from cellphone_mgt cm,
organ_config oc
where cm.mgt_organ = oc.organ_cd
and cm.mgt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
organ_config oc,
user_info ui
<include refid="selectCellPhoneListWhere"></include>
order by cm.wrt_dt desc
) a
</select>

View File

@ -14,24 +14,6 @@
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<form id="searchFm" method="get" th:action="@{/equip/cellPhoneList}">
<input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<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==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<input type="submit" class="btn btn-sm btn-primary col-auto d-none" id="searchBtn" value="검색">
</div>
</div>
</div>
</form>
<div class="row justify-content-between py-1">
<div class="col-auto">
<button data-bs-toggle="modal" class="btn btn-success" data-bs-target="#webexModal" >웹엑스 접속방법</button>
@ -44,6 +26,57 @@
<div class="col-12">
<div class="card">
<div class="card-body">
<form id="searchFm" method="get" th:action="@{/equip/cellPhoneList}">
<input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<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==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-8">
<div class="row">
<div class="col-11">
<div class="row justify-content-end">
<div class="col-2">
<select class="form-select form-select-sm" name="mgtOrgan">
<option value="">소속</option>
<th:block th:each="code:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(searchParams.downOrganCdList, code.itemCd)}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.mgtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="telNo" placeholder="전화번호" th:value="${searchParams.telNo}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="userNm" placeholder="사용자" th:value="${searchParams.userNm}">
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="extMail" placeholder="등록 외부메일" th:value="${searchParams.extMail}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="webexNo" placeholder="웹엑스 미팅번호" th:value="${searchParams.webexNo}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="katalkId" placeholder="카카오톡 ID" th:value="${searchParams.katalkId}">
</div>
</div>
</div>
<div class="col-1 d-grid gap-0">
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row">
<table class="table table-sm table-hover table-bordered">
<thead>
@ -59,12 +92,12 @@
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="cellPhoneTr" th:each="cp:${cellPhoneList}">
<tr class="cellPhoneTr" th:each="cp,cnt:${cellPhoneList}">
<td class="cpChk">
<input type="checkbox" name="cpChk" class="cellPhoneCheckBox">
<input type="hidden" class="phoneKey" th:value="${cp.phoneKey}">
</td>
<td th:text="${cp.phoneKey}"></td>
<td th:text="${cnt.count+(searchParams.pageIndex-1)*searchParams.rowCnt}"></td>
<td th:text="${cp.sosok}"></td>
<td th:text="${cp.telNo}"></td>
<td th:text="${cp.userNm}"></td>

View File

@ -63,21 +63,21 @@
<tr class="table-secondary">
<th th:text="${statusSummary.sumMax}"></th>
<th th:text="${statusSummary.sumNow}"></th>
<th th:text="${statusSummary.sumNow-statusSummary.sumMax}" th:classappend="${(statusSummary.sumNow-statusSummary.sumMax)>=0?'text-primary':'text-danger'}"></th>
<th th:text="${statusSummary.sumNow-statusSummary.sumMax}" th:classappend="${(statusSummary.sumNow-statusSummary.sumMax) eq 0?'text-dark':((statusSummary.sumNow-statusSummary.sumMax)>0?'text-primary':'text-danger')}"></th>
<th th:text="${statusSummary.jt007Max}"></th>
<th th:text="${statusSummary.jt007Now}" th:classappend="${(statusSummary.jt007Now-statusSummary.jt007Max)>=0?'text-primary':'text-danger'}"></th>
<th th:text="${statusSummary.jt007Now}" th:classappend="${(statusSummary.jt007Now-statusSummary.jt007Max) eq 0?'text-dark':((statusSummary.jt007Now-statusSummary.jt007Max)>0?'text-primary':'text-danger')}"></th>
<th th:text="${statusSummary.jt006Max}"></th>
<th th:text="${statusSummary.jt006Now}" th:classappend="${(statusSummary.jt006Now-statusSummary.jt006Max)>=0?'text-primary':'text-danger'}"></th>
<th th:text="${statusSummary.jt006Now}" th:classappend="${(statusSummary.jt006Now-statusSummary.jt006Max) eq 0?'text-dark':((statusSummary.jt006Now-statusSummary.jt006Max)>0?'text-primary':'text-danger')}"></th>
<th th:text="${statusSummary.jt005Max}"></th>
<th th:text="${statusSummary.jt005Now}" th:classappend="${(statusSummary.jt005Now-statusSummary.jt005Max)>=0?'text-primary':'text-danger'}"></th>
<th th:text="${statusSummary.jt005Now}" th:classappend="${(statusSummary.jt005Now-statusSummary.jt005Max) eq 0?'text-dark':((statusSummary.jt005Now-statusSummary.jt005Max)>0?'text-primary':'text-danger')}"></th>
<th th:text="${statusSummary.jt004Max}"></th>
<th th:text="${statusSummary.jt004Now}" th:classappend="${(statusSummary.jt004Now-statusSummary.jt004Max)>=0?'text-primary':'text-danger'}"></th>
<th th:text="${statusSummary.jt004Now}" th:classappend="${(statusSummary.jt004Now-statusSummary.jt004Max) eq 0?'text-dark':((statusSummary.jt004Now-statusSummary.jt004Max)>0?'text-primary':'text-danger')}"></th>
<th th:text="${statusSummary.jt003Max}"></th>
<th th:text="${statusSummary.jt003Now}" th:classappend="${(statusSummary.jt003Now-statusSummary.jt003Max)>=0?'text-primary':'text-danger'}"></th>
<th th:text="${statusSummary.jt003Now}" th:classappend="${(statusSummary.jt003Now-statusSummary.jt003Max) eq 0?'text-dark':((statusSummary.jt003Now-statusSummary.jt003Max)>0?'text-primary':'text-danger')}"></th>
<th th:text="${statusSummary.jt002Max}"></th>
<th th:text="${statusSummary.jt002Now}" th:classappend="${(statusSummary.jt002Now-statusSummary.jt002Max)>=0?'text-primary':'text-danger'}"></th>
<th th:text="${statusSummary.jt002Now}" th:classappend="${(statusSummary.jt002Now-statusSummary.jt002Max) eq 0?'text-dark':((statusSummary.jt002Now-statusSummary.jt002Max)>0?'text-primary':'text-danger')}"></th>
<th th:text="${statusSummary.jt001Max}"></th>
<th th:text="${statusSummary.jt001Now}" th:classappend="${(statusSummary.jt001Now-statusSummary.jt001Max)>=0?'text-primary':'text-danger'}"></th>
<th th:text="${statusSummary.jt001Now}" th:classappend="${(statusSummary.jt001Now-statusSummary.jt001Max) eq 0?'text-dark':((statusSummary.jt001Now-statusSummary.jt001Max)>0?'text-primary':'text-danger')}"></th>
</tr>
</thead>
<tbody class="table-group-divider">
@ -89,21 +89,21 @@
</th:block>
<td th:text="${status.sumMax}"></td>
<td th:text="${status.sumNow}"></td>
<td th:text="${status.sumNow-status.sumMax}" th:classappend="${(status.sumNow-status.sumMax)>=0?'text-primary':'text-danger'}"></td>
<td th:text="${status.sumNow-status.sumMax}" th:classappend="${(status.sumNow-status.sumMax) eq 0?'text-dark':((status.sumNow-status.sumMax)>0?'text-primary':'text-danger')}"></td>
<td th:text="${status.jt007Max}"></td>
<td th:text="${status.jt007Now}" th:classappend="${(status.jt007Now-status.jt007Max)>=0?'text-primary':'text-danger'}"></td>
<td th:text="${status.jt007Now}" th:classappend="${(status.jt007Now-status.jt007Max) eq 0?'text-dark':((status.jt007Now-status.jt007Max)>0?'text-primary':'text-danger')}"></td>
<td th:text="${status.jt006Max}"></td>
<td th:text="${status.jt006Now}" th:classappend="${(status.jt006Now-status.jt006Max)>=0?'text-primary':'text-danger'}"></td>
<td th:text="${status.jt006Now}" th:classappend="${(status.jt006Now-status.jt006Max) eq 0?'text-dark':((status.jt006Now-status.jt006Max)>0?'text-primary':'text-danger')}"></td>
<td th:text="${status.jt005Max}"></td>
<td th:text="${status.jt005Now}" th:classappend="${(status.jt005Now-status.jt005Max)>=0?'text-primary':'text-danger'}"></td>
<td th:text="${status.jt005Now}" th:classappend="${(status.jt005Now-status.jt005Max) eq 0?'text-dark':((status.jt005Now-status.jt005Max)>0?'text-primary':'text-danger')}"></td>
<td th:text="${status.jt004Max}"></td>
<td th:text="${status.jt004Now}" th:classappend="${(status.jt004Now-status.jt004Max)>=0?'text-primary':'text-danger'}"></td>
<td th:text="${status.jt004Now}" th:classappend="${(status.jt004Now-status.jt004Max) eq 0?'text-dark':((status.jt004Now-status.jt004Max)>0?'text-primary':'text-danger')}"></td>
<td th:text="${status.jt003Max}"></td>
<td th:text="${status.jt003Now}" th:classappend="${(status.jt003Now-status.jt003Max)>=0?'text-primary':'text-danger'}"></td>
<td th:text="${status.jt003Now}" th:classappend="${(status.jt003Now-status.jt003Max) eq 0?'text-dark':((status.jt003Now-status.jt003Max)>0?'text-primary':'text-danger')}"></td>
<td th:text="${status.jt002Max}"></td>
<td th:text="${status.jt002Now}" th:classappend="${(status.jt002Now-status.jt002Max)>=0?'text-primary':'text-danger'}"></td>
<td th:text="${status.jt002Now}" th:classappend="${(status.jt002Now-status.jt002Max) eq 0?'text-dark':((status.jt002Now-status.jt002Max)>0?'text-primary':'text-danger')}"></td>
<td th:text="${status.jt001Max}"></td>
<td th:text="${status.jt001Now}" th:classappend="${(status.jt001Now-status.jt001Max)>=0?'text-primary':'text-danger'}"></td>
<td th:text="${status.jt001Now}" th:classappend="${(status.jt001Now-status.jt001Max) eq 0?'text-dark':((status.jt001Now-status.jt001Max)>0?'text-primary':'text-danger')}"></td>
<td th:text="${#temporals.format(status.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</tr>
</tbody>