수정요청사항 작업중.

master
강석 최 2023-01-10 18:35:52 +09:00
parent bdc9bd7a9a
commit c38e6e64df
22 changed files with 354 additions and 363 deletions

View File

@ -53,7 +53,7 @@ public class InternationalCrimeArrestController {
mav.addObject("internationalCrimeArrestList", internationalCrimeArrestList);
internationalCrimeArrest.setContentCnt(internationalCrimeArrestService.selectInternationalCrimeArrestListCnt(internationalCrimeArrest));
internationalCrimeArrest.setPaginationInfo();
mav.addObject("organConfigList", selectOrganList());
mav.addObject("organConfigList", organConfigService.selectOrganList());
mav.addObject("searchParams", internationalCrimeArrest);
return mav;
}
@ -69,7 +69,7 @@ public class InternationalCrimeArrestController {
internationalCrimeArrest.setWrtDt(LocalDateTime.now());
internationalCrimeArrest.setSuspectPersonInfoList(suspectPersonInfoRepository.findByIcaKey(internationalCrimeArrest.getIcaKey()));
}
mav.addObject("organConfigList", selectOrganList());
mav.addObject("organConfigList", organConfigService.selectOrganList());
mav.addObject("internationalCrimeArrest", internationalCrimeArrest);
return mav;
}
@ -80,7 +80,7 @@ public class InternationalCrimeArrestController {
internationalCrimeArrest = internationalCrimeArrestService.selectInternationalCrimeArrest(internationalCrimeArrest.getIcaKey());
mav.addObject("internationalCrimeArrest", internationalCrimeArrest);
mav.addObject("userSeq",loginUser.getUserSeq());
mav.addObject("organConfigList", selectOrganList());
mav.addObject("organConfigList", organConfigService.selectOrganList());
//메뉴권한 확인
mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/internationalCrimeArrest").get(0).getAccessAuth());
return mav;
@ -122,30 +122,4 @@ public class InternationalCrimeArrestController {
}
}
public List<OrganConfig> selectOrganList(){
List<CodeMgt> organCdList = codeMgtService.selectCodeMgtList("OG");
List<OrganConfig> organConfigList = organConfigService.selectSavedOrganList();
for(CodeMgt organCode: organCdList){
if(!organCode.getItemCd().equals("OG001")){
boolean usedFlag = false;
for(OrganConfig organConfig: organConfigList){
if(organCode.getItemCd().equals(organConfig.getOrganCd())){
usedFlag = true;
organConfig.setOrganNm(organCode.getItemValue());
organConfig.setUseState("T");
break;
}
}
if(!usedFlag){
OrganConfig organConfig = new OrganConfig();
organConfig.setOrganCd(organCode.getItemCd());
organConfig.setOrganNm(organCode.getItemValue());
organConfig.setUseState("F");
organConfigList.add(organConfig);
}
}
}
return organConfigList;
}
}

View File

