Merge remote-tracking branch 'origin/master'

master
Hyung Geun 2023-01-28 14:16:58 +09:00
commit 64ea497da5
20 changed files with 110 additions and 55 deletions

View File

@ -9,9 +9,11 @@ import com.dbnt.faisp.main.menuMgt.service.MenuMgtService;
import com.dbnt.faisp.main.organMgt.service.OrganConfigService;
import com.dbnt.faisp.main.publicBoard.model.PublicBoard;
import com.dbnt.faisp.main.publicBoard.service.PublicBoardService;
import com.dbnt.faisp.main.userInfo.model.UserAlarm;
import com.dbnt.faisp.main.userInfo.model.UserInfo;
import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
import com.dbnt.faisp.main.userInfo.service.UserAlarmService;
import com.dbnt.faisp.main.userInfo.service.UserInfoService;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
@ -34,6 +36,7 @@ public class BaseController {
private final PublicBoardService publicBoardService;
private final FaRptService faRptService;
private final AffairService affairService;
private final UserAlarmService userAlarmService;
@GetMapping("/")
public ModelAndView loginCheck(@AuthenticationPrincipal UserInfo loginUser) {
@ -74,6 +77,13 @@ public class BaseController {
noticeParams.setDownOrganCdList(loginUser.getDownOrganCdList());
noticeParams.setUpOrganCdList(loginUser.getUpOrganCdList());
mav.addObject("noticeList", publicBoardService.selectContentList(noticeParams));
UserAlarm alarm = new UserAlarm();
alarm.setUserSeq(loginUser.getUserSeq());
alarm.setViewYn("N");
alarm.setRowCnt(7);
mav.addObject("alarmList", userAlarmService.selectAlarmList(alarm));
mav.addObject("alarmListCnt", userAlarmService.selectAlarmListCnt(alarm));
FaRptBoard faRpt = new FaRptBoard();
faRpt.setActiveTab("receive");
faRpt.setRowCnt(7);

View File

@ -44,13 +44,11 @@ public class MenuMgtController {
return menuMgtService.saveMenuMgt(menuMgt);
}
/*
...
@PostMapping("/deleteMenuMgt")
@ResponseBody
public String deleteMenuMgt(@RequestBody List<MenuMgt> menuMgt){
menuMgtService.deleteMenuMgt(menuMgt);
return "";
}*/
}
}

View File

@ -67,6 +67,14 @@
content: url("/img/bootstrap-icons-1.9.1/caret-down.svg");
}
.btn-toggle3::before {
content: url("/img/bootstrap-icons-1.9.1/chevron-right.svg");
filter: invert(100%);
}
.btn-toggle3[aria-expanded="true"]::before {
content: url("/img/bootstrap-icons-1.9.1/chevron-down.svg");
}
.f-invert{
filter: invert(100%);
}

View File

@ -78,7 +78,7 @@
<thead>
<tr class="table-secondary">
<th><input type="checkbox" class="allChk"></th>
<th>menuKey</th>
<!--<th>menuKey</th>-->
<th>대분류</th>
<th>중분류</th>
<th>소분류</th>
@ -100,7 +100,7 @@
<td>
<input type="checkbox" class="menuCheckBox" th:value="${menuMgt.menuKey}">
</td>
<td th:text="${menuMgt.menuKey}"></td>
<!--<td th:text="${menuMgt.menuKey}"></td>-->
<th:block th:if="${menuMgt.cat1RowspanCnt ne 0}" th:each="commonCode:${session.commonCode.get('CAT1')}">
<th:block th:if="${commonCode.itemCd eq menuMgt.cat1Cd}">
<td th:text="${commonCode.itemValue}" th:rowspan="${menuMgt.cat1RowspanCnt}"></td>

View File