@ -69,14 +69,16 @@ public class SriController {
sri = sriService.selectFaSriBoard(sri.getFaSriKey(), null);
}else{
if(sri.getRefKey()!=null){
Sri originSri = sriService.selectFaSriBoard(sri.getRefKey(), null);
SriReadUser readUser = new SriReadUser();
readUser.setUserSeq(sri.getWrtUserSeq());
readUser.setOgCd(sri.getWrtOrgan());
readUser.setOfcCd(sri.getWrtPart());
readUser.setTitleCd(sri.getWrtTitle());
readUser.setUserNm(sri.getWrtUserNm());
readUser.setUserSeq(originSri.getWrtUserSeq());
readUser.setOgCd(originSri.getWrtOrgan());
readUser.setOfcCd(originSri.getWrtPart());
readUser.setTitleCd(originSri.getWrtTitle());
readUser.setUserNm(originSri.getWrtUserNm());
sri.setReadUserList(new ArrayList<>());
sri.getReadUserList().add(readUser);
sri.setTitle("RE: "+originSri.getTitle());
}
sri.setWrtUserSeq(loginUser.getUserSeq());

View File

@ -70,6 +70,8 @@ public class Sri extends BaseModel {
private List<SriReadUser> readUserList;
@Transient
private List<MultipartFile> multipartFileList;
@Transient
private Sri refSri;
@Override
public String toString() {

View File

@ -66,6 +66,9 @@ public class SriService extends BaseService {
if(sri != null){
sri.setFileList(sriFileRepository.findByFaSriKey(faSriKey));
sri.setReadUserList(sriReadUserRepository.findByFaSriKey(faSriKey));
if(sri.getRefKey()!=null){
sri.setRefSri(sriRepository.findById(sri.getRefKey()).orElse(null));
}
if(sri.getStatus().equals("DST007")){
for(SriReadUser readUser: sri.getReadUserList()){
if(readUser.getUserSeq().equals(userSeq)){

View File

@ -120,12 +120,14 @@ public class MenuMgtService {
if(cat2Cd.contains(cat1Cd)){
MenuMgt secondMenu = new MenuMgt();
List<MenuMgt> thirdMenuList = new ArrayList<>();
secondMenu.setCat1Cd(cat1Cd);
secondMenu.setCat2Cd(cat2Cd.replace(cat1Cd, ""));
Iterator<String> cat3Itr = cat3Set.iterator();
while(cat3Itr.hasNext()){
String cat3Cd = cat3Itr.next();
if(cat3Cd.contains(cat2Cd)){
MenuMgt thirdMenu = new MenuMgt();
thirdMenu.setCat2Cd(secondMenu.getCat2Cd());
thirdMenu.setCat3Cd(cat3Cd.replace(cat2Cd, ""));
for(MenuMgt accessMenu: accessMenuList){
if(accessMenu.getCat1Cd().equals(cat1Cd)

View File

@ -28,29 +28,7 @@ public class OrganConfigController {
@GetMapping("/selectOrganList")
public List<OrganConfig> selectOrganList(){
List<CodeMgt> organCdList = codeMgtService.selectCodeMgtList("OG");
List<OrganConfig> organConfigList = organConfigService.selectSavedOrganList();
for(CodeMgt organCode: organCdList){
if(!organCode.getItemCd().equals("OG001")){
boolean usedFlag = false;
for(OrganConfig organConfig: organConfigList){
if(organCode.getItemCd().equals(organConfig.getOrganCd())){
usedFlag = true;
organConfig.setOrganNm(organCode.getItemValue());
organConfig.setUseState("T");
break;
}
}
if(!usedFlag){
OrganConfig organConfig = new OrganConfig();
organConfig.setOrganCd(organCode.getItemCd());
organConfig.setOrganNm(organCode.getItemValue());
organConfig.setUseState("F");
organConfigList.add(organConfig);
}
}
}
return organConfigList;
return organConfigService.selectOrganList();
}
@PostMapping("/saveOrganConfig")

View File

@ -28,5 +28,7 @@ public class OrganConfig {
private String organNm;
@Transient
private String useState;
@Transient
private Integer orderNum;
}

View File

@ -1,18 +1,23 @@
package com.dbnt.faisp.main.organMgt.service;
import com.dbnt.faisp.main.codeMgt.model.CodeMgt;
import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
import com.dbnt.faisp.main.organMgt.mapper.OrganConfigMapper;
import com.dbnt.faisp.main.organMgt.model.OrganConfig;
import com.dbnt.faisp.main.organMgt.repository.OrganConfigRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
public class OrganConfigService {
private final OrganConfigRepository organConfigRepository;
private final OrganConfigMapper organConfigMapper;
private final CodeMgtService codeMgtService;
public List<OrganConfig> selectSavedOrganList() {
return organConfigRepository.findAll();
@ -32,4 +37,33 @@ public class OrganConfigService {
upOrganList.add(ogCd);
return upOrganList;
}
public List<OrganConfig> selectOrganList() {
List<CodeMgt> codeList = codeMgtService.selectCodeMgtList("OG");
List<OrganConfig> configList = selectSavedOrganList();
for(CodeMgt organCode: codeList){
boolean usedFlag = false;
for(OrganConfig organConfig: configList){
if(organCode.getItemCd().equals(organConfig.getOrganCd())){
usedFlag = true;
organConfig.setOrganNm(organCode.getItemValue());
organConfig.setOrderNum(organCode.getOrderNum());
organConfig.setUseState("T");
break;
}
}
if(!usedFlag){
OrganConfig organConfig = new OrganConfig();
organConfig.setOrganCd(organCode.getItemCd());
organConfig.setOrganNm(organCode.getItemValue());
organConfig.setOrderNum(organCode.getOrderNum());
organConfig.setUseState("F");
configList.add(organConfig);
}
}
configList = configList.stream()
.sorted(Comparator.comparing(OrganConfig::getOrderNum, Comparator.nullsLast(Comparator.naturalOrder())))
.collect(Collectors.toList());
return configList;
}
}

View File

@ -13,7 +13,7 @@
And EXTRACT(MONTH FROM pr.wrt_dt) = #{month}::NUMERIC
</if>
<if test='caseNum != null and caseNum != ""'>
AND caseNum = #{caseNum}
AND case_num = #{caseNum}
</if>
<if test='nll != null and nll != ""'>
AND nll = #{nll}

View File

@ -95,7 +95,7 @@
-webkit-appearance: none;
margin: 0;
}
.mouse-hover:hover{
.mouse-hover-clickable:hover{
cursor: pointer;
}

View File

@ -1,6 +1,27 @@
let files = [];
let CrossEditor;
$(document).ready(function (){
const path = location.pathname;
if(!(path.includes("/login") || path.includes("/dashboard") ||
path.includes("/publicBoard") || path.includes("/myInfo"))){
$.each($("#leftMenu").find("a"), function (idx, link){
if(link.href.includes(location.pathname)){
menuOpen($(link).attr("data-parent"))
}
})
}
})
function menuOpen(categoryCd){
const menu = $("[data-category='"+categoryCd+"']");
if(menu.attr("aria-expanded")==='false'){
menu.click();
const parent = menu.attr("data-parent")
if(parent){
menuOpen(parent);
}
}
}
function contentFade(action){
if(action === "in"){
$("#fadeDiv").show()
@ -229,9 +250,11 @@ function departmentDynamicOption(targetTagName, code, defaultOptionName='') {
$(targetTagName).empty();
let option = '';
organConfigList.forEach(function (organConfig) {
if(!(organConfig.organCd === "OG027" || organConfig.organCd === "OG028")){
if (organConfig.parentOrgan != null && organConfig.organType !== 'OGC002' && organConfig.parentOrgan === code) {
option += '<option value="' + organConfig.organCd + '">' + organConfig.organNm + '</option>';
}
}
});
$(targetTagName).append('<option value="">' + defaultOptionName + ' 선택</option>' + option);
}

View File

@ -15,7 +15,9 @@ $(function() {
$(document).on('click', '#addSriBtn', function (){
getSriEditModal({faSriKey: null})
})
$(document).on('click', '#getOriginSriBtn', function (){
getSriViewModal($(this).attr("data-fasrikey"))
})
function getSriEditModal(faSriKey){
$.ajax({
url: '/sri/sriEditModal',
@ -70,7 +72,7 @@ $(document).on('click', '#saveSriBtn', function (){
})
function saveSri(faSriState){
if(faSriState == 'DST001'){
if(faSriState === 'DST001'){
if(confirm("임시저장하시겠습니까?")){
save(faSriState);
}
@ -176,12 +178,7 @@ function OnInitCompleted(e){
$(document).on('click', '#reSendBtn', function (){
$("#sriViewModal").modal('hide');
const faSri = {
refKey: Number($(this).attr("data-fasrikey")),
wrtUserSeq: $("#wrtUserSeq").val(),
wrtOrgan: $("#wrtOrgan").val(),
wrtPart: $("#wrtPart").val(),
wrtTitle: $("#wrtTitle").val(),
wrtUserNm: $("#wrtUserNm").val()
refKey: Number($(this).attr("data-fasrikey"))
}
getSriEditModal(faSri);
})
@ -259,19 +256,23 @@ function setReadUserRowNum(){
}
function contentCheck(){
let flag = true;
if(!$("#refKey").val()){
if(!$("#faSriType").val()){
alert("분류를 선택해주세요.")
flag = false;
return false;
}
if(!$("#faSriEdate").val()){
alert("제출기한을 선택해주세요.")
return false;
}
}
if(!$("#title").val()){
alert("제목을 입력해주세요.")
flag = false;
return false;
}
if($("#readUserRow").children().length===0){
alert("수신자를 입력해주세요.")
flag = false;
return false;
}
flag = fileCheck(flag, files);
return flag;
return fileCheck(true, files);
}

View File

@ -8,9 +8,9 @@
<th>대분류</th>
<th>중분류</th>
<th>소분류</th>
<th class="selectTh" data-type="access">해제</th>
<th class="selectTh mouse-hover-clickable" data-type="access">해제</th>
<th:block th:each="code:${session.commonCode.get('ACC')}">
<th class="selectTh mouse-hover" data-type="access" th:data-target="${code.itemCd}" th:text="${code.itemValue}"></th>
<th class="selectTh mouse-hover-clickable" data-type="access" th:data-target="${code.itemCd}" th:text="${code.itemValue}"></th>
</th:block>
</tr>
</thead>
@ -54,9 +54,9 @@
<th>대분류</th>
<th>중분류</th>
<th>소분류</th>
<th class="selectTh" data-type="approval">해제</th>
<th class="selectTh mouse-hover-clickable" data-type="approval">해제</th>
<th:block th:each="code:${session.commonCode.get('APC')}">
<th class="selectTh mouse-hover" data-type="approval" th:data-target="${code.itemCd}" th:text="${code.itemValue}"></th>
<th class="selectTh mouse-hover-clickable" data-type="approval" th:data-target="${code.itemCd}" th:text="${code.itemValue}"></th>
</th:block>
</tr>
</thead>

View File

@ -12,7 +12,7 @@
<input type="text" class="form-control form-control-sm" name="caseNum" placeholder="사건번호" th:value="${searchParams.caseNum}">
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchModalBtn" value="검색">
<input type="button" class="btn btn-sm btn-primary" id="searchModalBtn" value="검색">
</div>
</div>
</div>

View File

@ -42,7 +42,7 @@
<input type="text" class="form-control form-control-sm" name="menuUrl" placeholder="url" th:value="${searchParams.menuUrl}">
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchModalBtn" value="검색">
<input type="button" class="btn btn-sm btn-primary" id="searchModalBtn" value="검색">
</div>
</div>
</div>

View File

@ -33,7 +33,7 @@
<input type="text" class="form-control form-control-sm" name="userId" placeholder="사용자 아이디" th:value="${searchParams.userId}">
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchModalBtn" value="검색">
<input type="button" class="btn btn-sm btn-primary" id="searchModalBtn" value="검색">
</div>
</div>
</div>

View File

@ -14,19 +14,13 @@
<input type="hidden" name="wrtNm" th:value="${internationalCrimeArrest.wrtNm}">
<input type="hidden" name="wrtDt" th:value="${#temporals.format(internationalCrimeArrest.wrtDt, 'yyyy-MM-dd HH:mm')}">
<input type="hidden" id="contentStatus" name="contentStatus">
<div class="row mb-1">
<label class="col-sm-2 col-form-label col-form-label-sm text-center">사건번호</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm" name="caseNum" th:value="${internationalCrimeArrest.caseNum}">
</div>
</div>
<div class="row mb-1">
<label class="col-sm-2 col-form-label col-form-label-sm text-center">지방청</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="organ">
<option value="">선택</option>
<th:block th:each="organConfig:${organConfigList}">
<th:block th:if="${organConfig.parentOrgan eq 'OG001' && organConfig.organType ne 'OGC001'}">
<th:block th:if="${organConfig.parentOrgan eq 'OG001' or organConfig.organCd eq 'OG001'}">
<option th:value="${organConfig.organCd}" th:text="${organConfig.organNm}" th:selected="${organConfig.organCd eq internationalCrimeArrest.organ}"></option>
</th:block>
</th:block>

View File

@ -1,13 +1,13 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<div class="pt-3" th:fragment="leftMenuFragment">
<div class="flex-shrink-0 py-3 bg-transparent">
<div class="flex-shrink-0 py-3 bg-transparent" id="leftMenu">
<ul class="list-unstyled ps-0">
<li class="mb-1" 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"
data-bs-toggle="collapse" aria-expanded="false"
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}|">
@ -19,13 +19,13 @@
<li class="mb-1">
<th:block th:unless="${#lists.isEmpty(secondMenu.childList)}">
<button class="btn btn-toggle align-items-center rounded collapsed leftMenuItem text-light"
data-bs-toggle="collapse" aria-expanded="false" th:onclick="location.href='#'"
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"
th:text="${cat2Code.itemValue}"></a>
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}|">
<ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
@ -35,7 +35,7 @@
<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:text="${cat3Code.itemValue}"></a>
th:data-parent="${cat2Code.itemCd}" th:data-category="${cat3Code.itemCd}" th:text="${cat3Code.itemValue}"></a>
</li>
</ul>
</th:block>

View File

@ -99,14 +99,7 @@
<tfoot>
<tr>
<td colspan="11">
<div class="row justify-content-center">
<div class="col-auto">
<button type="button" class="btn btn-sm btn-primary careerAddBtn" th:data-careercd="${code.itemCd}">추가</button>
</div>
<div class="col-auto">
<button type="button" class="btn btn-sm btn-success kwmsCareerBtn" th:classappend="${#strings.isEmpty(userInfo.dicCode)?'disabled':''}">인사시스템 경력정보</button>
</div>
</div>
</td>
</tr>
</tfoot>

View File

@ -6,44 +6,14 @@
</div>
<div class="modal-body">
<div class="mb-3 mt-3 row">
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center">직급</label>
<div class="col-sm-4">
<input type="text" class="form-control form-control-sm" th:value="${userInfo.titleCd}" readonly>
</div>
<label for="userId" class="col-sm-2 col-form-label col-form-label-sm text-center ">생년월일</label>
<div class="col-sm-4">
<input type="text" class="form-control form-control-sm" th:value="${userInfo.birthDate}" readonly>
</div>
</div>
<div class="row mb-1">
<label for="phoneNo" class="col-sm-2 col-form-label col-form-label-sm text-center">성명</label>
<div class="col-sm-4">
<input type="tel" class="form-control form-control-sm" th:value="|${userInfo.ogCd} ${userInfo.ofcCd} ${userInfo.userNm}|" readonly>
</div>
<label for="email" class="col-sm-2 col-form-label col-form-label-sm text-center">성별</label>
<div class="col-sm-4">
<input type="email" class="form-control form-control-sm" th:value="${userInfo.sex}" readonly>
</div>
</div>
<div class="row mb-1">
<label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">학력사항</label>
<div class="col-sm-2">
<input type="email" class="form-control form-control-sm" readonly>
</div>
<label for="sex" class="col-sm-1 col-form-label col-form-label-sm text-center">학교</label>
<div class="col-sm-2">
<input type="email" class="form-control form-control-sm" readonly>
</div>
<label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">외국어</label>
<div class="col-sm-2">
<input type="email" class="form-control form-control-sm" th:value="${userInfo.languageCd}" readonly>
</div>
</div>
<div class="row mb-1">
<label for="birthDate" class="col-sm-2 col-form-label col-form-label-sm text-center">전공</label>
<div class="col-sm-4">
<input type="text" class="form-control form-control-sm dateSelector" id="birthDate" name="birthDate" readonly>
</div>
<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="${userInfo.ogCd}"></label>
<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="${userInfo.ofcCd}"></label>
<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="${userInfo.titleCd}"></label>
<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="${userInfo.userNm}"></label>
</div>
<div class="card">
<div class="card-body text-center">

View File

@ -14,7 +14,7 @@
<input type="hidden" name="wrtUserSeq" th:value="${sri.wrtUserSeq}">
<input type="hidden" name="wrtTitle" th:value="${sri.wrtTitle}">
<input type="hidden" name="status" id="status" th:value="${sri.status}">
<input type="hidden" name="refKey" th:value="${sri.refKey}">
<input type="hidden" name="refKey" id="refKey" th:value="${sri.refKey}">
<div class="row">
<div class="col-8">
<div class="row mb-1">
@ -29,7 +29,7 @@
</div>
<th:block th:if="${sri.refKey eq null}">
<div class="row mb-1">
<label for="faRptType" class="col-sm-2 col-form-label col-form-label-sm text-center">분류</label>
<label for="faSriType" class="col-sm-2 col-form-label col-form-label-sm text-center">분류</label>
<div class="col-sm-4">
<select class="form-select form-select-sm" id="faSriType" name="faSriType">
<option value="">선택해주세요.</option>
@ -38,7 +38,7 @@
</th:block>
</select>
</div>
<label for="faRptType" class="col-sm-2 col-form-label col-form-label-sm text-center">제출기한</label>
<label for="faSriEdate" class="col-sm-2 col-form-label col-form-label-sm text-center">제출기한</label>
<div class="col-sm-4">
<input type="text" class="form-control form-control-sm" id="faSriEdate" name="faSriEdate" th:value="${sri.faSriEdate}" readonly>
</div>
@ -47,12 +47,7 @@
<div class="row mb-1">
<label for="title" class="col-sm-2 col-form-label col-form-label-sm text-center">제목</label>
<div class="col-sm-10">
<th:block th:if="${sri.refKey eq null}">
<input type="text" class="form-control form-control-sm" id="title" name="title" th:value="${sri.title}">
</th:block>
<th:block th:unless="${sri.refKey eq null}">
<input type="text" class="form-control form-control-sm" id="title" name="title" th:value="[회신]">
</th:block>
</div>
</div>
<div class="row mb-1 justify-content-center">
@ -85,7 +80,11 @@
<div class="col-12 pb-2">
<div class="row justify-content-between">
<div class="col-auto">■ 수신자</div>
<div class="col-auto"><button type="button" class="btn btn-sm btn-info" id="addReadUserBtn">추가</button></div>
<div class="col-auto">
<th:block th:if="${sri.refKey eq null}">
<button type="button" class="btn btn-sm btn-info" id="addReadUserBtn">추가</button>
</th:block>
</div>
</div>
</div>
<div class="col-1">no</div>

View File

@ -20,7 +20,7 @@
<div class="tab-content bg-white border border-top-0 p-2">
<div class="tab-pane fade p-2 show active" id="boardTabPanel" role="tabpanel" tabindex="0">
<div class="row mb-1" th:if="${faSri.status eq 'DST001'}">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">상태</label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">상태</label>
<label class="col-sm-1 col-form-label col-form-label-sm text-start">
<th:block th:each="code:${session.commonCode.get('DST')}">
<th:block th:if="${code.itemCd eq faSri.status}" th:text="${code.itemValue}"></th:block>
@ -28,32 +28,46 @@
</label>
</div>
<div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">분류</label>
<th:block th:if="${faSri.refKey eq null}">
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">분류</label>
<label class="col-sm-1 col-form-label col-form-label-sm text-start">
<th:block th:each="code:${session.commonCode.get('SRI')}">
<th:block th:if="${code.itemCd eq faSri.faSriType}" th:text="${code.itemValue}"></th:block>
</th:block>
</label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">제출기한</label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">제출기한</label>
<label class="col-sm-1 col-form-label col-form-label-sm text-start" th:text="${faSri.faSriEdate}"></label>
<div class="col-sm-5"></div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">작성일시</label>
</th:block>
<th:block th:if="${faSri.refKey ne null}">
<div class="col-sm-9"></div>
</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="${#temporals.format(faSri.wrtDt, 'yyyy-MM-dd HH:mm')}"></label>
</div>
<div class="row mb-1">
<label class="col-sm-1 col-form-label col-form-label-sm text-center">제목</label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">제목</label>
<label class="col-sm-8 col-form-label col-form-label-sm text-start" th:text="${faSri.title}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center">작성자</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start">
<th:block th:text="${faSri.wrtUserNm}"></th:block>
</label>
<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="${faSri.wrtUserNm}"></label>
</div>
<hr class="my-1">
<div class="row mb-1 justify-content-center">
<label for="content" class="col-sm-1 col-form-label col-form-label-sm text-center">내용</label>
<label for="content" class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">내용</label>
<div class="col-sm-11 form-control-sm" id="content" th:utext="${faSri.content}"></div>
</div>
<th:block th:if="${faSri.refKey ne null}">
<hr class="my-1">
<div class="row mb-1">
<label for="content" class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">하달 SRI</label>
<label class="col-sm-8 col-form-label col-form-label-sm text-start">
<th:block th:text="${faSri.refSri.title}"></th:block>
<i class="bi bi-arrow-right-square-fill text-info mouse-hover-clickable" id="getOriginSriBtn" th:data-fasrikey="${faSri.refKey}"></i>
</label>
<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="${faSri.refSri.wrtUserNm}"></label>
</div>
</th:block>
</div>
<div class="tab-pane fade p-2" id="readUserTabPanel" role="tabpanel" tabindex="0">
<div class="row">
@ -128,7 +142,7 @@
<th:block th:each="readUser:${faSri.readUserList}">
<th:block th:if="${userSeq eq readUser.userSeq}">
<th:block th:unless="${faSri.faSriEdate eq null}">
<button type="button" class="btn btn-success" id="reSendBtn" th:if="${faSri.faSriEdate} >= ${#temporals.createToday()}" th:data-fasrikey="${faSri.faSriKey}"></button>
<button type="button" class="btn btn-success" id="reSendBtn" th:if="${faSri.faSriEdate} >= ${#temporals.createToday()}" th:data-fasrikey="${faSri.faSriKey}"></button>
</th:block>
</th:block>
</th:block>