@ -89,6 +89,7 @@
<table class="table table-sm table-hover table-bordered text-nowrap" id="asfCovTable">
<thead class="align-middle">
<tr class="table-secondary">
<th rowspan="4">순번</th>
<th rowspan="4">사건번호</th>
<th rowspan="4">나포일시</th>
<th rowspan="4">선명</th>
@ -123,7 +124,8 @@
</thead>
<tbody class="table-group-divider align-middle">
<tr class="tr" th:each="asfcov:${asfCovList}" th:data-key="${asfcov.asfCovKey}">
<tr class="tr" th:each="asfcov,cnt:${asfCovList}" th:data-key="${asfcov.asfCovKey}">
<td th:text="${cnt.count}"></td>
<td th:text="${asfcov.caseNum}"></td>
<td th:text="${asfcov.napoDt}"></td>
<th:block th:if="${asfcov.pressurizedN eq 'A'}">

View File

@ -47,7 +47,7 @@
<div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">사건담당경찰서</label>
<th:block th:each="commonCode:${session.commonCode.get('ATA')}">
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${asfCov.caseAgency eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${asfCov.caseAgency eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></label>
</th:block>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">사건담당경찰관</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${asfCov.casePoliceOfficer}"></label>

View File

@ -338,7 +338,7 @@
<table class="table table-sm table-hover table-bordered text-nowrap" id="cdsTable">
<thead class="align-middle">
<tr class="table-secondary">
<!--<th rowspan="4">연번</th>-->
<th rowspan="4">순번</th>
<th rowspan="4">나포일시</th>
<th rowspan="4">위반내용</th>
<th rowspan="4">위반장소</th>
@ -562,9 +562,10 @@
</tr>
</thead>
<tbody class="table-group-divider align-middle">
<th:block th:each="crackdownStatus:${crackdownStatusList}">
<th:block th:each="crackdownStatus,cnt:${crackdownStatusList}">
<tr class="tr" th:data-key="${crackdownStatus.cdsKey}">
<!--<td th:text="${crackdownStatus.cdsKey}"></td>-->
<td th:text="${cnt.count}"></td>
<td th:text="${#temporals.format(crackdownStatus.napoDt, 'yyyy-MM-dd HH:mm')}"></td>
<td class="text-wrap min-width-300">
<th:block th:if="${#lists.size(crackdownStatus.violationList) >= 1}">

View File

@ -165,7 +165,7 @@
<table class="table table-sm table-hover table-bordered text-nowrap">
<thead class="align-middle">
<tr class="table-secondary">
<th></th>
<th>순번</th>
<th>나포일시</th>
<th>나포해점</th>
<th>사건담당경찰서</th>
@ -184,9 +184,9 @@
</tr>
</thead>
<tbody class="table-group-divider align-middle">
<tr class="crackdownStatusTr" th:each="crackdownStatus:${crackdownStatusList}">
<tr class="crackdownStatusTr" th:each="crackdownStatus,cnt:${crackdownStatusList}">
<input type="hidden" class="cdsKey" th:value="${crackdownStatus.cdsKey}">
<td><input type="checkbox" class="trChkBox"></td>
<td th:text="${cnt.count}"></td>
<td th:text="${#temporals.format(crackdownStatus.napoDt, 'yyyy-MM-dd HH:mm')}"></td>
<td>
<th:block th:text="${crackdownStatus.napoSeaPointLon}"></th:block>

View File

@ -114,7 +114,7 @@
<table class="table table-sm table-hover table-bordered text-nowrap" id="prTable">
<thead class="align-middle">
<tr class="table-secondary">
<!--<th>연번</th>-->
<th>순번</th>
<th>사건번호</th>
<th>사건담당경찰서</th>
<th>피의자(선박명)</th>
@ -132,8 +132,9 @@
</tr>
</thead>
<tbody class="table-group-divider align-middle">
<th:block th:each="processResult:${processResultList}">
<th:block th:each="processResult,cnt:${processResultList}">
<tr class="tr" th:data-key="${processResult.prKey}">
<td th:text="${cnt.count}"></td>
<!--<td th:text="${processResult.prKey}"></td>-->
<td th:text="${processResult.crackdownStatus.caseNum}"></td>
<th:block th:each="commonCode:${session.commonCode.get('CPO')}">

View File

@ -7,15 +7,15 @@
</a>
</div>
<div class="flex-shrink-0 py-3 bg-transparent" id="leftMenu">
<ul class="list-unstyled border-top border-secondary ps-0">
<li class="mb-1 border-bottom border-secondary" th:each="firstMenu:${session.menuList}">
<ul class="list-unstyled border-top ps-0">
<li class="mb-1 border-bottom " th:each="firstMenu:${session.menuList}">
<th:block th:each="cat1Code:${session.commonCode.get('CAT1')}">
<th:block th:if="${cat1Code.itemCd eq firstMenu.cat1Cd}">
<button class="btn btn-toggle align-items-center rounded collapsed leftMenuItem text-light" style="font-size: 16px;"
<button class="btn align-items-center rounded collapsed leftMenuItem text-light" style="font-size: 16px;"
data-bs-toggle="collapse" aria-expanded="false" th:data-category="${cat1Code.itemCd}"
th:data-bs-target="'#collapse'+${cat1Code.itemCd}" th:text="${cat1Code.itemValue}">
</button>
<div class="collapse ps-3" th:id="|collapse${cat1Code.itemCd}|">
<div class="collapse ps-3 border-top border-secondary" th:id="|collapse${cat1Code.itemCd}|">
<ul class="btn-toggle-nav list-unstyled fw-normal pb-1" >
<li th:each="secondMenu:${firstMenu.childList}">
<th:block th:each="cat2Code:${session.commonCode.get('CAT2')}">
@ -23,13 +23,13 @@
<ul class="list-unstyled ps-0">
<li class="mb-1">
<th:block th:unless="${#lists.isEmpty(secondMenu.childList)}">
<button class="btn btn-toggle2 align-items-center rounded collapsed leftMenuItem text-light" style="font-size: 15px;"
<button class="btn btn-toggle3 align-items-center rounded collapsed leftMenuItem text-light" style="font-size: 15px;"
data-bs-toggle="collapse" aria-expanded="false" th:data-parent="${cat1Code.itemCd}" th:data-category="${cat2Code.itemCd}"
th:data-bs-target="'#collapse'+${cat2Code.itemCd}" th:text="${cat2Code.itemValue}">
</button>
</th:block>
<th:block th:if="${#lists.isEmpty(secondMenu.childList)}">
<a th:href="@{${secondMenu.menuUrl}}" class="bi bi-dash link-light rounded ps-3 text-decoration-none" style="font-size: 14px;" th:data-menukey="${secondMenu.menuKey}"
<a th:href="@{${secondMenu.menuUrl}}" class="link-light rounded ps-3 text-decoration-none" style="font-size: 14px;"
th:data-parent="${cat1Code.itemCd}" th:data-category="${cat2Code.itemCd}" th:text="${cat2Code.itemValue}"></a>
</th:block>
<div class="collapse ps-3" th:id="|collapse${cat2Code.itemCd}|" >
@ -39,12 +39,12 @@
<th:block th:if="${cat3Code.itemCd eq thirdMenu.cat3Cd}">
<ul class="list-unstyled ps-0">
<li>
<a th:href="@{${thirdMenu.menuUrl}}" class="bi bi-dash link-light rounded ps-3 text-decoration-none" th:data-menukey="${thirdMenu.menuKey}"
<a th:href="@{${thirdMenu.menuUrl}}" class="link-light rounded ps-3 text-decoration-none"
th:data-parent="${cat2Code.itemCd}" th:data-category="${cat3Code.itemCd}" th:text="${cat3Code.itemValue}"></a>
</li>
</ul>
</th:block>
</th:block>
</th:block>
</li>
</ul>
</div>

View File

@ -20,7 +20,7 @@
<div class="col-12 card bg-lightB-card">
<div class="card-body">
<div class="row">
<div class="col-6 py-1" id="subPage0">
<div class="col-4 py-1" id="subPage0">
<script type="text/javascript" th:src="@{/js/publicBoard/publicBoard.js}"></script>
<script type="text/javascript" th:src="@{/js/publicBoard/notice.js}"></script>
<div class="card">
@ -42,9 +42,10 @@
<tbody>
<tr class="noticeTr" th:each="notice:${noticeList}">
<input type="hidden" class="publicKey" th:value="${notice.publicKey}">
<td><i class="bi bi-dot" style="color: #3d73d7"></i>
<th:block th:if="${#strings.length(notice.title)>35}" th:text="|${#strings.substring(notice.title, 0, 35)}...|"></th:block>
<th:block th:unless="${#strings.length(notice.title)>35}" th:text="${notice.title}"></th:block>
<td>
<i class="bi bi-dot" style="color: #3d73d7"></i>
<th:block th:if="${#strings.length(notice.title)>20}" th:text="|${#strings.substring(notice.title, 0, 20)}...|"></th:block>
<th:block th:unless="${#strings.length(notice.title)>20}" th:text="${notice.title}"></th:block>
</td>
<td th:text="${notice.wrtUserNm}"></td>
<td th:text="${#temporals.format(notice.wrtDt, 'yyyy-MM-dd')}"></td>
@ -54,8 +55,41 @@
</div>
</div>
</div>
<div class="col-6 py-1" id="subPage1">
<div class="col-4 py-1" id="subPage1">
<div class="card">
<div class="card-header bg-white">
<div class="row justify-content-between">
<div class="col-auto dash-title" th:text="${#strings.concat('미확인 수신알람(', alarmListCnt, ')')}"></div>
<div class="col-auto"><a href="/myInfo/myAlarm" class="link-dark"><i class="bi bi-list"></i></a></div>
</div>
</div>
<div class="card-body">
<table class="table table-sm table-hover">
<thead>
<tr>
<th>메시지</th>
<th>발생일시</th>
</tr>
</thead>
<tbody>
<tr class="alarmTr" th:each="alarm:${alarmList}">
<input type="hidden" class="alarmKey" th:value="${alarm.alarmKey}">
<input type="hidden" class="userSeq" th:value="${alarm.userSeq}">
<td>
<i class="bi bi-dot" style="color: #3d73d7"></i>
<th:block th:if="${#strings.length(alarm.alarmMsg)>20}" th:text="|${#strings.substring(alarm.alarmMsg, 0, 20)}...|"></th:block>
<th:block th:unless="${#strings.length(alarm.alarmMsg)>20}" th:text="${alarm.alarmMsg}"></th:block>
</td>
<td th:text="${#temporals.format(alarm.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="col-4 py-1" id="subPage2">
</div>
<div class="col-4 py-1" id="subPage3">
<script type="text/javascript" th:src="@{/js/faRpt/faRpt.js}"></script>
<div class="card">
<div class="card-header bg-white">
@ -65,7 +99,7 @@
</div>
</div>
<div class="card-body">
<table class="table table-hover">
<table class="table table-sm table-hover">
<thead>
<tr>
<th>제목</th>
@ -85,7 +119,7 @@
</div>
</div>
</div>
<div class="col-6 py-1" id="subPage2">
<div class="col-4 py-1" id="subPage4">
<script type="text/javascript" th:src="@{/js/igActivities/fpiMgt/affair/affairMgt.js}"></script>
<div class="card">
<div class="card-header bg-white">
@ -119,7 +153,7 @@
</div>
</div>
</div>
<div class="col-6 py-1" id="subPage3">
<div class="col-4 py-1" id="subPage5">
<div class="card">
<div class="card-header bg-white">
<div class="row justify-content-between">

View File

@ -81,11 +81,11 @@
<thead>
<tr class="table-secondary">
<th>순번</th>
<th>관서</th>
<th>부서</th>
<th>직책</th>
<th>계급</th>
<th>성명</th>
<th></th>
<th>부서</th>
<th>생년월일</th>
<th>성별</th>
<th>외사경력</th>
@ -100,11 +100,11 @@
<tr class="policeTr" th:each="police:${policeList}">
<input type="hidden" class="userSeq" th:value="${police.userSeq}">
<td th:text="${police.rownum}"></td>
<td th:text="${police.organNm}"></td>
<td th:text="${police.ofcCd}"></td>
<td></td>
<td th:text="${police.titleCd}"></td>
<td th:text="${police.userNm}"></td>
<td th:text="${police.organNm}"></td>
<td th:text="${police.ofcCd}"></td>
<td th:text="${police.birthDate}"></td>
<td th:text="${police.sex}"></td>
<td>

View File

@ -111,6 +111,6 @@
</div>
</div>
<div class="modal-footer bg-light">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
<!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>-->
</div>
</html>

View File

@ -51,7 +51,7 @@
</div>
<div class="modal-footer row justify-content-between bg-light">
<div class="col-auto">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
<!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>-->
</div>
<div class="col-auto">
<button type="button" class="btn btn-primary" id="saveBtn" th:if="${accessAuth eq 'ACC003'} or ${userInfo.userSeq eq userSeq}">저장</button>

View File

@ -82,14 +82,14 @@
<thead>
<tr class="table-secondary">
<th>순번</th>
<th>관서</th>
<th>부서</th>
<th>직책</th>
<th>계급</th>
<th>성명</th>
<th></th>
<th>현부서<br></th>
<th>생년월일</th>
<th>성별</th>
<th>최종수정일</th>
</tr>
</thead>
@ -99,11 +99,11 @@
<input type="hidden" class="userSeq" th:value="${list.userSeq}">
</th:block>
<td th:text="${list.rownum}"></td>
<td th:text="${list.organNm}"></td>
<td th:text="${list.ofcCd}"></td>
<td></td>
<td th:text="${list.titleCd}"></td>
<td th:text="${list.userNm}"></td>
<td th:text="${list.organNm}"></td>
<td th:text="${list.ofcCd}"></td>
<td th:text="${list.birthDate}"></td>
<td th:text="${list.sex}"></td>

View File

@ -156,7 +156,7 @@
</div>
</div>
<div class="modal-footer bg-light">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
<!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>-->
<button type="button" class="btn btn-primary" id="saveBtn">저장</button>
</div>
</div>
@ -174,7 +174,7 @@
</div>
<div class="modal-footer bg-light">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
<!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>-->
</div>
</div>
</div>

View File

@ -153,7 +153,7 @@
</th:block>
</div>
<div class="col-auto">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
<!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>-->
<button type="button" class="btn btn-warning" id="updateBtn" th:if="${accessAuth eq 'ACC003'}">수정</button>
</div>
</div>

View File

@ -95,11 +95,11 @@
<thead>
<tr class="table-secondary">
<th>순번</th>
<th>관서</th>
<th>부서</th>
<th>직책</th>
<th>계급</th>
<th>성명</th>
<th></th>
<th>현부서<br></th>
<th>생년월일</th>
<th>성별</th>
<th>최초<br>임용</th>
@ -123,19 +123,20 @@
<input type="hidden" class="userSeq" th:value="${list.userSeq}">
</th:block>
<td th:text="${list.rownum}"></td>
<td th:text="${list.organNm}"></td>
<td th:text="${list.ofcCd}"></td>
<td></td>
<td th:text="${list.titleCd}"></td>
<td th:text="${list.userNm}"></td>
<td th:text="${list.organNm}"></td>
<td th:text="${list.ofcCd}"></td>
<td th:text="${list.birthDate}"></td>
<td th:text="${list.sex}"></td>
<td th:text="${list.policeInDate}"></td>
<td th:text="${list.titleInDate}"></td>
<td th:text="${list.ofcInDate}"></td>
<!--<td th:text="${list.outturnCd}"></td>-->
<!-- <td th:text="${list.outturnCd}"></td>-->
<td th:if="${list.outturnCd == '수사'}">O</td>
<td th:if="${list.outturnCd != '수사'}">X</td>
<td></td>
<td th:text="${list.jobInCd}"></td>
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<th:block th:if="${userStatus eq 'USC003'} and ${accessAuth eq 'ACC003'}">

View File

@ -109,8 +109,8 @@
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th></th>
<th>관서</th>
<th></th>
<th>관서</th>
<th>언어</th>
<th>경력</th>
<th>성명</th>
@ -313,8 +313,8 @@
</form>
</div>
<div class="modal-footer bg-light">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" id="closeModalBtn">닫기</button>
<button type="button" class="btn btn-primary" id="saveBtn">등록</button>
<!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal" id="closeModalBtn">닫기</button>-->
<button type="button" class="btn btn-primary" id="saveBtn">저장</button>
</div>
</div>
</div>

View File

@ -21,7 +21,7 @@
</div>
</div>
<div class="modal-footer bg-light">
<button type="button" class="btn btn-primary" id="crrSaveBtn">등록</button>
<button type="button" class="btn btn-primary" id="crrSaveBtn">저장</button>
</div>
</div>
</div>